From c7a68277dc5ecc0291127a6331532d698c6c65b1 Mon Sep 17 00:00:00 2001 From: Timlyeee Date: Mon, 7 Nov 2022 09:52:26 +0800 Subject: [PATCH] LabSound and relative works --- android/CMakeLists.txt | 18 + android/arm64-v8a/liblibnyquist.a | Bin 0 -> 2142564 bytes android/arm64-v8a/liblibwavpack.a | Bin 0 -> 214412 bytes android/arm64-v8a/libsamplerate copy.a | Bin 0 -> 1502152 bytes android/arm64-v8a/libsamplerate.a | Bin 0 -> 1502152 bytes android/armeabi-v7a/liblibnyquist.a | Bin 0 -> 1691076 bytes android/armeabi-v7a/liblibwavpack.a | Bin 0 -> 160080 bytes android/armeabi-v7a/libsamplerate.a | Bin 0 -> 1489952 bytes android/x86/liblibnyquist.a | Bin 0 -> 2060308 bytes android/x86/liblibwavpack.a | Bin 0 -> 210856 bytes android/x86/libsamplerate.a | Bin 0 -> 1500184 bytes android/x86_64/liblibnyquist.a | Bin 0 -> 2442692 bytes android/x86_64/liblibwavpack.a | Bin 0 -> 228388 bytes android/x86_64/libsamplerate.a | Bin 0 -> 1510464 bytes sources/CMakeLists.txt | 21 +- sources/LabSound/CMakeLists.txt | 43 + sources/LabSound/LabSound.cmake | 217 + sources/LabSound/include/LabSound/LabSound.h | 83 + .../include/LabSound/core/AnalyserNode.h | 69 + .../include/LabSound/core/AudioArray.h | 138 + .../LabSound/core/AudioBasicInspectorNode.h | 34 + .../LabSound/core/AudioBasicProcessorNode.h | 48 + .../LabSound/include/LabSound/core/AudioBus.h | 148 + .../include/LabSound/core/AudioChannel.h | 122 + .../include/LabSound/core/AudioContext.h | 219 + .../include/LabSound/core/AudioDevice.h | 125 + .../LabSound/core/AudioHardwareDeviceNode.h | 66 + .../LabSound/core/AudioHardwareInputNode.h | 39 + .../include/LabSound/core/AudioListener.h | 84 + .../include/LabSound/core/AudioNode.h | 268 + .../include/LabSound/core/AudioNodeInput.h | 60 + .../include/LabSound/core/AudioNodeOutput.h | 123 + .../include/LabSound/core/AudioParam.h | 104 + .../LabSound/core/AudioParamTimeline.h | 117 + .../include/LabSound/core/AudioProcessor.h | 48 + .../LabSound/core/AudioScheduledSourceNode.h | 49 + .../include/LabSound/core/AudioSetting.h | 158 + .../LabSound/core/AudioSourceProvider.h | 62 + .../LabSound/core/AudioSummingJunction.h | 78 + .../include/LabSound/core/BiquadFilterNode.h | 43 + .../include/LabSound/core/ChannelMergerNode.h | 40 + .../LabSound/core/ChannelSplitterNode.h | 38 + .../include/LabSound/core/ConcurrentQueue.h | 61 + .../include/LabSound/core/ConvolverNode.h | 76 + .../include/LabSound/core/DelayNode.h | 54 + .../LabSound/core/DynamicsCompressorNode.h | 64 + .../include/LabSound/core/FloatPoint3D.h | 106 + .../LabSound/include/LabSound/core/GainNode.h | 50 + .../LabSound/include/LabSound/core/Macros.h | 71 + .../LabSound/include/LabSound/core/Mixing.h | 55 + .../include/LabSound/core/NullDeviceNode.h | 71 + .../include/LabSound/core/OscillatorNode.h | 66 + .../include/LabSound/core/PannerNode.h | 158 + .../LabSound/include/LabSound/core/Profiler.h | 45 + .../include/LabSound/core/SampledAudioNode.h | 104 + .../include/LabSound/core/StereoPannerNode.h | 58 + .../include/LabSound/core/WaveShaperNode.h | 40 + .../include/LabSound/core/WaveTable.h | 67 + .../include/LabSound/core/WindowFunctions.h | 265 + .../include/LabSound/extended/ADSRNode.h | 50 + .../LabSound/extended/AudioContextLock.h | 94 + .../LabSound/extended/AudioFileReader.h | 36 + .../include/LabSound/extended/BPMDelayNode.h | 42 + .../include/LabSound/extended/ClipNode.h | 46 + .../include/LabSound/extended/DiodeNode.h | 46 + .../include/LabSound/extended/FunctionNode.h | 46 + .../LabSound/extended/GranulationNode.h | 124 + .../include/LabSound/extended/Logging.h | 58 + .../include/LabSound/extended/NoiseNode.h | 62 + .../include/LabSound/extended/PWMNode.h | 32 + .../include/LabSound/extended/PdNode.h | 44 + .../include/LabSound/extended/PeakCompNode.h | 57 + .../LabSound/extended/PingPongDelayNode.h | 56 + .../include/LabSound/extended/PolyBLEPNode.h | 88 + .../LabSound/extended/PowerMonitorNode.h | 59 + .../LabSound/extended/RealtimeAnalyser.h | 86 + .../include/LabSound/extended/RecorderNode.h | 58 + .../include/LabSound/extended/Registry.h | 28 + .../include/LabSound/extended/SfxrNode.h | 133 + .../LabSound/extended/SpatializationNode.h | 80 + .../LabSound/extended/SpectralMonitorNode.h | 44 + .../include/LabSound/extended/SupersawNode.h | 45 + .../LabSound/include/LabSound/extended/Util.h | 102 + .../src/backends/FFTFrameAppleAcclerate.cpp | 162 + .../backends/RtAudio/AudioDevice_RtAudio.cpp | 313 + .../backends/RtAudio/AudioDevice_RtAudio.h | 48 + .../LabSound/src/backends/RtAudio/RtAudio.cpp | 11788 +++ .../LabSound/src/backends/RtAudio/RtAudio.h | 1294 + .../src/backends/RtAudio/RtAudio_LICENSE.txt | 33 + .../miniaudio/AudioDevice_Miniaudio.cpp | 368 + .../miniaudio/AudioDevice_Miniaudio.h | 234 + .../miniaudio/AudioDevice_Miniaudio.mm | 5 + sources/LabSound/src/core/AnalyserNode.cpp | 187 + .../src/core/AudioBasicInspectorNode.cpp | 22 + .../src/core/AudioBasicProcessorNode.cpp | 109 + sources/LabSound/src/core/AudioBus.cpp | 827 + sources/LabSound/src/core/AudioChannel.cpp | 97 + sources/LabSound/src/core/AudioContext.cpp | 673 + sources/LabSound/src/core/AudioDevice.cpp | 79 + .../src/core/AudioHardwareDeviceNode.cpp | 152 + .../src/core/AudioHardwareInputNode.cpp | 83 + sources/LabSound/src/core/AudioListener.cpp | 53 + sources/LabSound/src/core/AudioNode.cpp | 617 + sources/LabSound/src/core/AudioNodeInput.cpp | 185 + sources/LabSound/src/core/AudioNodeOutput.cpp | 224 + sources/LabSound/src/core/AudioParam.cpp | 218 + .../LabSound/src/core/AudioParamTimeline.cpp | 406 + .../src/core/AudioSummingJunction.cpp | 136 + .../LabSound/src/core/BiquadFilterNode.cpp | 262 + .../LabSound/src/core/ChannelMergerNode.cpp | 70 + .../LabSound/src/core/ChannelSplitterNode.cpp | 65 + sources/LabSound/src/core/ConvolverNode.cpp | 302 + sources/LabSound/src/core/DelayNode.cpp | 39 + .../src/core/DynamicsCompressorNode.cpp | 125 + sources/LabSound/src/core/GainNode.cpp | 104 + sources/LabSound/src/core/NullDeviceNode.cpp | 209 + sources/LabSound/src/core/OscillatorNode.cpp | 287 + sources/LabSound/src/core/PannerNode.cpp | 573 + .../LabSound/src/core/RealtimeAnalyser.cpp | 338 + .../LabSound/src/core/SampledAudioNode.cpp | 563 + .../LabSound/src/core/StereoPannerNode.cpp | 324 + sources/LabSound/src/core/WaveShaperNode.cpp | 116 + sources/LabSound/src/core/WaveTable.cpp | 288 + sources/LabSound/src/core/_SoundPipe_FFT.cpp | 3636 + sources/LabSound/src/extended/ADSRNode.cpp | 281 + .../LabSound/src/extended/AudioFileReader.cpp | 124 + sources/LabSound/src/extended/BPMDelay.cpp | 93 + sources/LabSound/src/extended/ClipNode.cpp | 165 + sources/LabSound/src/extended/DiodeNode.cpp | 82 + .../LabSound/src/extended/FunctionNode.cpp | 72 + .../LabSound/src/extended/GranulationNode.cpp | 193 + sources/LabSound/src/extended/LabSound.cpp | 446 + sources/LabSound/src/extended/NoiseNode.cpp | 127 + sources/LabSound/src/extended/PWMNode.cpp | 89 + sources/LabSound/src/extended/PdNode.cpp | 166 + .../LabSound/src/extended/PeakCompNode.cpp | 277 + .../src/extended/PingPongDelayNode.cpp | 90 + .../LabSound/src/extended/PolyBLEPNode.cpp | 482 + .../src/extended/PowerMonitorNode.cpp | 107 + .../LabSound/src/extended/RecorderNode.cpp | 234 + sources/LabSound/src/extended/Registry.cpp | 72 + sources/LabSound/src/extended/SfxrNode.cpp | 1180 + .../src/extended/SpatializationNode.cpp | 106 + .../src/extended/SpectralMonitorNode.cpp | 235 + .../LabSound/src/extended/SupersawNode.cpp | 195 + sources/LabSound/src/internal/Assertions.h | 58 + .../LabSound/src/internal/AudioDSPKernel.h | 42 + .../src/internal/AudioDSPKernelProcessor.h | 55 + .../LabSound/src/internal/AudioUtilities.h | 36 + sources/LabSound/src/internal/Biquad.h | 76 + sources/LabSound/src/internal/Cone.h | 41 + .../LabSound/src/internal/DelayDSPKernel.h | 52 + .../LabSound/src/internal/DelayProcessor.h | 37 + .../LabSound/src/internal/DenormalDisabler.h | 111 + sources/LabSound/src/internal/Distance.h | 62 + .../src/internal/DynamicsCompressor.h | 95 + .../src/internal/DynamicsCompressorKernel.h | 116 + .../LabSound/src/internal/EqualPowerPanner.h | 40 + sources/LabSound/src/internal/FFTConvolver.h | 50 + sources/LabSound/src/internal/FFTFrame.h | 112 + sources/LabSound/src/internal/HRTFDatabase.h | 42 + .../src/internal/HRTFDatabaseLoader.h | 80 + sources/LabSound/src/internal/HRTFElevation.h | 81 + sources/LabSound/src/internal/HRTFKernel.h | 60 + sources/LabSound/src/internal/HRTFPanner.h | 86 + sources/LabSound/src/internal/Panner.h | 36 + sources/LabSound/src/internal/VectorMath.h | 44 + sources/LabSound/src/internal/ZeroPole.h | 42 + .../internal/src/AudioDSPKernelProcessor.cpp | 97 + .../src/internal/src/AudioUtilities.cpp | 26 + sources/LabSound/src/internal/src/Biquad.cpp | 487 + sources/LabSound/src/internal/src/Cone.cpp | 57 + .../src/internal/src/DelayDSPKernel.cpp | 179 + .../src/internal/src/DelayProcessor.cpp | 33 + .../LabSound/src/internal/src/Distance.cpp | 61 + .../src/internal/src/DynamicsCompressor.cpp | 263 + .../internal/src/DynamicsCompressorKernel.cpp | 470 + .../src/internal/src/EqualPowerPanner.cpp | 153 + .../src/internal/src/FFTConvolver.cpp | 95 + .../LabSound/src/internal/src/FFTFrame.cpp | 254 + .../src/internal/src/FFTFrameKissFFT.cpp | 139 + .../src/internal/src/HRTFDatabase.cpp | 94 + .../src/internal/src/HRTFDatabaseLoader.cpp | 100 + .../src/internal/src/HRTFElevation.cpp | 262 + .../LabSound/src/internal/src/HRTFKernel.cpp | 115 + .../LabSound/src/internal/src/HRTFPanner.cpp | 313 + .../LabSound/src/internal/src/VectorMath.cpp | 789 + .../LabSound/src/internal/src/ZeroPole.cpp | 48 + .../third_party/concurrentqueue/LICENSE.md | 62 + .../third_party/concurrentqueue/README.md | 484 + .../concurrentqueue/concurrentqueue.h | 3742 + .../concurrentqueue/lightweightsemaphore.h | 411 + .../third_party/kissfft/_kiss_fft_guts.hpp | 164 + .../LabSound/third_party/kissfft/kiss_fft.hpp | 124 + .../third_party/kissfft/kiss_fftr.hpp | 46 + .../LabSound/third_party/kissfft/kissfft.hpp | 299 + .../third_party/kissfft/src/kiss_fft.cpp | 408 + .../third_party/kissfft/src/kiss_fftr.cpp | 159 + .../libnyquist/include/libnyquist/Common.h | 694 + .../libnyquist/include/libnyquist/Decoders.h | 136 + .../libnyquist/include/libnyquist/Encoders.h | 44 + .../libsamplerate/include/samplerate.h | 189 + .../LabSound/third_party/miniaudio/LICENSE | 47 + .../LabSound/third_party/miniaudio/README.md | 233 + .../third_party/miniaudio/miniaudio.h | 65583 ++++++++++++++++ sources/LabSound/third_party/ooura/fftsg.h | 219 + .../LabSound/third_party/ooura/src/fftsg.cpp | 3358 + .../third_party/readerwriterqueue/LICENSE.md | 28 + .../third_party/readerwriterqueue/atomicops.h | 665 + .../readerwriterqueue/readerwriterqueue.h | 894 + win64/CMakeLists.txt | 16 + win64/libs/libnyquist.lib | Bin 0 -> 6399316 bytes win64/libs/libnyquist_d.lib | Bin 0 -> 8967292 bytes win64/libs/libwavpack.lib | Bin 0 -> 587350 bytes win64/libs/libwavpack_d.lib | Bin 0 -> 536542 bytes win64/libs/samplerate.lib | Bin 0 -> 1544456 bytes 216 files changed, 119507 insertions(+), 6 deletions(-) create mode 100644 android/arm64-v8a/liblibnyquist.a create mode 100644 android/arm64-v8a/liblibwavpack.a create mode 100644 android/arm64-v8a/libsamplerate copy.a create mode 100644 android/arm64-v8a/libsamplerate.a create mode 100644 android/armeabi-v7a/liblibnyquist.a create mode 100644 android/armeabi-v7a/liblibwavpack.a create mode 100644 android/armeabi-v7a/libsamplerate.a create mode 100644 android/x86/liblibnyquist.a create mode 100644 android/x86/liblibwavpack.a create mode 100644 android/x86/libsamplerate.a create mode 100644 android/x86_64/liblibnyquist.a create mode 100644 android/x86_64/liblibwavpack.a create mode 100644 android/x86_64/libsamplerate.a create mode 100644 sources/LabSound/CMakeLists.txt create mode 100644 sources/LabSound/LabSound.cmake create mode 100644 sources/LabSound/include/LabSound/LabSound.h create mode 100644 sources/LabSound/include/LabSound/core/AnalyserNode.h create mode 100644 sources/LabSound/include/LabSound/core/AudioArray.h create mode 100644 sources/LabSound/include/LabSound/core/AudioBasicInspectorNode.h create mode 100644 sources/LabSound/include/LabSound/core/AudioBasicProcessorNode.h create mode 100644 sources/LabSound/include/LabSound/core/AudioBus.h create mode 100644 sources/LabSound/include/LabSound/core/AudioChannel.h create mode 100644 sources/LabSound/include/LabSound/core/AudioContext.h create mode 100644 sources/LabSound/include/LabSound/core/AudioDevice.h create mode 100644 sources/LabSound/include/LabSound/core/AudioHardwareDeviceNode.h create mode 100644 sources/LabSound/include/LabSound/core/AudioHardwareInputNode.h create mode 100644 sources/LabSound/include/LabSound/core/AudioListener.h create mode 100644 sources/LabSound/include/LabSound/core/AudioNode.h create mode 100644 sources/LabSound/include/LabSound/core/AudioNodeInput.h create mode 100644 sources/LabSound/include/LabSound/core/AudioNodeOutput.h create mode 100644 sources/LabSound/include/LabSound/core/AudioParam.h create mode 100644 sources/LabSound/include/LabSound/core/AudioParamTimeline.h create mode 100644 sources/LabSound/include/LabSound/core/AudioProcessor.h create mode 100644 sources/LabSound/include/LabSound/core/AudioScheduledSourceNode.h create mode 100644 sources/LabSound/include/LabSound/core/AudioSetting.h create mode 100644 sources/LabSound/include/LabSound/core/AudioSourceProvider.h create mode 100644 sources/LabSound/include/LabSound/core/AudioSummingJunction.h create mode 100644 sources/LabSound/include/LabSound/core/BiquadFilterNode.h create mode 100644 sources/LabSound/include/LabSound/core/ChannelMergerNode.h create mode 100644 sources/LabSound/include/LabSound/core/ChannelSplitterNode.h create mode 100644 sources/LabSound/include/LabSound/core/ConcurrentQueue.h create mode 100644 sources/LabSound/include/LabSound/core/ConvolverNode.h create mode 100644 sources/LabSound/include/LabSound/core/DelayNode.h create mode 100644 sources/LabSound/include/LabSound/core/DynamicsCompressorNode.h create mode 100644 sources/LabSound/include/LabSound/core/FloatPoint3D.h create mode 100644 sources/LabSound/include/LabSound/core/GainNode.h create mode 100644 sources/LabSound/include/LabSound/core/Macros.h create mode 100644 sources/LabSound/include/LabSound/core/Mixing.h create mode 100644 sources/LabSound/include/LabSound/core/NullDeviceNode.h create mode 100644 sources/LabSound/include/LabSound/core/OscillatorNode.h create mode 100644 sources/LabSound/include/LabSound/core/PannerNode.h create mode 100644 sources/LabSound/include/LabSound/core/Profiler.h create mode 100644 sources/LabSound/include/LabSound/core/SampledAudioNode.h create mode 100644 sources/LabSound/include/LabSound/core/StereoPannerNode.h create mode 100644 sources/LabSound/include/LabSound/core/WaveShaperNode.h create mode 100644 sources/LabSound/include/LabSound/core/WaveTable.h create mode 100644 sources/LabSound/include/LabSound/core/WindowFunctions.h create mode 100644 sources/LabSound/include/LabSound/extended/ADSRNode.h create mode 100644 sources/LabSound/include/LabSound/extended/AudioContextLock.h create mode 100644 sources/LabSound/include/LabSound/extended/AudioFileReader.h create mode 100644 sources/LabSound/include/LabSound/extended/BPMDelayNode.h create mode 100644 sources/LabSound/include/LabSound/extended/ClipNode.h create mode 100644 sources/LabSound/include/LabSound/extended/DiodeNode.h create mode 100644 sources/LabSound/include/LabSound/extended/FunctionNode.h create mode 100644 sources/LabSound/include/LabSound/extended/GranulationNode.h create mode 100644 sources/LabSound/include/LabSound/extended/Logging.h create mode 100644 sources/LabSound/include/LabSound/extended/NoiseNode.h create mode 100644 sources/LabSound/include/LabSound/extended/PWMNode.h create mode 100644 sources/LabSound/include/LabSound/extended/PdNode.h create mode 100644 sources/LabSound/include/LabSound/extended/PeakCompNode.h create mode 100644 sources/LabSound/include/LabSound/extended/PingPongDelayNode.h create mode 100644 sources/LabSound/include/LabSound/extended/PolyBLEPNode.h create mode 100644 sources/LabSound/include/LabSound/extended/PowerMonitorNode.h create mode 100644 sources/LabSound/include/LabSound/extended/RealtimeAnalyser.h create mode 100644 sources/LabSound/include/LabSound/extended/RecorderNode.h create mode 100644 sources/LabSound/include/LabSound/extended/Registry.h create mode 100644 sources/LabSound/include/LabSound/extended/SfxrNode.h create mode 100644 sources/LabSound/include/LabSound/extended/SpatializationNode.h create mode 100644 sources/LabSound/include/LabSound/extended/SpectralMonitorNode.h create mode 100644 sources/LabSound/include/LabSound/extended/SupersawNode.h create mode 100644 sources/LabSound/include/LabSound/extended/Util.h create mode 100644 sources/LabSound/src/backends/FFTFrameAppleAcclerate.cpp create mode 100644 sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.cpp create mode 100644 sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.h create mode 100644 sources/LabSound/src/backends/RtAudio/RtAudio.cpp create mode 100644 sources/LabSound/src/backends/RtAudio/RtAudio.h create mode 100644 sources/LabSound/src/backends/RtAudio/RtAudio_LICENSE.txt create mode 100644 sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.cpp create mode 100644 sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.h create mode 100644 sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.mm create mode 100644 sources/LabSound/src/core/AnalyserNode.cpp create mode 100644 sources/LabSound/src/core/AudioBasicInspectorNode.cpp create mode 100644 sources/LabSound/src/core/AudioBasicProcessorNode.cpp create mode 100644 sources/LabSound/src/core/AudioBus.cpp create mode 100644 sources/LabSound/src/core/AudioChannel.cpp create mode 100644 sources/LabSound/src/core/AudioContext.cpp create mode 100644 sources/LabSound/src/core/AudioDevice.cpp create mode 100644 sources/LabSound/src/core/AudioHardwareDeviceNode.cpp create mode 100644 sources/LabSound/src/core/AudioHardwareInputNode.cpp create mode 100644 sources/LabSound/src/core/AudioListener.cpp create mode 100644 sources/LabSound/src/core/AudioNode.cpp create mode 100644 sources/LabSound/src/core/AudioNodeInput.cpp create mode 100644 sources/LabSound/src/core/AudioNodeOutput.cpp create mode 100644 sources/LabSound/src/core/AudioParam.cpp create mode 100644 sources/LabSound/src/core/AudioParamTimeline.cpp create mode 100644 sources/LabSound/src/core/AudioSummingJunction.cpp create mode 100644 sources/LabSound/src/core/BiquadFilterNode.cpp create mode 100644 sources/LabSound/src/core/ChannelMergerNode.cpp create mode 100644 sources/LabSound/src/core/ChannelSplitterNode.cpp create mode 100644 sources/LabSound/src/core/ConvolverNode.cpp create mode 100644 sources/LabSound/src/core/DelayNode.cpp create mode 100644 sources/LabSound/src/core/DynamicsCompressorNode.cpp create mode 100644 sources/LabSound/src/core/GainNode.cpp create mode 100644 sources/LabSound/src/core/NullDeviceNode.cpp create mode 100644 sources/LabSound/src/core/OscillatorNode.cpp create mode 100644 sources/LabSound/src/core/PannerNode.cpp create mode 100644 sources/LabSound/src/core/RealtimeAnalyser.cpp create mode 100644 sources/LabSound/src/core/SampledAudioNode.cpp create mode 100644 sources/LabSound/src/core/StereoPannerNode.cpp create mode 100644 sources/LabSound/src/core/WaveShaperNode.cpp create mode 100644 sources/LabSound/src/core/WaveTable.cpp create mode 100644 sources/LabSound/src/core/_SoundPipe_FFT.cpp create mode 100644 sources/LabSound/src/extended/ADSRNode.cpp create mode 100644 sources/LabSound/src/extended/AudioFileReader.cpp create mode 100644 sources/LabSound/src/extended/BPMDelay.cpp create mode 100644 sources/LabSound/src/extended/ClipNode.cpp create mode 100644 sources/LabSound/src/extended/DiodeNode.cpp create mode 100644 sources/LabSound/src/extended/FunctionNode.cpp create mode 100644 sources/LabSound/src/extended/GranulationNode.cpp create mode 100644 sources/LabSound/src/extended/LabSound.cpp create mode 100644 sources/LabSound/src/extended/NoiseNode.cpp create mode 100644 sources/LabSound/src/extended/PWMNode.cpp create mode 100644 sources/LabSound/src/extended/PdNode.cpp create mode 100644 sources/LabSound/src/extended/PeakCompNode.cpp create mode 100644 sources/LabSound/src/extended/PingPongDelayNode.cpp create mode 100644 sources/LabSound/src/extended/PolyBLEPNode.cpp create mode 100644 sources/LabSound/src/extended/PowerMonitorNode.cpp create mode 100644 sources/LabSound/src/extended/RecorderNode.cpp create mode 100644 sources/LabSound/src/extended/Registry.cpp create mode 100644 sources/LabSound/src/extended/SfxrNode.cpp create mode 100644 sources/LabSound/src/extended/SpatializationNode.cpp create mode 100644 sources/LabSound/src/extended/SpectralMonitorNode.cpp create mode 100644 sources/LabSound/src/extended/SupersawNode.cpp create mode 100644 sources/LabSound/src/internal/Assertions.h create mode 100644 sources/LabSound/src/internal/AudioDSPKernel.h create mode 100644 sources/LabSound/src/internal/AudioDSPKernelProcessor.h create mode 100644 sources/LabSound/src/internal/AudioUtilities.h create mode 100644 sources/LabSound/src/internal/Biquad.h create mode 100644 sources/LabSound/src/internal/Cone.h create mode 100644 sources/LabSound/src/internal/DelayDSPKernel.h create mode 100644 sources/LabSound/src/internal/DelayProcessor.h create mode 100644 sources/LabSound/src/internal/DenormalDisabler.h create mode 100644 sources/LabSound/src/internal/Distance.h create mode 100644 sources/LabSound/src/internal/DynamicsCompressor.h create mode 100644 sources/LabSound/src/internal/DynamicsCompressorKernel.h create mode 100644 sources/LabSound/src/internal/EqualPowerPanner.h create mode 100644 sources/LabSound/src/internal/FFTConvolver.h create mode 100644 sources/LabSound/src/internal/FFTFrame.h create mode 100644 sources/LabSound/src/internal/HRTFDatabase.h create mode 100644 sources/LabSound/src/internal/HRTFDatabaseLoader.h create mode 100644 sources/LabSound/src/internal/HRTFElevation.h create mode 100644 sources/LabSound/src/internal/HRTFKernel.h create mode 100644 sources/LabSound/src/internal/HRTFPanner.h create mode 100644 sources/LabSound/src/internal/Panner.h create mode 100644 sources/LabSound/src/internal/VectorMath.h create mode 100644 sources/LabSound/src/internal/ZeroPole.h create mode 100644 sources/LabSound/src/internal/src/AudioDSPKernelProcessor.cpp create mode 100644 sources/LabSound/src/internal/src/AudioUtilities.cpp create mode 100644 sources/LabSound/src/internal/src/Biquad.cpp create mode 100644 sources/LabSound/src/internal/src/Cone.cpp create mode 100644 sources/LabSound/src/internal/src/DelayDSPKernel.cpp create mode 100644 sources/LabSound/src/internal/src/DelayProcessor.cpp create mode 100644 sources/LabSound/src/internal/src/Distance.cpp create mode 100644 sources/LabSound/src/internal/src/DynamicsCompressor.cpp create mode 100644 sources/LabSound/src/internal/src/DynamicsCompressorKernel.cpp create mode 100644 sources/LabSound/src/internal/src/EqualPowerPanner.cpp create mode 100644 sources/LabSound/src/internal/src/FFTConvolver.cpp create mode 100644 sources/LabSound/src/internal/src/FFTFrame.cpp create mode 100644 sources/LabSound/src/internal/src/FFTFrameKissFFT.cpp create mode 100644 sources/LabSound/src/internal/src/HRTFDatabase.cpp create mode 100644 sources/LabSound/src/internal/src/HRTFDatabaseLoader.cpp create mode 100644 sources/LabSound/src/internal/src/HRTFElevation.cpp create mode 100644 sources/LabSound/src/internal/src/HRTFKernel.cpp create mode 100644 sources/LabSound/src/internal/src/HRTFPanner.cpp create mode 100644 sources/LabSound/src/internal/src/VectorMath.cpp create mode 100644 sources/LabSound/src/internal/src/ZeroPole.cpp create mode 100644 sources/LabSound/third_party/concurrentqueue/LICENSE.md create mode 100644 sources/LabSound/third_party/concurrentqueue/README.md create mode 100644 sources/LabSound/third_party/concurrentqueue/concurrentqueue.h create mode 100644 sources/LabSound/third_party/concurrentqueue/lightweightsemaphore.h create mode 100644 sources/LabSound/third_party/kissfft/_kiss_fft_guts.hpp create mode 100644 sources/LabSound/third_party/kissfft/kiss_fft.hpp create mode 100644 sources/LabSound/third_party/kissfft/kiss_fftr.hpp create mode 100644 sources/LabSound/third_party/kissfft/kissfft.hpp create mode 100644 sources/LabSound/third_party/kissfft/src/kiss_fft.cpp create mode 100644 sources/LabSound/third_party/kissfft/src/kiss_fftr.cpp create mode 100644 sources/LabSound/third_party/libnyquist/include/libnyquist/Common.h create mode 100644 sources/LabSound/third_party/libnyquist/include/libnyquist/Decoders.h create mode 100644 sources/LabSound/third_party/libnyquist/include/libnyquist/Encoders.h create mode 100644 sources/LabSound/third_party/libsamplerate/include/samplerate.h create mode 100644 sources/LabSound/third_party/miniaudio/LICENSE create mode 100644 sources/LabSound/third_party/miniaudio/README.md create mode 100644 sources/LabSound/third_party/miniaudio/miniaudio.h create mode 100644 sources/LabSound/third_party/ooura/fftsg.h create mode 100644 sources/LabSound/third_party/ooura/src/fftsg.cpp create mode 100644 sources/LabSound/third_party/readerwriterqueue/LICENSE.md create mode 100644 sources/LabSound/third_party/readerwriterqueue/atomicops.h create mode 100644 sources/LabSound/third_party/readerwriterqueue/readerwriterqueue.h create mode 100644 win64/libs/libnyquist.lib create mode 100644 win64/libs/libnyquist_d.lib create mode 100644 win64/libs/libwavpack.lib create mode 100644 win64/libs/libwavpack_d.lib create mode 100644 win64/libs/samplerate.lib diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index 28950261..bc5cde9d 100644 --- a/android/CMakeLists.txt +++ b/android/CMakeLists.txt @@ -33,6 +33,21 @@ set_target_properties(uv PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${platform_spec_path}/include/uv ) +add_library(libsamplerate STATIC IMPORTED GLOBAL) +set_target_properties(libsamplerate PROPERTIES + IMPORTED_LOCATION ${platform_spec_path}/libsamplerate.a +) + +add_library(libwavpack STATIC IMPORTED GLOBAL) +set_target_properties(libwavpack PROPERTIES + IMPORTED_LOCATION ${platform_spec_path}/liblibwavpack.a +) + +# add_library(libnyquist STATIC IMPORTED GLOBAL) +# set_target_properties(libnyquist PROPERTIES +# IMPORTED_LOCATION ${platform_spec_path}/liblibnyquist.a +# ) + add_library(webp STATIC IMPORTED GLOBAL) set_target_properties(webp PROPERTIES IMPORTED_LOCATION ${platform_spec_path}/libwebp.a @@ -182,6 +197,9 @@ list(APPEND CC_EXTERNAL_LIBS png webp uv + libsamplerate + # libnyquist + libwavpack android_platform ${PhysXSDK} ${ARSDK} diff --git a/android/arm64-v8a/liblibnyquist.a b/android/arm64-v8a/liblibnyquist.a new file mode 100644 index 0000000000000000000000000000000000000000..fad3373beafa07e35237c4a59bfef504f6f69657 GIT binary patch literal 2142564 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�{SMwQzmeEJtA@Jzs7^47u}Op8R#WmXQ1~B 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
B%>{IS13KcJ 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πU%G_WMdONvc_|Rf(M2BLwp{1l?wZwiiIp63X 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≦@4ymz)7L840!l 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 du&+i2R2Y~6)AwaSrYsrJtyV@H9+VMo2Qp%? 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%0DMO z^yu|l_=KN^v*P21~zusK-U-hqns>gA7UYEtde0bDxGYzK8 zs{l*tqzCHM=hhZ>U8}Ian||C-ABSDn_1IV6dv$qD(UDw;)67{9I|xkg*IP&RzYlDt zehk*FSM%Fi+}mwK)@%@PLFd6)-gwoS)ZVqZJ;TyL7aUJt7Q z`^=7_xL@jFWf=H9b>cdLan5xaUa;~yaf9k%Auzk{DptRDVm&Ml=0=@#+$^xVzNf*s zFX^~tU=!7Iy=j&O(>c{p#pF23EI>s(RR3up97RmwK!P`%E)&9I5`QknV5on(Cc6hBw4GY`;9% zr;ka!>G*zN0S%1!5caLr`_$%E|4#(7b6)Q;)8+9;N*ZMtqF#CAlQ2xg8 z-H9J)vyUl5^C0zpFZL(3pP~B3J(a_|cABNzs_PI&yw1PgG`kGUZxdn(ut9a$Jg|0k z#)b@74dQe;tH3;(ZKyMy18T4@smFi~`!;&yXr|vpxzUf>qxN90Yf#rCbW>h4ne z^Vt8G_CxF^4IR_oq5i1NuYIqlF1o!w#AJ0p7;4s6pZ|0}aN2&3V?7mW=0NwU8?e7z zYnk4a_*<0>C@UG*rsPh0G2(-IOslu-c6Pbz5jRVPndRz!({ww%L$yW!+295B z8yEI<(;jTtx3S;&u%G*Y)*D-Z4j?YTjDq5h%9 zi4uQ%UEc)abLzR?G@A$Jw+S7a8L)_E^&HPx><{8SIxnArrNw(3maeB`dkPG+RF6Yj zrJM46SLel^$I0=`i+Ei>z3In6U{RY83xRpSwAT~CZfL4r3~d#d(RgOlTT5?q+}=Fd z;*M5#mfh86Ry(aX3vqq%UYB}IgMF*tYv%IyGP@qHBSx2{H{JFcuvt348~mcSH$~?S z>BoAHqm6CXTHO%ePd(pQ2RdE?*cZ|JHk3ohi+*ne`-5V?!_vp}4cO<=eXC!qGVP0Q z!#r?%{I9Q{t2wrgTZOo__4RWc4?6B!#94pP*L7Tb-51nmkN*YA^{V~-5EszphX1gS z?^-gTeaXNMCC9o-26c3+@EG1()l|KxuZ$9Zo00)Ejy;IjaoQilTRrBl!v4YPxw&8W zr_ZpTo3Ha>wbFl7+V!6e;~Vvh_Sk37r8jZx_ET>kg!q*9A+p&%>{W7H$CBgsEjdB^ zp^uZ9&`Im#b<=*@eZGp@q03gA)>;b|)vRE@cGB_RTE9z;0}l0PGsZP9;`?gt&4>>p z{#$+C-9)_Zdr8DkDRgd|Mc0*;h~u2hexE+}gf7iHbX{j6#y;m3%p1)ub)J_YzD#QtjHfwB zEn;ITRFtn?>Rn|!=p7s9f%+Kf2&RwqjmMS4?qfde8>;(3eaEk!|EOJBXB=Y7)$_VK zy4*PSv7b7A7Fb?uH}=C&%kHlk?5pjd_WjYZsdnpp)*${d^?c))P5E>wN&6Iyc~p>8}xi)6MaaxX(;0RspoprECR;u^eHw4%)ag(XY`x8=iU;3-SLyg4b=g3 zAE<(ceXa8ceW0(3{T8uTrp0bw0Q$rd~w1uz%pZ(owzj zGwA$L9(3N??Wq2!ZE!v3S(oD7uz#8Mrk*iO_wyiPe7cXRO?x^HET`vUoA9)o3Yo?6 z`W#SiKgGO^j|&$aW3S_V+%N3oA1tY)M4i=3^)}0~llr5!NWFcOt~(DxjD4L}PrG#+ z1BkKj?QEirdW?%9KBS(TW85t4J4m;GGqhGAzTDR8C&tSf>8@nFOZ(&N~_$6!WF=cO28?c>Cl(`qkL*gsQiZNdwE z+*KpKqk674&DMkQn5m;9K4v#jmX7a>`0!@LdsX~6#OHMU=AY;6>x2rt zH==V~@Z8|E&o{3l*1q3e;C!P!_yuwH{T=mMv$9>)AGLYt!Db!7T7c=cc)?!ZTfNwV zw&*e@;=T5L3-wyFIGBCzQ?GS;W`Ql!W73AcLHD6E*vFq2=-jRX^Q-3@C z@6`UAzNq^kTBA&#W7JlkhOUzb`|Wu~lfF%PkkS2Z5cWN&>sxP*+S%=zh`7NjY~%6g zuydEdzQtPO-;SM)_jEFdi`N@hW|y-TF+rmo?ROsg^mD!Gwzt3mGE)QLPYZkhLD+Af zKR4uq{ME<9AnaeZnaAp7h{uCn=LBAObRD=1^;CQRV1a$Q4OQ5uj<^k*W8;i_IVLMYcuWx>iKyX z@%HDc|JJX|Hk=c5?99!K)jn4u7HPG;f8AhOvj)t*hcvO?Ib?~R!)ncTd#FEZ8%hs0 zbAyGzbRPPGeYTnNlW~Z*&rRIVl#WaNAIHAI`gpFVZ|F8Wh#05#yx#Fe&j;y#Mi#N{ zHsjo++iZ7s^{BeEz3KL~chU1|ea_iLpU@hE5YHN#h3a7w4W`SAgV~=W6uzD<@v8$? z>t^cFSOwa+ep1It~;x+ zPnWAV-Cx#%`Rut`t5Bg^+WOdW?4{qOK2y=!jiaqx+(z}%qyBeezgJ&77tW8qkFT%M z?ed4>J$_yO&{mN``ORCvAH@J{;QYWeDS zbLU%^YN9*5+^VbfYuqHNvnxADzt9zt+mycgwLa0y?Q4C&SPlu*tNXiXq)%9K>t}O( zFjHsOLY+u88kN;y`sryl$Bpbd`?3e?7r4n;hp(~QrHz-{copAB)xRT}5Yl;6+v(s= zZUU^@S6x3gR{yzLP@sM9NX73AKCuq z^=WQp@MRajVtRY!G2&Jyif7*I0pfmx-#dqR!r(2F#Ipu(b2D+*!BT(8NaA6GpL#9v zw80ynNjz`x*c9TvL!|zJrxA}EJaIJfYJ)J;O*c~+ThOyDL!xTj_}9VUDkiz z3lyL1Dfzz^6VDku@F;P&SH?eeKk!6&aIo;ys&e^yD{ zeYoTYXNX4(o?J*gWAMiFiSri=`FJ097jeH&>JL4ac*5Z4-$FcV@b+VfyN-}L`2obk z24DCh@yerQyc6wp^ppJbMHC+}__BwHCk=k^JmNWnC+{TgK3eL}o=!YsaQ|rH8G|2n zJ#nkQ)cN8p;(mk2uOXf=c-Pa3XAPe0Puz8k)PG_X@#p}_T}z2q8hpf4#2o`={HiqZ zfWdn#Af7b%_zA>w22aflwCs(Kmt{+crwm^DIPn^TM{qv%94mGHIfvq-2JeUS zX{EvYoI~*rd)~Bh{2zexY{1~(;yjWx_)XW6PR`)HaGrG^C+qnp{D~O6w2E{x29G>L z+&W(BJOY3G25jbI)5&Q`o{5$xQHh8L>^z#PqeI0RMKoYmKqQ0>MVpmeuFPY|4A5p4Ej&j;Em9KTxUrA2ho4R z1|Nw2lQ#IRJxfBzBEahxsV2f??1!JmL{ zNrSuKTh8G7z&E!#F6-8(TIE}}D`N1o;akSwJHj_!B*gup34HU9lllwcTf*RN;ak?= zzb~Wuc*aYeBj8)q;19sJN`vnR-y9LCb0vHW82sZ~sobQ&zqo;T&fs^zH@CX3(i{8G z6~09b{;nF2w9grXubNEUx`@v8Rdb_ERn2>WU9VX9y1_?*EP!DsiyQhx;ZPlNw5m2@%&UjU!2sMNU? zKKl*sgU<Y4CpV*{#O8y82(Laa_ko3_bup zXAJ&rh~lj&Qs*Z4>^FEX_?$5KeyV=D+^oT0J%zaI8mZqCK8Fpy_cDsFRO6Q3*tb#e z*%6ogm4_)lVDMh>Ice~F;d9R5GvKrPTB+X>K1U3mfzKI(w}H>rby8M+=|m5gIzur3tTgzum`6E$GJgNR!GD9# zND)sO{MXxv=M28;Y~t=CEPM0QgVh+c4-y8bl=zZ2tzXO7g5Ttx9vgEy@pUTN?{ z)%-^5J5)aP#`QlB<4nNdXJVX58hrR5(#aWo7<~4sepFZga`+rG_!BRaPL;vi!{_V* zsWTNmyHxw?>aT%sVS`saMfz!j_d$H#;9cOe?|!MT=WW`zxWQ+s`e|Nm@HZw9cdGHG zZaqukbI9P|tNFLqsWAAD#}cnK_yO=atH!yy`UBy!OWnVz%ddvdVS|6Xiu7y#F5^#z z&z`j8x5Ce;!5#3k(%`?V*LHtXzUs|S57rwO5)T-BEc{Fwd@lUV8T_@`q~lie7rn9m zQurA$cy=bmXAFMzSmKu9=W_V(H~6@|6rV8o4;VM}b!y%E?2Nor8a#l!IMg^@H~wnm zC7zM|^XIADYJ(qwyf~kf@o%X4z4kw3@H>!~3WLu@UTO{A1bOkQa`eVN_eEY}20s^h z(Z^ri_+iLPnHvA<@(Ylcpuu-XUQ!01fxOfhychD~F??Qzyf|Nw<*uIue+<4m@={^& z0P^B~PU<{`yhIHCi}F$XpE3Acd_3}!FnINSq@OkTcF2qV9Hy>* zZ{#Ix@B@&Sw80NYUh)S2BuwS{mP!2(@)9?ADe_Wn@af1)MveD%>-jM9VyQgT<)7fZ z;5Yd0$V=6WGJcx!Mf+d2Qt}s(m!QGNBQGg~cST-m4Bi)c@w_DUXCp6BgRi-O>Qia( zX2^>}wL@>*AAUHG;&s2P%Ud8XNrNv!UUCNSguJ*7pI_@k`VoVliM#~Y$a1ehUQz~M zguK)k{1eqq?SJ@HsWTXPNgMn&{|bXILtbhP{?-hN_r4+Zrywsega0&;;;RgvLSD)YKNrDI-&<0DPxu)(_(=F! zZSd{jr}LjuXZ7EyJ|TmznFt>Y-V=V-8ax6&y>CnXIq)-P@agcg%Ha3G&$6{r=S27! zH24bmnKJmf@UzC?Q`pbA-#(d?x#8@ZRjF!8@>@A4>f=`)Tl%Y96C~t~U6+ z?B~CvPB-?`;1TxI;CIg_{aS;+c|LLPM^fLxei}S~F2z?Fye0ctBXu%kC_ZTL;q0fu zo3Wn;pI%Km&by@k!xLu69yk2 zC7w0-XfSdt)eDJ74c-&|u+rdjRGzdyjvu7Xbo94?!SB0;;*$nH5&bP^ z@J{G&?!46hK+ThMxv`%lKdzE^mBDXbM7->08UN!$#DfMOIgfbC;H#DIy4)IrFBwPN z^NZAfbvp5=!7m?8ywc#O4Iu9LRqFIddqclVo_?0%D-8bi6U1u`J{0Zss#fUDPjc4s zdnrCVGbVqxG2G5Nm{glBwqP;Z+-vRCQHI@38qP=m0FF|{&4Za`R z>nxEv)6w3L!GBiAr_OJM!B0keYYlFpz1~u({{Y$>Gx(RvaIIfu@U>OMUE4{W{%CL5 z;BmA!ZSb!jB%Qp$hoZf{=2Cw-+8Z}`2eh}^;4dXe-?_cixd`nI8T=`;^&9+Tv^Qb!C1`Kf;QOJyuGUh2I@%jH_-$xc+Tcf^U3r7QeI5DWvwzHD<8d_g zEaGv4>(66!-m4A%(rNH>2U$-~f8rs7UjW}SZDsu0XDHrkCwT|><~Mj8z9kI)^<2`) z8hj{xbL}Yghr_q9!CSz$w88I#Z+U~C2;Y1=N&Qc!P<`SCzYV@s8~o>^Dc-rW)HxKs zMRt*V0es6C{Nu;r=dLpTWccPc_!9V*F!+A(Eo<U6 zZ}2DJo3Fjp9}eH*244=}sttZ3=ELqiq|VdNQ9UCD{}uC!jKRlX-fOv}&Ohdpj^E(T zalMc*cpuDfvj#s9*9)#arM?gI+pxhu#e5@e@V{M8^~oE2NQk&^FRB0KHN@ivzw>nB z)dv3^$F*~Bsq^VdijV9g`H<&`XAFKje75$L@r~fK-{9xK=Y+xMolp8%gTHYXao2uQ z{{_tJ!Uq2*=5=X2EQ0S`>-%vohIyUFZdic_+t26ZSXPh*}1>0=PDjQ4ZaI} zuB@fO!8|!>@H;SX%o)51{B(aU^}oS+HezrG{LC2qQOp~y zZ=}x6m`C{y{`qpWDZHohqn4I&fr(XiMvmg`uoG5h{4~zn&LACzZU*jL8yfwzvN`pUzd4gkv)ESI%HDK`HF;7Suyu3fvCui`U?P$GZd}d>NV6xZ5s%O!b z#4p>6xcxf>iuY(mJaHXydp)n>!^^aOsTFv{ma$wOdUUs@a%*>?*HL<~t_OF3hrka7 z4;y?GxYtR6Zp44C>Z6bAIJghIE$i$`fXj`7hYX#S(5XVXtgn~6+Sh%C{)yl@=!a15 zJvJ}3BJUG$fajp^*_l8P{BM_P{g(E6ZjCs8mxDDgwGwTb*^$g!ccFMxXT$p4Pdib3 zHd<=Ox3K?O)>QEI27jy@=^)Hr|E{0^hWI${V;qElJHQ_^`0?O5gMV=d>7yHLXxCea zcf@47c5O@jYW=U&&sBG_w`=wz{@ISy-*U9udQthP*9*6}g}A-;TfJjX+n-V^KaqTJ zk&Lz6Zf~iTzK=i%{CB&arB+32st^0xXJ1`^^?jZLCNe2nC$?oRPlYJAn3 zpC0VrbJzOb{sfp?9VotRpycwv0P?FphtwPEci*4tW8E$J2YV6E%$EG6=EQ67lKeF{@v{3Q zzZ^PM^Cce+9c!NC_d>_DQ1WA;lYL0?PS7b+_aXGg?V13cN_D@dF5d+@QG@@u9o0Ym zn2bLPI-zGJ|7cH&cN+W!=meI?__olosw96LI++!cPlrzJ3zC1ZAC;S`mi&C^1P$H= zI*FHM{NaetXC?p5LHeFIC2z^`?@GRsJBo#7}qVO$R$hIsE!QsRfRc#fJ?3bPwVc248m^ z@yr2I=j*=2EyJHscjA77ckD_$VeqeG#KU__{V(8i+Tg?0{Kodp;B!tQ?&~OZuJ#d+ z8@$p>yxQQykQb-wM|xxbm%{&$!Sz2pW{+bAuQ;A~LXC5Eb)Gzwc-G+i!GD+0uJ6$g zt5iR&t8*UwDO2Z-x_lk_VbI`v!k?7EoA{_cH3s*gT^_g8e+T_4YVf1rPo=?Q=${UC z9?%>6*%AKK8oqUhKVGA~_o83L41QsZ>K|A0HNCNZXbACYga38}ai^Mp)s64dn|R3J zYc3=1Gj!IYAEr7;oypMW-}mGCJll(OJbTFa9P$!1`13xBuQd4Y$cw`zbxuJ&%Z&Q$ zhT}JA@CjFvewjz=e2VcZXz(-9uTlmdgZLVQ-;LwQ(^=}D9-wlg2CqB}?KSwXI4&Gr zq|TZXC_Z5DzR*b;d=hkW2A>UoYK?JkVPDess_R|7aUR=qKQy@3)#E^w!5@tg=im8c zox9OLy}R4;8}$1gN%1j*PeT9H*Liwlot@x+h0$+4$Zyg(?(Rju%^Ca%^jo(v&R>Ck z8!>oW^tXVavlrTxbJ^A0P|r%%-&68mS>NCt(BCo!x1eJghE>+M`OHotMhPOe(|BC6EXOQN>}&ijKO!a=S!tlE$)w%lbp3$^*??8 zEwjATCd`L7B_6v+^8GpfpOPlQ_o3X+)%d8(wSJKC_cSA({Ydg_ z5T9*Cz>}F z`ggGYGgAM4#IG~rk7j)%{w(;{8sp%8ZYy>AM(qevva>1&;7@U-wyemzL(V5 zRgJ&ehyCxPa+R#Tt=Nlrem-%WR;`8h^>wKgzgqH)o8nJgDRqWJ#|6$h{h*UxAa&x< zaW|uyaD5JePE9EhAL>~KoxHxmt2UqgSN&c!baM8O;cone&|mkYdZxfRe(iR|(+;Wc zhEDQqS)Z4n69i|S3h0D;OP#!$A8Vf@3#85+(D8t?&P3?=E|xk~&~d*db%sEvCM)B2 zgigLf^1a!I=Bi_;jmurrbQYrl~3zpB%U?hiRbXLrPBewOk2bf)7yUrPRQ2jcl1<#}p4;+@ST ze;o1geI!2v@k4i#{3^r;yGgF!uIuxep>rJK!zamjU2VI)hfBT-;+>-}N4;&Z)n|7Z?{Yr{I z_iGA_A%43nh<^_50>8|jmzG*BzabCDI&_+RM}e$!yL}y0YIO%^oyGQixYXM5 zD~d0J{_4I|pMAjjc<*D+4^{oaRU_@~cU6#XZ>O*6wT~XGS7OB1d`v*Sw6~Yw^C_Ru zYZpCOhYhCqi@;;xSDZxrd+;{kAs=zarvy|r>}|F^uP(KEgU7&oBQH;Zvrg)8(phEb zyaWG#Gjyid^XgLTc(jZCx%E)eIR)H@a+|>a+YJ61`eEtk6c|JNvG8XqxC{Il^uzm% z_}|d3eZQbUZdVTN@`AHJyThNe!DG;W3jOmFL&pW3UksgL@aNz!Nq}|q?>XxJaK&fD z*`FQY&s1<9?Y6E&zglkala-*>iGDzVbau0>!-f#Q47@pX)*eB8D)=toyV%#!rPe** zKJZ5`gZ}#f=+DoiA5Q%j@$IlX1pS-AS%0>D9jZPb2lpZVnUhGr#?VQr0Nt*y44rq7 zm*yXl0PA!`J^Ozsd43Su3$8@%?F96zmOs$z7(G}kc)S94f%itgddP@B3h|xt6v*+H zpuZgl9)nH~^q+z)4ATzU_j`{7$SE_V2l1X$-0jBnGyS;q;Td%;;}2z1^sbfOsF z9>=)H7>2vfL}sZyy2Ya@(WdE(YgvPwPeXc>~;s z`h0#V@r5|9xm*kFx~_%-`M9_n`ZK^;|83|$2+sPyoJ9Jc89MK(0PW{@hR$x#X=RL` z6X4H4<9P8R@7IBI{oBS!|DB(x{_3T@U61j0*w6IZMGw|*I4&*+kAWYC`u_^v2HfQ% z{noz_P~FDfhIxq}0UiVYDM0)=aMlT7ynW5kncb7(OMWE*);SX6?GUuf0sWIP-VOuz zfj`%sbY>g;y%zL+A!nko9r-QBlf^qze2d>mpbQCaf_`G{+{E6&yq9{P&SRNJa{V~huTXxCF<8u6o`6Ib=s8}mD%<3ayn z{!Kg5PviHTUG}>yYZt^P@O@F{pLEpm$|P*ePwT9CsWk=Prz*q#{SP4?#P_B+FPCDR zS#=i$9)$Q0yHb40-~*r^g+A9{SLg=}{n5~$Xz08GeZRq{UP|SLjPG}SigJ@Em)ko8 z`g!OCQUAH>QTvd)lIGj&gT9ZfzlRo8e(SB89;_?d;(Kde>TmYH@uT)dz;lNZ$K|o* z24B^Kxc%?1sQ5Qk|JVBdpQxWKrU&ay)&Dhb`U`R{>PT2pM-Cm z-w^6q-Gb^vI&8^f;6v*)xtA^`%|IL!mvwc(F z*ERSoHBr&=$%KqAwf%2y`KC)g$3yWo2JZu&xJAalWanM^Fhla*Cy-9X4U*poKl43^ zvu|GHC9LK_dSm_&{LC8siQe!53E}ul;X}sY6X1he%{S}nzk_xq4ITw|sB-GY-*^a> z8#VY`_)uf;UyrBwxY6Dt;6vaOss9=JRi(iv!3WQ$GJY0(NEv)Md?@=&#-9csVg_G| z_SPEwOz_a>Qs)!2x7y%waNid)ejR+seJuGI@Sz&>G(Nsc(H|W6J{a@Xh)-kw#{4Px zR%7rh5br&(kzH_%9<2SLAHw(5ncoectMR>b=3Sr@I#lYsgL3ou{yE2=4V^T;XU=>9 zbi6pPF+U0Q@y{cFn6H3N@IlF|k@x&#lHZEFCznWmBl7NDF8L40Z}w%$Zvl_KDfv^} z|KE{(G4js$bGZIpFUN6uw~Y5=d;T@+a%uw^>ojaJc&G3^_To8Z$YaUO?DJ{9dskCFTe zv@3kB39CHojmsSbo$NP~|A6Bwlb3u7{7n8T`2zSEZQRJ-!TRIiXAs}ZWnRw5MGG1K zGJLDW_iQdXMI!1rT0{&V!V{1>wRqu@gv;~vNBfA>Y_H;wPX zGT#O9VSEpk`7-!sohj?HYDcY8YE^cld6x_Gy7P7=?$rw@)W-Z>^<2lh&|cf;*MRPaUnQM_-kj1RR#JqJiWr3GCN zcEkLEuQ%JMa`knh>n2;?s-j}7J(VAtd%h#y9{d8#V?V<@b`|Zm-n8dYrItTTewLBl z){FM>Rcbwm`6|c%=%jk)$B_VEcf12$#q(HdhShEb#ShkB{8rnXUFdz4YTVa8m(3u4 zKG|&@@Bs1jt;8`5Su^Jl58NjCZ?_Y#1>Y0(Z*nv7R8qz-97(+F4&oSAEdRB{YryZP zYFgh6BW~SA@uC`??@$Aoz@F!sZU2`^Z-z&t~hbij1NXN&) zIsT9l#8cH$|HWyt~oyPzM%=d;8+ z+pb#Hgq6f&Zxd&q->D>CYw$fX#6xQ-p8daeA#v+H$-kLLJhe{h54(%F?|tIz&v9yg zpxYb#fH?a(;uh$Db3I$Cd4`TJTTk)q+s6ZlNA$uLwXtvayhyxn4RO}l4(+Wl__1o< zruCg4Q#`l#@rQ_KK9zhAv^V&L)W7yliq9MTrs>3!U&{Diqlr6eiE}^fc0KW&!QVTJ zc;+h^Kj|9ciLZ&XKOIjeUi*#Y*Y+nK_>MUDs|D&rpna&q_Y&E+9hMUJ<|&^2Ir%B# z*`J7W{E{^B=+9DrzXinI`U@>;4nu`_EP5iN}8@&i&`MnZ&EX zIsS;T#A~c(cDbzoGJLLVM4Ww_6ry-n6XM*j+D=8eB{KdQ_*_#;oR7!7kD>Tl2l38! z>6Ufu3gYYW{Y*YDJidf@>N+~0+2%=^ zf2Nm{el0o<`*YxR#Jx{R{Wb6>3(h(d)pd(L9&4Ybc&=x~a^map{ag0u3hqByif4ZY zbN_i;mir9m8##l!=a7DEtt|Hz%r`vmN}ca;eoTS0KeuBZ5`B;2xm`zc|H%<&f7W6i zk_G4ZX_$x9u9G^`(SIBt5NCg$LI26DC(i!3(SM@95odqSM*nd(qKPW^pVx7GWek28 z`cJSi#dEn8=s%98Qs*A@pC~x{^AP$^poHSNy+QP!a4B*2=j&@JFKKX&pN;-g)lBO2 zLI26&gAuOhD$KhU7FsE2gepD5;C&aRTbuPUJXXQn%G_H9s#co3hLF@FN{ zt2{W@=V{END)4z6$B!OCI?i6C&%RmcC$-@0!vmN{Ir>mM`*sKBQ2}s{?-wNfa9@gN zet$pWF?*thj{WV$^G!n z8zRp2IS#(n443iw;iMBBL7aWNWg2nMNaEbyL*bhrA3(8h2g0`mILEI!m2@gbk!P$p<;b*9t z;@OAeao&vngE;%3KbO+uLnS!JpA4U~uTnhge~x)+`ZeP0TatZ#gE;#$bu#Hk^}-gl zv3_UxoXARk8+@*Ki+E@IU6wT&K6};@XWy2==M*^md@y|Wy(i<7@Hq$0`E3lJ6YFIB z*Ac3}^*(X-VH|wUf^)lehR?MhP(1s5K797BC(iNh;d9_ass99gcK?ew`#c;z$3G&@ zKA$j|>RJ0San}Fo6ylCgB|i&3yFMe%J|7F8E3iI@eZCPsJHMoO_W6g0Nk8)yagHAj zpMzf$XP;lX8}<2C#y<_8qu}gwclaFmj^eppxv``Z{+>Ad+?&S@aE|{lMDbNWP(15j z37=DW;_UMQ@Y(u_IQ#6JjBz`)oC_dougnj(x_uD)#LZ_PGhg zv(J_6a|v;dKY)EMCC>Gk$v!(|{1o;XoPGEW*Rz4`D4u=0pM7ploPBP>K7(`oLiTxk zif4U4``m&!`}_^AXRTJm+2?gv!RIpK?B@;eInqY*ua2bnXglKUbJOL--`}f|?LVK_ z`t$V*zMsH8r!kN69ZvD=^R9gTV(=*`(vSHlp8fv<^8wG1QfCQYzkstp-(a4=zw5<* z-aUf!6a7es{rAR+XTiDtA7Gvk#pkW8bJ{V`@ymKnSwY-4kU0DE1^ltfiL<`vaf(lk zCeHrciR%~N7|EN?rT82;`*R*&|01!hGm5W&&n6xAX98dUf^)k%l#_n#ITX+S=znKa zpVz$OWPL{B`Xvj_I*t6$IhW$Oo=;R0?}T-T9KYrg;y$bso!#p!>%!H< zpTzpaZ@}MMO1x?c^;_nLsD|tMXRncbPmB*WQzf4nrTF|b;@w+N0oOlFJUCPG;TI9l zq=+{|eZE@&9dNGC!4ru)=E`!Wxn;!J=NsX(>jkO5d;-OLmP`J_Y~sEZl7BRwc%X_n`}4`M#Jw*{z8ic# z2mtXMDOf4rFDGapJ`nWQ9Sb(aemAofxIMkk^0}>N9ES;BYCF@!~YMi~m@u{~YpC zajN7$T|nhJ%87Gc4n$u3;9Q^GkeA>nS*{0p36GZi?J(&_$4Gu6@)8dd=e+#ThvFk+ zC7+DEOvL(h&dXfnC0-%p-^O{N8l3ae3VDfPJv+B6io7JEq{Df63VErWLY(76$cr^q z@{Y($*)+*JAuq1D)V~RNiOrOJ1@e+h5$C+*XOTayIZ|K$-l(2Gc;-s}>kQ()dnKRpOkN7m$}M zIQNssk(Zj+WVtJmm;CFJUx>Uo)=2*8K&rp1tC zIT(J1YGk=TVcr<|Sn_A!XY3QnSHRE2r&8a|=Y=069}YhQO-sc2`WE<^0O$HohM%bt zif4X1{7jchekA;?Y$kaIepWk(v!7?e&y4<|616eE5PrJ0mpbn~M|ttIAkKd72|p7~ z8NUL4rgoA1dia^%Rq~nevvN17|J{5l*X5S{VE7s9Mx6WSS@5$GoP9e1epYv0_Sn~ z2#n9u@p~rRt_PMS4h5FgyO9jarURfAmTL!uULurXUYE)?OttJZP0Hc z1|N)mn*-z8SS9hC!DEYv2Ug2+KY56F?JJTGo<}_KDsk3-=1$_C z*JOPbjw9}WojA95>2&CTcSc^$8%^ALL+T71K-{@T@}6jK8o!^z^_lZ5#k;Z;&-{ZY zP%b#<@i?^C^ESmZUvw|USHB~5_C$Ll@5=g2LVM%y5$E>qi}qH7bAA3Xiu5Bnsk0;6 z8($}RW3<=x0ddwDhxR56z7XxT)>AyU%Zc`;{w4WjwAc5s)c@=bs%H-Te&nkk+MEA` z;<>$FB`DtasnnS@3OeBHpp)|>{&R}w`+KXah)3}IMcm$=Xm8HolhEEkE$MK3KX{OI zYQL8JIJ7tM9dXuQg!X#AC(i9{&HecY;@sZFXm0|XN;w#t4#8X&mx{T_zu?)uik;;*|)`~5wB@OoPFD~KXHFM;_TZ<_*S_S zaceqI*gH+0hiA-J3Z3b})Pk>`R<|OTxEGga7k! z((&v^@$64O_*T8YxSx+W`}W{-0gbgK)i21J3ntkLv}?Pw~5;{+(x#jvt)k*J8dA8X)!Wx}M^_ z1Br8g>mMSXJeD|rKA5|PxOF^n_UHQ3iKoE%bHm#H#47?6&pxkRN!)X?)aehOQ{e1# z96tL_k?~(+{+0u0pNGQdL{P@x3ZJdhh_lbjF|W&lvu{seURQfM#k0>ZVP5AwgE+@u z1fK&#rG6MbyN3~HpWDLc_?g7n=ZD~PZAiuk;d5XFarSvhfATX}PMm#i4xbbF9X!t0 z#7c^{9x1VV4)Z54Z;XJm|N7rq(f75=9;bNb*UclIULgB!71~@n7)!e*C%Wb&nCx9MsG%m-WB>8}Z;F#My^4 z=Mc{uyy|x1Ne{(ye_MSMaeo)7qyK#)?OO(%`&*l9i6`_A1*?tySu%`xMK|K?PalkL zwcuROe+4N%)ScqFUmbfi@yZ^=xnK2xKR4ia4%wfN9;JBy$rR82oCtqvh7jj+pH5MH z{1nOefj{n3iL*Zkz@KbT#=kKF<(@{I{TUx8?mC?~`?D+j@t#4P{dwhTijRSF{3Y-w zIh5krpZEGve0~^l_UCXMFB$yaBe(bdN{V+6r+DU{;&@4dvu{Iiym-qgp82ylUb3U5 z&i)vGqGO12{dd9mlL!;%_8yG!CkxK?c?-vjU;hB9+PJ-s51{&2oK2kDd(Ml*C!R~3 zb>6_dG-vRg(cZv$6wmFt3fCRA5y?O0dH4jWKLq20XQJe%PpA4+8@vSV@?A*r+)pfw ztImrge*p7@T7w^b4e3{1O!4eb?PY5%pX`50&7 zSpVn-Z~Xx2IBuhOKlr3M#48N`0gfYQlH%3jU~e@zj`HAK?hK4G39Nrq-QM0hT}%4O zJ4q)Dp2czGx{Em1^AwCTDR9<5!}>?oX$*gyi)Fdv zFwP{w{m@yHA|3A%if8VFKNZgqk0btQ_!EDYIG0tvS_k0Smjj5B4+iC2JM@&e*l5a)U>UQ9fU^^aWcz8Ift z!2QrksDVP48^rp@IG1}5aqnuWfAsmptHIfa^4o}KU#9plbk07TcnIqsxjtiWgnqS* zZ^u6WgE;FioCcj&iL*ba4JDp@op=SxJqA99*AVA+eSIo)vc!{!KNUWE-a>pM+Ho4j z^X%KiorqsrNjm$`j{$=AS2?{)ssI)B7pno}YA1He9sYeh&kEx4>*xS= zBL2=L#GP2@$n9E-^F`n&zMW~abW#p9Pux}pBixXXEFSVVf`cfvl9NqF_8>I z=fZN*FT*-VH+bvoh$q0gK2O1)_|w#0)(NTroi8W;-IF+UZd^`0j`fdR&yn1Ju+Gtq z_+H$9z?H1M-HZ8#7waFHx12-z74OKrT#Wff9P1ys+<)Ty=z5Rh*`LcW4{_&YyY}P$ z1J3n)E{=Aslkwv)4@tc*`9f8=_$K>w*#zb&FSF86r!p9t1J z`t7}zl|lb0YfSOX_d@@PH6hOB-jJmFhp_&U%e@-?ClAj4Oh^B*u+A}za{HqH#KGO* zYjAvpu>O(buR{NcV*MlYJ^WN32mW1~ICLJyyes6P`g1+M!Mv-s3voB%hhg58!1_n# zEAA)#vK|z#inF)QDdK5^--Y>=%PW0LVIF1mlJz-u1nDHf*|!g;5l{7|_%O;%U>@bh z`bVzk6_`g^eP#UqO3*&Ou>O&CZt6$8;xLMjL;ooFmO70%`*sa{^9&`<<$n1H=~SO7 z`DySifc1}l=r6^5wbtOB;9CgmAGtnV;G1uRtj{~csoX3$`*tyW%Z;S?Fv{HvzJ;;= zk?UUu-+WmA$nj5O{+Sp}I#KAj;F~8*oa@;FzPYcK^*kQFWw8E{%gw;IAl5%J-wVEF z!Tl)r2KW}m`bXy9-%38zTqo=E^9{tSu>O(rcprQVVf`cf=7VoxtbYun+)vLSomz0N z=UbDZk9Cn8KLx(=??1C|A0I{Wfm^7a70`cU8S(H#(zl)ATmJ9Fx!kMZTk;XfKUIQu zKgaqP=Ge~cr38GLg*A?q_9zNNs~x9#9t#UhFiL+3I0=E=x<&Yev4 z^gT(O{W%W4<(?wW^?3xoxt9>Hfd1X^tqkiQo#45rNk4`4k8bdR@XfWFbo^XTC8&K% zye!M@0N)~5|H%5Sa9!!Z`bYL54nNEOK{{dRcg1-#3C{Jo5k5y=mGNHq9DI#9>%Tgc z>Y03^E`G8e2%ZBc=q9b`0T_w zM{ZYJ?w{a(uBWP)_Su2;k8$vi?j~LX&iZdgh{v%0k$pH3KF2?h_5Woo#g}3IBiH8? z_*?@XM!AjPb2ZjQvi@E0xeV(cqloVhpZ!?>sG4JM-6m7HsZV5m-aCbO2J0fZ+mOOa6Z_nf z;-k>X;(E4H{{w<*s{mgPpR+piQPj_a2s);}`;Xb#0Y@WE*u@h2uxE;yI#$Ms7L>mS*lQ~3H9>mS3=X;e-+ zWmxCv2EXfC;t6oBPk&s$#IgR7b=JclC;r{WICN%LlTP+N>TevsS(*{qIl;1 zi%>4O7xiDefOzd3slVey;?}*A_s2L>Hc#>%7-#(8RnYG>2=$y#@yxr!XX_>6VZ;xC z&v9_B|4s0@5}f_~b`|MoD`b7nTuQv=e#sZYw>;KGvQFwLig#fBBlEV14`Tfz*QYsr z&MYH+=D7<|F1Q!%nh2kr%Vm8Y!u?723d!G{O*-Bx$zL8%JOW+?{eK)wJcxCX%o}rm z#=6Kb;`ieI>}YBeuKyX_pTXIO=isvk>mQjPxRlC`t*3gj&bjb2h4qgdpSzgi)Blp~ zdNWPD@*~L~f}dqr|H%4Bz|RQQIWoTlex|_L{|De_HP%0JeeQyvIjnzVp2qpHwh8&e z{0y8QEv$cJemDI0f>*)ketoH3u2Rxr{>m%F6IlNkM*No;2b{fSUfjq_0G!J`19_?0 zPS*2<=SknYlhkR3yaaca@ed&{VW;HhBQH^`f8=s6L0+o%k@|1nN9DS)&XM!d4tWWJ zd(qybk(W5uKeB#ze@4)XEbA8;%OA6~BncsrE)E*;!d;LkOf7t+8|4Wb;7uG+r z&SA)l=U5qk4Du2?Rq9tDFS(JDue$){V*R5R?P`O(_(nh)xwB$P@FQGA#Kd%hb zd5MH2_aZM9;OzgqeJDOLmg1R@MP6JL#FebQU5mU_fV;t;M_zK^?Av!Qk$yBP>vIV9u>O(xLgb|eob&SDEULc~ z>mRvYubfBRjrEVr*UupC#rj9)H;0M)=gWGQATKfSD){*T@)Ev};+gkAUb0vhsbuZ# z6yzm@b$M>^n~|3!IM?TS)(#gFB!?Rf2a0VV*MlQ zufsg2Y`N4w5_ySWogv5YB-TGNzXE<%VErTW{lnDW z4Aws~zXyKSg0pW&!_Vw?R4((O@Y9L)kF2vCeuka0T@Lse$NEQ(UkE>wSpUfU0{B^h z^^eRig`fHTr2g9Z)UF`bIkKNS!p}Ik7k>7KpPBBY!}>koXBE~zGCvl6W_!x`@5fNN z?tZd9+bcFoODeDz=%e<}RT4UxPB{H#4i zazFg^Vf`cPUo@ZeQ&|7V{O{+ZTyXX?cNcLB>mS*->T`*gT_DT-@D}1Btbb(v1pKVT z`bXxy;HLxYAFGhZ_j;2~t--_9#M4+88Af~@^L+2sa(@2Y%M>30=lbu5@i`un^YH0Q zDL#qyj~u@)O1uK=ADO>~d1hv$)aj3S2i8Awdk@9+R2b_VnYZQR1>B2vEx`Q03hN)a z+}s4JPZsMRneTw>)|xA2eHuk5-W4OxJ~tgi+;NrUH=*AKvCfh8^OY1|W$@k^;z6u` zO&C znxenOU!r*CPrZnCVf`bwwBOtRz2JjK6HmV(+vOR6c&v+L{oT=C2i7@qyQV!$@lk`n_ylnW z)<1H6x}v=mSpUd;_PrGE#`;G;>e&qKbzz+&*XJy>w*s7XTA;mdtbb&kMWaaHh4qiD z^Ro)j{lxpe^r5DTcogd&xxFW$y)_1(iS|aZ{?U#4|Mnp1I6s#84WqqDa8(U^d-V>A zPhkCH82kXV*ZHZ`c{4%rNpRMgjP_Q2M)6VTELQ=#z2Ps2$H5=1B3^~{kKEqf(Oxgs zKQccH?XCJ+*5^gEH~gLCUD4heaIWWUv^R%!kzv&5yK_)atbcTa&qaHEdD7?j<3>?@ z;z#1#-s!3!-Cobn#N*JpqKbHRGc~7F8@H?G8R9;ye`J0D+FRY6;@!}hiS|ZXO8(ni z(y0Yk)v&iP=eHHbGd~yY^0b!qaiU#S;6dm-avkZX$|#=su(OCqvHp?y4^xQ8+E9EL zI&)7WUfq^>6uen~;*lMR$H50w5qDypqZ9m5_!c+#caI}}SJH7K{w(;GX)pPU@XfnB zaX;d_!ndr!z3?sCf#SJ7ACyzMWqS~3A1;S)H3oOXw@R0ce;&SBSpUfWoD1JVds95~ zSC6K0t$m2IZ|&e)#lFP3o>#y(=YEn`!nX>ne`MbdfNy@Re`G!rzEy$y;oEOXs!zBR z=`(Kv-y8?aau>q46nGFie)twWgyNZhb0+BrJd)oC-`rUL$njqI=IKK5Vd&3>Z`I)Z zxz+x-zDW9HJ!fD(>^_P(`|w7F>Qe#E?L8dxUMJQ+#!>G5^C>pUr+UMVf|wi@ts1%gU3<172qqb z0Y9F&AN+#TiI)Y4C&AzBPdo?CJ}+HKJdX8`PQ-VD&(2dwhubwiL-9#)F83|W-yA`T zk3;7u_*?_d`j^4y7}h@q5&sb8b@9_lCk#Ft^SZJ#WPKjNysieEY)_R`X|8W zvNMTCq5l)c0e^^i1^7((oEmQjf zyq$Pu=Vo?f9Py9dL_CG{k6iAVBZ+&vQhX5cdG$s;Pw-)#V;KD2VZ^Jz-Qas-eDh=d zBkQkHf?CJlgY=__?|d}zn3s43>%bq+$;4S_^`jJDiS>_MZcq5*JB8x?(3z8>_?*GF zhd%+Ve~cr(4E}hq{*lXldIahGA6@q!=vX@65B%7jC3Xi{?h*{rc4)Tl5)6(tDs&Kx z3Pv66sNk~E-d2{WZ_41Pi-Xw;dsVd43dV}MH1r~LkhX(Vho(9zm{xFAFf^;9f}!8@ zsU|+$Uu5`;Y4T zABp^nC7&Q)xJdqf<>{xU|C2uU!VjkZ%4xS_`#YKSVox>~&QLh&Wk`|Y$JH*b5d z6)0aU_1^m{;wugD<+Km?xbY$4#ixm%ly-wBq0SWNrGz>+pw2n`oOXyhl{>lP$^<2R zepbo{FT1H#5KXhO3O&5mif6rs&1DiOm0`~hc{Jhf`^Yak&vv!5lIR<|->TIF!b&UIFTnC!C z4(R+`xR3PH$9~UCx!`U4)CH>Wv-cLS;5wjnPNIH;>Mx}i1h=oN_;&y_zwf@{Ipp)G zfAF5-5qbZhc$@m%LOze*OVv7UNmps$7DmO zPhW(7ZZ8wBemSm_Am0#4oMJuW*QepIc${DQ{@wG zn9t9pLH$)-<{9r zr9m!z9<%;At8^AmX2@zB=QwJuV|lrZ;pm%kLiD=y<6oBbu>O7V z0?yZmk>8KM4|p8cr^nCtOL`uWD@j|yxA)0<$mjyX`FR4?f9B;_K={0}dJ~?mKlj*! z>rduS;28II>TP&_9uJ1t*O@gqu5<5CpO@$B8T%-fc<{%X?;~Hr2huker~6{3$HjW{ zK_9$0z?0%HI2PM4I40#69Eh-uRYv9 z{U29n6M6htVQ>KX7=7qWJsw_z>vi(lbbY!y*#j~_`em#6g z>fus2kL$|qt`a|RU&+VvCip(;oPr;LzcD?vuFn2z1av;#?U3_j^jSv!()7aae4{FT zjxUoBJR9}%kCgYd&)w<7y8Ld;o7VX%=IzK6Q3vPY(-?R4cLhqAw{Ch}b9K()yzE2% zt?BsAJD9hlSXbXe{mxS*cxspQ^+&hfdEM?!^Lp%(#Brqaxs$)pQ|C~6opk+_@cZC3 z^nVupFJpd67-SdnnZJ=fL*)BF0xefA~)3+bRdQSdI@?Bh7-T_~KkGMX+eLua<@6^x7mv{Dh+Rsk;*QV=g zCx5QzJYMgapEsxbbf-E$^YrsL%tIaXRlwV4;yi9WLQYhO^)|zK-@v*pA%8jY!zW0- ziA(-xaNdWnli*FSU(zOb>hrSn`FJOPc>3u(`Qg1g`zSqMJLSKH{^N8Vxkpjn1TRY0 zzgy>r)3@%SpZh3WPnOcpbC0v~CU_%`_aNnKsIyA`2>4MrrZ1SF{s?{y^(*P~k?ZF) zJUyKGGU+Es|zn-qc`939o5}tQDIG{c9X~8|x_2cptcm#iR`qud=cm@8{w661E zTF*VwX`eryhUbL_?z^;~C*gXPMPB{N^nYBP72NNgL!I}d|0(7fzh)d9f|pUhi2Re& z%ZRJ9mOc-=$C6xDf={RW$axD5PUOSETT!QYSAo_pdHY$^*@Hf-$UhkUAB7)+{{a0@ ze_24U|Ciysgy`oW@|R$}t)=ti9#eS}tfX~apAC3gcK%qydC9=_y7a>Iqb^?}e-rvS zk3Q2j=8rLs>*QVJ{Uh)u=4S)1bF#8sgUhiF2RJUh4!kIxM>p;fpuWD2SV8^o zqzCTuRa`gs!M}|9d8|(?ui%RGe_Z}T`f>NbX$!s#50THvhlAfn|5?B}_;VgFb(U`_ zpnd-LviQmLI^-Vs@X-2La-6Rf%#WV0 z|G@cLrt|e#9Pc^IkB)nb^nYAG1Gt{APs59JzV_gJ?ZtfR`HC?A7jPbn==1A1U+d^c zUuV4u`N?hxt|EUF^MHTuDA4nDG5SyFe7y$e3%6H+p086lU-)8b`RP3+Uq$|Y>GP~RkDK=q&*Ay{yO@XbKa&FM$iE-`B=~n--1Wsh zK8iZa+NW@EeR`d8^}E*!q@O;2)YB8>d>#E9hM&i{$1rXL|A*U1{``++z(er&VO`bI zTJCWQ=lSvI=j21gv0Q@n^ghRpd-@LIdSCZ?6$-2ih0Yq zZ``Dh9M;v-F>hz+yu1_r7q8r&KY@G?uOD@uU#;_rdDi=c_rcHIQtI^QqX)s4)3@oA z{=(yz)7VbFE8V|4`D?JwSL<>>+RxQE-Uhsdk#3jXkIwhSOC(=~A3=Wii^cW6=nCww z?6u-37km`gtN8ii$8du0iSu|C|L)o0T{6HuaUYw1x#U+c?#mIg@Ypoq`l%KK&cGkDEMA7E%XR*EH0p=TI4C*oQhly;OYiS@A6V#`LYrA3ZO= zDQ|*{alU#bfe7dEN}R8iA4q{MthZ~^23(yz@G|QBHu^vL-;!7VKlESwg!q~C_}$}P zn4eu!@f_yuTGSby6F((yf&|yG(M19Wq)c!g^V#?p0bRFCIIaQwFzUPS-?;vp@DO!A za+Ub0#|o??|4yu{=r_gppr5az{{EW_==_A(zlDp%@y~VyXVK@@$HaBNyZa{B&+uhZ zUyo}G`~Bpq`1xJ(_7(8@3*`N3dOYs2bsMRZd`Rlok$)AQug^VIa+UOW+~Z^Da~bEQ zC>#v%{CgOV^1-U!*L^{PQ@sAZ0_STT`+bIa`!>$|evGT@e=Tj#9q;*Tq|Pz)>AoKC z{2;u6eoilopMqYfS2zfW|y-Yt% zs-xqs!?ljO?gLk6!_*mLe6Fuwzh^&uvGl9`YyB#m$1UJI^SJu@%6;4RrKX<|@*z2X z4J6BYuW3h9$^QN!E-MFhJuV1Hk<60l%de8HKAFsOUJnB5)$Dab8hw~VV z=WPb({IPUjyN4V1A*Rn0#_jst^!O={@6Imj+xgk!@q))g%7!t{c~02O{Hko#gPu#`CZT z&ht?Avr9^orku^H#~mQ zxLt?qczwv{J;CcJ=Qh7TeZAlwcOqZCw>ak$<99Xlx#96s#_f7=Key%{uD-1^HE#2n z;?DU!#%+F|aa-U0+>3j-ac#b8+~$uMxA|knZN6>X=6l9%{{}d{9e2s&dp#a{yzKGA z9$)o%?D3|@Pk4OO<3o>cdHlS`Gxy(lK64&l_V|8}S3F+z_z{nk`W{FKMf z7`M+~`yQ~EH+y}EJl-&F>uf%7QOA1UxUE0)`0j8~$L8}M-{&ET%=cvcm zJU;aJS&wgdytseoK3C!H{`N=d*J1Qghu@Wa(^F?abuuV)nmh|1Qhm*zA=mr_?&kTV zIbWId_e9)7`_IX{!EU(rub!oR9{DB8tLG?>+teUWdG)=N$8A!uOnLPp<*}`Tkn-yL zDPKbW2Pm(87|!>TtESG(ocAN}yQK4MJ*GUq+!U-)UVRMbakIZJ4fA=d7`NAr*tk9K zed9JiHE#38hc3po`Koc7ZyUGyp>dnfV#4`&OU7+}&A7dewLE^oxV@g_9u~|WZd~ho zJ-*-L2RvT&_^QX(JbujM9XMaNyKug4?|%5s$6J8AI`+ChER z-*z6KAobn+xck72yc-PQdVi?C{6q=3aqaz5X9f-lxeYx;huq`NxmZ1j}&ueFy6k zPyW0ozxDK;>rdcZ|J*Zo&Yy>KzVob|^BZu^>+h}c@s{v&44gl)x^w*woby}Hlf0Yf zzc%MRc>d0Q`~?fQ_vgD_xNy6_M#i_T|Npnh+kKsDEZpY1FIl+l^YF_SZpW<|w{`l) zZGP(U3m)Gc%ed}&%GTNca&dRQ?9XqM;BNk{k39Lao_zTgJJ&x5=lbZ8}n|GD*G&&$%Wh1>bu>+yZY?`zgo2zT@2zOGWo!299){GxuC@>m{0mGbJx;jaI? znQ=Fb+t-_CjNAOgxXqWZTg-#aA2x3DrPoVdk2l8g9)Rodsvo30PE$~!y!y!G-Sbfv z_0Pifx~e{={1Wn8lvkfnK8O62^6KkN3Ap2R{p>-$MV^NrhijjjZ_d%Oq!V&V2WaO}9a&i`I{H)z6jp4IzsH||}`ejHGp0_vQmI_eWoo!~DQecJw) z;JWXyoPr!&_nrD4%42$iJmuB*n!H=*%jmxV*LhG+;5-kT9;<)Vmx8J(6XWKh_ z0j}q(D6wFfd>?!tT>IC2NUr${Z<9~t`oY_`yXJSnxqgOR^AXk2ehyP!y-InlvqE|G zz3-Afd0&(~zVF?O{9d!3XYX0~wsp9%v#-2Q+|8T2AIQtQ!75yzm(|z05^#Om^)Q3G zIzLJ4=;H$Xp5$?FQO91d_I*NJ>tsA3puMRnk=f9vkwsdEq4|9i~5 zo%ht4dFo{P^D@6sCuiJVKUa<0#GykxC z+{(@5{Sn;NapzI}_&+Z4cH9$i9=8kUaZkhfd12)7@+W0nSI4gB6^~ySEc$foIhT?5 zv;QP-U7yy2&+MGv1?PMWcm3G)pZ{m6bFL9pm==p7!{b z$M=7J=lLmn{E)}19$)qN8r)sa?QtD5ZjY<_1?kg0-~BYbK3^j51}kuPy|sP>?yfUe zn|&I8Y3Dj?aIVvWbDhdp7V~D;fA5d57-Cr%Z%UeHitxx&V@zZ`p~%Tf6KU?hr-Wxu2V5?>#P{JbBH?8>vcGiYY2dcE3>d>+4dr`H+vV{q61-OTlB1FqwCP^Syman*;E?;?MO z^6EMK0v?Zh!uZEbKbywyZhYwyIq%x%P4(g0r+Nwg3*#E!Hm-3y?%HLGaoy_+{r993 zxSMC|$Kh^V`#P@c@zcilnB&!7Sax-+pT#dO>OAx@|6_8z+z7VF@$xp9z;)iV&N*_e zGbPtLomas7mv6tw+kLeAj^g|}ZUgT6 zwEJ}6@w_XLJ~+SMYy2G_3(X+9y>{JN>*t|ueZ zIRV%CSKotQxON}5^AmbJ_V{s+A8`Yw53b+z_|W6$JidCj?enSgP>1WhsmGMRX+Dj+ zd7EI~j!_-WufttiHs3LI-1)_i*#sL@N4;zEuFe?aZj$Ty>cMqf&G*SQf6CNx{ghCD z2-o>hKSTL4@>`TwU(fG+em6b7>z5XJyRX--6z8AEI}Ydjz>QzqIp2eGe&wn~-u_&7 z4CniVlW@0gZJ+IXE$Z0&giSb)JHGcKZ^zw&^SJGzRs%dc8e} z{wr`@|LQB0uOMHey!sK7cl$RZ?F9|;Ec~c(w;vCo{u*4*i`GfVwaziP_OErCroQ{S z;@+Ff03EoyZ?S#~?&ja#|J3g%4ePu`=<^6%$5n5byqkv{jyHzuajCDFyqkx^sGm@M z^f`bfG^xJ&y2-oxRn%`$ef86DHxG9)_hVZg&*LA2;e6=v6COY5@s<0_1oFN( zW!$d+Gaes%{G7-057>F!mb);g57&)YgX{6CAEtba{3_+u*C}5|{siUKPgA~%{8`GY@49+>{}tqy;M%|Xe#)1SKS+7? zHsy=RcPX#FY4YxRQjqq7lW@IWsh>4@d;OfiuSh@Ndh@}HgzloHg#N|3F=qLkHJ^SoA6btuk%@_{5tYS$XoCR`Ehtm^>seiDBnhY zo$@ifL$33Al3eFuK(6yJB-eQuk?Zk}$@O?A)RZd_Zx>+z+>F8Z|jqQ~RM?VKM!Ufk_>w?0qcJZ{1D`kM`Xvkzb>{dWZ5o|v@FMTl!)erChiiTH z_U~@b50O7Xeg@t#?)s^rpAF+~+!69!<1SxCeiN?!=(s&{9rq;suIcC7ar>0laZgcR z$1Of%alGz6O8*?xLAc%*sc%qT|IS#C^6KMfF6z72DR~_4lspSR57+xu^$RBN`n>7q ze4ZtrsClhlfouPoKMr@-C3|1DY23cfs{Mh~clnQ**R6ezul?c9`RI8&`w6(a{r8eUN%x>fb4SW52Go0eAgdKjrbU$7deTT)XqQ?dOZTaqagV&cA5k zwx80A7jE;3$0r`&I=ZN1pO5k{+1aZeKMQv+kH28f`xx%-+pG^>x^w+4kB?ry$lLWc z@%YhKF7kHW#;;qrJ>KIU5034e-{bKWE&?uIVuDx}+YzUdDCv`EO=E z*WhkGtsiSj-mM>dTpJ$W@_6uuo$D+cx5stn`bFOQ+WNw6KW&ef-@J2v#p8v)Smf<} z*D_q^xgoKjNFKxY!FB#MAChbS5d6;R=ikSimlGb}GH&PLf^j=4O1K0VFo-HRJ z57+ruUp94Y|HqBndFXiRZ+PnWOdVUlIM})W{c!HT1n2$_nmV?A&$#XXl&Ai{Q~!*q zW9x@s+WCC#hx7R=QNAOe9#kl=UZZ>$`3B|H*WtV#Hay-n^?#PGPkn5{-8@@AZ|c~2 z*!N{=%#CZWONWfx{MI?i>%Qp8yTJsm^QL~zgVC^ zxU2`?U*z3B#WoLi!L=XtWV*=PI>+H$zjxyz@9JYY1t;NJU%mB%Mc!RMi#Xona9#iE z$IdVEuKq~g4VrMRuipFNB5(We!@2*x|GRU(0O$PhM~l4cXNZ2zz_lOswV4Fm`mxVD zO^+Y<_=a(NAF}($JJ;Xq@qHdIdA#cJn#YfLJofl8kGDMD@%S0zc7D1)S&9*UwsBj(>+#dZ?fNpZ{Gwu)Fr4KjH_IPu~ZT*9{U*!KUJzx4L;O`E)I@S-| zeUZ2I4|}}k@gp8ThQE8K>uQpY?;cIKt}FGetE3;7chBP!i3bz7K98%f-fMe)3;8-+ z^XeBo`QYAChw}}%_M>%FX&YR73V+;9^{Op5vKCUsGk89<@JLhX~&gn0`*;??<}hwZ8Tn zQlGE4$Kh^$+V$3k^SHG~>|7^#+@gQC@6KT#9fRw>P;XLxiu^kHd3c-ZXueCX`5OM< zlkPkH`oIym_M_gQ`~{4Al=AA?r*A*rAe}$=Sb}SP^@DIX|Mu%Sk#YO=oD(nDULU`P z6LjEOUwwn}8T8Yoyn5}0+w1Q}eig3u)sx2dd=~j*aLudt;e5QOjoafLzgFtIyuBaW z_qv7K=a+*XpBlGcFWPl%QODj_46a+at$*I*!JqD&-}h%bd&%P!k5`S`J{!jEaWy@D z!nm!|_4rATXWp{&ami{=e=j#ZU+(MDz1N8B!Uxok!!zVDd^hA#`DHMXuM$D_Fpt^`**Lq zw7%`XWZd>&Hg5Z`82^yzCo=wF<5lB5<2B4zR!4K{3_#3@& z>t_Nj&OWw>#ogDcft>qqh^58P@ z0(rPwyhvWZm3TFQ ztLio433(shAC+zf{R}ztqTeztqWfzck2o zzr^IaUlMZNFHLgYFD-K2FKu$&FCB8-FI{roFFkVIFMZ>7zYL7q{W3Cc_siJ0t229@ z?4+r2SEqmMlKBT_?0A03$%p69k1ntKB~PyVr9iIxrAV&(B_!AVQX<#&UnbZ6QX$uT zM6Ua#O0N5*My~s%POkf`Z_9ou z7c5*oM9FJzCfEJaA=mxVCD--eBiH@XC)fOdT=&b6T=&a}T=&bE zT=&a_T=&bAT=&b2T=$Fqfh}E!x?eJQ{jIM1B}=aRMSt&5^SWR1l-K=IAlLm;B-i~C zlI!zJiCp(fnOyfvg`-a9{o%~m1+!49%ml?V4mjGY0)pe-* zB}18nX7I`H=FuUrOYO(BnPwhOR@856E@D3_U&~ zZ=wE}ya%6<>wcM%hgfeja@{WhzCWYubB6jEa@{Xk<95I3zh|a(^mTo~*Zq=^>wamH>wal@yzTK0x$c)Px$c)9x$c*~ z#|PxPUxwtmUq&=Hg5Mz#khTbsT#NYrDohdzch@yIt}cXn7j#ZlXu`9k9Wzt$oI%~ zzx2sbv+08c?4Zox}LKh&ynkT&XenUE_l2| zuIsr>uIsr%uIsrDVL_1yJ%k9_@Ax}L}6x}GQGx}K-T?RuUWx9d5BpPzE;&8_DmuFqNH_WGPR?&@S? zJU^1_dM=aedaigpBG>g?CD-*_BiHp@C)f2Hdpsf6_1q-a_1yA!mt5C#k6hPtpIq1T zkX+aE$m3&jUC$GbPsw#X&&YK>2l#n9y)Nl`&XDVR&XVhT&XMbS&XenUE*Q7#xoF(3 z=aO-|p3BDV^*J)`>J+e^tK|B9v6x)HFP4z&_r;pz`hBq$xvu9nxvu99`QW*-QM=^& zeX$<7=KJLOeX#+#eqU@zuHP3Mk?Z%x#^m~au?e~Eiz&H&Uu;IM-xmvRxBdB1zb}>{ z*YAsE$@TkUIdc8JSe{(JFIFJe?~4`5_4{HWxqe@)M6N$~Q6|^@QX$vxi$&!6edMZf zyI*R??S5$(cl$*jv2j;NzmMEBZud)zT=z?lT=z?#T=&a>T=&b6T=&a}T=&bET-X1E zT=&bAT=O$>-7f)tURbY(x?eKnx?i&7x?ghSx?l3-x?c+9x?hUqx?e(a-7h6_-7jTw z-7gh#-7gWj?w2aL?w1<5?w2~b?w1C+?w6Qc_e(;q`=w>v?u)i@yDz%N?Y`(4pV#@e z?3jUZyDx_1dS5gp*ZZQG#{>Kvx~@09FUpYXzQ~g6zQ~d5eNn;VMRL6_3d!}psO0g8 zT-S4zTzNkyC_eDK&UAKL5y)PP& z>wVGCxLwa9<90nyjNAL7sc~0FzYY`JUe>j)H@z>)kn4Ibkn4IbdORf8^;{y?^;{;` z^;{v>^<4FMja=7rom|&*!{beIUC%9YUC(WDUC&)|UC%v__sMlV4?I33*Y!Li*Y!Lm z*Y!Lh*Y!Ll*Y!Lj*YzCW_XBiY>3Yr>x9d4;+^*-mal4)i#$6r#I*k5)gB#a*h#zza zDPM(`$P;*(d;qVIXYMHbCnB%GtKFwTm9>jPsn%U?>aY) zyZK2TAo-SYS4Z=0<1Rl#zGK|xyT)C<_CTrMGj8*J<1Rl!eqh|@hsIsL97_F>aho3- zcljRj6XP~NHSY3-2TA>zahum4q|x=(LOz4_qU&GhGi%({&s;6_bH;7`ym6OrAYU+U z^F`w>KS5sif%aLtvy5A!d;%|%58)N^+#abDkyqim&ve`lyhiycyiOk8Md~-mV|YwH zfG6bHyGorVc?55fx8ZH_3A{sIyqnbTk~iQz@; ze?ne|Psw}m8F}!_QYXN5OV4i^uGdBNCOk{|5j;np{}rj9C$GT^KcrB0JPg15-q@HY7b z-XSmI8-88#2E0e!hxf@dS4y7)@(O%N-hz+F$M7+E;n$@8guD))lK0><^5C9QC&2Tt zuJbZHL*9gE$w%-Ud45^y=gDjE0(lo+B%i@U^3qjOzeJwE%j83Ng*di-lp(6<->bR{RVjqkI4t{gglFHcr?i)c#FIZZ<9~p9rEIRq|YvS1KuO=!~5i! z`%0Ywc?CWsZ^1|8WB8c7a6hR(A+N)y%d<4&t=kG7| z^W-&nfxHVZlF#5Fc?tKi731zcs_}Ihx5fSq@iF;Pcmek>ZXR5nSHbJ#Z-w{BzX}g< z|Dtuix+UY5$-e<_l7A0ABER`JF`u}9(fW^s*T`Q5@3Q}w)R~dL9$vzIjn?nL6Y>ds zNPZ(cmzQz0&ZXay_p9WOfp^GX3!k!2q)v$Y8m)glJSN|O56I8Kv$%iJIzNO*_Tzo&IeEWK{wjEr{8R7|`OUv4b@I4>(LP@VuaVyX?~>o+ z`%-5{9>Pn7?fw5AJR$!Md`Nx)p1X2;oqPSayk8}MAH2gpmHd?a1Mm>{H98L`;W7Ca z-~;k2Zj}1jdv5RZ?(m5GDtMdy2lDw7@;`tVasQ%yeh=Otzt#Upoj&<>@C@!>w9b3s z74oajOPv<^L*ZlcYvF}^ZJ&o5;dSzhe<-;g`TgMm?q9Ue55mjjpM*EbKMNnR|F4Xj zFK+MiRzH&WYvk9#yX5bM&&aQuNuAPtw%30gJR$!qd`SLPcnI{v$`zRfEWPJX0tzVb?n7sH<@d>$(J0;g~GY^!{)A`YHv&P-H;UguNBah*E@&UX+ zUM@?Wl5u;yW#ew#!J{Q#ARv!?+zcHtxpFJwfUxzcN&LPS7$*1rExsE#|*KsGt-MHap7tIHl8h7K)en-Zgc{~W^<8Ga}eCe>f zpYeF!xE;4(+|}tnP3jaq9+K<0C67nO?YLFrZrtuOWZas^>*O=!8y;^Ox8t^qyKx)O zl5yJ}?~v=bU5^ip+i{1+-MF=DWZaR*$K+k)Cms(TB=z*Vq3bGR+>Kj&uH>>F&ynl6 zd5?$2?eUh3yK(b>Amf%jULmg`A9=iP+>YBY?#7+`p^O`QJR#R{n;!2NpO5=-*}q-m zZrsuHW!#>}`{el-NPgh)v2i=@#JC%`eMIU^Jw7AXaf7Sn^YnV6o-=O8%^RPe-#?bm zFL=C2UPC_gc*VFKH!?myzb}$;s~)eB>$r7~C&ul#P2+Cd+RJ3zmdD%VUF16+?;E${ z4vf2Ti!YaPhaMl1>$qc&&y3q~1Kc0!dg#7V#?5#d( zJWT2j$m{SSc@I7z4<0UcrsQS#jJyeN;eJ`?X9Vw&=YK=$kH~BA8F?3;!~M0^pTP^{ zr2|sGNS?sU*O7HgM12~8F%ZgjlXkW!g_JX<@`o?LjHAKpXAB@ z^b^y^kh~3_k>?&N`CMuKX*d0QEG2k}yalh4kKqYtQMQ}W`&(dWa0 z`9tR?frsR6c$GZ=8&W4GZ@@d`g#(fwkT>B|@-94!^{#!6;30YCQBpr5Z@^>nLRs={ z@+N#h-g~sBC@(H{}9{irv>66FsG5H9d!T#1hli!y*1@bApLY`ffe4RXmx5%6D z9{C79CQtrA>IZn;uYFG81@auOKV|ZV*QHLA{CfDzxO={i@O6OPqZa$uc^e**Pv8-G z@v-vx4e|y&A@9SRW|3l@CLrV;^yDYLl52}4}MeX z^vKKb5qT3nBOk#tkCu8mZvOG|ewMrjFOYZPMe-TEOkS!;{R(*kkI0Ack@5NS#H{c0*;f<2-kT>B&@-BQzK7!}4546w9o1}h7 z-hfxh3x6j0n7j$^koVp!`2l&UB|aseyk9(v{iJ;c9}o}88=K-0c^e*+&){wH(g&r^ zfV>5tkdNV6>`U!4^I@q|ByYka@(H{_9`vM6n>>d1$w%-BdGZmdlfk~%KBw>^dG@1{ zuaJlE26+?SA|Ju~{rp1^11ZFnB*SNqR@RqB+;8}J%=VJ!KCyb14;ci}_w5qw6T zd`;@-un)A)DZE79{<`F=Adlcv^7vxOXR%+k&&)3LNnV9V^8^5Ev;6Y?57 zi|c{*nZS$WU3f%Zy@k|okPqN(@p1c)HZjK5fyD8@CS6llR~S@}Mf8Um`EV%j8XXm3#!Rk>{Tw_3Pv{ z_|Uk!{uduA^O?hO>pY*tJeSC;Mafsm8}NjDdSA(R$aD7-ACfokFFqyj!E=~b?KArT z$%o_-yh`4M$K*43hdduj{Q-FgJ|z$E_uaENKiX#w9+J1<5&0Azlee#ye%j<2{GIp# zc>z8lufVfd7usjAU+NdhYw(CXhrb8kAdlf~@(%tUe4l(B>#*?5VE%CZxc$|Cmb_mk z&#Z{o$Sd%Kyan%&kKqII!n39Rh`bITllR~=^58jAC%|#&ah2gY@+Le_K7tp>^VdlI z#JJnnz1l_d4-Cm?nCBUJ`>B%8VLo&{^x!4(BK}T%l{|tcU`W^Bad`Mn-y5y(i zEqD&|t$j}6A$eGpI#u%OGsI)^3A{sIdZy$DDf|eLf(OAv5vIQ=5r)pB+pzU9+4NZ-Wue4o-6sWaksA<&&9r|$y+z> ze80o>-&s-5{GQ}Wl&`?6kq4_%XGmU#kI0+wG5H8y z!hGm?nY~fwGa-*L&t3AuDWvz5xhg5e+~L1 zZ@{PIeRvM%LHnG%R_cW0_1B?K@&P<1AHzH3)nig;K;DB-$!ph1K8y3IeGcIv`4k?J z=l)dc#N-2bo4ojX^hus;iciR!@a!Kf_M>|qsbIYo$q!#Iby~*V{w+RFKEFrafRD)g z@ELigE_HH$xah~#ufRj{7Q9S8hF8c7*Gk3`k3b$dF{QDPsn3_J z_uw7!U=w|k7d|LHCGWy>I6vBF=0lPX$@B0kc^e*+&)^;M&WEM`fIQnnpX5b&7Uy64 zjNl=8=_67nBJaUt^6^I{-zKm99r`3MV7*Pqqkoco1KuU? z!~5i!7fPK0c?CWuZ^0+zV|ajm-8{SNM&bWS{S0{>o+t0Y3*XgXK@G^N5ULhaB zyT;vhp!OA+{~7s7oR>W2PuEZOGmwJS6YKtK{|1OZ}L91n-bX z|0ekXc^5tT#ZoA3d7=}VHIkaytOKbHNW zeU9Np^3z!7E#ve1hZoD|_sARY5qTdzBhMVget*%TpZWa*JWJk!7s$u(B6;B@QnyTA zhgZmZ@EUpWQmIoXFT)e^CcH^Lg15-?FO&K+@c z<(cFo@-{psPkt=Joj_)h&=f}@dkN5xOlz} z+vE|vPk!Jc$roNV|Frqf!_TiLua@`A!g03yaq3jcj1X~cRv%}Ugm#D-obg9kp~w` zK8N|!^^=2_$eWi)zDnMMC*;|iOTI%M!H4AWEhIlB&t%Xi&X4w4g@@z~c$ItxkI5^y zM4#lrrQ!qf8hlEgz_U2d+GiIYl2|Vv^7z!a9d~BjjoW#X)CsU&Zd#vk{rdpwI&PNo>ILI& z+|nUA-lB0g?iBSykC({9Ka)Po9x5p1bv-hK`%@c;2|3=YnxJZvK5TZqef* zc@6oJ$0OtRc&oSR5hBX1#}_jqXB&U4AQ8#ng}8Mo~5 z3b~FOdAx4i&U3@K8@GyaV~;1~9psxH?-+OE=2v&k53Fn4jXV9M9BAk{@_{ zY}}4JG496geOl^FJw7AXaRc11>GecCXWY(n-nbh#7|6HJzgUpAz$}+V%(0~H15WYhB9u;<85*sx8w1?aXZfg<8ItG#vOWmL_R@&?D3g# zd%OYe$8|jvzbMC>@pzWJfqc&6MdNnd(6~F^*+|AMdAv-n<5oOgGj8X(Zrsju!{afz z&U51NwsCvB9pi4?;(y5Tc0JxBZy?|I_{g{&cWit<&;KdoPCPy(*Kuba&*Jr#J|F4p zl$>!p&v}m*$aS8J9xofW$6GNzpXYDL@kSo6k~fgAc|105$4!jS=Xp!UZF;;#uH&{n z-ZSpT)p_n4xAQ#k_>f%ZdF1h_aW`)D>2m*E!RuzdZuH(P$6F&0THxx&HmW8TkP*PB&WyZ*eDIg@d3szec!qoo9~gJf3$u61`O4z!UOLZL z-XN}D57YXEcgT1ZlXvr3hu6q^@H)Bn*&x?GM>wC_&qs7Uv=_(g`tPnupLy~DyiDGI zrQ~bmBY2a1_$tYF$tUm;`S{h6pOMetd7OVeuHw4nOXLx}M&4{oJ|XYHyX1ZNkbDN8 zkx$bJ++GpnN=#xBnhj^7d2T#beCnVn?FTjW7W%!gli*=iOM=*bApG9~`eihbp zm3#z`$xH9LcwV@pGVJE;TGch{U1Hv5$e=U-pxaPQ~F8BYw#wy_SquWK4&=p+E4gJStog% zPxazRyhL7x*T~~7tT*xwyi4BxrsRj@J@|~g`(KjJVO?mS19*wN|1HT^$w%;nJbPa9 z9r6%9B(Dc@9;f6jcn<4J`)tEQ@)5jBKD?RKkI5(S4*B>Z$q&e9@G1H9V##N*?zGR$ zF7c2&xI{c6&%tBz5Z)#aurCJWdH95U8T%!R^{#!6;6?IM27QuO;SKTx-X?Fs`{Z4C z;e)a-T|aK0COvt-L_UN^>wN7|@@d9}jULlX}Ao)6Z9o{0Zt? zB%i@&asbuw7L+Gi79AU}@%QXwz@zSOCcci}DaA-qREgOABG_<5?}Q`_gW^#5esnsK*J z2md6wm^}L#@fLXmZPhR|IsXrobz{li$_>4SrTIvM&xh;2I+;LUl8FHzl5PmFaE;Jm3f8q$BBya_Lp57w~W$fxio`Q(+7?~(_v5+9Mz;4|{< ztI;Rci}s&M#7pFPc#S+-mwZAV!@K0Yw&aK8WB81G0?%Q6X`lJGp-=MM+r_KoMR-D9 zc!%UWSVDG zw9f<{l6T+{`4AqHkKt|d89ehZi+%0(Y3=j!exAGw56Nfn5_#$0q)tShz^mj#c!NB5 zM(V`mRd|cM18|V(<2YRAmjGQWB7o403VWP|6S_ThVoX=?_?zBy-QyBlDPgH zmdm^I5~0r2cRqn<$+gcMx%Sz>`P4qccS}EQ^5S2M_sPrf33>b>$!Bn$ zwSEU)ByWFM@)hzPyg}aWNxnrsfcMG!ACdf+d<4&6y=b4=Pf5N&9>Oc+_0LPbPTqpI z$lLH9`3OEHAO4%v53ugE&k4LhK0YJ)GWiT%C!c;n@=fy0zl-rwj* z;d$}^`=U&qhu6rLv0s|xBY2m*^kwu(UWL!d6L|iMi~Z&9i(2p!c^BR>?)GEpOY-@B z@&rC2AHv7vxi3qd8F>{Rj23;maXauF`4pZf55FRxACkxL68QjLCf7O|1ciucLGiTIej3eR9(wV&wQk}r_g z;T7`QcO+jYkKrxy#&;#(BX7dTkd105#XPLYLuaigcCV3OyBTp`o z`Xll-JivL@K3g}Je4e}uFOzp}A^944AKoPIWhCDvAHqlEQ}~R$cT4p7AB+9yt{WqG ziF}N8+c7@BZhTcfzfYdPN905Jm^?R@Iy3SrJor!fxSQwsbpxIwpThIx;n(EzL-H72 zA|JrZQ~7lc#XUbuai&U8O)QOm)@~U<^xp7Yd9|r^6H}` z-y(0o`{dmxNq$T|f@d(V+RyNiU!0Y5gc#}L+N1x=uwc;c496Z2z);_b(mwcYQ056kQUn=<;c>-^e z_g^ddF8KsLBG0@|@-y-wJpb**esuR6Q+Sa)f1T6`jl2Cj#``7Xu8!u*#$CSh9T~4; z+~y4r@oeUA^w8_55E=H3TBuB*EDJ+hp5Y>S{IP7uK%lMp~jgENw4d(1Uu@)spB zpgJZIH0?;1#vaxBGu9tx47rI~^4?V&zoLLkRT_%8kKW3V@>H%VN?%Gu$!*mp1yNF} z-lnZWLlKP&qJ$vR1mCsxT6<=#HG8{#pL_4;^X8NB%=!NIZ|!~d*=O&4_Bo?0M)->0 zGT&9fG2gX%%6Bco6Ydv%f8z5^MR;0pnQyb;m~Z0-$~P0?S;IRyeJ;W~1(*4D36A+L zr6}KGgqIBW`IaMmQgF<7?O&;Xo)R4MUENIiPDl8R;n@aCKO5l-g3Ejt1;>2nUPW=1 zB7E6!pYKY9Cp?b%e#7r?N^s0~=0eK1F~XY+U*+`a2+s;G_ctdv=3Ba$@@aQevzpAlT$qB%-0MrF;DaU`S=UWbA~T7FB;zY zN0je`;p5C_4PSeb(k~jG{%^$B3@9g~_^RRa%$xYQ`Er*2jM8TfUt->6_yix{al%P<(eO@duZ#KN~ zUnyO?;hoHjhEFpu8@|GP-0;lH6o1O_GV^J}=b6tKp5p7ocHR$PpP9d+dYCl4#Pu_0 z_yY4K!`J~~^%M^ds z@DlSS!_&`E`ZdERn5TJt2xUCJSw6lw!%UR^(n>IZ2JxV_z zIJVpLMrv0xh8LMH7(UB<#qc%eDPDKP^0@PB6UA>be1dt}@I~fX!<%?rF=u!e^LE2$ zn6C(q{lgruTV}YtzTQe)Kb?jzFfSXv%zWDL>?+msyx|?pR}5eH7fPSv{r2TqWu7s- z_(MwHVfZBTvf(Strwq@$#N{-6nfbEe?LXpja=rR;7MV92KFPep@Z1{3DH%S)e9G|2 zGn9VL@YIiqFB_iWucr7Z zUZ2MDV7^7>O@_}hPaD3*JZpHak>ckJpJ3i;_#*Qz!<%?rx@dS8^98~2JX*Vi>a&se z+t>4bT+dm<7nye&zQTOm@LY=GPaEFJe8KR=O}u_<_!{#@u0LPS(yJ(a#_%cTorbS6 zFB_h{fXiw4B=dR0mzb{@o_RIJN%8UVaxn)#IBYs}{jFJDM; zmJMHIp5k`l%Q=1#rEfNTg?WeJix*S+lHu)Jh))?_;`TOY_&t|W`t(I~9$wY zBRRv9EtIay@OI|ohEFn|HhhWsyy59fDE^}1MdnL}&oW;%e2w{<;kipGek1Rn-`@%5 zO@=QrPaEFk@8bxL=k>%JsXiABpXYjBHN5FHl)jPc!?%YF^Q_?$%sUOAW5_g8@|ST#qjd=6hFns)0cCRdB*UL45jZde1>`1@a7guKV|qh z^LfKFt(1P*@G0ggzVBTrC-Y{*m)}ltCI!dywD}5Z=d*^Fm@gVW$9&cBBu#M=zJHG8 z!T9aWQ-)76PaD3(yxH*dl@vc`c#(O#;j_%U3}0hjG(2||#UD3(g878ui_9ktZ+Zj8 zSrr_|_u@XP|18&E9VA13bB=hI;Zw}V4WDH`V|epT6lcNk4(6+d&oFP~`u62nWu7&> z=@yFLY4|kral_Y`PaEENE0@#oN#-ktuP|@qVRe8%twzVA3IIQAP$yges4j@wybf=lCaZ#D`c+Q97U2o&Sf7|a`%_e&RD`Dmm-#jej&YhY6eknmS;M!FH${E36A+r?4W$7BYej2MNU5(;R}Mxd=~}B zd^>hgzDp6lY`D*NCBhRv{{H-0Ez@~X6dd!NyN>dmF+6z-@dd-%nXec=$vnmJd^=oX z-eh=s8^uo>USys%e3p66@HOV0hUc!Q_+5riFfSUu$b3O?JYM^cQN67izV>0_jl6%p zo*O?xJZt#GuMzJwe3tpR;i->O`f0;Em@gPU!+gc?RpyOcPrjT@QxrdA_%!oQ!`GOX z4R8DnE~nv>%;ybXVZLJc)W;}JijRXYXY!j|PQ%m8I}C4UUN(H1`IO;v%;ycCeuVN} zHoWQMTu$!id^wkXi+Ho)_XluQ8uAJjea#s^ECu&HXXeTbB3R*YopSpIwGe zJVxoq4WDK{V|df!lzzeR9P?Gfrf1Y4|wval>c6Na?2y&pg59 zG<<^jis94D8@axHIn(nLCu4Y-d8gscU!wG7!zYC2S9!|;wLxtxYKa{HMweCwZ3`eY}yYs?qVqbVML(}piI&l%pFC4ZOUCFUi= z=a`obPj*wBNyFQjPZ>VReAe(K=5vOp-%9Zp4KFfZGJKZ#s^M$Q*9_172a2C?J^A{a zVBRITJFovc)&Gp)<9u8e4PRouYWOPiCazcCeu{ra@w0|cGVd~ch55MQnWwm%hIc+q ze8KQ#=BtKh|D4h{^6~NI>|mZXe35yl;mu#6IOB#dF`qU(_f;;Z;a$vE44+`$$j8~2 zGrLG}GKNnx?=(F9HA-JLyv%&s@UFk0^z()KRI(;`ZgsnfpsFr{TqK5brR2 zm3i6lt|dx8W%wHNdBZb*P3ad6_kZ7DNpLq_@1gT$S#UfreEJo^F@2WPuL>^HuL+Ln zXE=Q$fBO3Izng9n9MdP4!$9(0~o(ePPLzZBuCg3El@ z1jl?cw^6N3}0g2Zg`s8TZiFA=Bt8ZJ&bcbG;w*coXD4$XANIv-eq|E zvs9nshIcWaF?{LoDE)%r$=?%SHN5;B@kZWnU(RXfS;NR@cY%yyvguM z=4r#1m^T}q=6-BKa6B)PA5lFo8ops5e%0_!=1pARzMQknvxcuR?=rmOdlY}%@G0gqhOaVTFg&%&D;T_C744-1&Y4|eplHtvF zQ2estCFYZc&oQ4eJlRWeW({v=K4hoP3=S^fQJxzry7- ze4P2J;Zw|;__+CUHvNR+WDPGd?=n1nmeP+KKEZs(@EPU{hA%Q-HGDjw)#2dNY`Er)dC!R5Ug?XppoheFR zHhh)&wBgMgDgCVB{=VUy;Mkum^7g#oIIj8h3xZ?%)Vuin5**X}`-UrmWBMGYUyblJ z!zVa>!k<`g7{~J_!DYT_!7+XDPAX?}gl7z&<@DJI?+_gGow|tXc}{RwKOL0sn&BPH zo8C>j->)g=S;Lo^cN*UOGvqHCUSeJ{e2)2q;mJOVGii7`^BKb@na>)&#C*>1G}mVn z?}u;yFLS-+44=M^>a)x6Ip!0FXRfF8Glq9EUo?D{`KsY-%$vBLd^tNZ6hCYD6!R{_ z=UXWKxZ&-sTu#HMnJ*YV$9&cB>~@ON$o1{ZImtY0c&?4ocN#v!eBAH_=F^6+GG8#f zeFw!~F}#a;BOiZX&i0*@K4bVi^G?IZvy{GUc=K-J%Yx&1mw6Ah=k$JkewCT$44-G- zWq9f?@{b$d!Fcqj7(!^fGg8lJg_;xzJc z_T`*no;7^@=O}%r;cLvt4WG+X`boq6`tX$Cc;3zO_O#$QKKk@Cf@As>-kuj6)BE+| z1;H_W`n}Z77bASh@FJ&Qj_@_XF<-wvoUjk;6Z4(>Im$N`;f;nTKTqkKB0M8F=3DNf zdY%&8)zAAV&Ya5?f8s6AT@fQuxGG8-%_8_Hi;{EpJ zTwm^T|f#XMv9GV@8n@q8KO`kXU-f%%f*%ghtrZ!AB? z$qv$SNgLk5yxs7H5~VL1zRG;k@Zt!ipEZ1v`I6x)%-0OhjB+`-zJ2*8nCA>%WL`A9 zd5q#r7@lK3Yxq3#MZ=qpQk*rzr`>sGa(9&VGQ>yTvg0$MXsPyG|(JcKWNg=^7fSBtGxZF;Tfvl z0{eV?dj8+vC45_;690Kl-*4h@^(W(o zPtf5?P8dGJe8%tv=1&^V%ah5H;f>tfP8)u;Z-!hSe!m*I0d6t;W#-L>U&n1?kKw({ zI}Bf7-fQ@Eo2Z`4hIcVPZukl2(}q93nc|!>e5HZ7Zx?=l_rHqxvnKrl^Hsx7Ghbg% zJ|E|0=1qpDFQ9bS8J=ODGd#8~!x& zWy6=4zi4>xtEnEE`26to*3n43&F~rK?S?{<{gWnr z`z6Ge4KFi)(eMYEH_@NDsl;!5EycOc@U6^qhTq40zu}9_i-y0*{651|mr=e`hUb`{ zGQ7-u!SDx}uNXf1I*R|Y;g2%k%Kei+zK>r{>Gv3(c|Gxd!xye1K5qCb^Am<=-$3bo zf9dmmkon^#{nXWzo*!$g9Ix>=5+}xdHyhrzi+IWK2A&8^8orinC&PzI!k-p_o>@X2>joO#2WZ{zYC z{^T9R8+csu$j{rKkN?7f@#j7fi8C-KJ(A7%cm;mW5g&oEE% z`0w|tG(zdKhA%!qe81sa#)*#_{vh*7!=Gh7V|c^=NpThpPyZ+4Ylgr4%f!<>zwqUM z`B#Xy8@~7u@dpi0|0?lW!&g2`e9`dzQ^Z#dpJBe9$9Z3#Q_TH*$MeSDpg0{S{mO3= zpE7*nw}|`sg^!axNqpI)Kk*sj4LrZ_=^H*ve2?K1;T?0tA2IyqdE!qRzVKz@ zONKwg{IucA%(wFV#h3Gu1&XuB@Y8=r+|Q4E`ZeaGCjHD)lzz(aQ%@6LFns0DiN9$0 z+ElKIVs`~S~<$?&WHg5n%Ee1iG3;U}0sZus%Pq&TMyzmNaE ze8WYg`*LP}NZT31_nsl%W%$xMx?mbLd}}@N3B�lYQFoJ?B&UHN(>l#IqOca*kd= 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.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 literal 0 HcmV?d00001 diff --git a/android/arm64-v8a/liblibwavpack.a b/android/arm64-v8a/liblibwavpack.a new file mode 100644 index 0000000000000000000000000000000000000000..118551175fb4dd1fd778797da07d4c1cb8db490d GIT binary patch literal 214412 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 Bza9Vp literal 0 HcmV?d00001 diff --git a/android/arm64-v8a/libsamplerate copy.a b/android/arm64-v8a/libsamplerate copy.a new file mode 100644 index 0000000000000000000000000000000000000000..1a289d23cd3e448b636783f7a221b40ceece3d22 GIT binary patch literal 1502152 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�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%0AoQ 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%0DEOL%f@DA_>?jO{ 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�cH!|Q3POTFL%)ze17pnNl` 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

lJ||4fXTt1!u2`K< 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

RShkniGSm_S+yz74MPeS`MOtHw@_d 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ν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

*7j)ASpajvusZzIc)b5D%dkCY*6ZW&(pD#OX< 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

G} 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 z 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 xu+7yrMc`n$V?`GKZ``3MZk+zQ& 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

&KGLm1^f#o?_lr~MiT~1Q+P`%A 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

Y)RQxXYE&ZhfgxArI^I7zLvl)u8w0T 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 z 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

lJ||4fXTt1!u2`K< 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

RShkniGSm_S+yz74MPeS`MOtHw@_d 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ν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

*7j)ASpajvusZzIc)b5D%dkCY*6ZW&(pD#OX< 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

G} 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 z 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 xu+7yrMc`n$V?`GKZ``3MZk+zQ& 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

&KGLm1^f#o?_lr~MiT~1Q+P`%A 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

Y)RQxXYE&ZhfgxArI^I7zLvl)u8w0T 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 z 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

Zame^73So9+$uKgLw-|z2yKu;Z@0wBr+kX^ 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�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 cVuzxFKX@DkUWdb6H&jBrIB--c*P7;Ta>LQwj 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

~>#Fv(Yi0UE3-_v;&AC4kce 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≪jcFXFhU=+$nOMOJ=P02}utUx-@2^~3^xBn+t0ewSc>Wv4{}%pU$P4rD zoXv#%9{^|V>_~sg>~R0c*@v);sqi=8FDZ&b+V@x7n2*=z zv;m*CRbd!^n17@)3iZL}8PeCwH>E-wAFIRsDH!)>Xe%l2`zwEet?j+Qg&Dxpq>S&O z*^#49wAzuss1x%F+vL0rR}8QRo}$FNXuBD9$wt(lqW=EM$Jp6tz$VkQ==&>2Q7(V> z2H2VE%zyOnR5#33LfaPbKd6+z)0O$P8LwSAto%Oo5u!C4JHIR`E&zSWNXA|Qx*^a& zqIgE^HAyJ{HnbeGEELh5b~zIyJm`%Y3&g5GX5%bNL#Hnb_HXL3-BAdq6x{yE=>}iCHi?vif-4n94T{>%1h`M z(jy`DAmyJicvh7!43&8lDU;|evA!o|WsPeCm1?X#K+ zuKg~+Bi3*;X@W3b;=I-1#=%3f46^p!fqeoTP9Cg%;ny(7qw`n7;&sZRs|%NzlL5Jg zh5Dxt&Qo4L{c!GFSpK%={7!k@^$_m$%BV#xhyvT(SR(c(V^-#6Y`8KKx3ja1EQ+&V zWJms4ek?eQanF|f#YJQ1AKXX&6fH{?seilsXq*>XP4t{KVkNdjty7R z9N7OH%InUDm(Io0N#*r34<9UDjl0_y0CP_R4$A9aKYXuW>-~ejL^<7GI@<-fK<*lo?(ZcUG1L+oEfqA z1dsUaM~Gh_exjFOAl{&tmmt1@cmd)ki1#4=f%p;P8Hgt#9)fre;vM&_7UCy} zKj9YTPWfu@pQnJQn)1Ep*5vFTZrzKM+({39E1z=l^3KT@FDFfT@Y{`(iRY5~lRyz= z>iJkvclnbx%>~!+)D=YraDi|DyTqHZ`~1=i_Ze&tEbpyR14iJ+SoPHuodI_iM! zfJHC!7vXo-N&H@Qb;&Z!6Yygd>Qt8cH)Z?>D7MjmA>%AsH2P1%w_#MqIrIzjpSOW8 z2UaEfH?;y2ps{$}8|k0lO0#Y3+N#BAg`)gvu}}^PKv}mK+z{7m= z5ViPuaIkfufA6B4(%<>_tfCsBw`|SwXPyMt?4X)-{x@6A{*9XmtKg5Y7pv2|!2ieD zS$JFL*KGo1Hc9{!$crRRQ4(oZT7o*{shF|r0o1{wLt30Hp$)3n*rlR$Ez07#Jh=r?Fa#}rS8>1c z`hMl3e=gq=)C*;SQR+rWh1hWf9#s0*n0^vFJd4OD@qZ{0FvIhR==lFoMqdWcq<>MS z9A$F^*LZ_}qZpA0-LGRqNRA>1tMuyUWZi&GH$U9h?fNfF7=qbea?M{GLimk9dQ zKl@LpN$*NJlLr5Tkb8f?{+|MEYHavxS3Ha8UY6Ice4mF?C2hqLl<;!?2!|ZHrB4#D zzcNTj85^#oIBpN!l9{Rg*RGraA0^rZ=>+-7_&b$k_g2h%Ye@EZP)*#1K@Gi; zzgp8x)n znS#Xr={*sC74#M=NbVwagg;yfUJECN;*3hj4iry<*7~Z_e_Iin9FT*(3c7yb3oPy(+@WFVPi1GMxQ+ z66!4CCPrU5ff5`_AU^PwFYw`ta9+j!?#lFwa5Acm&h(4(bOk4ph=atPA>a;Ppb@I2 z*8|1)i@wr0XeD#FTjT`p50OCUE`m;jQ(hHLT0-Sad0YNnH8p=R|U=xdx}__dyQOd-AWi1kl@JZ8+Y zDb#!2tmZ@1mTnf)O>xpFja?^_-<}0qJOAebJ%t_#SAdiEz{@60(-?DHNlZy2P9A1O z)0w>yu_#TQ58&1WK<_5>PzXsWbB2An|8f}HdO3={iq9{7i1^NhrGQxUr(Fvx(u;fB zZ*o1*b;^kGBK^yU(u@C$n1=MfSMPP|OZxZIlwp5iKf#=~D;hll# znnSnnT(v7GfqfVkRe_sn*`^3HAPRc4$NK?fBC-%`!a8Fk5BU`*X^(yHC+;R9IKmRm z$ZrQEI6d%OEy3+WT=3D1}IO! zZvd5g5R&IB%HBvZqSgr7_LuAWG3jurOYi`cwL_~7Bp{u#G#X@#*E81w>5-p9J`8FwN+>58u zs73o|)URDx=%taf)RhIC6=S~1v=8yQaoohsS2!gsg+#Q5u%gv8{!UPaY0BvZy%3l( z00I;KFF}B_|NG+)N4y6354smNeDqWF%e}rvSf?M!aF}!ydR80!(OD8Ks&em$kCn{L zEx(T<*5U35;l5U_@a+-eGt~>s%5D+glw2PYNQjcSL|I|3+@NSq>W2>p<@d8JpG)d_I4D^h`gOs@0-7MlFKlGm z#~Z0G!(M4@fCYAL{}ZD_JUR zy~8Q?VX98*3iEK|LeC;6(*<3zo^ZsKyS$}gyd1_$C zIa()aa^TE#w9f4O-LzRfJx@T6u95s`!g{RwLe}{35$n2Lj{B#|D+~YL0$X&!mV-P4 z+ntZY<_j@BY1~0YN&OS4I*Ci>;l|Sw_3Iz55uW;Z!^%>f=uCabZ#bF9pj#3c&25Ce z%Xp3}XwWFQ+~!}dhOEBT;0$4Xz@>t3on9(X;XO1+nrUni-4usbr?WUHzlUWC{mGQLaBIXQmU+#o_Y`A=hVp)JiC`yK z1YfyV8&eOF^;&n%9cwg3KUdo6w?ciQHZ2bi zijOGLt*$4=FYqR1f?sWW&abD-ax4*?tqfHu@3@2!{z5&Y(kLeyVa(bPk9Lz{jh=5 zJNRl?z|!~tCB(yd&4SdN5KTZ&^vByH*>>gETIn|L+jZVxur7NnBI*fRYwj=cOfqHL^>WWc-Co zADN|lIm{_T?Az`!=gaC#(T@+e@aT!Grzf($e#{R7<8>dnpWxx+*WeC58siQ=z;WqH z_w>Z#V46U=DWyWgP3F?CpCh=qgT+05#j}LJNzYPip0fLK7v%9^Tm$Z}0GuRtMAgL| z9^4RuoR$v@Y`vYq3!}!4*FA=~<^!#Ny!7wj{-|~qwZ1`~Aw9h$u=Z!K-$;Jpv?16{ zo-fez@?-%M8vExfMp5~7KbPMQzrOc7qN1d@V`}}+se^t|Di+*xca++>Js9I5K00Uh z_MpOYaMku;IDBtZ&4ZkR=c#KqEK6Gsaykv_>uY66pz`OsQGzue4ATw0qeNfn!J}f& zypJf{Q3HA^?-+u3;sfhl*Ej>d&0MN>ozWYqHF?96j<+)#J9xZZq&eO$Q66uXJ;JoT zzRYw>xvgopNqOe_>gO8ue^_sd8PLMO9{2S}QZ4Hkf?HNZB3%JXetAxJCg-%7V$X89 zrotO%Sk@`r7xWh=)&n!~3x(C!2CvJ*Jnjej@gT6Uucplc|JKX9mET8{5qAKZcS7P; zxE};|r3%=kHJ53)d%5&30k=Y&n+Kd*g8?(z#K3tlZMKKrUe|!zad4B4h{1-OnV}(1 z3F2G^v|8F$2Z|B(8F@oDd?d1C6CBV6v-NL-vk|U{h40WCy)>%wXB_M0NF(`8zlvkM z`O!Vt)BF2P-2C&dc~4;o^LkTd9V+?iMlMEAb2kmrF+fFW)bn0c{e5BM>O zZs41R1@#>g`Al$=ANp(p=0f)A^`YqDvep(7Mq7SPr&(eRBb@MuVA_DeSZR91wSkqG zdwmCp=C+{(R;|Ji%(Nz%OW;G&m%H6UsoD~X(=*Ax1c9a?}j~XV`1?b zmi?%^TqBIKxL3;d@r z`viBwfK8S@r~ziyUalE&oek?ug)JqT(Cop~mNCSCp!W#c&4<9(21i;cErd z?nfDtF7-2?3VeF*W(@f-8hYlsm)@{c&W?R%yU6y(k`pC;bO?T6xGe$o zGL^Fpa{A)L*@%iqEthDxNu2J+xwHJ~OJ{k?`wD&-LQC@hhn|#;{AZW?ph;3b{L6v! zupv~0q>IN}5WSYY%!lCg0N_+&PUkoGK&9Bpk_^H0=n#JQ!s>n}OC|WF7i&vG@(O4g zMLZGSg11zC6<=bOSPelPPA0;c*ecS8pv*(BpX=o8vw5jdR*KwvlYqw}aODXiJCzdK zBz8`3L`kLvW?OsVL)i1beeQ)pWdmSPAA$i%b_9d9g{BrIU=Y~@gK<4D2=zFhR<0bY z+0q{dfkTv1$rJC&1P`vSgAxnT)~Q&lX3YpEz3pja_CESF4J)>MCh~FLj=bStttqBO zdG_zD7#bVN0FgZ~<#dDGEV*&c+jAfXOD-H#XT6TUBn#6s{@(MrTI#}G#-^X#`Z>)V z_j0`wH)#YAZ^zA2VuRx5=%CoMucwCnLJj*mw5m`Y`#ZFeANy1))PuX^FS(1U9#skN z{79%HgX)O+H|vlIH`ZJdqSH_f^y!(eFc~lBt?+y!Xnrg39$eIT+{O+`NSBJ6+M+?e|duR*H^ADXbhN7@2TAA0KPUAPpzQwe?h2Ht|? z*OTu4M(A56^^I1%{K;UtmZf|<=lq*F6 z_aQCR6%0t3mKE+=Hy~wtmZa(U@9)i$IO)cu?ye;V#(SjvkYMzT%q*F6RF=%e zI%1^YvnN0UB|I^C7T}-XbpzXbL*-aQF_-FOZThxCxMDSlv1DB_Lz93^x_#9v~ z>QQH74a*3l=^20TanKsp57GT}cK08!_TXJ6ZyGi(v{T}CnkbnQe0=zG(m1sW~RzHIx_(>;uMv5WoD)lPm?1HS7su%Q8@56jAt&B7Ic3Aj z%xAc^aw0JAZSI9wl{65#Cd}CZ}%pyxE}#1yE*= zJe@h5YC{{@oNG$zde2*!oht{GqmoaL8~y@XAh^b7r?kA@ai7q_5!XJn5Q28jX`~7* zeC0ZH>CGOhGWqnI9ruZ;)~{VBF7>YGX{X=nxKBD0H5ye<-F&4hK05-uk z`M?tN!zlg^^B;cZRSlJADSYAVv-grjE7bmii~6?a+J*zqqjyH>PoVdTGhc?vrWO=F zbN1eB>ct}0bnh!e^Sv7e6?)eWN>nL>T*-6|Xx?eq5y*xspDX{Prm%2A)1h*BChEmG zMTOnh1|M*Mk~o4~Gqji`4xH~h;H~EfN~0Y?nbr{u)5{P~%F++3P9Jn1%=e0tzc^^} za>m^qT7}We=I<;N3)sg}(>x`bQ$fAwRJ-D_1@I@%Y8H0f)aFJdY@d_)G=8l>TPf1) zso>a#aKvWW1Fss3S-#bJ({k(OLXrvBhDX$jgqGRJ5cY@U{17kFhyO)5$0BY%)W(TJ za_}JF_&QV))Gx^3;rOcvhLbIY2(}D{ndZ~*`__Gs@`2P!ktAeW4&7XP)u1>H`SrJo zxcnVAU%e_3(o*y3E>BA1bhtgVArkPVI25>n>;nVI)8S!t5w!=1Ge>XVz7$=?bqtP- zsNL<0%p#zK)WlA%8;ZJ;-~3cGwq^T96;0$$p1yD}U1xOzE*%8u`{+MBNgdGEA^KkGMH;NB{#y$v~sv1Yj_L!i0x zgCBmFMzkh5L~Dc{3afy2sJxyX>K=#55O}ka(>IuWZly0$dZZ&f3S9DKnzQD>{z{$s z!LDxZtIlq2BTDY6+y-6<#sFTqHd@yl*jagU+V0`f_J1qd6)LSd z(>zU@%-NoYbsm$;J7l5x0-gD~ic7xc(XOoTDCNF5s7^=!CQL(Jf47tjNP7@zf3wsN zNHZeMZSf39yANqDi}v~c^%WxR|FM(|NE?l`k1X{A(u$FG$l@80HXUhuEZSB5>!UVa z!?{`*prx!Oh#5MoEiX-z_l~efCr2<@Zy9?2m!tFk%IG|n-rDXQUt@(~o&O#a+ z(9=TQbfg&uq>a`UAk8u$tw@(g^$kcX*6FFf0i!I`rBQtY((cn~Tq2uN7k`$s_2LF* zRH{Q1qbOH@{E(mF2VlpPYghLZmPXW)JX87$n3T9m28{4Q-EUlkhXma_;b91LT7C%; zL*Nop?}UjVa1N<=LWOYTPPovleoplcfDGZ{hg9zXIPgequ!w9@ouPA|g|iV1?AZUh zb7}qIR#{8LX4wwqdDgTG^r;G;WPENy2G-yc4gJp%_?!RX%xBYd(9iX*pp_W0&U&n0 zn#eAns7h}R{MkadbQmoabWMva=qjEnM~rkP77<+;2imWw?@-A;>nzAV-udV({1$ep zxW{u6L?3K2jcAFBkI0ZT8O;@ii1aur+HEi!3L{*XJ)fB?&D(CSzg4)p`ex-n#G?#> zfQ3t)5r|XO$1%`Qk&PvU>snjbsOP{htE{+L_%EX5Q}80kJYr^k@`TxG#8VN^PWM4^ zqs&HBQH#F5XOY?>YU$~)g=r7tBtZ$?2jZ-#A~qAHT5?Hblj$PP9K>j4JrF2qZ0Pq( z*BDVN&^5I4phuuA{GMsOWt$KEsb5*5;|2v`mN@xHM`V=#OhhfyQ9Er|p?W8%8{<+d zS5-a#>GK?{h-Is|9K$N5wU~*rZ&dCPkTvN-TDiWcA7=#4Yr0kpdn9_I+UdnM^UK?zhpZ3+z8v$ zxqZ7}1RqiR^o0n%>_So3+uD;|d$qf6F;0{`RUVqNz8M?jVM(%4s_H3S@dwyynor6T zC5Pto`^(Zm7{YFBk!)i$y6Q`!WR|3=mRSFYI5u*-yg-yxT);dz1tLeaX~=19j%iMJ zMzpg?BdQrO(Qb<2yUy(D&~lWkI1|o`9FJ=@nY1mBd$bcN?Rw7}F|Iq_5Qj>Jw-mrO zMTNEUPpp%j9onAsiD%wyx>0X~dc4j4-FDV+!`Z$Wd>$P}GiHPI-3swa@pptQ@{7{`uL@55b*VJDztx zFTwnCm>H(c_sUXaTexJEb>XFmTJ8=k7`#975=C(nc?^tsEKGtoL@0~9zu#YY=@az% z2tGUT*@_RHTAhQ5QvfrFuABBg^ zwzX2T=D(a+;{l75?m6oor^2b??e5SJiH zwQXcmG}`%!x&kp6WQcITif6;TcO!fBT(7WL$#o`#S1!xMK% z!ZP25LE96)e9#e4>}oaZ{iwA zPkf&nF>S6jJTJMWc=H>aB7GyAB1O8T*WX&P6S7z_G-6bT-V6zhBk7Dwzb0t>zv($m z`X(4UO``h{+&Dw`JR{O^=Qy1jcho)_)7ovPd%+Y^@Mn6 zR$DK`{iAa|Y9D8b!r$}eoJMU~NRLH!8uI&kby~f$>^s*ppIM7DOGDYIU@dkg7MQXD zv2YZo&M$|Y2+pz23QAd|b%xiV?r8}nPOq0E9v<$zNNCw<9#gsvv$VqF3H^1UIKZezPYnzy%;g5G|&t>+eNW= zS3j;Ezj=jE#5H%0+mH#m+nqZrsH6Lw?~&(N7LBgnwdWoysIlr)@Bzz=YnHLIg7S#> z_=#4oBaS8E8z=Kgr-D;0$<{bNuiD1jabhrK`=rgM+V%5>d4}*u5C!@eHSXub}-Ru$Sm{*m7Y+|GKS*z z+DLqg_*cC$&f*n`!y%(wvm`k0vKis+&jO>?v$8RO7Hb}YQ+MJTMy}61?!2v<*RgzTdXpW&2Y{F=ygs zfv^6FJMEy?t-uF&&aHomukwboN^dwP&u54-fO6p{_*wiGfnuC$-}RV;Pqv*32CS!o z!3Lam9m%x)X)80=!8WowdYU3!Np%JZmy63#tSYG%VKeWwYU9mp&}a3p!wOxsM&v<@Z%Y&jYU=mdMiUF>P(`+8n6py&6j zSM}@pJx=O(8nlrijdwb}CFr|A2nt?2az^m-fhTK+4&UT+HfMXxh$2_2l2pj*(v z6x1)4Jf()PiTanfnR?jZzRNQXyc<&)OcQLY;nyj4PqI<$s%z`of?wjiLtUP0kB6)@ z$p#7~qLaK#TO06cZ0(vG-|o+|O=twHxLv#Zpp|TY%jN=oR>YZnp7PNI*XX+)FR91d zHyWEePprGk2Ai>K4Xbgwj9$rRjnvAb@8EqY0Lr`pFy$J@D_J*6>qv9>*? zc)ItqevplsGpv@*&({){)7&|09i9EgYy)LW-nA#1=X|CZmQqxfvE#8|O38MLK0f9V z#L+ZqiVFSi^v%2W8o20LDb}gxRO?1_ob`lxm~|2~y(}SPa?j13-7zIZ2Xpog4#)YO)2=RnUsp}xJhyN9z1E-mUx$|T^4()eMC|^ zcHkk4abx@LQ^7Z^%r`B%IH=X6R2K&|npAwpX^Mk`RdLnBtjv>+wcM@O3g08F@t6fV zaqrF*>FPm$2Ukya4|V_+6(Za^eP$TGD`y3n;X%YY3~^~Gj?|ii*Dbm8I+*w%V$$C2 znCIiLuDiz!RgZUUGLBE!Yoz+rt%rRotlsW1&mmGRrNp$3j5GSAvXnR;>l(Ri1^7~6 z0mJ&%(s^z!pTgg5OR*c&srK=w4UPAhVnbTI+TCXzM6X zH1&1$h?-dQRz$N6=e70`TM!eAA7ay1C)lA$=C_)LV3iOa((G#NLv57W7JS8$>KF?C zCEE(BqaSU3$D^_1)_c4)+M4DVR=v}cTD=}C9IKog%**ptuDcy6w(&Koc8l6>e9BwO z&G72kdW=Xc$+X?Q11%iW@p}`-*Uk4y#RQ>cz}#Ny1z)bFEUc}xt#P1vrG{6aNs;G| zuoDe@oF7rGMPDBW#nDy|{+X5?u1ebhiBqzMnwfCW;_ zay{y|*3-L5=XdR9K4bLfWekz@G?fLNYx38Xjj9H<;%L>~-@!}?30d2gfP1>X%QE>8 zu$YN~nJHtov&`X$n4HT?aFf8`rt8C2AhLb#R(Vqr|5E(D)uZf-jFUFA^mm-tPg5d5 zKlQnWvWeDgp1YUYEF65V?dx_~&HJEplWf1oH{J13QZ~^}dZiPVT-)P3@3y$#s<6ZwhiUS+n?i+!zS0v z$NjeSMlQb}b{BaI8hlFZ2y(Qy&9dv3k{iNLakQas=`DH8o3}*s@K&VsmTJu8I_WKC zjP#ah4Ato zb~M0>n{1om%@^l;PcM58y_w-HB<(FL^nSZ~H`X^GnKY%&;5CW9@$r$1eG0^3)-=uV z@{tR8Zqf?g?Rv^@r4u#zXj`^@oP(fJ>XUPpxUr6hjCVV#K(`25 z6+V%usq6H9E_=$2qyvOIgkyw1gk>T88-?9r8gAt}yI%y^dbl*rnrKUN=+wh)OKHsg zXxVK3i2<~%yX&v-kS#;Eo@&wv^fv*tr(yMA8@r{lU{8w0N)-`D5tC0^w|KjD$A~)a zma1|C(m{*FmPP9Po!1+dmAN3fen^~2+>VF&VRf=No1_ox=TbTSe>2>oK6zg!H0F{8G$vW~!~9UxJ0w)EFrv19h=9?<-fC-4 zh-Mk~*1J6Kc35UuI={DYS_3f6zypsv2={4U{n}yyBnY<6L5+pzNmEzqzTacULN)Y3 zV$HQx2R1{4y+%~cN0Y>+cmQv*q+=zBWc&{;9|2xp++$UPQVL~VNE@%N4M~iS-7-Gx ztFYr_ml$>2ut$gZc87)dcA0fyc7=_2?{IshO;sx|k=r61A(=DuZX2YB_rci^FYauY z$DU|c#~PkK5uDGCwzag!rm&IUw6g^iDfhj&mS8k1^!@N$r+R_!$7O8m#{1A4j`Mn! zv#ht=VlCtjW&oG^M38u;>1|BgzvsftEuYbKv~)(-k-4CD75FSg6l;rdR@E%RIKsS` z{9&$SN79bd?Ks&*%YOp=g&C2_fL$!59+)S>+=Os!@IN5^x#NMmkemdbm+3T3ciB&r z4yx4(a(=9hB`24NN}_C{k{Op+MpM_Qx9`6s;-_7b@DBjy8x_C7w?$-xUkk}rblSfG zHt=fre9%m`G)nonpKY|IR?+Ur=3iRncHbEDkN>?@?n1`cllaj2z69sqF~UeDG)mBi z>dUI=FU;%keZItrSd)<`*VE5GZfLL~I(V8}!mG3)n^ks5%4_cEEwm$hfC13{?Jj{e zG0A2Y8d(t5#N9XkD$G?(uQl<@fsc+r+7H>yo(Q6`v>uD%o}9QQN)7GVAzRujmlpT+ z=_8gg%q>HI=*|vmh2j7|-l!;ARj~Q8y!fc^;uU!w!IA>N$pyq9>Oz^dMEew5pbiZ z>WOa4&v0wTEDyP(l^(cl=!ILz2D`_)7|`fvb&Xaq5~K~VE~YX~#XVz^^3Bh1I=PEh z?(m=O0=0a@N3f+u4A+K_bYy=lSoYE{hSTC+Ka$%w) zG`BQ8l*lsWP4Rpqt>h-|Sx}vF++EOYS@iFfV^9Bk<+AkU_kHq=m(|4)A$X~2}0ns=HxzE5J7^S2Oko!g4QseWNvh(Mtp>vT) z-P24902@ku_R=$#fLSRon_8M4Pc${soJO2G_KY}vAMlDLg?T=C1`((;#OJsS&MC({ z(mXepg>DyntAbLFJtIPC_AJd)$U6X<)hL=n#5Qu9%2>ucXB9B!cLK)9+oo%_n-l`R zd|D>ECCZg~J}qM%6X2T?`imA;aJOV*&a|^FYzuY^9ZpF&~wiR2A{A90~$-R4A;s_3q?2A)V^ok?{+(ZRgOjnd<>63Y3<;#QQMXc`b=0N^vX;=xaGoSN za7&QoLh~#aIOu_`vVMK&TNe`06_L*9{<=NU{1_}?@|~!^5L{_E!2_*;GaavhzK2`l zRj`bn79S0kADC+napoeXcb6xo6Z{HS0xB`?aDFfD&Jf)a$K=8#ZQvcXLm&$8s8S=wPy#F9i&F1p3^QJYPj!Pty~aQyu;_D>ypNk+j4JfDb--eOsl zQJ}VpufJ6uVHI~|F%>k;|12MDm3Ej}Jf5$WC*Zl9X*P>H#)^jGc>;^vJP4Aw#TvJ5 z2G%g?T9c}(FGsL1%=h6=C)CeH9QzOy%W!qYi!j`wm#el{n!;T}?Y{|Tslxd_ z4IQE>L`z}IA|b}if=DdIK|moM90r{KfaO+OyLH}#NQ-%xTHa{xUWS*RQyjVDn4Ra&w|!E zuryR}LJLbT2O1Q;vwW2cQ4DZ#xP7%BkR-2JHAx z!gD(@&IU~#UuIywse?CoBV}K=Ki5ESe;qt`jEzj(mXjY>cPhBt^Bue<=2ev@QfZ@M zgI6WXfnNKqDmsBO1e&U-Rec-zx7_E%`-o7_aa0e==PRIrQE_27pYm3KvWcO$$7#ax zbq|?PqF}!7hh;|fYM+=}2w%QIe0J+eyt@Qg6ds2aos%YL-Y^=wyu|MzZo+VN+gjus z&*Uelclv&)s6g$ZcTped1`1TI^=Jp$CDbCLJ-&c$zFY_@!6LtiORVO7KUNH{rar%_N-a zOMT}nGKh2F%6z_M75FXY;@xdn4a+>>Kg1nK`LSX?+4|=Hhv!g%a4&^vfoCt;=P~m0 z6{Fqoa!sD7 zX;RW%OxO>(B$i%^Tfk6@k!ncrB-vT|7cTn!ZT|S5;UyzjpgiD2=O;aH#q%r;Hz_2` z_)`8o=q`U)nzHAiV0Ob^UpU=^8Wrh2h+b@MquOX>JAJ;2nuKcOR$**X53TSuH_SL4 zV&Oxq`M1z*+S^wn>&lE{9pGNyS{5A2HI9P%}et!r--iD>cO+fCyjvg^1*F-zB zZyiz4?yiU4fwmdY496Ao#tUapX6%{Y1U2>j&rAT9NLOJ5V@m;@K5;|_V;QN3#_Oln{?Urh80z?J^vJU%ODrK$Qsx#{PQCC z{S?~eb-ZY6Te~V&5_tJ0&CiqTqTxN8%u52p|4F|eTh|V51Nx&J^_G|Cra!BOr6XJt z7k=j&fioIv*|nbq79I`JtY_Cok$!kZv|W5lHncR6;6-cOXh_=rZM*#bSG;1-xa6%# z{2b7}DFTHvTpfYGWcQm>73w255!^he2T=`h${`9TBMLVM>$15srAnZ3kSBWA>pW1o zp}eJYP*o3|%a0W3obm_Kus3(cRSw^gSo0q69D60vIh@QZxi8f9K5u!0@gY7AJlP9t z4LBt^znVre<(l!G;X86)ut3lv+4I0LmfRLBuEz=;lvJIv?^JMO{iDI; zlJ|U(%J0ArUtB)l7aootOHKu~_2Aj@cVt7jn|jpU6}7(&<++qnz9=Y}B<3f3xa=5r zlAUChGNK*@Z}={*x|V-Iy$Z3xgX0`;wlr(PI+7c0P7zj_M-q42G+%l`ILfRni|b#_sF5NV`nFu*-CJ&EIF#Bv*%av&3pH zDGATRt6#qG05B}9It#rWTnlY+a-uz{dbnL#ow6r+>y!LL!Q}c6e326QR>JR6U%0rG za47uu*yj{m6s;_~yKCq>$+cY427Vs+c8Mk#yA_LyZBy2?1=k5SCbN3>45efz@bEBd zvm2kKT_ZdUXE*DF-A!3Dq75m^M4vJ;xi;VDU4}h}_F|saSR-u0R-i@fCqLfPikp}` z4Zg@o<(9=hF=kRb)>QZ>ci9g;ZxF^5&>PF~h7249<30xNEW=(q(cOw)s1=-tcR5ly z*voM5w?<-(ECCGw%>eD}p4@PW)?M#guepW)l|Ou`llEldNAfpa3cdaMr4aw}Vo!8vlPfjfS8f9_}DFSs8r#Qk7@>COppKmYX$?nmGR z2XH_1RwDKt;(mxzj6n=k9{i8e{%A0%WUo)AWZ6+|#QoR=Oum-C6Lf{}xY}s%8I#0A zv}?_cvI8tF5mdzFySP+A-i<%Jik(Ossk9RZ#N{ZfHx^cd3+le{hYu5LN@(XX4&MRI zk+B&RK*l7k&S7@UA!DlvR~hA(V&rj1;~4D#O55Een?b)k#qPCykFo9>CTLAK=+hbTk2DZp+Vy?(}hH@F61i` zV4K6m)nV7(TdLtywM)&(q@aLnRawgh`*SI_&`Fk{i}R?g3`XzxX4|hDZswb2zoLf)cjHK%1RcGF?!0oyVmX#cIS#{ zoA?%o^A8y;-e|A;%btxF5^*}r5Ko2V?*8NcXwRw(i8aVGQs0eU75Aw+u5Ne@Y)Zu4 zUHkV4dHnF&-cBb%w$Q5~c)#KEXGGb@Ix{Pc zWh|WwWLL7xW1YE`>&wP$<3^?P$2!MUjQD`fze5p?%{)#^gnlulRkUn7*ta*&?T-*4BoVrCm zv692hQ4P--HM!MtevGZs^sRfyk5>LG{zR0pt;w4@tEi$f9zw47rVQ(VqAih+F-9C+Fui%wUN_gamaq}OY zW&&rzmm0&pB5cfD;4RAx@7eOtd8_yInry2v@TO&~{X?`LZ=DN`rrN5nVQHs=N3Ez& zANl~1$E=5?=O!<1jmw|oG<9CXO~Jvz@>#0K zN2*IqEK9<-G_jFf)*$!0pfSd)rz$au{EPXo!wTp<>=|zxQ(7g^j-oZ<{0lXn!zf2I z5WJLjh^G2X+0J! zx4zk-5ySFu@tYlk+03Bofn&kdNMCME+79c(#bdUP+zzer*kN0=TOr{+@F8xBS&DgU z4z#|A=Xunxr9MF~F4+IP-PJu0ce8im7G_AbIG-%nG<`R038WZJQykIydlE1^j~R&q z8?VYOM?o!`I}gA3A^fPon?u*Q|Hag;>E@(bE`12@nI`*i_P8=15uS&(=6PI6ACd|3@f)7uRc);ZnpUZ|0F*a_ERr> z9MY0CcQ(QM_VPozmGH-utZ<6qZM(}t_edVHlnJ^rk?h%TY5+s4C5``thn)nTrh_9! z562jTX2e;vBL2Xs;Od45#5$ZG9Z@XO-d{2%!5CDj7Qy$lJ|SuAN?>|q_2ky~_~aeX zyTC&8(fS%%xkZEcMcA*L@U2&D2EK|!6T+<6Sq(BPkKIKIeI_gu@U3S$YZ_>a#2Sc- zws!KVwhCUpSq&b$y!mt3)?_p@?O?L3ZI7*a1K-1IPPMDBH*`-NLa@9?!XG@JO4hK@ z33cCt^2b=$bQ>+RaAK_ ze+lpfdmuQeNKW56i!cwmA2uEMESZi~Nb5cGTrG5kBAM%(=BvjTbcMMh+)sl0G#|zt z?y>c^L?WjmRR4dS{jg&rdjT*xhL|DrjJgajV0MpnK5l^?k@c^)qOA=p^$<_1C7+)R zOq77fl5!JU!IN9Qgr3G~MZ`x?*0$hb&my0K%c|?OZTr|K7cKB9WF)o7*z``)H<9hq zZ#deE!X1hHLu#cxbV|dG)Z4ZB1-#aF0+dwFXWF&aVK#aiX4N$9Y+#IW;*X163X`YBzO1Jf@t zZT~U;@f?j2vy@w%aEQm67CH7FMMKygafoC6t<*qZByY#R%ksKXu>ICYdu zj`HYjpFj(RwDz>PQ2M7wLuoAV;n9;(`pt-G6MVxmsxJJ;Xxn4_53t&M+NmL4&8Vo6 z!*VgK?u+~woV3bo@{MI`nY{vYLy*IsqlH(Ah0d34e0ZI_X#qdq6T>^B<~xVc`}yH@ zCZaC1Ln^I_>6;gUqtKvti<=$l)Eaj_agQPK)HrwSd5Q zecc%1A;ry|omInXK2>W4-l)0LS9SY`w&1M#&v_bcLo*9Jb`<5us0G`(=FUJBxNi}a z&^SKl$r8%adA{n>4w?s%wkO+#Z33`4$At+CBTAI)lU^-Amo@WO)a>Eh;vt>#2JuUqIA*N{bAy0w64lL(e^ zku$twggrV1cks*G_gnOpBw1nCg zpMfich1@(yax7cZWMmp1I_yX}tm9xMmNaw+wJ@rV;eMmU8aC1y77p9E`LLMF;hyp? zQj%>PmG5*7hjrY1rh*@Dp2Bme470zdi4TmmZkH0RkAI8EA4v9b3^LJy*&fAyfnip)+|u^=KAl>Yi;A+ zb_%hesF&c;v{8b^Z;Ew@O>c!yl82?A0^WCbvHc?)qw1>E$&L{I5358}{C4)qsLjJ1 zv1%=Bn^A+{i=f#-8WHb1saRp4jgUPqyc2~H&#EVip*F0!cJZBP#{zycv{7o;2*)7Q zITv$J6p2clRs)loskZPfpjV=O!11JQr`kt)G}YLjoW+g7*`89ctGV4x)TGiY7Udh%`D?DtJTTUljvA@H9HBnqvi^DwrE*^Kf@guQ zLk=s)5mkh11e5eS4gA=r1GDI~UWU1iN8T&Iop)g?y3p6Y;;2t5dLiUT!u5`w#=Qcz zxeNFTgBh4L%sCcTXCYq@TNU|&ko9z+2eYD!LL zB6XTb4=r>CabW_+Ir)^$X^wGkLjn@r-pcDN8cSoHbdLhJncNqUT81q?pnSt6*jS& zo>g$w^7I9Im*&rK^}6LBu(|*Lf|(aQ|2}4Z<%vcg<8jJPv{@Wb-Ri~6h>ox2zr;<$ z9k{7L{1`f4?vI-bU1M!V)S3y*yl|81qmi}z0y9rr2tP*Egzz%IA6}k9&MVe>ejsKp z`xVSg?1z~{`e9~rWiMuie3X(Z@5IYr!%CuO{qeF8c==F|^uk1-Y{?^Ph?0G(P8N23 zk(*^qx%SrEx*E+6NMfI|>`_~~yOaldsTQzJ*vAK%U^Np?odwjaL{kmheaj$sn&Yk-T0NtL)#EUZdz)5I z4B8_8i&hU&0F|fbH!zZZQ+kLdhPW}J`UO1EeUd1;yMBB-(i0E=YZeu=L+!A1j;M4K z9t&%hxE!k`sdgji%sS{Y3Yg@}_EUA7tam6@Pg$)H&+ zjbwA&SL)yYrGylO9vAjtKfz?20e*#ot@Hn?#@C@U?Y=Sn$UqJqwkrc_>(9O4S+alL zSi2KvY*Q;qwgVpKZ!xY*Tmr4en~*o4n|xr2H&Qwu(ydH#yX*b~koKsQWIni0Lwvk7 zAN#}Y8k? z&OPK!5A$O-$2C>);F+{kY79<(j#?`O?merz1iAzAvtov^c6!!XA@4-1;z;J_I?Pge zL5`r6XyEISn`sT?=Wflgahtk!%6k!i{cjjf|<#6H8&G|!o+q0alM z1)OV$q_v4@+ZI5Jd)Ky%y7>ur)n(Q`2d**AomHDwcR`(A^R_YGgR=RJKDh+(YQ)Q+ zfgOfiUETb+r;XvBE&MAy@H95NW()LNP8XGfUQ7G|EGNg*(P-+7!`+--JHEW|vRf~} z54Oy)EGd^Hja+RBPHnB6ma~qv{r8On|IO)kwGPB-J!!`Ol8f_Z(lfc&jD-$S&Yp&h z`2l&mIH3LEES6dW7fw>wQbN-%ob{q=95NktbMegdAZ#+Z~y3;??Tv4dUNP4mGHNgqPP6V z)aw0SCd#t0G@Tt9P4%b^FG>O?n$qBzE=B@OzudXVxa~h)&Q8zL&SVJo}Ss_ktplo@T7$ z_KozWUj5O>$h&>xZy)RV6Z|@8f-XmmcYYl@Q29L^G`HJtXUq>vBpzn0GuelJ-5 zy=p1Z9O5xA5}e|(`QSpst(hK*dW7CEM>lM zS_w!4cO#{5`TQ%csJ9!nILQ-JjV6|&_K?mB+T^4mo}9Z`g;8|%kmlfU9=1^+WcoC;*7b?2c z)yBkD4Qas8Uc8{eMtdU%Q+v=$(Wzsp=}A~qov&!_?6#nsaiNL4!FQlFvMDR9JXRJL zZ}MGOinG&E@H^6;Y8MZYy19x8DcXrJupmm(mj2bvIyWUX#0e(G=Q?poT zS@Lln#!dR0OKLM5LX6}O$YN7@i#2d|#8>g)By2;7*M8ALyuIOSz2yjWBPd1k0qK#+ zRza)0C4HAPNs;_F?eb=MQviCX*w(F{hz?13TQIu5=CVOSHB%i_J3NepoQ}W>16KM8t|M4q3rSZ6n;F~?aZC2zil<*nChI^S!7{QKD>AJ*8ay7XR$G9-0cc@EsLct!Bi4q&J7O}kjJVwahq1Q6^Kys_ zxQrEei`J)0*O+tk?&JG`2I=FA`Y7m#KQ|4#62;&N%Y&wzt~cITf-fYJRtBEv=hWAi z(OTB1XdS6V1AYEt$)%s1=X%te(e2PsPJrq16U&>Ca!o62%Vq7 z6N8xz%*)3G%zMJ2t5kS$nI0&i=c>mJ4m1?%OhYFg<5%`KPiXz$k5Sg$wmFY^&tI(* z!r$5L-;fBa8haZ2BVp0vCh;0p0*jUllyxm)xA3Am#w1G_Qpb{qvvLdVRKLK!?H9`1 zXl24)@WZ)XI)(d|MM4|Ow(wVNBz;r(kEbok$!YMPV~zRJ>^S(oZYGgT8uJ}&uE)`F zAd_wqM6b~Jq8TPZ)P@JjizH7&XiP$H#7OU=5@Orvj3=j*`Zb_-Bjcwnu&`3{d+kJdkkw;yk?V{R3)jO zl?ZQ7KFT_-yITaelBK?VggHuBN9}G>mP5iZb4P0)2(-t(ce)>vhEZD|YV~ADu}L$p zrYG#<7uCrU;W4QH?yCKQ0{HXVUA4~-|k-R|n!cjc#_7+u?`m z3VgzCw}L;^v?`|5yPChA_U$tm^Klt23EUpZ?;#lo=#lPC*%E{^nSKjhFwDe^4 z!%~C19$caFnp{Cc@bm`XNe@eDOsL-9Rd#i>{`#<{?^``!eP6A}qSvQfVXItD%d17F zhnGt_m6S6)nnOUjYp3MMunMjib`~T*N9I>wJv}&*K`ov1aYC$UyQ&rvm7;xFIIwcGIBqPfu);G(U;Oy$DrvuAfttq!Cr}C?>WbKTke4{*b z1gCQm)4w_tbWMfipZrbFY52xEP0ORPw1ki=hSEbp>7~;&W^e_Kft(G`fj)FEG9r>n zivuouX*-CihBW-zRZ!_s*=b|ru#dd=F@8GzqHK+5}qDuMe?K8l3nOaz7 zE<2mr!&1@jmK}Wi4xrBn*|~R>tgj;}_+zdk!s?I71D%T6?m`RcPoEowR-~c+W?=DG zzfYI8tJ|;#rD&F28jBWiCfd^5R%V;Lf&^*kQ>?5udIj0y>{lzVAPZm(kPo~D6az0= z&A^wi)=G#wtPy^Jc$+kn+Qp1He&ZMseq$NSG_I$*?o~oI<{Rx}tz%P_>bgT}rL$wC zNu|Q(H*Iw4&GOGxO!xMi`DGHi7R{O#bG&U!*zW4OJT=xq1)VgEJC|ocS8KVESf&2< zz13Pv4U4NaZ`WIUaSiLOqp;p;o6*eWYRvHbH=V|cF7?5*M!;!kjKjJz_Qr4;n&!1j zEmoOdrS^rksx5a4nuRsc9qeeeo%SvHYKwGk?8zKzx#aFh@7YYO0NTmuu@1pQh3~y` zyUsmT83VH$ZcH3gVxQha#e+xD_E@v>g%6Ah?7c-wN4o2YwQ9f3Zb$vgBiPekRCh?f z$HSxSQg8_7n-r?dO2T72zr%=ZS`5BWQ0x6_`|YB1>sSuesE2g}X!p;>E*r)?oi)Tb zP)%8;JJmZ?*DXnSI!m~N@_1kZBS8-hTPVs7Oe!Rf=Uh1Wb43-1K$6X+=N z@!iSyv9?`5D}i|CmQK2FSe-S~ug=CknY5U#k+WRh%7%f*M$xs`f8%JR*(X@J4eDS? zSA&XRcdy9wZD|Vn9TMs0M|#W&rV5m4AT@)*9)3G_QjVdKzat17r;Kl*}`&|8>L z!b^wk8UAE^Dd$2bHx8Q9nT5rweoy$|{M{24us%j$xt!{8?@|A|9QI+opY?TDwcFKG zrO``5te1pY?085cSwotIwRY*kW?mhsOkg(ZEj5Kdfwb$B)mHZ@m6XEo%XsN(M@nBd z{W9V=J+3{G3H|p^$}DPqSnL&wWgD{Nw_(iYpkn-9f=?$EA%P*9+m_vmN9kvZ(gRM` zvV3kT_^mM2&j@9}`aCb)WOGqqF203LcNVMWqcmOP^`j=3TM(;%ML%G=8Kq$^jL+q5 zHr;6pKJd~N;KUM)b9?#NYj~KSAqxAzVwJ5EzL|0N(WB8S-cEeC(|rS&JrarRu`iR} zGZFWkROm;CDtfrdp)>n}aJ~Ogz?pn{9eWJe|X_mmE*0H*p95+t3`wq}X)v}cd z9QzW+EgtjggbC4Gbei78c#bZEPevxI1KW?I^3~czG6USS>`V*wo?0%`cy}PQbUE<% zl3f{tUMNn?c=joS{HKIfq?m9w6A#Ituo|vtcU1?0Bdjtrl_^$xYK!>P^Kd&Ae!VZk zD;N6xaoj$;;3t>qw+o(ZEo%7|oN5zqlWMMGO$n#+0^=Q&0I#p16&DzXAf{K65+TRC zWn9=kpiSczY0@e|+K0`@@s_6vuwlTXy_XMh>k*!+f-eg_e|0Z2 zT3~@5y!%33gFP|&ZxHcl*vq56(Oi6m?7=(`({(}F+-W>$$kphdL;4K%!0zjlm9ds| zr#0=*=0?!x5Iu55EEoE(mcnMU8v3+xOCDek3w@iyuv3b$G%sPg4u+jJ*zl5=R2Ff9 zwLTKYCqp?dvY`w+Cc65U(NsOk+(W`D*70{&xe7?<#h4x8ib&-;aYk*C1?6JAo{JGG zp$elljQjCr(I1xLIq*q37=H0s%0tS_=di_pkpxiBv*6=JI3Q#C98@CYSXO4LnNwp5 zJN*}!07nCbT+D7>!4m~9Vn%%Y9DMwzwlMxq=cupqf3lhZTjB5IvML)pMMc!E*m{+z z+d!?Si1N%0_Gph_ZfAq4;|az)vk-nCETv_ghioQev>u1UD%P7VrSnBX`lYw8md}sS zcJYZ(nKg6lMyl*%I|c=7xk5(vssvWhg@RhHU{i1vv>)E)WM4*e*+h^JZTrmDsYYYB z&lDB)wb3C6I~gh&skVe#wE7{4-kla)T{4DJ=DD{pky0R{()_m8nR|eGs<5PXCDt3& zDIvRC6>r_{epj+0AAfIh%_#Jzt3l;}0DJ4U6wuoAD9OD!vo! z*>9%34ps^~s4f*M`KbtoKAoiR#kTblKO`6k!tYNac#1w z42WAaZB-M^U_+7}0?Rp3=HH37^HRexJ0WQLrpm(cr0Sb0OYE{_Eq7O4)%&f^g;#WI z=zfcB1e=QLzEwM_=G5=@rJUHK?mz8B1DU9(-=scYYr+OJv2|-5w_vpit-JnL^i8SO z*~i)Oiq=^{HGv&q6{39^)1Tu&yb`2Xf`s3NV?uP zzP_P~O`&Pr?lY2f1)f!*S-Ke3^A<;unscynL`PyjwfbTfCzQeum8#BsW?0=s+1h&wGIB8&EQMS>IDho7jpYB{^&pSe#;Yag{|eX6(v`Y$0`-o zuvXWdRX@_4ujRqA=p{}dIAs;YRNS8n{z%}*e7nsK_=C@~qnrwlaJ-7SOUxKm7RQ~a zj6{DHAg0v0Roq`_Uns0h7VdPyemC_&rEjShJf7dvdZ-sq>!>nK-SCt+JX9%~_%*_9 z97t97^7U(BsyEW09MV&T>q3Q-={89aC#{FQz2~LEJ+<~6K{|9x!or~k&{HMa#^0`c z`QUY4tZ@4vF$?S4{J^yunuDPfeI7QVZ3!xxzv-4KDC6pDQR*O+i892L9z0>|I?~Z= zxM@1y(I?2ws3gpIqnwT^?C?Z6M^VloaWecX@B>F{D4%qV9>>Bek{N?EU7pam5O@Rg zAdp2AWPvYZ2L_T*2CBNNVC74~3<#@`jDnBu!PFP`YVe*{%jMNl-ot`B^$WDS%1NNW zID&cxXZ#q97no{B@UkSQy2ugpU5@m-*yQ)O-oD`pUI1^@0yWY|P@65d3;FP=$N4XC zZc@uNc~KIfvc>l-@15^wG`D{EE**g5%yJhf^}<$EH++Mx%0^$(Xy{8kW-^tl|6^a` zU*<6+tRhiwQEshjY0%&Oh_}x$^aQX-Q%@>aaYkynLl|kV$b~_#O6Uvr2{~(OzUTq5ViA^hQRjKE?f`^?k?>=ubKZ8G4fQK|;*I8+sCtu8jBoLcYjn4GJe!s2c2VUMp?hG8mI3@;XZillGnTqjAt1Z6I?auwK5 zqLAEyjpjSBDa-ZbrZJ`1U!o}=gt=69Nl=eh)?y3yy_Llz0N=$}1xA1KW*YpCc0Y-+ z6)5T~*cK2>t+NQz&9*+xq2F3Au&qybx9+aGBamRs=S{~gDF&bM@YwFn^NTcM5oBEo7@1A-zW9 z1AxE7s#AV-kVy)*_vt3Ja2viMuq*eH`g^qa!RVWr z&bw6R_n24{pjy06*u2OFoK*NvvZ#PNDGtK<26{*#+NSh+Y zGp;6lykFpYmY`Z7Fn$~P`nPd`zC}L@udDQ(q`Y6R?on-qv0)0Nk_-uLhs5ZJXfqwN z`=K56W~w>f`=2r1wIvHQ!foXz=o~m{AmL#Z8U2FM5_2rsO@7#UK`eV0^D1w}4OTI3 zOl72*N(>K8CMK1UA|Y1gqKng1$1zKiqDCxXRO>XmtA?gvR*h2mPO7>FyJK%#4Kq+^ zj+p~mLt*N7s$DAigYTfrV<_=r>0*3yJKv?{I+P4jF%nW4VrAU10@!>(~sqgKZ` zuT=#&VwA^z7Yr}j7)_9R`vkVxtagyt0sUCKGfnrMI-=FyyV*8c*4_K`cNc7B!!nQO z{z80b0f&_0?W6M+W-a%5=~2*i;ug_oN3AN;N(g$)R2n+0V!jD*E(-iknO^9nx{6*z zU>{sJdialZpA6rNdXKQ%M*wXLG0RKm@H9RXFDNK?NzG~0qKArg7jB)em+?VW<`YUM z)!zA=O0#B@21*s9r2W3}IL7xiCif#cFMFhK<>MT31su;mxnmBdX zKUo>T+oi}>dK6j(shvK9^)syhusv0EcSAZ*d56O;ZnznPFCr!Xi6)}eqMm`H5t`aS zTGOZ?f&F3Z;>cDqLHD$DzYR&fU3kZNog?w)H1k^yKwE&*Y@fz2#P74S4aD*)_NDc? z&DjywNLG|-xoUVg1k!yTe3LS*Cwx~h5_}V5oG#= zw$YmTq11ea?QI$}mW3Hk_EWP=whH~6&o0>!U z2A@jzk2~*$KF09C!c+xV-V5ru8O)351mjM)xLccxM= z$6Ab>VIe-TVmQONrzqIUK;D;nN!mb?!#WTzD#;#@q}jF~Dnkj|gGzEwWjK2nQXL$4 zv~m*5H1lhY;%jZ4BeRRj%03G6!|F56it=N#4U%H~At_o%>RaQj#0-+MPo?#wwWf82 z2kf`9BL7@gk!@sEc9Y7%46Enx?5E)uWSgha9!96|G78c2Y3 zv(-ao-6yQbmaTl)GwcOXP7cI#!X@rM*SWaQskh|X1|h$A+vXmR_g1Elz$8DQ=5BZf3{Vki;f*)ps!YZcqPE*ZzS2Cx8 z1X?%S{6$MVH!XXCb#u=L2P!)Taw>253MyHp zjV&b5@MEpSM1+;$A8ReShhW=})5Lw@alDE}*^k)VZ+}g{04KABYCxa&Z?(8HZDr^-Z&I9Ty6T?f70KY>igS;`qr2B zwWm}}H(les!~eXuz4(X}(zd>y+gtv2?3xu8C?P*u58;z)DDWX3G`r zcud)-)p@akS|1^`7$bnzDUV@tJ+?0QI1)-}88mHC=iaDm;9$&lb1?Qb?25p66Z=NJR94`` zAQg7KaOjtKWi#>GR(ctlN7Q=obA2Bd#N9(^Da7+=$zK|AZ4z^{I325~wAP$mlneYL z$Ug|>_!%hGoG?)C*h)ErIYyepTYoV=`k7Tqx0w;$*c(&!H`UO$#9mbHd-O_RweWp< zH#JjTpdaqW>FIh<9IBxub3Eskgs4ij#d`aENlH!$C*9zwhLdhyE8&CMU{KpDKu=ZN z8OkLAxMT8OX`ZmK_I_#O!5s(44mn5B`m9!(6dP(xJnt5ZG@M<7-qqBQH}NcnHwu0U z^_9)KK_X(S*4acVFQ(O6GV!b_ga0JhCU~QJns)~?xqSHMWJEg8cExDjTJJ#3#55m{ zS1!I?R*_pz=#WU96>&4(DK2~p^@~Qs!B<@s`6Ys1R9%)F{ z+s>m}xZl=x6%udHAk#Ga!c8h6W`Hk=VLy-S86?o#zk}};*uR69W>~&6Po);Cu?9#r zoTzRBUzBPNo9&qEgWW33Z!{V7wMHixd}v^us3x}c9AEQF1*{`VRE8A_emeSpN!t}V z>gkactkjsnaxUc&Er-5otJSo$|778+-+!@i<#mTzxVnjX{kPWbq;0I*xxu%ZE!dvM3%J9xfMrE>=VZr#pM zXX1IV1nZ=3bTyob6zVP8=^7Uvqxa|<2Obk@s254Xr|aMPs~LtX{g1(C5Fzfk7RdC+ z+HgDQj|bi=Utv2LU(7@?82gb-@qDJh;zIH}dknXNn?uY4kwILMpiytn1Yo*9@|+ZP<5d8?ASTb z9~)^;+thY?y+%d-R|$wy{t>v)aW7WA_6E?j{L($xr=zD9JEN)X0eGc`tqs_#i)T8U zZKPi@pn9;PW<>(&PHLtk3|1n{n+}g4H&D-A0c?L-Kbj8nRM|Gg(0}xW^~M$O!4(;V z9nfaGK2@=)9;i8!s-bzAiBbh=(==wgsEx-v)Yj-Q;{F6$lDGzr(cF}Zu?lK)-ZQ~; zN5l;JXy$Or%aP9|flJ!qb2_yNT+|+&CBx6pC(&KV?+fb_FZlKyp z;9#;X06QwV+eA(rx-*u`(=h2*93v}vA~qd5iFEz9)fSU8cC?LC*=RI@j(VFRy~-wQ z?5WP3D##gp?m0#yf?oNpmDfwIz)B8JWRV%J^-`RyWQAcBkK!Vso7uX%0Gh)BVp&Rg zR#f+$TCfc>9Xp3djh?6svqxBdLO`Mz@xYuj@be3&{@^n zuTr^a1l#CrE7e+UkI^8gRqCy&DT|=BN-euYDhU2_*vsPN1h|!k(lr#?eyN<^Y2CKd zP@6y4V~jllX0VaO(`(=6;oEB=^l#0}qLkBNdjes-Ri=w&4k(fOq@niw(DrSGO(vhz z;PWNtFb8D14ew=Y$c)$+wEOHi96y#jvIG`O{(k4$K0B~m#eRvm=s~=$ar#lx`R%hW zf01~Uz~3)^yPA}lrYmRQU4te+m#(tI>x9|H`H$P?^>$p8kev+wx}?@eKx!4RY%*Nw ztV&a*2TUj}MXy7j8iO@rF81Q=RePeprR}YLuMTu$saNB%&@&)4JJh7BQ(0NLHG}&) zTH6O!YUYJwFXesMw=`qtqTg26tyRMU1P_|+0#Ir}4UkRl! zpqO;UvflqdpHJ!k3w4a=h0;!K=qP*wx_UT5pF~fW#QxoiA>}8I9`D8IwPW9l@yV`T z$w9ly5bwIO?Al}o=Om!w(L6=Pqq%>ld@I8*pc7jJ3$k3;HF>+ntEjmJk11H?o=Y`e z-JubxnTAYhf01gaW6t;~=&X;`h-yCt3viv_iz0_eo_P(q)Pde|bE zp?{;Z&oPvB^9iUFBj@lS{c7}G@o-h=aL_AO!rB^9|4koP;|aaovwFQ;%!WV{xKjk` z5(oc#YECmv>C=OBo-{2coa;us4^Hho_5Kv-cfyZbB=Tz!Kb{&h)xNOvY)Qo8oNOaq zVIJ<~rg7it3Uga^g=sw16{g>i8!&V1rGlm~izgbpBXsdr&=kJ(o~H0yt{8LZtz5Tc zTcnCGXTr;Er`k4M2n)|xK`Zu~mZ0okf-iXNQDotJhG1tmLyGE56K|ID#mU$eLpq!0|$R#G&`2`ym|eX3x^eo`mLYk~WnwgeQ_`6jM) z2oJc1cL}ZPF0`t-XhHZ2mEGGhs@6|Ux(m|an-61sK5T}tn=Dfm^$*qB*svGso_VmM zsgotD4Bk}Ms?0I(r}HsaiS#H;wS<2+1vK`_&rk8zKAfw!-oT;^lav5_YjrYBBi#;R zwj37YQtAGXFR>eudVb<<;s=gZd8*nMQ|}&h?)U2i>fr-gAlR+^Y3pv~%?XxtAN;2r z{a24(Yf9f*U~TdHx#-bQ4jEQzmTGlGp&ASgW$K@6>FagaMM&RC1?<5wB)KdZyRB*1 zu;bdV_30MC_mIwi#C#q2<_5cI z_~wH*x*j?3M#o6Zzz^`EwM7$<<7FI;St_GX%};0iOw(x_NvQ^JBvcm%dBWn3LIb~4 z#RdA_d2s@7Tgcn}*y7y65MuHTyur=oZpV%cv%FYXyb!F%jvj`26)RN1S|r+Zs=1D} zOD}HWcGZ3CcOjM>m9DYJvD+GLtksdpa$6<&S*s-fmg59nU+}Ifix3TW}EB_cc>C7%pgr6_LdHU_dNS|vMhxCaf2+! zsfM)5@+@p2z>a!3$ume3JNy`{BWkDX<-G4uiU2(dQI*n_H0lFQ_wwr&^LKJw06FR! z_aA*L$!Q9HV7FrP+92$_q^$^*r31bP={aioZWlh4B`oTHK$hld)bA%Wh086}R!6AZ z)R-sWlCx#hVvir<%pf!VdorVAWU5DwyTGe(j5goOZJ)ZW+^E!?U{5M9)^vNK3UcGF zhxJV=HQ2v+PioGXo2F9JH4Zq&!iqw#?0e|&MT+H13KZU@bKG+i! z-=#R-c@EkP6?Oq0$9_=k`7znr0sARKF9%8-7h>-y;mKjM8DnntXuw+gxPZ59PGRFk z(30|A>BgaWYC}(@gg+fs1)nzpBR_l?mw93&NL#N-My*$2aTY;88cjAv02gi3A>jwfv%M*hvU~witU>&vh+>JOcJ$ zgd0|If5lpO&fqY1Ws`#5rsir2us;kQaFk^ro~iH_rrc^DJJ@})laqxecQ z+@p>?*B<^_TI)*7#7YVN_(@-@R{*oKv(=mRF@(%Sca3+J_^|L%4lKs{N>|_u9(=X| z<4g$&0nRrgBm#IF7!B<1XvilPI3M9hZicX@J0Wz9H`)Wfkb${CTHfted<4uu{L@Z| z2WEam$XVceFW4vn{@MixaAr3w?f`prC*&Eh1&Gd`2#Ew1O#+=jaSXHofG4LS58(Rg&|e4I&H{Zv|JleBSR4oXfY;`N zkHAnh_z2Xl!r&e#UIQjV#^PigKtRK5~mB;xJytjz>w7Z9=-2-|)n8ED%?NIEc12c7{h;qy5c7y@Bl0y+yBavQkJ ziXo4HKDG?00a`mTqy?A?Q@F|c!*WRuSObHS)9q0#)_JGXgm`-<2V;z|?NAN(U_N$zT8oUiD^3Dp1phAv=M7ehkS3CiQ2?NnnQ{jLm?j zf*EoRs2B)(fzL*QUSQ@J&!=s7 zu>|!3YJW$)fbq9c4siAz)C-skyac>mj`{#QyhMF~J`78q0S}5;0!2GA$()5cIrwhH z5;0I?!xCp;ogJ&^w-)G$a7KHU^a76Vz(OS*@2)FLLV?}gSP}tT4U7gpayQ%;(vj7- zjoF?oS%&zt-YiK5ru(&C@5hqO2#5D)$$p?@0OEn!O2c(UpaGMCMTpnnztY*n!U`PT>a)IkJSaJ!NzQ>Txc`r+DBka77C69oa zz#5=rKTBGGCBkPE>5z+&Jt;9X#f#86%;@F~I< zdmF+pT5)|J4$&e$3&<6s96t^b1JCy3pzTJ!{W-)Fm^lF6#DRB#3Sgp=qi>(HfuRUL zY7KV{^3k0gHhA*&K3>hT}NoHqdb{hdcsS18aaD@f^|u3+56^(VBFx{wAsQh0l0%*W z4+6Eo?5`j%bG(n=KwiN0Kxg1dpeHb77vu#@1uB5gfT6(X-H;D39T*Kf4y4cVsa8DQ ziVs>*kYTv)+lsq@ak$TRuOWU^D^3C~L;R_IkQ2>!KjZ}LdXPghfWuC4$YCJ)*>ImN zFc;zK5<|EJcmd&p8;0;*U@^kuZ{j%y?!+L1K0hac&k%082R;D9{{$Z_P#+EW04xGJ z1D^stfoJc74?w>skQ>hOL7V;k^(0z;eeegeg>@xB3{zQOwjlySLaCompJ z`SdxE(yoGujebCozf|{r=XJ;R(L8(ObHIsl-H9c>8ZHzwcns;df zkyew_y)%KY(zGi&hmOkTaZOb2` zrzhbZJ#Fu$JmDuL=$~n0{!m#lhYZi8u}s?D-?o1LE@Q*<^xy7lTlcp4w!MF(zFuFv ztCukkjA?HhpWRv~<9Oq9V;+3yIWtcGp>yMWjMKEO$A{7x^W6CU|J!qeJmUVxHseDy z7?<@==rL|5jPLy?=l_Jx59RYA`i*J+P#R;J+rBHte|zsgN&o*P|F-XhF;D+nJJ9ytw&Aw-x0P|*aNGOawo7f>SDHRsP1{#Pe{C!y z9D&|7TwQ_coSk z9UmIY)%e`_c`+{cKl8|VEM(vp&5Jo?prb8cK9sj{ImWaYpMU6H<9Oq;Kg6ehFU#=! zwWYOf*ieq~_|q_^FwT#b`If)N%ZR!P=WAtz{uPDF3Av6{7yRko{d>a@ zMn~R|*Vsj^M-Ii-KP(>*%%YOFi0SS3!XJtcSs9R^R0pUPY8eiNdi=2QVdIC53!CpX z&okaL$uY?>&1#P*TaY8PKjD+oXHB1^-mCq-=$q6xNgA(;92_wuV$9&N%1;BM2h8+c z?D=`8s4l~NM-Ce`JYvY`!D9xF8#H0?gu$~s<2@F*FL3|LD$RPM&0f&~!Ew`kUI9PH zto`vm^W-tgNx_o`j~)2wpihU59UVSiIYALKV5)zt|AJmiyQXyf!ZoV%&~DOk6a1%n z&+wYvZGPvuo#Q$$b4+qdwpnkx!(z91mvxqTj^GTxh@vr5LD!{{#U6{?R=TZr zUuUJU!GnGH?{(pfuo+ym4)Gt#G~VdfqkDHQ9BNYkyaP>+KF1 z9VT^f?{L>8)kW!2?Yz~wzw>RUcqf6=PDgLYlMekI&f5FipK9N|eMUQRyA^g%ZHL)r z+lXyuTVJy3U^QQS(XyRow8c?#tw@+=U=_i_SY_ad8)Co!LMQ2i=ujd{fN4qwG}n}Yt}!1Q0-T} zv8v`-__O1c_LYehHRX}zH=YiDdf`dXlZ%f-AK&^b`me@EUq14Dbn)Tzht>}Z9>hKH zc<{&lUH2pJd){xiYYKZ1dkHDcLCQQC4w6=Hk=%(wg95&{& z*kTJiiFZ$>?z7lgaq|{xdk2R{OpF1sMB$2-!vk}TT`}+03v+itm^Y3BXR+o+|2#WF z!rd`7 z+3X!Di=qO%I10#IIr;PQzrIaRSvF@DjcG&SN67YFk4$F`Oi^8QJ zcXYC~Fyj(UQHDBFAtApVQh(Bg6hZLOq=rcF`*fFpJSI&I6;}uPdUx*V=IY|?Ns!SV0x5ZKrx8Xv79%E<8oh{ zyl&yO@JyQdP0g>cio(!bk)u98eNv?3)D|318Z+3-g8X^zoAuNCePm6R_jI(je2=vk zr*&)he#~!s=Z_rFMPiSHW)J{}CC|^yAK)xD7D&@yXV;AG*}=vfVmFBBRpoDaJJnN1 zDtmjoIoes73&@*Sl|S!aIJCQySYT>MqkH}8`Q5^ui$3YsslBCMKDyVyL+bxdOKT-%;+OU785K(5-twf&+r8zv1`8>8P~5vTJQdXKMtI8 z@V%H3gTp4yQm17cxqkh+MyJ#0G|LAM2#(rt>fJp$-H~~p3<@1TFYU;64U*8mgRAGp zOo^GXaCu7Fj)SL)imq?foLW6)WY{NBi)kuDB2CfO#Z$(Qoe;Bdb;hY84er%wPVHE| za8_*0^f?Pxq0CjQ25$%pPnj6IdgA0ymrn>?I&Ud4<8inqe1SkP1F5!qwO}&r(cKH{bf>@Es zx+q5cW*_;eOaACPIv)9yjMkkd?TNaj$o}@wD&1XO4Ea{~R2RYwYT*ky$=3WNy{sT= zvRdasuu%Uxgzf1O94tbNHHp_rn030{El%R4ezC0irAFOHq(8Z#JFHtwa>_e@u- zV~GRlgri26r`w{-(fPt*;T-lBhi{T=vU$eT3syu#pw&qlbrre?5LSf_t3qfeGD$s= zGRv7G%ukF>!W+3lpfln8^5Qf1Jl$k= z&&%|7H+0`IdzwxP6Un9iGcHxnhr$@$MaqxBR)m45LEDXHg`}VVr zd^Ae0o}Nn#Xm0{tyXNON_fGC+$)%_Df1X}7*bN4o(ONY;zOrjtKYKpf58dmRmA6hL zjp}M+N<(j&YW}>iJ1*G6lBW;8Zg^6XojjqhlaRJ|co|xr-#fo+L8!O2z9CE?SNo8P zg!ZH%caVTI{hr`uLg^Y!>4J+zKT9-uFYfIBtg`^ZZFrEMG|e5cYMMMJm#g{xwuq6$7Se$+JTY@)_G(Grkj1!kMm!D6R*>XwK zvtKeMe{97ex|%zuRt@)pzKZTm`Q_a+q_#B2SLHuvsYm;^2f4bY>N}@5&s2S6O$lzP ze{cyU`*kpf3pn zXAbnV=91U-_kTj^{anpCka+p8w9Z}I3s?|Y^XEle>F*|{R5rhOa^w4rvxjtd5K+#) z)>hxUuwOmizoWIDuGg>X{wk()`#4$99t(d8==r!~9n%szI%wdA;telDbQO+mI0oV9 zfJ1}>Y7F}Hn%FO!zWPm7EQ4^i~Mm+bOTO9Idw_sdWot z+rR1C{f#9@XD9Y*a*}>z(%>DzW#0G)@LF`ugZ!A6HlMk?B%;YYF25?Kdp(CW=dfm# zqe7}1y2n=Vtvma)CpD^(l|qw-1?{v=?H9b@aI_Phxs8@X{cCmHWo!$l^C&2oaZJlyN=f~uiFK?Hcj+;Ve(O+7#eO(i~HWK z@A^6S>2MPv$CM>zf{5gYdmX3{q&e|}^s={t1F@~@9wzHj5L92>uO zZ*IwBk%MnY)Z$HtFa7D*HF#Y7n%yU_-#2g9JA8WL&Xd<4Svqu8jGOmm=7m3O>}4aO z7pG+w+-m3Q8#Z%cAnnkFKWtrm1IH~$&HV9RJ69j0shP_+Q zq4QVoI(bQB=d2ntec6_*^LHHGdMidQNI!DzzLR^v#F+^@j^4O$>liY5?yBwCm&)9` zNQX^`-;s0uul6o|qL!uXJ5lmiht7Uu7bfgFe(8ywOAq-cbH3bn?hhxQp;N!ub>hPB zPhCD9JbBsI*%$9txp_-NCoI`<^q2cCy~o5QZ_heg{LsEbuTiVE9z1>ZuTDOSQLzhm z=3IXK>+#JAGb2A45jIphpr2pQ9zNZ?y*xX6xVz%55YT3&;l;D^`**GuWFOnJC3$&# z%%{T#`uFP6(HVnPkn+>9-ZwvR#DMW3(PPJp=^Hy)>EYq-;f}wN!5+Qb z=f|jmg0f?Rg4_c>2^!@we?$7ZtfVu!x7Q}U%FJ6A8xtKAbi6b#FYCqaGiS11oHBhWu^YhB`Qlg_*N5{Aa1w{vCUcFbE`R(@PSk?Zx>dY1 z{jliS1j|VM$@!5E1MktZy@TA9dx1Ar4C>PF2u?09AL!FR5hn*{59%k2y`j@JFAeA$ z6n#k7gz*j?^U!}7RNAj=VtFp4~)N{bFu``yg-nu{cx~4{8 zDd`zFJTflf%UwtEuibsdx9ik1AZ*gy6)8J1PZX7uiY(px%7=}axp39yZ}YB}JrmnV zJp95wow+c1`=QgpYPR}iCsMX21ZO>w08TU{Of;IiETW5`h|{}wlHbyw|Q4epNXto`V1WY zS?r4BE&EShzE@@G{IM)7YF@&ZJ2Fq6FaEQdZ_%NfY}jXWR(`enSkW(kKDX-7Ll!oE z#-gOOjH3nD?!t<lEcr!$wNY(I?rt3}qX-TXs8ov}1!`=K+}?maWNa_!PvHF9eF zsx7Gh-72eg9liSxn=pI%x*b_(f7aCSE!}+sM^2u%Y9r)PqIqsE_EHWSJ#mhD?bdz& z`uTpXl|!dq@*(467A2)-94q|wiH&QIfRWJ)zSy+q=$T8uJ*=~K?G+R;b-{|1E&FmP zePWl7rJ>`dFG7NBRMc(WxMr(m!OuC*u|-fBj{~mpkYyia#bg2JfVYd*uEZyYf!vt&348@y-%P zQoL?MVS3(<*vLb%2V-JllJvc{SWLoa4V#g-Zt9fcUpK5fvTf;94}CU-@iCwzXwA|^ zi>3xo3Yxlj;lh}KlU65xlY460y4A&*+9CO0Etw(dffj*Su{SE$EzMgyZS|xzv8ST{ zb!c_8DoCYNy020kj0y6<+qN3$?ygMwwQ<+F88gPjM3*i9eC@)iN%3pePCGQ+*M0x3 z4PWJby<}<;MiKa9if0Wzv-;KUwK21|FB~&v(G>Kr9v;e|j*6x0AaazdGH+7|Zeclix<#hdiTaTSMLCw}1sphIZ+jhm(f21G@}ZM=z~X z`YLCfM`JKQv~Ta_I$bp0de7E(--KA;p8%USp^Ze$FaqL`PnoM*$?rcLTs|8r-$XFA z&SLcSM=lf>j7SuX-OhEOsIuxIsNzhrrC7@TZu;ut5lf2hr$(5RHtiQsRMmIy(BnL=L1|Qob=A%nyk|Z(!iT8`xK;aISizq&@VUvFm|565b?n+FVCcBmMQbRV zDX)$GXjmWDdI5tPLl~T)e>6-F!m#x774>Kha}5#nyHBF$|0Ubgf0J&Ie^|sM|Ie(J`FBrS=b!)6HvjR5GyUuRbNv&R zT=K7;c*nnAO@;qt@7MmlP5DysH7n`$M^4hH@Xpe!7CofI)nEEXJy3eF*GQ?{Z=!VC zx*5{o?u(_d!9cd4NLn$YMpdd z%I>%+b-h(4{k`WS>9Lc~q;3%n(oB~((mjbBSsjlr`)P+rc28j?>(yu{3qIp0vr2W9 zjhgQvyE@fN)^mDy*@mS(Wg~X@$$q>nl{xbQWn;rbWS?gamHo?nq-=ybLdGYb$wsZ8 zEUWXFChK%%w#;MceA(f?pJV=8Ejv`6D0_AL3)vUflV#yQt&{b=_@(US$b~g@^{IcJMNL`0`|*_qra8qtjm%)pE@EN^(b3*)9$3~^x%KVo+h4_y~@v* znYR?l9{697jaL688+h@GY>UOuvgU{q+2;p-mDSe&E^`hllik_!hm2o-U-qr^FWJaV zPi3NtO4+f1=Q8K*bux?k23d0GE1CPj7CJvKe}0&epB>AQFX5TU>yGo}UK9E9CV@ac z`jk-KHOgGROlT>$`Ccrqn_w;H^K9jTN9^Q@BiqYQY3=2AcRI>{lRL}5y6+-?mEbDp zy1B{M7r4v!jq{MVZ|Eeywc#Uqorjm)^R%}-eP~xX^Jh1C{OphASDJm~uU7lYt1NrT zzunqf&UNZ5|7)k8Ji@uZT)J(5e3gwWf3+c8-sR44xr^IK`MfEkTs|dbxjd+Bx%@=u74olUu8>zA zULoK2WQDxcd8K@1=t_CQ!j*D%$4Yr|-b%Ui&6V;WAFq^OeX&yh@#~e~pIT1eb^4Ce zIW4+yDZoL$@u1?U-$!H%w8!C$LxRH-2klufl}mzfgyV?Bu^0z!Vg5Js%RqjYa5&(= zXQ@7Ki-My3!>&6Dwj??hZr!3P7!@xo*vN4#k4N++gtd( zUE(?C8Rr7_PC8zsd*V~@ao9%%yMCThpc`{Oe~15;{HxkE1zn@A=U;UjnXfo#S5V#Y zWq!tMzk;%FIkNJJ4`jbxX(@2I+C}yxbEJ$38(i>`b4xaGQIY(}tKdS#e#yBm=da6( zj>{C67tRZazE)fK(Sh{B_See&SD#BdbNOkibX16`|Mn;O`BMjapB=Dv{h8gLXPk)` zmzMv@g^$jBCv=zQlueb@_A!z6vg$0$5?s$8ou`$}-0IduQ*x6gtKKA(L*|FH8$*|e-*3QVu&OFK^4RB-vp*us|cSMz_J zIHzDv!u~?@nQ8JJmj^1&eDqbm^3&?VxtF~Zi>u3v95bC2Yf?6z?vtL7ztYVyKPBFw z;IC+F*~=^bvbk4UqzmqDm#PA4q?bGkr324xkhV)bEIl?nRqAwbuJlM_kyKjpSHbv? zfA`-!BSkiS*y@5wr+s8SIuXSeW*rMAN4iKIhj$D(rA<9}-*CY3%cYoc-eq`c3*skyibS?Bth63$IGMOKnY> zq&FrNN&~qq(u@N_>5d0h1r3RoQp={0{JvgWrE`1Dl#Z-?EzSFVWd5dg2?fC)x0lZy zYbUFoxJUNOok_BsO#6bcu@ht~n~xW~UUMN}&#D!LLZyqmZp7AePNBVvg4KNsM_tG% zc%9fFQ&%r7_&sumbnRA=?50hhg1nyf((bP}oIYkcuOPwwl+4Z4q@Z+IWd0QAeFb)h z4i?O~=_fnns?Pt{4zbMBD_ds&OOb5iiuQ#uFHbA7YR?yR_nRzxe)#)BpP7GM{ygiD zywvrnzth~l`FjT(IlFSnjk9J&(f-dyXZcTw@i}|(m)`zY%;Ti8lfRrjzM7Z6q+`8w zSm)0QUdrrbk0&%pr_VW)f6?w`zSqb-`P19m6s#U=UwC%@roxM}G77)fY$^19n4(ZP z&c6IA=2+piP>+1`%rUYJ&xHlM`w3-=F{AUHo%=|C`elaybH6nMvYd9EeULLzw)gn` z{Ac@^q61bl2W%J}@Nz#^0Q$SiUe;9{$7B z!iX!Qi?n`$vS0T2%Y5f|EiC?Qmh3l|xcq>@GiA4@XbNi1EtRzo@hLd9^n`TDJio$E zrgxToa%P?XSMkNt1&=Sve(RhiXKPdBGjrw?_WZVek<#qKDwp#{Dhb&Gk_*!>Oe#3ca;i9CDih$qz_l`W1s<}l_Nbuj1AQOE4~y{mU`yFc$a_uTv3 z`{zE-X=hFG?y6cUfIq0}(^{Romv9Zaam+Qs{{Z?aopnpKM z($O|Ql(uhjSj_A&PruIo?t#UN?8|HhEk5M6E-7eQd3I3kRZ&6ma@(+0mgg$^P1-9( zXk16rJWIdRI-2H6n%C%}xtG$?+)L|iJfb4yp?R3n2LG?>0FBo)7Ss4m<1~%kG)~jlZVRdkst&3NB44Hs$R1Q5fWq`6k*`Qp|XwVpt4payl z2buty1eyYx2ATny1)2kz3;GeX0JI3S1hfpa9JB(o3bY2a4zvNZ3A6>Y6|^0+6SNz& z7qkzwA9N6;2bF<-0UZVX3OWHg1v&#d2f6^d2)Ycq3c3#Z19TJgC+IflF6ch!A?Pva zDd;)q1?X?kYtTQScc2fTPoOWLuOK>qLpM;d1Icg$f@wjxmCP!FDueL)16CDO9aIx! z2g0il7+!P0@M;6RxDNdfasj!5@OlG=R~sYch z)E*Q9>Imu#>I&)x>JI7&>J91(iU17&4FU}TRYV)?K<=PGP;XEgXby;EPI96)QMpN= zHK5xdM=V}qL0do{Kpjocryx95$+}~)vmI3340-~342r*3A7KJ6jQ3BO*J5= znvgj*EdB;vM#B!)hECOi-eCh{hCTEYH?a%rgB1Y;N1jeG(}m>P$o7%qMD-)El?LP)X4{R!`ZbHtx#7#)Y%_(Z;duUm_K3%?F&cS zg3-n{XlpyPxjot*0vUut7M&oI&X7%4$S4f5!e&Z!Y$k8-2^pdz{^p_tD5Xe3XeJ~V#5raM%hQ1k&K1x7ejX<9zq3=@Ahv>xK8R*k2^ldi!I2V0A8hSbg zI;#T};_q?zZ35yZArl51sN-hT^(WMM8|uCjZP<;rl%P#NqiuMXNQ543Ekm1+pzX&XgA1X(|Y%%4N{FAZZKnjqP1t^f=j3^u_SWQz7c z&%Rm!L!TZ(k3K+mbXC#k&Oqg9&Q>N=^%E}5& z*~9&&I8%WmhCXIY7-_~VO3awuXEVmzn6tvE=IkL}mXYgd!FZ|#3x;7$s%FXT5-i!* zGD{X*SIZvaj+B3br11ob2Mf*E4J8fsCE9k&y7_eyng#fA-LSAlg5O@nu6;aGxm1KbqNHi(y}jhq2(4;p}0X1ooj$ zBGY|LlE!MhK7(n^pj#OGf-B+g8W?*p7L_%Feg(r0`{6g(Y~e!CFZlZ%e)Gn8%RGUV zofFswPaMrC*0A9E(3hcm^Q8kE4xsO1t-;E+JJg&Ly#jY8{^D`x30{6b7Q7m<-rPXda=U6 zzD(;L$lQb4FkxK?D~s&PHl+3h&j=P=90@y)W7_U1Y(txD7Q9@?3KJ$X_w{p_cHj~w zOkKl-mfM&%W|!iL#?LfL^%g0N(u z;O?0sXbZ;*g+I&}3gb5k+6rZYd)`$+IQ*ATcH3ODp}f9Ed&Ex@Jg1kYtZS-9`*pfz z!^Vx8;65ibg%*!B?nksH+8-L52-#sKLT zUS;>=e^u6YjkYQ5^1Dspxt_M#KhN2^j}NON96wj3Y-i7^8^V9Ds$CylE%=ug)yg*I zSJ#fPsj@y{DbDwx!gEEm#r6B3gB2Cff%vpSFpNH`KA<`SV!ki<{XP$K%ZP z!~^!YhE}*Zz(bhuJVNN!aEj19_Mot&(mSE+w3eE^9rHA~2aju34XJB#`KN4?As&C2 zM2!eBefsKvsr|qJvyisO%(R^cm}k`eZ0-`b!6M~$v}Iao6K(5A6RYR1A6s3$jL-i3 z`N+EMD@~=Ww;q*sH&Sg1mmag7*0M#_gFALri*xK&!+nXSR@LD1c1HvD)tPmu)P9b| zo%(a|lnmN%W!VukxDpT>?71mkzH$3rRp$6hUG{vh8_W8^mqmnjW$qv2 zn9KVqEb!M|tb4;JYoC#U1HU-?|N&qljW5LRZXyM?%K85g&lKi9&8v|XU(Ck`Wt?9bH2Vb$^D;w zJv@?*Kk!+x)-NzBcwqZ2%Ok^f{}s{CZsx$~_`3Ni_s3n%`+5-L*Ls1?!foomi_95s zV9m+`tFu{q8nC}V`?0Ux2QcB|G*&t50!!1k5cuK}q3lMIrt-NVCTTN^Ouvo}G#B>t zw4Al{v(?{G{VMTw)2o!Z9IZJk*1O){h1D8<{j|2@utE14>?r1vn)^nuMQ^XM5mSnVibwv{ z)EC0d9IxAJy%IeuUtYPo*19-LSNAVt0!HtCIKV#Je#+M3rYE+{9L=UYuoL{|57q?M zxMsRLI$L|&?U=2jiMK;m=vdz|efvi02W-_8UUM~nH-2!%$Nz4rqnq}$W#QiY!)ux> zEi1GBTFEbAf|K1}b2=C1G%oVGt?dP=V!w}0A>nPS@GvcLht3*z=WKA^xfbrqIpL0+ zC*JHAhSSOa;nhF9b9?UF+|9|pS{1B^3|DeY|6XAs!Tw%NT^(xE>u=~9nH)E$Pk84J z!L5Bf-0Ih?jFlALVVj*gd`Lvku+TOEEj?Tv>};*E*qW%zNso&f(A)5>bt;7E*9eTH&w(T&FhQ9uQnE^-t`qddvp-z)$b+hLxzeokEM#+7U;wt115=) zm1l_y@6Q)=|0ohu|5__vtFu-76uDQl-LDrrxE>ext~@X1G`cR%+kacM?)gN#_577+ zKIM~GYNO%x`7%%->uCP)NZa31%$o5z<%jNu0lkKq&R=kr^s`Fzvf ze17gtK5yu*;}d)9cxWDM_p zZVdmjV+?=u;~4InGlrjnJU07};eXT~!y`WCahL0PobS!!>*wY1$h15j*ENqHbj#yW zCV9N~&Cz_}p3%I~tkK*$ZZr=RNAuEZqxq~Sqxd%cDDF6K6u%QUiof*w(3C)s@Nu54Z-Kbt@4kj-r? zXY*-SM)H2kM)K_Fk^G4p`t^AhKe0WFx6I1oZ(C*Y3Li6h#{Nw1nU~3f12Xx#PZ>Pw z=M0{jlff_hWbj$9(s|KO>D(kCotHYN^K-Y-c*})p{7rZox74Qbj6)sT`bRB6w5>XWBKUcV|b-eFGJp@=)1Mc2=+E0viRWi@Ic}Tqb>yQbg!0>8L-_vO5UzdQfuA1Hft%cG&$kX}&oBJej>mUw$Fucq`DgF8{N08& zJfU72-us7OUSbx^f5-{q51(+pdm!hZ&WQY=DDn?K1@dk60{QJ30esfy)_h+=Yd++f zKQCC#P9OvZu>>;iAh7&D$uvbgof2j|rZ$VW|^5*L=dGVvIy?D&Z z7JQOr3*IytC#f%ba>3V=w^-@{n{URQqMPwMN1JkYx2F8*5Rwi*5)Z!?f99-cKnd8 z77w{tlgBiy$!q1-;6qPU=WXn(^L@$H_z8Vgo@P^(?})6zr*E^x_+-l~cC+DomR05- zo>t=5{VMU^lPdD$OV-@k(VCA;s=$Zuv*Pbet$4$5Eq}Y%lE>V);8`9P+$GnXXCF4> z2^Gw^rk5!fmzwZ8_cVNIV+}u?F7R3V7{|dyvFY@G#mzOph*>K?i8Gsg6hG~LFYXiH ziN}upBf5sY5pP_2B|h!{x7elpg=iN0mss=hGjU?#Q?bj7$6`v_Bk}pG2jba``=ZsG zyW)n7JL1My<)Sw2Pw~`WH^sk4+z<;N{Vrz2To+IOc~zX*|B6_8>5|wh?4sD`*9+ot zeqLO^_pJD)*%@)`np5JRbxw-;bB>F%&3_eZj6Nz>fANbrY3N}w?eZbHt@~PW=iJp|_b)5OykRRuuXD@A+*UOn6t za(Q<#s&AP1d!^3efukW})x37%!{))F*TX>Z^%8&4BfORP+QeJ*-0La+9p6;+tJ_Gl zJ=;)B)HM)$dpd}h%j=4_X4{E*K{dpEFRF;MiYklmx>$=}K3a;a*PDrNdTYePX8#60 z8T>9VWADqrc9n5|f7so?F9&V}eywsPaKP|$fj$S12WHqF4)l%P9~fV(5BwX=R^uesEn~#D(2&9%@$_#s{^1q!LLI?XFvb`|LyFOe zr+-$0mC#%eg-{_}Fvb`|LyDK!Ij4Uj{`D1x2*ZR#!5Cu<4Jn!Ejm|)TVt%$Ie~C!h7`Y8!=$u;K-q|aq%M(lT*{PvU5l0lC@z1B~j{e=EQpZf0w`}cCdk+3`;@tJSPhWqsZNU2^jGne| z&G!9A&tAFp;Q2?p`mH(-h|emR`orQC>wns{uk`r&tGDhyefiH<8|UDNgXx?8}tiSQj+-u0hji;Vic=R2;q~y|bbML4rKb?PR=9jSG&_lD2;qWYhWly%;QmSj+#9PZOv6Ut zKIrcTVF>P7brXISsxvfs5U_`hJ6-WY zecYp~EKCvtaqp+8utpewduN@6Uj!RA8IEX<(2T8R^@RCC7j}dN2)l#?c8B#BeiO`D zK6}fO1!uODRTHKQZP?GOg|JbGWY<`@a9pU4`+;V7Zq^I;_8JIFgzmUc7cA@(QrJV> zg}RDQ-i*UtwG3GO3fv)^BZT1IUMpd%5R3ayy@fMEZT16feyre&cg(v9#X=u;mUR$H zg-pClK1R49XxJ$BiX{jRY$4tvKUomj9()3FtuPSpp6?j1_JQCK&x*vk}+}UxYh`Qv{BCogTtEVG!(i?B@SiF>4Nh5bSr?srBB*M*9>fBS`H35{_twvI4Y=!pBO ze!_Mk4);j=3g?8nY#y@~#tZ&z2Wup(6#B9AEL1oojAVb|Gf}q$QDa;bup0bX{z1p6_DWMjd%`Alip(VrTwS*#}7dy?`2?vC9_Jj?^2j45P ziFjGeNTCU4kh;P=p%XidkA3eDhO=^fCE&bZkNeLRg$Y7y+)HjOtP&z{U$~=CCS>Ct zZ=CQawloaBBr72QQJ>Z40QrqpX;%)AzxeR1!$I;B{Rj6sNd95fR}&7BU)X4C@j>zj zy<+ztBtOu!>Xn1!|6z_kNPge?^=75y@9lq4rIh@tl>D-+ggK?;k9E1U zpfnAB*r--TrR0C@ox8e}{H_C!HkOjVg*8>FBm68OZ*M92SC}M9$*;oNtd#tzTXjyB z)`K5)f}bxX|LKSRS4zomdOhMsDfvqqGwzgdF7X8dXnz57w@F@^`SN)svr-om4?j{>|@xmGtD-U~Q}?f99mVs-FB9tflqj zzhI56_lDnc@@gIZWcVvsljEFr2U@G^$v^3^qk*3M60Gg@bK#F*&95gv#HCAPJ^3GZ zk2cji!S8_YpeKJLc4Z4a`57QR{w5zpPksf`=#iFu7CrKkFQX^_0X+5OH=qnX$|9dg zPksXGpeO$Tb<(459Cg%_KY%*x$qzsq^k@tDXnI=rqm6pBm3%rq+D^Wnp4Rt}iJsQ= zkddC&^N<S^5$8S5cy5i-|9_9FT~kG>GmCwlaah(6MzuSE2j9(^aG z5B2Cv5q+wsbvOE0kG>Ys=X&(L2p!PV`WiZ+hi-__5j}K8gwE)pJ0f&Q4_y+WQ+nu@ z2p!Wy*F@-?9=az&2ldcJ5jv@dZi>)RJ*|hKvwG;R2p!f#mqqBbp4Pq4aXoZhgwE@s z`yy;W4_gpn6MEQ&2piGUdKNaLhwTKyhV-zdK-iQXwiO5))5F#RVRL%eULb5x4_gd` zP3mEr0kBa$Y&8Hjt7o1wu-#Wc_yA$DU5Y2$rSxRGl%H&u_>t`rf3jUFk8GF9C)=g^ zknK|a$abl|WV=*hOY$e%rT!q>rT!t?rT!w@rT!z^rT!$_rT!(`rT!+{rT!<|C4C^CH*4XC4D2?CH*7YC4D5@CH*AZmGl+1OZrQ;OZrTOZrc? zOZGsvOZGvwOZGyxOZG#yOZG&zOZG*!OZG;#E7>1xm+X;jm+X^lm+X~nmx%tR-zbjK zP+GEg%1bt`Nv0%Qk}=7eWKOcDKA^s!KB2y$KBB&&KBK;)KBT^+KBc~; zKBm5=KBvAX9UxsGogm#H9U)yIogv*J9U@&Kog&>L9V1;Mog>{N9VA^Ooh02P9VJ~Q zoh98R9VT5SohIET9VcBUohRKV8z5UCn;_dD8zEaEn<3jF8zNgGnDpvNn@zoAJW)L zW31d?(%4I5u-u>0*i2)z+~1OxAPPP|m?xQ(SwkK(Bq&ZTyH)-yq zIaIbsX>O%CR<>7Z?xi_cwr6Q>ra78y7kQ+)o91wNJdoygn&aj1LYn(&4Iqyv(%OL5 z2=aI%tsQ6$A&*B~9-pMO2HGsGJs<;VEkbJ&d3=-BDzs*i$3JN;0~?msHjuHj)}b|z zJbp@RAzBm3X)O_M$bIJf3rTe3#a0&>3m%Mr$~E zK9JUSw8oR?3u)~~Ye0EEk=BOLQE9D6Yesqgk=By1VQFm%9hcUcwC0rOFKI1GYf^cB zlh&%R8ENfGYglb65lMPdS$cCwYv_7Evk_}V+$%d&tWW&@xvSDg3*)X-AY?$Oh zHcav%8zy;?4U_!HhDn}e!z5p_VUjo5Fv*{6nEHcknEHoonEH!snEH=wnEI1!nEID& znEIP+nEIb=nDl{cnDm2enDm8gnDmEinDmKknDmQmnDmWonDkG&mmsePNk7SkNngo^ zNq@P&T~Hc(rrP1H7OBej*

    C_kSs_hBpZ?u*)GWpAzoE2J}|JETLTOQchz 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ⅈBn7mKZ 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%0D_(|Y3Kz*rBe($quZ~o|8 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�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 literal 0 HcmV?d00001 diff --git a/android/armeabi-v7a/liblibwavpack.a b/android/armeabi-v7a/liblibwavpack.a new file mode 100644 index 0000000000000000000000000000000000000000..a17158c759b9f71367cbfd08bfb8457dd93a629f GIT binary patch literal 160080 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̾#v;o%5zK=>1d(4i5`=p< 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

    ;5{)pYP7&|826jxAw-N|&=wH&!wA#z5xv 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 z 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 z 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

    nHkiu*a(z1Dn$o$hG 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≠O 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

    ~!H?hA#Ln(1q!uE^tULJTdJC z9f{pQZCW=_I?xT?JnROwy4_((Sa*mX-5oxZb%zBvx`VE=9xU+HgOC06AZE25EIp?O zwQYLv#!esprR#(0Jbn0eR39Eb(}yDl1~4wl0Gx^pxC?6l1vd>i7tIi4K8A3hk0JbB zVF*E|4Pod7q|P*B2(2)N-uH}QWET?{;co)@{Y*e8F#(kt6FBwG1O}U$f>N9*EEs1Bf3}-K z-$qlY{$mR5E@t4IZ3gl4%pm)S8Du;%g9vSNPF6LC7X!>;%Sv;It}%z^x8@)>wt(wV z7T`150%n(5!0CDmc>m1;)O%Wjp3D+7CtJejU6yd+x+N_7V+n!IR&YPv3Wm!oGG`38BMm}`qviDJKBLX)eg>1 zwgZQqb}-?J9aMj}gQr&Z@HfsL)W+CzUA8^6*4o37clI#akn`_C8~_J8K=^V8P$(S0 ztknVjQ+I?4FGskO?a0sJ2tW5a!iPpjXl!@n+yf_&$2ozVg|wE^vdXbKJmmpBwDD>IN2VZZO-#9hySiLBGE{ zgf4Q2>;vu~zv&Js?e5@Z;Q<}t9#B2d1M<0+`Qt$k7}?|jE$v)gZQ%)1!acbT-xIDb z@`U@9p3rpN6OMoLgrz24APwehz2081a;_Kj*y{z0E_=bN4_@G>=MBUByO!9&D5k4@y#0Rcb`GCc3AINI=f$65curi37+!vX^H?Cbcbure+0l^BMDRl zaQ%6v1TKw}K+qZqY&a@`r#B^F{8a)>Pk^Ry7KS|0*Sj)cJTh7fRm83NgzLSd{~C`|GXg`vrz5Hp1H1m=Xo zna!b4$a#UUu7yJWYt9+y90qFUVG!gW1_iP(7&0gf`pgW2$PHo8?MN8ZUkZcaPs2E) zBn-wGghR7iIJiV}enCMvEFKpQn>kZ({jPABaWWiIZ-qnG_u){@nFsOa5m4tF0bYp_ zFt=|6)J}?kcPk>G(_U^h5%Bg_1e|#n0kf1N!Ob)h&U!^cWNaiHEQkcvqDY7>=KR5J zkx*P62}>FxVbYUGNNwkwg|1O>+BOQZSrputML}HuDA+bB3Z5>Dg6=z`zy+hg{c04L zJ&l5|KcYaP9Ss9)qT!E!G|WnfhL7@Sh#eaZix)%#Zi-Z9`+6a(@FF))5(3{0$yfdQvuI9rS}4xh(BMSBcHYQ@4i zi&*gTiiHIcv2Zax7TN~Jg65=H&{`Y|-#5oX!+}^>ayk|QZp6Z6&ZkKH77It!;y}YV z4q~0-U^K+R+{8GTogW87hsQzi^f>snEDpABjRU_!ad7B#9Q3#z2ZJBS!H&;yP~RyY z?sbocn>O(vddI_p@OTJMjfZEw<6+FGcz8R5a}$@x!^SP~aHBFFzMhDOf0sEwqd6XK zy^e=%?eUP&B>~zD6JWYs0(|yKfaLH5SeKjtmpFUl<*)>JKPdqoEl2=blK?YzB!K7P z1gJli0Mdp8IB_ol3|=NcR$Bth?UV?cx+cPAvqV_vln4d>iC__t2z9bV$jjqgk3oqL zQIrU)XC}h+C5h0!J`pr_C4$P~M0kB75%6LnjA=>)qt-;&@ir06ek8)Q&PhnCB+#Cm1cT-#!G6woyuUsP+O{XbkNrvT ztU3u!oKAvimy*D#DG5$JNP^&(NwE7<68!p^1QKN_6lzOhl%W*mINzMgX<`!1G(%PPMAMk!3#E`^SLJfFi- zxFAYF=KYn%gfgXi5O zgOuAcNW06+*(?L278%@rAcI+tWMKGM2CJXQIKNT`vga}=ej$THFJ*A%l?;x*mciCH zG8q0=26pdcaDiK|_nfuK&FKR_7q?y9YPntFc7oeFZUx-5x$WlrIdfabkNd#$@Z^@q z^BcwU9m(_0=I3$a=X?E31}pgaZFo6KTV>Fhmn)T*ulT+U4&3AAxWnu5mJC+iltJNj z85r>Es%nry5Wmhtb-e!gb!VKF!TcH-l%0^l9+bh_YJQ$78TcNO!Q=fhn6ys@zjn!B z;C5clE&O^n%D`cr3}BTEgyk}@UMzzz^JQ>wHqUFi44zMtLGN)gI6sR2r~k(NE!SMmcbZ728}*4Fm{(gf};!u+3>nElY!h&22585 zf7E4A*;xiL9a5`RVNz(5NFm%) z3X>e9u*pISdkmydswIW#ouv@Z+t}A?d3&75+vQr`KDY38 zTEg4waNchHdHa1aDG6rt_N>9%^<>_@Z}E0+7M%o%yxkA*0 zQ*i>AO-lgpk=*(ufO%R1eBn&ms(=KLJMsS1Bmu^0B|vLOJOprN?Sx11u%j^^@Ju|= zk$Bj>BOa!%j)#zW@$hC`Jj@yx56W5boFx?x7dY2Q!-*ef%=>Qjc<%4TLCC8(FuEHD z_v+$cfg%p9_r$@@wQ-<7KMsbEi-W`cMF!up6pGLy2E0NHuhy=Cmkzl+e5)8*j!r#J3 zxEUV_D}5sB-IsYOEerwF)kF9NJaDPBJeB#`u&;H@?z=HcXs^KvCeHggh3WEzL z!a%w+49+YL1Dmm7@Lz5i>MdcxowSqIA#)rVuybvf34*^TZ5ZJ060$N{!p&#cy z?L83;_sW9d`}|-~`Y#y1r3Awrf6k3I<;>`RL7>KY(i<)Yfk`FjOqT?~gK^$+qd@>;tN<)Jb07E_1E^zAv5$fJ63&kr!Js&W!2urzH3r;|{w~1oy8=uj zfwRB__%cm^<%I&6gbT2urvPor0z^NTz#Pt#I-!XDLDY1cm{w`w*ZiQ@`va~e+WC|56&z6;qOR)IFsxTqdonh ztFAw+|KJDRuKGbyr5{{a;s@K;{rjPX*Fi63#^;u0_ABgP~q+Zo4UBbq{q$>bKDs^t#O8m5zY|B`Bs;0 zoFVKtXUR7?!H-HOU<;gJNN*=t$edt}o)fHm>j+cNIYMTsBUp`hgxfN{?C1#Hl^kL9 zT?goL*Z~GF;&byp|0f1HfPzRG;B$CCK9|=?u!mbV_ORrq9r#?ggSx$T zkT}y0YO?IW#?ubQs@cKO2e$C+s4XZjv4!sa_;UlWg^q5vaQ9_T*mLm zR?vFI3P$g+g0B;;pufzDGq9|{@TVnYT(yLGJ1k-6L`yg-wS+4Eykz?i3z*el0V!n` zpgZ0IP9|7DzLf>M`DzYB{zuVS$7S(6ah&e%?(TkWmUyrg8&v$F*riw$OM37RptO=j%w1Tz*BV8&{d&Dg+NQ+D!{ zDf^dd%ECvQ@;II;+tF#ljy*78Ck~ph+(Z+W-p_=MHZx(CO~yP|f-y_pX3TW>hin#) zHR-7F^_NCG-eSZoQjJ)2lo3mFG-A1JhOF?8A!)kTRNfiz$&Ea= zwZ?$8MDuu;s{#Acq0ff%91Z#V^jYg{edZpn&qnI%vw3gz*oyOdZ0RaJHe;k7i*V9o z7Hzuh^(|etElZb4;&oXC=(3S&d|9KzgcCY!`%)cN&*O4d7CLP3S8X=CRGXz{X!AIW zHe2GM%_jcUVsKxJ_gA&pl>{v|GgynMt81~G8ck+dpvkr-YqH<{HQ8VjO}6WU2CFRA zU|p*S{&=Q%T;)T*%0`6{esG0&&bM}*tkNk5nagZio^yv`}I*J}I(u#fq#cU6Gj$SL7T|MKuK~H>(}?d$q&b8-E}=<_~DMw86>M zZQyU-1_#glhF^VtgKsU*lQQ=gOi=sD#xJU&7F<&R)D{38r`_W>p^`~VY_KR~}djbQBF2#-n| zV8M_E=&pMYiSyn=mE3zU+wl$tIlhBw#hm%o?=8eUe*=E;Z{SCJJ>+hvhXC_>IDeuJ zEJEsF&i&U=IQBJEe|-fF%U(gf#w#e_`x16}yo6yqAoO!!Eu`1hK-Y{KnAq_GPOpCf zA5C6>#_{K1CV39}<K`4K#^cm$~hm0%)NLiWvvpc?fMCf7fJ{8tgQf9!wP6S zcpsj7-G?I=@4@)~_dxNdJ`6ZzX2L6Za}8$4d~i&9Y)(+hl3}|;8_qKhq`tR)CXS!mFHLC$E2%p zujvYGO}YZT<*&f|O_yQ5$z^ChbP1yQ_|~bCQuxuM6rAo~gubIL!iai;VKWGVe(4&Rd!VQC9ypzm1zLJp zFn;%LIApOKo*vu`|bqu;vJwCyaPU8*$$U_Z-=xy+W>}agLhS1Atib% zXujM6nG?2vY{O=l7QY#;Hf4gw{7i`Wy$O~s*#x=&GN33e1Fk4#K1a>7@^!|UnL z);Apt?xumm;52ZlOa?~Uj9k-T2|B9usqG}23f0hi# zUnW8Jo5irWaS?=kSqNXhCBo{T3qZAfJ}l~*2M=WDfsWE#2vM5@QChQMgx)L&H<}5? zW(n}Zat5rnjR#A|>2Sbh8fbe=h3VdLaLR8A)CEq4PGJ%#giM6?unF*@$9Oo}dmN1K z7Ym9JV`2B8F<>|}22zLr2QQ*VgVm^L7&dwo%!wHZ%f^m?MdP9%c0wfhO&ShACl7-o zaYLckv?1_t`d}C^V-TE67znDfB4Ehu0gyJQKjh8r2SxMxLecy_khh>Wq$T!(VGDbL z#-bh|E((XJ#Zq{^I1K(v3WXamQ68(Ym-dDbD{}kj5mh5 zSR-&6YY3BK3}EYMeJC2G2Nff9p(auXUJlcSsv%l%X^qs|BMVDoiO!)IkXlbn#=6!h~ zynFvl==1uCu;*E|P*?d#FuMCtkY2A4#+2R@;*0JG@uzMHvBz!-y$)O#EcaX!K5xAu zoY-(ln2>%^P+f+?(Zmu#m{lZPi964e_M8=J&r><~VD+$KD#-y)oUo+)HjW(bpRZxDR0 zt`piy)(GP1Rl@vZX@X1cO5v2}azV~ASs1LbP}tNtSGe(crqKFgx?p@~iVz@95C$9@ zD~#SXS{T22gfJm-m@szoAYpi9f1ziO-h!7;xL{-*B6Mg9LhWCF0l#<)J8Im8S$CX; zKBB!~am-q1-Dxh|T4gNkTc9s2n4~R43|ANI!2C?NHA$47G)QXB zy^@Gqo=6VNu8?dSbW^g~?UH1VN|EGjW1-~fjXa6k;k}ZfsXHWj<1-{`VXGuckR-AG zJxwyf)iq2lh89^%FgeZ-iZ z14Q`)gT*xk!^L+OMvA6a{u5p9#EM$g6UB;`apL60c(L-^EK$FGp6DsJNVHI2BG&7# z5JR<6#RYol;tr$LVy@X*al6%eajxA)G016?*yy@hT;aJ@?Dp9%P7By6ijv)8E88RL zhUJK+J@$zzy>rFaeGiH`0}hK}gN}%|ha3}y;rU`_)Cuv<$dlsd=+k1$e`m#)W6q0( zu|?v<@g-u%1Qe4dT@+tTz9d@5T@m|Fy(W&Bc3tc}{ibLXe@na{e@C1=Gf|rGLVQ1?R*awVN_-GsCmO`R5!v*2V)(QM(Q)br@zaz~ z;-<-8M4d@Z;=Bpp#IxgC#fM{mi1%ZDiAP7biQ`7Ki$9_|#i_%)#Nr{{V(SqZT$Cq^ zpAN}k#6fx7ldFJF_bH;xUL`cmRz|BV71ZPNQ-5q%!)sgBaoJ`Kbl9Ycv_T6))@kF3 z)jFt@u8Tuf>S6kFeau^8fM*vQVnL!2Zk}h16K9*CRRYiJJIxHoOfkor2^QEl))M#r zXN9jvTBCZT4cZN{MaKv`)az@HUwSy;$xug(0Vn((;EahrE?DpGib2k9xX8{Ob1gma zyoo2C(f7jLTHZKK)dy`AeDV4}UmV)*hc|xsqg`_VPX8E)S#N{z%u5NLc`D$ZN}j{` zE<=YK!Fcmh2o5a?#j9t+(6m5`F^9u3eQyukwzDU0$n1sF*Y-xQm3^=_sV~l%*AG9( z_s4;g2H^IX2rP>nh|eMhVRg^JSj2|la=)SI?#A;h+YU!Cjl?XSD15Cv0#&<5py}_C zsNFOQKfjB{f|}7d^wEF#;#LgyzdQzWE{w&;1+mzAU>ttmH6EX5Ou$2F6LDD5Bz!w- zGLD`+1<#F+!*7G9qE4@AXedm_E{}M;V><(rj1o{yeI}-K&%|dxW})84+35Xp4tiJ4 zMZFvI@L9=xOgXUtRdN$Caoa*HTfGRsCoM*WnMv3-E*b9+UxMkqm!i338SZplj^E5z z@SNc(=peHa?Rh?Hz3(gW`;1g9dzXr7W7E+8Ng6&LoQ`qj>DU;y3ZqL_q3FFDRgbU6 z0XA!JN!A+7*5Ns`*Kw0shuKN%Fu7$N_Mg5UmFm~y`RENe?BND{)psL~zPu5y2WFt< z$qbz4unBW>Heor>&HZY9Ccc%~j87MDMrz)S8{@X%pqE?lZ{$|YzOxmb!nfg};%%tm zxgDn*-i{|scVPYI9VoA~6AhPf`@R$9r|-hLSG%wvYBx^0vl~^US-9^4pUdyI2RG;L z!6t)jgbmp^zdIZEBKKZdH#$5AEwIR4Pc$Ga){xaoU7hQt-%^JfJ(KH>ycm!3dB??PODun;fk zpTuXYPhw-+Nvw}Qh2^!UaQEQTIP%JA?D9E-TMwNJkLho-ycwu}o+E*6iitrM=&XJWrY(&)L8V@~LM7ep0 zFY6Hx4kH|PmGG1IMVys;5o@(d(SJoLE^I2rLt`(Yc<&M-C*$YkU&bVpD=1le1?zrY z!TD3JVsq719MR(%9zJ~yUs{%7_r@|*?DRIT$#u-{bpywoy@733H*smkP5jh; zlQaFwG4*jd7WBAxsbq{cT#6zqrdWcrGmDnev5=XRE@^|+Ux>r2H z?~*D!c&G{m&1x)JT#Z(5t8wO_$9TB-F~6<@ZSA;dG}oYs9jIs8i9yMo82X|UUEnXaW&OqcKYvj=x(mgUE;Ka$ha(sL!{jIb zaAg4J&Ta2T;d?hGy2#MwXc_8QBSX$y57)PWbLb3YX>>1H8Z=*)d=AQza-}Ri_$N#2 zJmtu5tQ<*Uzxndi^PoH}ekf1-yX2|JU4btDr$FLb1v*@$ zKr7!V&|qCf(vT|B#hHpUHd~RJZ*ex=FGXswQ=*7rN_1ek5;Ybmk=1i0>c_Q!6aADa zVZ1U;%}}N&R3@KBW%{S5LYJf}G;^j3Y3@;>{Wn#}`nw8kvr?sB5vnv`u_|RAR;B9? zRq0cwDs?-naV@nP{Yz1!#uI9Eoi@Kxr%n|OiVo1A zyzv_Jc7q0K7i*B`8x0E4&?F|&B-crrq_Rnqo|kA+)>}>Lr>R9BC0dj;NsInuXiF-w9@nL&N4jL$sY{^_dNg=2w?%pslB-ANxAo|Aiyq~h>Qi)2efl*+ zpVGJMlT4{T&3dm-cQrWIF3^A?V-0BeY6HqT$#tYp3}|1M0j+T~r166d$$6n6)$KK; zwKojO>Z>8;=^K%0uo118WJJ~LjmYS%5e;~5L^Hd2nUgW43^t}YiN-V}$Cxb3jH&jc zF|E@!A;%ySIy2UU+|x~HXTAwFKQy7B-zGHM!jyLOG^K*+rgSRPlnz}mrByYiG)l&d zjGfHr)<83gn`cHpcA3%KQZuT3!})m1=9J=LP9?+5>GdLW`k7-+?N`mIsll8cs#(xM zZws0@!h&>?E$HMv3u0v!RMcoe*6NnD*xQmWM_JO(#g=5c*OEN0T9Vg$OR`q6qJQpI zbZ@8?ty^G4{=2Q{K3UO-*H&~_)|$K>ttq{~HQh|GreB%XWN^-!?4DSYCFkg=nA=c& zs0|&PU_-I#HY9V@hPL0fA^k5ll%{D*b>6n*7HLaU5^X7Cmn|I-KRb!=cV3GuxS-XE@XT z6V4QQ*O`8PV4jw<~($#wO`yRL)n8;>^*3_)Pp?6cu?aa56ax; zL3XD+DDRF3={I=LTp3S7b5Cjs@+5t(op+e!Np|ZzN%OELHC*zfg6Ezz_6KMFX>!fI zixRrw?`So5T?eOASVQ>28=}iUwyeV>`H+@{LOw-4Qk^`YEFJ~U~w59uEFp;K3VNb-FV&{`(!Fe7I(p8R=G^rqhqt~|-tJ2ybp5E(#gBw=Kgx*q z<19}<>RjzdM*IB8@`4}f-1DQ>H-2>Kj~^}8<}5)ce>xN5Pu@}flpXI+KT`Zj*yT_0 zh5od*%%8SC_osEu{*<5)K*44K^v64Z4)h72pfLedGB<$xpa5E#6F|4l1W@PA05Y!) zAm^3J>;kdIeJ0=sU&9O{U`}p$4ltoQVD5iN+|w-gifE6(Aygll6fW}^-mI#>y%J~hCmmr1e)t3 zka16e3ZevZixW8GLZIfg0&)2hO)L;-`9*Z=(RRbnhlV?FVN;5 zKy92yF=!G{#(W@51A4R#=*c0V@^e6k%7A860a?8Ty3z_XP?phk9Y)SJjQbqUNep9D zJDAb8v5cB|I?S3SjLxoSv@naOi9E*WY7wJ;HyBYBBhxpGCVyj;-NmR>o%0h-gXyMo zFr5etrschYDR_7=y&o4$OJ)XBXL2x2UmHxi8B+=l%xMNYxN}&)FQ~>_X_KR|pvghtSA=A(RpoLOaHX(5{3KN?#m8W70#&W^)Kt zW{1$sqapP3YzR%e6hh^F&Nh0)l) zVU#%}j82RSqYLB0==jtyS~ok4MsSvi`id|*wK|M52g0a$M;KY`4Wn6y!>FJjjI(>f zs8Qs0C5#@G^X)3aXvX6(GN}!tvv0yE=wlciYYrp%Uttu{8AdB)rLi? zPfA{#b(wmCvoBBaeV>(5_XR1*ic)GKDc!szrS(^(1lOfheN##?x22rPBPG`gDb0V# z&;JqMM>YT36Di$&#?R@6l$O>?Dex6%!n~GJLcNqeypht-cTzh1UP^Bpq@?*lO7-qT_*YNV^ zQtJ1V-^a&Na;lQjZ+?B}E2K2$o|KyTb5epyPn7o{Zf`*f*@U-vmF zZ8$BZ$U-S8=1VE>2(NcYN=NrgNhOCfMR!YS^L8m+*v#+gMt=OY{2J1wv^+&hp-ZLo zaS?w8=JWeLTS{}{rF3VCl(Z-Ca~Z?0VU(2OhV$zgBqi2QN=iNXF+-#@K_aDZzEYau zA*Dx7{GQrMX`(ql4?`&((3a9cRsKJhm(tWO&OL1lquQ1*TKt)_dESN5{8#)reafHV zO3v%K6Gn^5!f4e+{#;%NqbVo(^LjLle(vXd)ZJm^zlFaG>%z!3HH?-dhtcJEVe~DY zzYmkbNIxcwlp{IcXFwR8@4=sW2qP_DzMV@Lnc9TWO5-r9)(Rs%r7#NZ3Zx>j zWK1a43=5@oeYt-K;Xc7Pl+2t%Daj&~%5+2Nj}l-18$zzFA!Ogkxk9xe^zvZ{W#8aT zA>_YLa=&#bgerE0kjuspnv)VjhZclT*)(1@hWoRjA#}VK_eqiv3UKH3twLy?UI?`+ z^6lD#spM-g{jCco&uY#jDi5X+$d`q|px9Ab0M`etrTwwI>2;&ScM#t7M`jX7Zg8O*j zzP=~-`2zR-X1opfWX&j#w+VxI+fdKjhzY!{sNije({-Sk=Yet$16|qH?r6 zlYtgS0r~d=&PE1WUH%D%KCvc z>R$kD{}e!_j{~UsN&r1A;C+sr0hG5gfaWCdKF6p4x*r}u&PXW{XNo}}4Jz)N{!oi;`wEXFKn;&QL`O%uYepGYbkIZ;~ zss9>3nmoskW{&owNj?0ij~nkt>HE>+PG4I2-j_@(d?~lcm-P4h(!w>oZ#LVPWTJh^ zP3lWMoPDXUwl4{7K4ijK&kf~1bl{W^4cO&Fb<2Hda-0u69^^y*0Y0?S+=occhu(hj zrnX9N>MY^R=>6VwceOX|n(0l$qP*!3cvGg0H|Z*SbAReZZ>qh>le}o!0WaFJ#*2>5 z^rHMoFUk?TXsMMK^;hsB`Olto@}Vd7F5>L!Y)=YV>B)J5p7bTclU#f}Daz23W_Ebc zf;tbHcEf`r@;%5r(}QZ}d(hfw-bW7cpc6J8WUuH!>pr>D%L;e0Jm*e>cezsn?`tpS zeeU@^-6_V&oqW|eKfB3|3Lf$Pd665{X1URS%iQSZcsH`?2Sx-s(vA<~h>9NJk<+M>5uTq$xifD7V^y?w)s` zciSE4>jJ)v;%q8^Uas#zlYiKgQMEncIeQwo&7N;>&--8YlI|^{MqfTZ1P1k5kqi@<$^I=^Gs_$tJX)^RGU7nvlJU2@QE`OfyQ2Y0)lYnm^Z=#zz?QIEFE)|1+XH&x|OE#}`aC z8qx77M&uf1MA^nh^tZ*3hTb)#ZHEo1e3>DA8EHr|-iD;CVn|)}2GoECbZMIbtxYhX z9=#3ds|El4OP>rL=+oAtJpPfQPvfKY>9n^#wJ7V8eZ3y_<(#aTEqXM5x*m-T=kXI0 zJu+<3B|Zm>_T=hP@5Q?GW{57$anhycE*%>GM2D^x>X7~_9f}^KLz{T4=Dey7-K*E8 z$0geIFjJc@#%WVlh&D~r*CyxBTJ++o7A@PYMY^-KXm@Wd(lXbg#jToDbxV`1_G{AE zL`~Wlp-F`{nsoWM23^0eL3l`m4kT$%@(>N`?V!Q`@9La`sZPU=@Ei(D)M@H4b$aQj z&Ux=@w69W)J|0mcr=@B%a+n$|a^&%=4j$v;@vYT)sx&)Ul_G|ylCixiJ#AB=b@x@s z{h$h6Tc|<L`)^dqsLsqDV_ODw5fFMJn`DBp)Tt;d-G!x+fKA)=CAs7^Og6P737PAy3g2 z@-+8=JS|%wPfPpC(@ax&8va#|oUh1H>sC2BHARkMC34iQDn~nB%96!tS=yZ{ONt|8 zX{wVf;U5{2xhF$xpA1c%BSUL?$j}~r84A1CjXra_QANKSZx#Q;nKA#ct*Z;;4|d_T z-d!m3@h>`V{ENO`f6@L?C;nZ~iKRxJIEm-pXc^OiQ~tH%l>_Z4+p8U28~z}y{ewQP ze^BdQ8&=P3!xXJH)I0MVHx2)d&EJ2aWXCU@9{3AaKK;pKx}4Kx@)HB_2Y&wV2d?el zoUWYjm>m2aD{5O&by+KVTC^gRwxGw@7F7BB4e#ZA!^OehP@Ttu*DPtq&!){7giSbO zbQ7*^`-&O6zG8CVR~+*A3u-L*g6DLX~uhe>G~e;m%qcj$?tHg%sbTG z_ZE-BTXcB(1~cZr!B<*u(BwothW4w+f$!?DS4tf^n%7}V@oPL9`5OB)zrqLWUtv$j zSD1VCB{q(Ei6(8e7_hAtnP)A!-L64}$u)SV>jfrdy+A$x7r3k9Ip+&K$8mDc@zCC9 zSQ+#TKUF@(rWsH1rNUDz-v0!b2v5+p>M>qVc#H!SA0zIsMgyT5$2_XSj2Ts!FJFac z_ddcSfsb(2gGwAStrF#BD)C6xL-h51i1~LOpys3p7~4_7bNf`_6}JkkD!Y%BG57J} z_j|Z?!#x~fcaKM+@8aI!chUaS9o)6@4*oR0gW;!dvIj`YOkW# zysP+L=_;<3xD*Z}P@#RHqnR^j$D_+FR zY@P$ioACX0#Kh5v-@l3&n<`?7p@`l2B^Vf1g8x+&iW)Xs25$9-Kz$*hT z;PhALv3u@$T&-{(J9eMLSod>y`tn(98GaUR8qQ!?(it42eg^yV{6zu2r&0UHDSSTa z6mI==5@Fd%tkgP*(R@s-!oLvx%1_|h(I@c!=K}0rR)F@}1sHTNAHhE#-ESU8&FJG; z_wg7WTyhMfG>+k~eMfPP_fb^2b_AD19>JII^3ZEx9?nzB!@S*x@s`VBtieP0I^qyk z)gHu>nFn!G*8z;mJb-G}2k`9aTpSRdi&d5TanQv5Skk%=_0sm?c)fkN@6cYn@3$Af zmgQhqWDa(}OS+JU16?Z5@K+c9;l4t={3XUyG*$^SOsl8g;F$7}ui4_&Q9iTZZdMQ-!(P|vw2#>_#SKO6Hl%);bD zGZ82O-#y~v+@IpPYmLWACe!(N^E7PlI~5(q#bNNmDHxV98Ql+0LQYo1yOk4g>4))X z{BIl{Fc^mh?yg6W9fno&hoZr{A=qc%V4Qqz5YD+Z5aVA)U}Wn6bWs|BO=kV^fOkLa*}E@R zjqZcPXZ6M_slCu*S5KT?&;t)&4#$crDK<8S;kS-Z{Gb(z5A8zmSWqy|j$r6G4zOaL zfKygW@M~5OPALq;`&Roe<+-9*?1IDZIAd+C6Gk^X;!PPxbkcXgBu9I^B(cL^18mWHtPO_Dw#I=gt#HUT zOYD_rfgZ)?sB+s3pS>`}Jzq?4XqPdzYZ>D%8zXe~GsMDP2Iw$SAGc1`!|#iAvHyA< z+?uV8l_#`N{*orTJ>){a!fgHshScCkEa zt&_vzELn`om%#@My2ZCUy2Q6do#Ml%?P7jgn>g3xx99*r#q$5Yi=&pbh>x?I#qf(? z#q8S8;=9g|qM5}9u}4UQ7(Mo#ICj|^aroXkF|hQNsP?i}eAxLyTxI@TbPIkeUX6Jy z_FGaVUfokEy5R$H&GY+Wb=zH0-}sK$JLr};edJ9sCGonrZu>QH^|>oz;-gDqbjwB2 zOPj<$o}ySXs920oxFG6mI42e!KO=_RIwh7h6pA4VC&WU#d{M8*F>%)TBjT0ihef5m z2gTl$D<(hRC+7Xm5pNk}i*Nk0#P7p)i5;_dh@BbR#GeIQ#P_!|#RrWU;%SAA;s(3* z;<)g&qWd_WlW}Rfcy>>!_;hxP7+SDY%x+jLez8dueaFrfXYHOT=2lG?Z)wJfjr}Kz zUFor+I-kd+*D+Gm4U803<_;0t3nIk#4SmHsHoe5-W29o*u3&NWBZ=s$5g`8V>my!G z^$^#Vx`+eY97GL2Tk-x(OL4<7Q?dVBLs7v}PrMqfB`)8lCPIah*rqHm&RYGiq`BjF zN#fjZCEX1lO16xtFL8eKyrjJEqmo&rcS(@w=Bo<1(xmMaulADb9(q+~~+WUo?Cc5Tm~AEqfm zxhM7o;hl>?eLuVi>Y?x_XoQZsB-qMK^3>f`Vhe)Ayl+3rjmS|Flkss9lY~Ucgo~*X zl^*LQ>E&A_4+myRnk#c9FGn7ezdZ-fYz>EVKY&)!0VOn+h9m4Sl!ilM@akSL+F zW0X)W#t1hSjT15hCJDaZpyRd{f(!K1lA2)SD*_#QnaXr!GHDq_zG3*ds# zZBQ)CZ7C6M-b11L=taRQ?UG;{dxg)nye3rZT^G`tZU_dq%Y_YxZVT_0-4(2&?+c;6 z4}>uFO2M|_k7l&Y8N<#OKc557&p?ZU!*Kz!1K78AAF8Bj~O)hUsJimkyi4 zzYH^QTVxKs##=zY{+1BrYX!Py*6>`;2G)PE0jI~daH`Y}Y>(JO$|eW6z0eUlW1YaX zuQS+sxqyL@E3|gG0yen8j0$&9D)NAhdp)5u-3vw}c*E{UAGi*_@WRHAv&;P9TC+cF zdlCSHO9P?xP!KF%FM%I(1Q9znferFm~SCesIs8v4MAyM1Bp>3%S9M}PR8GyvAcMu2S3fiS^o5FAw-4Asqp zp|NTR)D;hfE7`+f)r#TZGbs|v`a}V99RXPyBcb-&NKmLA1$xENptNT+)Gz%H_K%B! zo;}9EUHh>hD8<6YkFij8cO1Mf91nGw6X3?&iI5pN34#MA!vn)9(7SC4?0+5yFL^Jv zJ9`=^E}IU`W8>js=nR-?l>jn4clF}BnNW3Q7U&$94ZbVqK){5#U>-gX-doRyE#33M zx^4mIgeAiJeG9>K`6BQeyBIuzlR(8R8Or}8!_;R>;A7EJeyz)3%lzd~GHeB0@k)Ua zN-F^tt_1D(E8$6GDr8(s1%ID3xVJwIqBPUt-qLjN|C|mPqgTO`@>QS}xEdsfSHm#f zHSk{w&*9y)27k||t5lnbR z(B0!AtUr1Y{;8Eh?3_|KT3re+B$uEqhcn^2FG1_%%kbdVW!T|<1^R5h0(IZ7z?4x} zp$e~pyX7^QwelM5d3Oy?_br1{`DOflx(+kuTnFc>>rfGJ17dgIfT!&@0LI>g)tnJW zHs$altsLIGFNf;Bx8UUQTQE=UHdxK%oVbeH;O~70a<<%orq(;)9Ca5WF5HDthW8+1 z(LHc^b`P2*_hDbwea<|)4@Lh~fE881T(bvIu;c;UuXzB^*h9FN{Sc0JJcNXpN-(BM zC^UTpuF0Go_xusmN~%C-cNKX4t^)s&)nId>8h-0NhV%0t!|2M#(BSn1Vm3X2;xA92 zbHGz@I{p-x(lZF0@(fJMp21t|=dfe>bMUHt4yS|{V6^K6O#Sf!_6@6nizjQ~s#+}+ zPOF8LH)J{(8gh=@vtK9@$Q=8z_Fgn9mgl(b)P^w}>s>+u^7r2dA)r@z6&y$x=sw84PKZE(uv540`& z0}hY=K#*fQcqF%jVnsV#x9NbmM9!$Y)d3^TJK^x`PIz*y6FwXKh4<6`!ZrE}X_{T& zJfRCtpX&m1#ea|x{SR{U|3Pu*KR7eE8!~gdVOVQ7EU}eg(g+#$YrYKInMXrfomJGUGi5~$=Ig4#1`XC=(epG|)J_c+&I$dNuQb?a8BKQFL6eQ*y4Rlx znk;>@CX+j_$>u-RWL52&%+6AaO$ygy+b3(W3v0AkdA=6A#Wl3}jq7IhwArjcZRRst zo4s4Yb+-GonaNdcw)d?z(^k}B^PP2A`2ZcRnbu*UnL2FZ86CE;N{1!=)L}D?blEUL zmpR1fvX4u3+1`D+OnOC^RoCmXXgNK0*Iti#_0i)@3q5vYtseVxT#uRG)nlGt^q7x^ zKC}1a{JbIh>>1Y#@7b)+2AYHJPuGCW_A_7)BMq4K0s}T~y8+8QZ@^Ag z8?cK%xCU9@kR9_kWUHeLS>yskroG*eT|8&VqN@zq+g3vst82t=`4}hagl(ucVT)T$SfsWov+y)!Pa{lO%5+m^yvCH}9yVo$*G$>c z*QTtp)07#Qnz4RCW-LC+j4hdK#+GvZ_KX5EHsF>SGk$Nzs%6YsilsR-W9BSxlsU6l zV9r);HfOab%$e|6`xo?*d09bnou;UYLSi=$?7#E{wyb-jEsM{yWo4zdO!bK^lQ!A1$(#eY(9(`A3bbQ!gY8()I6J1b+>W#0 z?AW|QJEnZYj%C!^F_|BBY@(VyJ8Nstz6tise3(58nr6?WEBJCJUoW(0&1LrN%nN%q zp~as4<7|KpmJUoIz=6$*aA4ObI53sP4lH<+0~>qTf%^gn7XQ$Jjc9OSUY!o?myRPl z;l%j^A)FsL+>uR~=Exo_b7XGY99iNqM^;$s$f_PWvc^V7_Oa8EJ=bw!#g0xajXAN9 zp-$}mWG9xKO6fe8x!cwbU*rNs)rt`;zg{Zl*Q5LQ&*2|SehP$%BNLQvbg)<8m zy0W=zU76Y*SGKi)mzBD*=@pz|_}Z2I{^rW;WZhV>o*V0F@5X`x+?YupH}+wq8#^-9 zjSXGw#y+lfW3#f{*qh_L4!W_ecidRT3pe)rlN;0OaASIE?o83loi(_+vvc6iW({y> zhX1*<6Vu(9SCTu+UF**N?Q&-koIjCXcPTtJy`Hb59V~ygLU8L^`3gLr1u`o z^t%T;*6qRUG(FiyGf(!$*^@a0da{u{J=ubxo-AdoCrgUwJjF$x%s1VWec$ZK4(#=0 zA^D!{Mv*6DWu9#R15egm_sBj&}D`+70$ zNH4ZE){Du;d$DneUMxSwi`8%NVv4(Xy@T8ey_kH77khQhi{;(tJdbBytmBOrTldwA zDYSX9S+d^jy1F-0Hu7c?8*et!&6`aK@MfdKyjfU(Z>AIJ%__%uv*n!WXgtT8?N9P% zdTHJ)aU8el+Gx5^EnOI{UEm-aafx;=|@jeVBhgANF>L4@(*4!&Jxlu$6H>?EOq1 z7MSS67A*B)`_p__$$B4Fy2Xc`-tEIO_xrFhM|_xJAul`U!-jFz$)hViOj_>4vhVYK zRrxTJ7e0*DaTZF059|BIhxxSnFr_vhcK5FjTPo+vOjUeYo~AFe(D!AjCcdoN(wFJk z`?4?>Ul#4@%f|Wnvf&b6<`?42y2E`L_3>pBBYfHKA--&JlrL+H_GLZC`m&7^eA%@r zzUDL$ zBg%|KRwBtvgM@_N^T+wz^}g@(Jm-DR`;2qX_bidKrsZ<>e3hK#t&_7g8|AE1xSZXH zl(SJWa&~LGoO$h%v+x8tyOJbl^~rLkbx6((4$GO!F*$pkCTF=PE@#X9)Aujrgh@|!r)@*$ouFs&O+UCgL6@N-#sY$Fg@Ov7i4i(Pr48Ll2c--O%1=TL4poaeKU+lD^3kwepXKj$_R$!+JwKp!UIwltR8R0y}NaBgE8oPF3F zYah;O^I`2;J}jHt;t+0=kGXA*;5K@J+p6{>Zl~OK*Kiw7+jIiA?bV09S-@Uz zrWxnW^0@5}UGL2*__H8jzBkL9>dk)fXN2EiZ#Jv9H)no&v(4__Y^94g8)NOwTnxQg zm6|t;`su|SI8*3otrs(U=EYW)d9lmIUhJ3X#awc|m?F)KvHf1meWw@GjqqZR*Lbn` zATQ=O(~I2+^kTyYd$CJBy_o%fUTl6xFLuPviJ=^NZIn$mjv)Yrbdg#eK zOE{khJ=uaBPxkRB=hr5AviulNrn144L9i#A!Ffd?fu3x2fG3;BJXt?aPi83bWF=;v zY^kOvQ~l||wtn(pEma)GCp?(Neh+57owIW{da!p(J=pmf9xQmY z2eb0`VA;MN%%`IVzyBUgP1l2sYU5+dXLnXm<<83PxpU^7J1afo&N7a=vvmpXtXqUT zt6AyJLg%~ayNES;>KPYyRk2SyRc7Ry0FJpUD%mBUD#Uc z!aOs(u=3miGxx>RbU&-NG zXZHL|XBM5x$NU|g+39usbw2+*mVe);GjsIf$Jz7abvm=q@15A1H=Wqb`<)nE?8HBveZbYx@wJF+sbj!dxY$PzR=vZqZQm{C;+*0r<)8<^LD4NC36AhrXu z4e7w%PwT+a2l2U7*ADEHV+R(Z(}8{dDq~|_%Gjw=8T))r#+*}RtZ%f8jb6@WvW)fa zFXQcyv5(d=maZyeBR)&nd(M4cRwQM0r=)CXf|MN%m9kpSc(NKUWePtj8{{ly0XlsC z*X+v7pS!Zx*Ie15ELYC$=I=MUvW0vu`I^ru1N>ZBs*@{wqvgu1IRA+~abd$QyRZ?b z_#8Ceg*mTvVGYw=Sk6EfHrdOC{jhXlTmMMdzqb;$_^yO=eI(5Akc170kg%nTB%H^? z*-#1z3wM&Rd72W&>Ydr&htBLAI>Zp~zN!=J^WKpmXGlr&9NETXM|NYQBl|PU zk#z`gWIa6`S$|VU*1gq%xxR2D@4!s>I$|DQ zPh|3SMRm44Q%kUCR;%rq{Um#4+|!rggPb*enWW^qFmin6qmaOKSB`Z&~Was!= za7&;i>(|YavurI{a;pV%dt$+Il@`o(zXgj~XTe@hv|v)OV3TbvSi~=LcIcToJAvlx z$N_V{>kM@(1a$ z!T>#%Ce>pb|LL-T7rIPSsmm@T>auacoZ&xMmo4Rc9dA{1+3+eIc1o$kS`u|w*I*qs zcd!nNmFck5f7&elIp<>KYqM>;wK+Fen<)lrvtJTzmh)SS1y*XYFK4ybx*b~V`#dc+ zua6chwbNqu-+AtV`(^^AVJzS0 z@!&ZNv^1FXwK~g2b=G;0I@`BIo&6Y~&W1XxvxJ{&>~^^t`+l15CvlEehiPi8v!5Ds zHdbRgA2>VfiYhyQK$Wdpsmi+WK$iznRTk8)!hSwd;hbj`_Bl$0jh?Q;PW$maEF%@R zsO%ry4f_XH-aIG6tG_Tc{x3}G{TI47{sE06f8adlYYqC_4%c(qq2si62sUVk)WYA8 zxA-^Y+Wv-wn{6<8Z5!xyY=fhZet~1;FW4gg1$SQkgg-lff@P1NVDae(v?c$5(g8nU z!?#wjI@SvNN3?=!`*#?f`5j`%e}_}*-+8W?7C1Pq1%mZjz)krL?#t&3kl zy67v+wfxHc70r;cv>B3Yn_<p`)$9!gy5q37Mtkh118)Ji^s`JGSTzWNh*ICCb~t&i}2b9^MAM2Q$m}(7EUxbYAcdOibRv8?g>jX4OG&y*jv)_ZIq2 zc?(C>-@?1BTCfhR1$p}$@J)XMl3{P4^;-?(AF6?A{x#6}=`}1)beo>R?Y+-nb@ykWSMwCMML&ga?oVM*`4fm)^90V?KY{C4D&g9^O32dVEUz<< zp;zEzc>nVeY)E|sZG9iXoOcx~cB$o?Q-?w8~*I=Xt4( zcmUDO_u+feeHbO&hkY-~pfs!u-nx`Q{q=kBdci%uw|x(G^X=ZehxllyHUMh2AqJ_Y-dPr-<;r=XSlqINAl36@$XVdt?E(9+`s z411amdpINPj!`;%%S;3P0cl|V`ZySDI1VkG6IOQi7$grp2BY5{h4%2HkZgYxTnmoC zkx@s$;PYWv6vgu)IUj}}mu`{Bv9{V-6vA5LCOhM(h-`7>u9ERWsC{RI0Um-d1v+W;p*vC;9401OH@PPsK-huny>10}sMS!`+NgaN)s7*!FV-43mt2KLNvm^X#Eh@=!Qd zGz4_s4TkB4gW;I(AgGuU0N)}8g6io3@b^J~`1r#giktB6Wqu4fF5Iz2%@e&j%K6_lApSyg=o#C-}8_z%*wMSl!~WDm-2i8BTkHh0b~(b1JO{|AvU8J z(#?=_-3(ys27SmqtOs|l>O%Ef9eAg$1GR42@MyReTwJaR`}b(T;sSM$KU0H-->PuT zNfie7Re=Yke}$h0e+0uZzXjvuUqbtfAHow!t8jQ;i!kQ&SD~e$Nr>#)D5$LaA_QIh z%yS)n67&Xq5PENWC(OC`R#Dc}JH@w!X02O-?vPT!eCG|p=s~g2Zgx$m8h1rFv%g4K z{oZ!hd5Dgg1NQ zg&mJ~3Le&R!i|aBh4BYtg_;-9!W_pa;nnm=A@JxHA*y(@FmB*R!RFRF;r`Io!iKUH zg5Bs~;Y`J10md&7@aY`Ed&*4V(95a9-x-sHiEqXUr{|6lzP%eEbXzo3SpGRcNL$)p zc+l8K__3m=VABGE?;1a0$j|?TsiEG&qIP#-Wmsonok|BGG{Qv))o>ElM%xK1bgYG- z?dCjBqlqwSmw_9F!p$O+}oMcK+uGtVnKjwfZy(5uSCzBiSB{O&9LJSvslU0x~;t==j#^*$?2 z{xvK6e*3BH{{EjbY^l2F|6WV{JX23x^W0E;JJwY6y=NiLA7~@4ziclC3(lhdIal#l zmyTlm@h+lQ9!Y2q#0S)$JFxuQgCp=i31=Ur_M7Q+^-6n|E&7Ke;kFNTzE6q!@F zc;e|6@podR*mHQ4xJWxj+z9LGiE1<%wdn1|2Rpsjo&BE zAGBXgQ9URU9TKmGq>5)fj)*aJN5z4MkBjx=)5TEZlVW4(DRF2xXQ&BTqOvJlEX~Lj zi)Nk`58332(;l1`wPN$dq~1zV=Z7fH%q8*gyo)>^ZIO7Z;vHQAKagzH_aa{E;(I?@z_|gB5xTW>4xFJvl(>+!3l9n14zfwaK)iE_e1D7q< zL?3^i>(^czH@0Y__B|a8KcS27H|b%I@%k9%Wq`R_hCJ`NAyyU`A&=d`3-e7drk5!O zSeaqV7c<;>!yGMAEih)4CB7eOg_IKHeT@dOC1Mnj_wS z?uZM|IpLQWXPh=&g6Qjls`{?jwZ;`kE2TJjrwm8V>409Gz4pVX6K22dgu|#aR>pV1 zA@kfYleyzpV-M_D=Yjpn6NkooVb8hVXbV1AZ79cGZ{*lX`5$KP=!%vzeQ~jGH_X)W z!}2OWd~;TTRa*tTJP~k*2gBYf-La~oJI+4U1It5uV&@UPaDhv2+||+>5101AeFyvE z>ZSd#XCHs8H|vjE>-wXbH~<%IAINjF2VlL|AkE=;+fZxxM;vuG&{W&vyGxq5fX*xog22K&lmap>My z9QZ31eWq^4m58vuy@Ct;@h( zl^Hn1HxvC6GqFokCbkVfjbhemoTHnCZS%8m)AcN@cge<2NzS6drn9*A*;%~T?Hn2>p2Hpu=WyJRJe+(o4~M9o z=dlOpu^!Lk5z7nMW5or$arXkU&iQyCG9TYo=OfQHh~4)VU_es=_8O{0$w?)CQ4#UP z6cGm%h*)WYI5G$^?*^i(gph?2PJcwW#H$eJ#TMe=H-%{3<09VQdl5q#FQUreOSta% zC4Bz-5_TF_gwu12aI^Mh+%fYqZo$hq)9ebm1zo}F;w!kx;VS2YUB$Kcu3|-pYiJvG z4F^?T!`WWNI6t}=$5t1ko8NW(wDUUdt-Fq0dfvd3NjK22{svC>FTwo>OR%uH1aA&1 z#mh%Z@o;M?E*O3j?b2^ze%noCqi#++{RFqJGf^29h{tf2Ro_V z#g`NA;>Mi2sG)w3$2#4^vYdNpqF#n!^6pbCb9#n%mp{Y2YtL}A z#dGwX{~RAEpJSlz3%oq}1)62Qz@dL$;F1wlxcW#H&TXo~?tNe4&xDtl`sO8e=~|5` zk=58*QH=`OE1a?F6$W2_g>x)kW1qRNQT@Ve%vGJ9Gps>S7-YSE8#>E77A#np@6VuSK6j?k*Zq`*47a=Z>Jn(FXwuXmUg_YRjoe~0#+ z-($||_t>HMJw}>*z>;Ynu<7&%RNYwV$y2^-q{&@);|p ze#RdepHcPuXKe0Mk0o*SxaDa*y2!rZsbyc#yzmRo)oQ?lqZ_awr2&=i8}RUdjksu2 zBii3=#B*kxTQ{unJ9gJyhX`xTGO`HKEIJPxw;D|YYm4db_c z!_tS}@U49dzMI>E_i|cre`^a4?)@FBW4_~r2j8*4rWJq9Y(+_CD|$A!q9b4Ve+&PC z**AaS5R;#HZ^BRXJ@OO7-~Gfhp1-ho)i1nQ_zU-|wc(_}ZTL674Pz_Y@Vmor44Cs9 zH)j6EeT}~{sard)+0c$XuC`;H)*lQR_6O?{{vdn8-#h%pgjs(v@#J4z^Z76K_W6gO zSN+2c_zxTZ{6ndW3ia_isM5_4RhqC@ zm7W%;(vYXBl=DlK)a^O@u7?^$OjD!mFg3b)M2#L_QKLsSYIH+QolZ*CDU@^Zde2j* z?@{WMdQzSIO4aG=dv)rmqd{4nHAru;22Eb1K`Glb=zgXKeY>SWx}P-2L{F1+-8AXz zU>=9NNRtk3)1--+nxu7$$KZa@Btb`usFN0X1!&Qp`C9ZbN{i$tv}nE?6J)cd7PDmFS4<)=gKfjTrNM29XW=#b`F9qLo2 zLqYXA6r-n0Nu70R&p=&@n5#>(B6R7$qq@{`NtaH(;4#O)bg9}(kLLL5(X-Kd)O(p8 zCCBN}t4uwzDb=ICZ}n)Zsy;1n(x*Ayd2I7Ueezt*8G8x(gt_{(=#D<=e$b}_8U|$V zVnA^{4XAOF0rgvBK+%Z?M7aj^>b3#3yfdISHA8B0GNdQWkj{)Zq_ryz$$J;)@MRj( ziW`RX`?VphX*ZT?cXM`K#i z*O(+zIh${dF^x>%vE5n5)ThLlj`CRV<~C#MYRNf$-X;`1*o2bjn9zYuCKQ)!Lc!-u zsP7#UQm-?ig1;s-$%eD~C#!qSZT zd6`ki05fWvVMayk%qS$mjI2+aQPwpx@_u1PY2VC9+rXTr$js?T4|A#rG^Za+%th7A8$T@!-+Re$!!h*`(EohFv1-+YWK@(S65N)#{gJTvnLbRap`xbQU zodxA__TPC6&iQk~uI zioSytnU1m|r}q|9$(lN5T9bQ`HAyP0NrQ6(pSD|5im45a>}W&H%!VRI+K|Rv8(O{2h91Y+ zknETZ&B?c+#9N##_|k?hHQNwr+R_PITiW7jOT+rwlGZp|I>Xt5gErdIgLwX$#yNup zwxn^}mWI5vrOi#Yl%{S+1y**1UF;~UhaJU@w4nsqeTbps5RS;LN43U zt8zPHZ|!Jns~r{Ta5jRSJ^kY>LapBR)IQ3dYG&J0!76(SjkYJx{hUXbX-_i??dkPh zdm2@3Pq~f!I28v1&RUo!b)axx2iiWsfg;B{(2@lX9cgKtBblW*(y1&* zaxZkG)Z32q@0lZw{OCyWKOO0kwi7+Ka-#Pgoal`&=N$Sw(TOomv~-peNtZj(tuQB= zw$q7f4mr`-(@u0jbRvyX&XsuVL@R2YXjiin9r))&dkmdvqrEc)c5xOz11 zxzHY6SF$m8r5z5g^reF<_40P5O@b?B^>w9E&H;Hi)|Ku|b)^gQTxol-D~(+1O6uXR zbRyQ3{1RNL;D9U1j=NI$X?|RuD`^(Gl4r3i^}oXzkQJ`f^Mxxp*Sb>ECs#W2)s?2T zxzaCHDQ)F!$Ui1hnr9=Wi_TI~?Ia~%FDZ@hCZz>Eq%_}ON@Ise$(yrE+9pWp{B$Wz zo+qWIAStb0$=N0AI6rc;lnz8m>B$Z$X(UQXvR_JWho$72E+yU5QmW>x$>aG_3M`b; z_ba^25-F+ORRhQ8&9T{~t zl+jsJ8FjLfQJkHOUOUOiRVt$~on*AaT}ENvG79CqmAMKT_3SPqjovb%elnUqP)1FI z`7y&~R5MCOy#r;mV}guICd;UCnvAq($;fc7j8qrM=RvAr_N z-p8-MUq;go$mrlf8I>O5^+=J?r&JleIV|JjxQtSc%4o(h8JQlJ(K#-?(>RZlOQ&=h zZQ*i@i^>TZb>Jd!VO-p~=y7?%f7`>QCznco&U7vn{2Bt6?fjZ|`L%!ZGVHi?}E|<~Dr7}9TnDcPBPG8KGQ5Dzm?dklxDKZL~ z$d4Jv>pEIS!6RhUGDJoT12}KgUq+67xSo3O`zy#O(^p3MKD=BH86D^>qvbLgDI}b& zV=tq4Yp!E+867v`I@6QUGEJ^86@CwX^ZxfkO7NBQPQOU0+XpGx)=H`VrId1?N@+T0 z@cg+arR_JRq*W}X6_=!RTgm%i9`A$MyicB#Qp8ayMIDsVnj~%qoR!)kmiNIeQi|Uo zr7o+v4FpTceW8>RXYu|&SxO#(QqH)Q(w2czO6bi+kW!djN>kjV)JZC(8hc)zg_K+j zrIev5CC9(6w58RR9yPd<<$G5e_{x>$J#nRw`>wRClyiSByAn_GK!0<&U7zH(df1h| z?scU#J6-A1R?c?a=t?Oeu2i+yl{45}sq-Yx2^!@}-T|&;+lwFT>q_MAO3Phc$;#H1 zP8;)QftD*BZFeEnZ!R?YqYK5qa-mC)UFi887kYPNCKFmNCwt^>(5CGXCtcb)hgL7n-2%Le4)W^rT)w zn`$_>wo*dLwrVW=1g|`INOMi4<|P` z)0kjqYT)C>`mxT`GQgRp3C>jD=1l)M>&VZTe^zy-kZ(@3u8xmWoO?9-mJ`Ve`52bX z$D+ed#CCIb?-nN-8sbESbDhX`yb~=5;NzO$L=U?-QG=Zmwdp(2_jX5m{l$@}+L0pf zJ5mqM|9yMbkv1N4B=tl`3XR~uuXH58IgYe}bAr$MJJO@Bj`UvYNT1Ce>7}|OUHRrf ziM0+iwt{n%iXA9D&w+e7OX)&_14*|yP{eWvDxcv%#v>i5XDw^9jVT=qXonHyoA}2MrS+fZppb!YId}? z(Uvw<*-{ASGfm=iA8$SfYTUr0O#)>vHDV@*5cH2<5jW(pe(1yx6!zre>4SBiS&~+;t8meYP*S=U&muJ=#e%+c% z&sfvHgVxk3+M0T;u%>{i*3>(IfBw&!R2;48mbNuTezhWxmsV6#YDJ^+tmsaP75T+j zQNju z?O{ntoLk*$WJ!a5TF{Of3o5#8K{e+ss5Qlc+M+C|DcFJ@Pq3iuJ{ADpKL6L{9PcI*GJax0d6!HmAl-!SZZ{$S6()3g0$)4yGNEBI6TZgce5od5dQfRh z)fbKF<#A)W7t5L9!N#;D(3tlXWBTQ6Oh+`0$?vlfU4CFhLV*#b9WtVS;YKukz7g#h zYD9%TMpR{KM2&5R^zD@)eYkE&WqfUPlCP1Lg&30CL_@0VVMrk^hNPxtND-g-x~hz` z&d(cAcCrC|-C#gnW*X4g{sz2naxRsD0j+J~9I8k96d>wzrnWx4+^kP~=IC?gr9M4$ z)2C@h`t+<>j{+X+(MeH{ejL&x#u@9uv-N2206og-tVad&^`RhQy5bV>ic4z0hXL(j4}yK0vXEnBWb>0@;0uCET&S?N&oPi<=C z>(*+%e!X&7o07t{Y0_+MGUXhr!VcOrL0g;ZK4{Ur+gkKAON%pM`8qgQi>gLyk+ocl z`kQHSCY&a%d8A39`I@wRA74+e)ugTyHAw|D>58o;t!&dEs}~xSU8q6bQZ(q?Mh$YB zra@snHK^Q?|Mpj%hF5dGeUUotIjl~{!_+B#x;pLerA}c^oPqUMjil9TRC7s<5>wTv z+a@(WM^vLgzDIDM?-lg?txAWVt5P$nlH!0WEnlZfDHBwQ{8Z_Vr7GQT;d>4hDx7z$ zLU9QyG-bI8IgV7Jhn^}FYM?@0D*s`B&g>sB>K}R-{=;9l{$h6YUmW277q9>OgIzBE z!By-2;0fP9c(JJ+DZ3q07q;^pA?;}W`Zwkt`i<@re&a5)-}vNS8)|QBL&yGYX!q|I z{=r{Z%J*B=djCSBPd_m({U;Q!N)(o;jXja&}Y#%6kWby=jUJfUi4SIG~_G3 zQTvKbToZ3sHsckyW{iB(gkA@m@apI$?5^8{DOVct-P%U9_HIP)cMa&1+JH8J4fsK? z0gqn&f_>I~!BVd;sHm&QU5DziY;-+-*RDs+qR;pzv*pht2$j2XW*Y*#%rS}J%+VY<7NxjFr)86AOv-kL_Bw!`7j7_<`q;xOV<6MlX1aUG3lE&9Yhyh^WOg-D>gQhc^f*Z*c0!H@Hyk4Nl9i z!R`xdP~E-;FWh_0bNjr;hyT6C-gU2VZ}KaAJopv<{auZwxz%Vmvl_pdR%3DTOWe5n zB|3L{iCIsp&~I0yUBA{+(iGnQXG;{iamRl zqQl1${E$?FNBWeYKi{){lzan6`SXqRhU;i_@H&nfa2>;%it)gqVmvyq7?YZ>;p&uY z*e~E3wl`npjIyif7jP8|ny;WVh3}USyn@9|m+{BJ%V;y;GIne%Ldk(5)bTIEm-UzM z=)Oxhvd<-~|H$*V?74_v_`dw;cZHZ1Ux>9rA)34)blXArpD$tOmx%h&JO_*y;=v~( z4h$FZb!QP5mMgJ(y%PJnDsj*40?tM%;LNE4v@gy_Sx`PYnCGKf;RURmeS!NTF5sZN z^Z0(!d0eG>9vd_AaMGwe%=>W;e;z)EUIWkJ=r3n+Zqiwt*ZnMxdvgZ6Zaaf2K4`r0O<&(H~?nykWdlD)41YQ_>0#kpc z8mHil=mW-|gld<5#K4d%g;W^KJX!Bq% zu3WhnFIw!yUj<3nX;Kmf{N96;QupB0-g|INO(H^MBARtb#Fr&JPtw8!9ITgspR;yj z*znz`(HM^#cE@9#JRbX1?84ovc44{YF4R=+M7N1M(f?N*jyM>HL%YXe_o^M}v}p%^ zbKHT2McZ-BjO{!h)ONgnbQ@0SyA7*rVsS!5EEc=QqO>>$SI>#TLiHH@mKKf9{iCt> z+bA5pH3}!lqHxspt=uoX6&*FUVsly~ivE!pQX7FTkrDj-2%L0n3%;4P1!t;m!SbWw z=+`G49WQT2<)1JVdW7Ne&`sDPZbYvi8*o&&4LBtv6i1v}k8X|Yu)$*;rYv5I|7EPf zvvsS{M!Fgo&0K|PsUcYMd?i*`uf$t{D=;HrIj$&MhBEzScqJeh2X0-81y`1!$)6w$ zgdmJqy%-OkTZAcJ7UH%p3vt%G1t>i>AMaPq!v!|;@Z;FII4*t;=G>l*O`5aOsqZWl zHqOKz${FbKbvkN$PRFtZ({Ri2sp$N23T9eQLFX}(aZB7JEGwCaI;s=VyZZ#}yLvol z`He&OkAbKz4aA#M$Kv{ZW6=7+Xgsbv8g2bYVc5oz_#l4-8aEEd9-W8d_*uhn+QFeX zreX;C8Vo_r0fVu4(;y5k2tb|2fw;TVK-8K!02lA?kCz_!<6j+r^z7RYhpz976VLU* zu^)S5Pwq>%n$!!cclX4-H+x_Y74BzObjR__7~Vb!+}9-F7E1xI4^v=kq#xQAc0>2C zzUbM-7bP>hqFVBQ`1qb2_w(Fp!@B!m(+Y3gn&E|duRJl_(i7he^}t>c?ij;~TUQ&p zV7;sh>P+d3RtcTZva};={po-o{_B7j7s@c=uoU5uE7t0|Vpwk%G*~UcxYN$~_mvaQ zwsb-q;)rVD4%j>29+!Ty!+2*qObfKdtZg=UqR1Nee6!+teyniNG)wN+w7}aX=D7a1 z8QS}p;kmh{*!_SBiua7sP0bj0`x)V<#fB&xF~HCYeLSbFk5%3Euzi^>nx^ZZ-BWF} zHPA+bK3dokqKW0FG%)>zItCf5V`qOge6dCqBTuVf-;4jmh0?!b==OGTU2~f_d*Uxq zxco!>-Jw;?jB61GeETZio761!yV5A8cWe;9#np>G-#&>`CVdn`F25JocX%fT?|3VY zYJMZSPN)&zTzn<&cC8k@Vync$FV98A*k@vz_(c5cSSb#Pd?ZGFcqpD7UM}9vyDvVo zE)y#^-W9Lc+!oUY-V#@3m5SX=O2m(=u8X^#T@yR>x+>-#zbtmqE)tW2E{Z?zlQ`5D z#f1Gz@lJcb_+uuI%D9myx_3DzcHMbK^lHu#oyKL0YIs_F;gBh2gr5=@zda$k3`!U8 zWgQon86Ok1LXL=gDpN%(mLkTd9u)to91!QuO%|_|?iJ15lfOy^VsXXRlG4j$7@o+?d zcs8KFc+sG*c%{6jcxfLKFHBL0CnUb&?m8cF&1p|@!ZJ7UKi^KG-Y=>6@{&Z%iEtFx z2iS@J2G*ipxw%-j*F;R1Y$%R)))P(NYKadr)Wuy(Rm9}EZA!C-Z_49L8bDnb8s)@>s*r7^UYA@y0b8_XD5}9(|3u|R?lb*7detSV< zw>JeXGjA4*h|4Wd6O#&DZmur)E$LT~9BNeXJu^Q)`-(%pbI$giqup675n2x zD*{$bS7eS0;*^?oiYvP!6zf&CDRfuHD}rnHDl!986nNvfBE>ILG4|9MMU{1dLJ@mW zG3Vzs#f*iw6dq6SD@p?@6>?>jVo}FhMeyE_iryMcimH{Z3jdmRMd2w`0jo8HLzX(i z>|y$XL8Osz5KRUBCJSLkM;l@9RC^&O(Mia-=^{k_l?i=(I}0xtxeHT{cnSDOF0|@) z6U=)Hg7K>E!l#U0LfXr|0y7&RoEbPsP~9+8@HsO==utab=wLlg_&8*uuq|wgppiFS zm|QnY*kLnI*f(^cupul+VCRB`hqWsNf2-9(+@N(rZs-OfBRfp!*%&UE#zqL`lC8o< zj1tVo#0Yyn#R~r-_<{!rW^ag2trNLR@2(&=!>=jB+?5 z#O0k8&J4=qx;ZaotjZU{^ppZSDhe;UkudvCp-?vSk|1d<5+>}pBCM2L6GHNfg^5FM z2rjQmg!>^kg;_ech02sWf{*;3u=GZmuyfJ_A>m88uy#v@(AV;@(2!9nZ0hk;Xt@7O z=r`wuu(q{Ih~HK%#5%kd=A5Y!B>ifIqDOCq9t++HDZkzeFL!(t{yKgZ{++28YWg+^ zX%&safO*YAN$Xdkb8L&S(6&{GJ^e$7>HbTYcehP&oz^Z~`tnCmg#8l+#i+oXk*cuN zS`FsEQiBnv)IqjP13vj_Lh4^l=u@Hv4|Zz9$ZMkQl9cK&+98AEe)&z<(O(Af(8C3Y0L!Uq9aG=-%UTw1k?xzE}l{NINvIf87 zHsG+(78*S5Ap4sgOh9}166OHQ`#ZubT_<4oonT9nGhCP?frm~mP*v*!_j=PK0Y2;l z=rM^wsC{=h`m#IZ9_axmXZ3_=X)hRA*9%ln^@c+W`+%ccUx@kK7oKPL1Iu845WM?? ze^Y9zo_G%tWJISb+6qDAn%!(zB!vlw=!27&jaC2+xFDL6e? z3PC%9;n2Wka7J}Gk9AlMTh^|C-v6zH*Yzu5?x_&CGiw!CI;@6%m8)UQ?lmxA$Xc+| zSO?{o*1?js>*0e>C7jYAbaXY$g|u82g)|VoR}~$>a!VAer|@SiQ$lYAsk9g zwm|ukEpX@N7EsC}U{81i%&3Y02O$z}?}>zkjXeMPkgc%h9?Sz~yJ7N2aoiM)JE-;JV1w|ir!K8liPmzo9L&k2HqnZHwCnxY2p9Cm3NQ6i85}~9h5l&g}fwjx`fZwe>Q0tNen?rdX`HCdi z>b@81Blm)T)n3@6(4MCnOc1Spnsxp4xdb|;}d_#_k;pM*6wr@(6IDM-6|3LLC5 zAYyR_JTA%rOLNYNTaXEp3o~J+@o5-6=QQ~6c%R>TS&%n93&!VV!8^@tm^~>Q?qp|! zL?s7ijm?2wCvza6W$hwM<5-GyJ3K2%gIJSKiLe_PTHMStQFqh!K z1s+?aQ3%q&Lb#b$2ot{*!oz+SL6LY7VrnkJHJ?lHe)ALZpc_yi-heflB_J770_P8xfY0X=NLG}>`^Zvo zc~A=d9d5$tg*PGK!cFL?atj)V-hyMvx1dMuEx77+8@xkrL-dW?+y?JJ)08`)e(DbV zYrX@uJ?_G}n7gp>;a$*iyax#j?txm~J($*h4~`DxEV|ugP{Vn2uVnY3B=|nJ$NMl` z?Ey3leE@6sK7fza55T{3IYh50hjUa8H`E`()nO0eTWfd@7tbjt5 zM_@Mi5sXfF1nZtXf*6;_Jig^IOh5M+I{bPJkNZ@@lGsY9zh4Pst)D>J^e3DX_XOJN zpMa|GQ)mi(3ME&cLX^%ka3A>$aPKqlu6hP>uFs)-;dA(t`y5QaKL^9^FQ6&>1r(ON zfTadipf#onVv?(%sp@}{&O08f?+@VS!!zvhXm6S{J@<1eE$#JfX=v}Eq`ehUNR$dC zQK>|s@Z8TSkxHSGRVX{zd+*kENSE&}PPBCvi_1Wr9g;61AtJT4c*!Oz7oN%R-;m;41gkH1iv`WF`Im%t6H5{U6B zfz+H5Nb3I&o^SpKb^-rjV9`H_7*-0Sca?(clT!FmS_<7G%Rp;?8K{SpL1|?fgpMtT zwFk?g`~_p))s#bwX$2_SR>0`63Sb8|!OW}@M7EWX%-DBFYAT_3Tou?Itb(M_Dp0Sg zVl299FyCJdBZ8~hIlyX&GOmF&yK3O~qZ*i3R0H0FYvKFmTBz`=h02^-NHeMff2%t9 z?^Yd@rq;nut$IjUQV$xg^#GsiVX;aB9v8?(l)TW!sI=>?reiWQ`+I%p?28vtQ|57+hIb#4miBJ18%u@ zfL}rfxb$|w2Cfsd>^dPhxD!l@I>DuH7yMY+1s$$kApFn;T^(JJF|ivw_IHEn!)|z$ z-3@(odSKUr9=L7a1J9y+AfUPj&JOQoOwnG*yU`1~zw||kXqXnepn}AF$5fHmB0rAmOBjKaf2%V)y zqSmRAKwC9(!C8$gy{|?jk!mC+NsVkNR3nY8YUHG*I;mpk*H=wdCm}1?x%NHk#PotX zS$|8N9DlA(9OBf;rJw5LaFse)p(G?jjfA9RoRIj;5t8Zag(RJwkKb@vNK$=;goFvn zt&c*Imn|fHYuPz^6%pClM?{XAipY^Uj0w0-L@W=Ah@pdsWZw}H_Ye`87$+iMGDKu~ zxrlu377;UDF>x^#lXM~`nv4-hc8H19Nio^!CMMe-h{=lAVlv^gm?-@glaDoGazaT$ z`WQ;c3&stcFkM2P{wE$NRYLGwnj5TmmgM>ZSAc}GgVwtExPX5*)_o_8Wc&`SD($OR# zj7@NJiYD1NUz3bquSv@GYmyu1G|A}ej6L{3lbA+m5}$ZY(v+@AW|U}>b1jsd|J~YTn1&8n(qD({8KXn&hz_w?$oPfp7|UUg4(U0rL-4W=+2y4}lpgAk>)|>? z9IHc4ebXU7f9sH86*^>Fn-1|1=#m$V2k~~OE}`RfNw9@3xw=G`tlOYVqe_c`j%ldZc}|9&y{IM>H5O(f*7cDRR~$Q@r%Z$p?Dmd59kQCf6ecAJ{V~dMs~x1WWbE zwMIR%yjPDXiS@}7Lwy26^-0V)eKMZ$FT5=EN$GON$FOF6#ohYklAS)eeNLbFUePDl zZt9c6_w~t~XZl2qaTjR}3-d*v)Til_-D*H|_ZyHP#^*3OZ$R!k8<1`f1G3!LfZTj&Kt6^T zkbjW|q%FpPbR-y%suTnAJdBw%1j?hY^{6(bDE z7*j*C(cF-nvoIv?^O!6%BY|f$@(=? zlD0ugrfy}tlU-7hyI)ES4ok`O<5IHbjFfD$XTO(OTrN_ge_cv`-;|OY-crK(Ny+yB zDOnvPB}u_jGXABMIK5)m(NfY&rDS-llmKH_PX8<=6Ovh+DN<6N#<(hsud*daN|f@X zXee=9w|vzG$OB6jEJL}5t$=m%od3e zxv6DDhA?K!1AQZ+DK#QCeT)e0XGGct7!l*aEZk5d^51YHvecL{Uq%`c!_h{hXp9l@ zA7?}snHiB1#(c4xXhfj`&N)Wp4HG3x#*$&OnaMFGXP6vjvWCeRCUq>#VpN1?@1~Skxl75#t5R~$QA&a?NXdiKQsQz<+u)ly={+OO|IDQTR;+Kz>koaCe=aH5pF87n0pjiuz>U@3XlS4te1J}l8>=`#HY zSCo=POkXmZ49PO4KRnYTU8YYPnO@yt`W46YEQje^3DdiLrhiFH4<9pqv}JlZis@$t z(^FffuN_Qpk2C!(V0t|DkRiFk^g5pDcMa2X;c`P_FrVq<45qux4rH4ek|)N7Wcxrv zqGf1ELN%DZP-VQJE(0>GiSdCdnQbXDAd(ydLQ)OLx-SM~Ppkpi6>UIPzc3(^9vcv) zdj=%_h5@m=YCv@C4M^Z|12WWx*{baZq;Z`Av0QFIoaY)4`BVdvJ;8ufni!Cp0gOYW z$84F9aff>KiFLC+(W=xZuM70af}i^2YqCC>{a&9ujn*gKAXS2f^huzbKH)Fw zlepvTcfURf*rHEPuV!Hv>XWYN%x+KACo@g-Npe4ZGEZBdyi(C8n(caIL$x09F4QBR zGMUX!)FbsVj9C<+NAiR8NUX0O@o;Ch|B@b2Jg!F`?$slcH|i1jay>G7jvl#g&iap0 zdcL6WGq@zoUm32vGvkrULI^u1&)9wMmGIHt}uJ zA}9Z9k@*=~j2){*@U<4PexyZeZfcRE4qBwlPKzwtrbV9o$L`J0A|_^9WaU7{MApzE zXSy`W$x2PKJ4chuP1GcYye7$dqDkCtYZ9}|n&jgVO|od4CV9V{jc+U%t7)tz`QBHP zh=iI%)~Z3)lxUD$=}g{hkhNhNgxuF4nr<2-Bm>lyLlNiQ!YCRz)L)kcS1{*Ifoyx>SOf2-oWJs@wG*>XT(@!=A zjTe#rFGVEUS48GGiAdaG5gETxL~bzdQ}IL*F&QW#n}j0b)FdSS`9kt6Nl1dCgv2XA zNRGM*iRB3)QQIaYZx;*64s#*t94sWxVj)p%Q75(q>LeveoeYjrCp#Xf6CW3K^6scQ z`L#)%6wX&Cxf9e`yJq8SRdsT{R*lTcRwFI(j1?8i7*TiBNW8ronYmAmgsoH~+SAm? zjuC3)nWh@aZxs+>p@0le5|9b61!TORfDCaG5YR`fO)4byj|zG7QH6Mis*v5c zREY686_T?Rge-y=323?*V|tVALtjCJ0qNOoo` zlHgcHQW(T|=+_j%rezN)9Asfc2 zTA@Hr$P~!G{t9HFk^-?v>4hJ@y)b`gFFZ2sg@0{5p!uN(`n&gl_SzmOAKU}M72U8b zvKz9`cf+Fj-4LkV4Y}D}pzw&zLv6aCZE_cU>+XcB37s&?qZ7i{cEW(conTki0nfub zAn8;G{FvDRG3p)Q@uM9U__RaWmUcL3(hfN_Z7?>v4R)Px11HNia22<~$+T8jU0a3%xr;$f)-fuwHapKWG8RdHAC8fW;jvY1PZ}TaO6-EBu#1p zVS6Ktf7b}p9UEc7f<};NG(t*h1Dv|k07B~qxHPB%3X1EQPl0+^ZBq|>$JfKoraD-_ z*MZ)-I`}lB4mK;-L4HClEO4y_pQW{sqFoC$={3-Frv{4G*8tzY22SKxL%)aB@N{Q2 z^f#%7Q{`3gHlzy5*t$iRSrxR_SHkbtmGIE0;iR{9hREz*t$c{=$6bpI}OCF=$*UhHuk~;Y4Q_Xn23AGp!{8{RRNR_4Lq@N?8} zcwdqOw*zxv)utTiGRlGL8H}annGLp!vmsWH4ee}QY{2;}7{g`3u*P2?c=-#`_WlBw zVZUHh-cN|~`3a*}{RCHypOEo66Vx3t!DLz{jBm++;o%vev_Auqhh>0$ZaVb$PKTiX z(!ofS4ktdOLF~CSXqdwMP1L4BpJ%C{u`Ly&kF?FR@gf55G-6c9$G!2W|N z5H%tNs&c=B=AG}*Z`pUy6MTo(m~W79{2N>x_YFpre1&MguP|}-SGX(w3f1w+Fy>4$ zteKDu2g;Jb=0Osyw@QME8cERdArYRONrc%G5+Skl3rzF>0{2#bfq%@`#(?*qVdlxt zuzcKSSX7(<6MPduWqAU8P)UG8^b@Ea{sb-~K0#Z~M_BFo5$@0Z2&o+(pdsu7DD3(G z?R`E#!S{H0pO4?dB@)CJLuAV2lo0rFB7jK|)>l-N4djlU6 zDBL{Gwp*vM8wOjf5Q$k&v)G5~TW(VD;%WIG%V74@_Rev#eJT!2GN@Gb*@sWdscH zi-43R5pbwG9J*eF!|Bc8@K-Y&rpJbXvuzl}3<`syl$X$A{}S5GUP5L53rO~O0rzIS zfc3SZAb1c850{0)xSkMr`XU6hH-*4nNeG0!c@F>fKL>H&=P)=i7>1t;2B}FfbYwn* zua}>J`=n=JQS=n@JfFg$8Bd|Q`U!0GdjfA3Jz+K`20Al57Z{``3W z6)q2;-24G#75jtS(;u!(_h;Xw?nB$1``|n0K8&gJgO`4OFl3=0I5*#eoWOf9c-cKz z+i@2zJh=;Z*teGe=8Na`46toVzF_v!2ddZmzu$uP--0lfl8lJFL?g2Nqc|fe#19GFTL(P`!&>*}HrLWx~Ws^GutGUC8 zh-)y#`WlonKA77}HyFB(@xc_`z$C;KZm)KQmTnhV^wb4z{O1Bm?N_1o;Z-nPaur54 zUx9J{S75~aE1+HH3^hK^5If5mE>}3gR4*s^H`NI)|Gf+b?w8^2l*^!-=LqMW9pR6u zBbfejfMfQI8D`=DIVqQ*-)*}%YU2Vm^W{V=R^AE++a z2dTIAf^*>>FgD!-5odOT@#kIOq_+!Fw(JDu&>b+eZ99y$+zvxLw}IlHt?<=kD>xk8 z0>ffALzrkY7+Y-um%xpXRb>sjoHcNc8(`u0^)Ro`dNA9$4phR{!l!mCIAUo9VvjZ8 znY|j6hOdULhgLxdzY>a+R)Xr%6=3N7ALtb>hwjnK**D;2;PY-NEL2|#r7M=e(R+)b z>hB_0X}So4PO|UEaSOmev;Zcqnh(?b=E3BWxzNvaF4Uf|goxNVuuXjqD6E(b?!L1? zy=W#J89ft{j?4g^Hx@8o*#ZtMo(}e2)8NwYsc>Z2R9Ja{EkC^mDD2?CV>Sn4U1fl& z=3w5(93F0+0zFSB!=lmUseWtQ-$LfA0Vo>?7N!G%9vuK9u|K%<^n*Wh`oU0_zOdnYANHR5z@v3W z5P4q;e32o%G%*Ap8v{5Vp$~Ig^gw;89>m(~!oH6>peED--=%Dy!c8sk{;3Hn{WM|M z77d_}B%oX-hM8l!Rxzh?6+!m)aZi*%5-Az0&*6t@HWH)%H*3P6j4& zwIjZ8>z*fYuT4L3J+D4+Q)Tho{x@-)>x@{=??Vh1F#j#*olH6V<;Yp5%ej$jqq*{& zNbdgT*PLZh1edofoUgDxlt;QxTRMD zx!s}w?wGqjcq9iIC5)eI&fj}7r9=S3*3$CXE{T!Q`|N0<6QH- zBixDrTQ1M(v}yTU{ocn6b_- zC=cZ-1%tTNqW&Ce^x^vI7;>ld^|*AYHaDi926u6wh|3tF#*G-E!krkY$hoZTl8xBh zB8%HuC);qKLe^~eS9ar6p3KxfOZLqvO?K$oSDC(7f-J^2PIe%G$_74-l>K_~Qg$cu znQYUWhq5v8eln%RJF=n_PubU>uCln?%d!iJ=Ve~M>}2mtcFBZI>t!}d%Vd?>vt?HY znak#wj+PCYK2X+wiLPv#wLsRJ(PW<5_{Y3X_mlaSi7(6tt-Ni%@9!D&*&`O4f7{*9 zeE7;=QPO|iA9gzE3pOpJQyddMKS7-9qF3jOq9-GHE?_0>9+_HrKwR$G9{zUd2 z-gku$|0L0uzd!39e;)n#c@zBkwr6br=HNhH>hq9y)OyVSat`A4d!F#z@n`(ps$d>= zgzyGAp?ubVFL}q$VZ4Dw1n(aCimx6W$xjN5;ALiQ3TXnYZ`)t~H z>)dvJ?6OWi_gxonW7fm}e$dP7Usb@-GZoRSO%aEME1_VoGG-4_VP_juaFK^9mdz93 zi5>wqM5*D%gX$PHT!`Jjg*eemgjS2hxK~kv`*;biwbj5$#+umuM-!vGv~a^BZN@{= z!9#K#{Buy3adhdOp`%a&VaWzx%zkq4@WyN$HrEG!6A}#Rgt{E6_I1@iJR$Jt$S!@seY@DAn z8>?OC;Mu8`*idPSEBxl7&ysnV&@~TpL+9h~jSDbdvJgGrF2uPui?F!gV%(Fw7}L)z zL6gx-aa;CMbY#A_ugR9|)}fh+O#@>MA5S%phNSL2ZlYw&`) z71~8x;liD3QK-8PU&gLOIJh34_uYU>UpC;3ZruBCH^$%CgNoDl;_$M) zIM!<)8d>beva4NpDuIRhg6(&h{qDPA zQ;i!=n|Te7-MEH+Mc454BzMHi?iilwj(3c&xWDC`k^S=52KXthZFTfvr*!iDn8UDC$$OCjd^Z?!7Jitrp0l0Hb08V)r!0ICa1EvNdxf+P? zGXl|k$V2o!_z=tSAsP!F;eRV1;a>koc&OqLZZ&_5GaVkI#`nkgxla(=8Y~(lyWUUBENERQU`ime9$V#F%~>Nyv(C=GLQf1AiAtY484y?ixDG7QS`B; zxF?F@&`ye-eZ2ldt7TC zkMwjr3S#1My21y>pZkFOoY`;U2b?bXh=S!G5pR4%tBjABYxoJ5t^b6<_da2D?kDU& zH~}YbPeAj>2{`m$0=AlbM)|(axHaT6HdK8^ThlL?VfzJ#M|{Ce4PVfHQX;w?OTMTCynQnrvs2Phppk+77iD0dD;e1P zAp^fFWa8!NnKLkveSfg&;UDz;^9S_|bMeCRTui;1i{kiP9NU?TQzqx(h=Y09 z9h8S}^YU=JG#~4h=QEyRKE993N0s(`G@DR>v-TAr2`s?A*#%grU5K6w3US26LVPGM zL_uvK{%2f-4x5Vb-mN0Mn_PsKl!|c~6r=LtV)TDfjDvHFnI8Pb?1g_(>*8O=9Q}(E zs{UgCp(R+owgiLROVIK|2`06bpt{?#=8a`zSQ7__8Qzex)w)T*J7qyE$)3=iv?A+IAcH^IxMZj z(DQZp=0zQb=hmUCMm;W?UXQgl^?1gw9xIaTab{;do*mtQe(M|X;nfComp9<%e+{T_ z(1_u48gasrM)VG7#G>zwsMp`-2>iaY! zd}_wo4b3=VPz$OqX~CFNEodFof_bSeIIpJ#y+*g78o8rXKD%)1+>$9Ch$(r(7#?ZM~fJveJ~57UPp9PpwCw`KI8OJ@(>9@>k} z3wzP}a4+h6_hLj$FHZW~i%V1$sGX4ly*fsLdRiz@w-pNX)J_Gu_9Wv2x+>60KLr{P zra9rrq^l5=IjjU6quN742V{H}cJXnRUAFo0O%~YX3mow(U78TmZ zR)q##P@zMwt1zB{3T+5gp>yA=P?uyC8k?g+|COuI-ZsW7RA*d5sVZ$8p-R&xtI|hv zRO#-Osl8(h&@}+!uF~%9*=+; z^%GFVQH}yh?Y7X+E1N+Fjl8)CaTly z>FRXZLUkI+_=%FO?A`%&>TyDy(o5>}*EPni@K&dPAF9*L7wVMJwyEm}7M`&cRkGFT z^I~;6yN2;C+SKVhWg&f~A*5PHLb{3ZFz$~P((mR%S~pWjl@|-C+8QD4-Ylel_X_FT zBSPwQPDp1s3u&c?kY4c>QiDfAdOMV{G@^xccdU@&7Z#rJHYPGgdbnChPqhf? zkzN+Rx`={~hzk0O=*OWVdTfk{>N9@hlW8J4iZMIxFBMTGD-m6{SwsVNi)hv%_V-B< z9l*FAqppaku?Gw9EuxM7BKqNph&sI#QCYNz{*DpR!=FU7<*SGu%n;Gc-y&*SETX3> zMD#UdgcP)i7*|b1C2C?SX55f2eKF1JC#DfY#q{_nF&#Z#On;a&R^)Ust(_yLdl!jm z`hQ|-x>iijZW2?TaYst`iK*bQm`YEGX`gc}9tRfoikNhM@h zCC|n5N|=~7Ml$Xs6;uCMmflA()l3povlJFKLrmvpiz(!Z8HY_wn@h#?Z57K)y_gPc z5mW3CQ_Eg4eXlH`rs@*v&Uh$)v?X+afrKvaBcXN!B-Dv9D_uuOsQoAj-91i1Ehb2) zV2XssaT0o98oQn;pweXqJP7N}MEg!W9Xf z=OUp?-6V9bJIkwwgsR<;&@{%+ynahUr`};<8Q*1(uY{J~mC$v55{mcPvkxTnzW`Q- zKnV?b$kKi!VN5d#jSpfxm?si?<*9_Od?uk`)24!z71^ z_6rG>FE*C=n^^ii zEFT>#Kcy^RA6fpqSUy*={3`pixLE$VdlLGVm1lyFgnF~`)v$7!dr7D*E4MEzf0R2b zkDG+PbCJ*&tbW{CJ#BK7&_S12y|DT_aZWJ+zp;-vtutVJV@)SrU3|x`h4!);`Q7 z)Owz1zMlEkjmUx)NHa!TuIX=oD3!R|VE~y2SKFtC(su zGOkXIm_8_H?fD~8Yy7sM@s>;RmafFyo4iz&t znV60W6jS$mVp?>YU3-e@R#!1~xy-^`5YwPTr+16#!mTXM4PyFkm6&c{ zDyD7o#MFK!OB2|0lf?ARSTR*IW_mD4Oph3e=}jFmeIydoC(4Z3+9jg)%_6#{hS`Qv z5&fAjq8GD7w129I1}BQBNjzi0QW0%?C8CQ%MD+S2W^WiDsKSfc6UK-YUuHJwoQO6Y z7119DMAUzWh;FeKQSDVC8o5YB7t9vX?;v8XZAJ7Y;|Qq_7SYvG5xt=)qOq!sG211i z^^J^0TOp)nh0I=N329J@kRD19(vgf$oAFvm?Vby%LZFadWXz#@cOhMKSxAE!d#LWP zkecif(iNM8)Mgd4jSGeJ#0(+bHAP70jS3T(gc=PFV*QsdDwi$ zbf5)eDVeEK9IQ&~byR78WmU>GsnGc)Ds;h570R3}(m}imZF#0b<9t=%LQB`S0^V=lcNr$VIzRp<^)75cD8nWon$)0RACDoIhM`mxGXGfbIw_$$+_ z>&i6vf-<#X_mFSMA zO7z$rC3?z9i5@zpM6Grx(FrS+XwOU~8e_)BUIUe=zJ?Ng&bUpJD-_unLy->rtVl0J zDbmzOid1@2kuJZeNY5Nnq~049>61l@G?-JQ_l?=OPhXL4R$}bvIt5yht3dB1E6^FJ zKz}|_pj&P!(BGF7=ptJM8nRJ=_AXSQb7czDez*dCuA@M2cK2fBuU>o`(aZcm^y0Z) zy*PPBFQyvx;_8MTe4E^ZqM#nMxX^=Z*Y@C=@jVE_9#k&s##gi(=X-Ty{DE#9YT1o@ z`*-85rY;Qn+J$~>tbCe{nWwGp!oOp>@ThVZmgaQgtXG|Q$)yvYZ0*EXvQB)g*@zOQPQ^^Lu=b`(x)~IxZ8$} zwrx0eZW}J?+lDJ^ThZcUD{A|;V&cJ8+&jA!YYba)LuCtw#U;n2Rk1%dk4&%d*nO%yzG)vK$G2=a-{6mK$|8S$lKO7|bhe??wxH+%{ zb8Je`f-6BcWyYHS{ulFn|Ki`Be=*(cFNSm!fK^uy3(1>Dms4c>8ScHm~ zi*V4gA{=g1gnC7VSP@c)A;$}G^^8LNr(THL(hArbQ32}iD!>J%1-Pd*9}ly6|2CI= zoVqd}d;8{NNO2y{3eCf~V|h4odLEup&BLf~xtM)B7yoU_#oQ6O7*qWRuSESpa{dqg zwETk`C5(NQ&X`yCe&e3)zwy?n-xyq%gTe9~ym=u9ch1ehA(9-%ozKR#zS)?%B^xIj zXXB-+EW}q?m~$!%ODwW5TO|wmq+fW+^A}FG`h}_ee&M>ppP2aMCl0syiTfw~MBkQ7 zeElX9CekW543;OJ7kq=PSNZ`HJfk zlCkJYGFmN6#%NJ8Dt=8unR^nhU&hw5w32Y^k3_V*k%$H>6Y+;`BA!bBg5q0W&~^0} zY|{UNi!wjswcDSOuKA1^2A?q}GXaxtC*ZR+33$XH0ZlSL;TPr?V$JGLn4Gu~EoEWSS$izg?>V&A%V`258?G&%4NZ;X70r6n;q=1~k< zZ)JWj2E?F4&Raa={T4T`ev4*oJ+kK88}xO3gA?b!VQzrl;FvgyZs#awa}*hV4yQ#R zt~iLedK98%36Dbqd92>Z;}atumt@GXz(bDPnO}}nfgH!hN8_pU(HPD}@JDzUF5Dl6;lsjEHTNYhyz>&zEq{sr>M!xd z`xh8`<^}prdVwdZLUCqLD0XZL#YcvrNK!)Bx0Mi_GBX5y+n!@p_;WPd_Z+tld5#ye zgVEzgFkW96jAs>taUDLx;daj$bBwXO3ZCL{pQre8`BOAjdy3cJJ;8s+pWwK0PjKho zAauPKgaIpqFi04LcjF%8g_DnQmFZ)YmOR4bdu%P8t*I*sAE8t1Lu@<#5Us~P#Fs^Z zSnm^v!V92C<*j;)T6aDU@^NPDTS#THAsV{D~ z^~K_0zPLKe2j$m%P&CU2mp6N}Zw}rVvdJ4i=y>DTPj@ik^#563*9&js#@n~C|H9k& zwd)oh3ctnJXSeW*^cMCcdExF0UKl&U3&kZjae>cGJhAvD-s!o4&mwMM=*}DXPMg$+;Eec8;(a;Y}xOMFZ;XVy6-O7Z0~|j6I@We_$r>ibrnnI zUd5TMSMd6?E10tW3Mz@OFpi@$&OYdj%LXz@al)AwozQrK6ZRBd#-y8<(PhqMoYv%s zg^wNa%o;}&2prKl+5y{lJKz?n1LEgPsCMcS&L4RR&t+Z2$5$_69Cs1@Q|&Qmf<4~6 zaRK+%pT`j^&SPTuIkeI~he@_)(KzJ{?l(Pycid0o^Qu$$bnz*4dwvqv2~VQN-V+#- za2zL$IF131$FQyNC~`B8;x_*yc(lt74{or-75rfwXm}Vij@shU)I->5dI%3*JBVM( zZBS#r4NiT009Pq8cG%|qIOEMeG%(tS>Bsisxzs(VWx5Bix$efMf4dmZau;5DuoItl z?m+q49r)_?cJ$HOj{6R5!{MK|V&c%PxZ%PU{F%KOr%l<6*F863a^*&BoVO9x9$KSn z_Xez6y8%DFT93{e>v7WFb@(-YE&exPEykU+!v1M%aM##1=1v0xQ`BCGJ-t(Eww zW(6K!umUGN{10fpbhEB)LD$}vZdK#{IJ(bz@si?M{;5-C8rVV(Lxfk?*C&Rl2GIX*r z$E_cx;OM?nu=wy~y!Lq#juvcw*pLZ~ojD%OzMC=jrx|*jF~w&;#$kl< zI1D*A7H_AGLEDjIkX#teeA$e`hoeT}O#6}eJ;MZ-jyAyHsVmF#yk>>5u9u{m^MxKWsYL z7p=bb!RLefVBIkz9F-`=H3Ou0%+3&)|2;J?y(r7xUiguF$9D-Fz5)j*5&67&ic^#{QSBO zUio%A9}I2$)Vvm+cWCB^m^ASxk{furZ9QMCSI2kBYj~xN)qG=bC7<@Fg1i&iQZ1$N?OZ~*B9R0|@ zHTb~amA~iruaD!$biU(r{bG0ri?_VAfbtJ6A>U^h&pUmL=Kt=B;-{!Z@~57?;=>k3 z@L3gMe6!n2UUl3HUj2Ir-+SmeU#=C*e-3}j-(B&9-`en)@8|W1Pnz_QKa>%`3y!mW zFb4j-VYDCbZgr3EXz}GYdi(H^GH+ff>o!04)GglL$cqo-Z}6GxJo);z>%5AuJFf}X zc&%(#UhT9C-)eM~&*h!@H|w1E8*PsK79R(GICqKd53=XYYR~c4OwaH+2T$^SUL4~W zR@w13V{G|L`)zoa;C;Mf*>2v>WGBCJ_cq=*Xft11Y|V!bUC(dcX2q)ptl|Um{^KVO zSjMCEV&44j0{(f{TwY%~hd;h%CjZ@QIzKRt@Vm7+{>ic_eEzkGymqn~PlV(6&GSd| zXPr!VuMfld$BIMw@EL=6`T71lzUjk9w;S?dGJXE>aUK5lYfavvUd$gf6Y^^g3V0Ht z%nvA6;5(Og$!TJX{KVXPx!L(g&V>w2D#EVf%5j53diO*TLEsn9$zsntBSR3KBR(2>%-hGVj)_4cx(r<`Qft*)|JCp~3{T5ijZ9ls}A(G(yP z9DO3YSsx;6vW<|9t%;U_&0AUDiubaVJ)dRkO1{coZ%>mI=KqovY|NE~XBWx-vnrFl zPpg(GE^m}+CAZ0{=Jm)H7bUG&etd95=^iJU4jcBrdOb3U}cF$MtNO%565Z z;2xyT5E;`(k|&q?}im{_I+tX)&nVOmXD%qBZaHIHOzRu-k>GhC%x#%|ITmAkZgzNggh<#)-y%uCv`?57lFe> z^^uOP`7IfK^p(sN{*vy-0BNUfpwy#Tu;jEgMAG~kD!pj=N6Oq0E_HN@kOsDilDh7W zmI|F?qz~$G(mcUh`z0qx!`miFC-x*uCUS~osh%c1*_|%!aL$lAw8@gJc4kZ69do1; zE%T&z+wvt(`vQqgRg%%BB5CE9VyRH=pLBR_iRAmfRBBdJCJkO*Aq{*}DXEoKNgnfS zq%EekQcQlGG-*bIq`6QH^Zu$~)^i0$&uJtWD~%BTv@sq{Z-U8LO%SBl6l*n`!9Tef z#yo6}+v8fmJEjFnZ?;6I;jJ(rtQGoPYK`Ut+91WZ4c?zr$JXv`(csw@PY$$0yLRny z)u}zAw{<|jrX8{Fb4OfS(+S$uoy2?UopEkq7c4L8f-c5g;Ww=t4ySiRrB-*G8P@~x zQ9UsBT2GuB)C;ftdcoyHZ+La-14q|BFxu4@yPNkzuP^=ZeRY4VuI!Hx^8vt|fzZnt zD0p#$P$&3oU1J6dR?!f&9yk=)zlOr*hz54GABKi+!|-s^aMaZe$2N-*_%MGYlJZ8P zUT+jyO&kqH^k}4A9s`@cW3lhYSTx%|4hAj9qs5o;IJj~GzLrc7Jhq8wuAGGSiIdRy z=47M{oPrNNQ?T)%CQ4dKxbQ_n<_ci?Kj8XPB|c1<3b&Z4;N@v})q6Tlcua@J&KdAi z{D-xc|Ka!CnHZEc69*s6g7L7~`0O_upAOG~Ve7fr^LZ|MEt?0o!g-jhHy@5;7NA|o z0<1i-5SQ95g0}4<+*z?0dy5uh)Z-<>=V2+%1}{a)v1Qn-z8oJuFGu2%6{yZzfqJc# z$Q`x{uD@5|?Ecm0+;k1hEZ3mr?6ue?;*FbJUk8`o>+#cNJsdV}z=QG)nDcZaGRJSi zv5-xOKe`#?T5ZAM_gkPdcPsQ$x8nNsZCKfBJ6g!w@pkPF4F9_W`j2)ZdH61L`n3zA zcJIcB`rT;zd=H`~@5SA)z36sqAM{%6N518LjQZ~Y*2Epa_HzfZto8(8mg1LsEEg#EdjNcw&gHLY)<)dnFJ!k?tz77{dX z!{+vFoC>;)A>9QFZucGR{Bj3b6?d?0_Fees-bJ72yVyVA9$p{02Y<(V$ZWWW;zjq7 zZ+IUuiTCkM;{k4+dVm?O50KyFA+(l1L^qR%Fiw4lCL^`5=d2d&-L+8MOdI`HYGa0} zHkPGnW9dj8Og*cEp6)uxZK{h8%XP8-nJ!9`b#Z6dBdDEvgyVdK0EHg9FV@3413lb| z(}VfI$M|sgF)SS(L$CTV4$gjp@!C(27xn}OJ@hermp<%1=woQHK6EqvObJ zm|@C%GpyDz!`2okJ0tCm(cxYPB?R2B%lwa3S#<2KRD= z+eSysGr#tmmIadSqaDrZ_SA-rA@!jy^7ZZ445xIpKz3l;^qprn~A9?W({^XslSMOXYT73pzqn0Uku zi{80miSSp{?Cp-W8{845?~ZGM? o117UP(DbU{**SUOb+HG6MtCA~uP1U|dLlAL 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 z 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 yN1zJ9^xaPVz-{o5MUi|EKRau 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]er-k}UKEC)Aeee|^TqJf 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 z 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

    (V1u|vUFPnr?I|1 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≦z0caF6-)R*~a_$*}Vr08aQ&mByLRfnC=sM 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

    e zmpAWhD&LB2EdP0@fxK&vS-v^mAirV$EBNY+TfsSpYJ$U?;(UMh*TH`ty%>DA`MKb! z>1Tom9y=MF)9j7lA*rti&pCWBxP7A+gHxwJ8|?d1Y4B3^XmHY)hk|RK+!);W#{I!1 zD^~>1=&~?)XGLXV2+lRR1rHDYDd_90b3wm6 z{d&-w=SqXVY_K{gWYL5m-wT!?Iq%%?UU?IS_dPcJ0C~^qA5A^;gH_p&jm5uZY!^Ja zKGzbQe^m@Wq|?7$_*cUk@^-uj*HW~mgospC>d(OPfoW)BDRurvVvtiSgl1H{b_QccA z?A`a`%Llr)?{AHpoIEc(f5ob`4{UjO`xCpLFFSbTSjF4#eRSdCm)~6Z@t5CQb{;l5 zDQo$*1cF&V;(wpYsF>r@XVd>{A?ba_R#Cq=Aea7zW9ds9$=lp zFELbB9^4%2OBnP3iyp$X_8<&;=m#54ojP^&XxRgyzAA$H|2N)vhT{*I$2WW2i6rKi05x-jO}RB)*ylv4gBP-^Hh}57`L*25*Y9vAZk}2It*4`FWU+ z#F^D_et^%x`O{?n0mnC2aKbd7cg5LQ3%&t{z$4(_y?iFltVZ*T5Lq~ zd0+Mn>&PGBvFtbt;s^O$_7$7LKjdy~1^bmP;67{z^WqzMD0__!;Lq_yc7et7le{I) z1I@TM8-TODuKY1R2Iq8EeuQVT%Q%HP&l}+k@pqO3seckDWLtO?&h`fLmv}19pT_g| zcw6=$Wd1%rgq1O0Udku1_gN$_=eg{AmclP`16#^&u({mAwlPn>mdor_)|WrSr?Imv zmLKQMa4yOD65bDIjGg#aJ__fB!Tc3I4`+W<`A6IxXPLKHChvxG$(H;99)>f<0RB8r z!g=8seu}qZo0uDBhCsFtH-&fbvFsfd%3tGI>%_zB(uXTnCljQ7X+ZfCxokH%T8;D`8poV!lvA9D|! zBj08Vc@LZkx8|F91kQH{;+AzX&T7Z;cX=CD%o^}QK8U@@y7Qepft_aI{3y?6SJ^E7 zDVNx4d@N=$?~N6tJul%S*c)sZ-_O%oHJik%cn6$6H{tj5;W$g~#h>PraV{LgD|sHy zc+>b7FlnfJNmfYvNBg1)M`_>KaN)V5v|qgZzU3J06Nk;1aE$hcEpFU@jP`{+Un)ID z`@w+J*N@RY(A47GG1~uOjXp;EzCC-)<+R^>{m16zw9lL7Zz-q!-7jy0M-1Gw;}2 z*l8aFUD{6j7wFjbKTJ}{C3)h zbc^j}r~Sv*Z}qWv!M+1~2RrRIQlA=NcYOEFj(6IF*lAw@96NAn&tgYj+RNB!|9~>> zv~NHicGN|CB0KF9&;~p056~t%+9uFOJM9P1W;^Wz&<8vELVGkj>HX-V9et%eogICr zy`G))d(gyAdOc`lCw(3?13sg@q#d-BK~p>F?Vzz8w3b10J7_Os4D1*S8DnC{*vJ?o zJH|@JnAtIQGRDx3v6L~UcG9~s#&(Rgj4`)k>}BwPo%Cz)gdMyggGcP(6&XBZ2k*$> zAv<_U22a_+TQYde4qlVNb9V5a3?8(D7iI9I9lR-nNA08!gJ{5P`T`G@cm&zyE zrTR#AseY1OY7faSwU1<%+Do!a?I+o#{*dfa|44SJza+cVf0A9I2gxqchh&%NMY2ou zBiSW-lI#+FNp^|eB)dd^l3f}Pl3f}fl3f}vl3f}gM}5lN zL34b{ zW4=(bQ{oE(RE1Yam=5JE<`$!V}4b1CCIR%J7EkJT?%8W=vJg-Ip%9c_aYt4F`o;^ z{I2L~;2A}CBOT7M9w@pU>3ELyLec$52Xw3_if#xVRdhwt86E47qDw-C72Og%uIQSi zb2`>9MHeNV)Um!Px+-Kw(OpT0b*zVqZc93@W4#oP^;6M>A(M)3Ogge-y%p@_xZR{f zJJw@LCmAMuTCXWT$uN~iGEC)@3{!n1!&E=XFtvwdnA%7B0kxN8nA%S=O#LAlrv8x( zQ-4W@ssALyL=Tc-q7TV1(Til5=tnY4^duQ3`jQM2y-9|N{v^XR9wfswJ|x35UL?ab zek8**o+QIGz9hpm-Xy~`{v^Z14k4AQ>ikAsHt5AsHrlA{i$6 zA{i!mBN-<7BN--nBpD|8BpD`oB^f69Re;_pj?xH+a48Svr81~2DwE2lI;bwHlj^26 zP+O=?)HZ4(wUydTZKpm^U#L&iH|itxmHJG5CmIkfh$ciEq7lh1(G2sSLPMe@(UfRQ zG$vXT&58Cj1~e8lCNwrQMl@D5W;Av*hBTHmrZl!R#x&M6<}~)i1H=o&6T}7l)~i172;U7W6+FyfqdEewgLv4YPO`4>9)AqhsR3*OY*OFCD-OfVbfp>I?MXOoBdf>dEDV8Z-Z5*6|B*lV7=+al3?rk1YecR zf=%ZNd@7=0!>M5H;3fYMtTR2?Y}j%>hrj(I*le!D14F<@a|qw1i-RrZ1nUeB`t7jJ z__GYyWG=z`ARIQBqww(`2V2X#_-5rS*kV3~-~K|_T)u;!bqs7QmGIb@1Y1fKeEid3 zYxx3Sv|9|D$`8!MLSREVjJpD(VJmqX-U~BeOF0Ms|M{?)e1m%h5wMXQgJ(kmY$2yv z4|wfA0qe*hmJOT8Rd|GqfDPmg_&rR9t>XiHtu7t5kZRl&$b-$}M@%mrF~UaUAsCTd(BFa)mL7y(5&o?Eo_0iE@uh6^bO8G2jUEn0zdX^izUWU&^e6!RXp5ce&<@6m8NNPoqYS@EuqWF*wVc)sofPg5q^ zS3E4+Kk|`3WG@Eq?-UUH^0`-nUI-c-G~&jg;alQ{!1MXvA9H2b;O~|{9o+4ao55e@ zc9HkBA0dC%ZJ`|a+6MVx-cI?Fy-a>#?Hh8pQym9@s9ehN>Uw)$RmVTo8e4t1^J5wVK-@T3AZGkhAgcYBi|^Bxi$jkt7Y9!*7jC~S7tK1X z5N$$Nh`5v$;-i)D11W{i$LlM^n`c*u1J_oFAK@#q#>*xi=x!5XgKgruNSpXN0X`?Q z;B&ITCQ_Eb_hqF`hzD$<%_BB3WT#EMvD+q|-e(h@2W;Y(!#0suZWGyW+JyH>o5(nA z6H}{f!tJaL=g>B>@>83b{h3X)tcJhLS2pq9C7by6Tl~FZ6AxasiAea*oV8hY7;%+D{}^r2S1xX0VTI>!UJo94R8}M8NN3! z062VW5&+u({{eJ_KTbU0KENx0%K(qR;8z2f4p;%$3@8J92>2Rs6VMXAI^6+-0a1WS z4w!?#OC7KQe;?DqKD-kg)4}_AcZJUpcQ5!6@&8jGUG~3)KYwjWx(9P>epV)+cP)uo_?S0k_jk{;$HsplHJs#nf{CYyk^T_^Tld z-yZjOPQ#x$e-LBUgYk9yA^6q_?(R$jlmHF_P6I9gELb_b`lj%cxNp<|_l%+eQvi1W zp)K(Re1HXO%IxmX^HRK*wnmwNzX;mkhwQxZMSMVmW~c*T0ptTp0X2X!q#Xc+;5`~J z2~do>wgL74jObLGPWZMapk|pH3n_48Spa%U>F;tkRtzWw(67noBOc9AfIT|dG3F{S zd*N;pmDd13c#Qxdi1WoNkN_yeof%5U6&40pUUm`SiB%*p7{9!R_ru}nZv?&%8ihV0 zyk>2K;dJhALTM(fw)g@k@|*DwiMr=C;1`TU`w_Qp?OM9N2K*qvz40k)!4x$QwR7#- z20^r#{Zk#3XWBG1PY~WwPZ0IxpX#7IvD4K&Ig65$Q*(0IoCS-MGUlXMlCskl%}-sB z%VsT_Jv%kqlAD=n$(f&&kpYa{)a(UG8J5)S?96PIoSB`yC@VKL#gdbootiYCWv4D& zl$w)kS&*4)nKM5tBbACtO>vf-lbe*A%I2re&&*z8L4ldcNx5?}7g%N|&B*}Tq6PC7 zWace!l%6qXR%X_s9E&5CjYc3kH7SLSib$}ATNA7^Lt{sWjhq=D6P7T3Yy=yfmNt%M z&teX@gXowMBV$L!jgB8Pc3i^v2@@wxo{}^xIVE*=TKb&1^D^cy$jn-pos+w0abEtC zrTz}zg&{+G_38Wnu!KH+XRheh8GaGIl$P3$-Mw(PnvIBziDc{InP^fh;7>SN~RH&Y<}CNHwgb)9?Qfo@@T}(7NSl`L{vV^ySoySM%ed zQc89vn9etF@WB3q0{dHLCFOvjz!cd51BMLs5Ad@jXCy61vn)={&LLhI+}FSF0E=&W zZf;i2uzvlL)ck$ZGBeXMQgbpFWhbZhP0pO(4_up(oSrmiK|eLWzdybv>K`!Je~|y+ z0f7TjQc?yE=|3AB3Wvy^D>VFiP!9&f*1r(A3q3FU4J} zf(E=@W0Q&I9g1)7NSjH2tx|*4m=HYi8VE=P;F^l^^v3_A0a<`RpDmAuBo>s{# zO!8lCUSnEmyx$NZ1zIJ4{8A-QXpSib?#}x7A+`A7Rw)E?BXIWsLckCC0GIL;Yw=U8 zQljBSDJ4Qm50x^kQr2jMH%M9Iq(q}1*Tu&oeyjv^2Ofn(>xR{DZduU23QYOiP4((6 z=Cu`~FN$GJ?M!1v}E};|o z;Zi}kRLG;H#8eFlq&I$Sl(JH#L{!roZ7M;%rQLB4xJkWwYiS-MsWdkZ=h6;7Nh;-` z(k>n)?ZHUw1C*hXgZO(GaYymDg2!TnjNfwP3zfD3b^xO`R|IlJE4hlfAq+@SK#BrV z6p*5HMMpW1jOVE+4U38*tY}9AsHiwpXo%C*M@8vd=`5-pN6K_UFTu+cYUm=Pu5^7H z!qL!BM;lamJWjj=p-jLZdg1{W5SNHJ%fIrKAyOF`t5jfBMkdSH(%=$<@^H}0dP4>Z z2dm#6aN&pc8vA(xF9CR-LvVK(@3_o{xxl2%CmDzjL3|5cJn0Rq5TA&6xW^;&t+~i?%_1Y4GEQkFmpv?vZMSd$X^_z-s}J8{uz!b9kePPjHV98 zBL6OG-w4df|62bdrFN@Q`v}S3@QN->tx>-rc$3-#-SFT0gE?^sN()!};)DG7Sqhdo z3U}rpqb_~vt&J7bel`hs#EA3_gF1K`QiSB3r&a+sWQ;oB*5a!35b@J4q-P;r;U~vB zL~S{W_)^4Q$9ru)Wqxw<4dGn^UNQ8G59{OkXw4zK#?UKp)mG7&UCQ&-;{}qQ0%6cNXS3c50po`EqDeBav6@X~ME2X+7z>@eccqf5Z zh>83!PhCkDz;a&U(Qkk(fd?T1O}=1udOZvb8_sDm4rNG@aiZf|%Abp0fpZ;~FsTlYmI2SQ7~g(Co;vktl^~kt z#0yj&@Oqk5JpG(T>AxYpbSY!+IOwWRC*Ey?zGp3Gu=1+;HQt3tvp}TPAPt+)x^1`@ zO^pi;Sc4<528Ut|4wa4rPJ(i$0aeP1tF(75m3bfd4dX@q(zl1&y9eo|5V$zVvNK($ z%bcYATOgB|+g#H(BI*j#3%BAI%v{?XhDA@K-8g9#T2;vN@HbLgi}#IK)Qi!|LT+5n z@ivj(c5?-dw^fF6Z}zs zJ$KH#5t2Vv4wWDAsR>s46uxIrAK#^X!*7b-YgIJ1DN>?ZUz^5|g=f&tf8fUm$=51@ zd8t3qz%P5Yb`90(|1SLR=s)o3qeEW*MgNuY2fpP6*iXEWPvZ~$_#@rF67%0Z_?=|> z3ZUq+F^dO`cexQCE$WdmP z6u(+g@e{04yeDuHfm4Bnrz76!p}1VcRU=N@KSd*ME#hhrS4K$s_SKs|R%kkqI(;ma zd?TdZ+Ek*rDhvE(* zt_pGZqdY{vlL%B(Tz!6Z;lIUo+iV!2HCmaAd!sC`rf8Edhi^9mb;qKhmVSkp9tsqC zhXX&cCue8s)7!a5se9k0QecF(LQPWiG3xdz6&Z_=q?mLe3 ztow1=dyn)iseH3{=G?&Zg++bKSV-Bi*u%UL%RQyoK2`d zU%T?~U{@aYNB#@QU%Z>M>zD`YjA0~Jq1r(_jzO%TVa7DZ8aIPHzs%W_c(0R3r`Hi) zAn^S6bLD$ub?{ttqiMhkIl$TW`g}A*YXX(G3V78AK`YmKH6+B-n!Jz7dxb0C9dp#X z+PKDmGgk0F(u!Z@xOswro@cc(bo%y9;MN@CEX6Sw>SYq@D)VX%ey-$f3+Bu^WkpI= z&bcx|I*Ylo%3$o;P`ZG(i-2lFG{wy3E-@&kJ=&Fla@qTw;Zsa?%dI!Z88&G;5;l5} z%d!7|4=QWu#ukwCDz2OX)S-Kri>>|>uKjQ3~V_tBs zdG+c2pyV5)ts=%igXDv?9ouYmS%C_w4=VCK1nY3sr}##aLq7F9L_9qS>D8ZefW{xc$R9;@ae99N$jIfE7CF& zu?qe2QBE-oa3+T==f4QyWm_YBT~w;)-@+3#z-k6q;yr`ge4HcNGUx+(LWJ1ro&J> zQkOnTr=KEya^0Y@%xTw+kg||IMoCxAzX+m<(SR#xv!#=P9j!n2xUA8J6e$Rr5X>dU zJE}EDwWp}|6XNZ_)}VD~1ADSQkJZ^5PXk_YHv@cv@aV@-BNC#iyj8#p>2CPPJvs5- zKHz2bFtAni>#g0xL@0|kb}3Vgc#FU;W(0OIWSv%aAH-WXQ4Z^6!0kai`gYZu7gSx{ zhZdjS2G$+xh6{eZc?rudO8~xqumOHM>Jx%L>4*zKT$eg>uIkFP`;V8rutJ4uyMM#X zx?yEsz7J(&$p+<{r?u_)+cFe6tERT&LxuA(7g8QqIfIK5%fdGT$wpXPreZ^?*Egb_ zKkySLg7@q6L&102h!lMsi!$jUiB$e11Ir*~RZnZ^Ax4c4BBbL+%ojAQ6@U`tsh(|M zPzmbhsW(3JlqoS>o2b*2pmRHrs+%yeh>lc(Q5tg6|0H#khKxNXikhPZ)deD63#zMi zI@&#{E#|Lu1G`h7uJN_qrd^UDT*9A8R%se0jA$u7v2HM~Zg5K7;DoxtBrO=O6qQvs zNHYsn6)H`OP|`<83E@i3D*B|lsi;|>8eg}tC0bBz^>Qt!7PU|ds;Qw;LZmb)T;M?yV%xb&Fz2gloi*7FT4z@e`xJnqn?>C;h{kY2sSz#7$`H(bYJ zkJc2m8_vqq;0!HQ?Ugzfpr$?;rUhr+3)z{f7Uc}iu8ZufS1oy(lIlcO>vaZQ^17tD zR7CUBO%Sc7pmu(WMO=dp_}_8^!w-qN%ACtQFkT9e(CwHFXX=KLJrFR7$}2Ru*rxUR z&lr~(PSrn(k*@~%`jElEWxmQsR2kAOP@o^hd!6~D-rS&`mB1i`6IiG8BdCgOY+aF! z)Phk8vNNb6qbi#FdZSGhsJoA&?l8%dPBUrx9;X>^!yU$3TGyrlzXtgDmFc=|)g}N$ z6aTIPp8t~u_ASlTE`6qYcOl*KngPDcYPzb&*3SFmbY|lajNe&mC-4tCbU3Hp3tLZ~ zRyWqkJZL_7P;OS`jgZzNun|z4hh;L)_$N$!d00G^SnPfCMic6Mpv*+TDwP1X0e0l! zXimvO#aJB~U^7(W!hlcjgdgpKkIgmG)Cx5GXqPgm(iMn{cWItsF(RW88SQAZ(z+=K z;EYqLO>3Ri(K^FEV8=SJqaDp3p=&-&pGx!Vlvs+$vAVj)5NVETq|s1e>C8)ZG$z7P ze>i#@jpDWXHA;k{>PV#FVAYv62F;3eX*Z5jksq~1P;D_NJqB3Oz@k{99Su&nBQBFL zuNn}d`omF&R)09kA>tTI^sNpB)(BlWT2BZQEJnQBrZdDB#_<`h^MS@cgaZfxUiE1M zyr}W0>$|cir?hEEi+|4mPwKj9*rKp}q*WoUiz7|*ttdu3d*7hgl_-gDcOfnWaZgi( z<2;qxcogw9i2st}^}2!y z04StiM>N4pY` zUiFKCoi!k!AD1v_;o8_l;CP?3a^nGm@}_zuKwhAy7jtF4-GOq-upljP9XA~vB1mHf zv(Y?y8u*qw2GtM1S+Bb0Q2O^sFGPAH=$F(ky)I1YjY0h47Dl!Xc=t;0jdaUkBm1oJ zz0+f9@WPF3?>%&FO3J|h$|f2WTaXJ~ocpF?;FSQcYLbyHtUperI{NJb{Ytsbpnh~KmPn2@QO+;D|Ngfrd!$>Kgjkp*G zqUxSe%CpcW-)@lQM123*h=7x}ir$}9JEXa=p&FB6B8`^vVI9Uk8ilU{tOaaDD~s{B z1b?>ycHo^xJBwVCawDYt2sH=Htm+)J19e(b@T2qf`6y7UljPty;iVZ_PrOsxbnEg6 z$tzrH6E3ya)@2&!o75NJTO8%;^+ihe>JIszV`Tgu<4og7zP*KujJOelM^6hKU-~0y z8t~#58(BpCd8DS9)`1A=W;2|l($Xpcd&^Ze!X)Q; z7|p@ez@tO33`cp|IVRQh2hy^T_LeK3>FjMpU!NYBf7coBb)Mopo7K+3h<*u#ztPCx zhNbjDPhSh7a*-ZiYQ)!D)O6@4v}Qz*zZ{XA+O~~wU|<+hzkg0yp}H!7SByi!Q+RjK zD-2!;WENKTpVdfDgmalk{rzXPTkRNJa)b5O4Mh;mys&r8dfBM1H!45T@}#Uq{z$Xz zH{!k$9;8tMwKp2^g@})HZLd}ba0o98cvT0C>>ZPu->I8Ho!3xTA!!@%N)H_X?ZBGR7;6TN9py{Bv;=y@1>{^qrLjyK1ipG@M!V{4Ho@j7I(K3!baPqmK2RL4(7)z7AG9fhXaI#!v` zE-I4R^*!=b-vaGj?KqKAwN4%{K_06KMd?2#l`;<#>+FGuy7d%$*49%3)-CpQgFb9cjbk9*&-cz)*?@-mx)y%?5Kx4N0qbGKCL zx^?0#Cig0C{Gzc$Zx`Tya1j>HYCaONtPtgxdVw#ynAmR(oOP?dtM_WJ;R~2fLt!Yj z>P)9$c!y#NGp}kiC6xiY2F0vu_!SwVks;KPA(m{dM~y%qquNwS=GIahdYN!9&)Eh= zh-nOVA*}*wkGifsk>bxJ2$P&=PZ31TA*x(9KqmkG zCU&DfzH|ReZNX1LF#iCP@|!s>{IEku^HPv!2Ngx*l!82ofhM-Te%bZymWFu_vn34A z%7O`{9Qmm3eJH19pou*rBjCb|(`)HaG9A1)9VnEi8hJ`{aa)3fpl+Tjb8VipX7Gp^ zC>DShHn^50CU!sG9eGqn)XmTMISf_?oVoS;Ne5~L@>Q%bu~+KzMyYOo--Y?T)Gb-s=LYQu zaL_GEIt)09_zE{@NN&b`9I2QG0S5tx0Y`zUrYbzuyD#RP`%L%>nZAvR4&+>uA|wl3 zxYTi<2K=g(xJ6pOZT0o-WJT|;J#Qd!LN&C;?Ls;9BQrU*G=!&-L6HwE6YMy(Yn_SR z=i08?@r7TRm(qtC;CgO=T)6T>nB=0zslEo5e&C_aCWV(!m9mBfBF?ke#6GBBhEwo`8 zLx=y|C6bhXur{WjqnLCn06==&1xbnA=7=QipSBH34%XX zf5e3Q*Ldpk(HN+lT?l>)oWS++QB7qbZnWzhRF5YOYcz&ejh==Om+%ZN>=1~R zT4&+yWSCZ0AaG<3MWk0$nb^|$^OSRq(sTgAZ;XW~t7Mkx5(t`OP z6N{+RPM5V3C`6-b;KqM$V&9X{xX2^P0X{FlLfV<}B~vwBw;yqxKbJ~A;o6+6wopA7 z4%b}h)D~uHBc>jPp;+S0bgHMl8Q(ZipJ@CkKwLcH=yw7CnJ&i85H3u(Dj!&-K%HN{ z1z&)``9I1k!|wr=xXz{Z?q3<#!cQ7{pEB~wG51zALRGF~CI3t%z4i`60m}Eqf)(G@ z%u4ZIr>)r2=xl+j1P|=Z> z+=(hMKhZeuLH#wTpMICoIgXAqu3SW&M7n=BbA3PbdOVgY^~NCwXb2iaN}1WMRu|9g(@?rdYuEDsE#u@QE`>Dz^4H9h75*`q24pD`&7MOv34eJ_)s~V zUkkmq_DJ5?)o_nk!}5DX8jE1XM&`9x|7r^eLs(xRtm6t!qz(t0kX2X{>muH>j;Z%R zL_cW^dP9LJ?qj~^Tu$k+NUuP8Jl<=0q}KkJfppKlX2o87uk?*bPyC1UeMm3+n{;LV zM>^|gR_$Qa9zZqX{1KP&uQCP_Idm>{{$E%(h_WUD{D)#L^EcybHhA=NUOhg8?bvbF z7Ng7>C>2bnuESRHFR?f$a}-5W+D4R})!&S7x~OIAbi*-Hn`p&|2gMMJY^`EQbU%)K zWym+dA^ZAuz#r+CknTAcziCxxzJx}s_kGsv-oU4}w84TLKkR?j7FrYHk*^r}O7UKY zKDsp_9ZC7X^B-_JLZr9;8=cJu>7@y^eANc+r?0qFA#RVOpPF5fXs6ukA8&Tvb*Vd!@Nt1L z7USq#Oz5`DTIAb^GAocT)peY7b9j_`*X0v~7+^7!KP8G#)UGjwy7ONlF9gV^qtFpTyKUpZZYKj?O zS;F(r^5YbbQ5wTz)x~VAT}ZPyJr+?E@ziOQT{hLs%Iou#>stPvCYzuI2^3lnt&Y43 zoAJMCer;_u#zTT3t24|j1n<-j-58IO+Kf_EaMv*=SMcWhBGN+~>Hkf=q}yFVzEb3C_OIiKy$A5yU=pfGH?yJjbw^kEOmLA; zRRmSt2-<|^k-s*nR8ff2t6kQ6s$I$) zZV5rZQP(h6zJUcs=f8Fk{%d7MLzZ;V7%Ck$;<^|9R^ab({5^@p(|{`D2q5JG2j(Tf zQ9y+;4sl_K!>-*KhuhOi9F-Lcyl~(_rv%PPgw?VL2j7ta4UVIYHJN6%-Bs@4udZw3 zSrk!agq`Co%D7;RmM-FNHQIOya0T!^pa$_(M&ktTz=C5tvZ+|%z_J1h$5jeet_zM8 zC0T(Jsw;_PFU1PE&NkOSf7hLt>CbUXfN#k)v$tWxr8z)9N6>nH5a~5fm>GViST{!~ z>v^fp_P@&nn;)T&Ok6>pGF&7M!#h0|z#oWXyUi~54r={ssO^?e%s0UK_x+J-1Bxg7 zXUuF#{WUCJQvqVgohx3&F9d$|-v6$AT9?WQ|2cF0dk(raQoU@ciStG)h@I>Y7yG5b4nMh-L{Ws|;n)Sh=hX zlQlmn803^ouCYK_1^jB@%_KLyAKvsOFG&n;i{OnO+t`% z_yW=qmx#E@6yfAA+BE3wZ4TTL;8pTRimJnkvcdfz^4kqEv<|{_imPs;Zkmv`%bXoJ%^YB0dj_ME$Rt+2wzw zlZu}K{4)HOdc8AZ-C2mrmn!}a;Ir58+w1kqcaaMf|1|I|ubc5rQap8O;iCVkcKknp zUkdzGSA1=vLc9+_6y)isSy?|RHCek`> zgDX^BJl#C6?uD?nfgUHREoaRvwv`J$bbyvx*|@XT5;{Q3Z0REYR<|61cic2M+cHkN zfCx1b>wnAXh>JiRbcB{TD#qWcmSK1gcfMa}2^*C&Efo0BDU`S{;83N6ue}?`K%YPj zYAsY^1TZG+N+h#a%h9?b=i)sUh;cxK(smJTP}^bn6qvDypdL`eG)$#8dQ9U=qpns$ zp8|AaFN33Z)MKqJ~t@p2DK}BD1^dP6Lk&8L}$^Y3jnobt%+Lo)RB=$*KJzP(R<2dN0-C zUh0stUbTsZJfV&l)JJlv+h@k;9m=L5IUKnD-<#PR4qWGcL?^4NPBvKzQkRxR|7~M@ zQRXg`&#s&CrDQzLIivpC8IR;D;AR1L-9O>Npnz*Is(n61+4+ao*~41YOEOWCMe(Kd z8HK`rFyq_Xc%1d$i{9h^v446!jrQ^dD7O^lV(QYBt1a?gSUcv|yCYx$>OthILB8H~ z^C`YEl#Ax{3&64bSi4`PxbG3?uZ#1d{Bh7#5J%fl>KplUQG6T37v3Y@AMq6~@njE+ zMm(!A<15s7R2nH~b~NXwAT0}NxH6}u)ms;-eH(#Sdc$EqMwsGC5m$parL73B0vtq~ z=g($V_z!D?V-Jw4X)UqgAKM>Ub>(4GqZ?>td7McNlfEUvchGzit;@$FNf|WUJ>H zusY*|2M*RBt!-Lhu8UOeeK=p#k4(TS1`&>tEI2b!jpE9lCNLgyhL33#)n9ANoc>5r z(m@Z{1jrvL1#L`6oov@O#vr#*sQw*Wj_p z5sEm?%UtO#ZexH&)&gpanWW2Pe8J?%Ms&e-289+RFI8i}lYQM3n-+qK&UFcKWr*`M zyU<>zcT?WRVSi zc|h4zej(y41KsX5x4Q5#ChchDOpbWic^^?bWX(WXr>XrYYp^>4b$P7TpCm?c=73Yk zSiF$ic&Nksdo(;nA{?F`^f5s4{vLriV+A>$=rPA3mge4|arhrTx`E>rU46AWa-L#P~RFDq?$#D}uPGXq8gJrSwSUE;aVZsnVo)Xj8uzPJ;{vYxOOLUku)jxo~6H| zWl`?}q6?D%Aqn8QFgLdHU-<*$hnWXwsx*G-n$=w$KSO2Ruv+#Gl${vi#&F$UM_+|r zF1#^O@{M$sU7(evPFcp5s$+^~M71dT&2Ln8l-s}RH#E*Z;~_u5#qz1NqmC}*Ro}lp z0r)K14Zo(T;w$z$$5}P`bLS#GB*u;PZJ?&>^rfs?KFFo-v0RV}Ccys@ex=IkEgkzp z+Tp8I0-vRAh}!`u<>PUQU?{JPtNBmrap}SV;r8Xqr#Q9y33M=w`3FT((OHI<@HZcS zAC>as)DL#jEe1VS98$xi{Ae{5-wHt9I%Q0i@?-CvNLfRq{HWT3U9u)AmmzAuD1&Ac z;^UZE%A8g<0lLH(H|KX|^|bW|IjfLfI@XOHb=~{IHtzH(8;P%wSrG<4jjw4Ucwv?s zJ8b&<@ffLm9|!sqPy&H(NpoZ6uH%Qb%(?!JlvZK=E2Q_NLoh!eBj*w*^( zat+JUJsLb2N6)W*370V?S|PPGajLvkL~8dga| zVziPn6g;HCJp&35Z2V~IKALbAxv{JD=g(R{V$dC9i|-$_Azum2<$-QqK@$M;Zv=;{ z-$GdA;tnwzY0wgoUWh9|8{yukz8lZ{T}i6E6!K*#iE=HGEF>*Fi!F-?KY zARSYpu08jfXXk1hs4csSei4rR^iBK+T=Q#_8R9(w8Nj3O<~JccJnaF6R5#+fQUum) zU0*1s&U3z9ZP3Jix_iE%8YVI1__F>a?2GBWnIpU)9P>8b=~$oAAH+g^8t-I_qVOgh z+?~ODs3W|$5AtGCAk~`EKk5nDK$xnb@Y)_s@%M(Bp@i>8`QCWf>RSo}8r?^tX@u}c z2ddv#C3S?t={SQ#k;?DYPcTyTVLWx=H$kro zU3h&w+N1P^{%2y%V^lwMHOj=?G0<(C=}?A&U!}|ccr;_xy6_Gw=%ovHAmJqjQyw=q zVle2X3$Gdgdg;P{^aZ_i;iJ9KK3%xT7fsNGFJgQWb>XL?KrdbRY6$413zvd^#k%lY zpkJvjTmt%)>B5DeUxhB*82PJo;Rxif)`bI*zeX4Cg#7sNCCB5&8i9V%S`hT!g8+(j zJSO%m=m!*M*cbGx4ZE@Npr1ucX0RiJe##uA#F^NKK=#zt7mx9@=)w;|pH?=Q3cec? zkpBu@`f!Z5zb^bN>JQO{?WjLq7ru@96Ln$o-_O#8+xG_jb>Z{Apua90hzYh-7yba_ zS)~ha#duch!hUFfRzr;dZtRN?&|8;ogZwFzkE4GVAb*}Z{Qksmy6|4&H(huQ@tZCj zi}uFr!tZoLe|6z<$aA4C{C~JQ695~lzmK0g_uk>65K2YHzB95*8T-zVEul#&N|_`H zWwK?>kfMmO6iQ4|gfdAQoQ_#>5G3k330*yL`+%y%k<)B;$QrEau@$E*01-x_z&P;mKT2r{$+c*4*unM z`g_)|Tu(p7_{#J2bj?ps@1VU|_S_%i0bRn=^=bbkPd~|EP4@ID;_DQ{{zc3l#$SqO zZ{L~r^K>%fE6vkO8DHt1-pu&Q@bnM#SEi?jkbjn^f1-Zbp8l5l<#_t2+QZWm)gGRn zp!V?e8ns8UpgxJFk=n!4`dur@)1~SEWKUP7|5H5uHS0mDr(b0~Nb__v`d{BNuz!i> zIr=}t(>3Z*e@~z3O8q@umGvjv(+lu7$I~67ozZ&d*+*&qdHM+TOY(Fd>X+>4PPJ)2PhZaXPWAK)ntz^dNB^>w zg!|(xg8t3*bWQpe+=`BZ5Rsl2Ig0;=WjXI?|jdGg#P%&(<|tY_|){94pE#mjFO z=ZkEg;Qk^eLi=~}^!&OUUp>9O7URj&>D4)Ydb&65SI*OEy;?amyVlb+@OQnZ_u+50r{BTfB+s8s_?ztM z7w|X5)6e4XW-tBi%#W=>br_$k@OP_c--*9FJpBs(=6L$6dOXYG={3x!I-VZMd`kB8 z_pEP?JY9wPlGHH6uh6@{h&fLC<$CF(v|m}z{wL$FoTm%X zeo3BQPWx5y^fB76hNthP{q#*3`xh~bX}@Gocc=Y$?YqF9lY&2iWc+nzemC>%X|(4> zuRd>cJTjiW8tobJ^s;&!Pdq)5_AKV<*0g5{Pw%8XbG-H_LwmOL>`~e?#nX%Mx1Fb( z;$J6Eug1S_o-T=hsh*yRe|cVcH+E+{d3rzx>Q_8ykVJEV_DJ*6@1*}yJ^S&ttjC`H z5dD|t+4HqNd-i`gUn}9+4|2TknO^$x_?PABa`-pKi{F*< zvpxHS_VmA}M^OGaFMeOjKkb$OQCG&R7eA5o6TSE^l7Cu3{6v$BeNcgpm@=u<*NeZY z6UQe{zs!0v!_(Jtely3@x3He%dF4ON_{uNHKWYlqr#-y*dR};;r{~Z=i#=VuC&wpG zf1vfl%WrrO+S9Z5#J<|o*K7QG{>*;>@o8ra47k^VdT^N7UJpB*- zx!Fs9rViuZv!BrUh}V9fb9^uB=`M`l!k+$LFOKhCet+or?&-_%H^icIq#)qe4^hcJb zi%{S9JpVS}U;G*Bc!%=5FaBkF@ps_ghhF?|@h``-@5H}c&weVE^AAtoO#2=3bO+9l zj(Bc7M;kjt_;s@+MGzF;5rb z_z>SeE1o`TCQ*Kdm%b4Fndxc050T~R(X7YWo?gy+oa5;)uBAP_@;WkqOMAKy^S7+0 zcd;I)c>Noq{<&U$E!xxHp4K}@`JNtw|GX~l{vzfg<15M26FC1%E*03h-%ow2c=kJ~ zPYq8mq&{^#y^s3XkMk*yMAMS`BzyLY9A6rFdJFX_;gwf`^(e{HzcL?EJiP#an|bNy z<6nF)nYhbQGmiMFUi-Yld}!&#-^zSQ@pP9I&d)r3iO$bFJ&o~^>XmhWw>*MKqlsCZB$9r?W;^{T4|LLB7pY?Q%r*l|O$9eh?>*+*KPh|bi@bsI>oF90) zAM>s6*#zwa0?1HATYfWKLuy%qjud%Bm_e@_p^-&{|R$KO0pm&V^r zul%C;yU^3;8SjfdozL-Vsi(hTeB^ui91j)Zb*NndFiV&9@9Pj zEA27di$Aj}?d#b`FnGF|^`5TC{7Uosvorpud-)x~-waQWx{>3xm%awa z)Au~xwH?PlPq*g!IoH$Ox&Hgq(_b{=c<1S>@&AaYpJjaJd3q1y^Mt1-(jTWiy`TA> z?P)y^cE;29GCuP?ox%A0#nbZ{pXWWjj`4ZX({1sWZghX_DZ}`Tc)B|N7WQ-n{4M6` z%kZ~^r+c$rW_s;AiS=@`SKjNamsy^@I_u?D&wh&j9PahsdiryRXD?li`RD0}8E@HM zev><3_jH<$7oN^+Py2hiIpaCs)4z6PxO?@fMgAE<^UzR5dT@O5?47We^K^I0PxAB+ z^jCVBAcI8nIpZzUt6x{f+g30BIL6x!PrpL{W_alj(!ZIW{*eC7^7IM%H`~)Q8qpq} zexLr$_4H8sw}w~V9QwD8r(4s%d0zZqSTC!1_UoyizHe&(BBm?;^0;Dw9*n=uJbf?z zrhE0Dj=wEEdlLSR^XymPZ;EG+;BPxmUu3=Hv9W^keym1+dj5XEdTBiUdoT3mLHtA$ z#oumT`bzkl>gk5~+sD&g@i+dR)_4{XbFv}pv1dQRcuw>5Ue@^)fjN_hTm!{3pf{UGOG>7IU{^XW03j^OVMFaL7*JI=H3!rzIWejR@^JpDZWPWALM z{4L?N*ZgXXZ%=P$eM|EEU4*~Mp8Xa4P4V;^{7v=rS=Ng*Pe<`L-P14PZ-%E=;%}y> z=izUbrys-LY)_BJ-yBch!0{v5^S1&1=6d#}_?zeHO#IFF^g;ZMKO7V9|3vcx>syH{ z{vA&X@i)oSv++0C)8p_r#nb8do9gM?@HfrV*Rmd_c>b2f-*nHeZzN}UdMf^Adis6* z&GPi|rnHZzXW(y+rzhcWuBS)hZ=R=z;cvdD`{VDw4~QhPm{1?j-@iHj&LG(SMa)$E zo#W|o^4HUE;_pIFA8bndmJQM;nu%&(Pv5Wh^>mur*V6;kzMk${jrR5Q!m4P`-*fo8 z*eib={x0?ONc_$6^d|gW?dkXNH{HuWUE|l&cjE6_FMc2VUGM2`_?zwNR@FFudiwir z^p~gq;CQy%({Hjqzvt=YtbZSRx>6I`+w*50^EcPCU&j3S)YByye}_E%J;#H^-um)% z&!BHa_CdqHEHD3U_?PYJgB&jk9+o#e!_N9!;>sWoo)2aHP4e_+)-!!S$o?go51Vm* zekN7f;Wmy>dMN9-zH)JsqaK@;t4*2=hICk^GN% z`6bd`d7eH>d!6v~BaF8!&)+?qPhYKotC#)})!);1kv`Rnf4(uj>g9Jk^)Kw{pQwMD7ylylDY(7C zzqV4J!ht*J+ZZp|1v=4G;Cwu-Ku63b(&rRto{=a0umT-18PsREr?aU~Zh=lTzjHn{ zvOu#3DfYYq&GS>_|L-4rBBU~33j!kM6#nEF=tOg*HOJQi9WjHo{ui`YqM5~fALrS3 zbADUGvtP@6PxACR#>Yf2{%5pDhNnkU{!~xjNBJ{6U5fIPz5KM7T8gK~Q+}$a&(&kS z_0r!&d6}LrLwO55eFNn!_Vg!QpDp!tMas+a^v#sF+S8v<-dayTOMBNS(Cl$Rf37dk z5%XD!KOPvbl(*Tl?_>UL^>i)r+u`Y}$S=p!D^pkxJ>7=<-t+Vm%%=}My_orw>*-o4 ztbd*^Li|IXzLNMyJpC#2C(qM&cVoVLdI{t2w5N|VKF@giYV7}xw}`oh{C@H5zf*oO zPwV~r!UZ~N9#3Js73hemM}13sdI|0Kubp=r>94Y$J%j%G_b<_mV0@M<2;lj|RR8ym zh^fZ$@S7QBc9$%{R?~g3dXDU_ppBv)9e4u&xqMe{c{TJiDm}lt8{^mm{E+cvY!4Rh4%6E z-ISMGpc73J>5~d{#FQX?UV%1DLPNeBXXe+FH`({Is!NuC~}{_*sH8|e>Emt=fqdb&|N`oq(;xc||pz<>5+ZtmYN zj+lLoxSsRuB{*JWd+7(aHYUZ>|ImJ^o^C>arFlA?{;J~Tcbfi6_w1V(uQfdTgEhE* z_4Kb*{q-_p>eC)MUi$yhKe?W6O?$+@2OMwGh`FHilkmUoTb}kv@^mTMBiYjxXpa<6 zZ=pQ~c>ess2>}26EWGGpQL)}Z?BHs(-m4Xo;-j1_U8EL<<}p7hkJTNTiVM@ zKc4fc3{Nj$@WuCeboH%+znPxBGXAD}`IW$5O+ov|dV;@WJo}&3{Ok9K*-ZcDd;W&; zccK@+B>rZ3VPj|)N-JZS; zf8X=;UtC{(=;>eT(|=xh$Li3&p8kUCt6VSshm6-O&t8W9TIkvHdQm^m{sYIqPd$54 z{5|C9a`=11(~a;q&(nwT_k^eSY-!oqP*BMVKo_!yuIk@lK5*1=4-@k!QY6dH{fq!PcOmWVxE2if78A3G97&%PFa$9d_Ow&D2e*^lFIIZt0;y-4zO7XDW8^dkJN;pwUPTgTHA@i*Di zqwqJ+YtKE5_f${+#CT8h^!tqWrCxnTu-;^O`d~NeUr?V!ldt*f=~p#BJpB~ok0s3g zMa-3)zu|I$o=*Gy8$V(ergA*?{4YoQHS_diH!}Y{-H7#Mkf%$w;dt%ohiTswPrpF> zw)6A}*5gi|?oIo4^YmpnoA0&HM^q-&v)7`1`*=DD|Ign2ezMtY6pT z-*C@<7yga(^lJP|_w;4>H^$QkI9`nN^dkJ5=;?pxzZqV6>w6-iK>+VQ<6njs|0?WL zJ$;b#i5Z?Qg8y?oy`1A=2`|6%^lzqTzn}BRg`OTreo0>Z%jnP5p8a#y&$XVuz*=>> z-#kwn;^%w%N$P77gYvlFtLrIG55d1APq!z(WKXY8p}joajr>wQy^;LVJl%x)rF;60 z_VlNx`>TCTjlC@0p%`Bk^(B{Uw^y#MdFg z{zc4h#AgZ?=(DA1KkomOAS7gX-@hvTQ;o1v(uK?&W{9lz7cEWRN6uH$)rAoDSxE%XEOComtd~~>B3hqp4_|R(#04r!F%k|Pm_P}Ub=KH`3LWxOV4Kh2YUue z>$j6&e-`OJ#1Hnem1f)Wg1xz=FW^tGr?&JB*n_?ArN71=?7J_$1b>5X14*~0ykOsc z>EhBu?B3wg4Jbd@4_{CjBM9M3)vo$cwpmr%cI#tepvUzYMR7IDo$KTH2ac(9L&^ho+U>yc1=4VHeH z_D`ZsQsVv=G7;9ZiR3{s_+QAJWZ^xEFcP5Odq8TWT;GWmP$Uzzjy_lTdu zI8yz7$B`_?2u&N;73u53rT=Z;Cuy%N#z2b8uTMkvHXwc{r>{eIApbz0CH_FtXF2Q{4Zb+;!l#D&I@!p{W**LFL&wtq8}&!N=_HW|4yW*3i14o*D&$lU$1ex zEo~EgFIeN{X6A43ePQXhSZ{I z)Uf;|@t<@Ld|x<(;}sdGJ3i;_bTlqJR z@u6=?Ah_HX|!K%^^jp2#mjF={5)yr?`HDnl#_(DAxcxXfeJsagSKd0xOKW7}_f+Nor4*F(68#;Y0|{m|<13x=tGfKA6CQjQ zOY!S!qPXu`Nhf+;s`e{E`pmBX`uhhug*F(+e~O<>J%jIkNe{)(;Co(iO@8C>br^Y- zWV|$C{OTNmE{LbEK;NbHF=n>YU1{(18}0d!()S~+7Q5!o|9<43#u_}|wZ~HWKa0LP z>(XzheNxcLPA{W9)R%Rgu15J8{TW|Qm!kaao8m(%?$0f(MaefC!zbS3x)uIp3^4KU z!pom7_>+&n?OgglsDIi(`aR z5cLiIWN*dsCis)yrSakZr28=5f6g%7!Jq64|D!Ju7<}JJ`4^@AgYPv-pT-`1-%0v$IxdN@ndBwiMH7?1Tlg;?pYf2< z)R-ww=eHp~^Nl8s+tW23-Jkrq>p%5h**mb>^{y8E75pjwU;pV3uRG$$@RRgk@Td68 z|5M)G_!oSKLH=Gv`yL^lvMtH_`zP}=i?OrJjh`a_na}4)AN(o*$^U83?f>!b^8b|o z@4b9mzeimADNp4$=s)>=|DW;l&42Q5`Jeos#_!-y`AwidgForB|A{|}bAjMb_D9gc zKCNn>qs+fxzf|ek=wOdo>7kmh=j>ju(k&T(!5)3mHPFGH#L`KO*I*x9=?2(?efp%! z(%->ewbHsb80>#5J&^S(*jHFud;J98fRO%4>koS%ZzP(u>J;pAEM1I%;5!e}&*6Wt z$EoxY+1;)$9cPXS#(7wT5&C>DV=Jr{Z?m&MA`y)&Lj1IozAU%ry z3%(s9{S4zR_*RMZKg18d6(aquG!NL?L&@I77WEcwSp_ipFkljIwGTUGWMtT(~8QKcKmfA_s$=`Hvld@ESGhWv5g zRFr-Ie}Zo)N?#;>@a;_Lz4#Y=zf^i4{siAXl-9Z(d>>GH3GESlk5#&d%ID-v-(r=1 zit$uph%vWv9x6TeGGkIW|0G#l>)FlVTLH3vLwf|@<&d63`i$Ym9CPXCQ=j1bd9rU& z`?j#(u#;{<`rzAr(tFi^*V%8-Nxwk3!FS@MhiUzE{eH_1oZwX2_qP*Z+T+)wG zUhqvY>91(7;9FDDyG+7L)YL znxCWWcaNn1qP*byXVQAtCiq63^ds{BCi_h{>ED>|!MBK|cQHSM?+{Bj)bVSF{Wh=k zJ?P-OywZ2mKf(8{r9Z}>;2WXRFQ~s5e@&eK_p-hP-_4eNIq`$-}sX5PJM!JdP(0! zdj;POlP*bn1>bCyenAV=z4n`3(qFKi2H*dZen#tkdHW4k>D4;Ey6-DV8~hKx!6e;* z<8cYbdtFz*p0sE1{Sw)4KnLF^k)BU`1>aARzLzY6@1sc1ro7-AGt%`j2j6FrUeEbK z@cj_!1l5o4%p|$;chH`}cV}ehQncWECemdnFZf=GbOZ9sXE9B8>*-F72iCiPsHg0G zn9uo>IiKgaAl*jo=l*Ca^PSqCe>8)#N3rM6=lX+wl-Bnc^Ote{ji1t2V^3Skc@lm| zH~7!_+;fzdHJhJVIIohuBJG>Te=+A@BmS+Mt$l#()$uF%_OJBPimYGHh0IyvNq0f# zT^2DrUHWaDAYRH^Q-}1rep=3aX@S;hoOE7u@55mU+a&mPK8JIry*>Hh6#3-U^!e6`O_v`=BLy;hKa_Ct~Qo|?*k z9u2u07v!eSpC3f8_Vj4dFUF{0ul&~1o(befadG`b67z@rrlFPJb#?HMe+T(hM`wHb zTk7#7#vuKMO8h+P<@XEajmIAJ-xTUH7EQOs%Ntyk`o0x1^9fUVQ}8FNbj0Lfmu`W5 z5dW?cj~_EH@{bHpM=Bfh7Gr^IG^p(mnKEC3-!1dodjED5<3GqFS zWZy$WB%j3Y`fE7$v@;yH-1w?Nect2WOs9DM&oN$dxR@SAyDI%Y*8j|^tW(&fb16UL z0@rQiBmD^TE3;JC%*0RWFX^wm-^1p8(n&X_K1mf4;(G*27ga&~IL~(ZT|?PB3@$^gR>7G81)-`ny{|nM@z)ny+ zzjv{3MdoVCx73uF)-05RpN>8A!d7HUk>B>9bhW>mxWL7wxPyZ!t3Y)%8 z523yC_>rQ4%dZ6UH{(Dk{!E|pE2jKD37P-7@zN6ia$lkUsh8~I$uEQa^gS=>x;lQH z44Kb4&yju!oyh|^5m(=Rw0+j!A#)waW!YaK-x61G9l^MfZbSLHDE!U&SCsg9rMR!< z%1>pSXYs(3o=H;t1L~W+Q2ZG#>6fNph<#f^d{122|Chx0M{joiZIeGd zfN{aq=REmk-NShg^;Y~FG%@#u3`=TU*P;IDFNX{I^FH#=jzvsG@=^S%==4evqkN=) zB7WA^aQwPbx`^8AXxJQPj7oRI-*u!7)|cvxkKB)#_pbi>o@Gk4f9JoReaPVE;}EFy z`W+|z2F^QO{0myYGZOy2|3=37jK5>femDMPaxmTN^ovPEpBXWeLpHyAY5(l=oL4yA zCz2dXBg$*t>l;YA@jhczmIX6O8v$< zoma`2=kb~9#QUom{%%Io9dZ3mb7K}zN0yJc{zU%ggw1KF{P!hMzs3>s{0&z3V4bQ@ zdj|23;9nm!S;W(i!d?ZfX43pGLHXCBL0td9KR!ZJ&A5IBt=|NaoPJ#W_ft6j&ZNrU zU4;G`5H|O@^|vzi)Q2NxsB4c^_?dP#9Dl}9@yj=4J)-cHF270Se~vshJADQDq^5<< zTU0>tw~;<;OeB8KRysoZf$_0v{kuT@@<^{~qxwuHetPYQ9y5uj|B|xu?qIw-f5y^I z84rZx?+hrvueh*C9UC_7-FThTmeWbbW}3^d27cro3z@dgpI&Y7hl_~EUH+?CKT_|c zehId`sp#|(e7`sDBfsCGlP87adt$4+SMeu___bX6Quv$mNW{GA@{c4@cKwKX-}&2_ z_Dq@(F&y&Z^%;gvZV)l&oV|r~!-%Qrbb43%i@Ckn`M zyJAm5KjU;F?VFB2@3`^!7XBpSJIxpOCkKCYkBLK8Tz98EzC|ZFt>2g zvipbQ?+B>8D=Kq7#C!c;bb8-1@AKO3EgJvbkE7Cjt0%^r_G z3!R3h3FEqD690HCV(zB^l|O`bN~aGvf%BJ){oMa|?fIMf z)BVYQBV!}@lm4EuAN)zD;7IUYc$Hs+ev|V_K>eG5J@`(q>?=theCJm>Ou1Pr<3l9w zZyAn<*=zp&z3ocu$+3LfC+CycBV6QegbM!%#&|&Q zGjV1@{Jx69=hHsnzLEHOS8M^}i4Kdf&aV^iVP8P%Al;6J7oT$c7%IJMic%xkxM{T<%Kv*Arz&R- zjB$ReJ&hH9M*3^&O+U$g62@){n=|6Tu=!cMIc)wE2Zc?T_Kpn>o1)^7u&G0*DV?6% zh&>*Tk9FzRjEmUwVbfXUN5)ifb=cg>c$fWN=4Fhr_dn)ijPu*y9LuvlDLlkFqwr#m zqeQ|NSG0VjlI242x3Eda7OTQKFY@1ARc*WUtA^&^uRxXCp$57Izd5sD#8`_b*0Jne z*RoP!2gCnT68k?Z`)mj|P1 zhe|`NJ`Q8EnWwiv`tzSV;H(6*V7Rq67=fO{^G4!at{+9>O}gLO`;Q^NJ85@L%#{BV z<6 zcL{|O_UwoG5)?D}tkJ<31Gil?f&jY98lGuj2P$kq4k-kHhC!Z^h@ik08=NGv-0k zy$O}Bb0(Sxq!)<9e?wfu`GH8h(0t3qBKdD}j4ZHzJO*Ry5=_bykc){<;)~q(betl- zgrDLIJYTtxa+z06q5N6x^ft%oPg?u8Q1%T^S>0z5nvH6og{uEC7#YI6T}=1}u4hE9 zBd-^UH(uPx?-wEubU!7&%=yvNq`N<2u3myB|JpEeEA1(g-x85=J8G#dXC{no;y$VP z3db9f2f{l&YxDVMnT=O#IpMD+m}|w?IIfCYxK7Hl;opgb|0EK=kz=^(aTvz7G9EHESM*PnyM?Fr^~aYusLxyIUmhOu{;_u{+M zW1ZDci|FDn+IT%->^+XFA~%5sK^^ax!U*@{man(rjb5_xAA<7l;SF#v<4)u{^74)F z1Fl;|uG98!B0cSzwi!+Q{@bixEV3@{5?SXixbR6iHht^2Y&lDy=Fu9*9WciAUj1E= z>(J{&t{+E1#d}yfm+|cQxx(r19&g+5o5lSJX1I7D!OYqXSx<5t|8y+;jt##G%FiLv zpKyQuUF+9GsQN4rKjn8c@iU$`g%MteIV63Mc5%Af9`xs2zkY1fPlb_Q5%aOgJUj_w zhxmOd7kCZy7Q}}b3$9*KI{5C`7*Xj`A$M}6y zJf2`~6Tj#89PxiVmwOnV;rikjq}<}i;aRTZPmm8Ab`ATM@%CNR+;__IOQ?9)eg}Wx zyzs2mMSdiHH{NT8u^+iFDCToq5r5)-|4-O?D5c&x$TxdOiP!Pn7a047T|!? z8~;U)gB5?V;R_rO!`O)g^W(4ZWP<7Z8>GBqzZ0)>#C$DwWxs>-mOU?G|Ca0Gzai!9 zGdxWTuS~FflM{F8x494#e~nrmECf&KcWih%!JHJoV%%10wc9MMLp+ z9|L3O63oNm&k1I+_&4jc7z>+iVzIDUzzxCJC1JBmObnYXmvRs7>ZtizSc z8Cn8{!)CM?WgX(9!I1l635le(k2eD+>+$8?Ob*K0%zZ;3a;g9$`_jASb z{GKNM!E{WF z9qU|0IP>UMk^U@G4z`P!DNyzLM4Ep8StQ=H@`Oji<|Q7?QvHfmKr`O1bgbrhCW-Ju zVRK$2pEDJ0`s0-#{3XZD zBK9Av+y1S=Z(+*60o45KD_#~hcZ%Fc&yby)r~g3B!|Q4iUYc;ncN}|hZX7EUHlv{8 zy#|$UQf+)c+)m)nr_7BUrr8agXC^u~FDGzLxkL9~OzE`=KG>UBc!su`kzQjbK0eU+f2DE9e~(D|16&BlDum5R#~2s* zv81r6CRPla=3*u40p;&=BIof}UvKsGP~)eEH0KjLZ$MWGn{KVpjJJdobXD%FiQ0XseXVX_{Z^PG$#M=O6KMR%r zeH|d})4L;feoT8%Y#KI`#b#mCwiB!sHeJQqVRNHMyz4qc;&l*-H$!aBco18JO_q2a zzdu0DqnTYG53T(LRsT6%(bT7XH#B~A6Y;+{lz-1c`S(G08~$Ps%O*W-{FYGh?tzN; zg~IXckyLA+3T1x-%HFt_wSNQEPosOI@guhnxbSGU=|fHr>rXoR zb2LNgjj?YP(3zY^Ore#LfS^OKkoHj&#P{aQ?HA2!uR!e11b zf3Jvj!e+bJA#6Ss>Hm7eV8^f-D^l(hsPm}x($w#DY1*aX9q3MBGf-syED<}io`~eX zN9-Clb?=1T!sd3dJM&KL5jM+29^QFdB;BOpFg0v4#a_&7v0m7m6?=!xt0UlzVKeM5 z%4fYeb2sFCpvy>DF=}>+9RH8p1C!V<TIby7318$H-(%64VJQg(%K14X} z@T^FEpA+kb&DWyJ7wd=3knu2?dWa3eW{h}k*h~}~hRy5=koJB;B)rB%Nc;vO@l!;? zJBq|_^)MuUN0IO+oqii?zWyjp`O!yU6V^4cao9X85`PQSdR}P~@tJ=&IxZJEzP~MU zd@q&(D@RQe7`uh?#I&$kBitc8Z>(rx=`|G{L;bC*Xh<%zkB5dZ0 zcj324ek-BI$(Pc%hRydP>8_bgzbvaq?8`oM*iz690@y z{KC^Lr$g2MZx~Ato5bnxZhkKn?_nH221l|ELET5(B7JYzyeE$0{6XRPTW$uL@~4TU zpDU8?8IgQ;%(UrGL8U)0lD_gRo4y-V`u)6noE|pE zq1NH=r5|Jc5od(WAL2~PSqx_}zs1>%AE@|qrRUI|BKePa+S>0E`CaHCaT34JErA)F z7m1WNeJOmD-;G4_yK|WhUoE0T%i&~>x8l^WDJf0~n=3`^u`FvZDPq4;#9mRv-fD%d z|E*B{`l91QD{Xt+wTke$jQ8hkymf1-Ps^xT`kK{8U~FF46y5?eIS&!%vmS4?_8~B~ zAZ%udPw@MxxG-!!ejPp;HlK@6h0O_(@Fm+RmvO&cq#v(-19pj;u5Vd?MnjE*$uL%& z>pc;_S3>z!V=sDf*fbKKW*rir;dm@AVLXb9Sm)lioc@93Q!vszYX0}3)rlWjU3{M{ zuQd#R5H%~Ijt9FOk2@xOY{M%#ws9QlIN5Qf<1WYJjtRLgy<;24p^lRsH$v6_6qG+d z@{ED>tWQb*VAK@<4F9vj<`fLCikij;A-WYl(JQzg1a&=M{D@@@$KH-xU~FaBeCc%4uZYKn(GQBe$GOz$mz^&9wY9f`u~n?| zQ0>(8DE{3MHSI*6C+#WT$$BK-9yRszY`nQp`F{%44quA2<2NGh@V!Vo)i?%ekNP6* z)Lo<<`ir#7aFO;{2i4w3q5SyM=|jiykMVoWHiDivBDqhL&Zx^lKtD(v%@fZ4G#+8^6HJ!vqqUIKHLez{FdD*x6-;jCSQN)iv z;vm{XH*d}V~7KbT(7oh~~$oMS@>4$NbanJZFew!4p<{3M&9Pd%V@ZqRASBhs% z@T*j5^rk3#*uxEs=PURv@ICG$mqjm&n$T6~N28_!RQ%r3ncRmFdqvG0k#*}&7%Oim z!|IA6?a|(`PkHjI6*V`DHTiu{tP?d4h_$0!YZ9MvQ_XQE47ZP(3*z;Ry9&1a{6a$;enlgzFK=vhV^R4wfy5u!)Y{iHv-aI0`Q|jY z`lv{}pIg}Q!YyrhRgrjIuebgWg=(+;juURM;R~R`OSiImHkAG`1x}8d%+`>8Dc=V2 z-1Pfx>9=e6eNe1m%rP;E=WfM{JUb&+;uZdOl;4E!FL$u%_QLR|QS)X;H2E*@1Sdw> zPt@v>ovlvpV)=x)FKYHU9qMZ1HFg~7xXSUcW65qdUVq0cx}#YKS2$Mefq$$ke?Zk| zOi$}qw^TIqcY?_L{Z_XECNmofET|JR>*Ndd>qmt4>8=>0ie^BeluL|cp;qnn^*0UriU0<4Yt+~^Eq*?!lIQ@Y1 z6u!6P^fOLxaQcknjJv2$eV&;RlleVeY``<1caxrVau`&3lN{GLzUz3x@tTpuXC18p z75@%t*3;cPWP~n3d$2-2{cuw3KHRZ+>G+c4`;Mm^BjarPDvnbfmplFlRsR_eLF%~( z%D+A049@eQ+G*N&?5w-GF~1ExV&fIfu<0s8rP~Z+O<2#wro8_yHskzCY|d{g zkJ|X{V5Ae*yCUiCnT$P!_eRCmyyq*nW1SS+bKWL);5}TZ^=SSSH1U^;#9t#4|22{L zC!z9vcN!cQHEpI_h9AS;k>@(aPOPh9XP)g7yYRfW*p+ofY{UL1Vq0S>&a~yW5jpO> z>iCljzjT%j?=#zSsbi(NXvW#h$LR--n~S0J(0OQ%E2E(FBx#N>k2}3gn&V8i)9*Qc z<5)fuJI9%tQ0Z?Jr$@~c@iETBWGDZ^^R2xsRQ|P`ZXr$n-JHJDakAr!vXlQ7r;m%| zA6j7ZpCLAknwd|)kC?CG-BDBVNjR4CEOA=Y{Ni-or>y=%q+c#wWO=hly3UKOzx|-< zbDK2&j&?dj8h__G{k-EY$M0mv-(Q`c@-+G2$666T9(cy;mqhf~Wsq^P$+7-&J1)CG zwOc1Q1`IDQDVZha2r&j}aaZiNlcg|Tkzohf!_Pn*@0^9k2m zj(Ka)pGVEIwU#y4S$^$U^98F%zC`+-#w-$3jp?-!_Tqhbu{W;@iZ?Q!#6HX?u`lsO z%6(4kXUt}?2YZQbhNL?zlJ2xfy5B_7CB6ztS6U=pC6RQsx7m8Ng6hWuPG7SfeO=Tn zhq3-V$G8Iy;QUd%iTBvvz|Qs30dWrPB(7i`d=t)P9Es~Wu8Qk;Z&764*Vt*fLgf16 z0~i~~Hds0EW}b_K5#C!|ArgPsTb3Wg*dWfU#KEi&;tV~uH@gq{3KbFW_ceIt_JCH#gaHigRX z0KWmrp4Zm$Dt@z3c<=V)^C0guiQ~8)7auZao;aTUBE$(C$Ha-o4C6N%#eY;J{ydTR z%S7UD5Q+bqNc_LMz--Fw3ODk*Gn5~fcZ1DY$3^_F-V^%^{I1m-^32`w0oK1i2BII~ z{mQ{`68#{eKOI848>8k2u}jpn)dJ6wT8Mbxz*`w_-#S@78u?_e*7k({EtADd(B<=k-@qGrElk6 zx;S*KjkgNM9_1N+aWe1DiI4HlhB$+DK%B`sAkJbP5NERvh;um45a${beGop*co(M_ zbG0~?=k~>Eye}qBH}QMc@~<}cu5}&S%(0*25XYX}GgrLfP}hyUxJNGi#3ItwRyON;h;Y!aZH-D;!%nc64mOJxAG_JEl3_<5-@1ld@NJ?B;lrqwZnKUed9d zV|&MQju#v&X4&}l90x+x=K<+?+;0*yjaeej=XfVBVBaODM{}=I@h3b__!G=~aUsW> zHSkH^p%tIvdT%}bdpv5sg0V%cqZ_P!len07!x;05e-qSvUMx*`B6C7KC1TItYRfwh zV^4D)_&R)s^+(KNk7=lJ6y0WZZE=M$4W0gLJ9;Jky~BpzBCay#PI0v{jo+~0=_28) zq4K-yP4sidta9AycnU_Eaec89`}174i)(mSLR`W-BH~i^f)jZ*@ojOLF@;+LH7 zi{#U67d&E2ib(#Q#20v{MT^%Gy_y5wC*yl2GMc%NL{V$2Sa zdh8ar8uOX>x-mbC+c>W6fp2ntBjy;>`#t=j-$w3*dEEc~5Prjbi;ryhS;zYOh)?_V z7IzqPyZ8paclMdN*1lN8zEZ^gsz~~LsPeAdZ*^~x{O%BmzeFVdCTCy$iH(;d z5-(RI-eHk=XPv$9LG)X^%O=wP?ZsW}&HOoho8zaro9ig?9b>kO@A9tOVYr9>hLL+Y z50HM3Q-`OjFji#L1;^(v{R6p*N z#{aLxL)@1;YUj^R82gIz3-N3EFOT@Mqo&9)^mn`uC4SF)qvHSAZwl&noJEf791l9S zJ5Ibaj1TdwF_WO;|0ewd>(e)o{02dVr#nt|+~|1O3F7@|Op-`GJ)z>~h#R9OU*Y+@ zr*sk?<@_G%e)(3XOP(V9IM*HD!8~J*iN}~1-;C{lYjCf93wG_#5#=%KH)Oyf5J=^zXdiDV}HFH}MbN!4fa<9=G@>?IK>}-8AuU z#t~FK&qybR%muMf$P_*Y3x~|*Vk~5;h($u?TCr%zv=WPj%(>rf`Yz|uWkRO6czMX& zBwi9S!^KNOW}H|$WX?m4gJOSJR&?y;c*=3`1>#>3G9yINj}^;?%okAU&pIajX?0`A zEsh^J<~f$SXydJPeBJQ_$G;sX{AJ@Ua9r*9xnr}x@#D&n=^#?iQBeM@cRc4<=N}tB z2*$3W9Yo@fcH#S^soz&3_4{6=eVQBIB_O}_nWg{l3?Ria_sB)CX5vinGZ$syXeBZgwf>JPb9xPMDlwLs=SXJk2{v(MLdO1 zg352MNPat9xQU`mgxFIbl3zcl_;)!@a@^>6X(I7ThWKW$&8I6={Kufyi9HIxjQ8Z{%A0}1~nFC^_koiWe$UMA+ zcwDCpxYV)<&r;~Tt3^rd_|Z|skEfyXeaUgB;~B>;mk|#?28j4E4=VmH5kJmB)wf0| z>{UXhnOHSsrbESh#&Nx4u4A>*#H$uEjl}Bgs{j>0QzYM)pz?iNntGgqu^Ox&WnfL_ z0hE1(^tBN)uoCfD*C#`Te+FZ9LMC6V8!~^3_1NjQGOW)!3nLFj%`|a5*KJkchdl3D z9eZ-fw5efv3)K1BcLoKXs;J6wp-Mdcr;GKiWYfrA)@b@`8jRf-GIw@^H-*f7;=qu3T)dfeNE{S0`^3Q^ z^Mg2qeQmqL8$za@*eYath$*b|Vr$ZiZAdS+CB4{=^kRF`_kbNpFLoro*qQyB#4aH- zQS2Hr?~C2&U$J}092R?o%xd0^iS-Pb-B9)D*UR!CjHR+qP(Q2p!Whr+4!f0grxxcY zP~#~V#(Ia$l|u>V_xg@d`OOpigiMx*ebj9>pLa#l)fq;3-;nw1cG7j?Jnasc#d8v3 zZGI;gJ2UUaIy@I~HzeLvk$5Xa;_ViRw@)Nqlab`xKV)vc*Ybl=upjFQl>Mr78{XkQ z8{Qi#zdJ?p8zU004`WO99U@YXiQ)j(;rng8NsgPw*zx=ajNQWd!UHfZWXg!QhPb~$ zeM$R}<7~&RjupldZ)nKW6>r0DsQ62zhq3R8NPZVxc!>wCy^>>3$CqI2_K?{wlFvC8 zK9bFVb)NY&jNK73r^P!%rWP;$YaVuiI*ts6vAaV2t_O#+-;p?i`m@)C;@uB*-uNtx z-Oces92qiAAF+Chh&})n|B^|>XPtgO!*bqa8@?9C?g^RA;=Lhre2R~1Qyjy57as_j3bUA*TmFg{F)ZjwKga zz25OvsP{%HE+%{rzb`o+h4Qz<(}Yjs_hIofo_81N%S}-BkC&h+Z`?A-CTwS*!rNq# z?;{~IWd-4s|Itdzma8luTn+0-&2u95%b&CQTNvYB&7acvQ~Y_$ZH`}v*Yh5T(>>Q% zd!|S}Z#sQQBwo$6*4{%zFNCp4A@j4C5i*U}S^Mpd4>&#{5`V4JO%GF?=e@nREIT>QfU!)@r+3+Ww?mD`T=6UJbBdH(vWgh*4|&le)=7_knvyl2zhAd+sFNV?fj={7q3p3^6tzGJUVcdtmgg(B&;L#6w|>2ppOr|o2)F5>6o zBI!1}@Gqg#{o(XwA6Q){9b{C&zAB6)}pB2&1e`56p5&glZa2e;}tSuUc0}i2=^F5$1tiIzg<v^d9WjTK6c;0aYVt{gE}iB-6dBYwtvHX`@j%AX}3eth=>`Ypaw@gv+7G8s_E zEAtb29ph4bf$Pz8mX&_SPTRH-!`$a_y2LM5zW`%zbKNHH4w+|vh1BcKIC(!3s@zkK zzdN4$&4w5M-Esv~y5#flC9YdU^eV?M#PuQbkFyv01HB<+o)L+6NX!nI6XMIvOBdeu z0{Iu^x=7R*{?oFi<8LDMFZ-8eW2pQ-5;t+Y{o67e;@Qw0A@h<*_;&G)km;NN@%NC3 zZb}F*bld0rYS{>viqUl)o0 zj!67NP~}};9F2cnMf|%-#J@X5{2MFc- z@%xI&+*iAdaK?Mp(&#jf$KniKk3#zO8^@m=YnCBAC1N^@*!w#^dUZ{$-SApR^yaxp% zJtAg0jJ?ZwhPWqWuBb}*A>Olx%5NA9-$*=#6MwC++$in~nOnt=xn2}=x&DDlKd6N*_Z}!eTk(vF{2mF_ zu8+aUe)_qk<@1hZxVBOFAgK7mrK$Hqr)S<^)9bhI*nW<0j&sBVtfMLLbjWNHzvDiY z_&wjh6931(d9C4@kVzHKhD@6H1LvLMCmbilPg#$|&q5|kJQy0&qc;n@piCF z#5^scYqp2qL`}LlC1PH2{Kc^`zxgYCtm78P^NvkATKgEsO^!c1HsV@c=|?+eJO1EU zpKEs6?{R$5@jJ&_U95e$qLl+pW#W44^Zz34wR<>oJ$A1*wxr;RsG zB>h6D^t)X6$Bvy+t$i4jeStLjFLykkaN4y|FT%g#evJ4n_otxh6XKZ}jfYFbQ{1QT zW5?Y^sC>eGE$2Xu$Ni4k{Yn2-#C#%h4px4E)hQzSHIaV14ub9BTOcN+~H2aY_E_XcO_~1lqf70<~#}kg{9wwhK-yabp>_hViEXsab zVlnmy5-(vt9Pv{20Tzq1Ptqh9Wq&9!#y&h^5%%|W;p<%ZF0l~%CW?jGFIgmBG{c6M z5()oGB){U1Lh`F360f63c)AOpDU#nJk#u`R;(hJH&$#f;lWo1%J8qgnyb=i}N4$)D zr@~U~Ln)T#dmv&N_Ina9XJ0h&3if#yuVjBN@hbK&63er{|1?PdSDa2c-|!rj$hw&a zV`bTY<}n-ol;dxX{btzk*BmdOY4upggO0b(BK$bl>o9gT`{m8Hdg~nYHH;&%0^>(y zT>c{_(SLJc#ROAJ#J_rvlWr>S1;SXR1m5$8m9=jhtU`N;RoORBtj7M*Vh!py57wmL z#ai^USet#;#X7WySeNu-J@z9L>+_v1F`4w4ut9=pCN^Zeij5d2Vq@A>Y{I@$VpI0F z5}Pqk#OCbhBeqB|zl+zgkL`Tel6~#O8`$?+Y(+ncDeR{$wr2k=u?^pc5!XDASo+aKO`gIu`%>G&8g^*b){>eL~%i%@tGmH3@kY(4=1~4{+c_H3Hd14y- zUx~LSm{f5n<4nAb{k_Ctd{;ueo$p4hzz@!28bXch(c&HKwQJ#a59>aYn>4p*Wj^loX&h|r1AH6 zk#a`73M=uxtfP6&+OHI`e+-rGYiauTH)k)g#oGIdq#x^eTqOUC&R%sZ8vpA$Hg+8A zxDzV>La*C=YB+WgDQ|$|M3H=77V&GJWASY^eSauFCOT$`q|XsacUUA{{p~jXbx`(6 zJFK1urANJC^&}`gFURU7Fve}n^HAZbZ$a|?bhqWtBKeno$Lf|My3xC&V}9Ns7Ui-G zY8XBI`6{Gs+N2*~bvjKZ zO<osu8YdETOZkd*M7@ALkC&->o(oh42b^gIIi&)BHH6oBFg<8 zBFcTi%RrQKjo?Ni(dI%gTGt@q`%z6F#P4P;63ESul+L-=}rLI4yPH0eBgwZ zFBbeLknz_8*-rh!9})Z#`Oxr$fxmajqQR_!A}vPH*pSdH`XQjb5wrc zx=`~E5iu?wDgvTB@4r~{%ZT6?7Hj^<2Q>b!1PDE!zg&lZg%^3V{C8F${NA&04muF~ znO9Y6{tJRvRe_IwSw)=2ya>$e!TWrOy;y$|hj4x;F^P34aTx1A;^rJ{Nj2~moTEzI zl4G?Kx8gl)#9MJcR-^TI1M_agdD6t2us$QkbF7`jKAewB?9Z|G5TWM*BJ|{34TPT6 z*8meZKbbgybFzuxpS=ipGuGL}L9CPTVsh5IU2qXzc)@*(SL#p>_~T`Zff%o!29kgK z5`4`N&GFt1LKUi6YnGWgiaR)QqSikJiJkt|LjiiVUK@CgdMFCyjSo6;%?Xv z5%#)|_!-zW5%XQF3kbh{KM{H!B|^`4h)DMW5$S$OM7lXKAku9mLT;Rh_y+~QMTFc3 zx^;Xd5qgJ+7h=6ZMEo%#{KA`p-c33j5Uc^RfBrkeNdM17tuNIZ^pgYZui zF@6F`ApFSR5aCyjOZdIRTHo5u;KN@%Lqxe>BEnz&Y>Vbcw`%?n5&Yl(xlUI&g79Y8 z0r6(k2grJDV0bI+Ou}Of-->-m3IBv)lq~I385y5SO zI|RoB?-tx8xLfdE!TSXF2;MLFfZ&6Idj%g7d_?du!3n{Af(Hek5cd zAlM?j#SR#n6O~uC+rb290D#X^L!WuzrHL7r(V1r3yG z4#9PT>jgImb_w02Fer$x#3?@mQiO#FAMdzCxt1L9j)zRj^I4LvWqodch5XU4lJ= zaY5X2DE&!6Ona6GV;@1wgEsIH&&KaviSNPh%!&DyRY(lz_i=i_EN1vz%L)?1_+FS` zso(;^GQkSL8o@<^b%G6oErP9rZGs(w>jb+5dj#Wx1Aw^5`13pu;3BFqk_kXSdX3%JSq4(F@b#s z37;0UFrQK0D_BZIKP?ih6KoJ{BbMVFPr-G9>jgIuk-kSTE;t~#NAP|@&d-$R{7m#= zj1m2Uiv;TggD7_n%3CAYD#(5#pY2U7fj%P3N8BO!kl+zP3wjwJ6y!X`F#QRU{(?w* zB+`zEv=8E#;6cG-f|!5g2g_au0b#^c)#FL!6H1Hq5f9Ey9FN-d{OYUU@?4vDv#jZf)5HlC3r$` z1bf+(e^Bs6!D7GUD>x$fpx{%2Cj^7=In+}p*d@3{@NU7wf<^F6lg7*rpf1i#&c(KM~f_zUo_4_Z;xL$C#;6s9C@7M7g1jhs)5Iihc ze3_PO5ZoX*BDh=d0l^8uV}eEVboy4odj%&1PYTw2K+CNY+#`5M@T6ctiIyu9Y!e(1 zyjO6+(lKEP0o#5Sqj|rX>Ecr8$6TDk+LeO`mj=x**0l^mq{R^Z#f<1zJ1&<0AeMrkK z66_MZTX3IX*+MP1LGS^=gMzOMmRzOfY6Le3CI$Bj?h|Y))AHK{J3=~~6dV)0Pw+9p z(}G=LEzkFp(jM*=d`R$+;8DSWaxFI@cto(ELi6hcdjua5JSym|)N*mbZGuk;E~wJ+ z4+=gd*ifzcWi=Yx1P26n3GNj|^2LI6f=R*q1fLRo( zUlcqk=v^-Q1SGd3qHS6hmQ#stkU5U!2!V?f`>G|Jdm$8y_C;nD=!*T3RM`SUz44nOL&?}+ zEFl^reZ5_gM1Op%<&M+ooVelsn}?(Q$w+4+Iye+V(%9gpt(M_-_x9U7G)`airWk6+ zqM^pouC3NU;ub5~AB}Gv>K%&Q(%avK@WR1Zd|@)SC24i`#5!++>V7mwJkr}gFr2hD zN8`O+(PS(Vk8VvMoY=Gpx z$N)NqJr(KfiT3x$;t`~Y4D}>tjqB}qM>)L?4a5CPv(aKR;=TQ>9iwBNZ1u=+ucpyP znnru{_w{Z;-K9KAakQ%o>H7L&;4U;oG`=Y!?XG)lQ?$2#2-Q;^zYi*#L)Xxv?<-u_+*W{hRURs(1-HWcj}h+`-#o@#qD zcAdmCIkSy*N8TMfG(0$n*6gxP!pTSvI>}mf>`YGQ@K7?*C*#2_>ds?kvZ2`EW>u-~ zgsz!uL^|ah=L|7qY-PyA7@8fa=v!jFn|ctR?2RYa3axvw zCl-&xn&A?Y(T(w#^u&+_yN17uMf$ork*+U35E&RubjF5;bknzXwCOJGUDD7L8AuLh z^A|7eXpgL{bVW%u2cqm4xOz!}-W(oauWIug;(+Onv1UE+(G=roh;&8=5QRZNpBmXT z80{a9#|9ECsEfZ50aY*MS|X;DsyZ7n-r~r2q4G>xOuA~QcT>M4lu~L=Y*{R7B9<(M z&&Om6PqZmk9to92`b?c+R45OMH8Uo4{^hC)}b>q|suQ<3+{pC#A+rMeZ z+MF2Nh#9vpIxwKZocPeTx=(Zuz_Fk~x=j;fxNW{!S+j7Y=LUx3L$Qp65jTr2VN-lK z7E#_{)&_USWLTPXh&w*BtMrH!rKZ%9%ETEnVvpl1w&a z>A{SiiRf@wtUoc>hn~lhM{}@T8H@`3hr2AZJ5RSC0jNCE^lZZ*BY$?6U zDR3oazVP`xRWjJC8tYY136k$8dW|y3MmEw|P#dQ$*Sr{9geFN(D1;Eusa7RPi#_QREyK14y*M(mh@3Y3?{5(Vj$sO*P|QYiBJd3 zvi*qRddARZKC(I8NzA7S3(K6?O;jcRnO>o{zgwl|t%si8QFPw%h<($73{^KNS$dMp+6gG#I@Fm5Qs%;hw>! zd0(LT95I7jznaC7MNT|M3)i>CilHVW!{9hdY>f0_{3*pM6PSt$D9tLM){0ytz;$-U z5GzaTp&l$$Zer;=aaYIX6z`T9R+jBJWDb4Wx~YhvSrJ1sJ4M4sC1B%fU%^_~pGd|Q zHZNcOA*>oZZ_=#RVB z%)xz$&DeHH3~z)csKMSwx1MGJu|&64+=}&G6ke6LAf1@nyM^B}ldl{^XCl^ZZHy(O z=s8eBSPjMX`f6*Wx3jC;O5%P2rP1_YZ=a^LQ`59`wUPjhX3+e^K(e=ww~cz`2TE5i zV?48_ytmX#1!G4xS9Q|t+$=AWnPfKOJhOzofS-|*TEG}DlBr;JZkAWdOyVxpjO1qC zQLUxhL>EWXY7D7ijbXmAH_kRwyk@juqwFrWXK)+zA|s->FeDBjtO|#4|IyjAP~E03 zbTx3KAF~}K6w6&yDTX^*m;Q_?vZM7RY!sLsh+8n{GCQszxIJY|1C#kcB2EV4TwZju zcB8Y5B6o!8LpN_`Z7`82pFFd+GX{fO(Da&{=T<%=o}0*-vp`m*+?r(Y(Ak>ei9rny zaI;hw);)Jd#<8fNI)!m70Q`Oomtqz#IU%eHq zx0rCBr29zv7xxWPCX@g}un)=|h6#&*=t}fwRzTT?+N^*d#@3q}_H z6{Rn_MedZ16gLhwNdOMNeYkI77k2c7qZbvNY!-6q+=T@n#yb}KaPG<^U8`6nF(Y2h zXR({;;*G^%yPoqjH*>KAgLU5!ra5Wt40mfUAJ9m8rv!JrYAc8gyPxw5(#V zA)(tcUR6!*doM<~aIxfzYhcWH&XUuP;8zDv2o5z0~SW;7@lXm#QN z0XN{VejU6eI@skfxFe)E86D9R?TYp(IX+s5cdC7+)&7>Pw6Q>WL1-^dkw(QhYq7 z9#UwLh|+;<{bbZ$+Ubzo#`2C<%E(76Yp}PV_kA(W2NS(fE7IJ$VsU+IWJOa` zdt*nWqkeH~W5im~7HRKjT-CTD(y(If@?}fcSxXvQJ0fjJzdEvN#oCM!(Yh*+{_I1{*hLJ*xs&TJQ9#Ou&K38M`VXN;Ff7C zuw}6S6yJ)a8=jo%2ci)>suxcowZ9&QOS0L6u}#AmQ!oz9%(z*?3JB}}AxFSCW&K3Z zPN&_Ey+!ZHyY0?wO*^rAk55^Q+84C-*_(grmSC3r)%K#JXsEMic+efh)PtmW;Hviu zv!k-Ptn3=KtLR9=nd&Vqld1OtCk)ql}HZcxVMZGMrqb0r*u9SRd{n_{9$=IzF_~6_PcxDwrdq z>ejff!zGy9ib-2PZdTpr2)kqO{DXb#L}s?0Zt>-d&nS=)HQe8eWm;d2OIlb}Gg*~0 zSrs!`O^tV@PT-G;42YXbibD z8k!ny8X659LdQ5X9`Z|CY(pz!a8j1LL=3Hr!4U}y zsf@vh(-;g*V=&?{1|v>mFd{StX|oRX-4L~VkL`A}_=#tlFf!G39U?tv^FK1GNQG$k!syZD3efZ79m+8A!#N?z#&;oTcFC2 z^v*^W7GnfpF@_6^5wg+{sF;a$kuV*bTW&~H)@Ftc3DYr5n2sS~Izqy94AUXmKEkcE zDH@S5!!RO~zRXY|7*Vx0A}&Ai1eIUZimc4!sRf>iaO}V+rc-gz)h@b9Xxf2`ZD`to zi*0CS2Tsazmx!U29XKLkA(b5%aoT~QX$M9ec3{M52S$W;U_>ygjR;4z&}vj0acDPu zPH2W!6NE{NN!su^s%1E8R}-sIwWkt2*4H$30p9-4q0jQYHSi_VFX##8eoXo@L(zUrJQ}LjMc26KY8PE4 zG)=Gi9Ki8Jcz`G=_~K zmB|S^M3WPmCTFu@a)#}YYEB_r*_@Gu%~jgv6N)w`Bui@IZHhK0OqSlHg3TFGLvZ#H z9*xhCFg}wAH8vzFYy@0nwZnxS8d=z(Az^$bnL}3EJlLT`qZN&yi-aB8+;T&rHH8T~ z6bg1|3x*8|J2cTYMLRT-4h4%8Cd|-8J0yF@XtF6?xyj=;q>G#!D9ZD{2PoRsA* z5ko6S;E05URF1%i(-9aNqeTz|(LBqKSpMJ&`fpalzhvdGQ zVJn|gpG zZ|>?X7r&MDa~omvcOM(^14#9?JM$A0og(80BqH9L^@9^}Bk(QdGQ4dn6n03s8HuNx z5t99H(mQ00O~T_yJUxyf;c-l=uuanW2)Ei0bUsGXMZ)nvdU({O_^x8DMP|d2?;kP6nvA3 zc1R3L!*ob^EMdZ9Nk==+dHFyY8>OaoY!Z%4m{m4~8zdtLmu8bT1(zmF41E*rkTe3} zVyi(Yx->(=r3s1sx^fG@^}{#C@W`N|rmPGb%T;8m8vyz_L&DFQ^yu4K7hU6`t6g-J z(DZXIwxQ|gTx>%tKj)+@7gG5-m$=P`hcYxYhF#)@R({Tv)bQ!&j5z(A5#ee|XlM)> z5&Aiym7g=>^mB%$Z!_|48spyZ>E~<_Hw{N8eEK|F1dh(I9a8x`VJn|!+>`n}g8GV& z{>BTu8pV_^E9dVG!rCik4NQLhhTlvJTiEpG-@buxD}E<1yVDbPhG!F=?OXY6f1TQ9 zsRuh@J+jbKLf90SR>EXQ>gYhQn}l~2CcLXjVpAbFT9c;2Cd1`6$rYs$a45K6 zVZ!H{XopnmBwZ4?UlZ?;^u)sD;?fA%6nt`cHlJ(+;gbyspKLV2af`h^B)w zxqFvhn@@M|h=+w#H_t|#%UVOzx{Nr6iV>%~HzIWRGn$Uy?c*1`A|aC+Gl5CXnLubY z6BtdL2@Fl|Z{*!HX9D4KCa^`^G~B=NITP3-aQ}wwkZL9nwweiy*KKcFk{IfUZbU8C zVHTi>zP~lXELEA!4qH9Z=wN7ehc9f~lf$_S3*YonKa%7RRcf{^Sot&~H>keCsK#Ec+RxXLCmHwcr{ zgpime4AUV)m@tHk`9dg89frizAtc6#E(oU%A-U6NqHPK@hlzGbP9nlZ_n8{mqLM}47_AP;*~V}cIs0rQB9*o*W*gyE*%a3G zMwN@Ku({zfo5aLqL>-d$W!l0fF-Hj#_W(jw*c2u!lf*@0-ZEUwTSCGzwQ@{gCe|S_ zff=Sl(we2o9WvyQnARj7)0$8fHWhY}Wi}Vno=C!{2}S2CBql(iFaZjMS%pp%JhtOohV3JxOS`Nzo+1 zq-aP?ib94lDT<%M_kZne0OCBI9z)Z$ z7-~^fp3dooEf%5s>w~*YAgxOabZ%jyNw9TQpSLu>FnhPzTFdA zc!s&HEbA@>b6Yk`O=D$x*wi9cEmkmh3B_s5keJ4VM4JkQxywX5B&IQ8avC%7E)vt2 z5x_JiWQ`#(iJ3Gm67!jGF`t>#n9qd7BqkK+Ga)gF8Ky&qTqLG85x{&V6sI;rVrnz- z4q0vUYHgAeo{@COYMY5!&O|#T$G6GJrm74pRBMx*`b=_%#C&I%4vArER5~Q5KH*}L z6N*!x5p|K6?}W>5WEla>cZRFT*{41csWh^f`HTXG3^^p`LzBd&LYNOtR+tY>dd!DH zRu}@ap%HXQ*rs7RBqm0~bV$sRhUt))E)CNmFw?$gtsIij`P6QX}V(m|}&ADOM=V zt47d8Vu}?mr&uF^Db^-!3RA2wF|V3vhpe`lm~17Q4pKk8Q;k&>`G~9HRHRq7(TyeVQ6SHq?-MWIPZ1K zEd9Hn5GZc_>UL*{zyGyc4mX=+7Jfz=lG%{YO~duhcSM{*LPGBr^Ug|WwRAAKa_L}b zG^?T2lOU6pO9!F3bTDi;%@w)L$J#+?)YXuztD(8_wWYD56k07K49(@I&|Fd&aV{yO z)+>2BW$&%(7g3QF>hwE4#b&HLw;qaP<5aQGSj#KQjBZs?99aA(UN2v4S-CFRqaX2E zM{$m+xjaJL0D|-!3D*H1$NRO+RUpI~2;~_jaOCm1*19gsIu~>fK3;r$_wxK z`0(=HKF2DWt7#P`51%hyktrA4ImhDrgUm%;{4}A;Zha>|HOD%6k&)8xykHsMhqK8k z$FlG`vS*G})2V6xWuCk)fSkJ?&tKuQP9h`LgT*xUxb{6-pJ~G)?_8_FC>J?^)dV@W zzI|mrYYcMKN50V)#hJM*Ul<==>*vh1@Jej^BFWFs7i%=_x6U`$+Ga~>eL;kGAP>r$ z5pfuDzFG8r3k7kpts{Ir%J-g9()0}wX# zeGTK!=%S91F60~0dGLKIlw-eL6{@HWx-Kl6sw>N@D{HHR!7|0ye?w(uRaI5NV7ROz z1i-c7>^mA;n>-#<1M1GrsB2jRbG9rTqm8T7x;7)$vR1dRT{C)O!7;{uZ2RNv>U2X% z%YlZHLb8A?A+d<~hUFPPKi%R>wU!jU7AUY@3!Dpysc5>zJNo9y!05e@NpJCuzIo2j zd8vce!7;>+Cri%V`Q-5BQ`O_W1*5+>nOabidivPu>FMdzuT%R|&^-EGPbywg0HuZa z_);S!-c&_N>KQHc=6-KJ3)L{*s$_gf;vH`&38uUyO5zP<;z{};Qe;@5?dZ{c3qBF~ z*vB77k^&PydIB$%)Tv4CpG5^qptK`?mvia%D$Z)JnsjSP1&Z!Zvt?L`f^?mC{y|l_ z6aJnF3g4_vWe4a_4l*t@7MTue59mk9PQJ#a@Cr(t0h5j z^n`ypSyE`H-&d?^3AWMcN3q+{yM-C0O_l`Fn=p6PtA0V%%lpBfgUCFbDQO*04)8z| zN2zt7Nhk1@FoDW5H77MWI_Xa>_oX|~ux&n!2c*Y{uu{vtsgtAo3P16&Z{v-_PCK(a zsAooT&?!47k{6&wP@5n=#isa0AA9@}43g>5eZG%9KK;eZJQrAeE8ByfBD^>AM;_l> z9?wgj#V*sHp2nMg{thC4=Q;lckM)=bgMRvp@AaHx-38`dp1_wJOMz_Oa{nhi)(z#X zpM~%i>vOQr&&@q=f4=p=+}kYcZ+z$dUB2~o-xAAu%Xjsg`PM^uWnay=PUc+#di?D9 zmi6%2=l$RL)(dA}{c66o>zuN$H*-8sdMZGEHpl-jIiA1H zf#ZBR$M<%Q^;!;m?R3srpU(B{$h{!5?&n&sLD_4bz!!6^?KzKvX1%_6kte^k^j1$Y z-?BdGIV3hhR`9&_Rv72StMui*uXsFtSN@a7b1&0B?eYECW4*xiKlPmTE05=BM*0HlhcJa7 z=A8Ezxzf5(KCuN-Q{2 z{g2m|4E(qOpVpEd<$QVq=QosW_-VXk1ESU`*1B}F7cQyJm)`76*V%JI;H&$U)`FQ@ zQP^g0+86lh)9JRtbWhRz?@zv+lX_SNjoP3JN^Ob zpl$)xIn&RsofEgWqU7n&&Npsff(~p+$4ko6w^`}y3rFAapo1EQD?_iOlO-*q@A&k5 zoI08MN$U5h18HbG{w=X3 z&Tp`rcBMzgt@NV5PA$5tzV_+iU&BsYQg2Sac`4O-PA`5sj6+_g!e8Cfj1^SfgQ?N8%orQ;y4YMBMwWKKbU9< z`U1_V6Md8;=Z_U9ADyI=!qq})UwUb=ZW-^{93GIGeijSJ1@7d5Z;`=dvOELYy0MBY^CSz{ z5>RBbr7`UAto`$~|AXuH12pIVq5Z~AmC=XAr%l;*hq-p@vZ+g_E}6P`DrX8ak$W(y z@iP38sn$%kdq`ops=I?S&+r9PC5Aj_>LMX$j<&4SXnOb6zNYOM!{%Nqi8}>M!)M(E z-iK586S(tBT!riyrIhFJ^pX8@3cC+9$PG4V;Qu zq04feUWn$;1--V$Cf|WMycLJwIfOdz;`)Zx0~WO$sPipdew}svHRSnj6k!z#MLwKs z1QpcRruB6nsPlJN$G`k8)p4-_b*meeu7JAbD>~}6y8U&2>-d^?sZ1)lrg2rfQ^^&} zt>f=`mx`p4IR8j0+2T}km391E^s{n%^rtkws9UjW@lsvMHIBM=>v)3dGW2NO`{$g8 zo?p6rO}+FyM?ZTqwlvCW%=+n?3@I- zyemo1Nw>T{I+9;t1$NS+(yjR|JD*IRo$~9oQF_kk#OsvyV7=3tUxZauY1$fJG$$RO z<4rfrX&pT^J$#*7nI*A`arU5GQ=2f|3#K5lQj4WaO%g7YE=@JJszrB4$vV$>w*O); zq(dZeV383n#Ifdy3&N?({xV%g8#9Nv`ZH79Ni{brGhHE)?Ud@<@+ z_d3?=C~m>%!L!tAOsa=O_B|G@Ymr(UPZgvNOua94z?5w&2TL%wq%4v#6Sk!$_2Tg$ zR&Xj`^@jzU`p49M?OU8yF+!N8Q8!$=e=_$o<0TC{UkU7(4^zfgRR?vU?ybnJW&Zy3 zwf@le=Kngd{5$gx?3`wI+Yb&Ji)>6K+@#M0VRft{}+hn-Ib?)gXHU1(I? zpkXf^-VN<17$kE4vq1Jgi?IKBQR;V7SB~FYF#5}rrVW^!YSAiaiP5J$Xn&4|VkM6D z4?O&B)v~5-AiLiiu&`z+@+7^eL@?cmWj1ddeY~;Yw(2v}hiXp^_h}h!h}xY2x((U2 z&OeAd$O~~Z*r=<>yG~TGtqkeThfoI`HERH}E>${Jh;C{)K!)Nt)TrK6#s1!G61o6C za2H_eNws1^*)z&zn!|M9toxPNA>d$#UHOWvWE-Hs8eaNFgYT?habeXLx^@U`ML-jm958$J)LqhU@~{jw}lSI)6WpQ#HivH%wO zILt9$nV=J8h8b-ecWxPtao|rdJkvgWoRCr9j9bzDt~+Dn#zvWRbi$XKWBWMwLf$rZ zzvDo#h*yoB)j7~JdwX+ZTQ{)no`?I+Ylkm4j`9DMZqWWO^Z7)wq#~_$iM;7XUutqb_GfZx ze;pY8542Z$wKe|-skgbsb)3&&##<|`?QbHYE--omfZ3pE{-M;jC*R8XS8VHjbo*P_ z`?&O$OP)PddocAxVDWK!R&J?me_JQo4;c4;1%E9wh~Uz(%RgSR9j>Zi-1~QEwnA_! zQcsL~xe;W6;e#W97gb(db?x|qf803@FIRLs_uQ0+qZXqRG`(^`%9rZ#f+$S2_;$XL zywdoSsmsQ_dMAsz7iH=8em&Lb9hE00p;tmr9=`#VqfVnABkO<5z@0f>|F>kzR#%rE zFPZ!8*x5o;lm@=a!5>Jk^^Py_HEPgfD z8^wZaFys2wV;uBlAv%h^6dZjgCwUe2D~Ahn&rO}1zS&#*+TaDbH~T^pwXfaso=-du zj_0-1xwWqiy_^cE)QXp`_jyiYG#j_`9rLrIwHIYhlU4xhk|(1L@*juudWP2G^k&{rDYO0C7kaN)v2OL(PgdDFMbK) zHElRhIvEXiYyRr~q2Yl6y!av3b+t+zWtSb2KnU}_3{wDb8R@@r84KS z%)w~?)}T6-cq0z|?BwC{d>@25kvWQ2GcD@)$kkU%C|0W8+m{UX&ktVFe?>61r85@m zLN3uQy?w)dLAw}1^$rH!-LGikO@7OY)<$)+&wIWOMe%O3RZ+OtUc)<598Zh{xRGz+ z?d~cS;vMu-+&D9a_vE}iH)3tP_1DU{o3Ip{2wJSYu~Ct$d4tD$J>K?N@}{Ybu9`KV z?%7;1%gg(39t@SQQ7=c+Cx8z&&WH~!#=DL(Vl(vA_jloV=dNIBMRjGUsv;CbYsb2R ziT>bVdAO#wtbBg3Gme+l1?4>*!Rm!&3&X+Eo@8=h=<2Jk!YS%Zzi?9`u?gRd!oj1R zv4uDi|Egpn5y#tAdi$@^>C4K>@sPf}x~!_KI$RO%>guYj301}_qGc83wPn?@Xl+?p zMYtw3|6S>h$2a!{LtWM7wcXtt%gU>&D#D?z@|yBkSw(kuOgp->f6 z+qG+LU9(KrWoUE%d`m4=(RQ9&+i*&=XT&#`ce~cb7yG^5F)WVD5GWxB*X0N+XI!7} ztIzk>=NHuH7cR-K`_x%?dPj42<}~Iv)aTb()?<)e#{{@e;^U=)%rrqKO-X%zaP`81 zCHV^)^UGTDgNsR*H0GBs&R+{8Ld zB4F#%c^0DAIVNhb-@)q(Q09FRge|AWM4OXk2db*aQC!k|lWBtZlbL45IO6To9!bN8 zklq@kxt3$kYb`+dF^PlAx4a#0eQYA{opvK3p7JL|{$|SW_~Y`$tUs=|@bT{c!}4sC zR+0aEhpK@!a6$ z_odFqhy6_+9^6~_s*ohoG@fRb!3ACY)K@=qfCP0%bm!{@P6?8|F?8~T{HzPuKnr*lY~@ZTby!`OtkAk1NE!q+0q zVQ9h&5jM8Zmhd6WA!OorBg}R-;ckRsigx%7ly`#(BK`LerYY;oYkeKzpi5u(S(e4G zLr`Z9{<*K*8DaK}bLHCKq}04zizC&!a@A;chdFAUD_4zNci8o1N3e5kucc*jEsk90 z%C$IpohujLdvjm8)|Kuc^ewdBKzs3GO)kq>VqL+3Bp1h6gW4I_42BO#{7TUCtdMmz z+KbmG@R38R$JwC_?T=eVn&|Zy9i0dRi^U$6f zr3=_a^WY68=@4*no<0x#5k=U{VGREaaYqox`Gn!8CH-Xx&$G_4PG;5Tjja0iAuTWZ zs(EN1Gd6Via_jw)KV{e+uZz41Z_U#G=dK|{`OjpN-r>k?0YJP-Y+zHI>dB^92h z_T)iYoGa#GJTy!BIp567xyafqLy~jWJdCHyT?<0y-<(zc2eb0`NdM5k&%=26TV^H~ z)Bn&lykg=GONytg9w7A+c?*{+8UGoM^Lrrf6EHrBk7sXW$>h{ zBupQFuC>TIC1I2PnXGV)gz5X4-%yr*`et*nyxm##`=Ip4Wr&-XbE)-eR{FQ3y{Lof z{aO7xH%p(ZcuM|lu|Jdk!&&Kzv(gV`#kXa}UzHU`H`*7=cRH)Tzm`>>UuK0Xv-IU= z#h;rMj%J1DWu;%773Mt7Zxn6?dauWGCStc`O%O4;K1W=KFVzuyEbBMKt1astV9pJg z>rp|*zn}PLmc^%o)OQoZ(1&k2THZ~Tbq_H2Lwat>#UQ19GcT1P^IMRh{zX3wDKSmWq70ZE4eYtx&`4} zF!6OuEAM^S2V}St<)j?Sv4{9EJ@@9JO}VGz#rFm$fw^_?!$dgYXULCO){lvB!pDgy zAMK0fDPkDyW7-)-vb=pdUvIxjRA9;ppW53 zl#95?vK}SB*|PRCd=1vQ#1_kXn^+HButV=+_!c7STSi1aH9*ESFpPYqO|@_fjbVd%$C2UPzT5Yhj|K=ywv5&GJQ7zgW# z7zg(dq3;V4J_r5Eae*i+?@~P5Wj|wFe_e16`xW7KLEfJ+JSBKEM~5M9<-H%YAd0BM z9Czf?*AVHqiA93+!wd%nO9V>=VUj8yCZMoFutpF~srYq*4T7k;;Mzs9}s*{aIfG)f{zG3 zCO9FuPw=4NQ-X&CpBFqV_@dwu!J~r51WyQ_6ntIql;CMW3*&+P=oRFb`WW^L76=v! z76}#$1_et5O9dAQa!p5l6@t8nV0e*WonV7ti(so@n_!3FI>GgV8w9%qdj#Wx1A<9G z`aR}9BDhU(hv1mt-GaLWcMIMtc%R@N!TSXt5PVQ@ui!(1j|e^{I3c)C@SxyRf`8H3Z z^hMg+fsSS$0@$MF3^g!9h9o(B1-7w_j-uPsE>i|awwi|aww>x)Fx>&rw}y)xR# z`(JM-GoFyOEAwPY^$VaVg=GL{#QY2?ui#z8w2(MCfZH ze$cY6m+%ha6|fr#TX?%~=fGARrP{eA8cFsHCT_7JH?${1HN*X#(P6$Ao)3ud+U`XE zW))M5a}4`>@!sYb!(H*V&DO#s-WaMd)DB}UkQohEvKN=5})#Hd4yq9yurcI51 zihKz2>XpNi0IJ)QRgp-4*G-|CUL01TM(o8w`FL-s zs!Ah^INPJ2a24N9V;;EiSzhCoWDJR+0EyIlK24>rv$MwU@tL#zfDQTK1={^fTQ`Op z8}WO3-F}gHtbbFoClVVRObq@3WssNG9mtcmv%NbHdc1WhlhG}lQ?yo=KW7!gc*Z!itjk#Ohd~R)5Kn1#K#bgb1_Teq9$*2mbe$t`tp;+uDYayPB z#}+m(U;QB*UfX#SYS(|ujhR+uk1L!*f|q3{BOI>LPB;u0_07Y0L1gR<@i-c8m{q7MXA#ExU?G?)JiKQ2A6ijcxoaMyuB6g z4Q669uFo_k=SfWJVoi9ZWHgDti{T?1dpB;J@iJ&RB=Za}bUs6Q;G*yz zZ8ag`-Rj8qOaqzYxK^C@#^LTrFPfHL*H~&sbCn*=?KKhn=dia&aw7)$pEh7P80p{i zV7&3h_Ob}un5_^FV;0nnz!qqW4YuQSVa$ab|7}Z_>8QpGTdL?pXOY#hX10k{#k8L> zX6fuP<}6ZZm9*~JqET1W<X+Q;jnqWxRj1i z%I_8o!4PMWTJFr0GUe0`W3tBUU1Lc)A{_17+m+cum7UB7Q?7}bWl9QFv|`$58cg&p z9`5dr4K}v1$(?Cr)pd^dGG3`?c{|=$>A0mHxFwbIZ2ECTwASAiP4@gD?V+%HMZ=Mb zGh4FP4p}*KH6fkyM_eIoT6MXrZcfeq>v=aXS(4#Y_%2Cxuw1Q`9hLFAJ0(*+L#Ap5 zN4@e$Nmm)wczH{rsxMkDe{%6NQJsJPE$JO!=;XoGPEl?OK4ncL-4*>qcEHUv|DnkuUj_ z!|ke_?|SG_?IQXn&eCCssLSM=t?z`Z9=Pqb_3`&cZheQK?=sOvF#7gE&Rvh-hjbjv zhwXqf*5i~b-!hS7oq1pC&XIfc$s|fhMYU!8YpQ&JoRyWn0)t(z8ullg2+;#A*SSr-_Fvv z4f^;@hWgGIx!J}+5$Zwnpj@NKG4BEVakt+9l<=9GxlBFckaO4L5cWjIAVht9#!FqZ z4RO!w+un%i|v^+)_0LB-y1}Z`3A*rnDH`j;q3NN3^{jwCy+1q zn3yjf1D!G77FWKDMUMG?4V87*cMtM?34C*z`hFEc?tBj;Uu>JIeCGkFYqoaoaOHco z$WiuvS^4flC2j`aTqa*W7k1}chP|~m2(iAG<8!8bH@Nbx7dguQQ&u|{V3528zPU`k zU&(6cZOGTuw-mx>$~W%Hmt~|JKflKxRK+s=TYx<}emBEhCg0yd&RyTb$afors0&lh z8S~vz;@A!sujy(zNp)nnghOx^Zn^!*r<9pyMD^LiiTc9S6&Nq&Ba z!VpcF_F`|B?O`sq5wGtd%#s+ zZez3U`1ur+vV3OVqLV5_*j#7Qw-@@%e8g>XqwnuUU#=9e2>MuVa~b+?L8$tgieUZ6 zyjb5le5jAI+4XqLm2auYQTC+thsigHe91SLp-({0oo@m1Wj@Sz2|ko#_%|pQ+ocR2 zUL~vt8FG>2XAKg#*w%ue2nd+Cwc^)Ibt(6t85EE;De^q7R>InVUoc&i@US3mCLD@fk_TNK`xbkw& z{wvIA2|O#Bc@{oO%Ed`#7CiHP|PNsh>9>1+R#`>?@KEa;k&&5W!LR|@dlT?^`Ve*~a(Vx#vZ}p8A zSEsJ`r&fAXp}ThMIt9_7x0*kb%&gw7|C+uLwALB*W&Ku?Kgq`Lq=KWa`ZB_$u&{Y_RYz1-`0CiUEN zFZqf_r+tCD{|>xwP{Wltu4L!B_b`eB)E$*GI$bn!%Qvvp$YAH9 zxFZ|z8(S22)i;8Ooj>{9%P7KFn|G=O%=O#foPKBej=-nq^H+9FzU`A7Lijac#)(&c zL}Hk2*8?nf4#wN@kE#Uz{dG7;@YLj~ODB(A;sNG*=6IU?qyITKbvu5>r+(5p`}lj; zZRj4?Gk=@+KiNO8qiHhwXOs-5e{|cu`P|P{M~zMvp|7T-ulA_4I4sRSI$1#e*gD-) zce)~cIzsi+;9agx&Fms}IlAcQvvtu2|4o|&A^9sSv< z`QOD)ZVPdO-bhJ7V8_GE6(=nCMnd?xZUM%cpJxI%We7Yx7e&3%*S040!u0o2ufbE4 zV)QpJ8~z1^3wKTjcK!`?Ox-kkJG@+(wzAsq-0{KGa-2EnTRFYiKEDt~SpZv8Mh3$@ zzE1Z#*nXUtWKQ73ktu54GY6{7;&bpL+NmCtYAqVBaC);p_1n}7dct@u^(qRNZuF1) zYf{Vnp4;%9#TrW&G7nGgS`{E@U4 z&s+5#&|e@vpw<|vYyGKfeW}F-nI(R=@*Ll7YGhx(o!?ibYbw@9u)Y-x-1(2>#7l~B zbVT~&-tmg_@muTkZ3U?p#@C*%Jv1^eU05={YVPD)x$}QedrBp{e;+s2gW|jy5UUYv?smQ>v<>LTQL6d)3t|3-aGz@xs$)oo&V$7W4cCt`1$h9>0VTz z(HdV-^xTorck)KA3q1UBPij%g_=`p&r{HDKkSdgDudnsw30bK43s&ZVjvf#G-bUlh; z-L=#U!6Tl>cX3>#&(`tR7Tk7zdNJd_fmNq<<+Vo0F(1_)7$ZFOr6^qhPn_OTFup#- z3a8#im0!NSKu!Zm)u`WJOkL#pb?WKKcP^cL^%4&-*E8VvypSpz{n^}9i*9O{`v1rE z(;iXk@s*xb8;+lzJK`6^ov!mw!+QT%y!Pk%x9?_+$Rm7k)-3vF@RIb}f&I2 z6sDCatah6M3=@U&PR%8O{4P7JPQ~Ozg`*&HJ>O0B`#sO5^38fm|Bzpd#?_(PesFLs z2aL9%w^E1lP6fvPnKhe}{)E@_)0DSl93!czpmuWP;_(%8kwNN-`QJr51U}70C1$A| zU#57!wxR22L(_R9O|S#c_;m%({W9<5==8ZGVT5zWuk-2fMI-YN&V|oFv@&^JPh&bi zd=93=Vr7`m%xdQPOH4hdicrV{dL5mbgPG3m-%P7>8UXGQCRUIRrxzF0?!WEI^tImf zt*FIZWq;$>dr~*3VVEz@xjA*KzbO^woy38~dK~2-%FZYI79&f4IDLcYS0)U1M>8M4 z&Xc;7>cFKN+qms7d zKzYJBmf-GN_C zbO#cDNp5#w^N&)$1Lr6{Pwwgt^!J?Z4s1Bq9f;!7Uk3UlXnZ!m42h}kz+1ln{Tk@s zfPNZ>;*1_RHGH5u@Xk}+fq}{8ASSy5H95%P_KDi3lNZnb^>|14Vi}^LA8osOI`9{d zdk!yNI{aGp=+g5aR(Ba|SKMqWpSJT2y#O7@eZD@Ob_2#~#)&Lk4A${xvxvJKIHrUl zz1DjI281x~7j^hR3Z?}{&@h?`cfOLm49m;&c1|br(a&Y&aD!n;;L>fY1*0ZEAe>bG(xHZEKWCs7Fd_xoZ*eF+)96!)B zXS8OP%?ilPvK~ZfD&A#jRO2vroLndaRmwpBoUwev+|Hw<{|Q4eU9f-g1?umG>Ti+y zdy$nM@Zu!tXu2l!qtGj$_C09&CAGgveShSasA*w( zz>ky_c-sRKKF5TUFZp1BkiRN)sQf-9-&p(G)PIcpaw-t|o}K27r&7-`kotDo8e4Zk zI%jOlg{i}n#|qMCkJT4V!Y}8Ht-DAq+%k%z))VGk70wE^PLJR31$JBxD^0&|=Z^wA zE+&POra9TXhcwQ^-uVVL9D=tm3{8Yy(R$Mz2fRDK7Z`g1?eh)X0NpYF+1l?0K79Z| z&-d$UPmcU#Dkt>HH@0uvwk>t+cgHc)7r`agVcCUVzB0YiH~-tImAG&59OfcG9R^j* znKr1$FGLU2E4Pok!_>FuzkJO~U*OYUgZ4*NW-r$sy1ggu!CerNB>gEla!Y5yA(_SE zu*_hk{5;m^3?^~>LfjhYG27K)vPtEno<)Zhd5+;6sFyFDJT(_}<;n5I;~fPapicc=q}n;5vJC9}JXN5< zZ~%BQZi|2BOC4hS&3_i1P>kczq51Zj^kVoo=j|G~Iq4Or(-*47bnOjM7LvJhQxx|t zAO1n=_?6JI{q1)+ux~9$4;JG_xj1kSw?d%5bo?$luk?+Dspmr9!wRb?ck`{|4ZpR< zzZeC-_VLXDR%hHhXT0GFt9Ekm<1Fdu&rkm*aJvV7cA{atp~}l%K_CsCR$J=1?!XJJ z&8P6!-~5}v9Su8As=qw9Z1nNd!#}HqhT-?Bq9#jLhbK zAMkz_^OvP_eZhNZaqSDkQ%VKWq5VrygksN6QvR`=inVH#{C7`-~1^oX*^yK z3@kei*E;V13S@W|7<$I5ECb{Ca!e5ECLH?yii&jgHX^apT$t)Fnp*lUJ>#s#@NclS z>C~y&W{4U42b|z>lvw)Q6c)R+-(A(k%Bo^W7%) zeuS@wbK{MkV|l2qy%V9^SDz&+_a88$76hiAN#}71 z@)HQ8?`(xEHjz4Tm?Tb-hl&M(9siCP9L;vmi$H8LmHhK`XaennwD?}Z3n`kRdQHvP z_fy{oT@-pU^aeEeQ!hih7?cl=p$6lv!WpyIU=-e-H+m{J@ae~(Cf$t1(1N|8iS2K* zpvmTRb76YX$#la>F9xx9aq96&9Q?T+I)AT;Lb{E~V?_YI`9));=#LjI`qcazSN{$ zpC?!w74{<^zT*O?ic#0jCwWTd@Kwiu3U{b(XW1Ss`Sy4C7h4o1j{vQtUyBBI{0k%x zG?(HVnC;yMnioLkmV)%BX-9W8dEPiw;(=`~u!eK|Ib+Qqx-t&!=#}JIelLP-^aHAE zXmhZ%;<4t1W1Fr5RXEmM1}GS74greBn!{t8%0c|A*WX}@z@4M` zoBAQPE3qt{z&x(}VuCv+Sl}kO3I<|%yX!ZBM9JsyC;qttM7)lLs)eQO?a2$5AoyD+ z*xViX(Mwp$?gL`Y`_6YqzwN7ib{LD=cMi^2=03q9*ZzC*z3IYx0uTR(=f|oF9f2kF zwf{am#n}s;TblBWFS$5%X9L=UZxq2ne!0#5RJ||N%l*ZY)QaM9?_W*+EC-v3NMEwD z&3+jR2ki>Zbhw#6H2Je!NURhShhz=5Fg*$XBW!0HAN^fAcYht0QuvFd6#il~s;!O0`O$yc!+x;pf`@*V%W2RarnP3<2(mTvd&{2pe%Asoi&SQpk$ zKl7n?0}p>BbfElhCEs*y>frD(tez&QPo=x#AUt;NSjz?Y({o|!AlFUjk1Z}jHR7rTt|9kH9%u9g!tNy#6-=7be=Xvhyx#ymH?z!ild+y2dD#;=5 z3zN~JcmRa?laI(yC^Byi#(mu%wttrK7|aT$@T?Ex=OiBy-c-~+%7*G)n-8}17wdYs zA8LdEn-yQPzVYq)#!G!c87PHy-VuzS(>>gNe#M6wmSeKksrXQq7P%V5J9`n_o1VVs zh_ouZOO(e6l;O5}c3b=`spSl_Q(BY-iaJG}FL$&`A{W9BYP3j)BXj#pZ^ox;WUGw0 zfIRR?s4F=cfB5;tdk@qI4oV8*1hW6j-y!q|WMm?9M zM7s%-wmYTK?vzFwZ;dwI8a3WB|GDNGI^4s&?kpIV_z=mwc%6*yUN%aJ^T`{sJ#W*9 zjSt(G>J6P+n1+OZmP6v-bQc*bPe3YWiFvih{JPhwE{(inUg?)f`TrqZ$(4aoloXPk27lzRtz(b9aMu^iWPqHKKvn4 zah!?Mdui8N;VHFKRjU0B;pYzsfaG_bfJNZ8JIhbbt=M>J&vztk!8FL#=037s2$dn&qlW=Uecf+?0QZhi+|3%Enu~lepWA`jCIu$ zsOz>s3`!Cu%mvZoi{4RJ`UMEVEd$n9fQeNfvJaD%VFY)0(OBIgl3A}LUOD63mABZ; zY-OXcvXwK=mk~dy@m$7>Agu9RLA?~1nr!#(WZkV+qiZTGTfIWG@2Z<-WQ8+XKb4v1 zWWEF(l~hqKgo}Sz2y82khOhOjYuv7#Y=N1L0XCXhbe_ZBjB9Ho#jSk}UNxBc9Epf@ z?M&Hp1ewq9rn01^D`)eoaGCl?#!tnE$z|@MC4Vc!C)<_!33r;6y$B3=mz^6wKe-Ig z)^AfIy;Agqh_0DYnv>;+M7{{SzUC3*wKY8NNy)~#w(Bx%xy)i&(EX*nHHYV$5%X4Y zrCVxFk;|vTcTaP#WF=*+n>LD1pE>PJ9`(3HhmO~^k0E6hPsvfub2QHyo@elEGTYDL z;Wyhq#iNYS3wVaiMd5gvdcnNPW)E?ntC!xnYG$rm=)rl8GSr6i!}wgYE*KezH<(j> zmj9Q%`(%=CxoW27TCi=pf1X(*u4CtML6GGih#WX+nr;oZNjfQo1^Wh8K#@hER9zSp z7A;54#1(%T%tGjB(w!n#8QtPeNbM#hWVN`|f&Q_FK-mVP+ij=waqW;{t`K1=ia4#e zT19nUYIM0}yog}A)4VEZHiZ}-{>XM?)#Fqqq9mKL{m#Fy&q;ngd=52_@%;eIWZo5ao*B4)XCUe>Pp%ndm$w z$=auY`cP4PCQ`QM!*t9>V_owo#01Piz?Siy4X$S+J6t>M&-T$Zljx7cULg^bH4Oju z3F$GQTVx6S`PsCXn&u0%gV9$A?!|Pb&TX;}`U1+9gVF6Bqs`H2S$x_H)C1A29beH@ zgvv$JUR-YCvni8sO+&T9H%=2Qx|dUeq0W1@ojm_X%e~?Mnu?ps9ext zOgq4EzXlpwIDA=_v}I`iQ0Qr~Ta9M^lkU(1<{IR&@?4>=#U6D8vPWOn)d;+Qq4oahz?fd+U-~?DcuoGbNh&bgSl^y-EB^^8 zOvuz759XC1Ho=}H1ltV3vd|+_S&h0=#yk@*3WH|N+ePY7L#KAWDWvkGH0gA4e=5CX zzFROxfdG3qriw58X+ox!V+uqTh}e;Bw#C08@@#vm))t6tHDsz5V_wEjZODFv^`lc3 zP4=4>=Xp(aYO!6v2|lEisZOm;(qXf6IYb2||5BavoVTp-EA)_u$LQ)JmB6%&R(k#~ zz@<8c^A|vu+YbTEkgZ|~kV0-&G`h}_x0&JS%#g9FSl;jOnZfTJ-lT_e_kFa*Shq>N z-1(+Z&ff|*Q(RcgVzhn2dim15YR>(hyUtj5h-{>KOn!`5#x-E;8{+$9xFeI?4$-?i z-`3;wX0Ph-aE;*{uUQ#J^>>;1AA)QVn9W~G2dKqCbxXkfnjgv7{wKHQ68-QO6?^ZWrv@gbk!loN^_17bzX3be-!- zgx1R57A~MyTmIm#gfPoKk$m@&&c>gp)U){8F7G4o_ftabLS>3Dx&)u_O1H5tqxN?G zUJ%v!n#PAWY%`PgOCQgnH3xy&tnqu`aIfTe#K!Ml*9STL(y{7Unq{)<3wH%hQ0^|d z)vGS!a!`#F?gniPm{a^_WuMvH=TUo~+Dwn)O%yUeu4VuCqs_ zy}ZjU?r7!d%5PYZYM2YUSPss%AM@?UJb9Q+UTxueE}Ii-rguwmQA+xbAn>KdD0G5?q~HD=R%g70V+0j*$m$@0sS@4jkh^!5PlsM|+8u|%$g~-9P zk0@4&2aP!!4;nZ0^5yKSaV2o*pizdn!}`v+c7x;z>pXLiP)Un`H6nGXPF>1Qg_FAU zqf(da)a7hlq@*dqnpA@x*LL2`z;jo*&R@2HRi|peZrQ#ZE62`6esX^dU6ai=Y?V{0 z#>Qd|RfEMEjl~h2M>RITPV`HXtd6ZKyoN8cZ2>)~``&FXn9n+<+N>4bxgS0m<8tM( z>=bF_Fvr>YB$cu6SO%f9;oYTX>k2OhG1k{c_Z}bDyZ=I~IWoF8T~cx;x47Ik*Xa5@ z{iJ2R!{%-C%&X^HU!TXsRYulIY)0iWGM}+lHXlO9+T9{+i%{Z8>FsoGq0ZA{T$$WDKlWK`aR7A6uI+^Rc+jDti5`^ zOu&8U25968K?>hA_=Xi#ly82yMeT^}rU1X|mFRn4H6jR=#wwYWqJ73Hd(XvKCBjq0 zS+XIf`lD%Ml?doo+pxLtE{{3QZOy?JY+P>!jGV7AGEEvJW%Q#_N)EcTvN*7;S1)d? ztLM?OGLr{en!Hx>7t*-s{sZb0J$Wa;*~S`n3E54%|J39*R5|}k0%#xt%qsEsrgluE z3=|_?!mSGsmjiidq2lXC-FZDCFPm!Q}4k?0M%cCxVZSq;O>o|z6tD4d1i z%AX2BBC=RhMzd?a-8R{B@hnLW8c)c{9;10c-4-{SALia{F+g81T4fwks}G1}m)a#G zE^;)oNz{Xf$#Qs)wXoPVaUr@MkSoNJgLcgtW!n>YNSECz)GJk~VOsLIYuPK9$9~P7 z+&o%fOs^FHX>kd99|p>Rb3B7*NosPO$RhJvuer#rO=$H1h+m|0VmMlINpwp`H2Dqe z)GubqZdJO}BClgMr;4|rWHB4P+O{)ms}>(ir<9bG_r6u44kW)hw`kdP`m!upRkSR| zP-jYfuH$RwLwfWlJAy^_2#@r+u58K76nIJP%bVcStuB_9!dL=QTE~MRBh)?IafaF& z8C-S_4Z}>KV;o-tOV2Nv+^ROKueUlCE&E>f+HZ4mYqY;(Ecsqj+apI@JEQ%^wEoO* z$-0w(gF0Y(e`b@^lRiJUwXU%)_I?0m*337X+L+O07s}uLTzrmsM~!*w0(05?2O;&W;sk^+-Ob~lw7X9fq}U6Bbzg2VAk-} zGTql<&f6w|TK1MblY-9Y^>q46QTa1vrea!vOvNO7Q7UGu+he+lRLoY$#g`99{b;ryt@fkEe$2HWwj3OrZ-33R z9}DE6Vl~i*(RDeDQ7Bpp!z>LJ=GduiQLzOw<5mZ^STQ&Aokx;Mb4Db?oXsodY-H2} zLN$6+qdp9WYM8)3mPy;decVj`Pf}ChlVn1p_wm~l`XrgcAC(FELLMqjWvR&x`n7ps z4s$WDiuvU1A(ZwJ=q~%HTK-rcm4A{&lhbKGw;C3OdqB5tpa(F~;02I?VzqhFvFI$JI?u1sfr!<5$c@W=AVK!55-`8g1T^+h1V_{6{BRRNc-AuX4SuB~iaB}P8=lA9F`#(v3e?C9Qj6Qz-a^7RL zXY+Hr?#Hh`l+PdjB>BVn{H32D|1D*oAX8&mzS8nflD|Bkzw(phugvGK`Xu?Q^7*Sj zN&f15{+dsczb2o*{*&ad&*smvs6Ue?#g?^fg-WWymbDseS*yX8wHj<$tHGAF8fx^! z+hEIDBlup98QLP(=~R!Yh6R$naH6pJ<4Ao`!oGi-d4P$$NF7i|`Zx2YdbLc761n@Q ze401Uf1(mk5G9L)GH-`T>g2FT_Y5~v28IO4ZK}^HVXsokHM>kD;WB&9+y>EB+)URcx-4`cG0)#pb1Av;`$qOt;enb~`_6u{kSp zimF(vinS2glB%hZHm7Q;nOt-ypRByftslzzC8eWZLU~b&dA8lT?5kXdaF^`hFx)C} zs)ZTrImw|Kqh~T7(dllZ=Wlp1SJbe&1)Y8l-AP%0ij7ZDC$vp{QjKBzD`Y>)>_@5n zum?h;JrEl0fzW6VgvNS1Nsaxmsid*V{<5j0(WanAn@SpO3Tm9ElR$&Zc`2k+HN>UW zwW3f9fyPp?O>E%2M3XkHjDMyAtI7PozW!S5oQBklG9hR8$wi@`WYzIUqQa`tCsF=W za|O{N1eEJ^vBZQ?8K1$^ziUwBAfU`of{i{7TV12CSKf7muFQ`mIY4tB=RQW*FZQKl z-P_uSD6A&Ad5BFER9FG?c6Y^dh<;<%tm%8N4l}`_Z)YO9jVu=rTjK`4*}EG3MD zV!{>MNbMH~?3vGKq)S`Pnktn}_EruPrJiwZMGlig9)8oiiYvaWzbl8z#<`C49RZ$F zbD7vJ%gOvOPmco|i1FI>Q--y?ibejUhG62SBnzcR3!9TdGoO*)jVsTg_vfwWpq93%smKz3| z@Ub8ej5fO2QBRL^_4W;^spV=aCQc%>jVwbnj}7Hm#-1Fb8Y;y?sbh*d$mxcp1{CNW z5;nUY4vFm9^Kb}wSO)mb`ffqJP*8~8RnHH%c+@-QG(?79HcVRVOZ+!T2_={Li#lpe zQx^yBbLVrq)`mt&d27YHnESH&NX1uWw%Mj zwZ@COOAw!27JxK*=^=A<2vv&HgE|Fq#YWG+68HEvI_3$f9VfEtuR=HR+as+ML*(zCo&JI2DQ&0tFE$_*S{dQt@2HezWHn0t<3~yQ$+LC_lDo z1q%S!!ZqeYI$5$KTonI;*$^re?oV^z56D##e4-HGl zjX+@+&q$r3tN6=5u?o17Sra(9Cd&UsW{iZ!c>S4j7GGL>ot{O*1)nF|`=U#HQqTGw zL2PAi3S*FbOg6W$?ZTBwZo*$88?d6fvgM1ph4T$Hwwd+exY@!^mTXBar`>qTso`O+ zj0-22?ghWq>fF?de<5(WMAQ@v3T;K19S*Q^Nnle@L)dD_j+I;}n&u5p7SSN|)0%+w ztnVA~CHo8cxV*-dq^Lf$Vw+#~pUB2u6v?xDR(t1$XCE?rY_XUP;X}rp4Tp@eT~)Ht zoy|2HuE80q_Fu7cMlfv^Q#T$}_M@5s#Ft#d#iQAN%$8#)>?3>hV*$Gze94W3JeG{r zkA(hOv62rlQ%$Yt;a7*bwKd>CkDYrDVv0#F?9MaATNpNh*kipM|y3j0Z{jP zTG3F?TSGm$If2j^J>LF{%qS8`FnMyI)|)psp8{=*K)dYYK)Ytm$Ah;;!`p&3BL^={ z7~9Z#3cS*?0(e`^o9CVa@4WwUc$+o6&1S>A9K7=d-ub7%OK>5)^Ua$Vo&s;%|2Vu& z8r~+ep)Ch*T;PqL0x!XZ@W#!X6DPyFVmYKBAa{QZlK6P^AXHh8aj&i_3-XFC>f=K{ z^ML?bh0-a+Uo z2MJws;J#*z(<4Tgcpx;}WHUWrE}bt5y5Ga7^449G!b>Wb+TX*&qLVvz*D8 zIeUZ}3LB5YiJuuxYX1laO|p+xt{f4vP{T(Z$bJ;|XRF9pSdq+>cH4ACi5PkM%KXKNFF69I$?-etleB-VKEGXG<;eQ* zWEH=X`mT_T$Bt+g5Wb2NVQs$ucqP4LHdb+jI*S(M=7!|v%1LcO&eJzmjV!U65_3x3 zRCdwnEJ&S2XRGe{#(DO`S&%NUzvkPIHv6&Ae#GU$k%q#ut;J9Qw%Y}@jU*|V^T`x0 zOkyn#nT@4|At%wHok=TD|AFBaK(?(nr^xZRzt!k4>mN9VOnX7*i`ltYo+!^6?3lPw zfF?}p-O(M1*ND!A#zu?+)ct>DHr5mZWH#21{A?=x%*vywk5r2LrRk~vk!{TyyJ)*Z zV@>v#-Jw|>mEEB+yR)-;sCkky=^Q)ZoMDcsbpMMr0sw+tt|uDu>d%IjeCWLVYg_JBPd)iBVY<1mhH&mxv*7&KPYRO3$dJuF z4-q6XIuDy|vqm^|Kl?QHlMK?D|F0Z1nf1JJdi;v{@N&Jf7v`EL*^%x{^t!7s7A|jl zV5u0+c_N~05BV7&r21Bka|ae$yZ_GY`&8ihgW(u=hf66fZ5}ZK|3yBKf?AS zWIxL6N2&cNm&d6jak}&Vgm+hIsX>|(Iuvud{X)H8={9ek zZ^lOOuT-o?8ezspva!~1I2Eh6V}zsSds)Y5Mxy;H_$E#F$!U2&UG{frkt!{B3#N>6 z6s_Y9bGpYI!%3?`ts7ye0vp}Q!Q#Zk$Fmmi)!)PEZ1uP6q8k(YA(Q+b>MZr99zr8`kYir6-6LAZsX;Yu zfYK+GH29xf3b{?f5_9zgAj8PAVp!%{qZ`}UqKW9LrVUK0bsMY1T#(~jpW=}gQvo&W zU9~T{VY!O+tEVIfhu9AE9}>(i9r${qo8#VcLO82t!0$vu=<74w*aj(@G;B_LH+ctV zJy!|Cd6M!lTB}Vg&YYv0h=!z5zW*1sGrL8%8q>F$*Lc8dN&Tb8EWbtiqR7shLNkZk z`|Wc^FYkdYp%@Tm)~`QiUK6q^*I4yymPh(Hi!}2ZntoHLh2-|YjJ=zDDl}<{J8@6u z(lu)=uk<4tSq{WJN?w0tWAE#7S`MG7_F*AYGWf_~^vL*>b1c?Z{@{qKYqI#BtDf$c zg0em*VlSDse)TrR8-ylb8;Crsj-@6CrM;?m;+5seq47q~>wIF;XXE2}J}k7e)Apre zZ%A3{`u;Vd)cRN6%_}|TtT#;mx6I}{k0}EaN25z{flZ|LyO2ELS@aL8eZY#}c`Vw# z@3zraK}ZA-{uE#E6}#>v*M-Yvv^=> z{%5!NVfkl&a+4=|{k!e|ZMMG~Z67eN?~h-!Ms11guv#BHmZQf@RORa0PU||c%tq9r}kH_R+nVkZ%%td?P#DwIbq!X#-v*znQAI1AeS7yj9lR? z^;e#fJ4II%G=w zesoH&P!pgAcbn7pAqQW_iIfBC1iyPp|3&^HW=Qn7u~20LB+d~?=5N)PX*jTAqJ;&l~eyZLyLK&)ct zQrDb6$k-V&dd`MpU?F||z_Ob3Zz+e&zmoFwiEYchTMb2Ur|$M0%Xh(7 z4WD}lKg~NhC3_w2L4*>C*nT(~_I9gLrA_lKMM zu9L*>JEgAuS}}1Q{A6rw&)(RcLTX2!eA@YF8q0Q!VQ^y{wY-+YA=T@+KbSS3e#;zu z0oI?FSYA!vAZI4*dq86)b3QS+naakr+*Fi}0$0hUvKMhD*fOUzTdVoD&lpW@^)qMEOS>-&!rh5hQMwMB+fCooI<-DBVhGvjMl;$~;(DLI@C;n*_ zE6bcm(NxkVOoYHxOpACpLYY>|-kf6(eUaEh7ne{z=Vhh*RPXS(-uEwZ@ho<|klX5V z4MnH<*MsUJqh}H8drGV{MVZ^yiZ3$2V76fWc?QO`S-~``GU*;xC$JZ5C2?H~y*Y7t^EmD_bx|XVIl`k_ER&@chy;OmlX=Q3^h{XuII7XK! zCWK*%ikwZlV5-qWtBca&L(+`RHv{H0@LJC4cXP~$hFjIek)4s9t`|&GrXM`6x}!sh zR`ctgdk-JScf=qM^a?G}-lZ3r-~I_nvR$j6$?Cg{+P_dswhs!b&5YwH!8DduP8hk0 zGDg9N#s%I2)J>@5Zi!Vg3&{!e4)NWy_3h*a7xozPncOJ`xJ*xV<=~p`d4PT|Rdr$L zcm`DLa~T(Jy?r!fI|d!RiT&*}W>e7g|5EMleQ%s=ci#zA_lJxLJNRp1kl(N!%2!Ly z67ApYt%7;V&`jo#aicJR7!hMR_b7{E&NGx*?5Y)s86rK6v%wmS5u2mOJ0{SJm$0)V zqPcoiZOQeYbM^*PM0Nu(N6h$HV}?joq~6O^=H5pbDN3h1{Va+O#6YXkuJ^4$^}g6E z7DJmjHn=!?q+_Obv?l(RTh-zCg;^ME2-Gbtln}CQAsbssr=KRf>RBf z?}svCrrxT(6Zq6o&b`-5O{K2))PP#tM9&A+EGUbuUkpX|4V!iKQm9$iWM0=Ca~*IRXDFy-lDY8i;}F;T4Ktt$je zLazn8f>3{DwZEe^@65AbtL(ePig&q^c~PiKY!8gXRo!q z5|*NePD3eY#XP*)77glsbHxuSBRP1URpWYG6c5IX&B_kDoXPuXLMnzU_GeX5bVQ+x zM-%^J2h7_&#@d5S!6lXVnVsJ!higzoDE8sya)RJBxL3UG3VK{DrNnaPDc=}0Td~g6 z0E+KP7bhMuHQ1^8HNvop@MPe2#SPqM3T_GItc)F6%-HtCKkdYDj)cPuYmQ}O-ME0% zkW0_hMc*-cF61Rs=#ge*Me4Xtb(lqgd4tD%Ldeosn^C`zzKFc6xALR!8R^F&p-b~Hg6BC@N*{0!WYUz2VDGjpQo2-5W{X}ClmH0qh z$Yq!9xe=VbogwS1Ud)tcy3HwKVJ9-tv%T++b3NNP%zT;RZ>r3h%!_kYICCbflo@j+ z^)XT2xRuG$8{X>BzL`aQB*NGY!dDrldko~i5;=q`=VGZ)QANScG>!^-I@vr`NM zxuC&na_t&c-zZnT^6;nX0z%ZOx*Gc-H`4G`Wj`wIM~FJnEGG0^W}Mkh_km8_K!a zfd}V=ZLk|`up4Z!8*H!}Y_J<_up4c#8#UOOEW)I}I^Pwswx7S8I;TF|Y#$2$O?an- z8(rUl!ErS1zxgn4cAL}19x-fA3-Ty4mA1B&`Rp3MIX!^ioH2NpG`i;rR}{O&E}cJZgRJ5+78no~nQ zX`(3;f2)Yl-}Ue%=V!%xZuQ+fe6_oV@z{Trd)EnJK)a6MZntJO4k-~=7rlnN_P_6S zibR;5QvX%sw+xJBQ|cud=ST~ZNqlQIz7^#VUh%fsi;DVQ!<3k zkEHpnp;ZCPJAu~(dFx#-M>bQ=5_rDbYQB)`oK#P^hdQmY2`Wv@+{k9jdx7N_|IBe> zac~4S0u0xy-T19;4KKul)9e$jm(~5@m4Z;#-h;sXFM>~zSMXJJ42Wf&6qMJlaF;}} z1#c%@!waT34bRar@0FsHjg@jFV^G{D$xPaxof;Zs=08cw6@})InQ;z{zl{M`c z0m~&J3aRGs0?{q@gnuFdh+$n}nT8>`5EFCnG8ew#_Jdp{7g zn862lw3?L<7^~V?`0)`2$ceB*u+eOGbv{KlL5$@$E4C$%yHzl3+<6ttAN2u4M#EVB zEA^f<%L?9SmHi_6JL8`aOrnFvKc$#P|7lb7gar7z64+38`^fn@ky`;)@)+G`5CVlQ zryk3@vf@SaevL>5G3t#U7``#amTjLk=4|Eb$0$g?Z_L?=ffO2&A0#)qlf47cm)m!P zv|uztzrJjAuR|ZV|2rHi|)5uByIOTpuAxc(Y8(=8Vg+|;D+Md-7gYU z5AP<|Jj=Zj#SJl_;An|)m#AqaQRL|?uaPH{hbUj>)c*)i**@<|QAAjJF(y;V-L+S? zYv-(!=7#4RJ=ao1`UtS*OUPB*B5OgnfM)m1E|T#<&*;YJcGx|G`|hJ|Bl%kjQ+p$Q z=5I8$!38SAR`nC=6)X6?eE9%XBH*pm;NgjOju)7qhA>Let}=`b0q+p3rTW`=cUJwwOP(Sw!&1d{s|E z1kE)n#aFcuGh|&Ku7;RtSU<%=%++?&GGfyzgOyI#3i?y%_xrTxNBQ<-2^b`_?-GQQ zyE6JTM?5GgEmH*n0md1~#@rfz{g(F;9`oe!8_kuZliyP>Tfy(k$lL1xn8M3~-2R%eTDuQr1GL!Ycb`D|l&zO=NaA?!9fB(*P^hC7d+NFx7tiIqvfs{9q(azE756zzSK_Ie+s zxlc%QpOEGrZGT(xMqgFGix;lOfT!|Xs&Y+T^o4d|?J{dLOnOL9)S6TG+&_e|F#_)} zV5VeLDK{&Br4BpF&BFwgO28rQ z?cpNVA+(*nM~huY)hn!0TzkeI$RLTreo%g>h9zoxg7#{u>9BcwrMaw19U6Z$c@)j< zZ$W~tLboY7VijaJD~TI-abI$gi)XRxX@nLQ`mc;lWkGMNR7i=TxfR z@q0yx>^dQV2P%5i@rswnJY!GN(E+vh{Gp|nMYhB*b%e;|9c37`s~0B9azl{zcJ#0@ zBn92Od!Ys z=2T&?ADf}^c^tepV?lGJUin-rx;ek;UsJp52n+8vH_IQH4Q>qVI)P)7mD`!LqKjpZ zpw#HzL5qpiUVBU=Y3dg-T7*pTYvV8zJi>~eCdg@Uq*eqV;e_lfL$kDJ{iCEVT2yPb z_-LRnivhz|2fH|vN$NqK!3T}8SHU$dfP3&g*85;`V<@?Kuzip8W^{+z9v^1~AIN6r zX_mni22M|n<=mQ!p&-Cse=X!=kMEY=F za_IP@sAqD#TjXBQJMND1*SSG%~a*(V}T^HR-T6%*kj$c!SJxDUT37&F$?hfAb7 z!C;z@uwEr_>_-X_eiX9Y5nd~;`p7WPdMhT68fQZsh}>38mI&Hd6a2tCJ<D(tR zGVatj-r-Rg!B;&!aV}_m+W21Ynaxy;{9;wFS4VZ|QR91?y0%H4_HUdymsoj|^-484 zN$MskQ|-BgRN5g`67sC1Lov)URzmS;Q_x!?U)R#lW9Ztk^zqn%WbeM@ra}Dg!)l|V zi$xC@&mYHFQ)>l%g$0<2m4hl_4o;!tmK}^u5^=ugJP})@XNAhet&H8n^J#Y|eI>nF z@nL#455~(ksbIdWO6&PHr-}Jvoy8e@x}ZXPrn1~W5<<<^Y2N6ObNj(>~jl4`_zGlG#;SiJO6KId zCCQMcpvP9`;() zV5FZ0mh)M8_+@@&x^zaXxH!@T)F_W?t3ik-WHrj8sp7fxZwhcBIHAqZ$VzpTm-@)l zQK%$!WMpF8%ptEc>7p@;v3m+StksOAe>X5jD0zx9C1|s4X`V^Xi4sHy% z8pW%8_ivCvUArT%i2n=QGwqs@x0|#5L2Wo(nr}9*5?cEVN)LQgPrO?*VS6sQfxA$1 zUhZvvU9G2`tUtJgEXlZF2yNa?fdzGwuPK_P)m%yTs|oTAUsm`nOy;J*@M3o^&|K_x zOni#D5cXQn-NpLTMo`y=_&Iln&#ZbXF}gN-VCBBVdz2YHV05RYtE4Q~O|E=VjUMBP zq9&p{2x1kL=sY{S)&I%v2>_Ja;Y52|$g!zwMO+SWv#iEOnG z@_KcFPI=ivX2BZf4S!6dG(n^@lkqzRuI+OKJApe zV$Nr*`Y*7+u~0a-@r1ivP^J?WppCFe^B9`pUC)>qwq_0|j}#k8x!X9o zEL3Eok?9)E97wL4Lc@!Fxg1V_KNo;;yCxWSo?s-6Yj|<6AdOc@r|V`Ze$XYQcmF%@ z>I6FTM)sw}USxv7Vn_DnS>D{xr}v?+<92fFPTa0_VH+sBL4+qO*-Z{?*|64U&) zjZ)%v36?LNNSDY(n>O$|k(5Yj9b4j`65K}y!I!c2d1LK?ruM_accVLuRbOT*rHfWy z%~MzgI>=yn*?E~O*}Z7YG@4&hgT~rh+&Z}9uT?5P)O44bjUiEtp$s;fw?enWivu$Y z8Ihdoeo;2I9N!C6Yi~H5t+TJ`OV`Nx`0Ei4}=ZPV_@@aAoLQZ*dF1K1-$rGa&PiCj_6nfsql>XyhtG;R2Np)exHqFf+ z)3m&>fR?3&kg@cfre{p^gr3ohQXTRJzr_9jf}RmEyXl%>R0hMJm!5^n^*H*o(evhb z_Vm8c^B!EVGBqbYpkr2FFVuY8SS81`b25ibY4)#8UkgXj*KfkhVM8f~NU1y>H!o-a z^=zs(r)sq07xOanTDOHc)C?aS&~HtVZGak1`TVUlbsSel)3JW_YUJ7IiH;y^XhUdu76XaZ_?Iar`H_Ct0xkg)uIW={@$sASWD0?n+q4X(n?NT>-QS+Ra z+&3D>>z&6%aANjnX88u7BIwm5F1MP_!|5a{8GmF)^kB!u&YeY2ieDLcI*~S|Vns3o zR=lXU6~Ut3PgC17(~WhL*zJ7ZSa+M#nqF?gKEWbGpmZA3O9M|B5AR5BDt2H6tmMXG zbsj*0-!e7LhQ)6+u{ocE#aO+8xra$r@yRr+MmzXac*xJv9tKmGYcJHw7B-NL zb(bpE(j~5p^xgC7OLB?*47c&KEk?2fQew4NlbB%DdVBjzm^QJsk3J7i_jjD@RFtbk zK*@Z^svX6&&+SZ??s_jd7AJGT*@gHp9D zmqKcE@~zP%2yhh$Y2?6W4sa|Ksex40D&{e|-V|+sm`hY8-@;UnWFaY;_)@(R3)v#+ z=e3azkcV<8?0cuS`#JDCG|sr|PFw)g(jNAPJnSsgBtCB~5(leH#Qw-()<({-T0Mt^ zV()w<^ofnO+@|!j9*71Rag}AbDhLqJ^*=6}=^4=O?&O z=r(7>2`PU7RYj6V#;c==urNg zs)JaU@T(Sk(N~U3zCK!A>rNgYWDu@kJu^ zI#Xb{eYs?T=Bv?PP6XNMMpk-4edP5gKFdPmyd1^pKCO6B%X^uN0NGeqva4SNNxVqg zRHZ3Os7Z=N%|JU?KHeicz5#3cXd6*h^Etd}x)$n-Y>aHDHcXYfg$o&LnNX7(MpIyP zC+!xZG*&;rmVnSK_#Hu>fLpBGujO2kclqxPwfDrf@je`Jc z&NKd0%qK{Ic!G3Gk-av$leexHX+Qfs>0gUAfM#J1YZ4$MeY@UbKFwj_ZAX$A^Ff|l zkz~w!Ouf(PsW;b9rd~aeH@O`eb@+R719v+~liGc{33b-g5#V2Pdhq>);On74TS|es zDD#aGVE>PT?6&mli4l6RuK*wKaVHa}D(H{d%a4zr)H+c+hCwo8} zkSqT&EwdMx4ywJzx(jxReM=}gG%CRWTV!K>A|YV-5F}oz4$#rb*T%WFb1N3~uv1;@ zWn3{+E_P3r@uaQ~$T;Q*6RE8mTrw^a9#l%!Qkf;U80(7E?|R=UNxqIfxl9MLC0Dwu zKe?99Tb}t?Alis+au)f$z3sA?INt49A!rLmkAM7?$tb5K%pYgYJzQQ z2fa~w8fAfABH2qRE&8%hnkO3=qd|vWN6j0th?>nJihbqmeujU=a@=xAfb z5>U!I=-KQ#D7UVc9Q4xZ)O^Xq} z(;=A?+3{1zx*WzW`-AD~53n|r11ij>2jE)VcI&NpPNqao`wwS2pwED{V3eL3f>x8) znbRZNqq~gNTPQ(WK?UNn3ly^1#;2LT-boI+_3|dSmUw&25ynV?dwk|l$rQ{ovm3nv zg%+pYl-pVni2^4!GB%jHDjK->pxn6gW?+(brW*j&Xp=IT&arT;h%QY7^}`@7_!sJ!PYysz@N~n438F;bNlDDA)Gbc_f_L|ZY;zW zu$B{6%UsFckZ7vjkES@EG^DLwQ+lxmgP+p=hmng^0bY5Wg(~|k-D~L!jhZD~H0h*O zz0Ngn^r9dCjJ0|Rs3#Fy8oUsErK4mx9hnrQ`#^+Bxxo_K%#9RQX?Cp<30jbfW> zv|8W>o-|nk>JrY>(e>rijqZbBlJ4r7$&P0~j9lLx?W0j)X1^bUme^mmA3 zOrOSIfOe(#Cwl8kX8lTJ`8C`9BXlcFZhG7QQsh=2_t{2ob$5JG?k}H$-rrk+#&G6v z&7d6c62FuBZA#BNb5ojueqhk7}Wa)vo0U{-c&EA*^F z(bo5bHB8yFd%sWbxgCXS)8!PrvhM<|Q z){Qg0#=1)o)89)Djxl;FNo=gU$zf}IcfC1=@UcdZ9AzgwM`1ere4|H39N{?%BOHT- zuKmED92_qI2%D@ML1q51J{^lqF~FCVm{Wz(dqjgp|DeIT$eO0tR`IY0A&D?!^?;Do zexvKhFdf~7u1;rsa=wKIlZN zX>N8Yi98=oV+94Gbz#QpA4y59|2ehxg4%9$Es}~wqj#wwP8KU;5)0MyGM|ZpRC=#>lo0-#Y7r9 zDwhe+Gk%A4B{T9J#^mINW67h%>S<%OuwRX{TJ^MEpm#y8V#bm_p%Iu16RVW;JJKM~ z%@z?|u=05^v|}zcVGBT&?Y*pyr zXf>g#bEof-nzr`#8-Fp(!F0Sxa9zy+ia0(ZThn*Q(tS57C$Zg*YZxKEdleYyyn^Fczyj=u(aaCsP_llhr0biCmGt2f81ZM$B{?h0R@Njf|G569hnA3{PSw1UXC2B0SD{_caiIYl+(Ab;E;Ua`d}(Trh=e(&KEtZKHPk%__p-p}5cO?x4)N27OX7oMGWU7EtK6#<$Luk= zOYB6?J-z$G^;A*RF)kaK&t+#G`)PW=CnlfwVv_2{kb0~e+sWPS z>B%L4JnP-)uEdUt4Vh8)o^9UCNWKhvz8HDFk9n51Y7gK`gc~C1BroU2`#T_DF--Xf z2^5>78XsLQF0E}+XR)_ND-x>u+mSA5tkHFeq`h2neNG0|bj^s>31jVmHZs+EP-xi8 zkiYXMf>>=mbT2p+ODJP)O02A+TW^=8pT{bD!17MgReM)PpV67s%Zt9QhS=7!+-C^^ z66>?v-!&!|;=H|xul2qGWA;vvcb_r4mkSB`9P7R>x!HsH$R6yLY{Mac zye6Ahp4iT8b?pF352FT&q|&PVMPa;j#Tvxl~4JT!?j>v1$QNn^66-l?yLwMa7SqTYuk&4$l6U zQ06pJcl@0?G;waYdTCUp%$UzuD`JtClep@c!!L8TV~>`M>NX$VQ?Wle=(+7G!6Ri= zr=JJyx)67>YUft16M%^BcRbhM+ z*+YIWM%p|oqwv_=(2CKaVN*!wu1AmX3-=UrD@gH`eI+ z8HCEx_w#b#s^dcYupv8TBVz@5pjeJ>R~IO)WQa z&MS#~9dGr}*E{M^F8I!hZJAMe8j?BYl)IS(qtgD)cY6R{i|knwuO4kYkF+p2PDrq~ z{~{JiJJjahIP4M`HB z=gQj2;G^Inomtdi+FoEDb(f(w{|V{17C}`gt}KQ|P@yMJxQ(7mVeV?6Z%}(|nSdJ? z+Z+dfGTSMBtL6P`I|k>?H|(UMR?PS6?-WgWm17V?QVoT^y0cB8-X$3ez#P>v;+!i) zQ+TDJAlg)L1uTRf+B>EAi41b`||seztL^;B(54prq3I}a5!|h&;)M$2U>5x>vh&n z_0Nxap;m3)b(|gGx5aYx^JJYuJ(bFPP$dq!MF-_={|z0Z@qyWv=x)0-ebGfVzRss) zBxGeVJw67u7*`uC~9uNmdROWp^4h=m>jox21L=U&W z%iCA>5i#uz`~%4m?`gl)V2nj(!#UgrG2_Hnn|b|CoXq9i(wXgSjr+)U27lbcQo563 z`Md5p{=|K{zFU>9#%GoM&HkOF^Ei=u;wJ*XPTD`$E~w!-kxcItjI*&jfz)@4?ID~G zCoW^1ci#_I+F_J7R=;P0lF|t+NICYO>@eT;1DssH{>H$oCe@=&@7ShI7M9uWW^g%UM*yr& zV7Jl^qv<+~7H)e)dY+OUGeH|ieE&>J#i12mi_bFlwLabHzG{TP0G{>xnIrIZ+*eSHkn z2;D7xiFxgM#EwUOHXP1)us!h0v7jtG>gnF!qxl-=?*5Q9fV%$Oj=wd%i|}?Giho{TbU6qFo~C&1raVgb3%fR(SEnW_h>uzUJ18t#j(t z(s!-ubIj&*>btk;x!Rb15Z7rg{QLNV595r_D1FT+)s~1(d8Hp1r7U^$EXNrKoihBe zQA!0jzDJYazOwyAysFV||LWwBVNG$_^XQBn0HMw?N)M6nAPFI`xi9hefywEPr69`J z`h<+}uYkDOzh(b?+bHAWgGK`bhL{j3f6J`8wb;0Lm(kFxhH8^Tqd~RNy-h^s3qURj zPsS@_#rKbIWRc5L9l|hy=En`e@T`H3%S}Iylnjp*{I=lsq~(^z@3#fNEW2j!s*4^x z4Sr|Q-*Z~eEI{ropW1Et&otxU^}{EjpW(-(Ck*SFEQWT| zDXR6HdZYCB;OKQKe9gww>^_U%K5K@Ug$1I| zAQ<=(Q?0268eMcDJE9+S$hq`-M}e-Y9927EURx`#ryjk*{-|7Np^m48g^42ZM{a~U z4iuQTqE)(x`6$D>c!sgA!%@14t=CaeGhIfQqd;=P#wM^6>u{7uPT2XPHtHzY29{$5 zK4aaB&RMz(#RW3D-g@BJ6S&5y`5hbMKK%!a9!*Y$g9E`|$qWaWi zFJKp`NvX+tcR&qNx|f}P>1RDVvO*5Y2TzY~>6Xl`I=3|O4w^WQ4WCSMa47LPF=EgP zvxt~59Kz@v&=)&R)Is8&r3AAg*I~h~TH-Yxej0C5n^d{%&2y&;mD3|345chYTB>B$ z4J7`?syh!;2oYjbn(cxe9k_z90iWmqo@(?6lzJ!oNqKt|Ly@A)4d!G(ETtFr8|#)7 z^uYUc3eYXcb-*_N!QtPbA zXA4}SgcNIuXFAHYvBp9W>nMiWvAMJNU4(RMwCRM#>tmSW6lG@X^x(o=;#GTc$Sjdg zAA!tMFbCQ;Cx3rM4s!z8Y_D~ljWOB1_E_IAdfyjQM<1IkLtrhEh3fh&RH>S*9fL>q z{?)4*fthOs73M#Jx>ymo>$j1$v;cpD>Q%~4zCF%$T!>wL&CBgphmCbx)zTut)%7;6 zntaw|k(oWLLjs9QtgFvrx7@*3U-a3IP!^*0qDQ6I^l1)6IgdIF2>wj7*$xor+IBLd z5}#oiyUSR2O^(c7AG1sS4gj>@tK{p3=qO8)`w*T~yB7@`HFM+;(>ob7YO9*&Mo!1- zz{PO!ayu2u>{SNr76omHX-#@cbhW$=fev2%MaIhac-0e10q>PpYqki_9+pgj#6_yt zYSQfE2)m<%8ms?}Y@#d|J}%51b04-w85LMJ-jZvP}c$VN? z5ckS}uibj+Mrf?6J<<{lee;8Ip?7%F)WFgi@?!SfE%!Vn@8Ht&%ac(q3J{sqZ}hZ+ z*bH~Utw+%^oY{o+r@W+JWRF(}I`jE#CoIj9g{E`88D;ZLF$%Y@zA8k)srx;CxmPK4 zQ|?|R^sA#)gIkXLouN8(tox?o?2=mH-dns7W%qynJpQx)#&(!J(c}ua_*u&FTPD8A zn%pOasO-|yakg{P4w*f_%+=ESoX*}7=|{QyN$!Bcfp3c!d%{Ir2aKm3nGuUrhdb4v zT`P)X6+1E&TuZ* zZfsSz470eh5$HRH)FYv3(NgfvB4R@J{2D{-yGZZ;I}`{c=*2fz7~V zhlb7iA837~bmP*o(Wk91yAqjS`kpm+tg9}%DeAZ65#%@Y(ZgIq&K^IYzG{T9+MOFGlR+MHAV5;ar+^Mfo0Ep3T)jx585k3 zrK;V=)>}p9O+h(hzHlwK){2YR={^8}y7cG}>ss*=A+_)-`g`Hb;!!|YJZ=?q;mVm@ z^hzOJEY;Lzho^fD3CmH5a@HP)T}+aw6{)8|7L8f~pzAAREhY~3M1o*N=qN*hwOaSa z%RdaSAp-SDm-E8dZL+&YN$rc5g-nrpCfg2r zu9}@h<^C45QtpC#Gd$_Pq zD;m=4Hc(=vos`8gI4^hF4Qv(r!H$CqV4X{i`b(=r7mSD#Wn(^W-iWx?ED70|LgQg0 zN)&o_&1g}mnGVs|r=}e4vzS|+#hm>@0Vt(UhkYqjS0JTHPrz+XDs66f3DDNdFR}AL z2E9lxNc!M+{DXQ6_rXt;Ihn5h?e#U_s(asah>u?Zv&A9$wD4 z$_=FMhsDyMHfYx0<;`*sED0D7pvt~Pr(#3rQ!-k!I#Or<;M1r07xcrm~(gOP|3{e5A&hl&%gdl{`DvM*ZcFY_vK$7%D+C4 zfBjAVb-nYdy8J77RXzS59+-QFL<9u(YNPqUSB>|di*A96MHVi4QbWgjMq5JG2%VeJw59YIfK3iJ1iNlxb8KfNJ zVvbkeoaS#I2b4K>eDi+(4)M+r<%MtEHsPzriI>=ScQLaK(>z_X(bK}n$XuMOTECF; zw|2@vqmwK`vRoo)2EMh-$1?zyrOVWB{L+bp{?IR-MU;;y=?h+iyh;y2QT47Nx}gRc zsFa9mEL;&%#6bQ7mbf5yz6@2K^W=%F5Vo!z7Fs68isRoAJ|G1#n6Ot2aG}ckLhMfo zEb~=YSPywvE}ybdm>_65J(wIWF?yclNXrup8R?jxNzd{8x&0hFU-<4=T;59~vtyv= z0gsHzdwRNL{NCRq<1KpsJu4YhM%P^ehQrQ&xJD=Jx=$Wd+otSPK;bukv!;n;PLfGX})?pcCFx?qX7dw9tiu2kPJrepZXy5EVOd;by!)Lh6mP7<6RT}ZvI zO?^j2I!0ocjki>z>$3!Ezg(ZXPvLk~M0*J3P&nB`;4A<_gIuMuS$i7?dWTHe zc`p@tVJfib{ZG=8OeX9nN(W}qdI7;)r$t}N|)Z;V@w7N>nL5&dwg8-85d2eiijB8rOUx$ z23)cv)?nIS)s8KFjuzzwIXuKk6Q8!dc}#jVAudg{MFlfmHSjh6y2vO+7M=530DGP$ zzSF(`j^c{_B{&c4JT6U4jCx!e>5^kuHRSOB(rLn?8eC+tWh?TcL`rk-Z6XKpdr`*| z{JiMa!mc0Aohym9e%UPkI~U8rDV_r1l|T*Q1%2EcIp43!9wpW)9nJpmC|Y2x107Y{>;g3Tk#hxuNkV%&XBEip5@N7 zNmt6C{rZ+FtH&+OnBIuvOXVOVT81!y2ClJS11$c<=&XMi0P%!Wi!umo|W2VQCM(5$ZY1+h4EVLw6qdx5@%se@ru)7 z2h7k9ni2S51R6^RWf^ssFaesW>U);Jvqw8@hM-DiW7)3yp(Rw-M7zq=JwFuWCy!#v zlrOPebd-tiUg-k?ZAl{sM<;M2DcQ=R_jLWg)V&XQRMoZcogpI(GW85?TBA)h+G$NH z*CuURGljMZWRhTspd}J4QQPbFrD`i;2C zcDA`zJyeUz;v30vg5T!ahlBz}BOf*9MB3DILsBxFf2ylh($)R6iqt)gG_?GMbRtmE zXs#!}!|e=wP)j?Nb~lGpJ9Sw0Z}~@RYNrmbOr@rF>adV~=i7%;k3#&N)YMKLPVLm; z)J`3i-NE@*kVF0f)O_G8G@f0zLp+^{zj}AqC0iy*PDet$SITcOmyO&`e!%z6kram4 z-GB9^-|V+ot4UVix5Q zz1xP8wQ?J*?1@~C3F5ej!zyrP_5?HV!t5{vYzp$eLQOXn!51hbVAF3IH-xxr%fJ{x z+g_pwu28#mi?kPKyX!DoMO-g!iX0;weIKK3A1QXlL>Xf)Ql#(+gt8FTGzePGw!C(I z5Dd2-S|6YTRGDL~&>Jv%l zZA-Rf@j+yxxzVWD#=xq#(V<*3XMI(KkwFgd_*}s>n?2~8FvaRDW%hc*w#Sm0d`*o~ z%da#2Z;6bi7)~K{!@D>OD1Hvvs@xGQ8%Ou(K4;U=9Wwy~Tn@OA=p_1%9PhPIfLaD6a4RX@&=u}J!yF_I(hFqdHd7yUUl-0J9)3Cl4G|u;DyPWc zDWIS#I#{g-1@}V^3RYN00Yn%NtzkU4je-4h8X1z{~x&4L;c}wa5|KH_*FS&0aav^XV z+-yE6$PwloCgnX+*lsYgFd5oaM@C{hY`MdoPzktlqDqkIO&WPDhl+$rR3O6Uu3Zo*&;ViqpaPNDY(wMZ(z1KB z5M5Fg)9IXqR#AaU9<7f=9k>0vuAT2xbH7X8@1m=tkDIYRIBjDk3)?PN0X)v(aj)#_ z;`&XbzN-yur5I)Ts(2|w5BT93@YnLH7IxCK>kMjz~6pQNFmkQL2=HOC8xFQ zxROQI*}>mS4%)(a=@)0(yeYm{Ja31%h^;g3eFi=_UwmA@W8BLVe#S#a%W~>GUrqqr z!W%71qy?17jEN7=|>1kaJtn}DFopb83g6tTk@>XXEU$WE!%(}uz6jaqnkE4d2?F* zZgmY0OC}D$(lP^X3k|=L%r`SKRfItr6(0?eBMm=PdyNY~=B3WcTX){G#_D}Cx7Ll1 zvJV-naRX@If1&iN^TUvtx8}OUq;*-hiRaKc*ClX&owabRFbKie)5(zA|1~=0A$O%o z8(JQ>fqCzjnRTx`o5MRvV$bd62i;0x9_3&QW`bF{2n6>?zO5v54~WFhyN6=$4O@%l zE=o8Jz7Aq{g)TVu7}UXn3UU^d`qU7u@#d~2Zzuz!C(Bsd__55sb&8o}Ai36tr}8P{ zduRB~&bLSDxbEnZXh(n!fQ)q?{P=@E;1jm=Wu|11Eh!EhLy%_!)qMI|BF`lMnI_NpJ&ZOEFi>b#c=pNEG@9(l=__AjCJ}QETQSf$LhfFT5zSk@$cPyq^jJ>B4UApr#KMZd@3R>~8v= zZ+mjO*WLC{$*3Iwn-vcSIL&kbL;2@c!dxgsFj~$PG@oJ)9oZAv*f{#gcHi#gXy5iD z+qv!4&|*PKRH=};LDd2>2F&34CE<1%qf^N~&{m(>^2FCBI@!{Fk9!<$$rJ2ok)Br@ z&CPVAcuPt?yX`F$7x5r;#J(q&FE|ASeYQMthp4YxQe%^+ZT*u8({wa>IZa}1+eMRE zm%Hq&MZkCMv(~pI@!D}dL7RVgZTJu!a=#%E;Ut7Tc8h9`+4dUZ^UE*u`V9m&2+;14 zju&sa1UK6^hQsa7{WEu)yh#I2+}_0IkN_(&kvq)eOst(KqfwBgK+Y#D8|o0Q&L~*S zbCyxq9F_;@rTp*<87<;X5K~guIH_F3l85I|2MnyI3Dz`=3nyzapU^;nq#Ry5cvV_P zXq+671Cpw9hWcA3N@~mKg_EvTn90(YNQt3y8?J!Q%;|jXG|ZW?m-B#bO?sGf(OI$- z+5T|T2P()Bt1_}HelU4n`+qS?Bz#`li(X0n!1e{wXep|LfX1@>DMXtfAP;K$4UAC& z8YOHs?l?f504rd2;g_RukU4$rv_gC*zSBWyKz3!|!)btzNJ?Ebss`Btt{fyE2+V)~ zOg4!(-!pyyKQ!-x?7>e*WL2I2`Q{ zAoM2}PcKA)=lFJ)IQ#A%GFonBU6Iy9xlT5Mq_}h$f_C`{P96P@Q`Kwc9&oV=#^uNgO4W7YkAQv74Q&ZHkSx(9$hRs2!N@{? zljz3h+YM-nPCK1odSV1#${GOi^JWZ}JkCm!rLR^R@I~2zzuLJHpNOMUf-Fj@l2YHJ zIV>xx3!sCs>@h|{J0W{Rvl`T2Q$4mS9x8J%)3=w6M7G5R&vu2J8M&|pQE|W}qjxWgO!wr=$$GXHdX_pQwv-ZE=VNn}kZR(ZU^tAktS@uC3X=g(D#Bo9pjJ7#)BlbUKCv)hyvHENXne3K{$7Q#~@Od6DkQcSX zqPKzmfaxm#b1=(QORD$-=!UvyFrQCBgZ+rD%4&W}l-8_Cx0^?`J#OS^YysWy8>=5z zO}8ykTNHP;*#GU3L#Z)Mbck}y7YmOF&5$iecIS;m^~AVwx4HYstH!irz>i>E5R^Qw z4I>+yis^bEO__O1$|Ak-3pg$2IpZ1-Jqr4>XFwG4y)N=u<6gmPM{FxMajFD3ihggk4p8MSRM_`q1Ul>XVvg&6~Wxr*GTDbe#?&}vxix7I3{+WyZ8gwblLlrtHF z$;Hn*KGa_T=LN56sdo5c?w`tBh9lAKzm)g@f)Ha^Umbs9;kfug`PX~}E%+l%Uv^bPJ&ob@P&%y{uDmt+2mVYGNa84OG;ieDoD{a| z(RNk-M8y%%^h}S9M-oFp(S1+%*hpHA=)R|WY$PpD)Sz$iKc3IDD4lYNOhe>2$IF0t zdh>0{Cc@-_F=!&2^+9CX(JZspZ+^$P2QDXDy2B+Tgfd51FX=iax@Q)@^aP|?t5v0~ zH~VLPGcSy?RBrq%`x51e3`h_d02kiNcY_q1?>8&0=z7tLPKskY@l@)mMQgWWesLvs z)bSC+Z?^Aw=%mb%d3_KR$1lQGGbfDCfW(_)%tpU?%$#$FsOyIaKsD`IFfUZb@jS<( z+1uyRPx}s8eGH_;zM}(B@Kj{qA?uu{u)^Pkpf8(TG)RxY5Y}0d z`J#!37j_8FF%AE!z;}T?*$|C>j&I8Q;h7HblfYAI3$iVIFO-fI-$jLO5Y)dk9-EE-= zW^gHoRkx7QdZ{o>Fy|A?xfm_yMekX`@QyxEBENVTN03{dKxmF1LYi}M9HSRC$Xspc z;sE_UWBD7hggY9Zlere9e~sQK{nw1ZZZTVlkmgxUfbrsh^-JQfSF5`U07yGaT<*o3 zrK{5L|NIzIQAfvJxi$VX>I!ORZor3vpvw*qUCfPkxx~o|oBpR6c)`SKaY2B;p6}CF ziHn2HsyHte$v!-3I4BppVwKnSHcLC1S3JC)o6F&W7XGsIa|G)APLN-7kA0<>9aAK? z@f*p7&Ky%qVBjG6#T`#@8K$@sbF^1zC{-vPwI`1i7bmjH@YNLwhMT@}(lYD5Lv}Fv z=lWL^*+^D$t{4UMkfn?Q6b@nE6hGU<31kKu5fxISK%y@@)BWg+VjM6j?Bmz5wkR`I zYuegEgnYR;7uMbsVXQGp*e%1uxv*oG5_MJmm1d#|&2CILKsik)?<~(q0W%AV=RnxN zx{xqH%H^ThC}cy)G%>@!agBd5`ql`CelEmmtG!IIo~(R*G~_B5Md~*p$6*dKFTnsZ zrO-P#fMxz{O&b!!-^D2tga;Sl_7|vzhV!IVqE!t6KJdFh=s7q|PRPckqMph47wqY2 zj*&{B*=JA<7ntfGp$thb5;gh6@YpzBgeyI=-8c4`#PIld8EGD3tF*J?6G-zAn>3W* z&q@rR7tbNxLvGU53NweCjfvlEUzbC=%$tKk@;83*Mmi3p#tX5$O+146&4+#^yatD_ zFnX59K&KodAs&gQFnAq5TioILyPMT_f=cp@${mK4

    4v2;gC~JtnUROn^x^Io|%I z0A3LV0N#fZ5|99PcPK7&$X+x`RHNIzEVJ}Xi?+HkroYJX`{eM_g5;jD{VV%C$&$G-lI4VWBs@2M;yjaU<$bC ze112{0l8}^why1i3{m>taJC)1J*@(BT61ZcNMVQK??ZO;>_q#^qq1x?HfCJ!pLLnb zRJHtd;rAJKsTEKIPE~+HFEvAOT1F-BBri-`>Tn9(j%gO{>#OeqPvj#3vX^WY zUQ6-zpU`}AmugmpIbux?+yec9?flQ=23RtoZmt(T_7u-&U(%wRnxB&x_8I)#T9ltS zAu0|oG&dibk;cJwn`?xM*#9XLZ0Y%2Dq4}&ImBiA9^$k?PYz(sZ1rcaZC}jHlt=c) z2kk3HnfJ<3C~@M%qGH*|Jct$m(aSxE4%{Q%UaF3$6fXYY2|=Hh?aDff=yQT6f%)^y z9bgJpRSHwU6D}0PNVheffFlwdVaE;S*dio4K?Lf?!!X0@+{xfYw0e@$%D80@&hQQ`nFZlc#_&oo> zDDb%LUO9X7u;ShvnX-)mT;^;6p#_;ghrUd6K_N~8N11I)FQW2l@+rwMBF&>bgOyC;X}inyeci$cj8~{CcAhDC7Pv%^44`~i*j&0KL7K!bm^rj$v#bYwp8lup!B{gHD~bI9wg#1T*I{Ac2d=G|070ME zr>P=WFX^U3!c<*LkFT+!uByI!dr@k|{8l~Ayv5h$gh-dQMCm5W<`fO!?;r4m;zf3K z0Cv{g$A-I0He03lVAlJ)qslI9;0D-R*~~buH($-OY=u@MMqJ7^5IYmdYeD>S+2D-F z7J2)xxKAAl#Y-qk`fbiGCGi+Y&yCCeDCy2l<)r5uc0ihAI?xpq|7vJVsSuxE@bR0C zYbTkh`jGF4+2|K8UDUv%xK#XLBU-;3K_rGM5e~1lT7(wZB`xl?r>ISKS~DuFGEoY~ zsAn`LL`^lE0|j_~`VIk9O1or>vV*xs3Q=8w z?LVD%a=8{o+eCFp-662*MVBl8WZN*AUpHRX(Q|JtHeV^H9=vOfgEyLhZP-ln6}awH zQhbU%L)_uvuWc6xUlDIz)9u*xUFBECsj`^B5qDo55c?AI6%I?(Vl+PnW6Hu8Gfc&& z2+Ja>6^`}lkTM?osWYWw6o!{vWjyxNG~+SSl=0Y4(~QU7QpRIL+IWom(v8Q&cJx|+ z6gqEf#sQ2jYhOdvbt;>X;RCMdt%dugU za1H{%oMaW?BRQ28|Au2-_j2LiBJW6E)8|tVG!H+;0@sp*f&UB0$tlm0O$;VK74m`c zUC5<{3it2>p;oEWrX2NDxCadG(uD^q+ye%8>B0jE_mGQurZTvrPAAxd5+aD{Ux=U% z>0$(ua^Tpw-ZpOzVK-c^jO{KH0k25CbMfcOPhO%FVV!sk<=9c8&X9tjwqKNtDnO4i zp|$FACl9oQZ))WLyJoTA33J47up3Gjf>BINhYE05!8chAVq2va^9^fT<;-7-udevl z#F119HQT|jDcei&a~1A?;eW$tp!sw*Io7m`#hWUofy9( zu9gvqoi-hzojLeL+9%n$>p}5Y$<#?HAaZKQ!b@)$Dow<{CGGzQy|IJe0v@{c8MH3I zkses&S<}9iYx$Q@bdu@+y)wL8M6z5ggyO#>I1~Tq#H4QjDjBItH`;y%Mo5nSM}EjB zn!JEcVu$2S3>a-|gt3JxYl%5Gvu8?coZe|Y->wJ==yUX?h_&Kz*;TCjA9obF;22gq zCyV7tL=_>O}wq`8`6LOxGg30f+M|L!g zE9^~XFiVV+rv#WfG?(B)`9>MH3+SGY~ zi}K{B95Bmj(=lmuI7b@I!JX)1w|Vk3c8`HKj`G!Z^SyyX9C?fXIxvp&vO6Dof6UO2 z0qAwqKf|id^Dg-jWO#QLvZ%M~2|`y!=>pios#xCw&BHjQLt~QcCx*cRqvlxgc8+J& z$E;SxmBJ`NNm(UK`|tURB4SjRuh>plk`e3~{2$oc+$yXUgR2vF!iSwZ5cr96baK9> z*+pYDbOtSTQrGL&)3n!Vldw6c!F#tO1?KaG$|>l5M?M0>N=2RP&*rWpuNc$b#3>ohmI$hKsU)VPo#a{^fP=nKw$+OPfNGtOj#-3b`uANjDjAct4C=5 z9J}G^5MB;GGH9}WlzIqN$p2RuTcwWYzljxFb)Y$8|`rX%%FHp6EcTqf0xC{O~ zG!_{5Fx;^m6EBUuovzKI=#3x8Ep#xeTmHBwvF@^fylv9>9n4@E;dJ3u^AXQa$4jOy zAA)9n(_taaF+|h+m@JH*{pJMCYFanJb^d3WTg);biqxs%7KhU-)D2zcGiL?5D_T`w z6Rx+tOn|_~{uUWBc{7H;=`}KXM9u=gmlYipi~d7iEBJ&BSU2O0Y|!*S%uP_xGbXcY z1J>yzTHsM&7LLT-IwWHh7qYk+0uEPra7a1&aS+6XN5&1?NO+iU+GPR)@n(BU0MJ1I zWj6L{Fj(cVq5X3C)5^drEgxQQ@q+sk)Rv=zq`1OU`hbHov-Wj@?;^O0?nj=fuDnwt zG^2a0Xy3@xNOVsurz itdj;Z`BS?tPM4MWisxXtlHNnPps{auS$;B$G%83)Np#) z#Atu~Z`@J@@PTXjZ}$y)aQH{Y-)+9(jK9l#Uyt9FY54VnGyd3q#$WVpjFK7uAq=)} zMt!j<23!OLuXA)9Ief?gN5h%9oEYnizc4J$ zi2KVY)*OmIl03_4AsGU&Egg<<0Us@cRx~wempJf?zY(IIW-M2<@>@P=m}iYAMU4Di~l&U~wq$}Q!SAV{maMFHcwXMsi zlFTBQ33bK)!hsbpFPyfUiZKXPwpGC6MiSc|%?FH>`Ha>4Xuhxl{-tIxJUklxG6m@^D&d<#Tj-+Deppr`R#Ll4>`XI(Mf;bc~{hk_v6mHoHC`H#!~-k=T+lr#cGA9WNR#{Sgk}6 zz&cQwc;*cDIRC_3bB(rsVXxt_tgQ52SyfB{2ias@+lteDiK%(uj6#eEbv!NkVJ?-yNeh6 z9xKAj-Q!sLsJ!qbC)`=-!&Pi6`Gl>JtDtj~BcZ3LFDrSe`eB3cOO07}xxtO8*q2BC z-1J%MJk70Bxj5rK`Ky%23*MFnt^}`e!rbYYl{>6pxH5`+uGTr>)9l#+PK&|#mojQR zlNv`;qrOAay)=iC6OpUnOlwQiXCNltWzL0i13Gr23Y@3Bfcg6IHq<&ZJlg&q+NyHn z7bFtp_YC5G(c`U=Ue)6eg-!aKa1G{{ZzX4%s}K{D#+YshB<~$V$hN2qDAK0m)wQ?L}Ba z%>gVxgYh%$83uQ5g}WaajvQTdw)9TB5~FtuJSibz11T}~@dY={|Iyb)18g1Tm%RJq zTcC#>W49VBI`qC(?`%jKpS1kb@lFeF%@xerd5$8UMOMTr_k%PJ5z#j75c@p-OUR>q zyH3!HU4^4txT#$3#DQ^@d_u7h1X*xS6&DmNRj+DQh%V^p_*6un#aon_uR3P%japqo zsHjOC^owXcYeeB0k@~CHaCC8{bFrHB8$f+j)Lhfq%myfHEX(_>ll0yC`)UugIA{^>cO%5MC78rO^zzwqJ}5F3`B<}2bh=Gmj!Sr{#~xiGMm5f6Po`9 z%`26Hr=;kZ`judK=UwBmUhWKKVf(U7J}+2SdhZ!9&mxhH(glhC9o@5ZN4k+2(|l4 z6!TNp!H0>2vcr7a_2j5J(Ivo;xJNgtPJGiGu%qIMFigPZ*#^r+bz)z}gvhM{QZXQ; zW|&S~OefSjQ4leoO-^#yTG=0*9l)5m`z8Ue!=X&g8nYlOfB87aHBY%I!Bzzw*@hf<+sG6`S9 zv74d?-XxskVT3aYO7dE)Jy#}6&BNZ1rA_mBcgVCVJ_27E0d|Q@7!r?a2z*{lb=;FKIV_9+={URS*iNG*`}3@71i&n=YeDF1p8h!*EcqZI5{>2-Fpc{pTr8*u z_KzKB3%?Vdt9;ovKf_z%=j=8uPfGd}HdCYdb1Y8AJ^>}nu+g@Y4Z_?-kpjEyf|MT3 zR%4mmAbKMov9`Oj>BjKWA`Be3#%-ke3VB)>WOJLAYVJRzYYXA^mS0SwG;HpYrbVo6 zw0#@)(w-vQ5rYy1o)?T|g`|C4!*p~)cbQ^92DYE&jIQ}*d6I@(cJL&%$G@#4C?f_% zXw;7(Rs#|E)TbB8c-pDL^A9J0K?MDm6e@S_ILL&ca-+Pcj!mZA#_`$Mm(5M%*b(7j zK)@qEbS;sQ@Sd6ra`WYI>BD3jyb3hMxKTA z$)qa}m=3D%XgYT!d=#oHRgeLTzMyVSA*1=@$Ht-Ybln4rpKUDbWOEAuHX}zZuJFNOecVe1!(SOm$Qs)-@g~+CM&Se_yH$M*17i z8SpU*+6v>yn3}vC4mu3io^pX`ZE4y-)5fyRq`FN|a|X)+gK{lIK;Sa4<+B2uXcn-M zOT%l_G@h15on;zr!SBc$@gZ#oc#4X+cdWuaKq5)}TW5>iwBKW7#Cq zz5a}t#O^7|#j#qWPo!pVK%|CfW-=z~#)PIDh+kqnmhOf5MBb?YNrhx}xhRxKT5m==U{|A6cW&nZfl~wC|69 zpAojTX9s&;8p{gD;q99T$L@f*dt2s#vHQlp%YG|7uD55xZ3>y=CTqYsk-jK&jf{r>-8 zp+K)T5p`&|#O!sVs5{G&NaP6@)BgOLfkDYOZbxxnmH5Uv5uM zeq#w7HacXjUSo+6m255nu=TZJjukz6PzKBw#Mxog{wgMX*%ubisuvH)C( zi9W0)75MdONrOMfF83?Ys{_-x^b=d^z~t=DN*71%g6O$l>>QY!AnzkiOyUvV6{#o$ z_U%<`Q6sM+5X{aSEUpP=v0_oUP_PMo@_Za-R=Q!n%hCDIO=r8%6WmuFQ1U40fL-Tz z4vIwUnJ=rz<62oo(t|x5NPPOR{*0P5cE+~>L5>;(9q3aXK<5O%zKF4_J_T_^6-8}* z#Yv>f=!7ww*k>{T_G& zQLG%;*2=DeKCcs-B5^D`{y*poGPJ8a3_UoO1aK;xI5tisG*@}(nwImK_*cpCHkq`X z&&NMYjLW z0eSaifkb4Vw#7+)di@})#Y+?4`t}S72N5*dZd9-z$;MuqHVq6dweYHxNPeJ>HkfV! zc#w4thajP{gRln+(NbeABODL{FEn7_VFLfzQ+&o_2Bs8mNtghk1-k?-9g%d2+E5txQ5pLV9^?YGEL`{(jMKDCQ#`0o9Ol!8Ikro6&Om+z;@IoMtA&48l z1OXAN!7+d^u#as|v`oYq1rTHYzs~d%hB;fzf`0C;Js2UGYXDo2c;mYn%3cJjr6AMY zuU4ZLomHB*5^$4k;lLJo!F(^?;2hQP&8aNRu5^hEG^hZMEe*q!;CEnw=7W`BH)93pW|-FDfy?>E z>_^pHW?5!!;Cf*$_X?~*gLa{-}s?C(ibZjC28zK(|{VmcsrnvN$9nM%VGmrSK~TqPw?7fp)=9Cn5mC z_Dtd;R%pXZRA3*pd&UMYH6!5QV`P1?gI z%{eVOIE)URdH?EsdTO-%lJl^V0&!ue_&G-!^x*}31mZC%f=M^=*$9fmra2%K=Tky) zs7wAO*D88bew^Es%M~U;QzoG)@N*3J2)Lx=2T0)}fV-*Q#gmb=N8=Mjg>CQyXqmas z{W24yR!Or8qk8#DadnCW4U`E|5z|_m5o`F57U@{x!|eEF9{kOh3uR9mN_;pj&ZVR? z1*z1}r0t2R)C|9gIY&Ht)QS+85lLeEJtA~Tqfg8 z28%nMR72Us8>xO_Fu0}_z{0nqX;(vUJgv#OJ^6hxbo?>tARhblC_W4VzCK^3F{4O}ByLCgFtzMR zYBqiL_vJ*ayH;aQIWx0c6TNP+yg(dp^Px-_5s&msoy^utzmzMDYDqJnPySF(>UTs= z=3OB(n|))4w8+a{PilgUbv@n*>}{Eu>>Hu5X=gCnqy1_;XtK&-2q(p-%EIRI386^g zi;<6-B3@r1l<8=w`ENN~dhScA+}3;#P|(d9f=WG(t0n&(v$%Y%)R0ZW;= zak371H1RTo9v8sd#7#NeJJd+*qtuO;#Bg?Wq8XOi&9(0tnwvfq zhb8><(fQ9N*Q(Q+07CJhi>c04IJFA zJ>f33W(y>p4LR3*xBur<#2E8ZBDfn7!F`ks=H;4>rYRb!oLRxc0JELaQ@zRGU8OeD z?kYtCyQ>r{)~(MR-BntJr7BlQ1IMX==@{W)+UG_3a`ed{OE094NgQYduFv+Y1@-#^ zSItl&z>Cbi1F zY@lH#vUPz&{%}d_6^<{U#O9Dl+$XK#;^%J-6%YzP*CBjum9(lVjHgFeD&VD@<4lje zl|0+6UsZU0me&vSZ&JFP?aDuKdcb^J+vmtv`0{hV%G0))QirAwnf4(fw!#bnd5X3Z zS$Hk#mUFFn{zQ|XL5iDUXrQJ=oD>-|%I3kj9x-H4@D8F{l&9%ozGOk#O06sMo^FDK za|txgI$h*n_GU`cW!2)qbG&r_H`NcjC(DgambQ}bo~#MyWKB3H>&{MAeeIsC3Fl-@ z#mjXuA);B`<+@n8E>^CKmFr^Vx>&g?_Vgl#F;GM)^_2XquBGb$;S#ztOgs4hpB+HQ9$eW-xw>ei_Bf zQ2aXml8yH4!Ye72*9Gn*XTb3gY_vH+(Ivx}a4jM$chRgR-GcRECvh3eze2GI{lQ;=EUJ>Y1&znGi}PdN3^h;&slF}qR|Dyy z2E$cD-qw%j`q)vaS%rDXGrPPJl9)!Npo}Nuom?Y&mzi-msp0JGIO3gj>lLC$nw2uG zxzspI*wo9sHmu4raWB>AT5~(*-QBL1vtHv`p}AWtJFEF^_`HlKMbb1$aHycjUcil+ z{mVq|DyCs&CohkGxaVTzdCHzk#vId!}fk1x_MEa;(6$LH&p zY+lZe{~N{fx-d0M{=iw$Vgli;XuX{U7cEGwYKch%(I2_6XL<`;WJ!2~^!j2quw@Y3 zSZPuC_!Z%O$hVP7B&=$lAQ!60g0G4?O+Oyl+BikIW28d_1UA5OY1IY7$fZxD2JAoy zh)%h2$yvo6>M?$)$Za}K8jG>~4oUN<)W?kH+RX8oJ#?Dj%b~=vq4-z2%6te&7oM*{ z2T+d%;-A$o0QFdi*gOtUGsca9uowxuqfLJK9~&Qr0t!t=OK6xBp-D7_vYLK`s|%sP zBDF{h$IvdQ8xrI}FqBcsYF241si4?AE8$ilLM}l#*574P1_T@Kg_MD1q4=X1CY-wY zoUEqWk7+*DKFiAHlFD<`DD9Kxv`?$G(&A`Z4Cxkg@P}C$Javn~tfooYM9Lc57B#t=IylRcv;9MqkvXPMq%%Jhb$6?a<#X2vyU)GUpOn~YIfDN06&)b$bI^3YV@ZxQ!i~n13 zu-w@~{E%I&=U0)U5mzFh!e9n&lTZ?ir5@f}^=}=qLF+oPMIaUjfiJ50^s3IJ6mUKy zJjKg6g4~>Ym1}L+-k#nUTYZgI(pV7nY5ZW)O@ ztO&2-!D}sOxG)knM2qW6%&(m;ytMtTvrk?RR<|mVPRPTXfw(}F2h?v;=l=Q zS{_Jj%w~^3OVcP&Bu<#~GTKrvR9q1b(;f9jeauBhUcR1K=dU&4VTM5%7h=E7hE$#e zi#i1h{<^UEbgvSc83jn28J7a+3J;)sJ?Hl0M!^AN&Ou}LbBT^ok)HTli1l-0B}Ty> zFfQ<(F=x*063TWj|7n__vSHGCd3(ty*p&QIdI!noddeu+p}(lx#8(ooj{lznh_fZG z8~+J7C!@G>ql)WtQRnlnWEXWnaa(`15)E>hRf2y(f-Nv1%AqW_*i&z)mZskM?~lCpmA^P>qfy=OS^^# zn$!+x%NX6W{3oUy0|ry(Y~*cAve0RjWaI}bM4;qIOlPMQGctPzHS!~q!v8uZt^7rKVfMBG}2QeqO)StG2hHR9;W_8wxVdNBP`Ce=Sy_v}i;782 zFBaw4Uz?3R#ErD#u#@jq*k+Y$!p3XU(NnAKZS8Dn!EVTyUXZ$>GMY29;0hJKikyX_`G)Y zI(}yRU}95#V&hO`cT8-!Bhh}Vv9Fn=3 z(YHs=z`JpUW!(OnKW*Tf%$hxRIkxG2%HbA9;~}dtV8@pZn)N#q2ZxTlWY+i7h*f{c zu2?x({8GCSDrekd8UL?k{J&Nsp0h~}c+OU%tK;+Zai!6{JHdnmE#MC{ebHXuUPR(-$G{2Kvu zu!X-__Rohq4~{C_n_V-QzC-|aIS{Y&QHifA(Rn;Fv?!VUDZUrF{YwPU5Btn+dcFJ- z4iEG?tLc2Z;+Mz0IioxTW=#nM%>M$=SwT)==|3jA~_AoM68bUz`<7uNPiwi0bFyS6WJY?M`V z2o#%NpB?Q>^qnwk_kek%6>d`?aHmfF0*ZeE9vvrQ3LcGv>F`*t;IZ6;hrDZeEC(KY z7rkUf`^&7F{ZpCi$cOe10LV84`wj)o!-CxPy~DBR`o+g72MT2mBn+hhgipk4$T6$2 zXIB4Ze4ujqNKJ83 zd*Y?uVxk@?ygt3KDoO`+={YAL8$DH#-SJ(>`FmWq9ztRFXbQ`O+rg(8YL@+dZ^fG* zx@|!BqzU|P^n;G+BzDK5gAgcL4X?_2zYDGe`$r}+oct9HZC9@SpfjLimuOjjb|rk7QHJt`mV9@Sw=6QsNH>? zF_WQP!G~7?x|w%M6=_v<8h88$OpzMfm75hlj%Sx(%i<&dkOFiH$be-t-KprJH{<#1 z0ribU^iTj71aKJOGJJ)x{Bu-`3fXB&+rV8KsjAeIi@!mIzmCUFv(GO1vq3i#ZwwM1 zXfyb`>^5crW`uY{$Fdhp6)tQSaqQe>ot9+XC0Vjy2rwC1E|42ho+ZV+ZFj}l;Abdr(0mox<0g65 zUwNNRJjS|1B)re_dsKSu<7`@2g5h;<5Dm?@h)|bT{e@ZNcYGdToh?~AiSHA8#EK0j zP81kR<1}2!v~Rn0IrU>bDA&&|N&>TeS5Keq|RJ_a)`*^|?Ym5>^`Db`3 ziT`SbSIb&-k^VGwwK*XE6-OpIUpH+(sp6$ljjB9wQsqqx+>j?$^J=lZV~F|IRR2^( zBOAu2+|+Fwm`ogKxv#i9Rf`k~IE60rOE59RMH45U7~iKw5{ph;EuD$~LOMAr?Y5TN z;h|CS2tdwHEc9nJeckPrTb+_05mr$8(pkyw$Q7@hdlcxS@(TjqA)RQJOT;Tgy)=eBZJn&#E|8LLu6*d?@xT2zV7 zPK9W(D*fb!>9Jg6%v4S(>={05wo<@FQVyGVBNBB?D&i5x1+R`@@#|wbDfIBXGzE9f470YDN0@Q6b85zJ#{#eZF;_wiXY}Em{aoj%yuz}M)Or8}D zH?vNfEETJY_sn^s9U3rx(`zKAQcjvM_s0Llv1I0M0GA!Ro4%0N4B*M}oTd-_MH=G* z)_82R7~(dZCGCk%8SO)bmmLQv5g6Mmqs1Jzk`Y&#-!d-|{3$InTVyFweYmT!GK)i zInp@MngdPeII09{6sP}}K-qBwqkNrkm3xQsl~`o8EgO=~AX*{>*JIxmjYLra|DiWH z)Dp!y7mvZ%<6Plr{5ff7#c?Wgg=2}M(lFpYKY_K4woxHqL~0z&w24m z2S_&pq(3Vl-KcDMa+|^#fO=X0#RMrSwptGZj{qIHin|F#{1d%cPHwr^`(|;XA^xoM;(6w)qLeQ| zpHS76fiGVH8EE;y+}rSkbvbbP7EAKzX=2)TWtv--gJWM+GkrMS@OLX6m}!1rCJm+L z#G3|q88AO1MDP|rzGLDoei|(>Y_YtQSWjG$xcwF=8Ero#1Jhr@s~25T)ox#^`f4WQ z-$`^CohQUuLXNqoa4^!{l|ozz_GXMjaHOlkruH>EjD!sUj1AiBWr zZt$WS%+G={K6V8D(k1}G=f&aVXy%RYvGG9@%51({I1V05CQc3+_B$Xt{Q~R7r;ccf zs|k*ORrk;BTho~y2vX+X=H6tbY*W7h4xijzHo{YN*ICcHqq3IYQY*RH7XAl{)Os1c zBdKI!d5&RM$csYpa*nX9ExdOXs16J8+9ra!$?)UIab-X*pbh(O(g*&NKgAtSOJ?#u zvwz@p>heb9uGxd&v6DzUIp!!gV=Ec|v_CoXFSyiPa!540)sf1%w-Z06jRA|0h%Iq? zgDQrmJ>?H960WuCS`+nk{qrz&v34A5}*%MBf|Dd#;tVop$h1lrFLo zuMJsM)pm~0x_VkZOH-Le}~90UUmsU1n{EE1&V*I>VYSk6p>{in}^|L&1i>NRnc8lO(Xac*kG0U?Hna8HIcX=2=}5D5Fu@A@=RJV zW3Sse5)g|BV23c`Y77v|BDx>To$1wf-Wh1W-(p2O*yMEg2!ZHyFY0xUKKZ75{p%ox z0iC;5I_Gi7W_0~Y9n*4Lvqp6+*x~?&j=h`w6qs_@YV0r@*Gq?@gJ^Z#T5UdBCj)&C zCn0%f(Xne1jq5qnDzFi2n0~q7vTXS>tyAky-KmwCox(~XM+x(bUovBT$y~FRv-o;5 zx>Bb80jZL6xwxPOKG6=cvT^mx2P(_=iW%#tm)4^)|D5eA<)|3F-#nPuXe15{7Va<~ zSSbD9Z(W^t!-7DGRr_G}{8BUa+m@G}m<#-kiX9N7niW>tePSJC*6cSQ5K~(7>H-rX z=31&ZeImcEsurxuS!qqLXqwKH*Y9c2=nIHW)uf1kPqn5x)0>p` zi0_W<$k&PgJ87fC46amOOF7kaHjK7r7Q8N+Zf{#%BpFz+FCbLVRo#K$Rr<{doGM}y~nlSf?~72ExU2B@C2eN ztNwL+(vxOmuhj_MdpHu~g!LQQi(+kd$vUFzB<|s@_@%-DS7ag)5m0pU+!`x8%@+!ee&uX*=ic$W|^|%+C3@3DD%iXUL+mqeN_|>9K>k);+2t z4ZjT06FdF{w}NY&b>RMR{lPt;p)UO7@=x5&<7+;22AB5Q-TWB|aW~(`HDGKzO-G=K z0E_l&dm1ii&qh2y^X}trbt3O43e;@>GA;Z{Y&;(6jKAfs@upn4jrF&79uUX*mtUWi zQY{i!>v>k=gI2{-w1wE`Iv}*eC3n%-6~jf|vWN!oCT;u6?24s12u&Q_B#<8jvPR3{ zYteZ8lR_*U6!I=lzmDlTRYDCMdWvf(!}^2SAKN}qnoykq_i|F4bJXPHRd%^Q3=GZ z?i5vz-uUXY77-z$41ip40WoQ$AKiYfJtM^b>gfGbtjY@ZMys;gYMN%%Y?wG(?>IQW z;Ie}#0&*w94rJBtOcsD1mM!q`LN%NBs0||L9<@On;6_{1=>2BxPRNKIBr0`eZ&NL( ziB~#^ltUM5Gw9-_GptL6F)>Tc%9&Quc)?zr$;(Z(bDVQyw|+$`=pjsJG~k0e5hL*E7Y^5*Q(#?FaB_tUfu4Y7Mj1`(1$g!CW^^dJgU z?~_VK%zX=&Vl^OauYFmWIjh>9M38_UtA3?9>F(}|04EX*Cj0^QQxQ<|Et1`Lts7Vo zaMaHOT05{Jkn4OOc7F4n-wDodf%9A9{1!RCrSfa3g~bJsJ*i#Opiv@{SOlRr+MeM9 zj_$|&5c0o%_JF+Sa)ZZGPH;#bE#+?D7Q$!$gsJmUD^(nJSg(qo$lW#7|qacc5; zvVwPQNhipr8h9P2haMA1*!y^XP5dOIJE4bHL}f9qW&YeHq!^e}V&*2JNF(6B;j z&_(Z8kGQyh-Q?H`c=+*~j+6AnX5x#qbWrMd&NBF;gZ_^?X#bR;yRl5*M}yXMXkDm0 zWX%d%m&@byB4{`P`Z7i%`Zt4Q<~+$ba-QI6_Koiu_50ur+*C;R)jNPQoy&O=B@=Fu z^PV&=+E0O(xtOBT9Sgp~rP40`Z)0oN4HUL>(`a0@Z$TlI)UHXU--$sd`B3Spr5Awo z=fGQx&w08kGGw$|Cvyvv!~Jyg5_PbzS&`VVM3kyg4#+}60WlU9XwqF=z*}RfbvSlt zIMzR0vV>j1J5~`xr92N43=X1+h10T7OFs<~c8qI~g!6eJ89p@Y*P73wIAQzmGFuu{pV__J z&1kb(-z)kVdF^I>t6BRHIsd|Nvg;>jN~&YFyW*eH(k9P(b8}L#)lilCyY>dy-|12DA;Gz z@8{)lqwY21>VwAk@RM>oeqCQEd^73O-_@xmOo_ zSQ-bVw$ZF4^Dc@^SCfgxV`XG8_PiB+4jV-D(`xr4qE)k9zh{=3%+}#p>dXoe8*7%A zy0ZnimetE7NPG}?!kDd~b(US_%-893hq)3dDV(Q&FY(m~MrfZe9LP3kn?e4|H(@qTLy0b z6l2%GDwU3vfT)>+&vyo&zFHKBHN>1!BSs%S<>)oIPFl_xy@`r(pw96W|go)F#NLA?ZZwNj_54)((I zKT=5p_{{l(*?2$7Wj9RCo0QGIOFS+sx^sB#l2vermk-C*55q*q_Fpj^`|WUSjk`39 z65ruIB_fn|Ff9y}$YYyZD_}D@ZONR?@V9JV4-m7g2Sn!ERE`zdmJ|p%{2*$IG%WYW z&PQf3$;vYB*=WTMnK^e@wd<{%JCRnHIZMkdB+8fj%Ol%}kA=7<*3ZIL_DzU8#f~n^ z3NA;0XkCteKyZd)4qhKFd4z>Ad|8f+mUE2mjAGk+n!c%`7uOS_E90N)%#;3D$f{p& zL)$cDCoxB4Q*ukn@Aqq(=Zdc7iWO9Bf$Mi)dFeQ`*Og)#m?Jt$~WA_hV z&dT3UFDmi98XKHggx^JYRS0T|S6P1sgLqt{Tc;>=cG^>Y#_jiuOy(1Go?LyW3H<^D zS0jdKX_ND;OUkU9{npfLMZ9-up5SP334&zgsFx5>IB3FJqcm{<1!A=lUK=Ea1oE1l z<^g%=b02!$hv&?l+-59WOhXLE_Gf*GK`c^%z8u>);DSbw)x1<8B@MPI9uA?56}(ea zJ1;LnNHJV;yO23GF`)T#1bi#rLe2LuN4;in4Vjim$A)8j5RRpSz*UOcbD3c5eWJ$w z>t?VF{dk01y-g8Er3Nwi+F#1eb7Imu%w+D8%hcHD#H8g}4QF)w*MY8_e#B*a)?{uP zV!`+e3Xh*90nH~Omzg{vYwmF__7{C2c~v@s=q@;!O;d`urz0~TTJ^z5!`=QE(RUJ) z?gg2-DCjf&mKqab;o!e{E7#Rbj%YBI9S!k z@dD_9RS5ouXXFV=QC<-0Uxgiw1+8Ccs2I!kFpfmyenfL}>8aXRdhz?kjm^2fjoXfK ztZBEWphC=&RmEf*pR`0?fEq$iNRIGuD0_u+)}WWQ;5_4^-UX955-4_Vji|T1lKj_n z_{awn;VV)fJe8cB_JOd0YslXw%s>3#yRio{&I?YyZb0&lmfILv;zOT^*kX906h(D- z@WgF?28Ci^z*zRb7$CE!$c$+6rKyZrKC31u!7(2u%$R021q3bICUF$oB?Mn_zf8PGoXj?<;2fg6b|@lCKxv8{_!E| zMuv~mr~Q8gS0#8S0Yf|mA-)hS zRbS`__qt_5hgq4gkKKp}ofETjuY*O~3|i#EM#(5uDs?K8A1*$W@gGXKBov?tiBVu$ za{@G)OO=_c8rR9Q`8F-<8cw&J)}{I7DQlY@=opJ_Au`U{Jq~>7B`MS@I=&M+&B{F8 zZ^WB*M8Tz}>bx&~<*Ae|p+A+;sXiA5`hl5o*A<;o7s%24Vt$J`KJoSr#gR_4-mg)b|VduQ_szj={aIib6fXD*n&iYp~mo&cp@SjNkl$*fRR2FFfFg&KItT_Ghi-7}CchWIG%y`Ssc&nz) z|4BcUVcYmQ;XJ)Y%#W&c{U}ijAQfP!2k=mylUI3|rGt*LnE39emj7 zN8!63fiQhUt-T~R#Ei+(Zec*78)ZP4xRn{p1|ef?#Ab82nPDhr)&KPXwHJ%HPyt@8 zp1cfDFU-iR%gCFTkvFp)1%;4Qt~H1C1K-S3(=LdDk`?Wt7D*}AW1ZY^Acuk^(3LsN zjCd`#$`|^E&;}7*s3OCDk^0cpT;1=%Rvx@Qe8L#kxINJisWF&@{(eT+AT;o#Q8*oe z%&l^(&<~$H7zW5F*k#L^4UtlEU`r)4jhwh8hcVM&9txrGvUD%X2D9Q?e zG;H*s7Z?JY$Sy2tjkYfX9CN6%FJw0(Ha;=zt<_vhRPg-2HwQRM5dRzQ8bP35h}6T% z0{G}38_Tf1gcLdW(M5~=S2SEKK-eg*dL~6qbQxWqzt@JZ;jcECWl|VoyE{bvFnbd? zyV*kAI6c2yIiB2cKyNH!IMPEVzY{=gnN1kt%E(%^`Uy0{z({sTs@o5=>zftI(~;_2 z{>;D~VAz3h|6bODSrx#Yph)}G#%q3LcAM~>Yr~64G9ABu<{0m(%I`j60xX0_YEb##~%o`4X+{qXHV*VG%hAUR9Op8CmAJk0~SaWVev$ zPNf=}-F&<38ze9cu_t1Zq36t@7;299uknDhIW_OkaMD_`S=c_$(pW=PpZ}H|ngdE0 zh4)m;6-c4I3cRK+8uU}nJsX;D$}OY+9#{CGLSP54*KTGKs7$rUy&in5{pd=r zN9ShUiWa`3+HVv*AT=8WsvSNS`6VXyM%N~Oej}|Ivkw?`eMZ3_^vhdDUB6KP&mcJr zchD$Mr*&iYF{6%1?}`z_UP?%Kp`A<1BhqSmMkLq;Cx2wGl3|aiY|kmu)D6*y@8o)A zWZCtnD68%Z^-YF$4`5uq8EoUuuui_NmjS4&McjE@&8{Fhxn53zJV{QM%89n>0(0Hu zZe5_%E3nYb(YIKtx*jjL)y<8v^+`)By{v`Yb*q+I6r@yctE8zOuJm$OsVb!GDld1v zm%GQy?eTK=c)9&vZoij13Nygu@-YZ++<(7K6LtbvRms{uNiZ=%O zJJ-uu=;YLICb`vpc}C#jzI4d|-Is1&*1Innu!Su>ZUV3@Y}w?J6O6}Aj{ z2?|JsEdf~*jICbX9#coIm!LpV*izsnsL>a;lzItjz=bW&*YRTCGq;hy33Y=N zT~jQ(fkXDkM^~o3wA6vXY46boQGS6~sgEH7E!U8b8WFc$E`9jjTxqTFj|;+Yx*GAbNc{I$`c*m zmM#K=+9u9p-#=x3?qZcc<5M4#Kcw@E5KW%4{2siQQGbZNU+I>{+ELYeZa(5mKb+e9wyBF;-?&w65QLFG+wToR8l682|CQxlu z5z3*)9n;uqjXI^c3CMLKnPrk$*HR$VCe$`+hP;xklkK^ZJl;v>>udDa3sti7O7c9N z-0CE&SCSVyUkg2?PW4K1yG~XFm}K=z@`E~AQC^bOE6HngvLd-8t5=dcbh4tgB&%1F zdv$UyV3a1+E6II2xztHkuOtuZ~R-NAS=!8nHoVVN&gu~nI6YVNj@3BSE;X0!teD?CD%BW%+rLzX4W+cBF zFmGrgu_YR8u(WGkv?z!(fNc^8lhIsmZip@QrE9CZ+uhQxE$C8>uT4To0{9X@krxqA z)QkZPzL0=O{@>@^JCg|@bbr5oK7TZG?>YCJ=bYy`&w0){&w0*s>}VAv`cW%-*p5~~ zqE}ndE*W}GZWf;%-7cv}-DjoFw4+s!=si|+z8$TCL=RfgWp=a*5^eK$wH%+@{fb(WoRo>d1Qa!sODkUA_;(M&XmQ}4vJT1nMx zjc64l`cW%-rOo{+Nc3tedYc`sf<(7l(fxL`3KHFCMXPBDuvL)gJyvv^omvHn9<-u| z?PwJw+9F)1)H#W0^PwY_-LJ4t_$c9yrS;Z65gB?_8wZcM=(c!|^4X%5vKnK#b18=e zR$@qLL}giGRJAiMyIWZbi4v!RS2a(0H#@S-ZUP9(gX9AY-$7 zEe!7kUSUJG#5eTFuecmi^G20ftUIj1T8-V<=z@!lK}`f>T}awpQO5SDD=ohpY_f=VyR1pZl% zB6m`JZer%W%&6#OM=$?zp~+Vtaw$H14+Dbvdb1%H+^8NP&0n||E3 z;pF;D=#=T@gMu&9ssz4gN$9lc$F-@sh~2&_bjtLSOu_d{2aEH=SrR&J`fzuv($SKNdd<@+u(H{zYR`Mw?Cu zKS)@ub`sfFYMJVtl~LviiEW$6c+&VIwt9Kc` zWG0HefKr6$$_g1B98eVAN=B(#q^sqgh!qiB#gE3_0mVV=`gJ=ZQu0~Pn~Jf}@IWkk z_lr_?{kmTz$&ShsX*nvqq)nKNQIfRH$r*cX*w%A~O~z`a2%t`<$g#&N>d*2Nxi+?} zQ=Jq%Bvgy=IF>D^6#&#-lq8tDVBV7!zojicjjNVNmj^3kw~<^PS)M zcyYtuTRNL6{z&_9_>lE6xJ~a2eaUn_fD?mFamj2wds0%`?=GSjO$~o+sJZPVb>vH1 zzC%spbX&`!2DfD1@KJ9Rh+NQ9yobuhXMA8*)kZpXYJzrBCsHI5eP$-gK&IDu3rz@?P5LQE40PKFj_ISs8*vM&r@+FX@0yCdMVZ$wxL*01x0L{vwNc>c3TYx zcXM6%v@PtyPut3gfU@4;cD+}dwl>&Vw;;HqZa(KLZ!PW>{BHfV%wI&Xm=FJhtX3V^ zChnoDIU|S^Y$d1l279z=!yIg%c3l5-XiL^BraNtD6OP(SUm4mSIpVx4Pv1(_7*nYw zra#4Ma_|)5PrK(GN{H)gRN zYZIGPG$i)Qd-M)DEX*?hNWK4DkkdIRdnxo^|`)F}3< zya`gAsHbIXu`GPRP%Lb*wRop%&IEqsdFgl_?cNt;%5X9t$6=nt&;8K+f6LD)Dvu{> zJ^vT{jA4;tX~oYj8;bQjH9x5 z)8^-;r{L$KLz{)4Q^)Xgk9*vFnjh&r`97 z3iOs}>KqaMxD0Wkw%Dqgw97Y$zuj=}!przj=tkqnQ_T<-UMw*l(Lr9Bq@)yt>ER0xuHM$k(I z^o#rmXqjP2j?Zbv3k38M8+85|L4Q?1-)Vzhb9&Ivu;zJXJ~uC`u_39aWj_55+y z{3$p^Mj5p+$;O@qrNLgV;lU(*8J7!S_O{G}T@Q<=$BXd&+@;jKKG8+2ZX1KeSRUXKB)-PKt&=oUxi-oWwwI6m&N&}$kEK&anF2} zIz>0%oti86EV!4WDr#=66e3o6fa_j1Irwt8>s0pU@%Ad$GKV<|D~rl){Qyg`uPR`T zsqe){l17v`>Di>e$mImDb2Gu)IP7^te>ZC@_ZIBQ>eIV8#7^ND2Up_+WDl=P1&)?g zyb`ml4rK^CqYry3<-eFoIInVi8e6Ms4qClIJ=66g{8q_Xu=pfZ}1^_7&XY>h~CJC}CItr$PvuSjRpFP%dIqn8d~ zP420pRzK)N-6A#8GC$*iDbg+;yQ$kp`~g+!>XGBm)!2ij%Zo?cM|k99bT#Q_92H22 zr|Q>vse6$#LZl1)LJ|u?8TY9})#-V^(1Dole1IQGp6+d(LZ;jMf?KudP4q2wvjZ*} zILg3ju~&`!+|AJutx1-Ma;*A>efpc)Q$48B%w5vJVZr!MLK)-)=d?#rRc{?59u7y5 z#CeZ!{R$va`hS3-}!IVFM#x<{VHbr5~=XV6R z+E(WjkeO7xO>6!xxC_c*&!j4XVk8$U;U|~VaOIBxly+bN1>`~sXinPjI|wggXThSq4fc14FzgGpqxyi z-$GY8ExZkfb}fHkNY_8y^nUQeMdv_M@$B3m6TgmGTh;k34z9mQl;}N+`_u_(V$e2m zLYkMAW1B(z6I6AnFTLWE%;r1%h(Jk{eBwc%+W8A(=8J^ggje$PMxd_dY&JR^}>8Of1q<#9vU8={#4RVuT>Lzj{%Th?hRosVPF?70%4NU(V6tn@e6ep@eTGURLVeimdpO zyI-IA29m0{H>;aNcc$~+B%y^PusT8C`G`>my=t6~2mu~4>V$~iN9_LkD-J3V&LAvZ zmL`)_WD(Nm5sPa$MLD9Rv)Tzi(lTFGY@AFyxcatzDFeF5DW>!BtdBT9M)At&i_ISJE4P2lpmxy!#IlMlkN*Mzs8YP911E#-eOvfn!2X!~=QBUfDVvdy?N^8~+wcz=2o?={q7s*~nm zWWAc9yKc}m|5Esx$pjih^Sd4`^Ij1xdUvaqK85{&)JUg4(#?JVP8mWzN#k8gn`U*l zVysb+(H-gJwyuvkIcm(rb<{SzLAQKW&6ley#N1j8cYna)MVB$p!zj$cl)TUK8;|+Fik(@ZJH=k0^ny zZi8_@Tgt@=%Ax#9m=$(XWx8}FbIJ?D{0y*y>nKoZZR^28=k z`Dn;{#K?Qdyvh;mtIGwyc*|MOU|vI5CY9ODSAKA?5VsVWpVYo@E*crQOeN5FYncZb z!pO)MTJw;0dET=Nza0CB5=cQxD?!p%?VhcCr0UDc{9BGkj>mU`XfEX+T`T(#`NWAj zEfc=42I`Ht%dh?ro!v)FfnFBP?S{w^*E8sS*g)D~xSKHjzEfH~mzVC~VBI1nC&qUJ z`loWbuiz0T0GItN16Utp8oQ5MK1ib|=HR`12JxfvNI9@NDR5w`rn#u!rFenGfVo#|`g&xb$=E;QpyimvIzW`AEFR zuT-@Fo#}oy_)6VWZi>mGX0MtV&nA%Pg+kAlGo2T)X%J5R8IKJME*S76l1TKppJG(G zfj#D{!+l&vLl@y9q;3vk)@5^k)%0EztlGc$OC|acxo};5dHJ))7M#U!RsKJ6KeEfL zcLcqU*S}+4?+A8k%_5(Jh)Pf0*QK9N%>*-QQMByXNt+qK(=K-;?PVM~Nr+hf<-N&M zT-+mP8fVE#=4$#dK4tSb6q0RRFZ@&VE4NYahGRHzYTh_UiyjkBogOIQ+qF3|4_EiD zozkxrs^y#2{e-_KkMy#Cv!28{>3hoCl^&z4oCNh0eG6oEQ1BEPzCvrf$Fug&WUn5k z#~s6MY(Atac$}9)*fa3BcKKU;d|PqsjmH*TPOrdmEWg~+QT-VfGcfZ$?eg~)1O!sR zIbffpvkE2M@#M7hg#!G5q!&DaZx*Q=Aqfmg+ahc``EKhcR(_%TlffMqz^nk&xSn#Fr)}Z*~ z&L`3pK6@ZHUJzj2e}Mk(RZ;-$#iYaI{u431G#8_5y8HLV!T#{;kuGn1jhxin_ITE? zKO5RAri>41;&H&udHhJ*$9!TT=Q6&fhnu*^zUdedoZcT8-&6dmhi^YgDR68v8e2t8 zq8BgGkC^w$?ua_a{R?4Ok;jd{$d_y~YsrlJyj8AJWyG|WcghoQ)oPCSzn!&Kt?jz? z@Wb}CbjMig5p2~zZm4VOXJsZX6dTGYN4r+MyyAMRRwl8la9d}JX9sht7TG&Uu9t!E zb>&0gRek28`uRZLh?7@5zxr4>_Uc{w_()x5Dpw`rJgjeg=I+g#?C-C4P4yN7z zV^lrNi&2qja;};xa{t+p)KCR$2s3XT7;@+_Di3g0w_znnY^37s)A=jh)EN$Wd&sDG zIQ}+XA|AOa4Sy3eGsCaxb&UpNWmS_5=eObOPW-y5TWVIU6?%%Rk_vXzJ?;*D>(Ewe ztM_sfm(qZ6ZBQrf;?&M7@9VWpb$0a@ZSH?awc-xO3|v2@=xU=$$M9h`WRgpiNv77U zw`hz1m`@yy3$R~`8HASgYZozm`A?sEW|_T2$6eF4T5k7(FXM7ldH=qz}Im+O=Yrhc0GB*{+R*{UhO4+ql3z@@HvF z+%EiC9UMaMOW7YB!2VjQ#c)N_an|RTnS}5qsvPK|Sua)vz+{~4)SV7Edht(cb{shH(Cl^m`i^E?AqP4NFFU~N$Ow^wd?k{eQ6f}{WO8^2Q+N<_(xDS7i1x?gnQ8!ch`-A@f zDOA;3{s=U@$b|>vAo2HRG#jnbo!n@P`f3jfciclVqZoex?QGl0#FKV)Hep^;*Y&9} zvst_McQiUap&0#5T$WVeRc>yBFoGPBo2wktu^{4AnI^=`k|%LoXmyKZfCuLAH+L6L z{&sG^Mcd64xC0xRBR-)`--_sZO1o)`*12h%HeHQC%obO3-OerAaa9<8epef&5OWf) zD_Iz+R-%4(3kn57S4cI(+swQcRgK^dR+P1j-`JkW&9ol({n~U^SU0&Ju&&^_ze9Jo zP6<}M7=ATUw@3O&{m*Q~u@=KK3>}otmiIWb744oK5Q_CbEdWDR*+(lGUw>_lUwoZgWL*GG$WLp4#q#^QFQDg;r5$t11+4 za2}@n@G|Dn;u}LeWc1;F2S2E(v|*&nZ&Sf$V4+0pTSzm7JU@by))El;R<(_}dtDbd zRXuFXq=*MO+ktar@hao}70$qoaHHY<&3x>|_UPR35L4$5W@3?_m=I|4*8_4G&D;_Mfci@(L$sC^b^KLc!ewu$ezx|QJ_#`DrU zC)GU&6fL@qMvXb7Ls_-aXSSI&E#UZ^S-$)jsywMzF<#EvSR+zX3&-GY-rqCSt@O+} zO}BxLOMUuJ^sSb7%KM*5;Wm=}*Q5$XEMw+#D%`kWqgO^li1FAaeiBR(XaCk7=hGwa z?!3ImDVJX%}#6DVGmZ_#&b>T-YaCfdo{ke3}>56V4P1V zk&AF&onnZjXEO1qO3|fK;AiS#g6h3pM03V!{9dcz%J4aARA|HdW2vecGJ3!1Tq;u} zYj}VJ%Ev~Jb2WU9fO}AD5iy1@B7Coz&U+YHdWvP+9civtJT?{qSk!Ei)D_Kjl8rZ>Jgs7Lf?O?TYwW6o0QAwouMJF2f=5oeB zZqwvqhcX#9aF1EF1a`(@7f!?aM#9bb@9M(wRR3Dw+bqi{lFa4svQg1SKN!@S|BsRz zuhJVFuUO813k@|d<1($PrXUOIUTt|9)(z;O(ARj4nf}EW4OAz3%xE;eq{J} zVRacs*eA<@=hbeHwH(0hSLA861PQr}r-vydYsjcVpOm5OH=|5eyR?=KfMa6Rc%1Kg zU((I-#l2(uhxCQe*(Jf_wV%ZPMRh>8G!Y!?VUi(FS*dwxs>Ds-G+5Q({Ik?`-(Ni0 z@L49&Ov;r*zZ1WTu@sw}gS&n$vsXza&jko-xe7G9-KfCr9qi$yLRz!P$=GHv$d%)} zlj<@w(_|tLsq@l(Ulz<6*7MX|t7@N3IX2KTBf@#I%|#}eepYy;#`Xj!Qt&hf<}Ce| zVCu$@RWNn8aogg8FEN(YX0R(_I&&1~v)hKAze316CH5$AZF;l`$bF)3U`WFOh%7AW zg;l-tCr~P+=@?))RgB5)JLZ|0@0!^J#$wVg@uNoOHc|HNn%T<#Y*aiD5+xA z>Z!uwHXEOF(B^4vRlC}%yOgC6^`0U12aj}l3aX_t$_#5!uh8yyLc7DG6rt@^>i?(q zm351>oIF1VmBC#zmk6p$PHb7#tl}>W#}#^ZeA<*m17M4dh8Fhmf)-SmmFi;i@8ps$-WS8vcF@#c~YZsc)(Nq z;OAgUqdh8(_UP#vEqGF+Np;RedP-F_W!@{DRjhYZrOe2@J*g>`w>iJdcH;H=>v79+ zcBWeHA(4KBk%?j-OrgiZAO>+MvMCG8jP2f>7ssjVhRdql9b5uoIoyCv&$M${T ztK#D@@BU}WzvN4AHsFa){7c=z4o&ulilj4PGLM(NA-|r-#!q@WRn|MEhJQDJK{Umk zDAE46{?c%l25HBLy->i=_?(e?HJ7@r#pYKFHhx;b>N?zKFWS&2%6uhhP) z$9q)0FNLca>MvH=WR_unC?$4My{~qEJR;#jrOSgV$Z|?&=_AKlON0UeZoKj{9Np#{ z`F6sYwH01CdNZd{>MB!_NjHU-x>eL!qfwH=HL}n<3TLsKCC(9=0Numk6WdQ*j~6}V zws~i)Xdm!2# zz6@=hYalOChNN>=j-cs_Gob*Gq#?Qf4?~T}UWenQP5t3d%%TfYN+vCIYt5z96UV5~ zt^SgR9v^+%VQJr`e+l+UMC@@^gx`-Ot{pwqeWSHp7KYCs?of03z93WI01)L$w0u=3 zEUeYdquIu{jT@Zi6dw+-G7Qc}6$N}|;V~Y5wB6ieS$nlPWun}MR?9VIN4Qb%<@&Ed zt;F4;`91dCqPu$1gw$dhmC|;xlyzKP_Q)l5;->sfR<4rISj63Fk=v< z3UF@Nw6CV)nZ`^;?v(qfn|t@Z9(jAbexp;a`@G7BPS#&rW?nOqL<+~FSsQ{|>n}eg zjsrc#PC-)5t)I7%ycb+qBs8}3M58+0xLaRi1v^s`jyoFK-kBn9cu>`^SezS7zJ7P$0Uq8z-ai8Y9AY;4%%!- zWLRMoZ!;B#Pf2MX8zU8EV-kyFq7RJ0g(jKloI-UydZo*}>MYeR<>oc#{1xq@_J-i} z0Jx+)KS3d;2zZ;mOIqgdQRh*dw9R$2&84)>0q%Ae7W!$TZRFxuh#q<8%CYw}Zh$MM z>o*9=zbzCmwJwmQhXnMi+~#ev3*fK)KkU0-t&Oeg#it^E>~g6LosFw_8-LCc5x&fj zsxfPq%Ke?(!K=Qv*QY1ycNus6a<%QJ+LJr=n9bHa(;P{)+fM!78L!WEawDhQoa@oA z@v0jlDZ!_;Tp`O*?(4%bI~QeAwT#>Y`j&yO)R>})E)C4_Qoq!%K2>r0amCb2JZfi1Q1sYZHUde74g zz#@sfG@0dw>&=)fh!XNs#&y}O5wfV>^iL4wKxFu=+A8hIg$dq!cfu!;;d5&z6KD6P zjx8$g!rHG9mtZ~>_r=*ndTUhlJ&dYX>z4#u5~{# zS6OE0LrG++_0#6xb#)vSBD^j{(3bxi)VNl(Q)_%uaNHsUF)C@+EA*G`0(ho5KGZ8M z;5l;rBrd>vwg1?C*FwcgKE1~*baUgekP!FX!@-xe<=X&kmW`tUz4}`1$y8XlKk}(_ z{s}BR45hsYzSt;d=sOhWa>w!w&d8pL9edIytW&svn{~ZPt1yJH9I83FjIxh{Jv3;J zKIds4PK*zzOV3Bi)vCWAdCTG0wCOSn|m9X`Mwq4|A^@{X0S z5M@H`m1E^Aap|>}jTNxOU0iz+afw@k-+;k^VQ`X0ZB(pHz7BO|MJ8-eX`tCBs!gK!6}!l}xi{SJIi7hmRmRGwEFc+u(L{?oOGk;?TaF z;%o2ou{ddLk(_eifL*WI#WX=+0~Znndpagx$~jbwN-JollKDSsiu-wN)QX4IkC-@Cka5 z%%flLGM$!tVtbv0hh$`)aN{8B7W9ml+LRbSR?%4P1f@H^BiV>0r|9gM{*Lv}yy;tQ`FU@b2H zfNw!ROX5*(RA9|Vw~cgVtL^(!t=BMdVA)s(=xmZ^<{nO3Kt^i8Cp4aAr0!i^QW`vh zxz^!O2Fnurnu2l`d&oZ7p_0A)NS6l#wZ!ryVeeM1maMjMfZV(Gb?kyB2R04UQkO?rDHZ(%0B-?*;GxU-@fh)8$mAboFa2LG|y#nIiBUc1@lnS z=~or?TvaB_&n^rJD)uB98%cYurRJU79h$}+5qFj88u|is(Nnpe+}dWx3~!%N=n}dA z3LTCcce+W?H^dc?ZMGU;{}5{`T;sDU{xwM=bqpTAK{xm!hGoC(Qcje&yvvoPt}Z#f zzh5fT^y2|N{A%Mqt#KovNL?R!#e_pP-UlyZr_cOS98yarZ#~7^BpZ3ORpICK@R~S_ zpjbg=0A}nT%Z8KuvPrWi8fx%`uEbUl>0rLO)P@5<@1EJiZva3Q_-cQx!JgD z9|=GA-RmkxsywtTG>Z%)8sDP0(n)ph+Fx@u0LR6tS&6dlpH$JOnWD3l9kgbST#O7X zinkv3i=J>nm{4yX7nHa_aJgV`h%zX$Kf;X_ymHp{XU4TYsz|A!dDL#wWKZ2}RdJl) zQ}Hgt{WQBy=vk@$G*zWP#5Rc9J^bnjzVO3uEc@|**8E2q&n`xh&X(Ymj;!vaPd}H$ zsudaUD_)$;ZG*6U^VLM3s19m9b^pwxf6ADZL;uXq9mzeAKsZwHC)GVy>fW}};$SR% zFgg;tSh}axF|$!c6ySHx3+^ZOO#ve1HS9ko3xuuAFsF~vEL~w-?J-K7^gd=YmyLhO zm?jr^&oLIedDIe_F?0kuCz>9!F_40;dA4ZSlCJ% zys1E4#GtC?8(4$0it*EQ8~BXpUM~wM#oJ7Zgt zTqHwmz83wqaCB`T&w-m@0fd`m9}lgijjZO44pv7s0cV1;)(eh^C6VxWHk(a|x<#}@ zZ6cMn>Y%KP>eAA(n`tTG#!W8|wQGI{p#jC|&xQrW;@l^6(V(Un9(4AqYd=w#*%BWhC1WGKp~6r0y8uQMA1GCj0( ztrnN-Nq2t>7SL^$;cd7KTS%_Es|l26ZLj-#+2l3LCya2H_lCL)1}+*!x7D#;B5S3$ zx$(h2qz~mDj;>#niVKw?{WwZhY8n1R>~|Eaaskps6SfF-_1LB(mz7gcdBAN>8{tuQ zl0F%{W??#mPkHx4L!YrqE~iQx>R6nc)2Yx={k1ypz=fj~a%`43>N6*RW)X8jt45ot z(Lt#Z@gbb-1J9{9KKvrJKxeQ~)pErE!iQM`hOx$EH!SfOUyW+ll7eqYihre9RDUNgJ7r-IPxqr8eBLNG#2*UZFEtBpB%+sO9V`Tnv&P6z#Uii1 zo4F@-mGhLwV=JUKmu0hZKHxYwCAcNLA96ZJq@e&&M#A!ts3e_r*(_Wd71elYR%FDM zuUT~tUaU(xAdAfRoyH24GI-Qnqh4w+v0sv@(c0RB$edX^jZLd$`guq2!@GQq z>qA}`!DblHk})8AV1YC^%}WDiW8+7M&1Ri$ry8vzZPK_x!1B_(VvqIWy`NUvS9veq?mh*>Y0&CLSOj-an+c_Xqm{RF#37B>u+ zKS4+e?=xgl$s%f4SpRKfikCpy=Z>ACFJ$bn$IdD7VGI#CPXtjF1ra4A^28 zs;Q~U^gwkQoAA>E^SCfjeQuy-We#zj-$;?c4tYShdh(=ZH4)OHPokwEX{FptNRC2% z6Z}xgP@h+aQktj?=rfzYoAq9q?r6;ca=@N`^qtKQVh=J9uo_hFi^ndN*mFn2^9cjV z!=#47GbbZ%Gi4h5cf@lQfb*oQ02DxLK3vdGTf{y717wzrwmMmWRD*z$*)0bx$q^~I zFC}y#d|a)6!bUAJ(yND_Pbp=z@=gi%g?E#KO;WA#8ge65l?KYlms##Y7nco7KVYUy z5B4*()BnsoQ&x_VccrIP8dJE-Jjb}PJhl~EBp0d3;IXE1l2%Bb zxD`87)`;`Vb^C4#0j96hrxf)}DN~hi*FQ4L$BCNW$ACS*3?YQsM$3Laf-q+g)KJQ2 zX>L^`4u64*Oqj*HAM%XSGYPp_y#}{0{_yp}UC2>3jbsB6%K`z}=YzfK<$U-QZ zL^*l`?Hte+$DU;ID;KNGGugb?B@fqXU=-PoZEpv;vdvqu=2j=MvHQqg5AvB}v&}pb zrpS{F9POMF@L0IZFSPK=_%9Zwl;xKub89WXWI!XB?EtDz-=VeKOoTC>VLFclfzfG! zu3O%c z5ewsJ#=PCUi_!GJmPj|p{*Q%a3n3q!l%D}?2Lsq#65K+jog~`LbAa%?SJ7V0CHF0i zeLIQV&2xZo{hNH;B*Py1v;0(s$okjxj?g6#z@N1-P58*Y40<^9&Y>Mzc^^LUDn4|) z#$l0b!tYxqGcRE;BXr%)@Bw=vojt9S)-3n27F&G2@z`=7XABV6T5y+qTI`)1jMeTQ zI7g+6<4fzaj9v|QxUsv|`$`x|y;}6oGNwH$q;d!+VIau6(9KN+t`5gyjRXZoQlr#= zj~;GSB@UhM&#C&PEK0|?OjYRcqAyTJ=HhWuojqb%Ev$`1MDF z{4mlj*h@StC-bufG2Y+jeVu*M^mQ0*EgaV?9LJ0+KNWcO8-hnd7t8(B$Fp9x07mj1 zksac-mh-2w*Vk+{`^^aIS%!-aoX?EZxYNakD55y;GKYxbY$b~Q#=ShRu4TgSKD~5$PieUb=wzXW>aDb>r_>U^huh@y zz&W|?v3lmcYDzu}uJxPQzf{uponf>5au>Ily1!vAaOqUV`Ac$${K%l%Ir=t6gLWw` zlo_u~k0s(*(m3vv;b4|ARaGiq>P)5dx#h@1l_RZ^h z*vToG-8|=ZBFa0^z;JTg5Uzij zsuf5rpm=5|d$cLln^9|~=(FfX{a_U(8(z+V6;(g$iY zM_a-IG-=HL;)=aW`AyG$+zk z9v7vS{2VLKiddP=3EXT{1@uiFv5Clu06Wr0%sgv~G^8|AK5f;JNY8lAsT)=F)r%$- zmm9?*G&1X_qR8chKzzpL1wcl;r)D@RDvb*1rP88wAurnfV(f0p^#Z%678mstTS7zj zHAA?6cf79Gl_3O*_$!my#c|;}_Qf4q3x}d*mg+MLmcbhZ`YY6kmuzj-r#$i_N5*q{ zl+(G|igo^%n&t$~hnrN5%p#ANWaV_cJ&s!EalNz5BB0V7qo7ss)x1bSD>w44<#PZ% z=lLo6Yhsv~qBRP?#pM&EM;>ID8RKbI*}{^6+;7f#K81IGaNw@<>3jwJd4t0?fQ2(C zCf{^Q`Gt7RCWG|M95Rerx>@ZH{}#&lfYs>Yt9V)bg-E;K@o8k;aCjd;vSC}F+H3R! zq%iak#1)y@D|z^`wwW1^7?bq66vrn@CVV8bk|_~zcCz$9v7|{4z6V^my!_MgqNYt* z@Iy9%)y#LEIn_favW6{sf;DVWl^;rdvOagb>hMQ8hr_2Huhs{*g)W9|=ix6QOBpyu zu5d)QkKixi8pf;jp-d{ihy=4~(pgZ)Wg-uCi<4<+k+GTmE7=K`K{>(17OB*4@_MGa zp`D>dMi3uh)$-NIksWB!G)@UYUI}iypd#1Ao z!3{-hg;q-i-<5>|p#59+P*lDw-F^b4bJvsBW2X(UVz`P(mZol?yEOBgl0^Co#1IoJ z54%s0HCv{G^l7S|AD!Od(;C(KN^}R-HWlTdwUvp9cxQ_IRB9>u0y1Sl$2@J-OBCQu zb0K3;QOaOCOaD|Kg8bc%nBM!)kPN#{eK(9C>#>|*H|J>p5Z|)Fp8&1fKkk|1BWjzg zSw?LQRYD0WZydFx(c5YQ)d~7xG@N31|GQYuf2i{`PvmZ%G$$}iThaL!!Cou+!0{o| zsj2$b@Rot`t&F#1r~BlvpQCCa^{H)&1EloqDT2*p(gf-}36eE$RvM-es48(bXH7HzRlX^Lvo4S` z_b#gB!KQ(XjrDvKxe3*;w9+|MW$gB3>(s7-s1QE4P5Z3|i?^vqn)6lStmfQceRbkX z192u=@X-d%Pz_3Bu5%o*+mI$bF7#53xlS_;vX3qYTkZDzW}Drf&k6K1w&(wpNPBYb zKHd2T+7l)kZOg8g0Rt9`6x|3gIf-hBzir$#bM4>4XB82D^ z-*Ta!B~3~b_&Yt(cBPl87y0irGM;AHvc6T{g*E9r4l@)^nH=n>9c*k5i3*VGVcSZl zOj@B}ho6aw?V-X_z9r)SJto`RN!Ua0W}DvG>CppLd4DhSGbu~{>7Q;Hh`jAE^X?LL z#34Cv6ECGJ_5`hX7`i&NXsh+=OVgsVQXw{DycYeb_3GEO=v?bHFj0$&Zi)n%S8CB2 z)@$}+d|C0zED-HkRK`N>DR$F`I!5F*Dz3mJBA*DFUyF(^Kq3l=V0o)W#rRMn3W?zK zoE8=1Ly0INVxmMGv?I!hxKbi^*%9SLES88DiMWNPs^q<$_aOug7bg&U!U|Q7P`VcV ztre;np=d2Cb5&AucugbJWQB0rFfk=uPdvxtu1pDsc*9fY;*{`hyvZTBl<+Lxijo0bVA$|<_YsSc2&meY1pCNt4;t{ zcs@tya7)HADG`SlEZ6VmEmy^S)g{jnZ4x*-dg6P@&N6_xjTu>kPsbq z5x@eVJ$Cn~wUs$IN0QkS_0dQR>5bwTP#wf156U18^;P*p-)DvkEG8IQ<6{8SR`syJ z@c|b_`m$U+GRDn>*e}9SR`z|`^!-%z0Ir1k8JY0yb|Z)OEcZhYrvQ%;%&%gyu9JC+ zm_$)Pj_lMQ(N-}%VClj+icz?6Az{OBJp=svEcm|xuCz5Oy5r9IKa=`0!24x?PHuWn zLuY~lv^I$<&6(!PHHa%ney20jPChdK)`f|J5UZ~_;> zNpO+xUecx)EVIyg7IcQCx}ocmS_eYP0v2LEV4s3GH(tJ`Lh%cMCa2gsot; zt5~z-Ok#giYrYjx5&I1bGddu=RO}S)w>0RYd-2l|)Ja=T&2CcBH=>r=%EWhcdcka_ z(kOZeI3QWGDRVybsp(T+R ziSzTac=tyGyi+4oHx>sQSWYEK9iXJyc{4#ed>`< z{LSl-PpF{ht(VYo35gZ47zY2SmzPe7*~*Ku2TpwIlNEh5NHylIlN2z>ymth`P6|AAKU$EDqk;5=gwc<<%!?UQit9*{j$(E13AHlI3|r^6Bg z@6!Z5&j{}ywN<;Z9H|KR*jPyWUnM*voIwHE3YoKH?T28|ha+7zan-8IkvxAH-7gA} zb6!u0EW=WIN<7v>4b2<|utEXr;kO>y)+5t;Syr)`vNI3>nEZ#RE^t zNrX{ZS;)qP->h^*J{!NVbimS#pCm8W<5}T19cEFPSOmpWU!1%1X_1$TC1O8FVq(Ok zNCzb^5%b7PNa>+imUaB{ZLGv3$^Ren65p^G1uQ%W_ANn$?3nD%;mm=cpA$Tth6r z;5en=>M3QKL6?*r$&{W_xAjoHsHfEGt)*6PEwy@UsnuIct=?Mdw=!70wbbgZrB-h( zRlOCT{n2)76QSkbNGyjVu5*b)SCBC-I&9eKV`A?#_YrXmuHcSt;mMBj(XL33%RbMeO#8;}AaBHrXPqnL zQ^Ja$-1SQezMi5z(&5<1-Ey^qoXORH;4-S*#@RZ$0=+}+5@?OT!>&$$Q!Gzs4qkuV z$b4(@7U}YEQA4-*h%rZf#JtKHqOpO+4Gv}aAT-j8_hC6wf$GDlEj=cLz)39|56AH0 zLl=HT(tw!odOI(RxdGX7!Hgf3w$WE^`n*??68j+8)Vri^BA^`p@cfG;KuuD`gkr87 zQ2^fD2jnR@^Ul;{{$MKG>cvQpdK~`Gg`W8-KW^h2)2R8c(GELrU&-6Y^7dm&8j#IE z^^JTxZ>PBVAIsaj$)6lVunag(tL&s92Hs)!=BxZkQ9B}?$^>OeaBb*cOneAJ8C*!$ z?azu2Gn5TKLbjlo=^J>JUdB_%FgO_zkKjN~7W2{4LI8n3J`L<<_SSw?2uJ zHkfR7dBoN5WGo%+ipA^aU49vtm(6U`-RH|C5+5){n%O&=#_$?OU7Jy`obwavJ5Y68 z9uLMHLbyl5ZP(NL^qzQ(D(Pi?vWKK2;eClZmiUZ?&Yt34X}aiPWnfW%iQR!XSZS5H zq~MB_`m?Ezkzq{M3mz;D4%H3-h!PW*J~Qd7bLq$R(u^Lfk7_Od0Zb$8Hm*nG$JU2c zh(Oey%s9JoXZ`7iq7Mw6P*zm4k zVc}xtaV^6gp*-!7OS!#xuiOuN+ZIIu6B-k`O?d#+=o7HIU;HAfpd+0@JMEBt$RE zl0epmzlgNR+8y~U70pl}bVuYfC-!v2ao?!^n%?QyfawzJOEdew#jr^HY%)VLvwxvA ziV7ORz+fqR->h`1#L*6aV%t(9fz1BDe}~G79cY(d?eKZ7wa!b$zDK#}4`mMw*!O9T zI}|j$GXYI(WPMdYDHkZd{%=wg34PKTWuH)>e2LbIoui;6;Y%xk8dda(jplK4uR`5+KNYH<<@!GxY&8c4t&hpP(gr2V5Ai3s=)Yx9)l#*(R8&}td>Z+{7xL9l!-ORycT~6JemJoMkh&^+8!!e$L$U0ZET>%o+X*(Ck{2wa%K zu6Y=TV4|wjRvmo^w$2~Ia}*|WEE+S(k*zhV<~W`fnu#h?e?^OKrg==~6eUrQ!Yj74bKRzs&wOz95$-_+!&;zS3VYoo6S* z6iE6etx>$B0LCw^Bw)P!)$r%*fBJlN??UV`QgA#C77GZJCJwME4w8dZ^fWU1B%_rn zpjnyTkW5Mclm`%q&;inTU=Uy?F2OK;&|l(Iz=v9+SUjsr@U0qFNpN&#RsU};aLBiE z!AK_JCstT0J*(ekRakM;WzbhZkTN6oTUFoBp;v&s^ZFm-jys?ad{y{+3|f6NL>-iC13uoP8&&J5u?*-bCf&xzr+`&XAcE6BDhXm~sS?cdfPxnd1;8*43;# zIa@0B!0b7Mu#KS0)lb8B#Wg7Lhh6i7+$9h^#LX%0dxEdbzYL~&E8Z8RlJtk=^at)( zOLw-=9a>a(*bshiV7%deKzH9ShZa7GBy5XMqp#7wV>%b>mMxOZYSc_kco*dhx)$Z8 z0*fDi;?ogSGD_sHrqk#>xrfy_l8d*U)Wzuo#fpZ-kRpeO`fo+LQwya-5Dr~Y5ht+H ze{l$8)mD!EY}P}o+{N@ty(9dtb>_}k6Op>abB5(CVy12@ivgmqE7Ui1yg$*gLEpOR zc;v0)fcbt;(JB{J!nj;p0dIu94*z-e&+7jH;(FsHTTf&9^Vmy0@0u3=q^DSA(m$ZV zypg@f*~iuog@0o!cI<3|4$YJaO4{-)k?1$_V;5u=i~WB{*H~4GONR&Plx(T8)f6>( zC2vUQu+ycox1}@)sPr+APnSbV&{+(fF;P-XqpsCZswPOU*5U{iai3%v5G1y>jM}GM zvbQ4^tf7ba9vJ#8GGgDJq95gm2$Jq>T33;DgiUy+LMrb>!`4*cDCGx&c4Oyq6xbc3nObMFPp?*Y@2kTQHvXE zY_EB0SgGBT;-Ct{prxkfJN5&q!GpDbq@vY@*a?WiSb4CII!|X08>;i6fHOrIw5nJK zdTEzJ5vC=LZWF^6L3BouUxj-hi;pY;??K_{CUg~M=+pVTFG?n%f_^#w9<0wBf3$m z@0J$v%~4w3Q(8%BD16GS$8>oZRVl{p&M^xZ{dzaY{Q%;($!`0=1t(@! z@Z%$QZu{eoIHZ9WnB^@#+bnhAPB6HxR+lA()S~g(Vd}-Jd)e82G406?<`1>s(4M^7 z(Xn^@gx<)Ar}h#;sU3SY3Hiit)75DmdoPlZzjgv4Cq_pTdf^ZEmwF+mOFv?}ncE=b zI5+a%czT`-Up~s-POMCX=q!YJWKc5Cd;QYF;>w8TQXg4CN~Jr^4w$o@E3VFPOCSJ*(HU^*a7B8lU-OhO{FLIW%B`1*3m9AmE!A%ba1z7J zwya3s88#Lc8Pm#xFV$a7%t%=OSehQgpH|y&zyb%bIZj6`m9T#M4a9+ zFpp|Z;k%mx>@@Xn;IQV>KrPVqT>$OdQt3!ODq9lsWO& z1QL#ej@PKRagmTs4=p{WcXH2xup`EGbA_W2(R^c))8H5H3XKhZc!E}S>PUlgW-tP6 zKvi;Tw(<*G#aj3tm*5G?aB+$QxfGXHC9>sci=!(P!xd&nhW!h^Wp6g=*9$O}MoF3rPmUK+7U{}R zn^}>gB3#N`I3)~jsD0Kf69)xuL$$uiT?@%H!$+atqDvdm2F zcw3W@k}NaRI^MoWLQ1j}J3IDFoPhlrlI4h~Gt(k(Pju`84gDskxPz1yFL5bZ$bn$3 z@ph`DUn_FOW7IBJGDRjA#+7<~1_Q$t=GDi78*9H4+){hRN%-`XSR&+r5+UjiApLbt zw)`;mU*N!3emTD~FkgGJP7G~4U?}!1Zu4&Cyip3>@_}%6kPhLceVCpaf&4{#CM>08huGJ9YNTLv(%eJ9g&ARifaLp66}HC zo1i2cy`a>{8eR}>cQPuR0x64ur}NQfVBz0N#l1H*bfYnpNtF+cR@-7ICAvdpo_n2G zDz=Db9K13ZLDk42Q?mb-xGVL7z_N*l*J3v(%CD$wNZTwzE(TSXna9S~F8G62DWCXM)zvt+9Yy5<*_UQAy zRMFuOQatj#w2rqfl91w&?>Rf(nmA$Wm%1%3I6i`P()7puxLh7*q+)&)>2i+QZWVi7 zk?&4WCeat#q~4L>y!l-nE$&2_i_SYQdM4EHJ$&c3xnzGEMjV;gfCQ{_b8B376x z=cp@cYC6lhX>T2@t6Ro`Vrz48?)n#`C1cM4Hc?l3Q5HHh`YiLiY(6h&mjjjyMyK20 zGxxi4UghuDuz8Ceu{~_Y$njpDbGz7->EtOpWo)MI#PCLrd&w!UfsOXL%fArrv%iye z^f(w+DW^IPHm^grhJccM&}@Kk{nlV_=!;pRq?=`yFLT;h80qR@Fq<@G;g8^?rj0Us zalD?ETVz)H7%69&FUWQEX5qy&#hly&&k7~Lavx3YF`EC>E~IY!lkfr;>r`w@OJ$i; zqgyeNBNMg85BOv&#G~y>00JpTo5n!O$)91i;KbiOaWXln>DV*QY&=VfWCooRJ)n%1 zv}vz#>Tk|n=W(MiFP;SxK*STPlT?@}Htb~#UCfT1vh(41C)+ES(GBDP0qnm?JOw#6@Fm39emUmRwK37CD~ixm=h_6Mndk*ZK4>0Gk#kh$!tM3D$d5%toM#^Uc^_Fe= zaQr)s&36u1Io9cSxUBl^gl%?j11XmSA)2WGb-YKyb`m-zp&LF@XU*5LV>`D~i%wJx zr@SWq?|5emw;*Nd9)@$dYIOXpjice6%f+E-PA#7NWyx2=(S~aCc90kU zv8bD#3oL=si*5zhB3!4^bh80jX1JFb6R_0KulMQA_lPG{6f8x2U1T;l1PDgjxduU% zx5jdelJ^2gml=6a8KL`~W`P`G^KjD4E0Nl;_~87@lVjyhFHSxaB;2CBuF4aJV>dSWrMKp zL#>AG+bpp_y(jMrN`Sdzx31q$k&Yv>PmS-f*%G=gvFQcS2!P|MS|``1p67qakuq{F|-9}{?C zxQM%`pIo0MDLZa$m!es^Pals7j_2X=gDQCAW^9=HSpVcOx#YLet$k# zs2qNk!;N4d<>_)vkLPfy9C9nm8FCcFa|Bcl&zZ}pj^~iuN**3ReC9F=<2f=_4)2-E zsEOzBs2p;i+IQBa-!qHkwEjIZz(VeJ$bHWu;%NH} zqp1;|h>!S%88T_Q0eCQ|7>?fCoXC?+%U#M%D>X?PoLe^!O72j4zP@@k+nwYnPZu3d z)2w(XQ$p48kY7TT@en1XH8pPm&oW1{ zJRA?*ETI+gP>qC|LPe?67+H%Ka^~w^dE)voTk&b}h3KTk3sL*Uq|1Hp-=|VOFZv* zry%=avx<3TPHWRx$I+Tf#;JA_!h!Cs7^-|>~ zX*2oIW<8rew!^)4*hypRP1^|RtzPy1hI;p@_dV)8gLfrW%4!&}{6^W$JlI#BBQvnL zkeQufJRblv8TqKzYMFpX>bTmYMXWcXBVn$!vS!+%flr!g_vlf{XAf^?r0-^2gi0Eq z`zjOWJ(fLNupRjl7a$yxc^pHre`I0y$il$L zLVtfOozGqLZ%=fOl~S!(^g|;H^Xw$uRuYJ$+B{SuiBnkd1NIr=&E&)njl%QWNu+@# zNsbL~K?0uCuzB1z%4I8o8hebz46NB5)*#1#QPXQ&FVolfOmiDitS&rWPFHw&nZc?v zbBlJK$Z`I%KeXnTFOw{3e%Ya|=wfyFNV~t+zXzUl8Ox;OlhvMSlDva^6|(RN`XscI zb%MDj^-=2m>@0>FnYycgYJPdC_lrnCMh&K&mp=SONkuq${>d_C#lQ&y>&&7*rU<62sLaR42{LV?O=#geeVjB{ya833Q#4?jLb%---aze_<%8ad zcu52PN=b#kO#^nu8<3IpbPc#dHDD52arSJr+cPx@J(c!!=xv0Y;^9L{i?m+pi=x%M zAro}vpcsw8bUO2WriLg{!w)vnsh^da_^I zzu)Qtrv=Gq^IJ8_oE~6_f0PG*Pw@iYWi?P7ysBV`25J#LvCwcYCE>$y_=t;|J}N7x z-ax8ckeUGo)f=puGcmGjo_Pw;Ez<6Bu+;XigT@Ko2ZdeUK*jJw@_9e! z-kG^Gfv(*j-_Jjvyk41m@A>(h=RD_mp7WgNoO9Ub`Lo7vs2#tdad?WIG=;>@FTrHZ zn{1Zo*Y;KRE%v^rrpaP^EmQ7-2CsFKu&SiEegk8VADpDvzg@-n4HO@i;{OHbbw{LB zI>|%?xRNzUvXyqSk5RX&>(0Pp-Xxux`L=G-qc9aR4bTfX$8)XV8Y;F#-7sqg#As`V z2RsOxpgBoo(QKAh^$InSk(>qHfmQm&6|gBg06U{AJq|nRu_!MT zSe{Zo*P+p7lutUO8ChR$bZ?XuHxgarcVdm>AWz4IHN()n9yQ z;~^n=vln<{XR*?1TLwpuW^uJPV%0C>i0F+6JJ{Tb;71@l!?l@z@VM zc~Sj7iFdE_?%^GORUPitp8ij|%95jaJmwWeEE0Z3j#U9RPiXyvV&YTXzoG8Ap%-EY zt?!8q(_`F_QiYR0CrbJs&=$Iile_Fvph>iS9_)VtK3OL}BYbj){2AbT4+_Dn&{o_9 zb{q;?3XS!*OUsNgwc%F`Sh_3-@U>RhE6cUQb3NMWqLS9x_GYRtHUHdrGVzATEH7a_ z_X=}4R|j=*x}0ub=-$mzV)T=8CGipKhJ0fgr%~d{*hgVra#tFUY$^g6SrxA|?zOLx zlDcN$`tN|(QG&ZuwAC*80@vv_n>PIymGAv;Ek9P`V|}&SY%Ris4ApjhI^BlQBQ}06 zoEv%-{9LE;Q=(C)e27)(cfQm_qVfGS+Jbl-y@YDud~0MUcg2$Y`PU;hbD7t zU=^d3@mtQd0Nv|kwE!(=KC+{2y}bxgbMtN#iXf)l#jMTAyyI$=Hc|BUkmw}@=aa^| zh_HHx5tv~wZc39>x2$*JN6Gm03sdNv72l%S@)j{LJ#+^@Dl8`;bM!(P~oNu{FI6H^ubO|Ze`k=sN@FK2pQ5)_dC?$9t5|rAIB2n|sbt1m>389re zy<2E0l4^)w>#K#7QEPowq&&BlWoTF4Lbv`*WS5=3=kG{wc6oZno%|Nx+DBa97r^ne z$8qn$rX{;jM^InheHs5_yZ}*Toc%7Ww_QKV&m}At2{aD;rQF}zS4N_Sm$eO zR(pfo`&a@y#i0YUCb8?VYj0?eGlrv|E!zX0IQ8KN8qlgILKmWr?5P zuDf7bbzj0%l+;mKq*|sdIhjS=1>csjzJd?EUL=}>og%h>#GIClmOvqeezB5%QPmD~_J`z%sG1t$vnm=4Z z`M4D!zJ9e#UYGfBop?f=Me?Gbu~89^5|M@D@-frC@WNP86#tDLOVLXVQ|#TwEdlxc zRghoPl$?fH&M#2Lm+NOiywdqz>U_`QnRO0OiVVa*V^~00yjpw&WMqqftG+%CER51N zF`XpvF)-KvKqdrM;R6H~-a>VjWOQ)CTHb|`TM9vp%=KLBZrl{BSxECOf+OZudct^1 z(P>ipQz?ZfrBh<}t8qT3DS*DIJ;W0e|ahQqD@Hl#WcNjGQKAO)8~yWI82denRcF zsg$MelDJ$J6qo+xU54(uZ zW`DIi{Y)z${l2qbaNen3K{oQuT0fs5u?J8~6 zXis^4rTKw#^&t#i4ibeNG%t98(Y_UDO|yHG@B$h0zvkDk_kR;NNG<3I7qqUKcXsXMSJ)$gtFvVV^t0J!ilWWGSFk044co8A?nI7?9Ooi88R$)WjN%{Ac`B`6G$WG$}sBAARch1%dpCo z;eB_8-ZNy71?Cj-jkz;yKSPFft_&yL83xXfVSPG7G0qDatjfUQdqSHxkv_gPta={A znT&aW41A>ES{|HZ_YzxY_NuG)tEtbZs}6G19m^xF2l>aX@2dCt$BC=(eHDB|^}Rvz zL+YFFsDgW>40Y8#LcQv$%`!~Lam3E44{PHVt-=q|$t3~Fg-}Q?6#09TO9GNhpO9QS z|Fp@!`IaiUOJZrwUEB3jPA`&^i>^BGp8BTnnmZ(%XhEh55+aQ~q^2IwhdN0krLh`h z4wNW7ly2zz>YE>^g3UVLRrd@@_NzAU<#Ae2Qh1RBKt5_GAO81}O9GP1qA{h9ohi9) zsKiP`#lIZ&WkN$GT>0FCyN>Z&)?)R$3(fS0u}-JP^hz6;-AQm6X%f{+pQ%|mpj zWKvh%70{1+#Jp_dC7nyos?)gn=9}PL5|F&wPG0`+C6@#w58KIWvXkSEs7Y);{Y7_4 zEUnzssGp*wiF?>pxC4DtB-APiPYJ1%^2$@>6;?;VXKH^qG9=i8JN6bEZ{me1o&uK@ zgS=jfT_tHLx|izK$@_b1>%dv6S^OSEP~@qW9qP&f<4LMDT2Y+Q(a9=1Oug2+10>kO za;0tV+GK{z8+>v6sO8GFKxbuWk$>fk(4xZFpP1kEA{gg^P@I;F%$YpHALLzskqdZU zwWI38{c)Lu$lsPO1Rrwp|ou9Ils(o;@<-GH#js6MMda8&3)i1#z*38@~|%@Qi3p-UJkOLHss9 zMI)|ahI7?3pnw(42+KDSlsIP-A>B&eHstR%wXDsv>ZQlM> ztDFM+S9LpYv?t|@jj+EEei!5!p&13M#0xFHXOfRb4#yhkx z%hv^)?jc$Ks`~}7yrSOzRh#vjbWy>oExgOK*Le;&&q3$8*Le;(&tc~|>O9Asr>xvd zIrfTK!75qGk#AYSm8UG*%hO)=Dp)0JIPxt^po~e!^odSENEM@uin zqG_G=hC*wDaDYcs9Dw_nmg({D;lR}|gj)S8KO1T-j1`&7JWvL%*9`ton6r3#PF>%w z$NRiaxy{kvzbb3Y$DO@FY=va=O&7b^E2x&L+tyGY=q?{jHVK->If``ST;4`dKrh7Y z%9Wr(C+MoNxdjW}nlF6Og)@Ni?GmW2FBthg;rd&%kLwPEj>Setz75MDBNrhp(Q*7V z@A{810W4$88wz?F1e-mY!Sr@socts}UdF}jciGtOx0AIx&CE`&x?h6@7{$Uluze1H zgcoyv&pHZ}vEJV!{6pSAXxQjk!WVBfM$a<)t=8yi=dHh|gWtTovA^i=S*qW3x}yAE zqetu~{XH>$fBfTzh+odz-~RZ=KZXx|hpJQjCPT~|qvXYzN-nC-`cFAm$+10tP8>Vr zONIDHzTo~kP5dNI%o)`q$t}-Pbw&fFYzh37Fi!K@;-gzt^!)gvwbG90xth?E|LAcf zM||sO{CJgG%gUB4+6T?`w^WiY|HbjwO^qz$Y=}lTny1))g@YH=7t4>YUyg4Y{fmD4 z_%&1Glda{ZMyFBlH8nPkdfCmHET;DWqbz&L9|AgC{zTn`Bd8T(D? z0jQPw%E7zziyX9QcN&K*TGD6vj-wBW+Uk*KcIx=p%7<2wTXtAj(qYM8V5^eK7f9u< zTH2g-+Efk6HBQ1m(+TC$M9X&;5Tz?fWf-({$;OX#`O`>_6JC#z3VU0go%b#O zhd&oeGX@jGC5hu_vBzPN#|f7^G!Ux$ z8&J5pK<@8Uw3QV^uJuwICqbR&A~v3Nm83$s+wzd?OL(HoM=%$gs*U^jrqudkS!2ey_XQ)bZ6PkUt1@rb2|7tiD8gociMNh+V9fl@6;FB zAJR~u*KIR?Ex6>%l0lU`K{KR*x7vYcClA^IP7iz&%1jZ-V&rmxB?|~A3*+o$j1P9_`~^1uT&dFd+yI)B?V09^&yC6oMX&bz{F9) z-y^~Vok%Wr^u`|*j+H08^+Ih;w{AJW_it0;WRrQ3d95%05!bbbp6a{^PV5O?>t9)B zzZAww&1*%jI9laY^UL%VTBTZZ52Xm3*UJPCk6fKwZb}6F`{lzECX|1D`g{hv{3@tr zQLonK@TiGD7S@d_F>aF=x^9iId~=}(W~}$_&c*f)vK)Pu)!ujXu|uU@7d{HYL`6<~ zZ#wn*-r;rN`twGX>5n>zxbE%HN64jbR{bvYQFO5m=coA{;QW}1DfdFA6;pF6;wA;L z>bab*O3K*|^FkkW{*xn+P`xxw=A`|cq@Bf23YYS<`E~aGW-c`l-XweJt+io(4d*-s zYwbRooBA^Aqlf};`g3hJsBni^H$?3%gYH11S|3C!MjZB;!(<$wmKmVTxXZZ4>n zO%}(AQX5|9H@&)y|H)xoF!B?Ib7X_Ls8K>Z#`F14scs=6eXO_mSVUV;cZ!T%X5+b> zI3cP}*9n)XL18o zxv4cpuRbnYdTLkzP1PeeFg~GIuA+W?6MWa?Uz2xDUd#9%RBwP!!7K1fHfyd&{CMuA z{A=>k8^H9nxj|!%KA-2Y`-wEg$!CpVfwyX7ja>SO`??h2>=93G%${3n2a38vT)F)S z%7bG|O7X7wTVCOV0W{>#TaV`XiE!yyH2!>JZV_A8&H1GxxTRF}<|jt#t*#>77e3Oa z;rs)RrPaNO*f`|T$F-%;yfo)>79@v=3Kl z#>2~)+u-)<63otRwB|-7a6Ap1d1ZqImM!rgIt+3bjbGn5-1D~du;1usjIWb}rlBQ9 zjMu84B)L85+y)0LY}iia#{7ukHI{qgyiML7UStNN{(upOj*A3sS2_dX8`1P(M z+9cAEGmfHy%a*iz7e{pav|+~HTTk4TsW_>)=XafhBQK?i(B_x+d43M<{dNT-IDTU* zyDCK*7`yuCv_d9%@f$t#`ack4&aE+n=5i0zS4i4%p0Z_W++3quiZcR}H4YnXFb)rY z;vLd&5ZV(S_$6}39}}vhD7i$2gtDc(6o-PqHIszK$G<$j8`J_fZ?{QOjp)R92@Czb z{BxhcxAd--Fq>C6focrienh$ed2U`?OGeJ<-AbPoH|d}8PEY)CZ_A?LWusD7DV_F= zTK5ylF{snyt0_I}q+>)E^B*Q?E{;c3;d$7u2y4PJ+!{pr2} z%JI%W8mZwFb&cY=8pE(U`^zg2-BT00dE^{u1GO-(YFrL%FW1!Y+f`&3dFFKU8JWjm z2!hs3Th5B#T%Pr_!Ny5>=C9;kJ?%ejvdzxG1%SODXt2E;e!}IwuV{eEFAf(vg&?~VK=F<0o8c8R2$h!Z`Dm!VtBz-M5n&c=_Ij?)UZorzH2CT_y zfK7DfT)P4DoBHS44VatVfa-Jux~iQyod}5r0p}UBs(+1uDu0&>498;}&TKO@fz!r! zEQ_SNwaYf{*0Q>R-_9l;@D;B{SGBDO$(Y?gMaF0=2Lf=&B3rOu^s!Qe{U(ID#OmW_XKZ-+hn39_uEb$qf zykQm51U4XAbnBQf;8A35SVy>7lQ26H9`Z(D(XB9oMsw~Gwr@N-hQvw_4diciAjlLC6ljiI)8q%adi{fN{#u=$s;-7ZvvNMZXV~nB~A5* zEiOwnUK_sqGYAma_Bs&6AYXd)(kYWVr^dTlCv{aBCz3r(zBL-abuoBP4H0@X)eG=M zD$|+G%g@96=lW_4`Cl@Z*Saqq4f)naxo&hcc9etTW!r^KPO5t*HH>_U>u<7yO9?jS zE^!#HdBu6gm63Q?G%p(KpBtk(Z0f7z!C(IxAx!z}*PU;_2{G7jTj*f>?UD3bZ~AS3 zH^B&vukF9o*2ASedHt8#YWSsI`7*S!0rqR+A?bulvmiQ!?#kZ^MkN7Z#lvsC`;lC< z+4GEGbIlM%^JO3Vd|NH0GKE+vC(Jw%U2f|0WH`x}Q<0uM#URt8>zA@y-$)Q(-z{it z76+UZRe`tuHSebYmJw2Gi>+EMwh)@ql78Ku{xv5_D1ZHz#&qzd%jH2wmOBGUI#d%E zSeAwpl`VKFUKdcSQIHyr$z^bI(gwsy-rfo28hX;XYQz7KBpbS=(8ARpZncNsT>zvW zc*YrMpVb2`HOABf(bb;X{39IMOs1%~Knp_hZ(GH0t)VN3>rs>+zim)jCKV-*$!QN) zH<=JWl&|~c95H$`72&kmkty0nL34wQl^u!WGFI}RrK?K|cFew0^R)|Z)m%gnO1z-X~iE7KO9Zip>Q-AOVXSaSDVm5J-=HHdkCBJm(Ys+o*6a% z3p)HB?X0O9j;n@)#^Il#~i|XVLi7^sMActmd1$3k6f|LB=`q2KS6VfQ zu};Rp9+Db00d3%_bvpQTJ=;HbDgBEg-flmZ*^dr+m~$KCJpFYd%gkGC$z;nZW1IT< z)@R3#CQ4P^pz*@9Z&i)+ZhWBX-o>NxN%Y*K+e%e<%o$l`ZIk-vJp?&J&s^B7>P|UO zg@%pY(~s$^0+cmPz!r5gg6QdRE?6=?AgPF&vOdl(5oR-e4~L=u{FLz`S4*Cd+5jYc zLWN&7Eg7;sPv~1Hm;23M%aAVH^{6yQ&Ho_up7Bxql|18>*d*hF{AADX92lbB*&8I~ z%Cn3OQh@OeEM^n5<&n8*=al4}!z@e7 zT-CkaX}7039b|ud(%&{bkzpa~6g;uOGFx9?*~-DW^>hn5b<|u`9Xg^m%#u%x{YRsJ z#zhoW=pY-!kZ3MwFy}CnQ5!!kUvsdNsSPKDY%VKA@7XA)dnct|dyXz&DTH+`X;IEl%KWm! z3f82@0&%sdY=p9EghxFo963qMELL?8lgS$eglD?0G`~B`yrG7J4n_5aJNU2r23I8f zjxBcY>08QZPvWg9X1GeXNiKlpokn$CXf{?!i#AjchIHb>W4pt3@5#%P_LYpF$p>Pm26=9uwb^iOTNHeR5|q0li< zJO+wSTo68?Q4D%Hjq6B3qCRx0lYQyeQi9w_D5iuL(DuQ0C3p*JjPfh35|+dSei;}~ z>7^;mm%1>|yFOya!9F)W;o2g%G@a&*VVnN4>@5(R^rN1jib5N^PUKYdf6e+^f_1U!l?Ip{5aPJENy=rj??w0!97i|6XDbnHyUt ztxzLh;OuW1iHuC{ex{B&9hw;IHLgUb=lhec=8z))W$gl^IY(&CHtvTj0b3tlbQ2Vm zCu@=Yb8N9X#}=z|Y_U2=i`A>s1KD9?i>`!~$Q~D;xvbinKOSEWc%KQqpcd@td1Cn& z60c91+)>s`y3dtQ?B@g0Z7(>|x=&J>xgN8}E&zBPsI?{OY%o{IPTszoD@pw=o3F zh1H?0U6<2Ch2~|m%xHq+WD~v_)rkvY3D3wyjJ*quK?d4Uj4{o2PuNCFQ3C0Q{Jw%c zbsXzN~%%WUYeTm{wLt^o0o;TPsxnt15&7939OwO0lsrs!|qTU%U z?bOOz=;^Pw=YEgq^!@d=U7}vwCE_ciz_?Dc=SY9OJ!xCJN~n>){kix_aU_r_DIvCI*KgQUNeT3)0@LO0qr^5~Te6)zH67HYvGBf`cb zR`Id%=q%&AUIP!um7JcmZWYD{$2p|GzEl$S*O%Lmp#7+nN3vC?a}zzF3tih)c$Wgn zgf27bc;a>ESf?9JTST=^j(aJF#Sc*{`s|(@Wlh45oiaPD*J-zeW)||SGXi2)oI$Z| zfGba%>0)V9+;U)FA`Ru);XIc*&l=|$lnx`_wkl!$)$?$hAB&DcqF}gpms`p$U~+Mb5X07Nb%!bvmm=KnDhyTd!AvUQz>m$-FHcFw>}giWD}p- zuwKH}2Xs`;>JR&E3xx0zP8gL%gX8LfgFsNadcPR-R(~XB2i3EK1dqz=ZzR;%qwAI* zvl;V*df*7Q3?fwBiTn>7Q^lLf+sTxIhBdsJyyzb#%UMB9XO{dnN_4d9IgeOKu@c1D zCL6~pcg(UkuMU6mY-yre_otGu&v+g*XbkA~EQmOGn%!`o>b?UaJX$-2&8ZuBGhNih zd(3bsEybyAvS3=0S&z3lK~9k71g=z>jsoT^!nQk3;N#|wPXGd2ckOO8YtJ)p5M$s) z=E~Zf{j4F+#^@C8z{MVT*uf0~joeAO3`p*ibcK(9MEJiFUJKh2juN-YH$Q%>%^tF_ z+x?GH%+KJ1#vbOSvsSkUO7oJiVt0(EfRV)p{KPBWhK2(lFD_1#)2hAeMA%h%(eeLk{|7K`R_B= zYJtz8Gr}uSL*$%bWXXTGhF3vg$staG&z8+ zEnhAwm<219<2_1wHZYkfhB|BcuI9TH%8KwFKZ~P|F0rTTOw22;!;nCh4sKM%9W+d`=Cyq^G)Grw+p5x>`ZMF`OD)(RnKEIpW z1LzX*q%Kw6>KNSB9_D64*j&EEIF)$IQ`I}8yy}AHDvxRyR1L%8@YQu*JmH;Ob^bz6 zJmKg5BWAiwI1%PpN!h9CJ9M&9XYjFD!pKYtuHg@}sH>4@DbEI;a`Z?o&uX4>toJgW z5uReXZQ>c=sry_{3H8KlM8f|=<&dwE^1``Oa-+VL ze_oL$8lNd$5CYsqsr7#G1DIvI2u+@gS4MIbRbgKmD=C}roj%u>+$>dtoyoK0I>LFd|BNnClsHq8!snZcjFbjq`PtXwg2HREYIn}zs&8zZ#iCGU8N&(iaouO z-+u-y{uAgn=Q~(b>plTBJD5}(Pl-l$Wohy#&z#Qw$$w>MCznXAbG>GlPgdGW@)HHe zx!Hs}jz+$yJ8Gm9`Z_DlaUD^gM){Uie8kiKfnuLoeP|~Q%Np*?K?wp? zC}V}!jHkVN9$i6xG4eqfJ`!N)Q{4wpqEWS^0I`jHl?YV51AK<|vc7Xzt(TLV;S&w; zhDI2glx;Rto3&xR%w{$Fy(ywHo;C(qUJF6)GhZg~Z!nKA|F^g51#_YA;=;f=M^w)%1c6BF*1$S)AczWa+{qul1@%Mt9cA`B zBjrKw!t=ap-NWay;8!Oiu{G4Jt+*bpHkDu??bewX2bE=e1uU`( z3oM^L<}```&ZPVn%Lgymvq{Rj%P#8#tDpDtXK~51nmD-mc)B zo1dQSoNs>TT;pKkpq~jmx@Y1|uX> zrtf~-t79%Z>l~I`K0hoN>3LI%WiZ`q58LDn&fkj$yccvz1G2&I@2Ah87i?qiRe?~eyz`zJ{4;gFmdJGp%A5_*3LEpeRgHD&I z?)hY2ozT?s%s4lA$a)DQZMqDcQq_2b@`9>yw@n}CklUt@pr#Lqr?l!w)lsn{3Wb__ zH>x*TgU}^oIJDasro71Xy~;X7yfIidV7xT_;BUhB!WXy67|Nq2hZ!~r;c+#bPp$tN z1yHz03gj4Cqgc;582$|GCL(Hp&Li_}I@D$wC|i7sx?1YAO>ksvOKygzr0jC4`!9tz zrD!%FG+QY&o1)h+(Wjx;k4vkm_J3LGjL;w3^qE}o!MxeBo)2tVp|BnmDC|~q_)@Lr zu2;xt6B_D?OK$ql?iTP^7VvqRg!X2eY13ZPzql)EYh&G<4j!J+lchZTBtE92z zG|nkT#>e{O%%YNSICLpwBuw9)yUILP7h$|75)%cu@7BBW>T52J44(v_{)-!j$If}tv8i+hKb6=2pRhDiYp)2Qozurf>1mv$ z7Y7JUhtQT*qkf55k6GZJlbG20ZA+3>9~B%sx~}mNtv^5moYl8^k^VY+^{r8{!*RREe{gz&R>k*5&9oCzE8{myW#s+0=Xd$}4C%yXClV02DNiFyomaM*s zEVWOU6H0bXaO;}PdCiZ?unqMaqtgdgoa6M~$RhICWDh^n!s_ufE^tnGS7(}jBv$cz z?FhdcX_Ud28kkHpvq#v+#XiVJ1m+pTtGDmusqGSv3D_e`ZDID9&1a%*z>Ee4Tdv_h zoMtgmvF6ms{$f~yqjsrvpM-sWoW-U$WlMP03ajx!@*=7?9#78Tk>-sVcALDOJRi4t zzlXTegSdM(z?wpLnxHU*Cs)C}!~JVlff4!3tm|4Eg|dh(?@zDrS{p?rA*}EZU+c9t z3XPFB@Q1DXIy7WqTa}FsHF|cBa>2I5k*RY;lpE*5SpxC={P;qTSW^~)ibC$!fjNb| zU0*fzhDEb*UCNJjEu3uC@$t@cSH;$O#;wcpqeso#wT|oAVK(mY7+XKTBYvD^)cc^9 zWGAUjOudaTu;xHbsCjry`hR+Yb1X%r+HGtzcF?S1L}8I}j9*ct(SnLs_sKXzs20Va zcTVbT7*-9VGNm(~R^20H7Xflu7LL&=5Vu9qrN%*<8Xrwbz4I{3+Z1_)Td(?1#P$u+ z$|BbkzY8jf2x)vSIRyxi9wP5xGy;Nf&yOLBoeZk`cCn4r2>4#4O?w_l?YSSgZ3(@e zszC3>%w}ZX#jJTpbXi7iJu1~bG!3a|* z2PfC$EtQ$$@Vf^c4L~zMwXWQ*VTsvr-fR{Jivyj7tJsRJjA~$HZIIg&FBE8@LXb3|8KVyzY*2Hs{_ ztoFbRWI?@pL^~+b$|Z)go@>_0ejEFad+m)qpKS3J_+ht*A9h`qA2xkhI(+$W?Y#+8 zWTMk!>xq~UepE|FR!FY3Jz@STN9*}@S~t{g%K{X5DemtP2MihM0L7+(GjBuaIY~nK zo3IT*)*C!zFHNHb5(tG9h#vYM0ofrRB*0mna14pjHrToS<;t%lR zhY5*ObqDibTYW;(>is}bFkVgp%iuiKrrrp|2nyuyp!lWcZMx4{Dl~s03KX4OZrm9V z=nUuV>Yr$7Qn-!eOtv|9m>DGhF)4(w|`P6@Pki}Z{ffxZ4x9RMrO z@?1z7M}}M9!X__zK8( z7vjqB6m=Y(Gi6frA7IDL=&#pEAubBxU7BDU=N3QgP;rMsZ`p)@<)k zzXU#x_4bRI0|Ly#%@BQop^X_fKFqU8H8->?_6EhIv7{-!Ubgak)1}vE@7}K$+~nDp zrS;eQ^oJNisoZX8_a*SNIL><;|BM$+NE+{inIv~`Z%$~n4~Mvv(C z&OXcJ6(WpU8q7M;x_#hGv;dt6l98v89RA6_=~-&e&Ezw6Zdx&3w_@)+YSxHz(@10N^gHnS~O@`N`yVm@P zFtMJOmn(D4C~s9ylLU*7qF(b;6IXx7^~N>e1Qea=>I7y0F0Z*3eVAidVgI=1bGs{Q$8 zb3uHith3zBo2|=z2_~f0{+MsGUY4!(8s883tm1sdMNd2?bWkO$3YvUed&(Ina-I(sAyjpIs%!aRpn!QS|5D8ji_H2k{IGCxVI{5io!?mL0Xx3Bc%Prc z?db5r74NYnuby%&eCJ zaL&N5eHL(4Y9Jv7?rW=WNW7VHzYeC{uc1BK27%xM9(<({T|T`-yELU(M3Ud3xo&hg z>)rnk|KKJ1e*^!JlX={JJtjS6z3Kx38cuMp*cTUHq-rHqr()F92Y$i_EpR1VnTFtFvaWq4tAS7~DZ zl*tPljKOW}ei)g`54|=y#wJj4!pk4nrh7y5HR;dO=J!lq*r@Y2O8!PyeorR9yFXi3 z_oA1GlFlXoHgwNzeMm1qqc43TDVOL1w!I&|bE&EK>#~dCYEw(3P@+q=s`|_gqJf)j zo}QPD!(9~<!4mkWEvMiq|l0V+VB^m`Ta!7)w?(6%B*3&jWgXE4tA7zvHC?6 zEfx*(#~+>wJ+2lEb1KaPsG@RjUJRvZI<(*!zdx`FV8vm^&wpTi5E4a&Tb7SW!bdU1 z9C<DW4x6Q)9w^#2UfA8B+`4?X72z)_3NQfqRPH)NUTCr{*F?6;T zesaFpY6?J(7`ru5Km|o+^-l@+ZJ-m_`P9ahZE{c+azyjmmkR^0>@|x6t52*H6l~S* z25SCZV{r9}RTTB`N`BP5m-4r*E3T*uz0-Mb{)ck}v7w}~BX*m5FpLmEKE7BUNIouA zKS5KYJud@&;&pY}2GBYj>>l*cif~|>>fTQ_@FX+q4cGH-d4y>EGzroH^i_n>B)(|N zJ<^uj9?QdQlhv4721IS9G2^sG&42Z=all`FB99`}yjSy|Tvzkmb&>Dp+dE$Fo6JDH zRJY||?C+%|)0~z-FiSw)a!^)m+SmEgqii)@E6N00O?4QOj7^I->rJ-C@Uuf~kz&hf zeN(}LW|ZbB*wT$j>KE@A$>crgU!bJ>Uua0Gr3UY`G`r&%f8v4VH_Lwj7x5U!h=zmc zzLXyt-}obrk8|~6B@M5%8(tm2&ya@yMzEvii`OB||Bd{pc@R+5rTGa?w0M}N(Qe9* z_fMJ)pXglYZhTTymK2n-Z!py#N8SA)y#dJv%;L=&(vQ#v-H_TKOJ~Kiz?}uSv$DZ` z*anwP?b1&V+u$C_-}P;yGp}|ss!3=p_5fWGn45xGMqJPLp;tHDMB1GOaV9Tif&~b< z`$t(O(1-lkHfOOrPx#lYKE8d{H-shH{LGi5-<6sRT5VSv*=h8zpopRFWvNbwjSz~aQv=k2`E;cv%=ZzSy}d{D|aE|O9qkznX~wcudB5WXignj(7R;IsP;d_+s~7YU)0uAIF8V&cnu?#SP_ z7;ow$e`~TZw!&w2dPAq!Q#e1pLo4>JIQnrc0(zolX`IPXNW*)6$7t!jaY}sbqs|(< zl{}rpsRZQlbWXL0B+|kgvIpen$aie`@9lgqlP~&$Oi!%;`My?S^@heTu=Sq8CdZ1M z?e~L5-Kc2h<_!%-=b_HRk&gXTOh_9c-#wVwXEeH4P7QSXb#_tDT2@v`C>_PX2s@$E#*eTNA^ zu=B8Qw#1z0%S}p1w@z);?KA7Vmc47OZfJEv8{X#aWiIrmmPbTTUc6VuhiEpf*_lE< zPvi9&^M;L`hBw~pxxDi*O1i+>GP-EIbLV*H&~P~b#J78`y6sKloqL_3nDYQt1MF;i^#5<}YZ zJ!Z@sU_s^elg7MZxQkX0RZ#C9?fENNQ4hmCp9 zS-#&G^M+=(45%LpuAd9-;^pnxEkitpLQnGh+|Bde?w&WOb9R2?=6TPR&Kt5n=4TI3 zE}Gt;+MZFt7ggjXsvO80@MhUSJa4%31^PDhbabW*m-0#r3OB$X zDPb=ssdEWKTj9<86q_7U$yY(~&2u=1d9OKdlzaR3tvF})yhCdJGzdm8QjA!U0PB2S zEYD+fm%frLQ%Tj!@o~(Ydri-}@BQU$qUViXcdq5z652(H-&>g77_xEa`36MH2ES_S zRc%iI-8#iZ$o}v;LK3uR9m?lAKeOe~j?QO7d$`bQ-e~mm=?ZC&=O@6=3HfcFJAmJF z$5%rqV#9N)dIiv)4j@nd&y;m1#b4zJHkp;$2ZcL&BXW6G&+lN8UbR6Ev4SgAW;@GL zt9dndCaQHG(6{E?!q8r|;UKSMlC#6jE4lj8!!pQdSE*ytvTFX0_&jr|*KF`jj{O== z`pdbYBb{$^EE+%*B7c2lFG|%W3m$#;zIkJ~Y>Xpz=j$8mL_6-fh8l`2kLJx%nQ&he z6eMaI6ZVVg;pA?cg=3$d?D;o)TI(OL{%Mo(f*v2n5wyU%+28fVMBl087RYq7%QQ7B|LV1lJzkx zEcU0e#C6FyMMM4exM!w=>9e>geU>4$%_myV187pU+8_-uj+A|X|HS;^#G4#Xo!CFg zC=7sq&x4aa;$Mk9f+G>Df0}8(VzLCr1Rdz;8Xk_;{}mRp9R0jmHM}}JUR!tqIv?toJ0y8(6Xbx!Pv@_V9^pLSovE)oiBav${fzs z5n*9o3cK59URum@Wam)SV^)q#d5rLJW8Pj)Fj|{t+DM_U3(Sq#{5{374~(4MUw1%Y zHdZ|6?2WA(HQqAk?Xx_V7BoYnEDv_>G~O2vT==X*c{VF2orw^7izM$GGvoc9%Q}w; z`(E)JJ~MTPj6N7PEPQnMJB-fwcHelX7lyuQyu}B3;*wlp90uoSkiVbNcq+lLjoh~7 zZ(8<>gsqop(*k?igtR~mz<@y%`0|)}sXOvO2hwlUjge!&l@?EwdXH#1CZvm`$=Cu8 zBV$5+oC|K&9Z(DUjsEzGeaJ?n&vORsXG4*eEJJx(mZ}YV7TK}aY#9vg;bmm@;sZPmuQLu* zZ*CbZZ8>0ne5>ji80zhAd2x#^FK$cAi(BGbJ)yzQJ?6YaAj-zw$~}ZDr)$-jBl>2;LWq(;TlSJvS$|BZaYQ3)pRp_cR+cpde)Mwum{-JZ z-E*dA)AyFluG@FrCn?49tqVQP^Lz8FUUs(!aq;)ao4?P%cIbB7~u?m*t$fj6Qz z^eXb^FehzfF$|G6e^2|e}TG0(d?SKl&EbX>ik8LEWG*rJx&sdfff%eiwhL783u%`O^W1 zKMiE@r{Ry!pN51#4M`h~75lRI(}8UMwEax{>43Rn`)T;oz6^ibF8t{Ue2YP8-JrIE z$#FE}EtqVCN6pqe%8j4j%dfus`X9otMkn$sM_YGs@Q=Z-9?9lcgATtMa`@E&_|+rG z3m3l{JtM#B{rC9QPR*}|XD{xBGY!BxG`|{}y?B`KVa>00-rO?O-7=8oS365vhW~5% z)pmzp4Vo?c{=@ug5Po$)_|@pg=U1ay{OZ7&`PHC_fVTP7f&WYVYEbj5(T~BeviQkw zH0R0i6FvJb*Sbx{{>mxq_z!w0g_{j zv?sq=&YB)+JlgW-w>(}72yl=mW(jKyK0~8KU-z1~u9GP+#yp>KtSnh}nAxNhbL?zA zWdk^`(p$(a-hC;6C$fQr zjX1JOCI+ahL_q9Hyi=0DYxk)SU$$yKV>O?jZ@hw+T#RW-@k};e(HCmovoq)*{$-C~ zA$?zJu75~SXZQkT2aONn$Ir%y5DV0*HTMx}`PPahDD)n-Lo9uA2&<0(A23@Tzs>_) z1YGxNNn`mQEJG&=Sk*rX?K0jm65orWLBBPov(Y0mx3hfu;D0Ofpe%}bBz5%v8#O+1 zvup4-ca(dQRNoU9sJ`9{l>h4>akuh+0*j|A;G^IZ@olB?z9H6e&Ou z5}kbI?vX>MU2p8bSB3r3T>W&T*XY}QN=CpW)JUt5=_QD^eEFLEYXVm6Y@g7N3TkBl z0%*5~R&%L3CE<3vv?@m!qmbL{FEd}IR%`?FBP`r0E-tP~+ zq~g~CrYdV@u{kjW?!1C+fTR;r7HSHdBQ;(o6^fm@fjU|RR+SZ1OK=-a(iPQxXZO`-nA(>v_n*~HEO;$nLUL;IvZF^k>xr?xMKxl+oe1A^FUS7U2rh?mv*vfnO z&&d*@(t@wEAK(%%rTBo(0ah-`&H&r2frT@04J4Tksvy^4w+@mf`W3GV9;eDve6)YX zr-A_4CUx}lr1Z9T$N<0&pdA{}R|xY3xImNeAs}e~bE+2z+qik9;2Wbj4iIBQ2_z9} zEBN~R);C72#y|H9rM;+bx>Y70EWRY(ngp(k;=RRmkKA0a)M~{1ExtWK10|+9#(4r~ z9c1U9NAuglmBaitRvw@dA?WZ$Lh$Z*Vu&Y|TnIyt6!@wn1@QXk0U9NY>J*34B|v*w z@x)L9sZu3;jhg*+(rxn!bqVAk#rx?Jc*~0Cn|M;COOWd8ill^M;yjf)0iZjLpfXo< zxKf6ak3{MGzW6rw)0JAWi$>#HNAYHfKVBO8NZllNr!iKATft{GT8$f}D9%}=;d8i_ zUAjb&7p?+=f;nD0q*fXfuHv^~j>icS2tA;xAm0h_S%p>c#Av+N9~%7LPwBE!E4
    QalP|=rvE36`R|(zW5)b3v*CSX{z>b4o%MwqUQ4aLI{j(;i#B3ahB?+| zsWsj9e#tunOC(l2V2+)w)_>W9V$dCEm#~CPR##f#uMSy_rg)XtT31wO6AbOB6--|y zlu>{g7cB2p!TmgzfPBq@B(AlIuYv*+T{;N5xASuOPG0mtB&LBv+P)N+1kWc!9r-je<>rzE`Fc8c#3KJmV{hIyj?t5{I${%mqCO6 zg$yfq@${(;Jdv$Ud=)GlmE!raizhq-J;k(rOG2(9-Y%Xjej$d-4oK<4*`-4acIia6 zHt|)kaF}G1QiY#%6|T#cfX}3g<`R-2;oMtmG1$g$q?1??uJo$)H_~fyY@o-jubzZI zFVXiFW_6hM9b=_6jH2la#E+Gz?k|%m)#F=DU*Or}k3j=@oB%wyd(5!68H;GJYBu3F zdY33Ro*(g>N1SYTwmjlgg0@p@9O2Mt_i5~`cZ4~a=oj`G9#(mrdSpkCal(rAhy<)f znrl033P_MpFZA>^8tgwm3u%8<>>y3zS{LzEa6XA-c+mN_@yxc35iGoy8<%#(NO$fJ0Rs}Q`BFP$}XSC z)6;{6XyB@u;vm`mPp!S33C--O;ll z8V)uPcA?h)ktFa1=FEn1sGfhuJcPTta1B{kx%!WxhXvz_`T^%Hrb%a5#naurV?5?}=lCCf7(jcU0n9LRi!D_oJyGl|@)rX@1*jU}@(AI&8- znU9Ea#k8v$Rrq2iGFIV=j8?d^HO`!+3XiF2Co+i}OJbRih>B&E)L7w)?3hX9Q<=ma zGi%heC*>mQ$ZM)_zuXo+jcdktqX4PaF;&LdRBluh#447*r>6C%3n&QF;$Xj;>J9=! z1oid5?Mha%T(urnW%maJ#hLJEMU3*~baETllovxGQ&ZhRG>D+SzO3?6jZ$TI1}b$w z6+|j#QP?(jVY5_lo0{qlQaY$_TUKEyT&uEM1EqFh%@s8iw$)u&jS6m6Q{6#y8bN(q zvkG(dRk&nXx&VK(TBZtR1AU6DX1XF9D~KFW({{MxODZ!T&8jjdvn#T_g2*8?ZGR?x zxFnkSXjajj%&y2t1(AEzw3jmJ!zI<3k7iY!li3y7Q9tNtcOYx{ z6tq_?1Cu+`B^ET!WPI*aQ{6$}hM>NkE=)F-5cVt@u4)}oW%uH!<))mDiYTRKNSRWj zD)^L|>JFma1ob_YRVrb7RgirTX!RJL1FN^_k=e!WtAGO=%CbHX*i*<4i(&`rn-Za4(i*L z)$4@8P+t-vD-|MxplT@^V#^d3sR-uMRB$3q>7X2%3JNtrQxMc(7QoFF<+%h^K9Qhw zP!2)4@EtB$k_OV>sFq|2yXKj$$Z!Rbxx%hAlet-ys>0ow@5Y&~$o2{%U(aG$jV0}w z#LcQbC$lRuQbFX4SuCruL{9i|IBT;C4y zMS#-Wf_Nr&g=6xgy&uh}^HHWyXlVv7{)IxmgwEbgC;d zTtQ^QEw9O3?9N=Ali3v+sUR|!oFeYbk(|t~$XErDHaR^f{Sz5ftvgkjctWJ;v7oU6 z{^C*!(Q;aaolVW?i3MSBLr`DB)$t(DAt!X&CWof(LRZZcP4yJrp9u)hj7(I>bWn~$ zmTH3*Oq7Yz-(0~wCtK$!p2$FSP!0oeVKZEkX*m+fpTpW+k&P8Z=1QcdbW_OOl#|&N z8LJ?2jA5KfA1*1(d^D@VoXoDsNClC(5~Dw&LnI^MGooC z#92FCB30&gWaGq+)Im8NN!WmDeM*(B5BNo;hzzGo^?OP(?}aL>!Je6!C|||IUdptV zF0ReW8lLHjj8zbs+e@BI+0Dw6li3v+sUR}9m%{GM;hfB_$o2{%C-hQfIyY0(+T32M zo!Cn{D5sYQOAonrmXciE6wd9Y@WgJ?K{?$-7=!I@XI8OO&p70m?Y7rs(6#Nssv?pC zT_LzWAVM7Ta%wor7r7(5RO<`EoOLww6cm-nfOPy_It8W-6};7^0-QuC$JQ~mFDx48 zW=Yk$TT0NB(l)Gu&#Pd!RvNXK8kSj=ooT(E@d!f;-WkvgA+jw6kFWpgg%=jlHzzZl6`NV4f+y8fcMvK=-vO6EZ7(TO5%&bX z!cQR?Mqki8)31VqYN|U35!To1Dg*(if)4g|SAhLC8s10IEZB(kgvF*b5fxTYg$wY& zOyR{--62Z#J>#mNutYX$rVD_rQi5AmnCYFUJ$PBQb(PUr;#I95Is~Rk!6q=xJ=|qu z7o3(+(m{Yv8Zgxzq3}jX;H}?`0RZA|<5Zka9f$oblpNBKCn>?GYg( zn!%xm)srgntO`P%XnSr{X$w@wl2Q=CSQmUrO?3xhfy(Oc=8{>A{!9zP+S-tXhRTU( zsLVwJX`GQMT;+a;tMm!KVztsmO)^Jt!#oo{lH22@xjjyrojFt~^H(?6GlLVUGMHNq zlh;>SoYV}(8S>y)Ga*J#D=5Y$BNEOHu}o{TATFN>ad~b{YB@|4QT1wJZfoLZ%rA8Tk$t(t2G> zlOz-VK?(`HRa^M9h`UoS$!ISBl9aqjcj}$mSSMl?8Ms-3vNT%hWXvNJ2b`NU3`rGi zXAN9*B}|C&O3pkTh4g$RaF;IRY1MjCl{sI*k3@Dv5NpDW;lOQsZH@vzP{9v#=CU#a zdn<$dcA0^_rKY-rn1S^jb#a9#)33-_CJ$2%3hB=Tghi>(HGVg#zHwI}u@chU?O&v>dTU?+s`2bZCXu&7o&D;60$G zx`R}M>ieAw(2kM@)w)M>z;=<_7<0iqLideK!M5IdC=<{zvrz>Psj2QD)tC!iql&m0 za)oGBdozVZW`;#4nCcEv;oR{<8c`22*}{72>&_%o-`sK{x#dJqFfxTS>M2#$AZ(sE z2%B>UA!)RK3HlNX+bOL@%L;o0z{ogvLA9PyP%H-rZmA&aD7k`Sd9I*Xo+BuhQAide zS~igpEz3m!Y0wV!IEA;dH(W(dBPEtlbQaHrujERJCAnxJO|Fz!N;z5RT{;oHOLNO1 zjeU@{CP!F~$c9(7cmT(_;-MoK)Q*XucH~ykks}`3b5Yqo5tZ$^s3gsH;c~56Z` zDmJmGSZ-0I0d?*L1--zLg}SJNy8F|sW#>h8yVj=y8mC8{MOJn)%)V8xl5*!+-Au7)ba5M(d8X9WmZy8_^3oA4KGk1u0=G+rsdPla7D zJvbzd6_2aPAb2>*|6a$&Iz$m_YA-RPVr|#65?GM5fUu-0vkyt9{%Cv_za8-!!cV9I zsYP72{C8_P!16Oy;RNNkqI7~{y_>jp0c{pAyz1gJvHF0|~j%#k5 znq>w=YUxK=DVBh~{Q?@}2~Qel%E)(uY&-wZbm4RqHIv1l5{i#hLESRNtuJ5k3!-61C@6y*NbavZMpg zZ=y^(`%Xs_!sRHkUowhDMXqPHDn%N=A5%deeHHDUUy6q7pqYW8EI5=Wu2ptam+Cxdt_;pXnU~GNdp$72) zWcWltioZjX+y{XACge;6-iDF4L@q3oo};Ky0&$7tqlhT-(W{Wu<5EeJZf@H!*?~w# zA;F-ml}rWIalQw5X^eXbV);UAlQxRPolX=$;#;8`()dWdU6<}5CBYOY1Vk`oSkN3V zwDnXmQs@p4FGevIFk{dPF0XfM#nUbll~atK((v6nKRm^D;uC(=A=m`iG&ulU$^i(@ zKvF20amL8Qr4mA+4q8nr-I)`hFDHi$J^h=3UO1QyeYH@_pgp>n|6quPj42M>iFJd{ zi%9)gVB4hwr2@OZh=4b8e!V7NkiyKAQ4RRaY9VN}1~#0%PBKk_b`>@?Y1uDRUF{DV zfp}7E%)X}p2x!>))Sw5kCn#pjP8N}=1OPIGWE9e)5y$|Qo4~1rC)HH6cF?PRP=|H* zyDZAg_Jy;fk&!}3So3FLFS@bP>Ea?QJWuQXkdSV>pO;b5&21JUPOQiajSm~YtpwN< z14fv%+hvdoQfdP_p={uN-L8f}XiJ6%kU~TaK!Vnd=Cj`E4NZwM>m+8EPTfdqoPr^~ zu-z(~=pzKbMsOtFtVstK0$^lya-1u#xKY7?wiw3~$0r+aaauuU>+AbQ z=YZw;iEN&Fl>-qh&mG2z_!}qlw;78Ma3&Q8D_EY*9PqPZGn?YsifgnSid|{cJrX~j z{}9mRacT2q#*@28thuM+ub<++hq}8gkKQkC)ZP8n{<^)S$uk!3jGvgog?^n|*ko$S zQ3kzM4UowR``-XB#gq{=-Q2Rho4h@8N@eLjDpx%>P2rU)*fMz$p|V+cEIu^(VR5EZb%SMlIK#s7d?etP zu|sW)yPfmvddun#m~~r#(%54)-!z8TF9;bnR}5O;9OCE*IXXs8egK!F($6Bk?t{$z z;rpOTfAf7q*xU8zD8I$`IoA2QVK&NcR{r+Qe&oaEQss|su2jKOs_!Gl?p9T}9g!V? zKdZhEzMww!oa%caK>o;mds#;1rSU#!*WZ5Mm|o$3Lv#zj?^o3KE5C57z8AlMc6EcO ziEU4+wtZsgWva=fSjJ026>d|XdXlZgj9UOG@NAB6?TyzB*Mb~83?XAVIizkU2kDoy zBVuGS;h=EF;=Ac#jw4YfzR7Gk0HERfV0eDt zeT+0O|Jtj!@H%*jpeAzNN#2Bgy=1O{K44}Ak=rFKtYds6)I-{HdwlDpc;88!u#J|z zvmx$(fC$-%YkAfhbqC^!NdhPIRqrw0o6&j5U>nk5WeGpDt{W$yY?tw&y%)k*aVY-Q zsox6FzmcD^_k=VTAF?7BOkv+Kd&1a;w0Ix>+?^W!$29zp0SNF%Z1}&Qg8%zz_^oP7 z$cF~V`4(+q9pfWmBoW``A=q;icwm@&Od3z;vu#OSOz7T zotv%d2aV1H8cMVCeid9JHKcKD!`Ju|fv@lMjcs5+Q<$YP~S`ebej$6Q0xx&m2kqgz4fGJ&|G{!d*{bH_YK$V zmW{-I^DJ||*Syll&S+!apygZ5;U(HR-JCaI)yx49eOLkY)$L{X+KTj%E5-_T#g3ZQ zXLF_rsRF;`C-O_qQ#%`U`8|9V)B&cy@t1-=wzy~SH(5MPT+L)HhwR-ZlhJI>wA*Cy zAyUtSzVu#`|HIt5z*kjV`~Ms`>Oqh06OA_LQBP~MpizSc$RPm&28bGKw2_7yy=j|z zv5mKA6UA$+fh5Q#*@%jYij}r#(W;=LqM{}|LO{j%LR7SfibQ*1uJ$v@-S!>p;d99iKThi^?YjPeeONn%Y1MD5A%u_C;om&LE=xC(mcjN75 zx5>ya$(k4&>B?z@%dVUjo1C6UP8o9Sve~42IBBy<_XrIf8PF?e`*zuEV)A*3@~N#R zXRS)wYSN8&yIV~f&QdPbj?>(Exg;lMx5+u5Iah9QD!Z{uB8oa3e={;(d-a@9!v(F? zmp5=Sfm(`*PGOIoyB|0wQfSShg)c+#s1V{bs;~_&^V?OtdeqO@WE2&rZrL?vz9Nl^ zNc_mosNqqX52A(69$MSHGqI`q@BVQKRMGZ_+0*Gsu-WyZbD{$L^*ABu9n;q--;CiI zqxG<&=S0=LN$H{fcM2EL)8i%pCwe-wK-|NLp3Y2>ym@%dJZlP0^z)+Ylf{;c~1G#I;r)FQ)+i~t3FXj6y;C*vO5Plv|N3(8=-jG zR_mk}FH3QLZjNorpSIQ9u729QjQYRsBI{3~Y0l4s>{I4&GMy)=lWD?auS0F*Y9}vB zQ>arG{Fmd>s3+dOx;KXdaUugb%cpKvZLm%XJ$QL)13H$vU-@)seX9S67nb#O_p0~k z6S3KHi*@!kdR2~g6teSPO~hFn8Y0&Ts?FX~`@vS;!O5^= znoyl9ovaDLt(+#}Cyu+>x@PzW{_R`a60cpdwd&J`s#g+KZRDvcl|9nK*)d*U0BP$_ zbss`WCOr*3oGY~2&KhTL%;V6ujeL-bgC_LQAw1;Ec+wNt=xZZxsG$di5Nx1nh=%(# zQ54oKO?{SHCpBBQH1}@pk`nhkwu)Ug0_k(CZ8jTft=Y{sr^mX-)#(^LPA0P^U(Dve z1~%R~`IqQmpfJbkX2L5SMw7vDQGYzrX8$OGQ4^^1_p~{d9ntNh>ApE5I+)I?v6UqjwCZ&peBBpTeMs(7%N*}s$7#pv z9P0Wbxi4AuI@e9tI)SUM$ub{<(X~1ITwl($w>r6}GCx+MEMzo0sd*5V?!>NlQpW|C zvmr%!ODwc*fdV#p-N0!?i3M;k@q%^B;+(nWHcU+Hux?nGbDwv)D6!qTVaX(R0@rCw zSwELKxcEADNcFPn8|CNIL3MJ!(OET`tDG=e<#&`x%u6Y6FRuT&9+l9VXNKNyn0`2_A+~c zmy8q2BT+tr#HS`HNp|PXHN0_!idOz<0tBR9=gqH*`974y4Y%2eyY{d zx`y^P(@MEIZl(N|PT~cD;M>7hYn$m5UV*G521WYrMY!tN_75nbU4-mw_y`AM9)%*0 zU2_>HRB{>=#UmDk>?NYs3AN%BY1c^zPuvOZ@A~qP5D5aasx^8WFE$L}dDHyT9F>Ib zq#DpTMI*Dx7;DrekvqMiAuP+JIZ6%EKDBbeU^S&MNRKEQnoST->VyE^OnAN<&Z#S< zA(BlA1=)F@-kn*gpH)pEPK@L4Rks@MGg*PKG^_Ds1{YS{(NuY z0Vd?7QzM9W&dq}a_GR5@MrBA~X4m~ntQsq+%%!JvgVu?}Ba`{psee~`-Iv}wxhTFv zxi7qf!d*>+OUKU4#i|>vehrPVX1v(o8xC$JA?@WMez{4g@H#!~rcj|2KH~{y;zluv zqdlw|qmN>ewR8>7&h_U0qLq`CiQ>t6w&D&3_)KGs`U-qVK>i&P26(P6eaUOM8+iV6 z(+Mj1&~$ZDP(y^NcLB5AJKA2$9AXLq1XtfgFnQ5jSgBr9eiOYpkEGIfxUmr4M4jA6 z#J}1XLa;+ZAv(3?n0{XgeX5lFM@VN8&$ADdl;A~5e*I@=(C$vI)k8_iJ5Kdc^!HNA zpW;;|+woODMN*~gymhM6ATFg;cS^})O2tzF=iF}2<=vdTopg-ZR28!ti|AD$e>!$N z7F>p8V9|zL&{)+U%B?S&gLZ4Okks#wrq=eWZn#cry@;Ujb)Hu*zA@Vod{L+SEkr#_ zw}-9q$0JU)J5aVi#$!G+Zg2M#qLZ6xuX8G1Wn165PHdu+IwhzN;22%`tc9+OxVo}e zVwsfV5(TCD%CrT|Y4jy0`QEZbs&c_3+Lbzb3UdV%m&WND>hBdnl%~>F=slYsYrKeyJs;ZjH(l_)X)ttA*J7O2BN~Ih|%yQ#Pe;ab5!4;=h z-Bi1%!px5$>k*DzF<&l=D>trKwP!;v-d+@Or2Q}Y-i{HsBzg2HZa2`#+CQZ- z`UULvuVTCPuQ=+k2d{~$+Hpqc6}%&Ce`U>Xr$Sn_%aPhXU)Ue^d9$klqZNN%c~$0| z+?6(mF;=99dw))OWbt&S|2{aQ^SesimIPI2E@@aAbdEww{=Q#QCLxMBa#q#L9CkwP z*(Y4g8?Cy}NuMM27Fv^6xLnD0Qr(wwEJdp6bBK3rD30z_t$C4`XF9nzb2#=U6mL*-9GST?ZR%gi+3iTt#0Jip<&&#^evT0@QvUSd-EIC_m-L=HFeA1Mdvy$uyd2JHX(GPonSyr61Lt#`a4o!%$HFlEac zYsv!VHA>U7f^VA+Z%7?ow#1@zdmuLI;RfZ>likK1TJ>Nz%H_Hp*Upg2$+8zasrs5* zroGS!&2zGL*#As?!h~d^jb3PCoqDU=ty>nqkd7c!^W=#~9EA*+1P`d5fP?(dGh_8?2nE0-T_|Fl7fcJ8S1=$JD z;q=b%4znfxK5kgEcXB#Vfvt}gq}T4GKt~^B`j4M+v%Uk}sG%!uKmg}Y=dusFBYasN z2k0g?UcMj4@Frfo;uK8~Z{6h#S;T7+)n*c$i%e#*W3o9awzcYm#Ma7#;Ce%3yd9aK zV~jqBo4vYQji(<-CK(a9nk==}I z4*Rv*54!i>N_&;A;h+1(@-44fv$qAe*z?n8LJaz*z~0Iuu1!Jh_U;IrM0o0=_@asB zeBZ2%(|Wi&Rs5QpK26Ss-dmllr|>Cc3eJ|d@u-`~NlT2%D$^_BjrN1vn;A!Qoy&Cy zUOAx&WG;_k3{JiidJ?DHNqyQ=j_6^XLK*1uCUQg5#ogjgan$!03WCcyplXXK>iq&m z6t_7U3O8C)onEL8Q6@d+7%$AAY_qL89g<+b?lFjwk`qcH%`yT^?p}4W#?v{^cXB6L zvrE$}P#j~N(BVWW>OS4j>d>0mZc|9hDH4cN<`mzgQ1!6w51k4QU3t-o-Nvg+NZItG zIP6mIam_iH(@bnrKq)o*hPw0`o})jd$La79FkQa4Jswemia0Au@r#(Hz^P8O%NZ+` zu!#O+iFHG>j;B-4tCXHs8AD@InB*oDcVA%DHz|y#<0NF&>(r`vdHPtZewKVMnq#|A z0L51Q-w41LWAHKCHSFo$XrzOlS5#cLX15Ze=Lm_jrGKuG2X0j&K)K{t2ThfeMrK!W zO+ntHGysQ4ccc^_iY|#9!gW-u!YPp-1(z`&U-bq&l5FK*4-phHPj@69^RkA8b4hcg`7y-+;jyqBA%y;kPUdI%Lxf5&Hr8c_jEeE0& zN+Ji)3`O=wLC9BHsKAtn6>R=l)tjitwBfukb{ZL#hzI$s6VRYiqK~&+?G4{$BW6w| zC&=g+BuQW6nJ7S0lgW%Uht)W?hv9TDr>Mi4{hGaP%j8mjEiRl6FE560k@uT@80Q{EIm@*C52ExteNN0sr!y zti!syi>g6RY3p5`o{H9;Z{Dv38@KLoOpj`+6M77%#9=1Wo$xV=zK!(hhO}~VpHcQ) zU_T-&3}Xy~IR$-8I_Q%>qKm`#85&IyaiE3UzVdAlK1j}oCK0DpYeEr`h$8l*2TT<= zbuv@6mGUp)2r#OsHrk2JZgr0$u_}PXX6qJ4Hq_ioMaoG0Q%*K_#cu$wuBOu>7`ZrzFH|tO!b_J-ub2iAu6WkFyF`R zOslSjyPXalAP@7Kv^Yyv7QHjbdudesAswPNG*5(}$dmqyyhlMSnJ6g>%QwvlMJTG59kvn5Dt z5$#O8c_L+k64r5&XoE17Y$`b>gprS~)GU|C@-Fo~llmTGu0yjoqgGL8S;-o;5ojp6)|yOM2e9*>89Y7AF6q+ds zW^}r91gPl&U8C)IeFHr-wDQA3M#96&nWp$%IH_~dY7{L6e#ial}vyAdPt=M zkVglg@Ef8@2@$P~j)NMwZ-{vtx1qmOnQ~IQ!L2;JnXb1`yD3}NQ@K8~T0Yaad$0wB zD-~3$xJsPWR?hPNiec=HtXtAczmZ`dql-~3+_^=jODVZ5)9Z-uS909);>bd;>nUze zH?qbXHCI+xd6g?ho&RA^o?oBVdu^YS!DnLTc}*8jMrpdBAdkjc+Syd0&;&#^YWf2@ z3sXbalF&pdjQ&OQ9n~LZ1WQ7b6vj6vo~?R?G&1r!5O{{)xzvm}-NepIKsN&8rffZ82GQRnT?lF>&Vd zIJHET%vVmKaXKf;?KxJYXI^%JUg2b?9_N~_nBVW($T%G4_aeUxh1#HJ11Tq3rI9SB*FKsou_j-!FLS1yW2}q0aw7G_ zGo52^(v>!&E`2Lu_7Y@G9m~!Z$h6$ciUIdyF&B&^U9y%d^b@Q{zmAn^zp)HO_?9lQqe%@#Q3X z+>`bgUrw+iv;p4uvRn0NpV&WL2vKHm!`vx$VBXZKX`l*ObZ{q(;F{@dXFd3ggpc#= zQDaF|HbjoHBWb~x&#L--gqpixYjAlEjSb&-sbEoRo$0HV@Fv6ix^y$ro;;JKG)X^a z^)3#>@nK)t%`dj|b%GCe!lVMHcu;qSS~GcJZEMge?$K>X?V5cV>$-Y@;XCs`=5jhw zocuwU$aG_Ht5(Sb&%gsAsro7oEtxYsNOh|8Xt9?$tSXb%G(GGdcE@c-ruP#d9iK)_ zGkj1y#@A#&0`<y!TpOVGMP-#N@pj^7lLKYR$x>bnPf^aPbGUHD zY7SjpZ_6a~KP$7jR=r9*zCkbNE$LRhzQ<-i%g9}9 z;6wzE#HZ~8>XQft(Hv_vAlmvr}m6mzsag*&FN*U zr~Hd(qgeRP(}do!(vy7f;%v%U`f>!W-OOR%NK^*&NG&>-YQ`YuL>w+m z#q%rBC{DRH+LYL7RExMG^m&Pc!M$JYR;#4+TG8)%J#Pyx z(EFGtH8c#Nw~*SMz9}q-dovzZy*`5O+GXT=-GDctyGt`X?{cA+Qy`JnWK8or-TaT= z@t&^bz%-9y3OtvU8z;1wM^%eOYpm;=OxaITask?^R6FS#CB)P8SzLW1W)9H4Yr3S}o%|`9>&;c^bO~d$xja4At&3TOUe?U_ zP`k*Tf(}cQ*y}^_X21hea!EcLl67KyMp9gPiJ!^a;`72hU?$B(a91StU%FF!OY-;o z67n*s!}%$yH+AA*EZ1thWRLr zcwf69%wh0!+S0AYOSC2i2}6lhPA!*Ar1Ef{VHQIK!m>dwqm93Oxl=&@+!St|*ws?AIH(UxL36w<9k^=)T;o2L6$WYCQU|1q;Q;M6eVc}V0bf(IA`-7%sz}d z?PMNN#ohcT0CFjq3CpgAvtZPh8_)7&Yw*wwEXK5_gd4aQ4_b+Jf|tujc2emK<~jqxGC%k zYVG2%G_2Kll~_ln#Z^gSRGjrVoQgk=1-zLl0>T`|cy7To894aw3NGTj!F8R{%yfnhNJ*9ABXF!Pwh%_jI4349GcpEt%7W`7|kH>~8gX7!F{S1bfFSC$fc3{M-LRE(fX-ocZ;U-#;Y14Z- zxd&qcjBN`$wi`F0lB#;vtG8bO-T4$m$ht0_(Dv8(C*x3=VPb^#1^t8={Q^y_rTh8M zcq1pPoS;naGP)Jb==OmQFTN zCKCm7u+r`1`$K1JHw~lpA)HpJZ&@osmHFsHi!)3LKg@R$YoFK6tdltOlbg@-(rE~%%wFQ0zLU)^wBk|#QIf2 zihDy|G}fDc<;HX}BWQMMl!(*o-C|k=TeVcfp68U}lduiKib%3Bs*S9x;VFJvoYxmd z5xSHLbA`3csMiUJ5>oo~mrmA6!Pn2Ia%vZ4cI~Tk>u(&j6xzKGoBC=^K2J5Eqc)eS zG5$I7kG2nC4A6`h^0Ju%;zK>DbDYoyxSZuwejad_W3bv-q^)F4i4SGE@vc?>Jk#u+ z>4x|hFrRL;>iPJ1pn;F6YAc?tK5oc0)`&P+2fK!>+ZFHvUr)zm1KSt9)^Ctq`;4=q zj98gdV|i8P8oIoi%g_|m+gG)iW~>yOa*UBt7LP}&4s5@g*UH#lxwaSTwN8GI4(e5; z0n>>Ey|;TNGE~E`EC*hvE^5c1#HkdzTTK=ywERaj!HyMEe@ehi#-)U$bP1=B2tb5X z1ff%De?m@HfWc4rjH<=vm7yLoS|UCACnyuEE){me?0_{{GuJ$ti;Q|q;WgP#?3N_k zB^uQ%r-E&Doz_&TOVA8FiOqyE=uTA7CY#*4?e7y3m0|o#$)CsnXublXktfKlLQBsg z-zkxKURa4PrNAU@_>d&Y74eY4l;S6KRcP+!8>y2yQ|L)1pw#I`Rr}Zg|nd zVIz?bJE6_IEX)4N$=Z_GWV7D5P^Lt?3FT=#6K{jhVf%Bv&HY$ry@tvSd<*Qu+BMzn zPkOI#s!t4JvC(^pTNK;QmRJn4TdmoP=^>@|eidW4vz+`|eU>8Tn_owal@a;Hz^X=N z;^dppjAS{blQi0iVcd*tctv9zeaR~Nb7qKNqTw?ub#F{Wn?}vt%rDqC6G>s56AA8+ z-M~xGovO*JY~(<_u5eXo{jZ^e+O)NIn-PxUhxq!Cs?;{_laC1|A6XhtGw))0)Xg6- zlAcX#LJlb4Gbm9tx+xk9MEBQ)YY-O632q8LTTu08?V`BRAgVrnI@+IRslJPWeO_v> zrZ_#KT>X+xNv9h9a>2O8XaV&tF%+~W4?*TBBw0_Wk56~0haKviYc&>KbRx)x$tV*d zYVOq0R0^zPoQo5&-{|^C7`Ka;i2yWZ^l;Nz7)2*Q)|VxcSJRP5WvWOKbjZ;v1X*2( zQq@-J*p%YW1I$%uI2kFZn$2Rk;a}s;uAGIbnOZ|eNjRysPG}1S&LZGreZJs@+H#nr z+~EQGDrQq0$Sg%2H@!G_ucwyPS*-E+SfAQz4QZBJ`ye0i$_(M7?rxK#wsPtyvosI@H<+e{-&(kOW#)==zOf$ z#3(i0Sg}5)9%*gMPP*l(R^xWBl^zb;BbbH5z~Hm^qs-!|7at0?BHzImSleJ5)pU)@ z7o~SLXs&(TM-q?~yM4mhUDCAM++9Fu8>ZGE?tu~<|~Vyp&j38 z^R4XO^CP<+BCk|tG#O=P-3t<*vNpmzg5^x)2D=@$Ta(|BY`M!ih}X+pd6NdB+pDE4 zx=b}oK=y0QN2!^R%#g6wTT<w_%Wdbs)GnxcrP=)>~4w-ogMdv4ZuM z-;fp`QYRmyOouMr*WHNO~cxfNdRnqq`j=!FS8=;zbiJ)PdsBz;w|Phy*#8&VGgaA ze=loJVv|Xoh9#2}Q!mRS#W=~aAlD5il_dS0e=b|-OYif7qdWhb2C#`ds`YdS-BiUQPQZ{-otGBu!_) z5tCkE1y`$yR{iG^YVX2qddhc(cGz`hmEuK4Kdv#LM$&A?ZES@>UE-h?iFf5YF~el> z%wLk5Yf1(^5qGk%AM|HB(}}}$uF;ctbDgnRQf)`gQ#hIAM=KX;_DXSta?!-S$`Pqj zW?eq{|B?Hjsd}6CfbM?uApc@Oa9Qw^GppW)_{`JDUs_PDXe#BC&QSmaGSgX5edmj= zjU|-zqSyGV15INsA_wCobFwYUb*rS#g);L%Z)@NptCzti(6R_~zl8Z+vs`snDFr$@muGqp2!$ z3XcqM*~BGt15tSEWZX(+Ep*JMR7XR~4DPwhQ0iKnS(QF7QA(*?$t>*^IkemD#Wa*E z6F4@86~{)x>CCW5lnDVgX~;f9Yi`W6xQTc+GsX&QY+|$9!@>%SY+;fa zH648FW+4)$f+h25k`b%^49Fo?>?dSt@3AxzCsqcw8}Yrz+DXd9Dk4_#-eav)EI0c^ zEZ=*?*=}-Uu>`4u*1boZK*actz2Cox`xH)@sCLY{q!a{Q94%4qZiUrEDX7pWNwFWM zRrBoVDU_w*d^F=)#`zO``>V=&hB+Cv#sDj0d~H*R1-LToulP?1n@Y3$|(8?!{@)3r%tdG#@Bk>t`fOO(u-W^|SDcxH(!-HTW0CD1F|%`8z0&& zjVFWZCAs!vnox^PRuJPkV?I{uE^WPDGvBBf6_>JR)gSAckePZ33uFuBu5Hq(VGUO% zWbW=V6%i^g&Hd=>SiDF?5JssX^G(Py@JnYrCuhD}*>r}~8Va+GFm-;VV%wkhicv*r zeh5v5x;QQ;y2_CbxC~jQ^RQczt~HJmISdjcVfI^2>W!?M*AN5d#C1jtQs!X#Lz%{5 z+nB`X5JLV-*-d=I;`sCXdj?#L@0+)*_EY0ra_DS5P(w9@0i}n)b05?jUiY%qImsszMUVWVx`H?Mw zXr+3xK);(QR}-wQrm-7MUOi!f<5o2HTGyUyylc;ep%3%au02<+YtL1y`q_*xyfPgm9;zEEuDKB1sVc*Hfk>>l}rpU zeP-6KW#yVm61P7=DM(;@zlvz6*qzh|O=)L6NPwxsv0I(cxK1l^gg-9M5Cm?TX$xP zmkO+j1{ZcNwsU2_WsSd+__EF3z4CZfgwK5^UcdYps*zaeGZ1?)cg5B>35#C#OGywM zK+yzov<~9`kPa$FG?L&%jt#~hENHC3xJU`sHnVcM6?=Og_tkiFH*>bD!PEt` zTbxM1?1xbc$O#g&dBEPlVNVEFg;~+2+rEspL;3_mqZv58>85Q*-HwL)`DQx}rYD^5 z;O?2AhiA=R&J(kU%7O+eLkC|?MU6~kzPEPmm-KdOxYxDxSLCi_yK4l6)R;zhxDgwN zPBHdJ-bR{?$FTg$#Q_^)MRHm4PF`=R0h5Iush125~K3o%UE|U zcH4YYlNJ)clKUlAT{k)-h)t&1N@IHUz7>W#&-SaF%0=WDLSNxv0f9fmn(dn5AnPLA z$vPanoEh?IM-6t6)J8)HX0~vy)Twp?4jamOO-y|`S8=f!(W9J7%IaNWxin{)x@Kh|wSm1MKb?H5m?!%{cZC``Ap z)v!k9_Vt=vo8%f)#iyEPeYXhj@Nyo{h{J{5Zne0#N_kNIirwytH}Uq}0(D%8>Vfv- zV6p~VM^kRHAjx-k;uz6`9j1R!qu7t{UyQ>Kb3#)oqoCG-bx9Zg3P#0WrsbJ zlX{z}l&X(MQXfl0hpRpw?O&I;*FA#^wZ8_Tltn_O%n+nF%1I@aWjV|_xGEAgL0OTd z2V3oCw;rGB?W>UuiIK+o7!|m^`T!W=h9unKrR7{pW=)kREsa>CR^tYQnVBs%Ku&LB z!2jn3;RO?AQtS@1;bPn=p0`!R`denP+~!-`G$K(af1ck=<`$3~<`>RcXOsQV}Z-=swA^BKy9${@J}cs8}q7mtUD>yep! z*Igg&uK{bJzUA$$&lf7B)CYRkJ6RxdbQoc?gz{DB&nTiiNJq9FkX8|C673j;!vBjYD8nNK53I?xd5()@AZW8(iAhW(F-*(RXW4S3ja|1r3~znHH{ z*Jy;x5?w|f#&WNA!Pdm`>c=SfOs!C(nS(Fjsyb+uTC!ec6YyPmf4q1<@zaiu&ibGg zEw2fjDy2@o4gZ@u8$+)?d@Xyc$7^Xf)jLE3Z^o8?@;}d8EolD3_z1r#*9jQAQblHN8xE{=nxp_ z8cLaf5;wruQiYi8EXhAaC4#LKk0_wj4G5(KxBm=#6w=k{fX%Y-sa+h#FaVsgu91lJS_zgchg#_$_(v1ed2~hAWAu zoz@jmU)LJz3dYkit4Mc^ERva;#Lw#`zh8V4GvS}ha3-fb4vU{!<}M9gFK%gd*$pUh z18!762)38xUvKz%li?=;rEWmzM%b9xUj3*xIz)pn244=o8f@d7B_p^~z5_cG(k=5% zAJdq>tA7ih)H(mtnXdVJVwY{!Cv=&=tG#1?b)oiGhuB|T_|5yPb6xv)Wi5dHJGvaD z>UOQ>blJbln6+1z{ku{0yV$>bvM3hrX8*3*EBp6c?B923mC)_I=p?qOPFRy?s3%G+ zZ0nv3B?-^u`?+#PxYqCsYu}YMe7;kBl&s-3dfL?*p8h81pZKQm>I*sfM{x*aH#&M_ zv4fXI1A3ztBY1CqgBf{u2Pl~{WMK-&y%~DcJz0eZMt5~d<9_YtkV3LhLp)l(80>Q{ zlP!FnYYSiE%4+O$IKy>TC-o^s#?QVuP5kIh3sp z%|y$LMyVk#qly`Fcs*HQ;G$UuHTslJdiSS{qGzi23Qgn1$QQP=?L8sCiyrLVm8o*q zsJO_<)k}>?#ilq}^L$3<&SQGG%!_lNbGQOr)U~+i#Br-z%*ipReuk8itq5> zN%B}@|CKPB=~DXz3?IE7Eyo?J))6t&%MtaVo%+xoWzPQ-*3v$~-hDMET3apc*t<7l z*UtH_YcLnkSO-X1Ez|2i@%zI5jRMV~{~@)n$Ld`7(Mxj_1Alsr?N`G7rYX3nZCtgJ&8zj0fGl zbKa1}ZT8aLu4Dc@p6QYm@jy~0!S8G@Cf`XEzZ)pS2P0}eyA(g_+Ph}5xxrnr@TA(r z5kHN+YoW1s%^xU+77j#7yBtl3*Sp5x9x*z3nh3sjChZ~bQO}R|aB*15DzQ~k<=JPF zX?4u=wIm7BndN|0nJDgYi#{U%oy(D)eO$$^M}45(B{Ho2(apE&B*|3LUPw|6-X%j( zdN`_VTtr+)JzlO-UB?V*mkdoaSNZ9oe2(T=5=s|)%|axZ>tzp-I_b4!n48=%#SJVO z=B78yO>cOK-qK)wF=U@^RTtZ#bo2BxTEK4@rmkuII*lq$CJFnsCA`R_5lTl}F^FZh zX5+ehX|L=Tx4c-pq2{R?p6k(S)rkVk>Y&cv?$Bwq>=<{RQnKyGDXnTIK!;aSm>JH5 z=g2j_bW`ZaL7m=V)m^KMxpVLwZ93fy92-t(xbmR-rplfySGL;=DpRH;23U1pLBr|n znXF%0wP6?s{+v*GO!NEQWGnzdEQ^v2mnp8~+rfrQ0_%IiE^?x=_HK9W>RDel4A%%S z)hiMAz`8W+x}$g#Jk6-hCWGVj^nML_2Q3+1jW@7lLX8}LOD0G$=(l8orXKZMGC}=m z{gzBH)xh}XtHg}2snger4@SufIDN?wgvkm)djj#r5Z&sd-=y<7h>Zjf6h`rI?zHTDs@Lmm3nUFiGRs&lw+>Uw1%2gcSf{nII3yOHS6rOv8Z%weCu!$MTlu+K@3+fTmy4oV5BURUcKarTT9OZ!k& z3dYnZ3zbqvXWE8`R{c-7-)AW$kR_TW$Wx~D`4}6{YaVGBS&8j2vTN04i_g1M2DNSt zPn*gRyVkD@>boIh>8cBFjeGy=>O$3tUG=~hfQG_rcc~BSlj?&ke*F5tsH)+?8nK>^ z6(seidyF~b_C<6A_KgrYkMcG8fF<0%M;`58nxURigsY-sgHv4hW zQ~ObvW=}iBQh(R+yN-4DpCa?4C{t(?{~P^>%!S={Ek^SKm4T;_Ne%#`eB&m4i0LJ6 zSoNjEPmDdts*kx3hDcikP(+zUXvtn9O>HCfhNG~4sJmTKO8WMv$r)~#tfEd#Rx@Kw zzEW{qwa&WTJ+4;oO`!E?o85A(5#qH*q0=+;6gqlP9O)}k(`z!%W);{aX zF@COnIW|cRu_yX+Y?9)jIbK)W7O*EM%`SfB6?IVAeRkD1jlEEE$<~g_L+oZ6iDk{( zyESh+I+&WCQb=>Tgk)k3EL&UkPa!(%hbPfH#5N4wP0@G8cNG6HwH;k)T&b{b_NT~W zuZAJ}+Y6dMjE-9qpb>0d9kw35v`3E?dqeZOv>t8EYq>rr++&k9vn|}bMmP8CvBH|U zA#CoPzHg6>_Oc&yieE=nUv@=QqUMkr(W$j0uuV3vPhxiZ{ii#2n5*uA-5kDb=cO|JZ0xo;1h3Rexw(sO!N zMHrdYDEWkaPKW}?pdd22pWQGj+;EN#?KVXvG7{_U73675Pi_0?MV2*kP{mGrTJ&0t zhw{JuM%eK+tcckgjv*!mAnJL6v_ZO67olFXi-o?d$+b7`kpkk;6~kW9`)zw&&sO+p zZ$sn_M~gx)bvJ$7;=;{pa4WWPEmoAd0wj!vds5`uRTlvfn! zaA9-29`R(qQHipNBNC=W;l1oJI}HR9iORHs+GhGfRiF7B$8{^mmWB(%4L^${UbdI_ z{KRThufP2ta7_`_<9PyftRJDvYdSBDtv8(+S_m?bc4aTJAX}kyJH;z-E;1={oD9M= z62y`g%1CAp9pKu_nzgiI+7?$0cqdZQNobY)u)~*OSsPv{0lcrcUbejQ#zl(4c7Bje zPV<##+&sD5e$Ks}-f*26uF%1SJ*id4dKL!oOJ?RMcy$5O zEK(Olnu|lq891gJAs6z}hVbfMyh?Q`vCQ5`zMJs&Z1=*rt)6|tUknIeQuRqjt01CV5?Ug8O3obGxPIC*!tjcd z?3U(Fjt(xTfwJyv(TSRid26KM zKuZ=Kd0v-FDfFb$Y9KmYD0F2cB=Mpx5LtGWIViN0tziN2PIzYCman#x}1jqDQYTIG`BvPXyQv60%b zu>hmJC8n+Zp9uC(f7&J3e&cWmuV5^40+o6qJZw1qAmm3{1$`m`^#n3;P-WrSwJo9g zjw-$u16RJL9+1;GoKsy!>fyP%=f#NyroYg5FLhwOzkD>s#P~(H;fe@p!D(^Rk6A-Z zDu^^q1uec?QHYl2R}SeLR9RQ$C@i9eWGB^(v%W~K8N{tx-f)ui%S?4uw&){LBu|Nq zjF88uI#E{r4DOK*d-G@zzH*q4b1*Hn+kY1*8u^QLzg%yar@6k@h}ckX^fV;vlT~OP zM(#K<_mOq0HbH|1WUnD*raF!Z)_xSS+hI#&B+4rnWP>bF3d*V0tKhfqR7EuRXxwTm+K<_q*@RQn#alqH6Sq1jCT>0NfkO0ktA0#=3_hUVc#l}`&b3{|g#c_wo= z;@&NwUc9ppn>5@;T*oMf)6AZYvBu99K@LhD&3_gR2q_GQwdsR&3#p;zW{J63rkk1O zCc8a&Ca+;=K6^WrN*YVSX{m5J&8|$N50{qK=OxbUuS|>e+-VhTvI^+JrjfC`2y0~6zPMD#d!^|Zk;-nNfNAz;9GUc=fh^JRpIqMyhzPYGbU(;u)xzy)m{y?_c zEBL1;l77109lG5aFBFa>Mc*Ut*F8)88t<7sT;xFG)9(zTDveHPEjk&yr`2%{c~3&u zlU^z~M}tA&0#Lmhc-7!!Y~_A3xHNgEXAwXH1){q_jZHGR{8!`i{(zADtMM+>m(cGT z^WSyl??m&gyuQg8^V7kLl9Bqrhlia;L71aS}r0kAqR5NHB3 zKn=(P0r|ar8rKWg{TZMMtOj~s=_oy=n+J+O85jd`qh~KxXEeB&#z`T_+ek`ep~*&CjC9qQ5>J%?%jfc{r24_bin>S!q!0t zMy%a_8+QAhy4&x$-G1lo_PcktUo!9Hhx}dY+qYlu%C8G+D+VXy&`%c*O2+0;-@(by z3zNaUXLiFk#!r4$e$n9blCHK9mKvOqAP=~|lk$w)^dEU?C*~LL_;C;SIowW`WIRClO)HLDcfd(0gPwfqwb%by{U#kb{Wc6X)%Sr<2Y;H_zH{hFYX|R|o}bR@ zXD%|owS#ZFRllXXz2~GR63aXF)Z_DT)ZhewZpZPFv$q(9@*ZzBum%f)@|Gpo8^B?=LHBGWP>r*Q$G}j}+73PCdJ89Ve}tfoh}FF7f=}nzI)!0VD7? z>-xGchYa|n{m-ZT=&={G|8mfWd4bi}zn*2517SfzpbCILHKfpa_(KF`x#N4rOi? z6oVpA2ns+x$OE|`8)Sh@kO6vubPxx$Q>MLAyQTI^?U>p#wQFkM)Xr@HYWG$HwS#Ry z?P3#{2j+lTU*|ux& z2UI>@TDm6$jP6yLOULTk)1{qhYz{p_*dxzy@0r&gzQDxkNFo_F}27|#h zphF0P?m#EpS>R|e7+eGNia-r$0;|CWpuX;xU?(sUa34FeIrLvS<9ob*+-V1{x;%8q z?|;AeM-QDf;qZNmMjSQogxZ#>drCGUvy#R>PL^6_KSb4nLgS1%k_yVWjEzE{j{Ost+m&k zyW_6$@2@SNP;&kWPk%c6!zcQc-SgPEt4BXvcjC$SpPKo}Js%!+|I7;xsF*S3l2cy! z>6p!JJ4eoW>+~}(eZBCAeoJ=jyJg`|;&YeZG_Yz}ubKgy?!05i7sH>Nw`1eoS9W~% z#h`aiTi@~iZO_kNcVgSsA6+qKLRQlyBQkrQ85;P&$i<0&>^uIau_I19X7RwlNteZ& zkALBg$p??EIs34`+#NaMuqU5C`jGXLf-}E3bDyi*!r^7lFOBT?k6Xshd30p;#ZwNw z^lj&rsyE-d@%I%?=luwxjK$XNKQ-Vfg$DfBE9oNB-iXvQj9& zPe1U0p7~E4wleRQmb>nYzga$O+gCrm>u0Oi{^iU$e|hH1`^%m@w&9pZZ@78QLnohb z|DkC8pRA5tJnF0GFR6KRa#{bDv&&DpIsD)C4NL!2djF(9uAg(}6(bJ}o&8R9@tN8E zCJevsgb_n0T@@%Dcu{l7dwJu}`}qZ@o%83MBaiKU+^QdM2;7-5;>Zho4Lz%8zt4+S zo|19-?SpUs{V#KlTXAUj>z{pPzk-i%*}r4M$b+`eNQs{HR9ouQ+i&c7%!G4~JZR*} z8y`ROlh4a8xqs_xV=BIUDSpD5-wyn6?ffI|S%1L3qd$H0$)CO!ynF4-D{Jn0`ww@N zzwx{0k6H9q+nT1(7k_#F;q_%p|KtpMYUz}Y$D@zVpZoWJTs`NnI|e*(=-M6kKG!tw z?^nHb<=gKZ3t~q;n;IggfH(&nM0TV`_ zaoC888#6<{N|lYzdZEXF+I~VFIgGuJMhkKC(k`~@Es|GCf2kKaN2H3AMpIh_`B;5J+b(US9)K0+&znz=ZtRt(UB)SHzV+2 z>s>|nuQ>RuikF`K{mK8VzWkFno1gv5yO*yh`(XBlV?Ip#c+DqAK6TfIduNn?_Qwf7 z-L~lVwO{r4YM%Y{>MNc9Y#C6~_U4YdR~zQv_UoIk{_~S_2HhCBzvGq%qjP5Od*G%2 z_~!|y+&#MA=D%KY(cJlOTvau%`vv_TnVYxeLE5qfv}vFilz>uD2Fk%`Pyxn(N-!2w zgBma%)PV_LBA5gk!DKK6+yJJ6o53`28<-AefWLy7;BGJr+zajl4}duy9>Nvof=4~f z!+iqG2Ty}04-0S?d1%2ET0JboeGV)KZQvEKVmG|RweBmP;_G>(r}Xt6|6O{IAEtaL zZ=y$Z7l1fWzatqa*v{W-w7Y(OKW(db9m+GofrCBw$F5tGDL3@{&$5Q%CjIu7P9V>X z^tI`kbOz0R@6;aGZ$7o*p&)4GvWjvBW{tV_^sHlM zjLe#MLwVMDm;5nn;+^BNzC2)3){UVXvo5}2de$k=+?_S}rU$cbJo>4u_by(Vb$`u@ ztbUiimv#5)o3kc12KzQ`>Ct!JPY>>U`BkyLO?MyHxBpdr`o7V9VBZT1Pw$)atC4*l zKfAo|m&g9G@1!fo^_}pp-M9Mn8~WClPw#u~JFy-`qzx~O`e#;}} z{pP)WS-)F;KCWNvNxR==58TjicE9QU#$9lCzrH6v*l)?4`TgG8+}bbLeMP^r_3!pO z>d8(0{+bu;zy9tX{WnfKxc}0lWBrdBc3l5~hxF-x)J?hl|FEK<|6kudum6^%zv*w^ za#{b`Cywj?^bL0Z%Gw+HuMJP{|8&OP{YPw@)BnmV=l9<^ueJY(MX&b1Vb;6-xBhWc z|E9x(**E^FNA|W$4$j_p(-GOfPCYJr*pj6JYas}qSIOv2aI?%amq38CO&?DW8%mc0t5CrsmFlK zw1WrSbMp}c4t@C80gqjgIiUK}oB{hES1@47PtO~$Hu#$XV;5XHAZLEffcBpDfR=7I z40!XJ+Xp;*+g$@zUNC3Cr!PM_;NfuVfQjK(2i&=O&4B&x+&G~0o!A)wrD8);S|`-@mswcU|?bb6?52H1~xuHMuu0otQh|{_As_(r?dQoVY8u z{)^eU@BjA6-0?Rq$$h-xmE5`KugSeKWn=D+3jzb}N5TXDc}vQ`ZU-GP(E0JP10P>? z^1w^Z$QhV-`G|qnR}>GdAMopeKlxtb2X-H|WZ)%dy)v-0=bC{pF558h{OrJ>E1dA4Q!hywG-dVSgMPX(eb7nwoIL2- zLvjW!%Na4~tdoid_22rdL3Mv0Gw8ZwYX<%C%87&4{NnmStCrq2Xxqw}gD$yl_MjuS zJ~8N~qm~Rh)p}*nk6wFc(7?J4gIW#_48H8Q;lVc!O&NT`!-o%E-jqK0!K#x7KeTGV z;NJ#E3_fzh&j;^#wq3h?#)pYaRQ zjdz1NK>AWTdDQ~u>lXdn5Xj>l|0;@krV^+<6Ow6D+a-uT(eJlsYRg39|8M$IdFMAF zjr(ecdVy>pUWmR@FczpBM}smCqFeHy@CiWWt2SKiwIDiYfSF(x@XJ!|<11kG4_lsr zR@%>RLmP2cf^{H39z=53O5Y3~3%Dx&j0>7N6 z;1}I0XVI-Pz8k0?HW$nXD(5z^_Pdp{JI6y_1K)x;_cOs5AbM5i8$g(MiB|dL`ehs; zT(stSZYFLvDDWWKi$DcXS^M-S)2=f2X;xXQE>8!dT~N8t0&_qz{mZzPtgiw}<6njN z?L+TX9#qGs0$nHP#n+w6%iZ8U@DPyxTmV|ZOMtxmJM^fLqg>MeE>KyB@1;O|Pv(p0 z)%8T6I@Sn8ujt!dw}{r6K)e^d;=lU*PXp1r60G}S=nX_k>)Vh@93dTK0-w&&_{V}V zpd5&1LD$t_JeUGhwxU;l(JXpZ#?ygl6(nzd`HI#iAX>j?*&1CTeeq3D-3st7Ap{~o zwB~~X&sF*7c__jy1fp3qRszv2w+1AaZ*tj+&RIY@)YmEV@HYX`x&o~J*UHuC3h9fz zVFveRfq7sh5Urvw3PfWz$OOGW94Ji40C_;NTnt3B+%h0qM}sk70;mI`S>-$hNRLRa zeR_Rb{W`mhd!qHdZ>Kd7CBNTAK08)8R7=%1`D`5frLK;xHihj`? z_pbAC#TP+z7I-M}uE*lm0MRZq0?|DUi0-?AXik>nHm+CgNw29tO7GiHO&qf4BU~!*rm0%mlN5A9729%3ZXJX3_6s5`IDDt#TJs=4wOy`t0kKrwMBXE5X{m^T4!wZRorv zFb7CC`ub6QN$E)G#MMCUgIpgG(iR;d5CDFBJtK(LEFk{KFTUtnbPJ-n8033?(J#MH z2*kV5pbV6I?ik!kAl@{BDPSs?4(t9zPOjgkpQ?U@o)O<31>&R9n*o&e zG|!b^vZi~IxBHS@Ju??b_EvnicPHoL`}+5wLwQjim0!t-Oa`Js7!RsFNH&BTpm4dBKw*lb z>pGz4M7uB*h-RfLe);9=(>sr_q&oF|%gTS=$d}&h)8f;iyeiMhsNlK`s4f(P0x%jB zd465XuX`mx_f*!RS?)wI1?YW};~7A-3NwLZMP)k|sB9O2Wncw(?|)XlyYzpRZ{@$# zgZw@{3RAw7|6GviK{Uyq4q_g9;l@EWCpuOD z;%@@afmPp3cPHL8U_r96lPPv6Id(_SQ2%7=KPoJl{)_dgo zayAFQ>e6!XE&TQ0_y5Z^?WOXy2&fJyui}wtm<~jj>Z)I#eElJw%CGy(DO>C z6|4Z?k-z^AdOO<()#)anGFO?YT$E?!e-fwzm0+yrukrljy=z~Frg5!jMe8h}^i;0T zf&YbaHT+fCEdcXCa@kGgTKN`j6`&Z52BNVPlq5mnKK&|JpI()%WI*)#bW1jb-OG9H zcdJMLN;&UQ-=wdU7v;;RP4tw3Jdo+R*|6m<6PJbgl3Qz(e3sAidH8 zUI8Ee@bdPr$mZVSnsQC1PjvY5Dt=A{Q#?0WZ;BV9bsq5Pm5hnsqIdQG4SIK>Pvs-p z)IL;$8ZZI)G9oUd z@%kkoey{o0_`Nsz`k}&&o@*sv%IjQkA5eV}ZIYo$o-6+};L|w^zv4=+M5}ls*-~1| z!3wbIf0x!hXpyQ5>TKA}jDhJ7)WKnsa z490>|Fxo>2uAs0APze-AG}n2U;9XC_6_1pb==L!O|D#|o@a6kC{NlqaVAc08^Id40 zPnvp{`0m#;=^5oybmf8qkOk5`HxD<{Lq4u(E(8i!e1+*5g_Q%PBRQxBk_qucu6Q^V zOb0W8@*$d+0oCVK|2nPaIX&;!7o~YGkW5NniSOe<8Bl&xK^#Ou*z+szq9YBYC;21z zV_tX$uAa*RiZ53@(Q~>k1xjBi0(C%iPXj)!%H#i#&fWFXE@dh`aUW3q();cPs$=4V z%2~3kIE%n@K)Pi0zs~F3^YHJy-Yb2QA(iV?&-Hc6EUrcGTrdxaUb&)K^05;9AE9{< z+Ehl(*fbbjwT+_u@VT#Oqe@3iyF|{qNMBO55aBvatxv z1EOUHkQ_;mOaaq?!bJCdK(tDah}IvF*FPk!CSPsjPvy1%h_*REG>DcOPzS1${FCtC z093Y;E58n@%*7w2_x2A{hrTbZUrV3rfaseF%E4$*1WG{(DDbX*SG11>qFZGwx~F@P zu9^wNv-zMENUr}s&~M(OdMuu+PKz$drOHG3YXqV}NC%l9ALIf*Tw$dk+Y8Ub6~qU{ z6-EQmFIiXHAU!eI1I^MCtw7}|K8xRenM%fz^~rlb{QJLeefy^8 zOs4Uw|9x7G-djXoB`bc}HR6{njRg~c>d;g$ z1E^f3Gev6)SPoW#x559xvNiczK;Be7%Dc*L3@8I7o?moUdSTVLqFv=Hnx!{y2GfD$ z`aU2&NfyM1`9S;=A1L#0lBFN&US}Uobj<_Glkz56RN0k-LXhjZ(hWY%#rO+=!iqe< zt`%MiYQQ9*G8eyQg6Tl%>ssah99aGDqjeAZ^j_6F(KiL;gE+|WpmJ1sie}N`-%G1N!TLJzb zd+!!%Uw0k$o&Py|pMAfcePlUtl25S{tBvZo#ZXfW{^Xig52g{t52CoOAbwDbY4sqA zA58f$!WBliB8b)$w}@bjA56)EDXuY%XpB)?KbY7piYu$a39_4}iQA-D&dvS(#+Y;M zwf9;3{Lk(GegDf^=ghU{b<8=&9COUu*mM5wi=%tHOiyJ$ke}ivUZ2B!9wT2_w|}je zitDf9R)&7{<;FGoQ~AVpXdn0AVr(b!lIABc@|3dVr!n%c;nF~yrH5&S@s*bk*QmQM zQMO;fSYFF5K0k)}kz%xe8uLlak7C4Gqudl{@ipx)VC3U3VtyU-+nC>fZ*dMDlh-Vl z<+H5Tm9pfcnD4>-5JucSfzj^=FyDpwe#}QOKZyAl=2MuT!h9Cgo)E6D_eLrT0`A&>!#ND_*hWQNU zXD~mDk)MAB^J^G!wT}PJyHm#@L%&3R;ws&hE7qswIxd^-&9Z&{-6`8s$kO0dWrcWs z4)b}8by>|%V>j%-!~8PFxUUeNwu>mYbtX^!DCU#J{4ig6OK_k(=DrI_#LE6(Ekam?p1KZ!BD_$oJl38Osu zA2G_5U&s7S47ff;o4N~(psRWRBIc(t*2{Nc#OvEI---F2;`aL%rt03Se=oj+;%|J@ zNuM9Vd=_JWBTp-{eikEtfcss__SA7ghAKbA(|%rlYqznlyf@`~Dm)wfq`O8Oe*shb ztzX4%oBA!xD~4;}W*hth=98Eo$0$cWk5PvFHH>v@9Qj$f@xNhS5j+p@Q+ECk=KC?9 z#(W0zQ<$GAMjD8({A=ARKfZ)fcD$tc9^j{Z_$cPvFh5d^xQh43F+YZpZHNHOxTH24Y3=P`d3^Gld7VqUVkjQ;(% zD3|TZGAhr%fRP8q+pw>{Ty=6+nd%%Z#>&6WSJ`2EvOYeC5kLB>@HhOoF~q+s?3W>4 zCw}$|pT>x%b*Wsjy@~5DV&p+($tzH&mNCXK_G`a_vChQp<>e}GE%#l&2l#y&eEtf?x|9#CUvdBXtBGTSn|M;5l8#%TA$+ja~SHg(&Sb8M*aN)<+lxrpI^-O^IaHaN-?ig-Tghv{Uwa!mJeZem=6}a_`bjR&G~9@zbg0zUy7Tuw=&4=UDpV80$_sGQfai7hPTzzo!1|yY0`dJI`dQGIRXW$;!M}WBxa& z15DTR7C1cqd6ppF;o}+c<(&BRWN!7>tL@?6*9peMsqp-ifAjl{W4-$v#Q&rJ_3d!K z{eR^5Gk-h3pZvZ2e(e9s@7w>Ng#W`5{)Z*}pOo-FF5wp+KI8e!rK7adr5AO&2Kfm|JJyPdnB$M66tcf?ioB39vU1KJg`uu4u zJB%QBzR39Dd%qcr7f)J@`WVM_|Exvl>i19Y;CD&de|!}00zd9tZR%}{Ta>v5^}r9W zvp+cUHDJThrHXyDa7-KH@H%b~$SNu5T?%g;nVShg&#rH~92JIq^E$&g)n4R7{}?_?n;{qt8XtU-=xQ@(B|wPHQrCxwoh?uez<(A{kRQP z8B4Ty2E31l3Z}L1Tw?6c?d#g+>$vR`Hv4ytWo@UgcKcD`NO#L6 z4B@q5>R098U2r+Z=PtPXUGk{qsCZE1gQtyCEr0uaUtDUx+5T3%#n;TmrETtuOQoss zDh;ipYQ(9HgLdn-O%GvMu1fn_Kkc&Cw$uLBbd{c!FX~sG6CaJk)w`5KSk+XVDqeuN z6O4+-@mG9=)yARPpNES)UfYmu=4HX9E%&QkeiNTsFVe03$ZxgXDg#~?T#m=!y8nKu zFY&SN+IVQMZAW}&n6DA1ZT=2!+pYXAeJWilk5^vvTlws(*xRPI8R69OwA*yG3)``r zCzoeM$Y^rQfgke*;)mZq<6UF5j#1SjC}!?}CeMuJWj~l0Fre zHXgzhUah10wXV8gbn!XKW4v1Bbo*OrS?j0Dt@?c^F6LREIv%R^UU8`3E?jE;w!f7| z!mTpC{gsXtpGwP`x8F)jak|fV46w~(-af*!&#gGrZx=3>>DaXU+cpl>{ybbBIv#5f z!6F_$Pl-#He3IY9N1Uyf%ys{kFCH=;1JuDI#HYl?_IYgT_@}nnJr-#@#-;X)^;^ds zwq0o@ZKR9qByCgaB)qQ@);98*d}hDUE{|nu8+p#Lm~fBr(A`d3+kYFMV_e#0&|Z1I z_F?j_c^=Ck^Y`h(rNR*(%Op+e+E4rI8ji4~)r-VMoW#d+NXwe1`D!XXUDrOQN4t)# z-#UIgZWGd}wh7}M8}T#FDIT+ba4e>A%zs>tS}$!}YJTEV%^zW}YuaDIer$v*zgoU7 znpZ#Zv%IIqV)|E{%=@1o8Bl22ZC4p8U2DCF%dx3-B|cxi#R#jm9pN1t%W1u}X;|&Y z>5O|^jy9cdD~DmfQ}X#ezFo$3%;&+lOL$u*RJ(0dy8GBJ>)54!@6zv!zjgl&Ol=?5 ztuk2C9>+Y@`dD2zZhxh@`B$9GTbwkto%pT&f345@wO%Waw`CYf4xTnnHEsPK!;sFE zCiQFis*z4@9ICy|KW6?|Tr7uqcC|TWm^7+5)NdCq)^XcZoGRUG`P<(vT*T)XC;R^U zjB$_qNs1P{EWcG8>bDD*+6L;k;-x&4R&5-r{Vupvev{8?{`K2c4)bc`qTPBTdC;h) zt=}#f6^Ht*xcC*mZS>gGe&0Ag?LFGci5)mOnlnLy77S=o&9YsTcxf1(l!;Rx;|Fp*ROR{)84gSDh~Bq zaS>)4R=cfguYLY0T&x?7aFmPx_mL6yKfoya#j)a0zfX-z8=u+^D?O!^IN5H#dSv9a zic7_(mht#&nZ@VWzxE5t0rND!+D4_HkNj47&GzyY;9ami1aNG8phjC9C%TU|RKgE7*#8I4nn{V6Hvefd_yo6Vc{84#Bntk~eBkbRK zj%nl8Wf#Yak2oEhO4r-UVVLFUf?xg2<9RUd5?*zK^_%1Z0w zuP~4KvjVj~mFdECJa(M6?G}#h>e#gT#C+N~wC&#@%>1e`-`YRcFaCy0*LW`D1XY^;2p1P+X*uu%unvh+G|ywab2N7Z+hj-?nMvCj53?9NSH2 zezk6najN67&a~e1vb^w9_2hD~zu4RootfORXdM>^SeXyO!e^7jY6F zagj#tG{^P|<2GFEck6hv>uXxeP{%Lrex*GgJI=f9uH`s|3*ZBOJI%4Z!nh3=`=~A) zs^494v41^fY9AtRi%;8FH$K+Qai86G*Kv@2K-*N@9FNIswcK6byW-N$_t;*`VP5UF zs=YlPYmZls?X_P$E@NFMtNq+@c-#GyxCpDZ)B3G-WxX7izwNH$s^^U@+hsqtS6s}i z{j}SS5V0c+K@$bxal*^=2G*x%afesP}z^aXhDf`ui~7gn2(kUGzVJ`IDG$ z!Tc$VI_rN1^A_d;ccf~pJ zf;-Ds$Az^le)W^SU8ctO+fGw)@GBnG+_g?f(pf(9s4(ve>oz*Pi26NMzRH90VdX{n zvGSyRS&jTzdGsmkw@p9m#IoL2$1k#e&(6N~y=2ex2hBHskMfVo?^ph)_@BKU(a!Gs zotJd$=9|BR*}R>PvJgg{zJl&AO6DI zS#RI*c9#1uM)}U(`Of11FK2yz{a?xOZ~m?fKl@02zxzKw`IXLRXJ7d6+1bZ2Z+94f z7wd0g{r%ptkstpH{J;3czZ`HL_Ij_-nuyrquP9sPAKAU4Nmk>sO@u zv#xE=r|S9()UoE19Y!Skx_(8fI>we+&u7$km#OvqHg$b$`nrBq>e+H;yS7b#@$GI? z+w*Zf>-O<%r@p^VTD)rS{X8K{{*4p!gFzW54&Tmr8V_fTezdc7hwwupsd@Fw9*fwokwLctR^S;fT6aMnydwU(;R=;<_^?CRn z*J~HA)Oy|1?``VvonpSgSM$Xa=D2)|zKvG9__Ynr&ZoA=Q}`YGOI!0u`n~gZ z;`;@@U+gdy$G1M5W0UsxY4E)Zjuf|fj`2C=t~|8IRS<0)D{fuiHlEe~wD>j%J;ze< zXn)12%iIJdzF)(%ajf{fO`YCm9**zLa@^hL6rOj408SOxyW&}C@bch$M_i3o@Vzgt z;{4v=d(5}@z_sA}5M19oeD8_hQS^7--uFlMwZAv@dxXF}o%hAD9sl9@KD%crpE|mI z*khja$0UA&w9?NqD7znv%M%o*2k|abpw{_2Q&+A2jDqr3KE%lgm|7#d|(y@$sbDo3x z`ad`2%R3-l+va21*kfpSs$Jd{W-njvN~u2Hi=aT2FZR{S5@pJ#F#0=B`fkiGVqX8} zrhJhml|ITB+p6vT-F#}E=KIjRYuT%;yifTZUl_l_xKCQ+KCjHu*YV4#$NcNqM&3Mr z3~%cxABXqu_m%>c=iZ?h*53y(RkpYWW4QIJ?zX=R_zukLIi9&GU)}*%ard!()i(B+ zwjRLl@#^JEFJJD#E-ziwwtP{BC_j`h${NQn$`oZzTh{oSCFfH9ZpASVKP!ki)vGOc zy5);9<-L6B`01f#sP+5M^p8!~mdTIB<*{Yy)4%%^XzCnB_&%~%ro4se*LOenVFxUA zOkUebdpsfS8v0>>5szaf^JstXn~!C0m;XNLoqrg=rhndi=NR_$=u_8rkJDARYreG( zs$cv2y!nyg_M7$hlI^s;{l!zD>EB?4f0yhWuY3w-a$ewA=9e*lpGb~ZK7jc!=EpGu z;(Q2y`OWc+ze}!TnST}gU&8#ynEwXz70h=N|2Hr{Nt%EAzD!E`7yq=!FK@r?{+036ve*hxu`gvSm!1kHI|3A&R8Tl*WA|-m55*I*HS+ACd0KYiXzu$Q%a{A6 ze_olDKgyU>kNH~%r^Ydc_v^c-sQ2FcH#~<$*`kbbj`RV{hcS+6ejM{YnAAFUeB*jc z9iu2qeg^aVm`}*auk6#7FR5Smpa%KM;@@3x+i!Qs-FzRL{%*PSv0hdRRQcj~<;{L> z$`|K-KBLiSc6m9PjV>>z^XYUk8jWZAjV?#i8Sd$HGM`K)v+;O5Tg;}*)yn_Hay6fC zd`6?o$>rtcg!JRtY&s{c_An%#O($di$J6n6G+E52v(0k3SS{y^&0@aVY?d41@;}5} zUe3q}c>L=}fhOaLi6`R`$$>weOgEePYPFg#m&@sVwU|?+F`1A7DW{ZkHk;_4Ovjh_ zO=io*bUp_WKv0?)g(h2{h2>vv&UvK6#W{bi0m;S1z`wzezsq4A=^69zIUigM{WFqS zfIfv-&z5AiSX0z|@ShVnC&qL&pGjto$~m4d=kp~cUC!n+FkJ)y(oUri z=_kubuNzX2E~k(+s%QeaB(-i~Vk8mimrK%)A+xj{S|^sYxG#0{@Pf=^c!9z!scOt> zF`LY&YN#rS#}nfMmI7;!>Veer`AS}q%;V8~Iw4=mzL=48IRk;kqLTR>BDcvLL=O5v z!NGIMd^s2mMv$35@H}`xc|M;))`=KEMk{$V98N9=gYkGc9Iuy)HSW>n#l>(u9E>3I ziue=!VBz6#H3yT$W;32`HZ#6Hm(w+7wHfpEnJlmqK27EizxL~Lw%Uv$KE5#80Dyzh zVsklOZPvIAznm<9mwYJH`Es?PJq4KIbh#N$Xcd#yW`)%-Zp3m>m0n z$7XPQ4V7jPSHf)^&#|K*g3v+)RdW~%WFWSHxOf@}0uPK7-5A z3U*t;{o%gkOVeE;jKaOLg-&Uzi)^Y9pEy$ll+XF_5}2bEEi2r@*A1VB8)3LYFoxY1 z6k8z(Y_;KMT>W6ra3f(N|2cj>3x#nhYj_;JK<>~-k)lcPC2Sw(ESl(14JqZQCE6&> zue*Biy%?S=42@_D9Vw8I;B*{x1yXr|P@2z!%MhG<9!Qo*QH!9j3wJj&x**x*1#B>+ zDo;M6XT&)l4EfI2gZXMbS*_zaAI{c8iWTLoX9kYnWyI+rkP{7obr ze{^k75Bl+ESIS>J^98IA^!0kPTJwpf8}j4$b)E%?Hn}fJ=4*~O34G`iwP~ft-*`X+ z9me0~l)u?%I+~6xoh74_fZ-ANOU)wQX~$)WJD#%?EJb!8W;&+(EeS*qi~P3WkciAD zG;j|Pz2`F+BWd`%gp2YE*&qCzDIc3hF?q8%F+eDE3@Re%ri1BlI-CvXm-FY=!%c|6 z;-WFM>vnvEOoCTnlzTsu$+L^W2st%+Hke*rj2Bm<`BgmUm$NIJSCd(~FGq{33GV4) z+xc8vPU-VzI|TI3=X@~U4ro90*1O$ix1;CXTnsKZ3?}G&);mPg4mr6)77_dE>bR{? z-OV4E=3g=Z@;v@vgk%Os+IN6k1yPrPg| zm$2{TVsbu-?(#5yUBhR#S|rtw*2!pWIbAZGqw%ExcC+rD&uvXZId;FNwwElWUCPbk zls=@9I;G9fUX(b~)BVFuP{qfNgGMS@#={xHYtCSNKIYHCvLoF4JcHro3|^f&Raq_^ zZUB)n2d$9dIn2kfo+inVo>|Y#7PGxVP+u`aaz?cx?SlBkyBsmhW(G!i!aagZ5vZd} zhA)?MM%{FsG`g$J6*H%+Ib&_+3Txz5OdZIF!S~F(jBmctQIKvyVHk>22FkJBuD09t zX3H>rOQE*wHGSM{ikVzG9a*nokJ)_9JYqos=bJ5aBO3~XQ^qFqrm@c#+x2X+ea0Y8 z!p5X&KUlP54>Bvs>Ece;#=v<~4i&+j2SjKo^O*%>L}lY(=rkQK@ms>tqrqgfcs4kv zW2ajmj;@E}$u)D+-HwJl7*BQ#%XUn;cDvPP$FvU-wAwNEXc{;nyX`ie7nkE5lc!yz z$7_h4+H2g*Ep}sIGoOtFCR=T`yDi3Ngg@ij9lcz*8EoztZ0?|BxS2DN{}OkGhiB_G zTW@y^??WW&Jz1`I%tm&IrHHk@A{@LnMCp3YFGh>Oz#-*ibG=?&pASc{<7i2r=#b!g zFq$$kpRC}d_4Rgjy}iD^W`KWn4P30d{ZODaAaVX${_J6a&0lo$bo4V@OZ#uUuk5`b8Brf~EZLL!GJ z%=##K4o+r@+66ona$oW4m}yN9AW1r(XCeMuoe}H_gVM{UAb(!@Xai;GAYq6d_~qcv zF|ob$Ec&Ju(s=>ll6)`_eUzgm2K96ai{)PSH@4L(hE2_&$!2u3M71RbDiSz{O({QN zjGHN*=i{*ZVv5P0hjAc8M!<~bVh~dF9stEa>P4kP=QP1}PsZ`C?=o)O%iu zZ-$=_ks!H>FrgdZkL54^Sm3&k{AZ=Z=NzGfz+ODNP}&(4KC99>*oGV~v<8J|Y2 zx%!}+8Bw?=OgUK2TC-Hu)T%QQ`O?Q}#wBUswsa3iE2zM9WE^f5ikI+@%Zu#jM!!4LL_-uY{*_4tg2Y|_VOg|3(<}hOZP2-EZ3pMB*>kHBwqBpBxgFnek-F zLP7as1)@xyoQ&K5DYfBxkB(A6fM?BwqFE^R(rO$_aC<`~O-&S2qk2SgH&%60sJ44f@*rg)xD6|phX z4q=P!?k(jgCb_lM2;3ObI5M&I9~)`zV(49rvf!?!T?Uf%PfvlK0zC!ZRSNVn=v^gu zpIJ|VmyQCx40!3Pq%TlUfp?7pefxjcNZn`DQ{bhfz++{=d!7EJBx+x%o&r4u?o5Hl z%8)x})JN0q=3KW^YP~aX?xsn17Auc?^!76aL*)t^qvAe1$qkf6zD0?Q{XkA zfODg^o{Bmt^_;=i0KGe-@O!9Csi*TM;m^+((1AnGj2}cSM^kiZCxgp%=o~N6xSgo7 zJN0J){EB0>7*F`gJZk0qTm{uDH0e;sMNbPGdcbIup)fqWM77u zpr=4jft~_A1$qkf6zD0?Q=q3nPl28SJq3CS^c3hR@Y+(K>Q=gk$ZpN3^UN;JZ>ak> zhlDs8z<~mFgXS>B$$-OXz3UC3K=2*7))Oz>FXY&ghTWP&^#mk&+oKc9yaE292Md%9vs!-aXI@K9^QdR8v>{9wmeLs2k=V{#Us2TOONv*M)8OQ zi#$8B7K&3W(*sn&+H=;5$JtpN2n&S0N1PtSQ7HA04>L5p@kp0Px?6Zp>9zAp~hcwdxb$J_(wDU>ujTcA;(D;(5J z_*qFWlr%hG46T(a!jy#Y@(GzBP$e1{qD*8g4BtftS0SX8(DI%++0nGys zaZ{3IZ)hYWcX$;D3Nk!O^7ug8mPdrQJt~ZSoPajQ0i7j^6;}{IB$#dryIz6lmCn|50zCzK3iK4{DbQ1(r$A4Eo&r4udJ6Ou=qb=spr^nKrN9lnfv((6s#l#1s9GyG zps|ZqmjrKw^&W2?1v>YixuY%hp-==Ymb!Du84qQrZm(t4FjTV=Ty&pWo2350c=}cuA4m=VMz1vVu11aC6+3S#V4++U zbmJn)*p_GiUrXp+iAz<Q!V0Fbrm5|Ou$)Xd=RRF7D^nN8kW{UainF$Z zi)L47-cS$5;@W#o*5QyI!}M&5 zeqRbIxJ|XzV0u}YXYUcR4UgI=GF%4Li$>A%$R={qgJydpMylS_B%$t79e&Z~X=}*H z{f8bQ3#fs8BI`^KDH~4!ZO6z6Ej^o(WFH5*K80MPm*mDmZp*%S26?e~AtF37Uvit` zg!7MPiw!<<(R@Wi=XUN9*ZorM&WC3Ky* zA&)bexGRqv7=egd=}^#Krpi5+Tvbhm2vTBkP80N-Oc#r_w|8@o<75o;!F%h=XUIj) zYT9t1lXsG@)?Q6d;?0JFQozM(lh^;vxf>j`IL`^SF%Eqia{SX`If_iDb8flC#SM>~ z5Jh`HEi3`f*W20UXut_k%Pq%9nQFP=>?z96xl}WyGX*RFIVy_lX(1V;;Hu>iJx{2s zRE8D~BjRZ+>AdfovLC^DB*6O?ppXA5QlMd*Mic0fY||u1N+v-Nj*p?t9$-B`r-A$! zuzlLsn*t4EH~hmG;V~#Ta2kH54}BcKMpx-+TFPSz)2Hnz&{LqNKu>|50zCzK3iK4{ zDbQ1(r$A4Eo&r4udJ6Ou=qd1$Q=q-q9%qMimDeqJH!E*EYzfyLl*2H*yB7{m1{|jE zU2g~lx^I~f;7KjH3`y-*ktL>qp#X*czw@Aem;To#O#DT7oJ}*L7Nfjmj2W(-p zA<>)>HJvpoN{wZNE=S-8KLqXf`b?C%Ek8M%NL36TxS(-PLI!$e$ptVF23l;c6VO7g>AJqhf%2TDHEAMQvb&xo=l(xs)V6i1a+ z|6m^ro2)?@Ig5rAg(*-2+B-Pwi>EnbEEHyvnI57ebMG^vhC_AJs1sD!EdIOs$O%vM zNW=R*QGxeM(#L*01!xPM{a&8krk2rSUUk&9 zhFDR7Nf8^bX}=%Jy6xW%zr5DEQ2blTSIB@T4mG6a1g&TCUSj}RS1LUoAp zKd4oZoFv2e*n2j*>ibU>gKZWkv zyPcn&biu6xUfkFY)64OTOKC(QFMh({?0}?`Gc_hF_GwhK7A6AS$ z)vHB;;Yhj9(=cSi;pufL<9 zdPbB7*#zv)GotE>a@~zVi{rQ;ch-Ljbt|)TJNx-(L`6>SqlU$O){=Mexm&(*MpSGc zvrZ0xJV_Rnm2IBwOuLbvTe?+SH~hu#53Jx~*e$3t;A z(djdyF3OF37o*Fp>H!)nw>;u=+XJq5ZuiO?HD#)54N87T4v&S33bFlcQ!uG?GhbZE z0Hv`muhg?Cj``IUVa2h)p`H!5ssVsgfH)Q^n%;7;+wD-giF2UBvD+<{=CUvZ2YNPZ zP7ng02kF^lBS?l1md)l-R9+B1sgc-d$>32Mg@P#_kO=f40HOSYl%O&cAJJ@i;HHr_ z;U@C&jHr?XpQzgEROiJef2dY-!=ok&ts21^Lx~}a`(y+TjY?vx9H9+Hre1SWD7c$`(mX;1*1pfR@DtkwWr zT#jMA0a0|50zCzK3iK3s$tiHK*M7kcZ&!KU`t3d=ibJA01K1j_ zTQr9NPX-)D>s@aM1-f;W&WmQ!Vo}(O8{I0O)#C*?HL1|3Sy66S?&bv>chVi;j34+p zptzqKTQDt)dI4nV-g#K|XGF1C9zLm>5yf(^8q1yX&3p86$K8GPl8JlVxzT>RhkND+ zF;o@7Bev%S0LY@v1i%6^JoY)LdO?!5u2S2B9MoYricvgj4o!@_%}3nF0T zp+E;7hU?L2GrgO-N|(||#e$-cR4n?$IVayxrA~e>tgm2YKlGG?el(^NGay(F1Y04Q^TCXLE-4s7SM3bH!e^=sbvsd(Nf{4j=Ngp*89(XhKzom+o=P*aPtk9l_ehO4G=8 zrhN0E>Od~gYkO4vC0bO*Q0K?!y4zRaWrSm$r~?HkA&{o%M3I2U=Fw7tD)J+Od_@Y< zv^*l;Oq3w13Y2j(o|zaUoW9bHXe!}&L>zRH$^%`WLMN&}dk8}I&+A8l7kKtiJ(-1u z{TRCCSQH5T*+Y*Z&;YflA`j_qNf`cypydJ6Ou=qb=s zpr=4jft~_A1$qkf6zD0?Q=q3nPl28SJq2ES3LNf7pH$nqZvY#q-9Je6x8MDG-D}TQ zcSf*te|>-UP*oRe&K`1~wg7J|H}!dLZl2spuO{#8f^*^ zai(DC^U&&3g{K@+bfC{u?h?yp>48V|)ZBN79Pn79MxW;jU6Q;@41Jz@#*unE%Wa-< z#F00q*N{FkX>Rgq=+aej7#v(1qYj_i z_|m0EX#51bryo3AS>DhP#CwkriAQG~8Kvs;B#aOoH48w{6nIi+DDuREBsGTFL=3%( zx=zR$69GKqk-(=WDhDSiyGl6CuZfd>@Xb@`^9+ZU%Cm`{DczKR9~<%$!pU@i_#N`RaoWUAR>Jm8EZ4lP=8ju35_ zV~@y!>Ln3}CdsY>oQ*j!2(LMpNCrTTOafpCWN`iC@~A;k?O5OFM>@RG1n80PDbQ1( zr$A4Eo&s+u1zhXXxaOj9ZNhQk8uJ$BO?ZCqBC+)QCgDGuFfC*Hw^)tOX9JEBxUu-tB!F{Jg92@RfAj(=bf{6stJw-kZU1n_t1eQXoeX$F zT=oU3BdIZcw0$51;w_kBA8y9a-1_uPoZ! zNja)pC5_;01Z9)oU4H)&`Nr|F{yyN)64!5{dksJpn#0nZBimTi{SBdYuiu?Kv)wgk z8lp2y7FBCnRc2((p$Bru@`OG#3dw4BN4fM+L%Mk6&scQc@bD)dBvDhDB$43s?@lU& z=65GY9u|7)-HTO7MndREjCrT$l5MA9d&Tuzlxs z`~u~+-<=ExGG9Ie4oPjE^IPt|7MFMVfrbh{&kR;=rs_?pO64xEvQz=(*fM|o1}SyN z@1c+|%7(0OG>&M1i&FWvR<6^|D$eV)TMk0}IYl&SDhx+77aK4tOPg%!bAF(LgF2mZ zgEFMVvGQ(h4g_B4ST1QW9Ry#yKT(Zo3P5F$x@jA75gD?P%? zUu1+w_*r!s&t_8-WsLMN+*t8Ml=$_EUhsfjq&y>^$V2+cNAih$B%jDf%4_*ZF)bgh zFh1%gUS4uhHt_iI(zB_*JmL0e^w4G_@5^3IhjV|b#KqK8Zjnag4C^Gc*!&?0zZ&6c z?ED=Hx0b8h#xGG8T(}NR`N7F*wOmNf=>$fY(orl&=kwuI{kY})GB4-mhHCWV_(jUR z=*JC5vpIfbHsEgS_4Ja8C*Q?t&K2+D_+<=Ird)6B z`v|WA1)iL-8$N8|!k^*i0xbvYqRr^=7x56G20ei){*y)lSCj$(8q9@lR_n9|3Cnp1* zC}Y8#%;RLh6J}nuUjP|MH)KB<@PwJaOQ5>+l6w8PcZv9YHVp+j`LNNCQ?VnWHWrWI zEQuRSBQHZ(8QRFI5;b)I-2Ye7nx{aN!S#@5ck7;Agnko=JqDT$leDPu5K3|Ch!9OJ ziLj);0zQpJ-GrhaS1fnY%R4@oc^dhrqD6sdfet)U<*H~*pba4^O$^-XJ6O;fBedUc zcw{I=rPN3IaeEJ7h>Yq(02OTUXp#ih#%R>xve+#T6*h#>#OUzI@FqsRXFWWupU3KV zpeLk?#^oi)QJ_qM`bcAmb80<0v?#$9{Wu82J?l}_t{}>E(2qa&T;{Abs{sO0U({Gw z{rKpcHm${`wK~G8I_AM?&6GpFme=HK`CMAb=fT%}>*inRPh~l?9uM{7lFtme>$%MH zxM$sR6^^Oa;FbdiDseo82M!#ys>`{|C{L*@_lR?u>ygZZ=5XfQ^y3DH`f>7MKIfBB zwchv!JKykqoJX+Q=@<2A{aV-7@BQ@S;+$pcqbkL5S-N#mohr;h^{N~~5Sle|I;Dy2xd!7)EefoLM~s^u`{2}V3(dI3 zGgRTymD+DDj{s;cnWSjXrALL5tuNw)eqCtLA<`mIQMXH%$2zBeotQ*~0$4XRdJ6eF zyfkCHw77%F$G8On15t_Vhfl5UU6L4i){%Bc``JP!Rj zwC>QwMC%T1WO#GMQP9wLFj`JmoH@5%4afssI@!lOLJ4m&m<=bF>hPhuHz5x+@jOWy zz*CBXR2>m(cqXpg$*auJm_i-sJnjGDq2h;ssjq3a14|)1f=Sz*p?MSCvvHbTLo@leG=&4|56lu|vK;Mb~=p;k?JcnDc0 zC^0;4&h*5niY+%h3^lxokxEzk0Q4#JJD#gwN0~bH>(IOFRK25I2mN@mP4Gvm>`3rw z%bK+ozC|C$2q@1{bsfIx`8@r)kf%?eUq_Xp%#vJW{T=9M9y&aKt};sM*Aljt^MF1)a!y3a6Ckx4E+~q9;eO?8{2LAbr%GT+_l}G4c<*@c zZ4aaed~dy?l4(m${W={j{koJZV7R!F>2$^|nbm1^+BC1M`DnUvbl^6eQP~79ueK=M zMO0nObvOZJ%7r>|=uRaZl%7fAa^RjP?k#7R!_))hV7t@pOZj0Q1Ot zQZw+!I;GqG_|x*$Rlzx@qvheBR4s zo%&a7GrDJb<58KSQ{9jF-2rTcMn&BKMf~o78!>y2H-Q43e0bk;_Ua)wjo_@?)O!lv zO&^c@U_vZS(-c!rpiKC<2f507G*lw?)*QB@dhaRc%lL;b*>d%=(#fuIVOZl&5t!hM}{AYbd+yj-smTv~Lap%*-RoAp6 ztG=wqe8&;yKO5whU0tK>@@dp*DdM{r7``X^%@IEu<=Wd>QH zFw-OT0O`4kM&RvwfT4?4UTns;ofqTFw)0i8CmnFIDUs9Hgt1!T+@SJ^>J?gDD;{VlU8S*fmCn*t zI@=j!Wp4~AA0HT^W9uB61&_`ULD+niW+U4|eFu91+2xsHV z2?CFU2f6qcO;+>~X`z#O>LYsfbJ0g!%~q+8NRiL}xIE%e?fSpTk92sG@$Yf(DbQ1( zr$A4Eo&s+w1ze+dtnT>T@x8wxc?;6>yowu}U@Fw7Y!BmtVwrw_7{FIQ9 z_hP-h8u5F&F^6<-uHwjVj^R@>v>trnInCu6r(u(W<$Gn|awY8j8oIV}y>4UHK=)k08vUy1o7 z;rmxvznpNgxa!=ocsb_AiTKqnY59rMKEOG~KERpAj0mhH`0K$l=gy=6zkPrQ?Bf#w z3q!jfkYz)Kn=Z-=08Tv2oU_mm0%CuKx$2akQc;%ra>7rF1(~NGw~9n)6VRPAz7PaF z+L>n_)0+XgensX@zL^IL1por`qX5@1qEsg{2W9S#m`wP!^rXSar7r>?7=DIUEDeC@ zq?nluc3j|7@(Auco5G?;0VgxRe}I`6@EmA=n0XDL1O~*F7*VwD_58YuUe?v8<%jmL zo(mae72RLD$C|lJ7}RepHw&*kQZBj1VxF$K$osCr_$aUW9b8>-&DD#8WptMUZhB+_ z*F18m05BHt$Rn32T(h9IjB&%mBtmfZP7Dfk>=C~2`Rggxty~{ug<&*;+(C$m7S?yT zp8_}6A+QL=&yJ;qyq=azR&e|s<9x&_RSAOmeW1#r9Bb-vwy)B*m6Z;dM-o#du6k(4 znoD1{`L@+iAAIWy`mr?=QjUACs|(nrt+FJVTu|3X5p^(~JXW~_-f1~pmut9&HJsvz zmi4r(@{o1)3x7{OY+fMc)&?Jn*46Iei>wwY+>uW1dzF91aL;rBBR>pTlmyp#u9m^$->z%%?4DWoZgYrL!9=Wp<#jjRYYO9rc zwWeVu{t+Nrd8$=LX?(+~kBq0V*;`w_1{>l2d}%67oCQFInTG~;v|_4LQnPX|+evq; zO()jMuKZHp01afFaWPIt4CkD&jZv*HYepwRK%V!O9-RC{*>v$#CqlpnCnKY}-tQ>^ z#Yqnnm-4tupVeBOtn|CNuyU-S+_w%ZZSJ$bv0rx&!6CtEhS?KnwLbD`dp6#A!A?6G zkwG&S?Q6>TLWVERtWO0ehSYkf93x=M{`^x|0|QFk9}$Rd2`+~#i>F*(PfsNGepBQv~v^< zqOmSa=7}M*b!B&Jg55H?ELdv3UMvw9AtmOsHRl!ZC>wCBIlN%v*V*Ad2uV~a6Czm_jL2(>4|wUGfVqAW@)?}b5KR^?!4H{ z$$dXnoa!fd2zJn&b-g+yckf2)8FULi%*+u|TnF-!>?OHLHsG7Z)PnW2PEeX|3PERV8Xjv_{si?TOKvRKs_C&INMME$ot%A{tW z=?j?U+@#N4eU!<{V`a4R*osgdE5oI+1W+E!^U7lzw=%{)z{ftJH7|yfd7Kx=cREzi z(ar6r!yWTt8S39GZ^I*TT6X(1h?jdYM!mPxuk1ntgwM2xa-ICeW3EN8#Wa2tmcURCZ4iP`UgV^?&fR;lb{zptVbcs_(4 zNHuvaieD{MrX!7;zB#9jxOcGDD8Z5inD(?%-h1+;%|O1CvW#79Ac$6`tWhz9#8?=z z&EkAKT5ZJQZMZ+_UQB}*yAXg`Md`3EI$H>hznR>v9+M8m4 zX>i-AJFAPqw2RMN9*R~P)8v>Jds!{?kdLiH`B>V>$MUs&EMLpV^0o5JcB?$|F)i}N zL0r(fc{NjDF{)3uXC|$2@(W1>)#Z8UCn=BPNqlPH_+jqQ_O_1rcWtA@G&t<~6;Gqo zh&86sBCc;LBmjiHz7D6a#8!%BRwZ%9R8|@i4;dLK?1;kde`KXG0JIh1*k{( zhNn3B=$8+5XZ>2&)~|JM{mKj0ul!*B$`7`2`N955ez@&?yu*3%W!#!8qDPbD^m;Gf z;PDW-ML!jCWIr#a^&=c+WnK*5=2Vy!GB_*b#9AKBx~TJFD#CW|B$+7I2qDXuKwGJ0 zUd-LU)j@|A*15A^HU~#DCS*F87c)pe7Db55nmHtRAbxN1ycosa#cIjq)7^$TFLwUA za9)h^B>TDxZd6Vi+LK|mwsKy~fF5b!6xqw6k;ga~!O=-_8Y#6hVCv2Jq?@aa5b$6& z9J6c>X>?x95sd5?GcV=@M=op5c`-fWg!y;?c3#YMn{JYM@qDw24P)+vR`r-14(7!i zfzQ71WQ=rnvzY(-+`3=fv6Xx@p1gHl>{fBtelbHC_Hup6>Xd}x38NF{#jtMKFV5+2 z>=!eij45%v9x^YEsSl0v=6RucN)6Kd_e$94zeNmj_>`?6GnHMv0u|q2bN|_%Xv}PKi z;|ya^w{$(n9*%=DoCwhopY|wRL8o1kG#*mty?-1_IF3-_*vH!997ovftvk`PF0Fa% z_V#%(tBmm+&Wr6Bn>lY|$^Bv)aO2Zh$md9oSqF|YXL*o+SaVi_wa$wrahVrur9PWv z2UZ3J0%*^Gt@|>IZdobEJ?9^pq0AApk6P&mj%JHEq^lzogXYD~xs=+41lg(%=Ebo^Y#%Gu&3>`%ggxP`$eWJq>m(Vm+!am-osSNBT_D*L z;n>fMam0Qx6RGve?c&%k_D4dH_966;7vW2v!^v>VH-m%W?qjVp;Na6t*s@aId-7%M z4aIs**}30Ogrj2i0&izNM^5G^rFwSBlya+V**KHnkkphh5T*ilWtwat)xo^C&Wouu zoopLKrCW(ki=7v1ry8r%iu6}qKI@g!;>Nl0TzUG(sK3X|i(}Qc$b_J>ukI;u6(~s} zk%cmuG#&K~g@jU_`AyG5KbwAM%%f;HiRsMb@Hz0Tp$DEd{()zO6rKfY^~;R#jDKI% zW{gZ>X^ORgz>TMwH6CHn^F~zSMf82tET#U3kMWLujie{-;DyYK2d({LyMu#0t&ouyBir8`evES$m-o^$mS51ZPs7@O0zC>1s_ zg%9SdLS$2wS&%=ds~|X5dc_=Gk%Z*XYqNosQVbaeTW@@bYGGqBe)D=Pp zFT~e)hWe)>OR8&yro8mks!Xv%bn?waao=CXa zFwF%#v(iO^!W-CT$M005^hQK7S}b6(RhtjLcr9L`Ph(rL&TKErO2>Ehd5$dXOB~-h z-iviYzV?ZZ_hR3Juj@!Y?v*p1cR$|Vul>~i?dF#>ug89TR2Xz--63WWEHR)W?o`=z z2du6;z+?2OEKJOn+~trf1-b43$(+lvJb;!R7e}z}z#@dd=>#UfKBg567h7tOA30wQ zNA|HSF>LL02vSeItTtS2SRrSs!qpO2E@Ie57W@K~hJ!xebVXzba?{e4H{brN;xsf&l8klYRn zIZMAx{Rs$I_+deT-PMMe`cqz)Ay{{a0kTbv0H*#97@Mg-hZYcGfUoX{sXr;$`6dr- ziX39*)ZYLXJq`jW2~)(#H#4Wjl49=EpMZEB26X3)FG}*6c`3n-%p;T%GyyJp#CiuW zi=i-TGLQ9+QUax91f0wql!?OJh!lwtHbj7$x)H$oNkvsq%tB(dAr@QWr6?poWq??6 zFj)qaQk^FI$x@vRFmo3@j`J|{g8-#EP@-sE>kctru|r{+PYa=&35)#=+?lP4^o=Du zB77Rl%`z$@oewKB%~KgF?<-S%l(8k>gktADZN-?b5SG>NGd@b00zvaHxE#x?f?@metjW;tM~vtjTF1iMp*XWZfZ!TC*P? z60R%=?WNbX;<4q#)pmN1noT^aBz`-ke5nV!D5BUw07A`gH55pIA*WgPJhEP_NVT zFqSR}&20Pdd4#91B6)>cf$u$A&>PQ~@@FB6A0Hvrg6(}H;5cf=4&PSH1kfsyVR#mx z2QjNRa_0rDJ0v6S-^i=IBW;NHV=uKyUaKei!WZ|V{+@C^T=Wc7Es&cmH#4$mZ;ayo zeXa6?9;+?U^xCguFu~Ddv54R2$a^Wf^kSJ)utoIY!Kqhmuki6!&Ws}~Ae@MX?vQOJ zgd)IM9KefZfe?&Bjs*f@vE>~j{)A*gpoJ(U3NzD4h$o9JlX}k9%2*q20=3viacRSJ zaU1AzN;1pDj9iCaHOiWfRfHKCD+=DA&_V&x=#h=`XNph-51(E`%#t;2Gr00;H0&fNdZ0o1wz+EWt z*!2B8qCK4*@jNtJMbOsdQ-gD7wYHI`cd9^ij*A;O+l?ZM5yn}2ZQpF&fD zq)}tRNo0=5+Nbhh=HjGeS*)~BCY(vrrnorU{{TGo0QLw@0t6I62^m7;$-A-K0`LHT z4o%~DQO*qId^%5!)xxoHoL+>*p0YMkIl z;i6!a9pGFv6KDE)s2a!SHLnsty5d)C6d_XF4De7qKpg~l+MlHIWK_;=^DaSd9pz;i zu#rn#pkSG-01k0$0>ak3B<6f6C{hF{UgU+7cUJ(h%$(!ojbY@;1YF46Lh|CQzW|_< zg8+$w%~u3WIr={RB84?d0J#+>@eTqSX9N&$Jmxi-P@lYtb2Orc;Txe88w`}TqX0SU zW&of(R*|yQ&;lx)B_ML67?gm+|0ldgBZ{sQLcvH@?vfNb!)Aca8vz`c81X>A01%#_ zRtc&EkhTOs?8Sm>BIaAUA4pOX6{UV^G zAYdH;BJE*{tAy;;6k-G*($eg>v;tc?*EqT9k}EMHVE<|YI1@4oPBKChK&05>N+%~t zQc}}aP&Fgd!Yws(FS!5;$VgK~z>;F{3fu9^>pb*pzla_w@QXYsTG)bqaYIKF5K#ag z6|lVm+SL~4)fFIlt=IKMKsa|u5NyS{)49dDzKQ_w<6KLUUANZzByu5|l5*S4&_(f!1 z+md}-bk!dcm85$qEZ zE^T{xCF>cU z-x4IKhOgkn%4@+~O+X69WNJx5fb1<_B@}H05U&Ol@OudtY!>n*ZA!RnJIE~q?+|$F zsKJyzvQLOU*=L=#U&L29l`okr>K9=Nydoll;ewGkJlg?ea2PKo64IykmuFC^;c

    ~|c8|wYzax5&%S@i^P`t~l9QPrC>GP-772NeFf&x`BB ze0hIY4cKn6(TQ%Et-*;5u+~nz=qAo~mUGKJ7}FK(z1VIUG@>%)nNwa7JImO$S_q z?0k0H7VjA;6glcQ%tO((=8I zVy6>I3IN~D`WjkENocxe2?120Jpqz>vmrETOAP4DYa1jK<*lLd0H{1cBxhihAm*_Q4 z%KC>Bk(S8-&~(de9zmgGgnfc2fa2LvATp;L*wXV6u!GrzyfZSL`ReS-E-}DLT9ai` zlb=QNN}KS4i~Y6&uE}EpwdAnOBPc{O$g(J~)~pYZmDlTu`6>#D9IOG+jvP>eAW^O@ zf|vBk*VkZ$|G4+ZDbFL z0o4c@QZQPunNS2sLTj`@^aI>=0K;)+{ANqj6+DuY7hURfig@Qfo~?WZ0K_r0XMkor zx|Opn^+5^;wPsFQgnwl?oUj(u<$^oXMzgC_i&jQw!hMe8U^sw=7$Ls&2tmfZc#v4W zqV#9iK}IeLj)7uKs%DZzE;3P&w$PWj+Q_Z2-c`oIs|rD^JKAa`dm$qA6%3;EPK+XR z`Ug=Uw-7DTAk%_^w1S*mxj>t+u5FSjNbTH#7gV4G5s;YE9Rmu<5Oox}LEw-`R?k(` zLhx0oL5dTc7!0TA!z29S6|@yu$|Bo}c<@?e9RV;LC^rFtZ)6@~Gm1vHY^wlba8u>0 zU4N2f0nV-npEzA{BqWQtj_;Dp;;0Gwma;2al3yBkTPW~Yj0&|$w4hY&K9nGAw zC<%x}MnH~g3_O(C63k{2Sw`l;0)>n+dPN*w3beB%1_V=vGs_o*x1XbE*H@JE?AjF9 z**lZsT0d#D+l5U40=-TrRZ911vVa|x8#v)nQy3T(p8fejfVm-GTuTN@2#T#-6GWnw zSz8s=$iGN9?ARnbQMOlP8Tjn^D#jR5lAZ7%Yk49d$q*IKatoy+3bM=*2sWzS+7hTN z8^SXD0zC$tiUOkqQwwElP9c@`CoP~N3M}O4B?=M&f;I$RvbpSJYKjiS$uuw~XenN? z(I?A#0NdC*LkI&P*oG^?ut5VH#^bZz)V>U6u;(Nb_$tU`33;MbM5(-qr7)Z=B?LD` zqE%dzt}+}VgV8k!BLLh>JHi&C1w4e7GOXkQ0Qn`JBvWJvjO(bN3?UqOWNHv%`CEr@gGh}Mp>#&$iY&Tx~)9S4X4==?fSYh2JmD!`iK~a1j9v%Lka{< zA$IVU^+EC|SRpnH=dd4M18Ah!1z(uWp5Y>ZDk%^3S7;EFqPME!zi3&;3%;V26E9hh z4^V=sV<;vH#0$9)w#>X{K~2}RaC;;Z4o?ghB7ay}zplB&`9(Z2zc9R>P41n7K5=Iy z7bmh`lUp_{qnEuK27h($hOs~WmNPcSUQSi9czYh(p>cs6-L^N7#U>6G<`BfglOder z%dj~0n-Mr-BpP4<$l{AuSk721HL)*1Lc3*`JFw8@v*SbAuqPabgp3UU?);Z~%K~6Y z#R63TWaf>9+}&u1JqdUMfY|9D0T}1Ai@!8EzYP2-f8Ns+D0%Oa_vN`G@@*oWz zitTap?Be|5*~JA+U!LKJi=ef$%{%3KTQ6h|mgE(z2h;J57;<9uqlGut@W&;C@&qrZ zHPg0Z5||>SM%crN24B5_Ld8AgUd_124XqC@l)dC)SwtFE-_%K$oF#rfgtzyFFD|&! zdl7mhlf~K#NT;ZiK%(hl8Q0XiQ_O0|*bBnRY1-?Nbm)<=c5$RfLgP$jhM3hH=#k)` z>Lb%?$(X!}oC*S&s;x(I1dwVx^>pZwpc+v1NK(6n0yDhg&8^gofU(^2wE2Z*r8Wlt zdySB)P=YE3{|9;`ap`($laK_<%~be{ECGhj2*Nqy zF}{h>R76qNB0@8AIBx`)!g%`t1#}J;yp9?i!x^ZCGm%q!WN#z2GQRljZANJV&<|;% z90XKQc$VA_^hngY5PQ(3PqwgPg)?jxqy`iv5dx~Mq^M4dDa~%A;KITwRmC>IksgVc zJ;&&k1u3TRMRBAmgdFOTWLnilNI?`qk-{M@w(#2rq_YX2%5_N75B=LXSiMF$M-oKn{2`4rvS1J2Gyz^<5uhNrScU*yeF>frTaKt6`)0u)XB8 zK2tb_GBWxhZk@5iW4!Wmzsr4D(z17H3T>nyfI5w~lg&;|jA$=}IwNo`%iS*KroLh? zDxC)4jDkl%rZ65UoN{D5ZJ8`mGy#laf)$D$3BXBV=2?Qs5;_6TSK2I46Ocel0833x z0JZ=XCD<3E6cTt*AXzgjlmV5?S~yvCbPojtSOH~s+5M?d+lYP2#<|`ZCF8lD6j4e% z_viJ?ZK&9_jlHO5N2~6x$$Auld}FmUY&G*xXEAN;yp{s#JPZI-L}B$Wc4#vQSc(O_U=T=GI5CpRS7?;fWR>B9!-6qm zJF;+WNkOegGq7eLcd$y-er2vb!v%*G)}wqlL9XG%qBv3lWS?NsJ;TYk!DbOa1qZ{G zS#)HX3};716aY{j!H3NkHge4XLu)|z)c{ifAVR~|1h7ZZ4gh#Gd#~wbn-6EaVyl%` zQ38UIV$VLRESRfq(#xl;$~OVnLK`Ik1n;Iw6t%Uxrq9dj&MkZ-TrymV*D#z=lCMBD zZNV?G5i4KS@|Dfma0X)*ZX$|IO*0Twq`;=aKuN)}en_}rvm%yQR@gIKY)h8_I4n5F zyNBU5oy~T=Hh2v-lf;C&q@26L!YIW_XJb1rl_&cYAp?LA8NpY@b|B#hKwZQX z!BzozwsLQOuoz9SOr9x#m;vx0qL?~iB_VEjp5SH$? z7gkA7xvfv;@Wx^R+ZJ2oQ8wu-zohCwk!BH30ZNM8q%YET55D0mOE1F#FYqWScDrD> zU=Vt+5KD#Oq944$SN5FAaLHGZqUw<(|Fr|`S3_75FF7$~XUXVRhEpg}8I|>tx$u+C z_#iU&3>OuT(_VPbSJ0^m09556_{9K5R}7SzUYt<4BqSUacSFKidSC?qH4K-cv~pdM zr0}^i3G?#@_3BlBDeaAUbo?^%p>^JWR^+*Xfy@*!lJ=a@*e>yZJRc;2apAd zfE1R@ExXnv&Mz-Rk7T)I8pI?f_FyGBb0SnK)bU_`6+40~GDGq;a~mircNt)c2w=V< zBajWN+15brf`lIx7i--H5HIu_3}De@&XOmCR#*a1q-E=Zy#ex-Ens8E-Ancf+%8}* zD&oNnp+{nXTOg!x{X16C`CjkX04Xcx?8&5B2_7u8ML;Z#Z?`PldUyGdS(G-W(@e9> z%^8}C-3;C%AWGo8AOd2BFe?EdW5C(m4cpxnOZX;(B0k=ChoNrhP{iIs5IyjNQHoj#dq-uvAOZrsTOzrq;gpLK zFn@L4$cyQ^Gp2NgEy@=qr5bJo(289jAiyCD+7e*t9FYYLb|!4%ya+&n)V*l~*0HlR zceage3SFd77m=ml9Q5dPvbfJYV2r{A00I=!(an6?E^-=G6C<;L>c}5*M#Tdeh70YH z*d&c8#Bsv|@OAH39VmHR@w1{D$%B1Pw^=q@{oD?q$w77$V0Lm7oEVIb{Mhd77pde> zSBf3b!f>$FF1Ds}=ha2sW+%|?O{&C&-K!l4BC6yj=o1J+A)7%s84(~Pg4ar$DTUlD z+=h$dN+wc}7I6!Y3*NRWgSa(C!P(0rfKp~aY`P&zQV}Z26ttpig|FQAw3SIyITj+q zD#36iz+TH_Y{a^pO$7H910!sxJA|{o42_2jY0R;=Wm|L(3KV?f<Ez5hWC>f+P_orH>>@#U(IDUNHnykTI;6Y1AwtOZ7+){_`1i zUN|wxiOj+2Y?OHy69MH~-H286f(}mlUiYR!Ur@X8H8wQmrN|&SD?+KGc-R^>XC7MmjwTMB14?s;GEzq6`_!^6azj*-AW$kO?QU*MRpHp8)JN_EJcf}$+t6{uEZs8v~jNRj!T zud-FRcMeHPl+X{cAC}=_FWx!_d~j?81TzFBBj3WxktKB$ePd|u@N(msNRcdZbBJJl z*bE3j3#3HJ0QI7ZmJT&t^H5)u6hx6NpeZO=0X)>~h7O22kH}GP@T$DQE2!bHCMz^I z)m4lrklAgg^vXm~jTFg~LM{@HVnnO1eJufsAV0jw!(liM3VxNGn1YcV^Uy5`eTC?R z$%NXXELXcAD6QfuG)ma_x1*<#WNm`j6ofY(L$u408&LAD3V2I4HR{UNE>1^ zx`yb4qv4Ou>}KDH8LFW6u_CHbXn16Bua3^ zH5FR2B#+?4V7PciKqx{bi-y8YCX=asVn_!pYXJi687}pX?Aaqgg>CCcwgB@09|479 zm9{A?!2@L`2a8$5uwL>cc@#~h5U&t|JW4SFa#5lJ;S$gC$t=#?6U%}T0g*DC{@}q- zszN>px)yl=sFDKwA_Xr|b&iwz4O}HQ$#B5;Mh*T0xb=oJkP7M%PjO6~7$OFT zL5AQ&PzakTUvP?s0caN;xrar73?yea%hf1^ioQ)A;6jgVV{_`So^ zKDXrcu#67zM}q>bD66e%lDH@lt@+*1}NQ&wW>jKl^B?@J#MaXER4@w3tX-*^z|Cx=WvA5Mi zYzWafdHXy3c$m5>8yc5l0dbMPgAa$3VjmMBWe8zsRYj?=8(`3b^++zE1PU@dutsW; z(6mp;*;9HX1C(k|85x`pF2@{?Ft`|w=gaYs-C~y30f*ukG73EsM3s6ZZ~S>AgTZt3 zNT^ZQIO^VhT2QXI+>W*M(JV6gn{?o#n(5ARpvT*rsf>3F| zhj%O?`3B&r=O|TzO2`DIvw@@Ko_ZuUwHShwu?XE3Z6(Gc=vLs#Kg}IaEwLu)SS0>w zQg-`|LJ94bt~0bDTuzFy2tol1g8;`XRqP<|l_quQP*?_JKrC4dOH?TU8FmP>!olwF zB6M2u%n=OZ7KR|e#KJkSrolltcXGc_b=Us96FX z!saqMP7~IEjIs}icnQNO9RZFM$ks>UP1b=Z!>E9(|FNw*AmRljZra2M65R;ECo+%f z4y0YTh19%=99kjRa7x$Ww-4CI!{%xpoZ+Za01o{QY!T8903?(2c!@hU*3s1?fm7g{ zwjN2aQGGoxfVHXs8r#=xP$dBHU}+S}7s@1IYwMB30GI;D{x|s+1%$A{fsM07aaB@$ z!&zT!56GYUfSN1@&(3@5u4rsh<*V6DWv=gnWbCc7nd)!v-A8rNPG|0(szOo%nBms# zSN%!~b-Ob~#N(GdRAbR20iK&#ZbIgcd2V&Z7FGn1Hn+d{8MTWmvFQczA|4AIbzA>1 zfY1^pcf%T|DdeDNxUsVQXwl`w~(=AHY>DZlgwMkq2M!MK^f=6y!=C&$PQqd!RBW=70tx*bq_+fp*bDNB< z*5Jw55Y1O^T*Xe6@p5ZaD0`c~!zQu-*g9)=PXnF-QOFV+`C1l;7y*DP=SI}?NcMZ7 z!FnD~l5F8wHF6jX7t6i8K)T_-w7FCQUzHRvW^!Wji-4Mc{unTFZYsssIk?<@0SH)K{l3bUPu#uSTfXcf?63U6GV1g}rp(BPXwIA%G zAmccj%4XpgP8qHQxB}9OB8yUmh0O>kHh)+x$F>8igo`XGxIf8(H+V%ns-eYZH7x)L zkbSiAN|yTn*?ZeHyKNlNx+ig*IQ}e`?LPm`{a@w#uC+i)+PkXU>7G8Fc_x<2+7dwm zAOKP#2vVy==r_L8^bRwlZ03l}KhCuN4icdjhJm1?VwULP4ns2S+TmR_eX4fb-!hc| z3srOR8A!W^U|~JLwG!I)w)Xd{GdjDkvr7wU0EydQO=ehIw?o4nBxdG6KnUC@BGX$n z8iSihDov6H-!eG+wb@-nd%@PG=R&6ElXLGgay~id30n_`y&&BT?%F4YegU5La5n}w z;UXCvkJQty>fyAe>F`c~CVFpI*aimj4B*D#GNcSHi=f15SH@FjS7Tf!Kts9#EQ8Cg z0E8;cPXHh(j%0ec;z&9zgTtSGHMnIym#!}(+@^Qw`Z9rStW)gLSuUjLJmPh38QeV7 z!>5&;8{iDSWyN-1noowb(xgFGKc-jN6YxdAVsdBEef+HNw>T1KI~h?ih(WT>Fn;{N z5ax^{VK9Oy13VW;vSzcJV8Dyt%aNmc@`2u6&0R3*dxB`Ft;8 zhzEc{ljA*#bpoIlpIUV5OYj2F1p;8QW99*!uJR$p_>iEl39DPWb=)`n#i^sWdw}nzFa$ttP;=^090^=Gm5wBNcLp%S zSn{!hloNVq90|>I&E6wKdkQ?!yusT|F^~tJO6Ej9=lgBcPU~l#OnmTEDkMPFGTA}@ zE&g$A}Jg5r}P?qeJd1Y|T=o#S@*_M*84U@qT@ zCQSL9+nOjR<(!RQCT3>sGg+Bkdvwg`Y(%4qDu`U<%F(0o`Lyx4YNq}JH4i}l6o43{ z)tJya-L1v~_wMO6Q%QNF#Rq>&bT&D)PnOIvF?C{R4Ghk9(k%kZuAJr`OI!f^8OkC- ztSJ*!T$ou$nP(zQRFd8RE+THj1p)Sw{Gyim)F~|D6x6GNx?!m<2x+*dLjbrha{vSK zpaNGbf(BlY%gVw;+3JkoxcUASN229C8%M(SA1}p`U=cfxM5Bg{h>yWFK{y5n&o$Tp zG0D<&EO8l}YfzRh?Tm~gX)~UAQZ0jcqej6(kjBw zEZ2$pj`EDXa?GeTZ5jAvIxUfAwYVxRxg-NBxZ)AOwx-fIV9l5#snPjx&-1creH#u2 z(zL#P7=1Q5v-^VX)}A|Xy|O^S7hN8oWIn~7U9lrYaU^9?3OpR*l>CGpKxxO3Adl3| z#tX}Qk_J38t**@BZ&{BOv4IAWzEj!lt^i=nwmh0ZaU`F=Al)X~ zd)&}j8VsS_><*i~|6)8soo@hpN9+|bfe-YLHu1K?uy3b?y5=Z|z$mP4=wB$&(FA{n zo|rnVhz;Ng8`Z9$2{>8YjXr$Bc7?nH*u&l0m0}pHTLiO28zO+%@r@t7!LCDFyU5i~ z_Q-!UIHM~j?t>a6g2333qASueYJ1l99;sSWRvHDnz+Y??U_z>$Fr3Ogb;=I1xhTt%fWLH3I2HE7YM9^b@_6)?4NY8d|BWY6?%u0g;75Z7mZv+!*0RCYd$?8FR zGr@A|;O#-Eeg=mfNHX*ZS^CG$AIKNz@eUUPGAM{`S3s2vWihlYht}|@KzmqcO+FXG zQXEN{+cyV1h;af(z{e#@(N0Iwv9X97gs}}SOYD()H8`0t$YUAYA@;RD%!(etK$bpG z#Ih?YAaRb~>nNFO*ZbN6Aae9F0->MG;2_zSb=j582BjzlB}zZNUI(+B40HPDPhY={ zJuCFNiU!@Vy{KunfNXLB5>uHCBYA!-@yFswX5xmaV5SlNNE``s0Y@AOui(7CapsT5 zs#}iWo@PF{X$c$=yfTr&t>psxQp!s$&l6s~cwgmBhH(}idEV1eUw>{oGI;>q#*u)K z*G1m}dC%Q*H-pfDY6y9Zi;(xag>c1@5C|iPSK*tv8#tbWiS9x@3MVll#5fXW$nW+e zxyF%HZD+`vySk4f`OV-DMwq;3&c(!$ATEPEkPBxonz$+38T_$8=7FohFlP{o?TjPY zsF;fxv|ZewTC|!eVrX%#|BfShCM4ru3*h*-$C3Qo5#HAS>3$?etI}xcHu(Sld_R&u zIgW%qGl&==j)cuJ-aq`xo*8e5BO#1}PqJXC7&eoX@9i6SmtZFEZE+;8E?c;;XUA_e z6s#KiGA3sta=4=_m`D#D!k;7d5IRB8q4+;E` zzz+%hkiZWK{FNl&7{ve1f$cs0{_kH&0Mym*p#K%Wh5qUlGfMA1KD_$rEgOlkJD96b zSakB6k=w*r|MrTQ>(`777=;^w%>*}b*X-=~?&009zx?+0FSu>r?U z^Pfz(6ZeSXmTA%Xv~5_m4&lyAv1y}^t0YbF}$;dt=U zCTT&xF&c9t0j^1RPp|8@9k*Fa@i`nTc>(N z*z!7JU$~e*68WPg&&7aXX^>3*DL5c_07MFBNN~YQC7tg==^^{$QPy5tbZR^P|qBoS+0fAkKh>#EEcY9&$s1oFkXx0)%AX zZ%`fCNV(Skzh-*tx^|QK<^loGBx^Tk`6eNjJg%niFs#A0X*SVpD^&CbyqrkaN$p#dJaN)sro}2$SB7pcDqR*CaZ;C@hPj17(FQTl8jj06-n*akaoZKA04jxbDx4}& z8YdPZ5yu>QRttZ&+;(-G2!MSa09VD^1fAuW5+{Iy(-jrO z)haTe&D&Htbv0c8D;!Y9&{zwY;tDJ$Aj~2S^9F>VG{TC?LJi$+)ielog( zNJ$P!gP*yIG#sqkuGop~dB85A#3?~$yE9OT##L|ee4L<`_G?Ejpe2DUoe2KqUP6OK z8JxH070`vhd{+QOxn0H1EBBETt?l>D;Ixvrr(I=<-DW;xm`ZZ4PP?+tJ`Ii%+-g^I zvP4&d}B0fWh#+EkId~9!E*+e@&dqu zOu)g_5>xjH5Tw0O%~>sCYJ0D2l6cVln>cHPXhON2#4;=2We8w$?>PBZH&1a$e~ z(ctQ;wq4o7A$vNgI3!Z zw_5@Bn9PIp;am|sXK=K0o}ro9(ZiunxX+NX6cw=S3XEKF+hOm#0IP%mRtu`5@_{ND zr0(6rX)slbTs=*vhttrvwV!rXtDRe!IRS@Zg3EswOFX3(UAlEpYnRdO((L z$7ug=Evs6~3ch{&=GM6Y3R$r9p0I6Fe zQ%?4)mi3C=F9T@BthAsWhRL%|gpDHIzL6|UVzBngVJv`{6ak}cx;b=ytlb0w-O2;+ zx-FliUlR%fYJw%Ye>0!mrU5@7`>YdjQbOU7g^C>p2k`;8zz^eSwS;RozkMU~Cq7zu zUAu|-WFRcnZ~$jt&-&05@U2Citb~L3tleyLaF#rMV_5_yD&6+tM5f=cSbkXc@a>yx zBfe!}q|AP!-&pVB0tsK{*V@hBwcW%iSB@0z&S=3{yX~mPL}w|07Y(2rU}Hi!78~w; zHMfE;ROD&{Y?9ovHprTDl{wZfJFy421_zFA>6_0r!QWi}ajZbWuF2v`A5B!MSG%IV zih3_S;;I7{x50fz_O(?j2&z=eRcnJ5anL6AqxYG7Pu6Z$^STe$#fU0S6Nxr7B2i$| z$q1mo!lYE=m=APYu4h_HbzQp&RD*L(aQ27Jd4L>yfYY2qiZ;|QH4+MOOdx}6?Q1o! z3W-Ejv{)EIqswJ*TAd8_2s;)F&w8D6?dE4*p%Bxz)*oeX80AQpUQdIw*>ma1?!A;O z5k(wd~wg$8B`J|J*_T$0e* zeD>bpu-H#XEw-1=K@~LsEzw+-h=|X%n;D#|n5q$#Lb0v8B5l@gg0zF4)t;a0WS^O> zQ&ruT(`L`9%rBT}gc<`^an+J&YJLUO$tYth=;AhLR04q4H1?i;buyotP--O#!-c?Is9Fi-raVlYM-;CSF;%+DqvkY3D5gv6GS0y>_#Oaq2B; zw1SZ_&-!`>vXn`x6@PJGAJ*FSFNa;t=EvWlR*!iCT8>%Qhk*EMHZO}liP4P@VcrGo zhLO1R%9~ zxGIyZ+TIvMc4R$BN4i!OT;$i_z~`&o=!3KXE{9uYg~4G|^W+rObx|i0f7Ie)rw*Vu z9!|aq0I5}i0Gnjh9jJIhWHJ$7Yd1kUS?nhPtkrgKCji!3Z3jNM`ka9S>OoJlfgx9g zR*y`1bxX*ZZLPAuwf;AeWHgx7YWwKiwVP=lUNaxQC2u{cTQ&}&WmmIy(}!GuuPS64 z9J^KU#_XEl)x*i_7$J*~Tf2$D)ra|(mUXVRn^!do}HV9)oA8PY-iM_9@!)Sb*(bwptr-WT9Ax#vBYCvaPm-gtb;-=>RgKCIk;XR zVS^{Tk1Sq~66|V1NNpJ$T-9%kCA#$nOdPAf5%B)Z|BTynaJ!zE{zJ-}z*Q4*P;!XI@0xnDQ4kj!13 zOEzciCL1A#i75zPsHqY!&d;pf45Tb)fhIB_Wfw6Kkp)tSeM_D*sOG%aZtic%ANj*W zSw!G+xblmNzX7RVY2DO+uifOW%)=>_|LwWAwZ?5xh!~6HP{!iDg`qsf~ z1CKHO{|DBtvU>HI<3C2<*8Tp|tDoMm{rQK_M2ov@^%GI#Y}t(~_*XyvZkv4LY;{}A z(#{zHv#${neRe6U>)>0I?FZ>?REnNRbh?pAcb0N3cdboM8@1DGDQgY2JFXnZ&rvd$ zbewc_o*c4z?3=mOnFYjuX6fh}nHu)|3;&ILE&`n2pZRYLxUn5Z7u!GXsBdk6Z(RTK z3xBUYadtgxt6GJv{NnHs=Syo@U;Xllj_l#{tDim>v(HL@x0)wr-@WJGu9$r~up?%l zExXth`4j(GApDn)*=LzG(j}B*op_Y3<9F59LHCXl4?wpUz!5x-3uql-Id6CJli!Fx zN&OEcMEsWwR~ekuI=Kp(aN_9#I70mcoMp>=-o99sBvd{kOun;JB4}97tFu@Dmy^%& zN5#JL|0%z5pCpsjS*<%cpF%vZ?xcH`Ez4=UFIFstz6kx_3^>K!)t%_7`JHr6v8S!` z_LTD-s{fhti^=BoPe`fbvv^J_@Dkr{ZsXEC-zfTchWs&`Xb=2>{;SZt>6#hKP2!!MFP)` z(HP0mu}#cAZHsGqE!xs=tepOp7<;aN#al!Qe@&Hp!Bc?03NrJ&u4!_NlJS#)fltoi zc_JrJ(kY0y5Kssmz}_L8Y~&m&bAk7P3#e4e>nX)~K=3di&;L@)J~7*?8ZZr(ssCIY zHJo~0&w!4IelpLs7r%(%C?~wfh}?3L&;Xbu@Jawgk;~o5$=Qjl zr-U;K`*hx}EAlPqz6wy?PJn?jFbo!FcaIWmy6^G?rUjMhgBDgWHQRvi+pdCY8BA{w zJ!n3%a1yX@xzZ*F5Yn@R@q7T7{4|y!^j*DI-MDo-p`)0*-mbI_==MCVveeCLaU!25 zn4A(*U!g`pp82}M>fM50;^j+{C-KbUxTVBq(#)ZcT7bcP1t9F%VSVUAMg)^DR2h=; z!>%}GX0f4kM^OvPEiFa+BVSoGYD#dsEYU1RD2F9Lwx*6KQFz}jTeX(KQ4eRk2I(r% z?Qo#IWHfVYz7uffJE0qu>ZYmzj;qlTO_F-Nf6m}eLkjwtFHveVS>iIiDR$bGS7UHp zty|KTnSsEo%(fuV8-r7!pjRmxVOl*^o3>zgDgOPT^Aj*-MNnF&(x~({I0dotX>i)w zGB~bkq0iWrT$L}b*3~LT``v^t1~+NoiyEkLjWo9X9Tr>JP*FmI<2md{ z3dZz+c14ZsrLcnx#Qu4@Agj8&G>pc_7@soYv^uh7dfaMKusdr;WE@mX>H2)buE3|* z`wS9S&GlM>t9bxjRdKFLqN?(jg>kiRpI)7SU8BLy*(YDO0Y3V|N`B}*Iq@|FwLe@5 zt>u+3076{F0)VtEHzksbtW{!Xse&lQ*O{vS_KBS$ylG;q5eEkS zxn7Gj=7K>uYu*sFl9Y-0B9z>NkY0Fr(cEXM3(k01rW2cQg~&!O_^qa&vyW}hq? z2+o(gn0@TT28YBS=6g#!W*?nrS1X(ryRr{be(Q@T16VQpd^O?{v+oN%Z$Kc$;EGu_ z0>3o-8$+lC7_*OYu{4AhKwt2%zPCh7--_Ay+X~1MEv%3~;|S-|3_J4hZxaiM>ycHB6P^&*Gco%a9MOK|E3$N?YXo4HXj`N-M+WyW0fr=90n|A$Jj#KK z;NgJN>R z`B3Pr1wrS;?Ay(eMp?OHNKarZyc{w6Xj&~$-_iN;R>KMH>PMMXUUeTiXH7XT3cM$hX2(2{Y;50aTINO*2p_$ovinR=65eF^r*oQH2 zTQL6;4m@X_%dS){kBu<_7FPLG8{zbYmt`9@wE#(13!?-aCZWD(1aUuThGt@;ApJt9 z8SJvM$nfUaAU?VfYRi(DXW0?6@A?LwoHX5RY_E!|<|~A{p1LY8>K-Fg!& z`y(9yT~OZ(+BIM67O*BiY6QOZ)IfN(1*)R0`BYfZ@it;3r6rhtFP7-rP2tU%WBsI` z>qIl8)*GZ05D@Gwf}*TbC&bq`lNJC}pY1K-S>lFSd(Z+_S?Zy}RyqK3w-k(?-xUXN zUBAYsP!EHnUtabH(JHuO_E#|fC1zjhnGZ$?uiv0n3y8k}6SMF7vjE?G+PScGzwvN2 zcGc^ar^H^d04)RQQMn9`ECG0EN>b?`J=}_pcUi(f$;^So&8H=BBJJ@jCV*ME)r%iRWV{*-Of!m`ukS#Z&TY=$nVJY-{d@FmxT1 z&E4Qp>Vi>-5#PRtaGlmi36`vDYX+RE zbno}i#q9I3=U>?4{R2yqirIhjx|n^NQ8D}WB*pCWRX9H%wPN<`CJN2>^HbRX?e0x6 z`>Bn*^drUc^C7Eub{c5Uw#gj@`K8Nq2=9%D*Upyr`}AhgS7iRmq|cy(q3nXJU+)<8 z|7$V(#5WMLZ@m7iqV|o~?;rS{^I^Rdv;VU(`|m%0ef85<+&mw@etKkm1nVUbIlJER z`^#%Sy%0WoVG>R%+Dp}z?I-we1D`zfmzrF#Nu@#pO+_R`MV|IPCIQMVrw z_`?!-c8umHl~>HZyXw=Z=+0<|w=w&C{mevW&haO6L60?m;HKkaV)mADQO@(6Ce~6R)MXh3tA8bbv1ToihLAE~_vwtl$oLp1p8f^SQbpEJw za<}qaJS{~E=@hxv|LH#a`WXr1zKhw%-+>o`De}Cl#O%9W$u(vlFDL%t{GRw3uYOLs57+vJ^ZO1qL8QPQlN-#IjRk>W z{>H>eWd50yYyI(Nj2G2V?}9u*VgvvVYkoVpGB%29nGP_~`S5fAqP+^}jJ^UWW?&f{ z#$&h15uwR)PHAM~l}_+$e137K3&6~}Zk;*Z0p$4}U>0Pt0Q;&mRZROVrk1^l$)ckW z{@|cn`TJ0aH}WwE>U#hMK^CegQeE>C%f`HA3PB|z;M6TyifEOju}p^M6aM8c{ah{n zHlXPP(w+wpi?48~+uIf3&u19iPM>0tOa>auPNSAVj}wgl=1%$$UrbhZBdF{XK+v;9 zbz8;22jCh|DS+yb20*)dP{c&m5HO{wOr*3SN^LCtS!hA86Y6RSx1#pskN1=<|@Rh|GbBdj(%-dM#6^p;DiTQqQx26G<5;k_NY2~x^ zY(V({s4}uJxu}bF-Hv%PeQ3DgGQGpvwKdd1=0dWMWeSxD~Tc1@~HzcPnPU%yK%#ln`@gL`v_n@5egV?GZwq z)nNi;=9D#E7m19S-CErfyGoaw7GP_zTTd@o;%RVa&Cw7gWSmo1FBsfN&3w_VM3%Vp zk%fgo4$yi`LTDSDO>J%~Q5O3(Is)`j?>GjhdejFR;%Y&?)qI{Nxfz|uv_FxiGT&ZK9c@Ly)#?wH2G84lMa_>MiL^>^sv}!kMJ@t( zWkG(|nEjO*E6CQC!HvX=_g|umc+#cB=tDw6hts7a327=zraa^p2g~4S=WtMs4%V?8P?)ijl8duQoL81I;iO0Fo;o03HL{Rh=~eC!{t9NNE||Mj!X}a8-Y-?%*D1 zFMHyv=AGt+VEC(rZfJlL^C`*d8&}U?^?aLCTkNk$eJt^a*`JTjYygp|*b}`Jk@{Ja z5%?<>pH3!gx&Urt_6eXTb20mB0gE_KAte~cG(#8um6-j7FE;42#Zt`vUZz5rUPf3q zq5|sqI}zNlZfPkz60%sc)GMzn+kEzIMqL&H-6CFzRRuT@RniDceLEIwxUdH7_ZTq8 zp1OOxdLyr<9i1`z$RsoV<^TP#S$5n#XRt* zPxfCA%=Z@ENRW>JriAHV0{F^E8i8E`82S`pL|jo=ij6DkvoJ;C^j4^A(Lw?kToVaz z|G@AIR7KnxFXZbruhv8|`kqW2VS!)-M0ZQ|KF@yC6VXMn_S82pj)UF$3qmrqsCc>p zn7H{;L@PV+3wR_BhWPx~ujzthgV9`rIbMYQd_W^BhK7yG;K1iY0Ebc^7#3au4AA7> z$S)rkNTWbHt_EP-WB^RTnElEIMQWI_>l@(ej5fW-brL>@BrTSR5%wxU3|RXCSBxsH z07Ihh4ASEECf=)jglug?6*VCD9M1Ut{sLoQVzQNl?uGY^R@Htq^MW*=I$~!x3Ap z!5K}An5<3)$1Q?rJN*?G3%~$F09k>dvyA>xttRDrt$RCy!1#Q|uf%fEU99c&3GwUu z4VoDR?H7DHw9B{K>1%MuF4XM3Uqs>96#;!k)`5KKp@_K0FI2i#j8r4;TMkv=ne1&# zhIqQoKKm1zAAmOo8Z`pza|8pR7%_vF(0t=W?aPQ1EUXZQ>>qZpC;ed!m!=V+F<*7MBRLgBU+T{?tKDZrYuYLg^DjqDgd|jvc_|6jo)@ zek1cix^*Mg_a3l<#{qOjG_e7xU@3^U5&@9-imi?pMB+aC#pfeu3`uHK#uIkHzTiBr zJ|kVERv5YVLO!JEl>kX118CSxt1L}2;n2Vod-$|OyB4}W49@<@*y`y^PJ<%=UsHLs zBjcHsQD+Q=tFlOB><{9xMt$eg4Xp(^?5glrJ33I&pxcUHsl$Pt0WseEgNHEtI)Vlh z9ajb5W&#PjEUOA+SpcrC0Bq9M1AdSu>_R$~?f^1^0AGsb)e`G6!nY01P-a-};ZV~Z zz_IN)(oj9nSS1LPt%oBJ)~a%_b@Vnk*@=w+7#y9Oxonz4qe`y_TGgitiw0NGsOAYG zy>%O)ej`9NXZ_b1*lkCP#eO=z^5Kibbh)%tg$VkEfU82I*;d>p$!&qtan)Aip||5P z-^wxo!stmu8WE2dl@Kkv zFv~r+b~K=@-NH+)Od?#>oB(83oC@p}($fdo_pJSF6#WEAS7OW-PG_TjWwdrTXFGkZ z9rF#r&casyZb>h-9{Gh(PiQ{6{pzZ?MZ6GdB-GKPcRi!vAX$M!p5QEDU&KD)$lDST zaW5fP*KYX6>?_OtgoUwsI1&bsU7>xmKuFOhc*5(s zYLQ6G1Xi@WPyzKJ>nk|WXz2|W)MQ42SP@^jBIY^Ziv~Z zo*pYypWi~Et3TJ?PJrz{j@e)P>>IOxM9p_SA@&fN5PJja5f*1->f4&^pNZKA`CZJu zs5nA97aaXfz%ru{tVJE^}I z8vgvjO!&WW-0J_Y9<%?8G5ep``~A!7Uw{Aj<#$5#-A=!leby|w?>_tN(_Z_yM*AkP zp6AWOBfABl=_6*p5PY<8iP`7IefHDsZOp#g+3lEpqVc( zdILE8f_m}#-te6GSN7Tecg5`c;QIg8VFcj5HvO-BD2Kmt{eRT`hXj5|;D-c$NZ^MA z{;Co%p3pJ8>*`$`rz7qE^8c@L{FUp^I@J$+&GySLKfikY=IzJFH?Mwv#rLN^zkU5P z>xPNHd*j;HPha>PHY2_dpS}_W_S>&-Kky6W_jf6&I~sgt$5)`mOZl>XfRIk z?+u<9KJdjD1y8}-w=6AYXu>80q;MOkPc6Rtoh_)@86A*AV8%d}62#w;lCMG6i=GDp zRo}l8B<9&9z>&uWK}$C9esDhVl=(!c<3c=AB0~0Ev=+ie0*3}eo!{Tz`fy(HnM2lA zQxC$4@e1J~de7-S-w@}ATKbJMc!4w_syMUWPd?L-k?HIsj+^9zgD+=arB51TCjTJ+3_lU=Reo2IZPamiULrLkPAOurA%)DqI2=u|u6%vu%59KSZ z6KN2)l6S-nG=7FS!jK_?%|0O##Az|PM@T>(6bn%;q?z<->cM;lGq!9`R4uKC08&f~ zpAKoS%*T|7e+0(h4@U}aM1w2b9Q=^Rbj!m7+%s|PBr3vT-p)xA5`6NZbM1| zI!L9<-k^jzQrpC#1~L_O`B7l}D2<1Y5bsNXr(I#T+Eu(v!-DpC*@pcP2yD$GHBo8Q;9dp?Eah?Q zN(KavvD#UxLnS@{HMKiSTRcc%@6b5}PMwEO8_YJMjn^KX?|NJeZdtqAgJ%&k5N3@U zgL}&tcB#xVxHJQCcLvIGP+i8Q3LjDwPaPYcJ;R50^ljE$YquROcEciDhrt;vK*y1B zWmxGq>kLqd0SrFMp82-H*~3wgKcS&mJ=~|Gt=2zpgQE?G85*jm-cihy$J%KH8v3e- zhD~drhXb?337{~a|24O|S1PnyK|LIuEIk}uNp>*CU~9C~=afjOmN?lGpLEcK*h10#-PVHIkU=~vXsCh>C91Tza1eLhNIn^4GT-rHRNwrubdc-Oa zLe;c#RzH$SqkMPmd{vMjjk6wBaLHbT0hal|sTG_K&$LBcfni9iKY$vt^~tu%st;>E z#I3pY*s`*ivWm%F-|6ruw(8*nw}+PxNW(k9R+ph%xF^5D{>bU`$49!82jd?G^YNU9FVcUkr2eEhojXl zgZqf~=@>MX>SoV?&bKj0ZRD4gqbvG%9+@HwbmE#hMgYL$Rt z>WhRhLi;O{Fu1fItrTPnj=6HLAX0IrIDt^g|)-g7`3fiI@2`>jHC^1y}2pFsYiUo zi)olPhMsZBn&JjA{1C+j5b}@48a_8?{$FfH^y_bojX3jW&-lS{5~B!ql4i<=!4RV* zo@zYtc!~Fy6^(D1{wAG~#B-oZ@tW>b-AyS|7%@0k%|y75FyTDK-@o+>_XBd$-3J`z zZm;+rT8_!Cw78B9m^?~tgaCYJnqgnGxLLG#dQ0nOKG1I{`}t%4T$eRc2*wj;!ms3Z2CV4~Z4E_q?ox3mr~}mln}3X zo|RtWWVzeJ&apJ#T~GfESkph}Ux{%bKXY}ANa-&UA=l_Do&07xVGN{j@6dNi7jF8e_}G(gFZ! zjO$)b$vgkxL4YacGj%`+c&IssDhsVk8VAX_HOWF7;612TS^&u*1M}P-12F9lco1I| z9HeC0#1}6W>vUyOJq=QRUZimalzsD7Ef<2)T6d;?c8(kcjvRT>=Klfky_ zX1g3``W^I2eCUajOq=)<8n=L$f+Qs>7y3IIFA~2Idt>Q;gU&a9vcqu|`=qS%y=pC2 zS+Bk`i2F0PN@b3`G!Jk<-6P;mq$HB zx=4gzXh`!82= zRPel6wLXatNaj5>jDGHQu73QVT@9C3?Q$#{q}&-p*>3Yru@k`^^s0|xYazYRu*ivd z*MhXE#Ad_W$u~5Q^EKa*=*3auVZQRGf;%Wg(9~s2^nXk;zig>qovO0*b zrgl)f);vPs3BfJ#i%2BC6eZ1D;&E|F>;9hj6r${gS> zUug><29Nzaca5K_^nF#Wc>-IfqpVyhV7c-%fUeHlg?)a))MXM{SNz=6T%02Cw8Typ zZcOv+F@W2eA7bCUknboEt5g1xHmE=rzD12(5y7_>A#1BLoF7StUjMjX0ha_VPJ(KL&k6+>8 z6XP&OL@XK|=Z8*=yn#$9<$@ZL`jbBDCdA=Iv7C*#Ebu1ij`)bjjD;EcDf0E`e)$ZD z)j4k|E)DMQ?N@~Xow|NmjdfT4Z$3+VAVB@Sar0E<^M_9?m$q#8 z2k}o3XIaQ1zI;Ct{~U1;oSeEV)h|sRQ-+YW;NJu*OX{iylF~ z%<%Y)g+5eC%pmyu66$qSMsgZw$ByzJjlQdGle0_v?zR^5VdL1bS!)&{Jp^+yN z0+jt0SNf6gdx6_Q+6_CB$rf zgxJwJV&+pnx7qI z7w6+g#?4N);H~84T!S0pxU(@rh$9#p6&^i_E9?i1dZv^6mjJoz^nzn0pT6*QRXBwZv&$bS zq25^}|ADX1NdpEb{P5}Vv&6NNuVW?Viwzdrv6u_L+E-9;Q!9Nxf) zqc>~8=ayg>8q@>8IG8D=rSM;_pkhumjZ#g64lAKFYU?-kh1x@Qg~3G}J45nc5Cz{* z`OMdlK4)-vV_4P7)=_z_KQk-$u-w_{!!`{Y7@TXQ$v1NL0D; zea>s0!R5t;l@#^(jL!Lx8FZYgbm0u09XiK;v0-)oh{27{KjK1WRm|vIYe!Z(Vb!_X zQ|Ad$o|6^+YsE<`WKRTuW9{LyhpXoHaJaK2jI}rUPgh{~YK7p6O|y7xuyz`2r;EZ= zXcAL%=4fmcb+59kz#pqGHFv@U|Fvd;VMAxSXpI9qrqjY^>ubH7@T&3K6F3(a2SL8j9GmC^mTe$ z8#Ye@PIgiX(T_{oiy&A`{sZEp8ebm1eEf==oJ$Fr?~(OxubnD`7$9)TR}So))v;Rz|3cMXf9uotCKP{HBQ#_n_?kfPb;llhG3M| zM5k}}nlvB?5XcwO!Sn?Oq*elM&CKVW{HZ7j3;Y71hevIYtsO8GId$5=2MfK3_(tq1 zy8giRrick;NyNpd;FBNQIU1nH|5`i5s(426-&VUdSaU|Y5+9u-cWXkKFVsBSwVm6A zDO>~qF{C@9GcRn>lwD-IIvLc)M~7_ZbUoiNpl`H6X(%yJ(M`x%{S_6Y3#8^XFrEY` z)^5h{a&o5{B>n(H>H~U|MWg7%^T`iBjOzif2 z+#!fBa3!k>TvQ_Z+t)ai*jL*2*GYt77?|oy$i=QO;rd{|6|4o%mC!k@;fwx@rlcC59fZ)ZOgI~L1Q zbMo0<*-wCMcBS?039$yja#J1?LqmO_%W6)C@7iLys-0It+jMO{NH+&HHTrwSfrS6Y z6USWI`RJSlw%;_k#7;X047I7byT~k~R_`{o6be!hVsJg3X&TE!sXDsUtdzX6vvN`! z!-nKXppVIgD;fYxU%xD!+YJ-+rv}OY$QLhp`AVi#lKuwus&N_)^|q&%XqU3G4r zv35l5;}alTVz|aOHn>co8UmJesrj^X>{8)qur=q53$Y_sYVW_V+uFIOha<0Yr%Bj# zaycT_z%pz<5GOwVTRI8JnT_+SALn{*Eb)idvfjbZo~^hkl~igdpqtq($?HfK`2IEF?X|O zVSaz@1fjHM?uPflnJ3yaJ`Q3a*Eh1xQcXiqDt|Gw7}qd!f}8T)?c5b>S!eEY=I)sL z@}jvrCe4_;!S%_X6FE-h_{0A|%uxxr1u@lT{-YF`Ep927zEE9sj-2t%HYZdj_`3jE$`pI ze#I|CVCL|N3;+G&8!pJfUUf!fzj-8x*4B2cWmV?HMZa||D=r-Ge)s!R^oMgzKTs2N z!gqgvDv|HCtaM_|aGT$mUhl>emE*|Xb(~3Dad6%5+*~|MUAoQHQwZ|@SJtwkBR@UG z!S|>7^_l~G&pmfu`u@~Uzv)o=`t27){rkIzuWwv7Ozi$!mJ7dD4@8i>diCZlG5f#1 z`uW%2zu^(!Vf6MZK|62A`Uhh65ixT28Pl}8&x}jVzEkCb$Wr9Nb20lpFeZ+^D1OQ? zGD96cey%b51}=~pl?Cd#c*g9jL}}T2p~Vi}TudYccu=!`4-umEBhNwNpN-jPCxpA0 zeV@9<>;u4B?_&0w*5X;{GnRZB6Jtysx;rM>G>lMFVl*od-yp34p-#-c&(i0@X%P@b zC)5?XdK1ZrN$XVQMH3U&=fWlb8N-8rTzw7-3^$*sRG#S!8B24FPs~0(0P(52CcNR# z%!>xzB1D|y7WA;&f`PoEKKFCa4nR!~aRV=(Bi@1mgdszWrYB~97o)5qG1_Wk_IHFV z`AJ%#hSf6kjon4%0MvmX#mdJJy@3{Qa=zq>Q}=13WCnkx`9o0Ysur!kh+FdMp)laM z_`8X(q{9Y%2(}P)r>RuwHkuydn-_!4HYe;{VxN&j?y5&MeS zhe^G*d{Pd(kmqF^2@$SNo!^LEoolwwm=7k3Ij@*~-O}L9Z!$6aHhm0p8PZxbkxjx1 z>Qo5+>7u-g*&p{ciULTJoS6MFpD|nQ3R6BC4#o;`t$4-k*O+KH+7?4;6>umDThn1< zBf}kuu<60=rcqG&l_L7qYl*#aW`sc%TpuFia=*-n%%xE;9aqwpaAnOG@g2)MNHt~jyYppl z(qYtmAA6(7t_#9xZP+#9=myxP(zFOC^NqpjdJ-v?NkaKFI2{qj@~W+*b{HHi?oii7d^)#5 zYG#;XrNh)i!P*qE$-IUKalHr<2OsqFs^V0(0Z97Mn0=olK9m$TTC0;jWAaK5BA}};fZRn0dhlawzN>IlOG5gch#$u6X{v?`^k~3zX z6TJ)GHM?&qg-@yPc0R=QYvUcXGWE~n&AwEySr_{f(x#mkLX99~SHOihw?|{Qol|pq zlDl?3&l+`p#_TiIq{PA1{2IZ^+*1WRJfw*(&8@&pPXRWUs}N~C%n_2`c@X`FPh$2J zwmvkxDySU~nU!9OsvZdkhO1V9q2Ut}*dvQXR!7FnSfSucgVT@O(P~ZjyF5ea%QTW0 z*XqcQZw@EhGB`MJ#>?*iFgVj}#kKCku8_U$!{^B;YHZy0F-=nS)S^Zvk(_!=7Uweb zCCSFjGt{P&!BLiODY_c4a<7Ppk9K~nKGa32Rw`@0qpA5|q3*~}W1y^<6k%^NYlX^D zkL+qD8cSRHIE*3UTD9%Gn0@&I=>+5h9wx!Bj!;ro!YnotrSqV7BCkr(H0nz4bUr## zR&855El-VOqVQaE&IsecG<}ynG(idjW0=~yrp1ocfz8;XH$#BAtlgJ3>ek6@>0^w4 zYoU7BGe8`YiZ7F=GNm<(lRT|+Oy(cekLrfqAD9_}c_s5`%)US-7hW2pF?`!G`@GpR zOqiH`F7;qNjoEg5^Uj!k-UugV+rf}eE6zMw_?!9lcLPzj5&;T|vCMOsSxErN})go;l{s zg_(2Bg>OI$cpwy1@gwslVfq|%#odu-L!h-TZ~Q)urDx5C{te!Jh+?-qn|F!K(UxOr z_3IFTGnaw%dx}yo1%@-AmKacE*1tOl7XxQXfgJntn*Wv>ABV*Ok;p#^4z034ON20B z*}=mIcU`o^zEa^F4jpe(YVr)ZO-l};byI(^k3ZKDrE5@ztEsDuQp7a=)(JLDDjz1f z0A}&BTk~Fys@nY>)M4~0wrH&Q*+B*H5+=)yBaT6_@|iT=A<;YjI)ml}aUAL6Lz+a- z)_2!UHY_}+gBQzQknVbzkEapzPU6>mCygs{c{>hku`owNKpDKd=TxA>UVl0E@7z5- z)2Eo&=?c{kR=TyUYM=sH_~zuft82N^cIy5u!xIvwK2Mx<`LYv){ODJi%gcyeTM)2S zE2XGi#ZE$L!+4@Q^2Ji8D!1~Tsa$2=C&^RTrOj>lDs0gKcy%hkyHQ?Occ-K1UHTpI zi0uke=H&S-_cC$wJV)qEJFmibqQ3<=#JxQ-A53KfmeG)DG*RIulaa8E$w1( z(kac0Ij$AF0o@y%*~>7h_3|eFHn;#|B0Ed@?lOz+g5VDNJaIBzh~E|&fEZ6}pPEPM znbVo?4tN#G4d{kqdRw}@0Z=4e`m>H3ou}F>z|3XJv$I-RKH)mIagI*-h(^0OA zkWur^*Zv)Go_QCMsh+i5$Ikbiny)MybG(}t7ET**pi=CD4-%KmBjSM!8v`80zhvzP zjhBgwQdH9IbWmSu*3e_oUiqrVlz4{t zH+k~aeELWlo@{96L2sgA{0|HO3d+f`J=0nE-So0RQV%8$6rB~2T{8pH#VecxgM9ig za$tO1#ET%8IQevdN8AZcLRx90O-AQhGOGL_{`SofhbtVHm9@?n;`wv{n6!xF)7ius z;m2+}XyN)eydqY^35pzJ;1ED5V=f1v4@)O7nDQIpI;2Y8&uy+71IvtWBWBC8Ky~xz z=ygV;OQAD4f4XKBb!r z*{LyUU{~nZ=~@JhgN69*=mOyTd+Hp2CQd9QRKC&}(&z|7iFvrkwt@{l#`4^a)((3JP6Rwjl(tKrsW)z#@Z9dv>~p4IN{{f zl}SK2(;&{rvy`*{N6D7b4VTXoFC%S4ouf5GIEG}^E?#TvrUM+Et6NXxQ{xD{@Xhf( zmS&DIxPmcJ@;DL4X{wHt)wU}Xoq8x`B7vdR14pGn*BYEIK_VFmtqijkpJSS{s|dc# z(iL)1UM5K5c)PaB99i>KylMkO}os7m+JFhI( z#C(nwq}Mrgz738n)8f-PVe=Xs9VQk>qux5l4h-DSN>qx?uLe6hS1t%_3{J1L_E*_V zPulAI^Rjk3vQTYnpZVU1L+CKLv3Baatep>HuO@_F8k^L7IH8Y-*A3+DJ$tx^W~YX@ zB1W8JaO2?Du40!@e4&I~%{rN}TYD+%p-f#?LXE74I-l7t4UW2MRT&&TnP0ur4lIk# zjW?y+BjF1U@MUoIaD%G_7STAn*C28Qahi)lq=Ggado#FcMU;~O5;85W?BVQpwfORJ zWe-R1hdr*EBMYd}II~H(dbCp^Eu)^WWh*$=K3#6}6Ogcb^`tNmXD!b(avMhe^=N7< zpS>&HD^bJNJS(22M%lBS^GvY=$W-hA3{)O{@VuO+R&Ui5AMLz80*TnoQ!^?_@I0ha z4K<(spzwDz1G-b^`!PX8vNcx_83UEEo0KbSe&~GKx%I1^OOX(MM4Z@-*#`~kWry#gJ{2jWS&X`|DDjbEjWVPWgt~PG*8ER;IJ*?*<*2zwd1Qbq#G)|j zmRM88r^RfCqH-w*f>IyFlG8vWUI|KxYU1fN?OER-ej?Wkp|%6g;IJnbDOGdUWXPXo z`N)?hMbLbUsQ$jiz70;O3o}-WvX;xPWH|2AN7bj_$)=Y$qnm0W3oQ<9o$s1b1G#N_ zu;+OzHe8`{v~%ZtVsf=87_z^!okPQVXeGOESL`%33m`;=Q{gyR?OcOK>wLtLOkvg{ z?C^`%T8_P$=5UT!6HRYnY_*zxp#Z1{5Gju}O5JL}*iw z=-k$=YVB>)xlf!{CAr(();S~|_*Ugpor{Y8ss#g}ucJ`s5TAg47E+LIqf_TxqVdPS zV&LdTo!Fn~aQ#Bv=l|aN=dv!y)HujQ`M3sa&N!kFdc|9D~ z=R^448MA-gZ^J`$En&XC~wfa3+24w-m@}vkfZ5o_8eX&Q>X-QCH0V+HZ*g zn2}tbSIoY)~CBHKBM^ReHOAyhz|q;sASv}erzQHlYLFY+HLWz4>j{^Pi$kk_1{ zbu)L<_otYqd}hBbUQ~GVm_H=J%OBUAxqJa+u6t0kU!?Q5=hF(O2i2O6^1`VmayW72 z1;_l5a*uGa5yCP*Tk51Wd1OQO$$V4)zkJL-G050_e~SHb!8($cjtR6A}YHeVrH zl)H7UCt(iWpAC8G#^JX*{qM%?8>+to_@`o9W?qAUyHVksC~4z`^iC86RW19w@CY?flE*6E5HLirIg6+g4|veObm3<9qM3 z-z~K-z`6JNVIof-rq3X7#Uz_nKG-Z2=Ea!(T!m+B zweD)#o=LAhE{Jwu~;*PZ^LX6jI-0mdp+gT-cUWubSsvYymuT5DS(iyX#z0A%Y z@iI(q8K{|2lzSN8C`!*prlQ>&hN`f_Nszepa7YvJZPew%q_XwB z|F+g|)lTA14GyuP(3^esr#T}O89LhewnStqK(AT0wshW8Q1hPIk5Nkbvbbu5&Kv85 z%5HdQOw9gmXPF^gV)pMk%ZtvzjNo1SgIt!*5#n^J_5``FKehO1b!1m-pALCCtpt%h zcjA%7vO%P=WA-tD3@OH8p3%IPokA9IV)oM@`5dNa?HOE+bJth4G&uaS%0N{1grY*N z=@-$>0vPv=k^=Qu_@)VAXk2J;*p$XqUC(?eJ%gxP*-)o+gpt{i*)G9eH#{^r6VmQZ zQ>v^fEi%EBCLW2QE29#p7mYahc+Zo0PP~QCxp{J*80AL`)flGxvAWEWm8M7(VpdWG z%eSghSK(qK%g%=|bmdg@ z3@#hW>ZsPd;?!wf9}}cci}JmMR}xe)?E?UeX99AXtRx4uta@fYvXc37K!T`4wyB|W zjoQ95)h1XOs;M1aMh18JVh~WYZ&l$6E2(U^iY|prQ?ok=+9NC4I+x0pOfyUvASYuxN6VV zy>*`L`r>u!JS#CLN~|7plDPk-=IIx%s3w1-H~XC?gBJ~Zm4t24F`sUiOeweOfs0Qw zqaIb2eof1v9xXY7jg=1q(U6WV&j(`mS&-C8FQGYK+-LtXmU4W=%hrn7{(XP5Og|H2 zC_HAyn>t*0*ZOA%9>!qPdj(?DtXIwT&*xa`rj(;AGyC0i*E8zz!wL=6&rRo;jCMg+ zjIzOI&r8gHgR{Xow9HKWDc(XDYi!3Y{WSS0j#*9L zGm>QN*q?5Y`GfR69PF=aWA?AdnNF6Y>`k6Zm$EbGh64*@KK|ci-XPMi2qP(?BlB^w zK;#eOl<)wL(DM^7%($W>&u!A@u2T8O>gbGH65}X1DJfUR2r{eT$#3R&By_1PEP@o z4l1(ye@Jq%;z_53_obPxTpX&CaO5iq^9B;3$)_yNLk7&?shrb#CN`()-V0r_uKhl4Du)8Z6$U_&$M&1Z2q|PxEkCI=!y!! zX*5gcmJP#kx&RKbe4W^0OH^vQzp=_w>O8_FZoW`*^zCeVL4?rw>QKm=hQ0UMtmql z*dfAYy4l?<>jxm0eI~(`4$@#I}j|ORgZ<2#lGoYQCZ|bwE%-^ zSd*?|FyA8Hm8p~F*`wc=iOZ&hC`QgHYq4A6!bMdUiQgkaUQa(G;V5SVGgOC_`Nc*^v%}> zpSE_eF%~u=k)sP6qPXT8&_ciS-N;Hh8}NjUE2j-A26T0;k;Ui!*_xXe zX89T6{42zV{6SoHMJ92MFqak;Z-=R!ujESH5U>1XJ}P)qbIYAIUr0s2iG!hAGaiR5 zl|K27^nYyai^ppB_(ROT%a~`ZGT*;;pZ(w0{0R?L zo%?fOcm+-0bmwKOn7$n4f&@(GABt>Hcly#Pe(^C zGD4{No0Mm@dWvBb+J)tH{Vm^Z_(-}KTsm*}l%`EJpQ8;@UK#@Q&W^!>b{m{3 zJN(=W>C|!)%3rV3^2XYMnnWVJeEyihrC%(}c8KKAodq`-rXctTW4AolNSv>tv{+OxU(| z4@Wk{iD!K4{3G8%p{ZT0U7qdX^f=O(vUZ4%S;(2o1e6e-_N%p1A{kJAx}a*l%?H*p zLakj*He+88H&f;5JiS#Som)gtdpg&Umd=yu@>*wHnc6~%0fL-PrravHx|Xjj0`qfQ z%R1!yHn@nZA9%J8+s2ymOp{%DI2pn!{k#Er&V120436~jS%clf&4xw_EUE2o6U>>O zgf<%#4}F;x$tf!U@lsl{O0f31vXI0p+ljQ*=(dTje$9MURg!jT3tx?JYjCymllTD4 ztS5glXt_VXJu`lAQEcLL`)6R$S18LG&OxA@>EoX(#bO2Mq(YeIE z=WoocibEW+VA4kgsS(*?e7=Z6-Mmfb@H6Z#UYy&Q-luw?(8@~2eD-k8=DGz-kTywhxdk1YoGa}>M_JMjc0UT!+EOnF{Fq?OI*wmAQ5q;K@~bpjkMAEda9Y3 zznQtTld*?G=UDq{QTDq@7vk`j2FKb(T3O2@MDy7K#@bEG;8ego%FCzFwRLw3q?W@_ zH853ce`znRKeEsMPvBaq)hzM+MgXc8CT;z1_&R|EJgU;h|p6!tcegSGE zVoqLMO?@3&zb9c>!dG+kv-DUdgA5WS!XXbR@eJN4~wm{Ut>aF}YAj>|TC%i{^ zlw1g>)RF2%B>ENM?cCi>Msoh|KW^(!9Po27`&iU>g5`OQeCha3sh5g;KmFf~@IGe$ z=b!%KG5Z8L@Ew)cKmUTSg*WD3xWEJQk)7TNB!Bzq_g~oq{>|?XZzpE|kuY-S&xzU3 z>+mP4xPyK;?ODo`-cbiFJ$Zf-zfL{Z^WVhowu5QHV(ZB z>1JA5Xt#=SQaN9v*MjlXdN~3} zuY0?9{KO=map-;25&=Pb-fie0eUfk=HQ#pzV3OleULJkB^yP2HQ_(HW%p~^?#E=H! z>iT`tJtuc{rRlQF6a@Ba{E)HGtI%wdk$|yrd zYP^qeRCeOfNpIB6NdT`{`|V1R4vl#`nzyU63}D_KIWsa?I;V-FOY9K|ongVgkTiE$ zqge6f;z$eOJM;O%s&F3IcqQAlf@eLH>80Te<06&D*f{*?A*l=8sjI*2$!t(KqePVg5Z^W;!}^YlZM`C2xF6W5sIdbur)!vyE<5H z=igiSfOxk)PJ`?HH%r`}aNX;dPUe|*p1`Wnk}fUkNq>c^%6IDA-hOnO(JX^Qx3`_; z*mE|STu=b`t#9}!d-e?b_$x%GB`}Cvas9k9LAy3RxkBXkLe8nY%9AeBl@8+{g4Qj&Q&YwJ;%Y5Z*;Cf zK-@(((^2G)TOO1l4pTL-!>FADAizuoV2<{15Z6Qr!JbZV@iIP+EL(v2Y%S!=3^h1D zU#egi@$om*)O;Gu14EJ6ny|obB9nkkVOdz#|DwYKHC9@@(gJGHY@Ev~z^6R*@Ba=K;uk453a_oRX}X9lxFF z_Ss8_{Emwpjea8R7#5BFX8VC1hfXp2Ay}kelNWwxlaTg~*LGD@&5}%JZq^{cba>#y zMl8FvFm09Oh*P5KD+s+l+$I)M@Ev?;ZMQyk9`gW+= znx?5KSTSe!@sld<+WEBA8{*HlbN$c7JrVWdxYcf67vZ@eb-{M5IsGA-ug=hd_oIOS@)3<)D93R!F!yA%!<~l(`X&Sz5X4Lg|h#w@nm^x2O-;mNIzPf;CYhLD!d6%?E>be08KF?j5xqRI((hH)MO}<0t zR}Bg~jvE@2N@2v0s_7ehRfW$nrmvLWz~8r(*RDzZfH&-NQb2Ulm_A$$VP ztMV-3q1vYa8C+M#NmSJQfNWI%l);H@G*BS#va5~i$?Yb-Xx!B|T%LBexg_&e?E&e6 z)1j!V5YOUV9lTg%D@lY0;K)8)9k=nZOT@u|)N;p>|Bn&3*pk%~;zvCW>QaG#f0kM# zlZZ*C&S~wZ<=$F;6Wyb|xcET$ABaQeO%LCp|CyIFUfpP7yqhQ_#{AQ15gQOof($0XS|@sSX0O}H<=w_(9#+)hN?Fgi`B>vCvX znQ>I+(}_@7%%+<(Zx&7$6HD_XEI(dx=twi)l)joR5+nAgrA+A&9q}#iVxlumw`0V{ zYdAE-A0df&OdNW|CtqoCcE+JAdxyp=IF=E+v#ooYP7@k;VmitW6uV}=biU1OX0hNr ze-n%>eP9FGh84^$dd8t=lVfn=L$%l)2FI+)_^;DB1sU7d2ON>Pq$z_vvw%!8E_FWM z#qgC@zEkJ805l(sdQAdQL7BFF&@>=!t3U}PrUff)^PTAweo(wfmBB>0swm8Y{HlvR zT?CXC8^~g;eOEOEmf-)eYXN8~I?|96mT0ldw64HyNYEf#zQUD{th%Um|H(mi;7MCp z^Kv>7$2on9B-^#7cV27lh40B$EoC=V6Imrp$};m%%V#DxUTbT+z1G{>Ck`DOTKnGB z$!K-Eog-f4tX)A&0R1HMQ9_zaIEv?bAOb7bT}DU-}Ye@?dvi28$Az9!Z^RaP)AaOTGK* zElU)WHeLaHm8I_0>6nlI8JyemTUXNtzeeco)DnDmTpdxGx~?;7-PUr3wPT4K&MH!m zv9-d2;b0m>`OG_$f*_xsS&JnH>CF%yap)S2Ri#Qpty{%Xn&vYzNAnCQUs_NE<7A(* z-ur)K5F6{ZG)}bwem?I>58#V9&@#_0#A{n>YV}2so0&VkS?dGCO1tl}&7m>Ipl+iRwK*kQBv22hnQ4D3pX}JfG0jH@kWn{BGdQOnwTha7G^%$9U>6M} zhz#yPDp{YuYE{w3hLs!}FHxOXac5kZFsV0N#)ZL+I5qEO0!!x?ksN>?KpRjH{IZv- zx>&Hjhhb8=o2P+YU+vt-BE;c$>hGgXz!?A39M}swKZ=FGe2OWJ?+APogPK0lmAG$x z%i4qXv^pwSzn0vmMjLRv$uytkyqp~PAIyt5s->e@dPCw|0aWscy&(9l^A#dtH$c8s zbC6YQe=j;etQ|2%t@Z`cqi(l42V%b1*gD@Ir`Jpl%_tnd&|n{?`P|j023DF9s;00@ zjku&n)>=AP+@*VU9+LFx3(OwwzZr-A`t>X~$HXb6~e1Q#{IY3pz?U3wL|$skSE8?n_N( zL3gx{Qj&X8s$!M8p%n>J0^Q8r{pI(L|Mk~*?|z}*diTr4=fJDuufFU1Vt;@9%I;Nj zJOjMX{Qdi1pTqy%BL8iYC-&dY%iF6LX}k!yE&t>0dlGn2?B6T&Z-xC?YTV7{-&&a; z$o`Q8e*338nSX@wpMcwk{%OabO8if&^$)^7B=AE5KP2!&0{_n>z+Bx6-^}^3rt|Zc zufM)}&9|>{z5T)mfc*Y13oluw=~_-c$n@sTgWm=sGPE_FjA6gBqYO(9fBktK>}&k$ zH{wapU95{0o`B#9+bzbE2~Az;%?L4I!z*A!Zy@G~PSCqwuAtjeOn8!$S7Q9*cxmv~ z_ViDiHI4FI*EL{Qt?4Cn^oqGe_#R#qty>IlQZgFCR|A6R1}p&3;|qKP&L@pm&O zXKki+r$U{$@e4?vOv5|#yURSC^aZsuDenfL8-%R{bjAc=wt*49o)2#Mb%7|XaTZBs+r;ZQy8$2s zeT5+aw%leI!%2J=35s;>yeqyHsBx6V3pC$E0&v!Y>7$B;K0=!Y>Hwe9^+P;Yu&&Zi zO>H;3r>kC5zz0V$SIP|c+f}cF4vrtzeol+~@wLuJSt_dwuQ@pUc)03t-1!9!owXw9 zWI6!+cyP5=#8F#Kg2Ib9oQ_GF%8_rBS>u+X<<#{Aw`(OpG`f|J|8$CT5?=^h!68op z_)IFs^@7+jwN$IvFIM7Q-SYs_)A^lhKek?EbnYa4v)UPhAp}HZFY~$5*r>8t=j9MI zni&nArflO~{$^wTGqZ7kt3aKwpO{k_k~TULPC(7zB%b0y(j0I>DAQb!KV@>L+m7@U zo#vxipfc0srA{O{!;2ePJ94lGRfU})*8Q&k=P>QO!cV$Fxl z41|gu)$$Pw0Lz08KzA`|Kp#KTCDbGl-OTiC^O44=2im%tDO1@1;+u_AFsw%bV|9|p zSG`@;t|l4cA&@Ih^t#dmD@x|=i3-m3R0W>&YFeRuA1X&@}O^SU=-R~nAKs+rdn5QJ*HDV z4e8QZW?UBA);{&OE ze-*&$j_3r8g=GiYRwlp-A#|I52e6DLL-b4JfL67ZNG@%#sxG6pcRb1p$P&qX&X8bZ zCyhAGo;CSaE@_}MBc!!Y*Z1&xtYo#?qxU%%(Jo<&xp|w-?$!c;)i~8^9F$MR(yVM- ziHUrlg-)M8GgfyBJyBKj@M%7)=1U*+Ql?!1R!fVjov#TZYh5i(zlbhrc$#*ONl!1e z9}|>0h$r33^0{Q{aq2_jiF4^ZCb!PP&i);oTreha%94*C*O2*T=oacW?=_)%loN$3 z-{a>xyZ|KHC$hK>jC@SqMrZxz1JIzHdR!uD{P1%JU(x1Y(jou)n70-8oAHnTjKL+G z*^Sg@d$GhZ^f3V`Sr@Iqk4M7>fO+n305!2jr_QGbvDg^vR_z$@=v=ve27tNkb}m3& z(!o>KcNOUMBBA*GG!u$CE!Li2o%9{~XBv)-W6GQOY1GW2Tb%&aa;nN4`WTYL52Nnk zwccb_e*oPKE@{Bw<353LvI8ZT%^@L9J)|Q~{Nwz^d`ATZfQJm|cV+8g4QeQV zC7Ex~%Rj)ZU1kCJp`gbX#-u+n2J?HXuh|V}ugzp%9p*>bd~3b-^=5yw%I*X?c{(5l z8!pnEPx|=2xS!Qrm&f2uo^12iTc9uDKAjt!O&*@&fY65TQ9Mui*zUo`EiE#@=S!t- zXhp(FUS1#Hzq=nxQSte6qL)3#Sf)9LGot&rnIgU27VH)zyT@@0GI^yi;Pl{j4rgiy zw9`rusH~6U7U5ZHBO>D;7-}-M9iT*+FD%;T{?^Ug`RNM2t zUB}y7w}9^T-`Y&IZ603B&b@~iaH?eJ4arh) z>5I^@&(Synh88f{xT(KG8wF!6Jwanm(6}txysXmPfX2iWSPyl~U*`0K^Zj$Z;WFiFFdeV3GJH zzjOTm?7az`Y)Mt%o!zxpW#v}YqA<9jC@P4ei1e$x4^SBe_l+JwkzE#Tv}J9&7!)_$ zbyOC`&)q?B8ApMipNOA>`-d~Aqv9wciZCjRzyKo5|9?)z&6`gJ7o zIdLN5oD(M^BKi3|3>@kEli|YDx`uDpqYa(m=B!vk5)j1gf=}^iUF9BAb|NN(Z}`=4 z;pWeckol23YN^u0f?@K9O~&F2WmtfC;!u_im}4l=tw0ZG=1=Pz!3{@#30O1EMA9_p zQIm?~+qjvL){J{hQW<2?qm!kXQh7OXml z%w|4Rh7PnS>FY9=P{<-OT>Z77Y_B$4rW{R3F5w$tOSoCn&Qi#5Hh1_YWc99zF6N=1 zf#Zj0^Wh@zOv->fHD$BNr*+TLSLcdww(cUr=~kcG0D?O(5s$LxT~m6Oz+@E-5QWU2 z)@Q+^O{yedDZ4SMRrh={CCv+s9MMXk@>y)!dEa)hEQRB9ih4v~6RgEe!$KBOErXVD zGw;l8W{>veXO>JhR3J$Fv=uA}XA`DxrV`e0sEymYC+1Y=7~yKcyCpbM$coQ1gqsDg z=vZ6|#zr2UQYFTcPP*xhAo_&NTaTJcNi<+p-Qrt4s$&6(nM6(%R^g7D`Nq!->@`S9 zV!?{*Vjd-6tx?U=HjBV*9wlH+;6j;aB5ik$qyp%*xNTbIVK%ig#lu3jZs8jq8O{=D zisvX0OA<$FPVk7f=wUKZxDwIikE?k=D9hR=m3^Q_^c!(!*d9)u%CwnhxF}HmltfDA z7Al`~*IXc2+(o!j`8Ls6uPv$7PuA!ttTMM6s%AASRh#l$aq*ueRfCkIsx{KmEeg(0 z^@wozT8;dv*=AtfyB;TjJ<_X*W)kyYHxDw1tlDr|<1vr)O{>2(-zY&ihnwkSN%ff3 zyoAWltb&I2iBuv++9R1ckJi1UZ{T>+Ln9`OsmY%cGGCa_qX0EV&7^!YDH5C66A*gD z(?*EQi<_Slc;W*OI6QI)xiQ}CLxwGa1;uUI8iVb2Kb2@S&S5i zMJ6E+(jy9$a_(@WaNH4;M_AIVf?awC^eJGs&4q3>t;k@$E|UaRmtc>A=fYIP4Y))& z%FQ+xGd;1*18qBbh$|5{g)$Z40!QP_R2KznAuXw}rva3?8&8nLHHd7v8cqLwWQLUBM3V(JlQdsG3u60=FPtU!oxWDC@?9(csaMHZx7!-eF&ARGk+ z%uy@5Odz6Np|hPkTG|TLVaWouz}6%BVBJtzx?0T==msE+kl~CVtYWL2rH`T!F3>%& zozY4RBW-IGT`1y~h54E})fc*?m;IcKvY%U6>r2W)F3wElsKuzJ3k~LE%`50IS#u|r za#K!eUw31hzDbqLMNttmJ31M~KE0T%$viwVbMlFBH38NWtTh>BKi66c8T~w9Un*Vd zQOj5I2;~U@VYAkHM5V1vLWnfW+6%$hC`zMRU-s=$9uaPoiZFtpvqnRUlr6D=yMg>s zzGx5g5COBbbQfO0Dl!jf8$-uTG+H%F9|_<^d%L(2iAJ~po$DnmtQ?PUQPmFE$xXDf zI@UK3Q@1?mbOr+!16>lh|HY_v!9D_B}hR+5l+k|lhTQ6&CMJXO+>e~ zi7T?!LfRrCoL#L?wh<(@U{Z5DK@F3tcolOLp`+jlE8-;b+vb^+Ajt{`de=4&?9TFK zIKs!7sp?h7A3QOQ4dqjJaiM=1v}U! za6B`Wys59JLfZ>2ac|}tw_BWeuBvM{@y~q4)Kpe#%DJj_?S`qTo~ueI)~;B!VQSB{ z8)iJr#LcA^OwNJo)5#rRW|&}s#^o5jLeq}q;#^e%WP+4|a}D?<3`t=&kvvzm#3Df{ z26KYn@eJ1z#w^Id1ey9dy7QQGRm)Nx>`(l&h?RzR$;^eY_%AL5IR07OFL`{ZaIFc( z3fp3W7ucKGNpe1xOHeiCP9Ti46+bI6w{~@f?9lRALSPAjfBO(%u30`y2rMD6guoI4 zO9(6>u!O*k0)Z3OuC7>J9gSAEc7~(X{w4wk`03HEKU}{!8f|UCwjzIhPV+hJS72ccFQ#V>dv@yoo3#1agZR9hYy!J5B1H zjE*yMpb(X|hoz{y4HNxszLTY2^s+E6#Au@~4et>GG052NU|ntI_%imCXQ7d2m>AJ& zsIz=IEs8d`fmsIVCeU}dti_r0XdMw8c0EpS-rOavs9T$6CbCf9S;`11Tg%MUIxP)L z2rMCRlY_wfw5PsLGr!3-#Vw;iC-D+1>?(612HgnObXd7zvCfC^ecl~j&D*>K-YwoC z?@ZN;Lk`H-rLVKCl5&}0p2wdtI zaH;WcdJtKbXbFKO1eOq3LSPAjB?R7E5O{ZaTuZ9v_g3CF)qI4*O|@*xaxEdSguoI4 zO9(6>u!O*k2La_PzUs{Qs!Q|lcy9@h^v?%SQNMRAU(G(Zg!*%~LYyYi=iVT8)(`rt zSFW#ba0ZW;EMec>T;s5B0;#jLxjpEwub@G-G1%dvCZY`38^Q%kgpH%PITIkxWab*7 zo$Xb&r*ldG{~rF$2{GP_>v>+g1Fm)ouRbp1!QtCn`s6V=19h;fyf5&P^tom_Zknb9 z96!#n1{{sXnP{ky@rxtBp41#yOK-%9)Nx=nULKH*JIAhBJC9wH_V1?8eNo((L=vP+ z5RM|?umMgR=zI9Hr#(}A4{O}ibec*Y=x(GxPL|{cxF)ipbVD>8x4S-iJ}|lIWu`o7Uv%f2OJ4U`8-D<4xouM zbg+;z8wWh`h%;bz`<_n0c^16;ajLyXfpA(Ej-30CD+!&P`H(y!c@NAYccXC(2EP_E z3*<=-p1qK#d+1g&4-@BEOeg`{g0K#_Y>28_NDjH+bbgNh8BsxW-nrD(BZMe38+GMQn|XkYBo#;v3<$!}>msO!6Xs=L9th%rY#vT%fwngKb~lfG-_|{& z4akUm#W_y2+InGf;+Fz|{EVjjCvGq*BUkWB1P(b4RDU_1SsoOQDV!zh)b zl_w+GO+YTnFf^{oJEB+uv`RVQj1mlMfhZb50L3o%It_M49)TyUw)LR&9_12;K@B*C z#8fDHq=yG*&{$lm>*0yp91a&XB=tP_3UJa1cC?D&bdJ7Q%GNRa4o8*b`9z*`17dKJ zOpnY!6gQjD{W5{SZKU`tp*O68F`F%ST6dMd@^bR4@s%{z8T z$-{FffgNo$?s34{$Z_^KJY+l%?cA-^buZ3iSdAOyL<`W20n+1HJbA=HGL9gjh%*Bv zcc}Eh7Tqya{N}5!u6e4vEB>p?>l0%#xBJD&YTsOSP_}&?3>g2bW#D0wj^m=>Xk09+ z5Zf-1V*r~yi3S2KzyPmDBO#1{d=iBNes)cVMVlN5F)qw3dE^pm+8okDhmCu%Mm>AA z8pv6G>tgxsyO!U+tgf>4Q+L_=smtsWux1`x<3E1Z*VbZ6V+Iu#$F{@T3dQ!J2X-H8 zbL?}X$FZR==(v#O1;eK2Wz1ZX;MnIf=5cKLH!DYb!>OK=@X&tAjN~~<-Yc18Aas;; zm{+3M;TfT0NGL6Y#Q}os>3G>mG4Pkcbf&XO_-J&Z=zDpaQ{F(Ua}S-j3~&aHAfB=p zCOU0&U|c;*F#9m&w=bQxUqa17?`H8g>7Ncl9=No%g#|*>s_^HDSh$YYF#l$CR_wZ*9H5HQ3tPTbIz?*xKtm zzHjYJBr_P_$AcK;`x7W-|0dAon>!n8L+)_mB)lE3IARhRj)4q~#SZY56{!8~5%Azl zul|UkjHI?lQsfZlqn(YFbvOcM)>Y7DYc$6n1hFflAb+sKC9VAW4`xVC4uU^mHith* zuf8J@b7Vix@n+r{xHqIrzhAk)9|V%pY_x>@L3`krN0-3_FpoKviOAsog zqIaG@@L;vz4~A0WLIup{ryR72Wi)~i^l-I+8RY-_|eq2Xw6zXxb0dlY9semwcH$1P+`@n&wB$y^Qvl5n!$=3#MV zMC2$)&nx7}9NJITfD1bZ1NnpDWY5dL_TbEdFPTX4v4d$e-tTeKoS6^zD3Ck@oD9ST z`BJvn%XAz)z-ScwLHVhCYKK4A=1wMu5GY25kA4#Mafo>E2Mi-%hR5?^lI-+H6HNsM z`I8>u8y<-~l$3!msq-Mw$syw=e?ae%6qH;O*&%^}5WRyKai6dr#2BW_zy<~R^S2AqNIZf@kY|2!5`#kKra{JX?)TP{(v?Qw;_B{ zAiStAlMK$$2%crR+p}QMlTp={If-ztKq*DwOj5x@Zohj&j z45|o-wJ=;WZAOokzED&$2-%~e45tdo3yp-~HF8+AD+2KwkEBQYoV8!B75;!SZ_+KT zR2Cl=erBoeQ86t9vyPQNNVCj>+(g=1gM(BJj#=KI^OVpX7mZ*=b&-__y7f%_!RGEZ zL)&oUO6B-lqutdNu!YFNtddJL4hZ)|EBR z`sAVr<-gv|y|S{#GU&!Og7kSk5#_+Go=8Uy49moNYta*NfwRhiV-XB`BIUr!ijT;F zgJ*_g<{v5>7DMh?{zF5$;K)=2hk*e-5eyMVT3s)R@Dt_0^gnc56nw-FL^%r>Ff?U- z9+P)n6e$$nB7eh;@lId9N}(t@8HI3&JE)WhD-BXUGaTWutD90NesoKb5Lqfs%RE@= z#@D1+4y73Coy3*sN?hTK$a**okI*6sU*)@@$T6bWYIB4vSE&&KC*`pyUPQhMM+~e| z1im2$E}6%@=_%ri#qw_E)>lbh-qkW+Dn)#u?^5a;;fN5IHF4*R!j-76;Sk@aCI_1r>>e?cyinW_DUVWYjf-*^?y$jw!0NzICS}~nhDoZo4`?`AYA_0U>^^s_ zFsiZcJJ|z{y*-4%TtTBemYY}h_YgSm^=v5EOVeYe!{vVk$popHE5MFCSQ{pzeTC4y zP#{qVO<*rlqG)6DK=VZra7ctHR1dNB-X2;Al*oL^oFJ;Tcqxp-?y+(o*fN(m)|CST zXPywM?Z|Eivk9V9Ik3{pKv2dlRYbsZ`mW1t?N3OA4F~F!)df&chCJNhGHF;zd3{5q zEDu|f($@rLa$pxjC=ksVi+IP$fmKowUsJY;$+ky-gLV&u&wSg?q7+uiTGVCqYFpDvug^lwjLoq z#+~-mw|Zn(XC=m7E*Tiz%T5{{9E}W8k5v~H5cFk8FabJWpUxq!XXXN|WKOs^R1GY#pW(Uqc0e-3umX|E)Gvrb1(Ri6@d9grIr?Tc zaf}i)cR-doo+bei=n=pbi_U_6l*5l5322JR)CY^U2#>mxPV-}(kkvbw&yzKI?5TU#Gch4qcK zRVftaL==DdFhY&CRSMhWi=34BXm*<1_Q?1v(1AnfB}k{yE&{~Wl~o2?GhO?#v*-p}TI+DU(zr|A9VuXuV?1pV>2AY?Vq67QKKP zhLBDwo1xKx;fP*<^q|+Pb?CvoTzQUGo6&>l1ymw#o*qQQx=RnLh4k8-5h;ORy&gemBqadbOe1sTd=0WX^a6v~& z55{an5SOa=<}+9MN99SnA9(~Zs@^au5-s#-cg?&@rJ5d%*M^-SF=3R21Bt6Jn z2~p?@JnFyFetV%ejQ;LuAW1ev=MTLA$8_}lGIQY~0Uf@MKhlG>xN0kyue9H2qJ~T; z45%EiFDbYu&Dq;yW=639{cMTC@g8al=pKyr#wsPCph>qQxdJvYtQI;Q@i5`B09#juJ24a7_NOwjLR+`hKcuF`@4!K{U2kE2l zkscH`8PW@n1m-T%gW(J9(xnGG#AuYyN?w>AR1s@NrP33~a-JR}=Ri=3!ceGXsPn2zb}5x_SZFum}3+aaz3q=?B!tQZK*+m@7h+FS41_3n=s;VaSC+){<$Y z+EUu-?igY+;cj0Q6VkE^%UO)jgI&D{NYk$7pq0q($s2KAvNJrP`$8f2HvtN4nOK zMHL5X3_P|9X_;+iTXq~|@Rz#N>-!LWl>R%jY{^8KIrb8xQ zel2eIaXy)QjyTLENb_zBJK-vfg{yEDuEJSA;VfK*a~*?(t8ixaj)$qdw~i_vs%Eaq5N z6F@^M=~^y*hpt`QK+knuIVVv<&N(~;zIk0cdU%}Ydy@IOrHLqj+@o&-q3*Mh5ZidHJ5CGy%*(h2!H5TU-Ra(2?S=+9&Y z!P+4NFZFQ088vd(8deU;=iQgSj4f$yh1`GXNcBcPR{Ch~AC0M7@()GMX*h#K9y57ulFcN%DCbNM`DfcV z72jJqXY7fUt|c!E?ii4F#M4<$mUAAVYhzzX;NKCtcBbZvzf&Tjd4BjLT^r;i_pafzhKc;CA= z-b-|?JvW~f%UPdQ#fWEkXpI}=IU_t`eVu7n^*VaE64fM_!Jq#2suHWjC|l8y0K`Zr zltmVr*T$nIV~EI>q*>FNZK>7qgf35e2i44!X0&jiI~1E#vIMnOz3eCmV*zwTlF6aN zMnnT*201bv)(#}Ki_jcT5eJeQxLhjz+@XJ6{+gqok8zj_E;-t9VBP=_0QCs{Jnzuz zXjXEzMyU3rpIaM-AgC7|y7masI=EeXk$yhLVUA!nO4q?OfbZp?pI0_TqMcpDxuV?e zmg^83e5E;|r~5%aZ|)ZQnf>3av9GOc#sVTcz$iw0wwh(ilQeD_XK7gXlb&13c_Js( zf9bx2z!CyW2rMD6gupEo0?I0Vm3R2c2l`4IpX0qbKhi%RNCo|VeEEJ(`Re9#bFTmD z_82jT>k2CzMYe;Y#b}IXg)*$2F(=u`?71<26KV76#@Z%(dC~KbALOJW7?o9AF(FV` zM>0DYBUv4;ZlYj|SaWB%jz-3CTxHKhS5$-;69dOIU``k1N3aU4#UcmCfG!@w1p>2J zOL$#aqC_Dg4WS(gvZ@olsyYO1u81uvEZkyjC!I30{lY9b|!m{mE@2;t5bpO65cg+Y!M>2 zI<_HuhDRNflpw<^ej*Q~ZmHJbPFrQqMOLO1X*fa$v!hdyvS$J)Ddo|O5JJZN+CrBPC+A|+ZDvZMJ+03}*5>I7D&f|TLbgBeHmtSFiI zRY^fRY`IFS6pf|_Rw3>-NO%A+q`V|$qO5T$H&R50><5{x9_rXmBFm6ghq8qSp6x4p z4#l`VWzQUtP-M@Z{FahwWW{@En0P)y=-7s6R2^GYK+v(Zw5^V}BglbN!G zr9#*|Q7EnU25l8V_C0F>oe5PokUNY+D6Py}iMT>()GXqxg^JhWpzBILF(#{H>wd>A zSl&R?qA`HPq3An+`@w-KTdMa(fee=tB`|wXWY1PL z>WfG((6xe=piLf=E$!+v#bTg|)-UB_1Pc+HI&_Y+$E|^c>{)zL z$p^&R*>)|{v7Hrka7}27h=GDJO) zp}))4<21Bh8yqvrDjYq90AV2C`T3>Y%UzUHoS>?a2`Q@N#FV<6VTk^qiw`wULyQU< znKSJd7dBE3*RdU2l$ATyC@8bdmDyQF=RzN4W+4lXW<>BCV7CQ3Mq1yTZEfb#G_o~D z1E>kARipR|Du{ESVaM3IC6eMz0N2q^Q%*HTDV~p;;RAY1;OPoJI)bMvfsk?xT zQQNp!_{W-~k$!pys)nz&Tz80gq4X2EMoM7?E|+xxH zBV5L{gP3Tg%b72rO13z8)!_g@amG@N3(R7ufTM%Mc)(dvoaM~Ou&zFc!v$_5c8lN$ zyThtC|1dF}hs(sy2*o70x-*iGV)1d6F>rT#1Ru4*;IpYp!k8l}fP_RX%Id0T!#&w2 zm_c@iW7`nQZfiJp{G_*BxuFi`aBX{aWgRVs-SGy?8gXXbs%KiCj*pVXx-s}DO1;QO ziFp^|qt@W*W_!ehe(+Ic|CU{x*hly%MvX;2O5OD2qvDXd%11$r>rr%gRM3&Uv5AiI zQK~lq{Udx71FSj%g^%K(Kd3m$RCIXob-58XO_P+qCp)A466_M;LU$-Md{kH&Ok8zj z_Bx4)3tr9S7x<`9jGyPDOcYLpz{y7i|DlQy?1TK$93K_RJ+Uh=_$aDc_$U+}U{=sg zPquHyM^O(;8b9U{dljuE9SotVA=5c&fC{wiTlJq?l$~lNW z-+It^%sR2%BKkP2QPC3$Ml22_b+865bc~n?A(hEnCa&^P&U?Yd#6%Ry6C`>9(;LaR z2j)e-m5%~n%^G#%DB~76(sWrPRWWVo90x!z(+;qGwx|-VlI_|p|q7TiBic& zrM65Ge@9_unX?{t0&|r0qT|Y;B>e1w0wVHAU-Jn*DmB@yTAtPieISJ`9~G&nwN7fG zL49oIp?46RA>3WbBZ0M8Dk~U3gdCA}$oi5qc~e|+vV9|nrV#F^Kgc=RC*a``K5D1% zQLs-zNyDSh@ln{pEYQP}29Fm7vZ2C2KGO2i@zTrE@zQP5@v#8TSGxWrK8l13!O?2{ ziYTHA2q~cfZd5)BAWK1z^^Sbv#pK)Jqk?T${3jnpw_;)t@ySKZ4>=$P+MN!=EJM?! z7qy1P(rcGVmVCQ>RC{JFXRN{~D$e7<2oU3OB0p*@F489*V?+p=h5UIgWTYIY;ZH7t zkFt$z)eaw}93tIfbg4!tD)EuoD7uS?5EGbR+z_oLZeY4ZK1$dDpk$*0kO|KKS~6S# zsTRh;M-`CHaaR#6!yaoqEj&3>WK+$be7M9TdZj&+2OLX7{-%JVby={s?l&m|@VFE{ zBl$3iwcrGDS8U=lzp`Z@manJ;QRm0k$LU~Z^*#`>(wD)mSPd6;Ff^wQ{iN;awdo}` znvlT)GiPjBSP_pq7gayHx%qdjVX5|_4rWZX#T;KR1wM|twdY4iFQcHinP58NP;k5j z;{2uvoddCF{>M9X{UgMJ!@RY!&hxGvTj8lXE)X%ZM{~zstTPvyAc&qeMow)_A8#}A3S8j03%y5%E`)gbDC!)^yuvo?ld0?z(1+zt!n5meia4+*1 z7@^lrxRf(v}p5@Hu)GM% zOS4JqdRBKY#gX+a_!7D^ez;Smwz5C?Ccl^HPr1cdk^q?IG$LOrV<+T!fN&;>3!PH+fhp z4&$ZtGKcadegY(*6EWm{3>zy#xuw~_5krnA58kdG+}C1yU-sZqBezkoo)udr zSg>M`Fx?b5vaALdRF;(7NHK9;iOgxsx|kL_h+Q9xb7?w!nC0w&=`2ziI2YKUrel?j zv%}rBK^_6lo_mA|O*K3~9PW_Jy=uq{kk}|39z#~te2!a3IDrpi6(QLa$}IUCY|49H z&srewb3JRuhsozCng`A?uarC_Kf8R`Y(1;;Va`0xT&!mq*cAY}-idse91p0=Pvu|C zmljXHBs{x(SU2-nuu~pK9+eLZ-e;Z6SoPmAi!(iQOeUlG!JqvfxC1`?Ziqam*$hAx$)e7z=_^SX` zgtMxJJDl-hdPg`ty^E-`o`nY)(iXvol~ZO;z{A{20k(;d5CS{FhtU9)52FDC5p7Av zT|U4_BoIy=K1{fqE%{swKQzyW$?+Xs&uSU6MLrC4mt<3Vodz<$$b7qe80`U8%ZG(v z*hQ-p7D53c=A=9LC6~U7Ul0WHVZwnP!K|sFe_=k1Nj-=w`LM!>mGu|tjNlub%0eiT z28_ngttE=2Qd&2Pn%)i#)s=Em|14(!LbTD56%! zNcMI@MR7tb@PK)s7(mTxWN@xDC z8K4?ZS%$2X9p{G7I&?w#FqF$!Fl5~Ud>b^;Aj*dc9+d$zM< zNo#SWNp}Y{T3buDGPWRH_|o2Se~Lq+OnB~5(V(!H`#bb-I|^2Y5W+C+tA!O7La{Z) zD?iS(?#AAHSIX^g^(i=W%*VDSpZDjz6|Z-Wz8~+cdEG;G8(!qBaqp_~)Z6kh-}ls+ zli>IuUd#Exyvi3ogxB%!LwV)PZpZ7m^kKa2m;P{G`|0g@U0ePLUi1G*UU|4X@G7(V zC|>*WNAo(Cehja2tvm8cOWcW9+0V!F`rMg!1^xoa1I}RRXjAwL_lMA5JNyN=RmM)` zO?)Aq?JBVje0ZH8yjch43~t2$Yb$FAV>!!tZDVDXO(Wx7#BJO= zE+@3jN&p7#yj18O|FCQ@>6rP&oCeJN!@5KIYhZOC?t4o2>JkcYA;hLZ#95!fTlGTb z^plDVkkl1V!0E*g>_o`jjyc-}p=tP1q+$vyj6_J~QolZf6b~4_@I5h)$Wjiq=!L+U zhRCU&yP`Z&-zpM}m9-*qR3xDUF4YpMNH9f*@nWf45cywqz z+r?JUH_sT<^CWp>k=@SKgFK9UOsPy%{d&cs#T0x$@<M^_zZ5LXJ3;Vkn2n5Jw!c zScqEkWDt}rEwCw;7zk3aMSKb?h|@tKk%h-4{X<5BC;&(&Owz41k~|usbaluzKWKow$eWE}X>$F(t!9 zbcV{rDLn8gmPEKjoIn>hNd+2;I>@-wQ8Z!rZypm@@_{>ei8C zv+j|PC@^oVm>I5mM}RcU8B1A(vE>%#wxexef3_WLN1tfNx^JN)A$I*C&?E)Mbjm=w zqP7XxXeFRKw{HPpD;##z5yH$4p-AU26AckFAMwhFq*YOJ_%V5rLF)(LwWgmUWmRAz zO~<8dxolj_WwC+DPI;)pn|*Zv)My)*+w%5O~*P$Q+C5SC@whKt6jQk)6*fJjw6ZaX4u&?3psNu z<3R*Y*IB5JBVO9dQvz0NeoLAc>o^}S$~m920V2&s=aX_LT(^)!r~Q0wYunehw|&J0 z+gE(BeZ>c5`Qn3pU3?H{#0O>n;)81eKCTV0?vrJ3^)MdR3eWo3yrgN~=4)BZ*Rq+f zW%Y@E8~v0E09e9=3U;_oWj6A*uj;hxy$@NIaEjg-nk;l#`(`|-97*1$la5eyu@%-d z!zwY!!KhNgkwg#;4wO1&--n7YRM3=}a?%xyo^HyFK1c)z(pdP>2}0VnA9oM97E~SR zvL0(@M4Sj>$~uKJ!vNWsiuQOcB2SH_8>0aZ>0LfC`0H5ghH^-ctTLod5J#C&8xDAj zGs0Z_u?@r@+eG}ajl>_@O#HFk#2?#D{IT7{A0P4O%9WfC88Yfq2KEy^#JPE_PuV0k z6WlN-lc5*IH542!fQl8{$+?Gu6V2qKwz!(Y0PsPaZw3>siM1-mT@b9H?+nZKaHsRxkD5H}b3zS?p#0bwPH*at_mJe59Ea+D+g2GHj z;S%&K1JrSRIQp3K;e?~SK^7MlH>^w^!H37_rWOQUr1eNHJ=3*+MTe!Q1v3sj>`ivy zn0n>IC8Y6<89KUSo79Zgk8ow5y8{4;GMExN^n$8~bbES`9^OSnkl`32e1g{x20il) z6&@Otsa)Tx7nBu@=_&|#b(L7C^ z^y2UVqPIc9t=1PJip-S`%=qwId=KP z{NpOR#7ZGtkMiMQe$qmPfU*5S^CZJ<5KAw<@WoKm<$Ixdtz_p+XhiN%t9_g<0+nhbVirZ(frX@$mlXSs>30u6q!8GYd2tbvp|@q85Q=O!tlw@pO#UiEr!OaXZdfS@ZC# zh#S~hLIVcdN|;|PUgo})gdcscXlezPA@oXX;lqohy3+I^3b6sQ5t#0!G;-gH5C$p3 znt%<)J4U>OevZ1~C)7cM9Ltm%hVZ#<5Za)$a+MfYdvPp={U28>7+Cl zf?=f{eQj&o*S5EP#f3}c!<{PYvkESD9`rCfwwt2yD4-Tx3XIO$UvfNQP*Sd!BSV!J zD5qmgQKH7U5-k}a?CFdxD&!l&K|`vAZ9S6VMP3jNDG4Zajl;FF0PtC$XCw!YK`b~0 zJucxJ_cE1GnQ%n&rVhfGkKDNthvUdEToeWb7oX+PLI@8c$eV>A&x3_mqcqPy4>=$k zNc_W9X|4kn$;OqHEYaqMYm;J}V#U^FSEL{YA#sK-oQa$jGaa>64e0emlrd8ZkJyMJ zZj0CAxp*y}+iv2ybHJ(O1x(va-gEk_LGB(m5$Q(yHxqe5pb_!{x46N#FuyRA!`QR2 zXous?5go7v3Z4VefdU2CK3Cc|*?R?Lx&g%4P6rVc%RJEIP}@$_;tc`hB>`2h_r3r9 ze0=Zsiu~T{uk-u%zb)?nJHPk+$M`<=v)@$w-;&=)zAfGN-dX&wyho4csUNp-k7qs8 z=Oe=%t=@(2#}xaW^84%eJKOiZ|10A??bZ2x$ZPX^{`L9&-Z$oV=b!WY?lE-#ozQBcavVJdoaejZgF?g@{%JO|f6O*|UxUUm? zdDWj**V_J2pQ?M^byL3DwHsEt&*x1jo204N`v=U6?;CJ?YbQ(%Yo9#sS&Xm!#!Tb5 zGU)ay@?CuY4mZnVeg1{_q`1}HI{Fec^t7v4c>3zzHNO%2;%imokB zr?<9S&A(fRYVOvh!n6DBR!&?wt{kr`b@?a0^{sg>ey#g)X0laJPxLgt(T)Ni)q*L`nAB~gyppjDsI)jQ|Fh(G_)K4 zUF9We`&-(Aw}wEg9zI@P)@`%BKF zi*u#$QQjqdl!J9~K>n`w6B!ua+E?T=eJgDypXqBK@|CvnbzR!mb?N%LHtnl!Lwz0F z-3RHONcTs|S4yY*oK!yX-ZJ{uK2Y(-diYwW`W{!eTBllC;5`s zHfe(&iHEO+=N*2;43-t92DwW-FE8OMKQsG2hcTzV-;eo*&U+o^$fkF@^ZC7f`A+j& z`Mh2&Pp|lImhb3%h0`LeD$FkQ73RXbo5sbOiDnrt@;y&D-=~)MrT6Uh&h~c8ccHo+ z=Xc}Rw_C?rSHEYgtMQJj$HltUw!PT!-EgzE>el08&1bJ~?|t{&gRIZ^p1r<~Uls0k zj1ITey$zH!cDDMfSM0fhhVILxeKyx8h)fYqPPW!31j9Jlzzvzz*3Niy6F0?Qnq#z`K>$3Q!}uBgnXcB038u%+!50)fCg z>gpP$k1K}U$GcG$`g$#TwT8Nu*lP`SRj}6@j^du_nulxF<|#Uh`(d1uJ(G#kM8FpbW!45k41}uN|!2)EWDewYvSq?JnV9xzfQc zL!>+l;l`HZ9E{-39sMK3oP(MyC5PO7z+T~*D~9_#<6{CVsZY3 z&#?O_u z9Z5ABG+QvQTVS_Sx)!Ks1I94|*|ctkF zaij3Ig0Z;SmrX8dAz8P~VDb1XQCD-1lap8za{H4u@S|;N8q@nk(#QH(H|t|NTOaFZ zeXL*9hi_diwFFnN3&&F~Vo&YN6eEangokPPnC2B0`9hC_!D$}TG;yBD&plJr95DJ& zF3!_zpR@v{@_-gI3!65@(5^!bcN6+jPus_~vVCkX+eg^iKEm4e5f;%td~<9m{ggIh zt1`G8$6(mC!T|DlU9;Hl?Iz*KIV&O?FG1MlhZmvkGhvFZ8rR}+goe25xg>Tgg1ME? zll-Emn;4Ed30|@>334Hx8AfaAV#3({OK080cK)Mm`ot|=8PHbtyi2Fr!-AV%ej}h@ zh}3Y!&EJS!Y^{sV5rcNLeQj&o*S5EP#Rc0}e6V+m501m)gX6IHpx&hTpzfr7MLka+ zbtu=?$D46(%I?~g<5do|;ZAUNK9*;Fb+oq4*|l6SvBgn2^p@Sx25y|FL%7ZL5m(A_ ze$VdK=Ew^qFmcP511~1-_R2H(b~!sI^7BgQ1w&d-`^$|*8D*wQRCe{9Hl-4tYS#o? zLmkD>nB+3r%^w0S9y0h<{JA8wY4Mo>FB4=eyA(LK38H;i65OuS_obw}jC-?&KxaHG zXwzc&+3MZmVT;d9<7Z1MW6ct*_{_|EDG4s)E+Mdlz!CyW2rMD6guoI4O9(6>u!O)8 z0!s)iA+UtN5&}yIEFo|+hQQn!>WR8ZF7O@)1Wu|v-ourkW5sglU>xspT=Gk|n>_@M z)fKpMrNydNC8;&EUag^3Nop4ZLoH|ycCL%MChCf$dAe>Y?pL&S`48PB&s}X*l8Po$ z!B~|S!bL-5;9=482G)UD z{Es+gr5xh5xF%kU=i;?^9(c{S4#py9=%8lq=wO9n zNT#@h#iV(up;|^Fh~^#D*uoYT7x*h?^#)xF+6pRefG@kEV0MUtDPG$XJ~p|!NnuHp z$<`mFDp|*3eXN`Hv3}Oa`dJ_A7xm#=7nRJ^cJStjBR?gMZDtxirg=rw@-qI|DmTVM zSz#SHf)GgyRE>nTHKkI3O7q8mB-iP3#jdMrJsx`695#|&k+;CdN~p>9wH zOdTu|h&)SVQ;h3l3^jAJ^-MJi9l4sWosip-2gb}$6QJR5m7G#nrht9ghPZjR0J%EnMlE@C<3ZRI{8oA*}k^5 zX4~HO6&Ef=H|ol@{S9u!0-&o`?yqg4-n6~F&$AcL#@gOG_j>K@j(0Zq)IjAxCfvOD zW^0EV#`fawGIXQ1_E4llEfp=zy%86kp+q$p?{Q@rW#8RUF>`k~nhfL02vlAN^*iI^K@=8U(wpfyegg1?km8pQhjC>DqLNM$h}MI zXDQ$~a$0a;BMqw(@g3)4Ks(|PGn3;xV`WZdHA?G1LN|d&I0-X5w=lFJgsJru##T=_ zTM6MD^D*CrJq0u`P)7A%5`23{gEQXt8j~b*BG;Cv0dL*ebr3Vl?m8izTKc%;+{IlG zX(0W%aV+L-Bkf?DB;IfrR%=XGhmURmy?t;^(g50P!I%*#hp-S1!bUg< zE8!sAETeGq5pF@JB$cwg&8RQ>Caotn!B{hKGmp5+fOS9ZCi#fS1y(|n_2O-K_uX4??m@%CGc+XrR``}l4)Cy zJ7D7)nW1Bncx)Sr$HGQD7O%x)@mf3QAa`= zsfNk#f@6p?s7={3WEk<+r|Xz5=~&Zi-3$pm8P73}Gp9&1LmqL=g3O#FO{vlDb9o%+ zQ!Qy;vST*^+R^s4t!-c1KBi;7wy*dgZio-3*?Ym>scpqV?bF$*ly30jt>-P!06c~D zWuO}zmF!Wn(z`o@-58tbOx|+FrWG#z+6{?sb}&Z+t`8e>`fl_$kM1=Zp{i31K8_LG z5S9~0j5rJw-Z;fg?5|B{l#{(zt}(QFZK`ni{qvJ#qrYq z;&>T*M){hCk9(CEFZ1$J1yw%TiYNaP=jLz++N$&%%*yVFE8wW~=2m~i>?vu7P(VQd zG6B4qxpl=6kPv{I(v?+(%wWqKm^ayz#f9gh6XQ9_ctsv}qk-STIG*z_J0IVA585OD zKJ9OR%X#is+u)+Uy|pWmEUa(saVNAp!1kcO!`^qx;Lh&eCbAK(E#ISiL7T7b^~Za| z$?lG4Qd4H)AWUYQLqJju+pE-&jjha6QtbooZbQ7j&DHLM0baPXGgz110lx6R+lYyS zC7q+!NuLVxZ{POlYz=N?+&~}!5b5yiSn0lOHnyh$wH>|e_|%9!2*^sf>z!GW!icxs z^x3x->;|b2!wyY({UN5+VWNy5W@}_I{OsB+9S@2Z0CU2{9%NaHH`abs3NJ7y{tQ7~e^W;i>3=nz)1Eq(`-SF}h6#xc9)bF>c7= zEKqMa8TH14$!O9eb1oe0_a_0XAq5(b8Bh0W=HzP$M&!FUp=iB5Gbi6&hF{8O9a2_}Sg1 z3z&*|_+wHLqz`cql?uWur-ACCH@KrWuOX(N;2R!ZF{)==gYMPmn&{}te8CWrz50?e z`7%KH?)JySxy-ErgD@cu!6G#Cwf;Q>N{z7}Xmy+t_?u4L{2DCmF_+0&`K5|!~%_?e!tG7k!e zhxw9|_3&ZWt{!G9QNqAtCb*2TgL}p&U+l=xNu46~=;y=A!#Eap@sRPHv6GP#b~MMs z)&OpRkpQL`xFEg~K&=6PfJOmZL&a~t(gxB2(hBA)?cft*viW9HPR1M?V(VJ5Im>uL z!P4DJ!e1QO(x=Ly6B zM<^wn8InO4AJUVsqq{TMkxU85kdULXV{;6FxR5m^#l!Y-)r^#ICWH@TCe}EOMJuWE zgs{@UJpMSy#sq>lVbUi&B8+9pfPPJY@Ot}T3Tqr?fG35~&2o{iw4jDa*nB8nRLB%E zalvV6i5dyTNACzJ&=CMzvB)cv(NAYSPF#fboEqJ}L9a!)VYA2z_Ng93w$waSOZ6BNgz%8eG*kf0ANh`?n=_A0o_bKK z(QscPyWYHY1^xr0|-k%zR=Q?KzYJ(b0y4qV)r5gN%+JhGRw(2OCBxP1H@3XhmDuk}<-DTlg{vL3!HFU2>L24&V5p zm(i!?rs+JU2`1Z@vlA$!vfDZ41uac(cH_uAIt#;~G^Mnh`Qj#pYF9FIQF}PZ%!665 z%bAIzH0xs70}C}D!>hwAx(NoRJ3GBdOXK8t3oUK5u$qX;=TeBOT;V|pphh!a%mZoZ zC^K?=O;I30r8Q~kEHh4a+{%z-Jp@Eh#^Iablw*!Qu?xK_YSAI>(cv56ppC^@a436u zltAVq^0myv%-m{G@Y2gI)CgEx1@g57SrI-E?&cBs3S3erU)=knutuUWC?Tj5;V+(+ z-riQI<0x85XgHWcRBLb??57I`G0qQShcv{heDI2eo;it@W}FB6L4QPRxjqvHU4rB^ zr(&Qd)I~-LkmS5QM$B<}APwYqG5Ioop?b#u8p<$8e)>CWid_2quQD|=prd91PsohO zs1?iztTSG6Z4A`NOc(?QBfMbHX^DmTtFyL(bPCLkC&g!Bq|$yVHxqJetOh!BHPXQ& zoYfQkBg)J;a}AU9g!H2@ke-xZs&spu1Eno}4C_432qZGX)R?%VL&&7)XJ8_pQh~x@qa81fX0enjY5}TSRN^-X4r;ka4NC`IE<6`Y08PnPdpK1 zfiPl1F{Ue?X<*K;##nnaoKP;_8g&Y{MWd8X36O?R13FDPFT2iWEysK78?d>+5AAko zyb7{B)?(@3;;Y;m$Y(DPD|p3&OFUtb1u0gV2UD@7Tj#gNN~fUX+LR=tEygvdaKVnCNju1G2Mx~6`CCD= zY1pF!egqI2#+DDkKz}6|36Knqk&f`dU|~oMp3FH{2ma|fkN~=75ZnzALHy;v`jMK+ zn=?f)jO<;6!NbgTOBb9oM_XCfQfQ4C1o%3RiGz+~j&XI&lZSBJb8W|Q&oS9~=Q!P+ zm38>Z&B5kiZ%rkw^_`8;9-Ia9&Q5=Ck5fW%+uoQ=_W8LludQ%Em<;+t|SVS z+kLb#H`h@b+uT7T9Y?0b9cUOF8U403v3dYqD6^2%)`&F$5F-ESQ~YD*mw`+~2^Xw3 zV6y7bm@;h#t)bxWyDVe?#Oxz-6^M*6ln5nK|#6Tk@Tt5 zYtW}bbCJ2knDuZH?pDzHRr=J-?PcUkqS9t1^G>NU(NecI9Lc-t1#v<2D0nTE1=4+& zTmgxt5-w37MXRk;)hta$nXGpBr!Z-rF>6ZI8VS&t-Kvp`X*2u#uB=xj^FY4U+SB`0LPHDBu+9fs&{!M4H(k$VS7OVi5wj$U6)cw6$V`BLyCp!q*f{{~Xo@ zj8C*^*GZ&2;%LZd&xEM;&nF%A<_WfkUs|(5zJ`;3YIEs0X2e-~dI8UPX2CEW=XL?d zxwtj@F^-E)koZi0HlfhNiaUwB>=C01 zA;#6o%!UxHNch=2M`kAM(gm+BA%lhTRq};yBhf|^;uv6}qN6H{1Y_)SWdse$NC?-7 zkqkc}hS}lf@J1BVO%IkSNWsi?Ff6}hjpj}S3kRapPU5zBEuPzE;<JtZELKqh;H- zc9_Fhw?wwEfBk;>UDTgE|N3-)i}U-C-^nlOKkJ!3FMM%t?s-EKOc9LH2jcz# zyy8oJj&t+;exEnJ``zzOQ?K_Am>1tS;P%!|m>O36ln?WHaOYi&ul=MnQS+_eT8~S_IYHKsac8#K zWMg&Au7XW=JnU?Y5jwI`FkHuNeHD5AXq|g&nB%#RW^;>uFG#F*QC%4$Z-r<@>pIeb zj=N$_sPG`_S}>&bw7-bJG79BhFq}523_nXSgjYC1CZ8>-Wvp8c1X{F#P|jMzN?l6z zk^I(lWLS8hp3`u)Uu4P|F;}@RJ;AdTV;Sq;76fL9UGbR-;!>)BxFVys_>4s3(h_VD zyQITn|D`0jjJt%u5&}yIEFrLjz!CyW2rMD6guoI4O9(6>u!O)80!s)iA+UtN%@_h* zyGw+SEOkJzFNRRnoOWQ330_r3z?ti%Atas0}Yj<^7 zW(Gu8B3-*xm&80>12x~WFd4c8arX=x9$W!b(`#l>!kl`iU4y#skyC3>>$But3>TSi zZU-j0(Ef}3Q_D3Ki5DE=h;sciKUIIDTKA0A5}~DPi$>tuqy1U37}C%&$MQz0J}D+G>1pgDqC4)I!C6R*W{ z@mf3=mn~ymBZ)Gj-(I$WppC6!qnh;=BrTvm8T13=(dP?1s}?eJ-yHgUSvr;}cLT3d z3Dq1!ecRpoVX>%gLBrAqEdXu$#1tJx2$1?Ex#Q3HbY3w)^qjpp!4SWmR zPM-0?*>~lkF@SBgpPX3d)=*qDAYFn`?k6M-FfSrUsL-P} zO(JFQAq1gGF^(yU&9^1VNHp$lDd~qp9FSzP@tD2Dl!~V%U|U1FpZ1q+#u??Z=_bW3Eu`71B(;XqmTejSmIHy~ zR5Lz(|Z>-m_Tw3MQ#bAA`n=7H#)%9BYTYI z%(8qaAh9@~1`dw%lvt~mE|^hdN*Dz)%#EM6W9qN~dJWmAtr5sp*LkDid~i*}qOrQ$ zHYG^M2(-j6aZUUZ-^4HRE%1wPU7mFDC3H~D$9i!5SScsfEEe6t!VDtLbu8f{p5v?s zx=ARJWQ@?63m-fJCldvWMRg>MD78@t4~9)F!J-j;aBR?gMZ8kUFtgHkusn?z6yy_O_8#coM_`7aPp} zHymIMU9_-r!>8B~?PTAZS+#hRBKU7I_T1qvnjSS(>>favUifk1AXb~zc*PpmMTUg~ z3cX_~66FL#&LZUD@I!-onxa+?DfEgYpRmTI&s^~9El4_WJyrSw7x6>bh#%sMuo7Ry z58L`ex>23GRZ`_nSX0UDt6C}!fbPXH#^UrKWOmvkA!`TfM6XVBX&&R47aDg{v`u*G zEYPN@#*yLLLgEu47u@JkG{$^5RgU7Rsl^u;dm}^M?6IpJ4H?~;u(NQQj2r28olBaj z+*LhFn)3;y4izZYaR#m8-v~8w%(%9%ZGAa)qe$-Pxry8xy^2OFcS3J-LX)RCjkXwI z=sF|si{_~DvFfP&bD|?5R@b=6I!v6WKk0LZ)7XAk&m^adF|jb~^NV@a6P~;;8XZLr zfaKJD4IGZo1+^WoErw9;1<;Ey)_HFJA^o^*k6akJ_}4%dT>Svr#?=QLv&`g2j;d@0 z{h}9P@@hLLm$*vW;?=oBa0H#^NMVh=5eI4m9lg9SfwZC)SZ#d~AaCbd@L;}353WUu zJMO%#)~i_|9k?%=3$5bzXYaV%E%!xxM62hi<{fu2^l;lpU_-eBAg^pDM%;=g4U#t# zaLpW!CNIpqnU-W2jJTb!UNe_>v=QE`ml#y=$ouia!)u)LQnm?qf=27aO_Gs$oLtZ8 zu}oAX&!q%rme)~73CP^G%2I`@?TCA?8E(mg%jz)2jn!U9?TvLD#%ihZZaoVb_f&Hu z9D^Or9XCv8G)Kg^3~uNhcX?m5#bq>P5apJ*Q7=5aFPh=l+w(Xuc8@b)i3X_myyLDn zp%5JJ$~|)2FwJGJcuc%uZf`F=#>1ZH!R~oqbX+%BN?WQ8qlhOpMC!^(fjN9#mnt$92^e@A!7->!6nD zdg7sX+%fbyu5kyts^(xbKVqbhs-SVlU2&s_LX(85B_6G*-1#QrdW%8aai?yk`05XC zae2Wp_eC2-WlplB`=Z{GeS%(q8mCEF7B9@{dsucT!sdO^c^^mSVe;Nu>3s+s1dgGJBAkzBDMr5g46ou$c=TF zBLUKhi%qm@1bm4GOB+ZA+6UkGMlbFhvRQ&<(Toh;hMjrd(AR zqXC}og@DSyz3(lKF?4W~sh8N(E4{^p>&8yNL&kHdfxIs|FfJ|>5cL@N#7hyPYoIvk zV$+G4HiuWT#MgW-ieEI}pit=l<-Ta)F~Jhu{K#NSS$&Iu?L?KoJ;7uqrC)j z3}PB}XpBE@b0<)x-5}5<%i`#3dZ&T?;{@p**UnFRoIp+CIUJe~-Iu%QvHF~mUiGSI zkUciV(W_(Hd0*Za&E5hVD<1D_v6GcYm1m}bYGnp?968(w9}=~&sW$~qI>p4Yq;&bx00m7DXJVls+2ogGsIMg#i-~w%s)^3YBQX?If2od zkCEE(lK|o2_?6)!9~gB#b>kjsG||0M6k7?EP>;MdN}dwZQ5{mqFb>ODB{D6rNjchB z$f%UoC`&Yq5sBrWAqj(j(!6wM$Z=BAnI{q@Kt?d69#$xPO~u$51y8LeX#ul9>5nDy zivajXN|qyon@{E$c;NYaEpr^*)zZmW*ctrayNnS z?~gWd3s;81?AJR(!$G5R+$q-%v5R1BZEIjC=;)O-oS1ty*n805;e`4zH-2mmyR@|T zY9Y&!mW~U{q-^W`KFq=8ejgiBDO>fz%4|%B)X=YT1jj6CUAH$CTAB_Xv@{ZhdS5hk zVN}8j-cu_AFa}^CilY_264c0j^wO|p|LW4}?2R}=O9P&IU$o5}V+`Lw$#PY0(%hh| zZJ8d_B57&qG)&ICG5ro0hT^{Hprv!F&AYt-Ly+p7`=Z@Tw%gtp9keuarn3YT!tB22 zf&Bz}z!}DjyqVeQoFIndA~0w}$-5zBptN+MY2!99XVh`;n9QYm1_PRc8j)w-7oCZc zS(*ETRPo1*ECKX|(Xe{=7(WE%o;-?DO2y~9V4iC*%}zd0~KL*!T`$J zK&1i9`YiWFGkA;hv8JgZ#&R=g4KcKX6QHJLp^(vIfa1(h>SNt5xaQN!f)u1UThR|e zdMj>ka#Y_Cw?h_0OVO~qyTuC})kV3+2DpjgI9ZU@0YJ=~pt|*lI}WR{cO=K zpmWFAx^a_N^$sbKXwLxcEs<$tWIx@SNxAP&=mnl6XgfvN#5C}3Y-(Wz-lav3MvG-E$Izg$kx4iX$wrug0Zo9h602hrBa^R}Yl`P--R)bJ@Wg@P-put2 z3XG1QDH1bA{P4r%fJ+z?j4?O{Syxjp1wL1R>`b#8Ox%x18%{v5m z!yg#O7$Sgcgwn#Z*j0IgSbA zx*n&SW4-ct$35jZj(fI+<6i8)=j)i`BQ4fG*Z#`+Fn{k$@_YWT-sAmAA54U^-k((O zt*PI7$Bg&(L^(P?)~h}b#!%lHw|;NzG-?_A)-w35`POf}3#faykZo08>*ITxGzcDT zYP)vdZW@>4ZlPL-`n?==IVmmc)O{{@T`FF5zx7U|f4lc2&F(!)*lnKA@2LGs@A$@Z zzTAs;zu!9__NTo%zr8oSIP5pV_x*cMxchxSZRgyZe*f3cUH8tb55DNrpLOuY2fX^= zZ9jV3=`X$Jv!-|b!KY0>>o1-=eaZ8GZF-Nd|I6vm{>HneFM8;(d0X#;n%lnij?LR& zadmUYANlvq50Af~x&81&5S!H6kA55J-L z%}+gS-uR-!=Fk4|u=$aHJ#60g?!)G%wx00G{+D z{n)!be)`{D{LRz*fB6qgzwz3ioUZ=GFHe8_V6_|)d`x%X*){EI)g zdBiV$QFG0I`I2Vy^B>r}^Sd9?{KD5fqWPA$KB{@?ZNI8{%s)J~nLg~g=2_qIxaJX$ zc|x)W-<57prr~LR~^Yy=f*gW}f z51a9u51SwQm&4{2?>cP$oVxe8M{2GAgu8wG*X`W>aW8tw-Cy;42Up+zWzV_#86W(* ztKagl+nsA3a?QCH96saR)wg>7xz~U7ADw&Px4!G#9q;sh2Veb$+aLbY!OyP$*1_mOe}2$>+dmz=`6X9OU--lQ=~G{MtLZP_ zaJ%VGJmF)f*Ztnr(+|Dw-%r2otG;mhs24qG`uU%G?ev%Ke8coBKk6H%@4WxFO}C!^ zz0+^G&2y#?`OzPpUVE?SO&|aEU!30c|9jE&0YCH`)9?AF-<>}0@PAC7_0&I~e)~7S zYWip2|GMdwKmDfZGhXzL>AyVWisr$OTx;&}=&k0Ouh?y_d*HbF($Bf7dCez%K=Ycb zZrj}bwIAI4x1ay8=DJ6HWHWvLk7;iA%OBf(^rzgVdCW`h+HBwP?#-RQ;h?$o@1JkR z@48p>sN3AT`S#m=M)OZseP%O!(`Pqd|0|!@y#AqI*sT2P7dQX$`v1_Jd-eUBt3Kh& zns+_w%bT}8a7qIvoUKC1cS-+pxS@cVyd^XxzSs^*pFAKU!Q zcYk&Bbuasx=8ga7y5<@E$2G6teSGthcRs%PnLm3%^WYzUV)N_=KB*b@pWIykQ%`Pw z^sd)8_x_dZn>&2;Q<~lHc}nvuuYXGOxA(ZAx#nALX#U`LZfO3cci4R2oe!JOy5_L? zgC`$0zx)G-%}@UPVe^TMZEvS`>xXdKiz-AC*AcMc0T#`FMY`;f9b0Z?*6)ee9qm!@S(4}``!NY?XG^= zE3Ucvr(gAqt3T=&pMUl4m;CY7zyFGNU;QN?aI16gxYM1_{l*>dbM86&k2rUy$9~

    cJo1dvx%QkNbBA&;PEE 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 L)}p>dJ?M^N8f@Id-{LcF2>^m*^`KD_#V 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ð;X3-a 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 CGYQTB literal 0 HcmV?d00001 diff --git a/android/x86/liblibwavpack.a b/android/x86/liblibwavpack.a new file mode 100644 index 0000000000000000000000000000000000000000..997a041f9d71e387fc6bf6f6a73db7994d473e77 GIT binary patch literal 210856 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�_l`Q(VwJh&uJYCTR87 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 ibDF17n<_wZ&6ZpOx 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 literal 0 HcmV?d00001 diff --git a/android/x86/libsamplerate.a b/android/x86/libsamplerate.a new file mode 100644 index 0000000000000000000000000000000000000000..3bf54654b56fa0bd051d236ffa1a1862f6b02082 GIT binary patch literal 1500184 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≻0AeH*V`3wH=NrUkoBLm>~`~c{>5diCT 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.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�(H7y;CJX3NFDwHPTM2kfPDlE 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

    ynV6E?EK`bn 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ΞrQ2cIBr%L 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

    `k$J#E*f;cv7#>r#sp8 zTs25jOM|k0sguDgb=rDao$3#&b1twtt(v4x`Jw9c+D4sP`8cwtQH{FF)Trs48kMD} zahA6lO&O|2hMY}wOIM91a6ZwO*Q%6oMU`p}s!|Z=6z!X!N^d!kVttvERh6)LzRp_^a3Kc4;(A4IBr0}pGWu5Iu);sxjPCw3U>qj%3`%#f< zKl=MkncORsY4mwzTAZRx8|Ep~`hm){$VHh(swtC8ixPD{Qli2)`qX(^)_aM6VphrVD?mOI#b;G++TeTZqO8=t!s=sLB@fW{0c46+3F6=*|3ty>p zq4@S6Jh9>rHoE>no%&96$m&F!p`ECx*oiNSJ1}W+2igldFt7GE8mIlnMKQneQg1uH zDQL&$neF(=v>oq0`-Qu<{laknUs(6!Cr&%@6DvpmM4{SGOt{sCdzZH131J&%*S6y3 zJ*_w-vK1A&e&ETxALu&y2WIR1;7pV67`*B`&U5*WTi&WVUElEExo>!C z;x`1XZ@LNlH(YC=&$6P_?` z!oKoG3}4%bi(MOWXI%rP?ry*}p$$0vXFZQAQ;)ZY)#DhsdaRLr#^~vv@rd4Mth@UO z`z`x~R`#FJ`qf8N-}VtdvyXVH{sYFP^B5!%A8=0ld#pPC9^Hn$$Hg-5@#v*GyfV2C zOEl{6{PlOZecn49X!;KO9@gT)m9=OssKxYGZ}Hcbw;1U47MFae!F{`G@MvHSW_+#2 zHJR1eKe`$ff4{-=$KGJbkT-avw+e;ls&M`2D!e6Mg{=jzvESs^sHyfEWv{-%4>Mk2 zp3WIp90`~-7dpWuTxkMSj+e}3Zj7^%7fcWkY|0qzy} zxB3z8-}(qG-1)Y;9RF@9$Np~RxZ}-3q|FcUsmnvGdR>MU8_V#bQyFe}`2d5~Kfo`7 z2e`TNKB}y_j~ndnkgd3f|5@F`oQHR@WXWB;XL=W}-@St;=HI~;26xc!W+{H1 zRmx-Dl%m1a+n5%A8+-fR#*u}$@bI`>_+0iD{yBFORfgY0wVoT;cl-v{_P>GWeqF~| zS=UiFoX_`vDM8=8C0O8Fg2o?;aZzG17P%E;%d2asweA|{k6lB-qpN7L|2=D}(r2#BajLEW#zBgu5FN52qkzc_Ajgk>K?8 zJg$$O1b;l_Ya0s-(OcM0Q%UczG?`B<5ik3U25QMTbC%J000 zoo*NL&5H|oe&q#RWPSndOV8t@nddQH^*nyb&%^i;d05_c4(*Se!$o1|@Iu2`tl4oE z|GJ*Ve$UUK>hd$#XM6@fUeCp%_*`74kc)8kG`=5r8dtZSLZ$RmxZURzcGjH4(d$oQ zp7lv=yL$o!2`6wUUniP-@i?xGn58_ytgQ)Z*6VEKn#6ay#yi=HgK_fCSuj2r!W*orDz6UV3dOv>Rah|ly_M_+Z zbc~sljzgrq_&*n5NwN1lKclV-b#$K#Z*o(_f??JhkJ-EGTH})p( z##zGMc)x5H8qeN^Q~K?~LuXU*QEV!NDRy6xD3AA~z_ds!0NBqU*>QWE;)CSpN!B3d_Y$8FoTW1Zc0biKO`7fsuSXJxlx z)v>ME6S@`kK5Rjo4O`IOVhjF{p|g&Q;)wz{op)zqfPt+D2Dfjp6-80RK(Iwo5m2n3 z-6DztB1#B~C?z2%Ah%CCrIC>C?mJ2ZL{NY8$NTK=?e5ggym>pj@B3yZJVc)HL;Nv9 z-)DMQ4(ZoGlv_pW1m%r)c=UB#Jv`p)&j6;uehj7_bVFnIPQJbLs$6!W-< z&r2?#;p&^$8pAa6I>f~4D}n2qTaNlxMH6%D!n*@O<9N0Tkq2=B=m;X7?Z47;@lKMM@-y=XVu&fAT~ zM|a^I_nlakzXKo1(Rbh4`WSL^J1&gS!&jZ#aCr7M)IYoxom_M=Gl#xAm)wHfHJef8 ziVmuL+=RU5jo7cU5pxW+(e3F5H2k_ArAF3apyoPUN8ultK5KAu#cIT{t8wbqRe16K zN{s!o0)KaDq53>6+;fEBITyg&*$mzlXYk4jJ|4TEiR%KEo}Zao%lBgbHzh=(1sc*xt&MRf-b zZcJ9h-Gd5vU@;XFc{F$_ha0nHQRANsj$>r7+d>-C-b$fsp(Gm1N}}o-39P;-j?VsK zl-u`@Et~$Ao$+LpJ=pu3wL3V>eo7f)(-sf1g|0u@;y*vw9J4+)D!+&ISkcY?=Obd* zD+pPM%N=ZNRU2!m)5?zf)Xat|HL)A-HL%}W>)4&UYT1m)YIcQc73)nErdVGYd*EOx z`ysiQ?ORmDYC3;s&;HJ5y-wt@IoaRXUdaXlJzhqWN zF^OGyIe}eR6~|846w3|=N3)gVqu4LEzOassEPFyvz-mT(X8%qNXVV{qvQIlcvib%g ztU~k$Hcd5%y=xo5@_XO2t^560_e39d^8#=7hvPf;?Vu;S<>(u>EA2Jws_}|l`O=N8 z8Fgi?OkLPH-<;Sq{tMRpjUy{B`HT%Y^OW6DXvg-hv}Ij<9^5CJ_TMC3HokQe`{>ICcJJf0?6Q5U*h%xXSeZdSE1tfLm35;m zGcz@odJM5AWahH3OI6vLfa&a#>&omi-O238Z4PBY%xSMyI!63uh>yEVVHOY)C6 zjpduJoX&5mU&JqeLipNCHt}Z^@8X}md4#`s#%cbcl&ky^%?JGZkDlE;8a? zmzlHi*BGy=o6PIsJ4~pe6?4hs0i(R=A>$wUh?%(MF>|W;3G?cN9TV1T&jj6bU>Uec4Xd-0YTKi!MD{lS|_17D^) z*^e38;m_1p1TY^?1u?t(J}_l>LYTF3pBQVGP$pnTI1}{YGh@pL7~MpcY2NmQIa(aa zL>`T1MC~z**yT8;cQl?!c$~U;>^D zGQ*0$m^m+onYj~3m{IppCRpV!v()P!v)M@uYWIl4iHQmwVE@;i-fnEa-bbZEv26fUK zRUHRdKMoFfkB6pX6X3v18knqhB8j}8sB+cpbl_M zHbeZBEnxV43*_4A!s3lv;q33N;1sb9JkIFB=T$mzu77HPuUFebIpMFz#Nt^7O*fph64RFaOvL}=>Kd9dri-R`=oOa zlX(u}Zk>mB>KDMI_5z5%xCjrm|AXcq|H0h%mq2IlWg6T23e1kY0uAO@;og*M@H_Jw z?7Mj#oEF`H;EEgIXLl2Bt-J-xI&MMgtJ|<*>m9Hkx&tu*cOi4{JwU1Z@IY`Ml$Kk; zL0coPpVWa06NW;;a8nrEdmaWZRbk+~ARO*o4u{=|;lNY;43YajgP!ka$mseEOIJpK)uRZA z%a4EtWdZb^5`ZvV0Qn;Vc)NuKBPSLHt5~p}k1%u*VSg-wxAYe%+Vur`Uw?tYrZ3Q{ z5eZ4xBjHhUBrI2qf=r_**!nJt#)ppr>E+R|@m4gP{u&K8I5BW(Zwwf{iviWP7${j9 z3s-K$!e~+~oRg1(41+jO^oRqk#yHra77zND;(>{Y2Wg1}NZghHC!7+XyF39-swP6R zc_PS#CBllqL@-#J1bZGO!J3>T7&AT@atM8L3QVL9oP66G2DR6A_ zS1@_{6}El<3M!LRq2x#^-0)2W$@WyZrjZ7Pm(r-;SQ>2nlLq@Yri0OwbXfT<9c0F3 zKg$bo&XIdHiw2d*oBqx$L_XnB8w{>E?MHZK=cEpovnI2S~eA-H5|9_;@w56lI5 zaBLtC)@kK~)XjW|h{=boqxq1wwg490FMuma1rR9y9g;SFhm?okAvpCr+>|baWm^g% z?{Og*W)wn#Y!QsxS_JyGMQ|>&2(HQ%gXz{{SY=xbgBiu(AzK3TbW6bPaS8OKmB13| zQZUjf1(Sz#n^Fo(#LJ*(eHrzQDucQ4lt(yHM*Z~4LF-029Q#rZ=YLWzp=JeaxL5%a zp%oA!tbo;vD&ezPC2-$Y!mfr&xG|#&Y!6q#-B(p`u%rr9##h7Foz<}CX*Hy0RKqN( z8aT0`2J9%e&@HM4?0?q4$z`=L`)n;_2G)XMQ!S*;sDo*T>fqqZI=E9%2R4fJaAiw9 zYwP2jEC40x~^!kwGpMNTv9m1+U8wJq@CY75AOw!rb$7Vw$T3K{!aq0q4vQqo)D z)!$YyByG@tt_^PZw?Sid8)!~!2lMUi@W8qqtfJe&w6`5J7IZ+BaR;1t?SR(o4$u+r zgvVN)@abG9MEiBpxuFxR#t32cW+7DF62h@?A!M}(VX}${^mdEjgpCM}#)x1;j|gPu zc0u@oF4*v_3)ti?;0$(wo?17YJ=zVIoV&p|y&E)scSD0l58OK514FJoa4@q6yheH; zdr2=;9Pfo(*Iw|?=!N6IsXwYlA3Qlmd5cbcur9R^E)Mp=3pi7UVR*|hWM3JEd%nXksbCnK{|rMP_1R?({Dwm|zrmC;9u4Y# z!)(q7l&u(n3#Ue)(`khIB#yw-&Jp-LX%u2NjzZx1QMm3g3X9W6A*F8=)=d8cuebhz z%FBP?@4G)Bll=#JfBu2QnSbG;-d~WqO1Y3;f1xbvFDU)|3tBV&!RoF5V9up~(Ea8g zc&7aWjh=sCz!4*(s$#?g#K=NDG4kQ47*W0~M(#ZkBSmj0KQdg57^I4kTjgTprAUnU zh=~)giQ>d@p*Xp)Mx1Ex7AMlC;w0v}I5BxDPJX=;C)N?-WHe2jSX79Ubdfkw5|bc% zCrFSd^Cd{|N(qvvFG13dNszcp62#v|g4}y0LG(f-h)jY6VGAUPQIiB|9*`hra+0J{ zS(2>NkR-0_B}tWmB$;SRkFQCRgSL|7l!qia@llc(BuJ9w1(HOvQIe$fOOl(?Qe?(t zDS`{7$eLAjyIqQM8>Gms^HL<^z7&yik|KOxDPky)BBs>8+q^`I9BP#!>xZO>lAJWD zo+3?L7fF+~tE5S}o-{E%EKTYyrOD1a(&UqaH2Lc(P1b*sCjZ4tlb5;DvXn6-O9Vpd-##o$+-2p+WhFVXevTX&T_#6D*2xh)eK}HjP>vin zmm_&s@@9JEFQLYN)KQ9HM60AVJunJ^jq5?_GQXuNZ3dFuvfmF0Bkg5F&WZNGF zaz<8>+#RP#?yD%0%kvb;{-ugUeWfD#u~CtH&{rh8_bF0-k0SZ+v?38+QY3pRQ#9O0 zk&HSjl9jI%iJ6Zgu?bcrE&?iXisWIMA~DTVB&1A{3{&pt$99@VpCV})rrZJv4rx%} zkgXFq#7l)k+UIb{EOidq&Tz=7H5_tLheOWlb11iyL$r=?=y>6fua+Eg`7(!0xXmH& ztvO`AJ%_w<;*il-9J0%sLtFznBrB9ddXPh8;yHwyO7F|zknZmsl2OhfPIVlj-^wAs zMD*Hzn%{4lw-{wE$a2Y9E|(+I3tqL5E8! zwsFbxU0kBImrL>wamfJ_F8O|nOIBNQDc6!q8m@B5jN4qY-HJ;rY`EmQJ(pa2PSbJa zk}a>fWb!+jhA)>q4djv~AGstYoJ(|(<{ix?vlA%yA%#nl(z)bUHkZuG=aN-LT%uFP zCF`rWM6HfXWSh98xRpzsI=N&+H<#4)amo1sF6sHjB_^XZy?cx3y09w}SMBZidqnykSiGnetmIZYn< z#PCQB;gP>9cx3Eq9vQ!u-m{)ZIyUe~!bX~o4v(zd!Xx#%JaT;-kBDvOk(>HF(zJs| z*6!jF+ub~pYQQ6Xdw67w5sysY%OlhF@d#%>k91KPP}xpplwSXq%2FzyX&UpW*wHj=Y5H@i9Hx0a zqe>+0^*AVT8KWTsH zrG2A|ORjWqNmL7$bT!bvSj#1gD!F8NDeV`9^f-@8y0f?>CXM#FWG5WppWe7I!eTiVZFafz1;mqa?!^zFDL_7Rr^+~<;qx42|C?ZabeUrso~ zCC6yr?mI^FrhUELh)Z_TzW<(%0nsL!$2xjU$Hr+oMy}Gaa*2)^6FPP_D09iUiCj`h z$CM2nTWaE5l1Rte=ARrA-$lo58;4lcb4X4FhsYIiDDQ|v_NLKspTHqzk#x+5bI95c z95UXQL&`lk(la9CCgahccV!Z|gZE zOp8MTm(uaRfa;K$^xnxFGRWhQ02vP1@>h|R4=9quU5ccjnd+u$Me?jjk(6dDlCdd@ zWOcM6IS{T$%mb-Ddq?+QDw0(WiiG!2krdxlBu_6Y627@2$u*|uj1)wBGHRTPEccrr_rB-dsb0SB zO?CB41#&Fo66Ji zAWs;5dGc?)Jng&k#BzZ=;i$-ycRYDATSA_^8jvGm9dhJQwHyh^mm^Ina%936Il|C6 zPnXVp`g9K5MCU^Ft8zrvLXH$4k|WML=x-b3NQ+gApmsz$ zwI{AnyJF%D84}2oA&dV>6W<X>#sAX<~6) zn(Q}_CR*CkL}9r!$yb#oPsU1<{QyN0MmpC5iDYN%CNfBys;ELA-?$#Ir(z*k?!(OOzn%{iyxtL~TRL z&#^o!K@<*A9=WarnF$iaeYOM<8!JJK|A>=Mo#LdYOq|T6_N6|xGtIrk$yEn&a_y!# zIc+9Rb{mS5MH|G)fVwzgr&8{Yj5y)+i;?$rVw5#1Mr|%JGTmQ{Ja7^t<#)x%>@#BI z*gi4xe4`kNSRzI;mBmP*j2Q83`3JY-|G|cr|3G;5AKcOT2R~K*!JhuV;FkRtl6?MB zM$TWz-1Qd%=KqB=fBt|{@gMLH{sYq={DIs1sV%PY2RbGHz(~a?^oNZ?q0K0`A0CBG z%SWM9W)yZ+k3iVx5g2$p0&|XxfY$O6(3Ba0iB-R$I_x(%JfhD92Y-W?#&3|6_zgQt zhrud%7+&9_vWM=^ABJ7Oe}PoqFYxyH1#_`btpkCz{Oz9bd6)8is{6nzBVhE&G z4?!|_2+ZmSp)X<(PT34X;{HJpR~rPi(E(VUHvo+H08F?vK-cC5z+P#9u5jxLFelWk-53{xVA$=TuzH0mdsS!V5=EEOw!te(?oAU#_ z`uo7+YaiTo=>y%9eehee4_-?2!Q{eTu=eSNl8e1`O|Tc3F}<*%wg>p1dSL9G9w^r9 zfd^B2U{ZTGxP0k`;YZyxPDeM~oz)GVJzelVz6)HQcEQ<$UGzD%3rc^Az#>HiO_bTM zYb*j6H4$VC385ub2tp?zR2~&V#9|?3;dFvZS|@}$b;6>fo$ySp6DkKgVC>fpSo*vJ z$l(rHK%aZX`)PcDgm(DPz8z%twS cDlCF25Y0*;QGThc(bz&0;jgY+vZld8`cV& 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

    Z&oe@9(4bplwXO@vUtNf2f| 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

    8Fb(`*L}7M9a!7 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

    4Q=&&I_J5{ENZ7sSs{k)bH{@@ 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�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

    vlmZc-gBOS8>)3Gc$9g_>w;lDf`I=j+Q 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 KZZ|H+@&5rL>cZy$ literal 0 HcmV?d00001 diff --git a/android/x86_64/liblibnyquist.a b/android/x86_64/liblibnyquist.a new file mode 100644 index 0000000000000000000000000000000000000000..c0c3a12eb75ad72ac581d36db67f51cf2eff0e34 GIT binary patch literal 2442692 zcmeEv3w&F}mG_n9Bu+?j9U8!e6htt^;c3}!Bwwx;>Cr)fac$AB5OST%@GI}^k zOKGSb8X*j9x7~Kz?S3uW-LhNSvRw-F1qp#9JlY19QYfW_cZ>^!M?-k#`=5E-mn2(; z0PX&`;M}=q&YU@O=FH5QnKPqf&j=?vd(ND3n#cZl7cXA2sCLPcC0>uGnnhXv^>`Ll zFY?tf_(d}mrF6fd>?r@}??aY>YyUjuqrc*1;4WFCd?PF?m{+s%{>y^KSziFpv%Kyc`va4TJ-mkyurJC~5-$yd|NC!UBfsb_HBONG42R_yn zQa-T1|J|Z|?4!SrWbly={LSb<<*rKQ-TWPY$QI=w{WYC)Y9bOnRoA=Muh$16iDbM# z+#5@6&J|K52tEt03Wj%e%+jL)RV@q>9(HBky zCP0r(4n0{2eMw7rZG>lue;Z<{WFXejVPsw>cx_I^`wVV-T9-u~^uW8fx+#|Gi6q)L z3`7j>YigE8Qk*=|ZjB_`!hHk1kwE^!*3_KcpG*%7#1pAVS73cA(w~gQ`vdD6YXXCk zr$RVQ)h15esz|u2Ifi^zEnD7}TCD5+U2DDGnvQTX)~P2`iCBMkuyc7^weIzH_Jk99 zDiH>I!Oj2}tJZzt-rjg;I2BJ2Bw&=rw|v9J=~yxqT;W~f@9JubbjG_-;COqugB8ih zs5%LvkuH58l?ak(yba-GM4%U-*N~3&8Wb5lqr_&mOq_xaq-siN{9=0Z71LWpF&Bp7 z;jTa{RhB>96^l28Q{f3jTAMGg+7C4^5>BnYcremQHQKYhZHXT2$zQJ%7T7|?R;U8> z8oj1cn$>7kXA|0#7q>~M{xa%2Ol0q(V3HKP&1fwLO$8h|)p%ROiDaZToa%XhRBoBk zKx?XXo!63%mKxDJ<9&Vc{$QxX8wgNbswWX&r}swsyHh=SB#}T1V2#8=!K+hJqmjRV zB;x6m9*^pYaDR8i$p!kGR3Z{#O}_?33iqZXdJ6p_hgcb;UMOFS$!RczX6shiSmNkd zsQc2rK3(q%4~T3b!vXX~K`4D&qmJl>y^&;+J_7+JSR`4b2N8!B;a#XhV(I>rp6-ub zoMx#4fxcDC+I8xFO*#MFmT+M-*5AcT4_VYeU8tr|=>B9%kEJ3B*6TwW)aiL;bU*re z5>e}5AkZ5?56IfuZBvuE!JC?wJp@!>gfMfsMNYxJjuG30KhgmQ5Rzl+dBPLRbUg*y>7VG|TrRo-T(@%ty;3CSM>@lKe>ji^yeiVlIZ@qy)VX9ZxF^ zi1$yKi^<_2h`N|;CMWBnC{9Y)i(1mj$iVw5?V_?c2;wd(pUKI)IFdO6#{>q}qE3rC z;ZB(IdNP7}Oh3%Hyb~?h@?_^bj8$nnF5$ML-8ipVBIXPo;odL^>)|Nn6YEc6O)to% z4Pthr)3kw^nn9X41OkKYI_6q7n{(knIF<-vfx=jyNZPH-Bqbysa~7}iO)+Y8zG4-? z62q!xZ4LI!{%&V&Ud*Ct;-;fA!@Yd^wrU(v^SDK#q9RDhXK>45spm}I{%)mGg93_4 zikPqKYa<)*p zXOX@!jpM3GswV|m?EJWcOSx%a1?FHjb^p7SwSC=S(h~Wr$}k@aMS$uXst(pWr7g)^qh7@dCVk+LPcfxN&$7H-O)*ntq zlwzE5>aaFIv-EZ0K|K}MyJE?;%#N%LFn9uc-{HO_w&-AK6zv1CFyGXCp>@y5=2qhM z2`1uLNB&T_@U7_XJ|{s&m)F||hakNN{xgw8AQtP5kvVUPU%Za+h)c2S7GT~&CdML$ z5NPe}?Q_KV80l2FJ2`<5Ns(?jG{3Dj)=enPjY{nK;eRqH7fR!vMj1;fusVX0Vd=;4 z*jXsHNTcQ+X&x?UUYkEpf;yLI;B-P@%T^()b~fEu-sY2=?hfAM&Y8K{PUGu`>`IaoW~2YJI>O4=-BtxeG6tzj;Lyek0&*vbm`u&ASHPM$ou=0)Mm zgAMEg%ajX~8~QsPyS;MNa{QEwVtpOy2-91AF?qGYQ_VI*FOCd$>Qi8kn)SO#y(Afl ztc^#bf%Oonu>sGZU9m*qbMKbqKs-sk^};9uL0?}-GKGF0i(BuCVqF|wnbF?(x&Z6* zELu@a4fzJh^CB9K^}f60>3(#$EO+M8G|AkhN7*EkDMQ_BPlq3IhC^b^w{KLj$@AAxJUw%>yIZx zwAdcGNSX!vkId9$QgZ$B~Y+qFOooR`z$u0b92;--Iou+tM2{Z zl6}uc8fFW8!*q#byGruw{d-a7$!s-&)7 zbXgr61A#@%r8tSRB*0+4tF)^ZL-HWVfm`n)xq>c_HnauwfDdO=A_>|Jhb78s1O@{O z$ul{Cc>Hf0K;$Agjc$%f%wn(-&mjYFvzZ6cXnk8BeH{>9j-g1}LyakKeYb*+R)akmIjM?28 z272>bYjz5YhAGe_3p`5=`_)d>yjkY*@on@0JRS~kVrkaE- ztjQ)L3ro7YqH6dYOq@GuUQBMcdGFC6(C0b_II0{8|ZnG7gyxM z*%z6f<^QghX1zX(&vLLI0}GB(dTSy$a6@an?2JR}GGK-Ljk?~(jx`9M#a1?b&QG8g z#~->TrqI*cH!c-g%$ShM_#{#htW-}}lyPY+66c`aBb9+fyb}k4S|X`%7eC!s>$Qqi zMhGbf`=fCha`Fp!QIa3aYMh{wYOAeTNN-a*(A9<&oOE(L@gonm!aPwP&<|0NW-Q@H zT9>shi;YLOE~)nkAxuoV##R6+qjAW?yliC~VMT8u)aK6B=@_HK5TmX=e`QRRqqOdD z9@0kDILVl|isjNz&gnCIgr)gRu9U!J7gzxKNQdGEk)WOTna#Fqx=_t(J@p7I} z7QDC?>NSgTu-Q0#NhdLl!?;PlPMecNPUQY37WOSnz&$^^N!|d_O6!3 z#S|jYmwWupu?!ClwW>WSsMI!t2U&v?TE4TSXE3X*En{L7aILb|`LEx2@f3pA<_t#R01h1G*qtD$bDRBZf;(h#o&QO;d1b>5y7 z@IqOges)WPO~EI? zU(wv$hQy|nC&15BFNIUI>5WCP9)hZZ|6;gk2{Z-$It1entynsV(n2meG`n$GTQRvz zrj(2-)=z9ru%JvhcJZ}j;8Xpg=PinTo~Zb$<@l|uu%6e_s`=Z3lgMTAqH=V0PEk?j z{MfGi<5`M7M+n(@{;m7!KQJ`*A@sYYh4jUzs~zr-WQK2XEQ}B43U7g zB7~u-02d~%=;J4BES40!7oAY^dC7yzn^%l8K03u?NhF52af{4YVOg~J*XRxThRtzu zpfp0d_MvvXG);@z(9IR@%Pl2nL3cZ8o{(m;Jmnv!$0P3315Zs4z3_Smm3D1arGAh$L5*^wwBsDxHYvxwdG! zBT7bZPQ>cK@}?D-Nmz9mmC97s2JDEXaN%5!o{aUzyK98%*@61HSeG=J5kt$UIP!{6 z61Oo$Q?yB`cWi*`6)wB$?x%UGNk$-d_C~^q9B5ahH)0s$CgrYl-#`v-6c_d60O3c0 zqqlVAmvNJZ*Dh|5>x*>d#pLV1iB9k0oamTo_nUl(-BqGzDPJDq{gHJ!6j^3WDjo2< zTgznwLj7^QGtrqJJrQ1q;^0oe!qMp>;ukM0kUoa<%5>*Yo+2=I6DESrxXw?9^PuBq z!xVO`;o%tz_ZPtI4<|O@bn1ASrc=>6eY|2B2zko|&qRHkicPMK4RGZsAb5^I+B<$d zu~p{;7IJKgETB$BmSCGA3!q(*1&|aOK2unzGzDpinn1@bm@G&dW>xZh@pU;F+1r3f zgEn9`ZL8jhc$?}ASOU#Dj04973dFRG+G`F6EIrT9p?-ogN66Dma^jr|RRE!o66Zy? z>Yp9KY&QkUG)~L1QA!tRFm|MTEhaxkL6+&Jsz`1PunVlnO9&qRyz|0+a9wD`qFkK= zY4lLo1mX)QRy|{3Jw;wDW~|gQMAqfR>FEJ%I$5y=#Mb#lW9!jv(nWS@YNR-StPkLJ zO^k?f*;vLyu?}8#yhJ1!>%xTsf?FO5An5XL(u`u4vU0AHvCqRxC#fgX9q4*wT8_|} zjwE{`G$zr=*zHVDx1C|F5M`moLfUV_Y9V~G5~)}U7oDP%OieI`;p$TiuGYQ=V=RVg zbheWtfh$zWZXl-ZtWK7YrE?IhP?yygUe9?p3ZcgnFb?c_jfbg6u|;D__FX4LL+*nM zQWs;1E{-#FBp*iu!k)@sPf2!3EiQM2z7?ox2MQdrV$$Xi;-PI~)))#XgBhR1eYf^< z53&o7=>AJo6RYzL1*qi1?1w!#33Prxr9%?E1D!^b3#U`@&Uga7dYIHyuxiC%jnZ22 z*2u{E0bIR`nqejyZbim$%^RN1rI?4{glW*K@ z{?%-#C|m?#DZ-vj!tQoVhw>2a>so~Ck|LdJ&3(l@SWw7#?;zT6k{z)D#<=K~-mx&J zj8x(1R6GUkrhQ=hlIT#A$r^2GiO>ms(cz5?i6bPjVDqL#gWHlawX+=APFZ^>b zfcJM7Du~3v#l5j!nvT)U#4s+HM^Ao+@+KLNK`4M>>^NAYflLo~KtW)i<8p86B`S(Q`_3!vWQ)%W@=uN6lIsfXEL;fQ|=6HuAU-U!$#%x368ihHLipzx_0qhQ^ld`o7P*1oIC%UE6g8_7M zx;BhEuCNXTZ?=e31%ce3PN6Sx0GY)KX{OS+HOpSS0d$-_Ty~?Cl3_NIR zoGvuvtdeuJ@dxRwWw~YM;QMM>h!^RqWl14DwQ?MPq}!3jd+J@D&3^ZeOBOzvzmd3~ z+IAB>`7`l5T)a+n0nR}eZc8?Fs2j`dQ1I6}5%RLTAXNLqt)?+psPev@? zahwfzd|F8$1!3qm8nn=7NyFCtY>XiljYkqET3bUa8A&XL30~PeR)*1rX#K(dX=Q>R zqk#c$6a>H7VsJoVD>nNE>I64Wco)m7KZDY@+1nY$1(Fy?VTT7=y)}Jo62O+(Q_RIP zH%SfIp=>c?5@|?aGE?rSn9EEZlWHEKt%K}@X`U2?STBUn{GapWkiV$!*_E|mLuL`q z`$s;=PB16$gYLEJ%%RBc(3wp3i3hRkv;Uq&u2y*$TUr5|EaY+gl&3z%KT7do96c|1 zc>KdThFRdp4T=)G-2wMK{@}s8&hfonRQ#^9m6~r1**MDceqS;y4Yxe*%u8q{mKcl# z?C1E#NntQELP|Wx_4daj45Fg<;~o37VQ1V zJiotqWB*zOfAkYb{Ec2uS%rljtgOPvyb-_qqBnIaJ=jOY1OaO!n32P{>C`nqn%Wwh zjSsCWVT4z*5L=uzmbUC5w$Md%I8wYf-q%59p@{|80RsS2MsL6he3C`emytDn@a$N~ zYhbMOr3Z`;l*kB!=^+0|bYfeam@wA>+0|Xr{4*mW>md#+rm*=;3?>}5I%~sYh7XmI zFE%Czmy91>=ZK~SjASPn!Dd!$aa#O}jXi>pSw?I>&6XyDtC{V{8~X9%de~CMLKKWv z9k*A6Wf}X@u&sN-GJ*Wm`^jb{MhL=%W&v1)MDbMf7Cs1Mks5ts>Cuv$S$txZ)XarL zu||v45`yCAvAVFkgUKrY z%l&`SSohWt75NqDW4*sOFJ>+KX*7SbjV;phTVe8IzRz~G*HVlR(x$fMd(iD^EA=96 zX=@T`O&m-++Ieao=3370TK;YQzE@Ek=iX@a;aJWes<}5gA*PaQ`=;bBO7qSz7b?F|oLJ%|zEqm$Uv z?XmK zJ#BvLf;8L;aKm{Ieq=JKuzfQWg?uu4!4e!)lupQ`uM5AiK&RB{>J}3M#{do>^NA1S zigasXOTm0YLV`NTiy_hrh#nyEb^U#@^}>RXUo=8TS|V74QuvA=nR+^`x&h0#5f|(1ib^=E2$6<%cqLr8 z_89Aj0?vLC1tTZms3co1;+y3{;VyW@NIaP%!DWsV9tcwf5rj5I$aIq_l0Dd>Tr0mM zXGjAM1k}O{bdi4SPnt>KPD0ESY|#qh?^HMplRze8@x^r1tQ{;v_RhV|tMqJO6$?cpwqo>C$O@Gd7Y7U^m00rP1UZWK z!D&J4<|+NyqI1?aHWnZjw#;b;Au%kdpt1mx`_$}*KN%nmR}Z+I^pgC55ba_swG=V} zB10@oLB@zo8NP=Bvn{jKJk^;(G2Dqk1#pn^x{3O!M z#|`*=L$05pkxeQZAN)~R*(fywvtP!B!c#gXC4!O#iJjUg!VEE$=+zPP(2hD04Wc4J{4O)n#;AsV?7N+Y= z>)FM{ooP7E^$8K6yG&7Kq~XM7hZ|jTzDU-ztr5I!WGi*n3X=unloFs0TR%>^YQZAL`mr0zJjtlK9C4=HBpI{pyl^~? z=v*x93W$|mDGe*T228Rm0XB9e&@M*_HCc*ANeNK~Lc~3()ESW;(Y`E)W2%>iGq{)% zG8lCU55X>$d>E#P ztg&2xxn<(;LS>R-w^m~=RZC;Y7g?}Ol6v7XNsRnuqD$9N`S1lN7+Z_BLE+$CB74dCV#9cC7NUhiw$Rn*dmjOXL81pSt^lzE3F+Pf)U9*XF^-9ZVK%90_F%G~(tBEK$R1W1mgTC6$K* ze0ss)OHqqFE}^%P`@I3>SXQXkst<gb=SLpD@TrFH2qiZ8;A{7tDcH=0icvm;7xSzrcYP(+dPy%uL_QdGbS68T zswF4%$E*wEYAX~mT5)oa*6@V4BD+CmWv3q>r>A5o(hAZ0}8At4Eqv0B}h zP22KSMg!xlw&V9fBdJw%w1u}ksU)QLQ75e;U< zYTO-zei0Y)t`w*QpTZbQDx|-Sl>mX&syEfk;q+k1Npe(XM6Zb2&1m$ zVx%~!Vk$vL3?o+;1~QRRM>>J?S2%_hjlrqiNZ+vz2Tx!#;s6sfN&a{Tox;oQIL_mafqB~i4i4FU}eriHj!A3H6)y_HekHzVNiz^!l(%VH#w~k zhz6$;MYkicU@^cY7){Utre#hWIkB{5rAJ42ZOQ1zm2vjlfc2)rW)IA%@gic#*QuV3 zLI^P9IR|RvTVPt*5g-dY!t^l6!|3ROMmCzHIRrho9fzAbZ18kM;Cvxu9Em2)6l~lv zdu{qm;<_hZQ2y0LzfX*XFD5n)vH-|>qh6AxKpcfZczFy6)_Z9^k93tC)E1|k7|9q` z2YD?0h_Asizl@vB$Z?X4vVgr#KHvpWV*L_DG6DmbHDo%AhOtmaGt-aXHV$YCZj^!% z*^LV=Tw4=1GsBiFSi&A~I?;h8E`v{4eKlB8<|GiP0YH2tJ1nCB9V+BC&bug%Lo>FH zwa_^-OofS8E284GzMaG#IL3EjESlN!S~lR+bexgYB;#px>tycH&}r5)Pi;pi6gy5r zXA+ECXf94DRM85fZw?TuVXm~b|rC|JGSJomeS}f#BBP2iWE-Wc7$edV{ zL8i#e$YF}j@f|=jcXo7=ZOte7%^)im@f6kwlXxQ1jceHw81t!TlLrkgY>SD3Y&gaz zx|VhQHG;G;Iy0ayl*7bDf71yobQON7%b9{&q7ycdhz-&(>0gzDE~A1V27-lB5+CEm zrw3|uO$^~Co02$>l?IKG2RpJX=3W+o%OjPdGwh6GLSaS=OO_5Fi=PrRREkICLVM62 zOr#!mV=*nPGOIxtL^$kB7a1F1F+w}RLVixLs30d;tceTt=CQVJlY?yiCPsrk*l9w^ zXl$^wBX)F64>g4>t zoo&>KbvZ;roeLroZe0>#$Hu9TfhQBKZ%uG;pvJqJ9Sm>cMnq7a9;o)OVp~`E8OK2D zU|%18b&x#i$3v%GERN29;&D7&+CbyD<5Bg333kL|V$|9^9!iB6sHH;{ezK#R=zj9n zL2pfb(6SL$xSaXin=E(m=iFL6i5s`aKTu%*#nlhe^~sU*L3e(#(=XEf$)4!oIY3!l zsEWJ8THKh=l&`>#DSmW}0KbZA{zPK{KcPx(-t_+dJ937y>s>MKPu*&+3qQxZ4p(b{ z2IvmZtPWsUi?9PD6vUEx1S__^*sT{k8a5EKY;BOfaAK`JnON+%Ve#=_AB^eU14*pw zlg9^rSw7fU#7-}75Gygj;6Qnm7S6XiV2RiOO#ChbDwc3Cr~)*gV||ULe;BuMH3b3S zN-}_DTV|%v{6Op(kO&dmjibhJ{1Mz4-;f>^aRAtu8TN&f{EItVU`WR;F|qXwfr`U- z&Ip~pguviZ0skYGv@3y4H^ZHaeeonLD80Ja2TRN6f*!aX@VFvSx9Z=&d z4@MLd5rJ$jmXhB$T&Q{dJ1EwwbsUp@?-B|g98vyx=8wflz8=xCoKPCd!9^k!Yg$NG=h9cYq z7(X@u-|wVj@zRk10rJBzL6SFt5oNc3SmGIgRv5AAYNj&8B$CCjZPkgT3JVG^Q$85m zrZj1B!~y2BWQBG|oQb<5IY}8Phds1?Q6+*u20%Soq)5LPOea(6J~_rVeOpAxK1~7A zr?HnyY!bi}1APr(N6lbR0=S!%OkiP*5Y{E)! zN+B?E_WT(rg?-LWnS)hS6gJrB4vwPS?0PmsPRudKE+)8dq8F6dHX*Uuf)QmC5sR{N zNMjAxH!2nX@f{;+u6Q_tO*#T3)y*Ws_r1AnIFc=6t7HaEFGeE>4HaIDm=JL42*}-b z1QYRO5`LTtCJe%LaS%6F^kN-|6w?gj>IHn!{ip0rCq3}Z-RJn*GT}gs>4s>A$zhaI z$vDrW#GCDxP^*`p?4%IBOut16v%Z4g zBSLYk2Zb^XGDkxBwwK!CQwX#e?il0E-|`_jHDV1Z*daDNDF=qa%LJ9HW`jDPXq%r* zrP-(0iYAwVYOd)lM9Rfs!juBkOU4>*6=6X+AhHh&ks1@JM*iw1rKkZ5Y(Jbn$mVhk zzXFP(-8z^HXpJ2zj3Z-7!ST&kWT}(QiQqlC6U>hrRGtAvqhYyoWvma<;fF~ONp=M*@#e?#BNV6+>S50EGvH&5Ei7mB?Sq#$wvaM zQj{?65+urC1Cn8lttxwzIKO7msIDYTaMrg9OtElD?!9)1HG6@?WH8u~a9~2-Y5ZO+ zExFrC@Cb+22wFVOLQI&NtS6FmXj#s3m!zQ1pteFVh?N1lbdTKu$S&0r=?Ey6Vr2#d z!s2jma=?HLg zxWpMC39Io-bg0nEg_h*n9d_MNdGb_yYBLtDzVj9VLN ztkANvIAkjz%PO=?Q)Q2qxu9}D8%b66NaEU#EeG)I)zqzxW!k1K={Z`~4Gs>pA{FQ3 zU1zt3vb%_~Tk}C=r%`sTl%4iLWLHPo)l+tLA4GOllwCDtSM@<;2YtDq(nHx*d=S|| z=`W}(r|ilKWtS>LJ6TWd#HyhJHcF~KHe;-8Z0cC)Sjm_|ZE0fFmU*ei)GJzcT^S=I z+S}RwbNs9Q?bPV1gP8|{nb%nB?X84pUKFkGF)i}~3sQC?Ys>aERaUrCGqmg_l~o+> zdqEw(nKjHWlq>4+9}o-)p@uR~a56(I>II6*q(};fA*g60p~~{mNK++b^H?aekK<<7 z*M+hJ^(~wBrKaxdI!oW;!s)gpt`l08g=UE9L6BG>ht{<_%HP9 zpWPPBPK6}U_OgQ4a@L*LkN2CMD4_w;NK-qP_<9 zXs$nNBbQW`+aziMl-)Xm6F;!BE_0`eTCd*vS1AMemSr`u#@r}61Cv7doC=XXA%B&p z4j-E*8D|3JihwrB0Y{aO9`7HDJzYu%Y`P6Sy_Gc)xVg}2YM(L!4>CSFmZjhyGoY~3|_ol8>#=ao09 zH@zNG1D^-)`_*HbP)}$F>o;EFK5(iwQhy-5R~y=YAl2=C-WvaLYrN~BU$e%w;8D$W zCx%(SI%jHdM>A=Q5?t`2`sFWEVCcYJb!a0G9g(bR%It4a_WL(aZOOb!n$xoBKzh+w zlOy?9UCT(kJUI09-jL`^f|)ylnPz}~<7&yA+LF1nOmmHeGS6z6KZi1JFhMqMFFgZV z493Y^xWNBe-gsr3m2YQ#3|(5Tq*hShm1(EWh1&_1&IL8~prM~x4ddD&TDHDk%P@lg z-HdiwJ?~~R56Mch_Y1`|cB*@aVPmb%dP{w3m;I%u1ftFSJ_sSg-YJ84nFy$f-?B~_ zR0fo_h@VEr&w|oQZAVijtCsDhm8DU9xYiABZ>n@F>VhU%1OQwF3W`aGj3F3fTeYFB z=v_mV7X`CNXc<^Mp~^LCRcWOrBPXimLEVbJzTjFv>7ME zmG$6T+c8|(iZ?ymIcO?Cet>Xgm!i%AMm=Mf(G6uTsf5gXE2~9w;RFrtuB^NUgtYA0 z$PesXS-BaXY85A}&Ka)!CX42IYMJ56>+pSBDgF`kwh@mv;CqMrfbyo~)FU{pHaR5_ zae6G{wARKc(PIXW!6Z@SOqLQ?Tkx6v80YX7go#5UNF44Y)a-C2S2M5r;CDuI?8 zLhWhVEi066{MQD>ga&b5zYA3GN3SD^=NqU;A#%4Qgv$vL{0~62Td?DapZw7W3GzLj z?#F~q!YD_;sW?VWP^3j&JopS|=T-`Jsi34N4e>ywsUmEYhFGDj>hQLf1_~ZkLP{7a z9)yC6f@~pd6kr$L^q^1#Dg$UM-Z;tG3DBJsOZ?U&P>^4WwD8-C&!DN^8YKn4M4tFv zL)hS#awdLz@V>1A`H1pwQ>$2)M%mqRj^bBVD`=LPMs#(5 z5UI`Mc&`f&+Bml4z{zlqF}__{xsga^+t3fnV`x{P$$8Z z9V>uLP$6TG1GP($Lzx6q0wxKWfT+tHcA5zul3+@}L@E>9B4d!lH_ZgsNiZeYh!0IB z*eqjUEcFP(WAjl^X7~>gS8dQ{~-bgLR1iHi zt{*;M81bekAsDR{LEm4r>;;vYI{csLvO*)5RJuY?yp=TbXqEOsFbfq7WZYHe=1_J} zm_kJ_{{^jDXxyS;Mc%YU-E<9*wCqu=^wtsG`@F@5xOL%4(gxCo?sREGZ`UWDyCPKC zn%TK)&*o5N9ZY*I+lv(m8f?{@9)g{CLFJmD+Vp&AhOvpCv=d@s@MZ#U0uPk*MR$N@6%yZg;+qI!L%D#BlSdExJk}aysKl;2FX-8#tg2VYz%z`~i? zvR}}ykoP|I=GM~7UdC>kGW~8$`xq-@+JbFF@Qb&O9hNV*X(DTAYn{+mu4RS>W}d}t z(zFPnNTv#z9Fpo_a(P$kaHtH~*O{GKb~*s*zm8SHJ}3Pu5BWT)BZ5PBlt-@#W@lDv zS${dC78(hcr(eXtNpoC}=G&=m>VNyd0WI?cH7+s)wCs)C5Xd~tik&kffUEDl?DbzbXZwzMMooLFfqA6cgRC5uN zPO~wiy_(Bi6~WAJgPA{I^2KJ24{~lsmX%RU9sV*g&zG#OWnw_5oqx&d9Z?KgvRaQN zs{?GwYAKD?Xy8~X!7{OmHl(};4Dn> zF@Y&1H0B;f$?{{8{#_3<-i5*b{Q? zqrQxV>GJEQkJ)2<@ja*Ra(l$MxK51+T z(GQJ$5z8shVueMlUC{z22nUCLhpzMtw3}YBwEB#ed5#Had+ABktTnmHN2W(3u}d=u zGT32iRilm-8d}mvQ^6Rs)ojgxFvb!_dnQvuFzf>jGR!!~hjWgBO~dN3#PWi%Mb~H} zpGEwWdu1m>YaQUXS{u5@#TVnjFxLJLpxsD@{o6}Vg9e32?m)tbju93s8co=kfT3V6 z-B77uwGGfj!^6r-+B;OIq)_@uC8G$r9aN9=D6U{_KJ`%Re6!R>1(ho z#!iAg1?!RGMZv<|F8&8b_}+ zoFn(TSi{HEeyh6@n71Bkmfk>wscy|CZIBM@t^2=BAJu2i& z?Ujqx=$Gs@`Y&dU%G}al9lIY)jct?T8!Z=OL&t+vMRYf*sakfhe5{nsY{bGSEnIUY zLkm)ezssb&!@KVnXu~KVH?(A*0u$D|&wIc8barVio1RjKcOad*`3lgHmI5_BG*M`C zX=TW@o5JP6k)}$t?8mjC$KC2M?L&F*x65a{8?E31>Qc6`{s4j7F(11xjZyS*ZNYt5 z&vqxyG1D-7%4MV#_}I_bj+r+Je`1I|m#uH5|0k3^xpHhu!27)Sky~l_Mt_3srcmZ} zuIuP)G%fRRXu&9^JD(Xm154P!%!OstsLO+y<@jsHHX`qb`3knju+_J*Qtx-GLua8G zkA2;2DWu)wwG^oblTRV1q^Jo=M0UGuRLAImv9faPL@Pp;LuZf8HF46YMBXFP48KhD z3LIiq1)Cq4`xQg4PgB40Y#BAMy_htO@O}Eu(#tg0&I7x(P4}zAcOjPMlZhjPBc+%! z?N=}VXUr+Ikw%UK|`bmFr>IRRS6A!rIdk7oZvDBc00i{!9=O%yFLA# z(Q9RK|Cs_qZKCmoRf+Z0(@{Dp(!*0cUs#F}(GOl2B&5(KJ5G_M;j8EgT;OoPzd; z0`?JpW|ua!`z>vx=PfNWs%;%DK~ApBZ-<^CLr5K7!D{@%1AwBM@A2Lxmr7~A9`&nr z$IaB#^Y2nG+)11=Ku9Z-kkHkzN3cIKw5=q4|L7E=#q!&a{Py$w-1hv=08VIRIm<7& z;4XW9Fz9A(#y{|qGic7)K?Fe2Koh9$HW*4x&S z^o^qrQ2k9%`lFnsw<>5omA|}nC;c1RSsqo-+k(HlqUzkOQFTr!38TDer-#8AO0^}r z$s(CsMt=rgf|>h*Lyzwdj`$&&t*8mBWH5~UiRoLjsEM7XWU5%>CwrB|@0|{BjqbLpE) zu^w9GS8tkE5mjG25LHk2yh*Y--Sc)S#XpUxldA~)c3Go((@dz)>7LhTM%Df&8P?Ot z<8;r{C4_qq1s``uQStW@ZXK{5k2V5WS?yxjl@%rYy8>8=m!PM0-lx=?W&`m)O1#?5 z$gQ4Qg6LNvB!H$ff)LOcP!g}r0ij3sgI6f`8@~e-0vNj&)#z8xy^Ff2Zv=;KFGZoZ z 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

    T8Fna#3O zFyOMgc2W!(caqVk`Y2g}+kg7>Q6R|XXN?koAq+UtUMJNT8+gueT_y0Z3p z!TW;XS2h#+?yKC&+S`NoZhmvtp5zHye;5X6jQO0aLwR~}_1Yer!CYkf| zzGm7J|j?fuj1xmZi!nDxAL^!40XshO#N=^0#_Ic~2j6#R1ZhNoc{HK3(kBXjZ$uU5r>d#;KaVOLQ-js{2tp(#+0~WBgCBt}!5+IZO&9bm za-rod7u7p?Zp6#zUVbHG!5l^Iw0H69JCqd^96V1c5`Hv>-fBcpx!QdE+aK%S1Lk8d zDfl4HqTcMBxQy+?eLpjO)An;r-&1uf_>2DZ9W<2s%Jq03=UrgI{8xNk<16$JG!{>( z2n36}F0ANj;rQxBR7vzPGq3$reon$TlP7zrWf`RT#{IhTkq~3Ist*)n~+4RCyc44?8n7L^Y5cbN9L9gTb#dBLOkEVX_5*!wL zO#LBaBt*+47z>Z*kDm+YpSB0u)nOca9JgB?O#QVglQFYgT1V6xEQOpJQ&ZC5Lrf6B z5%7Hn*P!wf)zD0R{t_bJfRixQ&@@w9AGrcbLzQn)Wd`T=!%rNz^yPp0yA5D$w{u{X zkJSM?Ie4C(JUrG8t+U-raE;S9AI&4amHOX&ypQ-+#eisnG8i=o+)K^iqGJw^Pt8}q zg@8wd8ILN&(#V;|U_-Posh8SyKBJQ}j1;=l6dFoZPzrmL-*M|I?N@=+?#g~`&D{bF z_qA&y1P2AFclb;G?jZk8UJ;i=q^``#dzGJ8Kq*-;fUE(Y-B9XY-X?8BvugclUD)kW zs@2&;!I9>+BBRTuvh=o}S_ZTkD5(kVFfU9mb#0MebjjCW^N`!MJ~P88uplMgF+Gl+ z8AsFtTpMa8p5xxD(U24D;Wq1*kEy)AP&@hjMd$SOLCp}zUQx`BQQF=Eu=qr#yJ=o@ z0q8j!1FLT&73JKw1CV+{`$fqY?dI>m{~d+@b7~KW|GUKSf0r2k?~>g8qTc(c)BFg7 z3kzu7EL{gdiL?CQ&^Pjnuh;#tGmJYUe*{K%yJCipk)NPhRsp;O`G$W>bMoWi7=M4vC_$b+-&$0N0m zw7lT{p}zJH(ek0M=9H*Avi=Y|C)gIT4i7GOa;(;*L8^ptc7UL*7ETyqUXbJD>R|Mz|;ap%9#YpI4Zro&_FRr4~4mdyxSWz)H}v{08a zqZz7GA9Q)(iYu5zK`BcYr5}XPAS;0L^4@0Uz1cZ$i7P9BuE?fjt0mna{uJBmy31@) zz0onl10eQZy}9q0nve0+&+;OoHa}y-{K( zmX3M2IHx?!qC9P=w(E5Z$YtAKfN9$j!l4q?N0*C6a2a>sFm?Iu$<1#cn}ki;g)j)k zeTJ&4XK?;e!Y}yktyk>j+>j`Qp#`U^`$bcUshBLW$A-42<@0&xr|?5d>3n=`JDKo( zoktZgw|&d?PFD)zZMvUB5*FK=-W2hO3;`=GghjkxscT4ipi@L{fmId}M0eYV}{AfZpqC1S+q zx%|@b!kmxY+!j}mJ#`&1Th%&;Z!9!pB?zUc}YLI_HK zhTF}T)`>Iu62rHEup4g?b|YGYq^m|@7i5pe4ZwE%yl_j{UEYHNlF)L~L-Mj=xr@Z7M!oXvMq1AAv66JiD0G1*rs3@ipx{{-?CpTIsK;3l|_J8g>Uv zko=?6d%No0&(K(1!~`u!on~71iyb`6ciP;C`O{e-z>S;Ucvtphp87LS1;LZNKsq+= zRA%nv+^Ft!uGibbXV`wEIv`g7ktpYuYTUAv=ir}E&reV-;|mA&xkY}0lad$h7X(;mPWJ+-Mf z6iY$-m|<70&x!v;{FGIKarZd^fz(Q0g{@TBTi(u>_(3Fr=APQWC9yH_KQ-$b6ZdPv zISGPBVQ5OU3(R79nBpXs-)V|tUv+-RlQ{x8iJz$wKGu*+fK5EF4ghVQcLvXODjUZ{*HH#FK8s<+bx2zRw{NPUVr`k zc;()KbqbJUb)8PHto!!5&vd-5+B#lRiwU9*RP3vE^J8|Rn!v#ui|phs;^C3v2b}W-%Owk#|tpgS=mk+ zuVND;#A%7JH!P8@_B^L~c@K&9!h=(s!ZzkSM#QGG+>XnV?G`Gb<0b0xeLRN-lLyCO zp{EEtsa0cqthSz; z9mo{tGbkpVc-=H5&BunbyI;B}KQmU@r(j?Sx!IpBMfWDO&B`^Qv}=o=i4w{l91y7JBf01Oz$R9pyr7j3nUjXw;zJDO8MI%2$!gf~ii7*Ep zhs>(zx`^hIup_^lAM~eGP;OFWFk0 z&@H`GsDhIRE0}W{4kvDi1L1fNWEXwTND~!w$%T%0afU*;>+ql|ikwqjW-eTbSoRx@ z?)B{by{%{QEqAl@o4EKhX1k1Clj@{CcMzIWlI=^-jb9z6@rj$J*c0S;v3h(Y>Cc%vhxP3ECPIDITr#G0z z+bNsbG)a5lM#@PMgq+#65i(%5k@S$H?|U+v98;H*PhE|-%I7NBB)Ou;O*t&=?XPKK zBju{yZ6*GJ!eC;vQ>ur1t3a!pvbP@&d$(x8KMYJk*XAWBhdo0FCO#gvE_xT{vv#k| zJg_c096H1?W?cB(TSO+>2(oGNsf^c|KO*_Sww`9(pLEzMK1=7=)(@#6G^52E`q;yC zO`CwB-O8cnt+<}VNt-d-?ARb8n$fIWx&A+ypcz`mols_nADy5%Sw_kj07lsKM9=vXtIFv-CDpKs`Auv&@-J3 zj&lSU-1*Kid3u7wV(f&}ulEG9r<@|;2b*Wq%urL ztbCOh@8V*7B)-Zmn6(Nyv{F%{2#Uu9MUBA*<Kc&{GtTzFF9 zHTtnmf3hFb{nq|S?c>o;rujc&lkR00OUx}p)Wm+jC-w%o%nqrc4Tdlvd(Mn2rU#U3 z?o5^<4bT(zGrlU?5v=(uoxk99>lJEoQRrZ~bc~*=G|)Uxw+JKbb? znqngX%?{VT9s2`@2}xgMp!1Gt!$EiV!DM~0>=v?0U!hDh7WI?aF*5d^tlUI+*tDvW6?`#L zvL)5vgGFW+&X{F;`33-ZB)OYvx3(TMgVeR{rgu03cB^^bSjyzSNuwZbLIaaSC0ZIW z88CI!hrMst)xOs{736d4-1*#~g2un4zc_Nv)c&ErP;huW4qCJJFR&iLb$L#x4@o~a zJafMk+>f!O(LLw6!~gH9|5WOqmniwN@hjLI@o2!O(+!xAp0EF*`oounXI{#AR@T{1kQ6DaD@%4a~=RT(iBei-BEq0y?(s4;#!{IA6m|3!^Hc}pDMN0{oKk~ zdtHBV+gXGWt0SkGa6AvBpM(8~S56W$jHD%V9+?f>p@ACxSRxX@DsMAKVe_!lhZP&B ze>o=;^I2!U;AHau#ooMJ{nud@t@nAz%&g8UA;qAN(}097jo$t0Y$S1an(?Ka~;+QvZwO^o+6-4;j3GQz?)Py5!eW>LYIS>A1%5vOg%! za<_7Yf^Pas61+?G5(ouHt6)SIN8(6+KU_+`d=;(Lw5W0<(=p>psuqZlqp!Sb?&|d} z|5cEBz0-f)8NBxJi}HrTYSt8x1L;pCN&2nOZv#Qwc^r@eBH z9h}OgGr~7rU}^zJuuMIQ;BO~pn2I&+k?AbRJ!HjO#?~NTdyP-x2mxZhdJ1BcZXT`91s@PNweAF*MZdvQX2F48 ztp=epEy)5s6cJ3;99^kDn~Y+@fD1dK= znlF7jcKT;AGKxGdMQKB41^O1~*fEPog1QX=1%f(I-c55eJK?O+w?IuokpM&fjBw76 zI(l6B+=|M(0M8ZC5zJtKq=M*Q9f!!hQ|t)kXhE`WC_(49E*5#f51B4E&ig~>eSw$0AJ7GG=xQA?5jYFYX@O8a*nbz;SEVU%LU;56CiI~R z7?H_PZGXebYtC6@M|BtwQOCPt9*SE@&N!c(GxZCoQ=c%W_a&ebop9pDVO^o6dmvGQ zeL^GSE5W|XW9m}=sH@CK6UA6@$$6TmG&X%yFnVHI67$(d2~WYa^gU~hNa;UBnbIU_ z((}3ON}9tlM7sIYN>|90}< zZvNxMEotROq?HF^FN5Id$9-w#UiKDAEA2w|m36+La-U65kQ!FN#H|cRas-Nq9}dfw z(w{6X&79B7`2;iWr=(LRXa^eDqDbLFRQ2D(j)P0GCB1d}6oYkms4TYt)R@ytBee^0 z4wn@leN9XKY3`Dj0+FZo`%Cz2sEMzl$B;mFBajmb>wR(gXY}N5e7K<4lw_c7??Xmz z_@EM*g2T5eo0)8{kR9t0%t$s{-8$T$J+8Jx+&t57-LimpcY1Yd9>1}#4V9$NZ>GKZ zt$b6Zb-CFtrv6C{^Y!wp(fR(8`F{Tp9`O zlnuqu$7x>dL5;6}^G&?I#+&qEZoHuLRk~i6WWfC3=H2*p2wQeADs% z(wzIA6>+inz~2a42vejkwzfkH8l=xpj{|BPRmd_Ppj5L zl}-i~3>bzsFn9#Ah)nE_aF^6q#pbtMs-0kpuWaIya$jU4CmV^I`VrjFWl_Y516jcs zA)pZA5ZPe@e*WtDQ)+B?5&$#`F>^Q({!JC94w}EDT+KlNXyiu)eRZXpBw)$9MVm1P zA@h7X-A&bKwW39Xz-?*$9K%{_FdR{t&zeybIx8YvgUuOmd-={e8XHYPD?@cwSZ&9{v66&N&XZAhPc#bCF zGiLHd+%1C%DUad@+pSJnKs)klc}p0#x_=Djgw`d7Tlc;`>w?;nmtucq-DjW7wq0!9 z*HmJU(?wD|+8?sVA@??^CuLK|WmAhYsf)(iQP_`58aVWaD9;!<*K2Y^I=X^cW zyum$e^0dfDo!Z!Sl}1nsr_4yGg=|N=t(8~M{zli(&d$FUZDs*5y=!|h?BAUpiWz)x zYQI|={dz9Ob;$qLWS+ zQ}QCpn`Y)yt3HV|`aNaZLqW(gU+L}2(zl`AEYg3BumZyxS=GEK}m+U zLPpGlnawxm9Q35oz1Hu6)x8up+$p=93&$mpYStrb(bxS4~zp@edGW zy{;Ao#BD8ewXybEroY1cIepWNOwVxYne!pUZTsM-4>G>u+usDPzVUy1b zJ7W!?_;1Bl=SR#UO`8P}-^IKe(*UdUFgZq=2iQ600lsxW);J)r3oxp*(MvCg^v(%`JPXO{hK8X zwZB&PtS&7f$6IEEYPt$pw7*mKUXJ&}e)Sutiq5sF+BbW!Iu*TbWZxY3*F69SrVqdN zO&^wtA!JT4h8PDT7+oe?pm5)^Mf~Vrj_HGwcu@Uw;^wCy_TN&nfF!jJ*g*sA6;;}a z)e=LQcP)Visuh?w4I#T!2;A!7xXZdpqndVp7!+Dgr$$r|MU-pcoW5mQ3zKDO3zPJ$ zTeh0~xF(b>+sOm4yZO;S9;;}H>771H97fF*{202GX(DY~!eng&QrDv2vWRWfFcxM< z-EQDm1p2mOCf_nOYq7CmrmiC~C}7ArW>rPMtQGaPPlj1Z(Z9%9KcxsO(&go>pF`Td zgJqD~35M9hX+r8L&EOoVIM~d?xb02lcDVb^vhZfiGV1_S^xd{E8}RkGLU<&9vPLhn zeX+TnwdTnh^Oy#rQ8Ae2cP9k^m_{^@8AS6{c&5HIo}1Eoe$57^@hW9D>=)#+0QHyT*>e`~HAR^H6zdr|6Vu(JW3a%8SmehV+Yzin!blb+zmY-gfl3 z-RanE`H^pDCot+F1MEQWQ(( z8Ggb?{zMLv^DX{@&b?SN1e{eM~Zr`muh6R{8`PA zncc*?rHTD_rH4912NJwJm z9A7$O%K$Mesu^P9?W!=dJoLj}D$sW$i^!YYruC-fsdClt6Q1;956G#IMG36+k#@$6 z1giL*oaIG*a?bJ;)Xvy~-l1RftQ~ad7o#k$^tXiLeI0`)L!FJtqZf6xL>@^lD|6gw z$S6dUvvhIgAWUBBQp(kk26|x3%TwP{5{ocLsT!U_gWvp_Z+zIx9&LMZTaAEN zHQU~;{pNXF^oq3c;YA~NVB7so4?t!Ic7LM{xG%ndzhKSS33Bo<7WyPFB3b`(wqMf# z8^&h5nHj#-IUA2zJsIOe92wpn^x&>v3S-KA;{a_?3OVY$gAV54u$zhiajnmfVIvYRhC#jd@zn|G^I(Gz4c9K9tFTAy!<)zst*8R(FC z@~4Mpk*2iO_0Q((_ZFCs5$}78U13|@WMKwZsjv3b@531<)_p3%UiHt-h#l5qPXOx8))}dvvzUn;iVvYk=++hbC7-U zGy^H@)&;DMF;Sj^)kwxfnJj6hMu4{Y=ElX94444&0h%>9 zbgPU3t*(DEi_qi?8W%T&C6u~`yjWY)@^AB$3TvhqwPG+$uJ# zLK`q7q_mWHHT}e{!TPDJcr^ucn$cNpCr@}0SzQ_m?m%HmMXMssp0G?*)7CR0-t>8# z8nur&=Tu{R{g!Rn?_f8BoKN0q>GvfkduvRK_D_7qy67l|l+90YN4)IUu2mWJ?h|(6 ziedLqd>2yo!-YgiMZ&&0HfiWWC((qk<%voAeR@%NEh6P>5h-7bNcn7EqP)&XlwTo3 zbb@J0qP)fzDL-pqBvMX>Vt5TMTry<&6rCOvtd`dPSYynr05JFdZmh0w`^Vp@*!LGo zTVDMQcX}J!pM}gRc^Pxqx$&Eg%`KI6thLr}DRt6YYl^84Ns_UrLPqg=u00jjT(dC# z`W$87_(_K`nHMRnMsvcFi?3&Fs<1KppapBUs{Z=g52D3Gp9()LY2&dTcGRE!xY z(NLQJBE-Lu!PeZZDtH01BV$EnL~#*gMMX%NSw{G_hh`yu&Ar52SjwU!&wuy-;e!o< zjXKv{v;{Z68KpTUTkH?Vd|#6LJ(xvH$6@RSZ$UhoEC+=K!&sGBoiZHFimrn*svn95 z0a4yNlVreY{zjdR-ba=Qp~1w$;rhhXkB8%Z_-7f%#OGV5F|pu`&!5-WJbckP)dyt; z#?5JE<;DPkeW|n@gVVVKeq0Ww8q(OJqWH#PNqf}-4gGI}q@0Ge+(&9}tZV&zV3vq!-h%a@a>399 zA3=qBX~DVHHx^?GBP?IfP1ZTMH1xr&#QgHO0)_Gxsk}wGMX+{xyF6zclq1Qn4F(k8K9mcASx7&x9xT#=bni z$0*0xOb36%`8Iy=X!K-IbIT^!sYvtS5FU`6&GBu?B~t61=G}_Hakub?txQqG@1)Pu zPhU{axxQSCz1g-z{upcIB|7KKGE%wbc}46;j&;wYcJn%Jlz`zx9eD`3Fzx`mv0iNb zK57P=$0HZU?sIga=ht2!X+S;qG#z0yCc|{`Y5` zc?!dm_J_oGJP{4yg%Yt8sHE*?m%D=r!G? z&^YmBr}hKumQMhb(y{@WDfyl;3`IyvZ|hC&w7_0@LG(KYc@i{Sm;kv%ZS%1-X@3tj zA5b@bkYDpKRkxk+KmiEoI8;FGE%-8lfKZbDcV8DP2zN(rpevg~PVKv~2c6JS%{r&{ zskUFHUZSlS>wVi)`V=o0CWC&}c=#}GS%;vbC`yoc6P)=F7b*s{#?)fg4PxOUw zV58q{n;dvN)P`dkYj?)(9$G|gtqU(sl;qbm*{|uqr1X6is*n4C+mKu1&pktE>O+IraYT#HHT+@QiLOt6g2UqXyX9Y_1-5;s9hz<=0ZlSw9OoI{ z)onl&b`L7U)QyIHuZNOA6~#poLWOV@Ffca6&m0i6NOS#Po6^M7x181yYOa|Dk8{Li zE+8b(HG86)Qk)N!8+!ilrk9>iFP)L}a4n~~ z-E!z<{)d^E`|Hb0(aVvapqJ(o^fK>L;dOhDp_iLQFQ3K!Zd7_n#qP{By@Z#2rrzB& zaZ~K`8G0Fi+ozWw%F;`A^}vukqfVC}x?KJ|S0jz+OpZFYiX=PkWhho&3tJbz8)-gT zA3E5e<6M1hZ+eobFn?O01dlSGbO_+;>!BZKH#qoZ+kG`Rh6A4L2clw;eRDbE3d8}h z8u>b>cN_`wfi=jrYT0T#tx!d`TZ|M+2l zK4X+oT`b)`Z13wecJmL7(;Q|req^?Y zSG|SpJ10ZiX+vLPW6e)&{S*`9xP>4l*kX|DHVj1EhJGh;TV{zcK;~4cn=~QF$ zCI|nE26qeFAN3%$mE&na3f zKyBA66A&-+CJ{zEFSyiLD{tU9?=}uZnxA#>^-7fd$P_GYs&Tc$5XN^M%yI)(l?gx< zahKj3aWCtQxL5Y4+wXXj;oD1&gyTnx7muCveCm1C>%QLLzH28Y{2-Djy4^mvadp`G z;X0@G_x!An)F%1qwQK*t&!&dX=d3P|JjSZDp<;J~`&y%WB;rw(M^zqGb!lYS0L5=i z=lIyAzjM1vt=ZeG+0R>5yR5k{Syd@(?htqSP43`NO9vmZ>v*5%@|&&MPg=8{=5g-L zB>&!;_2M*67QmIw?a*Z*n6e~e|BN+(?&|pD&;>Z99NUOsywFXS&ip9`q|{xtgRrg7 z@mT(2{!I9LBDL~XHsQw#k!9CzZ{cFYKJNW^X6d*{?Tglm0WlYi0|x*55w+AlVI|(? z*JB;z+2pL4>9uBW24mg2PO-GUo0KG9x+_3kH&KW9P)4fBQ^DVvi5in9X+~nZK2}&|GrJLX$h~*{ znAlykGkUhk@JB027tO3E23+(rne`!j(?IYG|1-O&8~he^OL{`6;Fgz!U#5KRGgen2 zlqq!=nt?1XG+*-0OH&$9OTkQ|ReQHV_wC?CVXfTBny_V?M;OrkiqMl|Al^fqD-7T` z4c!V zD|o45TNSGn>J=3=;S$14gQ%c*38+YjKme6+&H4W3T005Y_G!<1KIi=N=99J8T64|o zm}8DP#+YM{IhkZvWkrpo6WZG==)6li$OBVmBp$0C3n7G-4m)pmB)?U>v*xE@+RYPX zww!CW)u5sShM{QU&1m!c10d84ce7F^cpD8KQ;2Eg*ntHfUzQxUJ?6ZDF^osMoINr0 zNE|;0eOzACmMqF;xZCjD=~|G=H9nY-V?vR@%Yjxo0vJ)0b4#vMlv|X))0+8nhEV5M z`?|PM^K;L(Gq!rn#)&3Ult?@%tE`$cI$CKGJ(~)#Ty>U|ZejM)nMnf8d$y?^!{SP> z!PczbC|Ta8cK$Zox_n!4;S4RU!d8 z+$pG&3E%3x)Cc3pzI@_&pL$vKwFdo-pPzUK&-2w$8EuA%9o~<5K;NG{oqDEqo{(Da zI)>lLJ(|z4X3CpcuO+G&oePdC-(y-@J}~^wi7+iz!wOQQ*qrv15X-7bKM{5}EJ};i z^yiv29>Y>FM&pUAQ9zAB4ck=pMLU_+nPu3Ke!&k;$OjmmR=P|rzsx$lbq^FE1WXP!jqq*X0( zF%KAiatV;Ehee^dmT2A9Zpuzc#XgTRHd(N1Y;sU%-2t&9D?4<=K?Kh&Zm14X=GN$l ztC~DsWR18FCTSRxX#Oj_G#AzHsh+Hbtu#A(mF;jGOHo_(Eo{{8zu%eZD03!16*HL} zk7YmLK9VpWNj{1BAnI(7_aOdk0>yeTizZ<_l3D^tmmcFUQ3vmQE!C%Y77ktM7u#2) z=D*CDOnv>?jilI(*(r7dCqg9IDfe{vrEJh?NbqKpP0y!6&k?YFdd{&jo^G{|o__>AfB)~( zbGTH=mUzv%ZTT_ueEUB~&u1~lD`r7${%_IqS^qRWX9SM;iJ|Aq{vJJFmZImc8+yLg zqvv-VP0u&JU#!1W%SW= zq{$7Rr{{wI|2920^tzXRA1z<%XqhG%>RC3F48a~xsCIWekvS`#2))R<5KPb>!~_&x zp#!*#iZve@8Ef8oNi3kp0dh^zd>B{wJJ^A##{tF8C$YSbq4%-o9V26bPh;y2vjoAO zm$x{Sb)?xZ6nHDTj@_E<+Q#hR2#I%+SdV1Kjx~7{%*7d|UQk)Bjy8AVQ)hK_-9dJ? z-+bX^Zsr4;fHZF)E}6BYxb};b`VI!-s3Vaa^$oEs88c-M?W26OSHmRe}kq%<^*wO`U9%Hef-D4~kbaDF30yqXfWY~m;?Z>jc zPmh6#s}x-S; zSg1G{owWh#JG5RS_deypTlvihQg=4+vy&Yl-txY&F|^(E27Cd0DaeQY6GU(a85%X^(C$gvWs zq6ysTt-AT!W>vn=8WK6K8TSG>AG6|b0NvRVN`ybnTLujET=^a&gd*)@JiUVLfgRDj zUG5D%&Zl{Y^FOs_S2Ddsn|Ebf4Oj9MGcM{hg_UMqS0Z z1*R1;6KsV<$G8IC`d#)=k*z<0;69On*O z98a{4a|g2#@zQkU!WWRYdsybnm-Q%HvIf`Fjza{X>S_vExrS#n{51Fzyo8_lC9Iy7 zr&~YZ;I8t*LntCyea$HTvsBsYk3#7<9vg?R^3ko>bfQE+T@n**ZUA?FMJbfGRjm} z%m3sBs|n>a$rN;HkZ%JBQ2F7@)KXQ#Bpb(@zInlg1k;XGx{&HXrKs2nDz@i_+DP(O zK{me`$JXn&Jtix~#Dy56qHV%|wwt+d-4V7@f{st3?zVm213KKR-$@J_9!tcBt41L- zyy1#_gNhfLrQgz7K`VDJL#<*D#}{)i<1pNC!NvU87xRgO|H?nIa&aS8zK!~S%)O0^ z72}FG6#FfW(v4Ow=YN$g=Q$%-z;6ZTfK|K$h_33^_f{NQ@qLND+XYmlfq86|Z(^|BJiWJXzq$V)TZyHk!ZMnyO6?2dmg@&XmqdF2J_01lBNKrz>?#%>DZ(&Yq z%4Qn9*c*yVzBe_{U4+Tg?t4eUyv=8mrRd1#a+qh zA#R@}qut!PlhIGO9V&KzZc?((;`906%7>8WCjEH72Zz?+xO)>=1`i0^5zWt&DCc zixHXuKq?p$h-VB6pb{=#!vmKgLoqTbzd|8D;d{kvBrthJ!o-BIdbwvRcb)B-${qYD zixHY(XqL%ddIomiRiXe?rEvq0b6hGCn|FV z{DjY5=D1m)L+Y9|YZONF*I9KpfSxQZ)TUcAZ-S4jvvX<>MBPzX-rG4%=4?iTKXv=h zwd%(b!59{--wJ}wTi^Wx9iO)T!+2t&?QC4v9Zm4RJg(!_t8$tycQfz3+%5P$QJAoX znUx48t{bsTYTdBqt zrrt9?+iRV%-74E-X%hlX3__oH)C5Z;@5Ln}lVb@IyYs$fIUP zC5f?uJB=%MmzDcwk(K+AirP%hXTXV^v6&S6ZPl;KI!&y{eye4NU(Je6+sb`U(cwqR zcJc8OviX1l+pXM}RW~Kr%zKwg->lNH*~#6=g<|G3uH09-#41$mq3G>J)@j?7Uq_LE z5wTicHMM~Po^eo2hm}{6(?nZM<2B-JtNcxVGAd@|s>VdDV1TSp+0Cj0jWj%i0$_%j zA@k^5YP22TOqem4qyT~E@iVfO&-fWRx=oldNO_h}IdN9y2WV)U9(Gf}5d^~-K-4;o z^FB&v6k55Q+q{Plbo5@UWiNcnDywA`{aCS^blqfFc7zwk60BUs65h{P?Kh^8maQV7 zg0=SCbzG}d%B!ZhRF~4m^~&Q_e#%!<_huz9z$3fY^yxKHs>>=q0MKP?IA@u*Vr~G& z`CO~gb_3$~iBR#8VjWb!7}SBIv&uLwdO}W{mAhQ$9swco+GT4ExX4_5-!2L$J3`eq zs(f`h1J(v_b6Zt(t18l@kcGrik5_!EAR>7jD(Asc8?QS!)KxWli>$%dGPSP)V~vWO zM!_ABGTo{HyfBvnGYx`pZ)3nPYERC~`MAtXNo7L!%o)75@(`Z^wJH0U>|0bfqNt8# zK#xx$HD8ocN9&Sr&_olHt+zp{i)zjw$>fW6oR_Uob5^K=wN~zGg{%@rSYqijN*S$W zCV10QvKZo_V176F!%{03uvC1g8Uk$al7xFjXBP6X&B~jQQ%l!$s060>ip@Tv z6865$0pkp~TxMp5IH!@HwuxYMQpF|`n~~S3gd~C}YIBDk1RT@zXS8}Ft@*59y;~1@Arr zK~J_*HcM%_N7NmMRS|GlgB)vLdbv!Wx9CS5Lvp}h;(>+%LU;ImSIAed+oDv?pbI@w z_O?*QDtp=F6<7UeMFrCr-C&!DobhemDyS7rGze4b4d{()X!2U(dx%^~z%~k+FymU{7=UX65CR&U_F6kZHIyI*kW|I-eq7ap z*BXISbc5$A*e#@hW@~1FJd4%Id2g@HWgj~%eZ?{M0#R%=&|F3nBO}hi$hw10H+l=_ zVDrI&F^8r0&Bfus% zu|$sYYf7F3(W`2qm1y9`7jiv zO`j?r7JCW~Lx4s@fgUjemQASSETREO!h?@cXGv58Vs#udS=WsDDw0m!(yllM=iMGn zRxiR1kHzK8X)Lic5l^cgn5=akKeXp^H}r7S9TT*jH}l@ie+9$2xt9AL?Tus87je)E zuPbtY)Dy|u6v;bCq;)7Z-#-#vp}hq?(G^Q|i|1{M0v_P*9w!I_l}Lcd&2^iPaO@27 z^-O9L9P5U1(T&XVBHr3ZFcsuj#>Q5e&U-EEAH|GS^!;*3Ep>#@x-F zp&BQP=TrMxoaDAby0acjht9A{+}mGPIR32aoB6Eu14e8`*!qDg9W`|xbd%{O>OB4? z)tR}j?0v93=W$gwP8hdLB2}z%_R1P5TDKZzFe7vpHRff-A$3?he`n2{Nb(kp8LH<2 z>1_|;ia(Y(p%~>`v9^=CnY9QJbI}6TAEgEAVt-O%P(F$liNgQ)^*?3*K>t%B{ZGF1 zKa%GEU+90z{(=6d1pQC+82u0GW?%nPH+jDLVs6cKs0!ypKrS%I9_V0e1$`Yv9xV@w z84Jf>1MubXHh!U%boMyOVi{~fNX4`H)*CS-3~E+9)F;FXUd{kUzutTVWnj%8k1>Do z*5gk|f~BXPAHbcu`2Ch9cz(+Y{{S}sKj8BJ=Mc?t85YyKl|f+HMk|BxvUV$jPvLQe z<}#y@eOUJcVaB z^#+)y@a(qU06iVM|Lj=$K0JoOu^aR)yk#Q=t;P5lv+tm9os=@1(i+RGJScQL(K2+U z%x{4YCes5ZpCx1E`KB*%ybip-| zHk%qJ?lV|+!h$ytb;nHtq_dNTHYSQ}Rw#IFb<-LRN zsB~+p@!iG7E7qx~<#p_co!A7Gz5<%}{qC6aYOHxXr=>0l6glf5?kr#($hzTlmbr=> zHZfr=!ZfF;`ez+7e>SFGZt$*{`|mxZfbz4A@m2Iyqpe%)M*lX?dt2z;n!H<^cWd`< zUAhGu$s$|xE$bJ3MOA$*#$sXeidN?8+t~Ca{KpgSs4jjWmP@jkid_kRP-tpYhK_U)4p2O)EoGNV1 zY0hi?9KQB#)?f*8p)BBQa^_nLR!A>|OY&8-Xkw$xHQ8|b9c?(Z-JGYuogNM=MDS;2hcfya2R|h4Aoypfjef!>@esPp z=joyew#Q{;J`0Iyjkv=KSU1pA^H<^xAS`$nfg`=ZpaRKZ6v2Ncctk3gby_>Hp{}W? z`VN#|^KnsIlY^mq1^$F*j@IG?N=~eBD;aghZt+qcR8tyPfU0w2JW-)G8=V#ac`cSO zfWdeYMm_2lvQ%p4bTO7a?H4cGSV{YlX(#8|J&tbdt;^kEcMbJaY(sm1E;_WDoDX6N zj95_t#N9#9$eNe&xfSi%Gi1>oPjs{DT%h14_>9HlxTxsctW6fPRux$+HcnL-E<_F6 z^SX7bn0H9G_=Dz_`JfS9P!V_%E*yK=+dL!pL9s6--u)(3{C*RC{2$D1@E>4ucN6Us zE+rMyEa{2|nCms_t}2S-HlE_RO?cqY-Z9kSfi#H?R{3ErDX}C@mVKlL(7obQ2;pu`3BX1LoeG-i!vrWU zEdOn5=0l7v`eq}mpf9^J}6?*6zt!|`Y<*FvA~{K;4@a{-?jrd?*p&I ziZz@;2A_dN0fTQ=!$$hc;Fm1+w2%*eg-&z_yS(yV3Xa(s7!|*`rSQdODn!vU+BZx3y zLMnn!MBLzc(YXqo5)W*$18YT5s@K-_uys%>YOB78c|rsWs#TiPE<$yhLI5a5y{b}| z;HHMxc82Iw83Y@ElVTeOt}%FPa>Bi zkh*YJ;}$#{d0wMXBhH@djik8-jZ3}Tpt;`ogM}8HrDZAuHOmoj(Y??sW>*V346riu zE`BR)wz+_|$Lpj0d-aO9>T5dZxfFJ84&Vjrobq7FB0AtnTtBV7vtXbVOC!ScryiaFA zG7&PJeRUrN>W&1eGjzZc$B;D0DzM{aeqy3UgYYL8TFx8yVQDM^nCEeBP8y5tVSzbs zAA2i38N~Ea)M=A*($y*cK#dJGN(KQAp}M&9`j}*C?V&MFY2Bfiv)z22pZa`vJa6l$ zy7M-~^7h2?y5dd~atJQ5pwl#w#&2T}-Py`4 zc$@VDBN3^*;FM%=>L|yaa;P5?_wW9r_Ond+SZAyhJBXI}@7Bywq9zS@K6Ow!oQEF6 z*C2CT5xZg8oXz<}Y>D-@I`HTnt%3z&DopNohqy(7b=~9`cSmDAQExWS5>TI`ts!#0 znq7AgCusMaB*do727Crj$QdpdrrB{e`n4L2ug_`X&S_-)Mx2#(`%k#>D=_-gb>u{w zV!*~tTTPAx&XA^JnoLl1fbuGKufzkZ;78bd_%c@BCsds$JDB7>CSiYYz>g*iraJ|m z1vC_@ngzuJCsCSf53ek_ifxi z=KeAFF7932KjHof_ipap+z)X-lq~qGQ}8$xI$c&G&vtZBd$vGgkm3#GBiLcV@3jP+ zJ!Yd}Pu2}t*jV|E5Nq9VGf6t;^P}^WiHhwK$eD`b+gF2)3mKaW!(ihR=(nB-GgB@^ zE-76&1Qpm5GI)Msh{BLSN*9(WtWaSk3Pb)VT{ux;l?t0kDX@hrg6t(^pU}6M-=7Mr z0)6|1NHwGj60OWH?1B_r=%v9W!Uyqu%wB%PR08WV1e*6#pv*@3SwH6Ppz>SL6ic+a zSM-2{h0adShgN5DJ|)!2n^+itVP0-QZ*j3OX;M4@is1tgreakTe_8XW49~CVc`nb+ zzPw#LHtKO$&c1hH|0>NwAo!VU(V8^}cG2&M89|LjhJFKUE%!Fdtb##0 zFk;=aG~%$*uwcDA_OP>d-3}JQG$u4eV-CX7uYyt}xj8dnIYKxLn;wcfPnzSIV(t%u zXnVsgEY`aMa?Myc- z!kob*85d}LXGlF`IWlaU%_3UES@ zyFs&}$wy6=PKUJsTSuKAD39p38(d_nJxOH>GYC?Va10CH39JW`LF>#}qP~@it{Dtk zGeb=(W8%H4jGw;Vm;4nU=$(S1WC9Y5)C`8@Yy??teD4C!dDnbKpJ7HmQ6qF(eJl`es_Dl zsIF=fM9?e|Pme4oGfW$05qLyjJo>noNAc#_I;P_uhNT&y*1ZhMbqvav;Y2yt_(=Nd z=@mIyIQ$6*q`zz){p#Eq_4?@3y=^F}XzbDkeYlmj^8f+1R=X}I1D z?_Pce_%up+S=uO#YI)r9bf#F}0Yccj(sTnu;_x*@a4KdgF$G5Agm5XbU(EGi*%LBA znpJ0eQU1p@Q#n}xkgh5UblM)JDi%OJRzYC4T={+!I5<`7KS3kGARB*b);&#P9)@E` zc`uHTpmOewJ)V4FE!aZ|hMvF7GY@!pd(~#^GcbEg%I5T?01UIqpy8f9przUiywZW! z65!Cv#pu(Zz}KtrQAHWEJp&X1>?9i^Gv>UoYMzaPsH$n30PAQ2F+Fr zWCHXM8z)UgGIU97G2qM6;Z+6%F8eJtbH3zD|wbg&$;(;ykz~*@1qY+?y^-Q1^D9U@+4!mQJ zm>>x0&=>KeC9=jBO$S(5c<^gGO{_bmU!NxoFnp+sujc#?YnqXSQ_i9AgCPD?J_%AR zX*94zEGha-!;%`)?9Z{J;un%mjmwmUrjp*P#&kKwkea=#naC(YukD(9{0eaVl6X=> z@8K{1Kk}n^iGm;9PAOU@`sdlvT2dJ20Dp%a_4=32djb*x8!AI-$j4J+NMS<>6VLdR z7}BT2kiv!%R-!O5q)&+G)J2+$fUTHV z7}ED8H#A)3Go(huNiZIg2hpI-3tn#5)@RHkC!rq@p7=VG%P_4dP3^8N(R=G6fzwf z@!7<9#BfP4rjL$ugNS)K znLjvLzG%ZU&AEzuY)P*Cv>Nu-OdLb%_8%wq78b;IZ_>KoiTKbHBmpm~^15pG5vc^Dcg6s6S%s8j)IPcYcgmPsZR*5rn zu2m$?n|33Cx^{E;VWmmNNz?2~Cza+ptZmOUIq^P;_oDQrHnY_)Vs7v(!rAOrpEHqg zr;YQw|%p!a`tn(0aL#@H$1Ek)%8>q-&k^488y?Oo>dL(Z~4T^sG6dey08_lnaWlrFGj&M zMc|bP!=^~qlEFju)2g5lJgq8fk*QycbQM`kD0~y!!u-~{!-j}8pmxFGl>UTOz6%Q{ zILE=YR(SAlt@00f&Y=bM-btk+>J9c<_4`cwZude3M>hx`%jrmn11AZnLRJ+c#6)E6 zn82NOr|M=kXp>RrgMYUVGa&~98zyBSY`*9LS`BvQDWvKBtVTV#(uX-!yS{8nZtnVGH)9sRU&G&3V3a5 zfwP2>JUzrG=x{lLqU`wI#=l>xX}EzRYn(a`v~De6 zulhe~U>~0poC*>q!M`Wyo9B?-K#509H^%dp_xBGNyaOSOWq`6E(pW|ii7g!b4M8%c z3N~uyj^@8!{RW)nFW}VQHzSDcXnylh+=Ad$2A39^VMUwKlsintzY*Lv3M~217LgLb z)M(yO?I3w(ubzI7kzjQA8Dmi-+qNl25^bo0e%2QNGK8?EKH4(#g zhNnA$XJ`aO_W*&k3QL6bWG~@Vb@DcDzr3`eCc(Fq=>tVH}>Y%3lU$7P8&|!Yt(RuU7dAu@p~Z z2_bP5+Qh+)`FpAnFZxL(B2@;)~5%S;9T5RzwQT zSn+5lPW^H6i}I|y*ezu}2z4F~!)yfZxcgHi$M@0n`Q6}tZ-|IURFR{My zh)LX?6f~-}p|3joI!}|6k4=n8YSp3h)PY}O7oOd&zewD2OQ1`uSN`nn4x1Jo;mI&J z<}1_#AS@2lU8MGguMTbc%&RQEXpJ(&VQyZ|awK0nTCc@@s(y;zILJDT?{V!?e!?^huo zdp?43nT^dN71D1wIA1wFqTH}pT#kF(oz-th0)>v21onZPD5$_HdABvo^cwTo5%z7n z0ZPcsJ-hQ9E-BUFQ zNI=WA>0{BkxKI4!jFfri-J4D#T8rZApS;RKLQ2%qGI6n!PzXTOCi?l0P8MX2a%xUb z8=d55lvD5pLNd6Y#{G+(MF^#QELH{j<^n2L*oT72i=F&9 zZsP)Pfo|2iV|B}L`nv?>?=q{Q9dzi>;SLS#f5}ZD!nr&kO9@ZZ`z(`h)0o&Mh;UY< zt&@jO@Ff>iEQl@oYsq$^lPd9pvc+Hh$(?xUqg+&`r6I`JCFK!0CSeIH=XsrsvmlA08eq5P%u3OvA8>U z(Z07pWLekMl1W-589$CSrO*iyMP&$P=f7ILT^*br&s!JI+fc->Mz0P!l8!jcLeKT% zls&-ABxhJb8okKI&rBXxdwr;2;F+wcV?A>!>zQ?|XHI23vyS!5sjO$#IR#TyD84Xp zys(TNQ#fyU~K}F-T`aV54@1t#e zPqi81maz3`!TMMNFIz&VCcJA((E^@`O$H-4l@my;^R4b$d|(YncA(U(R=tYzU}D>JTCJey_pF*o1dzYeP*{pFk z#Jyhq`H82bPY2YZsbvwjDo0v-Mm)&kUN->9S_{_E4esSfM4ye?xl(QCz(tpTqjdS7qP2`Bb{e=2muE`&8S&w!>mYow?x^TZ#2m`3+zKPkEAnre z)dwT3FQF@Kkfxgfs_aQQY*vhAB_FEzL5D4#t%VaenACRbY#oB7USXspq1t`fUDJpc z-DklbhF86+l4d|X-7qYG9}v#+psyeUd@EzL2m0yaVP=bmnI)D+eNbWiy<$e89SBRi z(aF~=5Qi--o+i(xSfHaQ|NZJ2fL;qFS&_V#BeFRH10!=svkKh2DDIQ+tRq9*6jm^LC~ zCkYQ^SQ&Q`?hdvLfY_Pzh_{6};Q@0|8NQBvFRMZ}CW~4edO(aJb~@oJkm+<3!=UFp z8@cr<<3lSWmnbU%9qNR)xxGokj6sWd@(j1S`Mgrdg&!V-H0#?ot+_4-V|dPv-&HF-VV|M zHJ-=kyd6ud0aQF2)6`d(G>OlFjb>X+%HUKxk^x-i9~iaa33nNb(a>F(c4|{wne-s* zWD6R6P_ZiR^%mvs#j3Ma#-l40N&9@l;~!*4sq8dmUHYLyY93;*Z|(*~TTj?QZ@cAt zf^5Y@m?6q>2L%ZD4{0+TxT-C$OBKAt)CQweDFVo=3d2;->U5_PO!%YfS?(Fhmdi+1 zyEWx~K)L-Zb~O{}T)+7ft0>YITTIc&FED;Bsr z5?B*qy`sS!TT6S}j=@%g{u&u?i-&8k`Z3*im73Y+UfRRfvc!9kbl4X0K2T3~24=!- z}1IZv7=$0tg(o_A$e}_-%%Z-w@+JsW= zbnhDVYz>5-*=J1zt%LdvoO|<9H|K07xD(xBF$}(o6Q2|(VAo$K$u_NDVzvev{9dDp z3Y}u^?9x3>4_LW^0vk10X&0nK2G&eO;2v1p&JwSL0Up<|zWX?jrrh3r4+v6FY_Ep;vJpJ( zkB#7$<{J?#Z_*i`gAUhBG}t+*A>cb$g;H0MnEW!I!#d7P+_AvNX1D4w`5CNRtOkFd zpYZr+&E%kF(27L{=QKNn2QOwcp2r0swAT@(Jk4i{VoQOUV=@LWQoIS|#chzH|EEd5 zjW}m1@u|mw(Hik+B zyIq4+Q2viKWT3l99^Li`y3A_0h1mVjR`}A7- ztUY-Kt%HNUQtYcds6j*G36?Dpp{xbX(L@&p%|)CJS;P)$?do!aD8g9!0bO7=dzZ)l zs=+sjd8eN)EI1{~iqJeNH`WanqG-VH_e`Tt< zWgKm~lq<%ezqhs{C9+gyi?{#<4N@o6nio%hr(-ptbGe@WV^new_N;^cjr+H`UpP8B zXxM0{;-a)sN&Ps3hDHPX;^!M7g54^gpb{%)jyxX;IUZ;(+Osc2OkiOwgel)NV z`z}NV>BBgSz!*cW?WYej3ej(X3{aXOP#T@o>Z1V?SPBi=Qd*ukr*zb9Mkj^@B3d;G z)AN{%Y6hnNFDg`=G>Tt53A3qB^9~{qY~qU19Ymr z`pk`-jTkZh4O9BC=|pCWfu|2^j%racU0sz0LY`#$hKD)mlIx`j`>H+x9MrN5%`6N~ z>f=toO!L=We=*2;G8(W`F?$QgXQBVfoTcej_BX6C;kZ1Ozf$_IRRCxbT*TYd!0Ug_ zHQ*hyLIr|q-ue`boMt<39fPInY6Ax;zVwh?>=xATL+|&2RuG}jqm%a6(ndSMZ$M($ z2)QhnzrMPYjTBx7=dF+AVT^JV9snEp@egs1-7DJ(5nGZ%f>o#?~nq7S`ha*TAI}nye ztgI*>_Eq|@bto{j?mGm<*lFtQ65vwEY_%O?WsqsJ9-PBS?W`ESDy9{UGKi#A9J471 zBNiSGV_<=1jGDf#${A!zQ4}Vk(@>(i=7V(Ry*pikI@COD=N)08a~_|KMUt?rj1!`S zl?a3#eFPDAJkKrp~wx}^Giqc2+uR!C_of{RlKS`M)Z6b_fVq4N#8YRIJ9dApRhjAOZ2!eouF(wg}sXpq8n zvs-2vK=BN|9yZjYG$)#WdyYaaSEmgc4AI~mV$Hl7ry9z>BMK-ssojb>cZP z;>g*(ffcF1r%hn!d3wAeRA;*RUPUt@Wq!!hvB1t)U^Vo=r}{xGw_(CrYFf@+inbL4 z(BS~Baw*r;EDQ+*G?ZysT#!5ld>&xorHrWb$`N{{Bd-tIRZ8Cl@8E;CnMF-DxBB+j zHai0uq3hxa7G#-mg|)tQY__ap<+jqZjxF+3I3*E0i&E;4zCq=~Piup*gyFEWA-+>$ zi6x9zZY-8aN9q<#(;4T5ph)+?nyY!Fj&NvDkY6k$E^l2^Ffgpih z9#3oGZfX_m8Rk9dufX?N-8E9A(`J|&WYbyk@vimyD`kyW zXs7R zxiP$(q*92b!9{j+m0h6{W3H*^A>K3QI`y8>8~kA-aY=8C@k&hk#m4L_>i9-^ZqOLx zMfJ@c1H({n?7bH8ZjAA^JCEk%@Z#+3Si^ws!#>vQL0r{|EfsTRikF4y41uCn`3Gdw zVGNW?Vmf#QfB7(cs%a-fj0kmEB`U&ycBmi)*R1_F_ynw)+Dj~L$b#!HuY%2{Dij^c0E&u z)v$&v?Ce&9VVYL6kQ`{{SG<|UYPeo6w|lGb4L{L~$F^DxIyka0d#BYfjt7nLu-LYA z!!2o%*FauvqUw=sX7AC&`@CJAaEs*kn8sN3U*=VCEi-qPG8oF!1yi`VOo02Ov6GXb z*C?;u+cO2c<2aZkH=z> zvBwjNr&WzprfQffVmLijgr+{}qn51kyheg%xGFDr#xuxE*&kRLgJ&U<-ip-{`ocTZ zwp_Ih!wuoFRo`e@db<~D!06lMQBde4LDJwYg$PHDm0Z8(V}WBTYBgvRL+8A{ju1O= zbT9OEa)*xPY6R8O$+Dll+;Yx{)yPOw@B$XPv5+#z|D9vrP>YY9%8j zZvu;Q$dNm2s^G6lgvQm$pT5ovF!qa*z1Zj>TRBgd#d1b;F_OL9KFK#p$$!(B%I%U3 zod8~9QeZ3R3&{C9MbGe7V@%~RnByR+9acjJtcRW5Zh&DmJV5D%*?X*pdw9rRZ8hAk z>Hzb0z$7kEvf3h_HyE@~B8%w_?JC8&+)+ky{g(7)pAdqUK&)lIB%3G#hDrOiKe=JeUMnDIE{i?ge7J?>= z%#necz4NGp=$AZux#z&(AV1;YB7%&)-17>09vxDE(@|NW$2U%1XHfv(XZW`8n6{Ok zxtz#=%;mgcZs+Z!;u_($_RjP-mxFU@@yz842kMIl(nk#oV$Iy66)&Gxv1TRw(IYa4 zA#KEL`M`qi%I>2K=zirH(D{aQ*)g2*pnwn&$%?x_4jPLDS;cSf{8n*5Cvjr|rYr+h z!#ZYjANrZGqf63+jwkr(o1xjT07*%|;TuDH(^OYRIpUKkv!Rxx9d{iSpCx@(dTkaw zQN#lDLcW5(V8}gQL(#%bn?pLu+_KHZ7f+qeOYO_QYF>&Qp<30#DvJcq;DOIrpFKm_ z(YjZ#KHF#2pG)Rr-QY}-GXtT#Bkb;4+<%3a&a~%BUa}2;YJS7Pxyn<_Xi(09us?gZ z`i%~$mt@~()$cIE5uznl!_X?Qonsq)4C(`oCHbH1pJ;=heZtuLVFTI*YTImo_w4-^ z8hgKm7$#+8F62jFNa5T2J>lE?DON^&;SeUyurX#g_I?+@3Z0sQ8-RG8VxA{?Cdnw$ zW>1r`^Lv79pWvVf4+d6)IpZOvKN8~{*beYKmRXL=e3m(da8m%HF9qDF&SLsB`Vh2; z)<_w-)SjmSUfYK))6c(R0XOC`3-gQDC#Ab$=TuXTqXOK`ifo9vNOqiW6|y+c-x` zrTEKaDg_b}%DvnT4Oe&1SH@U_31>D^jTkN{9IuLu*ZCYVF`ekMnI~Riqx_F8e2L$R;91hl2R*M93MunLvb59~Jk!KEQxbhJE1tKjH?Yin%COJj zVB7Z@@Y-Jl?QAzK-zLwFSm)&J2P?8AT%x}Frf8HJAj&ZVIS12oFjCDBiW&0&g1x0K z`5$ZvL;^i|hqXTvV(_NdCqs}95xOzXI*DELDbahl*E>?q{K(J(M9RMXsGL@fJkx}J zmt_&7$}UU^g{pZpv8Tu_9}r1z(wd0ZO~>GGQGJtVWE3&01x3!=MJ)68T72VAkV(XA z9dwj-pAj510E(>wKZ|&W69SAKLx`(< zsoB713PfotqBN>YX~CxSH*)JwtBigE@W^*fMet6+OGL|eX5$4&_d|eGOZJ@xV308{ zpu!KhOC-&`!N}4JnUQ4k8~DhRsIk_LRww-ps6~PId`Wr?AOk`L4J+jlMW`(EE|k|O zAo>(y3<3kndpvXJSx@tZ-4?D=zD%KR;aKNg%v8SL}8T*o2al#h5a-8 zPi?lHhT|8dk%*nB8KFLhDBk|lDt`)KNnKKpF@cm77bj&gb+=&D5^+m&cDBeF zjE*Gw2>a%gfx@t#(_*@MCo1}HYvHCO9ylUK7r!VR6~+VVkYPAQLDnXs^9DNx2%JQg z>HFT|H*7S146Ce0-YPY|kbjsSa#`h35=i@*_+`Bhe<*ipswlZ!stO*;a0X`{CNec+ zHF!v4(n~RTE^gjtjB_(*N>w;z9X&wO%% z7&~L?$p3y+cfo2c6QnZ){@zfiI#XV_AS7Y@p#;w*gR^3RPA$-M5m?CsRn69F1sq~w zpFfms0y74TMyopO2%H`T719xJ2K|m`j z-ZInhzgRcWH#3d=$)JEd&GcNJY{umY-Eh0dFS}O;NSwEdcOzM$RL}O^nDkL|cI3o@ z$}CL-jd{G1(q5n^%xs^lh~5l+6R{S1lB@fDNTX3I#CR~$z2^g^OUcj!7@Nrz-r6Pv z#`l3D=?%<~xByZV^bHonPf-O)J`uT~n0cp}@jSVPbJTD_k#cde*t89X0mTz*e9X2c zzdhE1*D>u$?BUD52?F!TOY@hQbHcz@R^VW>*bWQ2MiVL7!k5kYD$eE(EqD|toxpLq zar@yh^SJ23^M~g;WuhWT5CK%UPVtn5EP{1t&Q9@P*yNf8u1d{2Wh7;R3sDx97}oAd zAE-Emc89$vF2l^NoUcW-8DP6GIWenlF=U7lo(L-~l%(N_$ahF_-d<6ZSxbwZRd)TS zR>L1mli^vj-!k;ucti0mCNZD$H)t_W8+eObeLaoe`0HVQGuQJ|u|ACNHEj5-mJS@Y zG~<|MH4^_GYw~8}o_#eATUxD_^@P8UR}L$8nU%T3I(-XF?D!4jk`dehK5}0AYt{3_ zJ*#_!dU1J*sJ^J(*XN9&6J^M5#&OMbe@#~ihuvR_eH{9d0a7#XY-H*J^Ziyo1On@%~M)L ziw~4}H&bJ-ArG&}8B5eVA5NSQ4S}_`1L%f%q=yRtufaqfg&sn7$bnE%kJ!*c4zlET zMQc+2=-O|*8$VzZit_i>+-A0u1)7WS8p<*gO_hHY>{sVf&3=Xy{pxqLJq7KEJ8R>Z z`be%Y$G(3ObB^c~!(ZSMP68CfOTPxqa$X|ev=`@c`0q9z5E|gcym&>5P?Q!~F|C#l z&=CmP1nFst(>{wFH=z259NuNpL|&?)jyV2<@}h?7nDuM%L>)XWXzpr2qrbcNz^ozqpcm7~qq z3Q?R5e#NSvuWZ50{MPE7?68YC=PJRO(F9J%w+=Mz7E(jD1Civpou|E&PB}*f%jnIS z(AphIPODYTm{Pr(;ZHdxZ?>Y0Y1VA%zE#28Xx;F%s_#dW1EYz;Q)4TpWvW5^(E~C^ z&>uacQekHhb>cbK>b@cp)+Z8ZLk}P{wv{kDftWKbn;;oUmqeDu`QPWm_A#xMwsAxTY0gQ!ABzdn$nn4tA8A^p6=qP*(o0h86s2KRsShR zdWcs2KT*KBgX_>-%DgT6MFl>qXyQk&O0%9`zi+8|E!xi#Dh?ABbIJilt9p+mP!2xL z?)*A4p6aan#Oh4P2Ku1Z@h5_nd6b<>%ra5@Qt4h8OWx6>6oGYG_#P5V&hk(KOJ zjWDZWxX7H`OZ5$Rt@oVleLYKG+xcoL;NiFy>xD5VnA=Og1{+etw76kM)iwSotr`|d z7Ka;F-u#WBJEF+}k38-m_wfBdH1IA5mV#WtDF;*d-W+Y- zpWTO8ou>+~`?A79L+A>Io0W||3~!T(92owhhvC}AoqWv0@c3G&pj6ezqIm03D82#| zH>r=s--xq9M;Z56w>L2trQ;ii=lXf@4;{~gXZ?}-?C+s6FsKFE-1Mc6yN~&Pumq%M zgW>e4d@$rJ3Ubd9a#x-8S>bU5s@6f9v(nU;f?U;-jxrOoU(c%!IF7ewenB;OPM<$d z96HV>y#M}m(tAQ8p>ZVDgQ8v1*ZZ_h;@(S&g_Uda}7-~g6QYf|+COxAF3 zP+SiIF+@3r#9k}-mte^YQB@L^1g=9@O(S9CpuHxsw10w?XRT@QMXm1&+yJ*Gdbr=zFP_;l;(l2G(S`5@&ndUEtc(woqe`a)0a z3r+6}J)t+W@c8J74A}0T>aY6P0{`N5Yxd>Tke+k)fq9*$4sF71#QEYage_VRRXuT! zYsH#5f@e}cg4b8)e*9Y9$Jc7k$~D6pZ`4ueu>8c{-o)&D`;zn}(@S%#sC(&PWzV*^ zS7Iw#guJm8%XI6*X*LN8?L{=QqEnj11&Ccri(1iEP8~3OS^c9RYc#(&tevS1bH!z? zSYntlVd7*y4t+JoiLK7dJ#DEkFb-J~wz2_+RbNgVV@&$>ck3LsN-$b8pK*Pf0_vrHjekgsO3Z>6eq4aqwls-41w)ONc zkB^=BhO!=FkN9#m%%bU*p>Vt5UO01{q&yhSyo@$>e2c1>@$I*n!BZ~~9NV59V^i%h zUi(BBjh9XG0(>;2l7{@BLS7m&k%qjitZ7Jg^(kg_#GN6s1Plv9g(vFQ-ulM#bCy<} zCi04Vfa=}7tu;+obI+%_eLcoO6Ne3lS%}eqM!}hVdG`BM&8N8h8%e8y1lq9jCJz4< zc%3iz0@qo>+2lSJLTc)kUE6QO@ZlCp?)mS6B5?n{Mf*a2b- z$|=R@&y?jb0Vh|T%soeUDf$9%p|nv$A6@ON42D+By_`XdgGSZ{>SYodb$#z$bd0gN z?AzZeGMCp8b9O|h!1)EzYQoXLHgj_6j*++uh^;#uOI`w_W!2}Cb8-H4;i~U4X_yf# zE`A@O*e5tUd)Ap@`jKKe*M%c>H~;NH3Sb2d5j9xU;#dklb4X~$n_6PUT1}Ja!&v?f zYqs{cc6>)91WJ=$l)t9x;;37ZlNog}FB6jW+7oIsU#7_%?`8*BCXP89V@}7mASmFwOOdR`z~I~*?PDc*D?93~q~BZO>OwR>@1z5JGs(uBG0aCdUmN|| z-r=c$YYCVbOWat9sOIyk&KLr&Bk7b9u!UMg}~zvmL{DbddDN`0%0B`>FOsI)F~ zO7}w)O3|P=nfrynQT!1bO1};x!64sS}tp4~HA0*jnY$!8@Yg zHQmh-IKjNX+21iC4p>z7`A#2T=yhMGOAr0ecDn27lD7RjPBT49D~5xfpY#n7T2{-t#vQ1jYpf`5Fi!jt7S3I+O&GzMQq@%gKBZnqa$xMnho1 z0M#3;n!klF;iK^d=)Ae@wQdhz!qxA11E9(rN0MHge@(c0BytPPLuJ%WxoQ@@b{Umu zt;uZL)}1{)2sPEt(!%;3)n%P!&)-5dhVIbYWu2G#1L%28fMkVsWQfMlRx^gGa*Ca6 z{P8o#6Kuu|j;t6{Ak^t>@Dq_!)qtU!FqxjROk}7Z=_*b>CPHH%p<1d!S9~ge$SY#W zE5kqlQ{}%e35+euVm@RFE(>!#C*QWZ; z`k^~aU8o5ra_91%b&i458I5 zB>TpSPHDQ9R9Ic*c;bmx`1YJy+Q@Ez^lX+<(!;1Im1rWWvE!_;XXq#Qjq^>cc$Ol- zJ3x6UtdfDqxUz@R%$lKKhdne4aOZVHW+1?&L$eB>3Ybpscu(E4%-6KE)IHmOPu+9<_tbre|DL)J z_uo_Zp#Pq_r^-#;Q{|@asd7{IY(IVKo+>wWPnDaxr^-#;Q{|@aes=wDz%xx(|G!%Q zMI&B+x0qk=uIJvXd4AzV{jZ7N7`d$fmHF7En}3!0#>mv2zKf)#P2{TND&Z>R8p4&$ z73NCgYA;MnYvP*6Rm)Y#m8NIEp62d{>-#*eCa!iarB^=6Px%&dm2g#ZP2{TOn$Fe8 zHJ581*L<#pT#LAxxLUc|xHfXNb8X}5;_Bu~8@oh-z+rurvE6+y1*_y_~jG5_q29@yma3({JrCe(lzpTZ+v~*$=}SlF1v+=bKGrR(Ros=M{3# zZs-i?&R>@wuj?i6JyrGg(f!IP9CXtQemqXj*zwf7eJu-L^zWDaZv0J~Z#n$HcfUI7 zw$T0etQe7^CqMr76+_N@_(DJ5u93esAF5tTwZkhfRj#RL<)x?ZQ#rMtz5T@|?|W0K zT)iv2ko!Erf%`vbPr2gpm(yf!X_xqSQ_ivZ{QYuk)BJQjz3uSwONFQ4Yx19W=bg`v z{Cn;8(v=sc+JETb-LDq^j}pIqrG7a-HTSNccKh#s{}j$HOf!Fed4<0yT&sb(=3_s7 zZ$FNVE?9imo(;dc#LxejdZ*&Ik4$|}-M#z`p6IdAyf>A3_g*~l%df0#GT&2p%=_uP zmR@po-301WJF=Iq9z9;ktMLVY7`@4bH>cirhUb48Sfc>0SF_mT~NoH+8r3;#&E)=~ZQL4vblzE6>^nuRdP+_s^zK}m6leU4%1wwIZbn07nkO`b}r3*ZCsiQo46Kn zE##WdHIHj9S0mSSF8zf@d+ihqn+kbuR{wk+Zndy>wJ&*bYe#OfRw`~P&B*Kb-@k$(#GRez<_BzgxVUkuCJt<7d$0XVBwk(Bo&&<7d$0XCR*6r0YrDy$s+U{BSP= zPQdoxy$pK%3}B7?a4!R=0e6!Dcas74kxIzjWWe3az~tur)N*U$YUdKO z(#>^IA+T*;+hTC^km>sHsw zue|ZbjBovT_1N>r-yOPW{j{}1PntKY;Dr~)4WGCvBfg@gE&8SQ-xfW5`1_GZ|8n|& zoW1b1A1%3K&Xv{4E5G0RoiqRQmh(4W_uwgaCo;l6{GXYH=iKzitKOdct6$$YaqTr% zSG7O=)ww@-WXnCX-1~o%-&py(f~IdIlkaSu{r!UvO#N`{_-SQ7I{(F8W41r{oyv!w znKJp>C+aWw)?Y3hvh(5XXZ+<)SDidzUgOWd{n|Gs?rl4A<-&JjV}JQ({Os?nIC%WN zrC-T@^5x%sw|Z4>?ZtcU`~AVs#yr31;O+-+>iOieOE!=0?D_DnwTri1&^Gzw|C%^$ zSkuoh9dhQ_;CCOpa(VtE$4~vnptDDRb@_MGzIlCi^LelQe%5J|YR8>%|AV2k&v<_A zxnJm<5%|+*V~?BMmY%+9?aI&zkIb30@aZdSe%g5YFW+@vtKRg^Z+|wS>HEKUYHP;- z7;v!dnwQ4hcXj%YuKwY=$>;pwn##BTJu&3&;@2+tVeFKX&$ORAV`Jf*mIofq-ZXyx z{=?sR;PUpZ_m5q8|4WDdQu+MXl3#uLwmY^w{;l)>GGp#{Cd`V2zg73yDLZf7d)32t z+J)Et{`c3M-+11yx8MHJIZw8iq*Z_5eEmBemyFoAW5mxE?wxt#FZW$h^6dj#iuWG* zkFLcn+jdM|GIaGNuS|QRXLa4QMXwLL`=)g}Uby(}AI>|tac6tzr{#y&{=9b6tjd3D z88`mhcclNSA-VGAioeXbp>yHb|GM&&;JD4<vbW z`n40HJLa6!({<&k2j*pji(hEVy#4Oqp83^j-#_QnE5Eh-*|9r6t^E04x;IRmaOlRW` zvh&{wU3yQ`+RGVE?EAPjw&tA*B>FWhaLul=&hu2A z@0{;`JLi-}h*(H~2mwl|`z-~gn{qmi8I5+$bZ`oZcB!Ge#At`dj25wsMT{6igbY+` zHBX3@;_kR9)e|^EV`X7J%#ut9&fpz}0|$U>fP=ubz;(d&z#-rU;4p9_a0IvsxEXjea0_rNa2xP8 z;CA30z)|2B@GjsE;7;H!;61?Iz;6P_6TBZ+a1Zc-1oz^85V#NcFmNKl{kRV#_z14x zWP*?5J_vjQcnEkHc%%TIB&>AhQ+}0KeX3vWxGlBgIQ2t)6F$OwFR&ia8YvGb*z9^d z=x)-J`*dm90Z_dQR(y#AIiz5Ey6 zzh>jk^^J|sd)D;E{l9+U#$Ws67i|1D@BP+|SM1oe@!-#Y$HwO!`@W6$-g@=M?|t2m zZ#?p=Z`}A#&6_s9wer@DKYZ)ajo5(DHa_{oAKUmFhaTCu`Ny8z zc;|O~Y2%Tb*K9iR<@%<{f0)|zlRtIgrW1F*VAGbL`qoXK9^bX;`!D~FO*>xmeVcyg zyRP2!PtX7HO*g&ajhk-#?3*@S|0lO@`nju*Zu;&w-?{1KuX*35=YQ_LO^?0wW1Bwl zibpoR;-yb+`nPMpwCR_AXwByD`osF>|L^yvHsAi87jFLCPrP9Bx4r6HH(&eU&duN7 z|BlT+_|4z9`4g?HH{bi2*KdCN_q=iQg&%s;=GXt`t()Jw`RL|1zWUD1n_lw1%^y8} z-{vR3baL~W@kciA|C`Tle$I!!xcOas)@=EkJL_A%aQoDjkA2gHTb}c;Ua)1?^tWz# z&M)uW@*f}ByX9S<{oXBK{@81`yy@+)-}2s{=m!& zwtnBAZ`k_it9Nd_^__dSe({d)-TLyMf9=-)aK-Dl{!#UfTYvON-n8|GeYb9X(VxC^ zYyF?zz4gHFAK$v;mG^D^mY+Vk_1MpSYU`i;;Agjf?vgKV{i}Z*+xD-&ufDDG?Ni(S zmj|A`?YBSs{B1w;UpH)f*9&%T`~CfUw|&nKeebrPz3jEy4%A=2ZOs#hwq5kfH*NdR zFS&KwPyNO_x4rfc-o5Sre9Q4|?dE;ke(2jzZfm~kQ`^4nd7s_(cYpDPZQuBZW7{WQ zTHn6mf~oDl{et71JTy_?@%?|--_iZyXYV+C!}E9i^S5u<@$c{5vEwy=^Qs-+`Bzu&c=hl8z>cFo z^|eDDiLc6{ZJ-?HOX-~G-VulSL7?|9*hj_-Kl=!bSped41#zW(D6?^ypU zPwd#V?+ZKb{MoUczxHRfowwiL-+9B1XYX9|-Ot~7WpBgI*SvAZ&XdPqwev6DbLGy@ zUH=0+AKv(5JOA+Dp`CC0*pZ#vf8#AXPh9lQoxi{B-8+BozrT0qU;N;QcHZ#TkM8`P zUwC-uJ^${Bop0!WVdqz0J+|vjzg^q)=Wp-tTHAT{u3voa^LPEuV=vqFy8mg%u022b zs$Fln=E_|^xBUlpee>TR-1VY=b76d)7u9^ozCKFMnNs_brboD(kpjwdHOZG5C7W1-M{qwL%V~I`WA|4cy<_+5 ze(AltpZ)X)cmMKpKDztm-G_I7{U86oyLTP_{O*rTja~ZsAFN&a)>rl~eerKS>(Wo0 zxaiXN{lv>Ieg9+IFa5zaue$UbKmR?Ke)YFsbLm(2A4K=)KI9-eYbl^PKp_1u9WT8v z{V%u?kS-M50$Bh53Vwlf<(AZU`my`jUwq({!Pp+!SSnmenQH;fZ-P8-n#%;j zPxyO&)7&N;Pd9!uv^gJKK)U9oi-E0xXd(Qr0rjQ2_WE0AIBE6fW=NWUF81{?>3>*K)FzCJ^pd0M`KGweip6E}k1_@mgc~ zC?MPg;`?2|aUhTX#|cZ;9|Kg!QbF`Ks9p6zW9&9S;e21LJJpvvfxChC1Ja-O11Et` z0`%on=+PiYJE?y$AYO>>R{^4Xo-V>y;Uj>?*v)|O6@EqCB3$nPM0?>Y`s*Ix!+`L8 z6!_fg;5*i%u7zNRJc5gW4S?}Hfd4w+AaFGxoCOMB58MFU0*JT5SAO9ve8uCVfN&K^ z-ppU&dIAuxE97m^719^;fyUMtZ3!ws3lOfC0eh1x{_ja}1@7g5a2Af&0>WGFAt2A+ zJa2{PU4V3`b;`Z?PXNO85#aHq@ipiQ>5IAG7-@F__X3Xs!d3Y70O7b5*Z^D%tOpb) zxCGb(NS3bzgtOfJfN(tk90YCz4gyr!PI@Y7V^T7tv z_ar!odk7HD!uRvQ4DHl_N^+kjZVbQR0ziBf{=#{E3SWjRx(I~l-URzn_&VG}fN&Sw z3<&Sr0pWcoAe{4Z{1D;CX5$;ikLp_pt|yP$JPfE!xkmue+HK3PJ{$$qk2`?70Lj}u zzM)WSJK9Ou#fbsfUAN1$yHc*-T)YH$$;<{n7_B-*P2AQ3XTHD5{SR%?Fszi z?W3!UYc>wHQulnYlk`07A$&O?oaJ5yXdKBeTI~a_0feXUzYdUG3vLF?-`nvEXYpCM z9tZ9N#M_5}$5)2$f^*-6v~dw|aRP-eNO70oUIAXT2eYvI`MHp z^MhPNi@JqJ1sDUIUu6Wsbt549$S=AmEW8E6`AXojWkk0R0HUMnI|iuk+mkE5WKC(3x4Uz$ z%G?7;_8wVW+xdR1)ISRk^+kPDe1V?ZsKaQ7dnWl=DOx*BwU;V!rh5YDPs z^fG^q@4dw3#?(rARi0T(8?7v&QD##2o`fPt#OkwIkPZb{xOP(kFlg z=NyEK0xXigrvl$> ze$bdc0f^_~nfRhUtN%9vhk>yrOa^52lcmZ94TtE_On3s8OH>w~}<;A^0-cy~W= zFOcWmZG_ct;dTvhC2#-`j#mNua-ewQFTNUI@m4Y*e2uqcLr~=NQ;Qo%OX2gZ@g{wx zzNlZuP5A5w_5d4_yA@Y(Nph7YxEv6!f@^?-fXWMmzd$@cl-wh@YUehv2?*~#{;^!TJ$uoy*n4?e7hvR_yEBwT_1He9Df6kR( z@dp9ne;5#dZvw<)fyyh+_^Zx40MSAG7Vc{ABfvwz3dYu)GWjU=J_x9t4*;V5F+lwi zZtDN#z*b;SaxcN%2<%L78Lray16Kl90mA)iK)9O@qQN2HMnJq57=Ph>H(>b|?)L#7 z2gLWkT^ir#T)P~lF3Fs6Q-3!AE#QI#HC#atSPxtTD9`19@D?q0CU+n1UO+UEYfxUL zi3SG%(NXvtM28!IBY^mS2OyrWVD1QW{)5zUKX7lV?@nCdELl?<(w~a+7*jsA`2ZkV ze-aSApI92b=aR40iVu43B>hrf?*Z-xG+u<8Way^k%6~gxJnzDxbeTni|Va6X*i#uUBhBD&9_RtJBS=K{5H9Jm*F0MIylV)bb- zYwaTXt552maN7w8AGsTVjlf<&aTh1J68Dk>dvHYu(c>yW`BabazZMY9Bm4p=4#*pxpZn-1DdvMkz0V<0mTXLy8+=UJtACJk=Cn;Yv|WQ^iO=d9}sTG0pTEA z4grUO>vR5_@ZSoEw~{N5A@N-FQGK6ToiVghTu0)kF(CYI1Fi-R09OE40sDZxDQs7` zUk3wiMf62P$2I-M|0m+Nne-wCf_4&Oh{5I0|CBQ|1@wyzp@KfKF zu6U&jSGgAgDsura1FQ#}u5!Zn20$_{{)(o?_v83K349uO;uPR4J#i8cKSgKJ+dP$w z<@L#vtKa@g$J>16!&nskgqv`YoZb$I&bI)f^<9AESb0PT(fTpqsk0x~p!Xi2uaXt> z?q>XwrR#tj0ga*CfMbC8DxE1@KLUILcog^ya2E15^zVN9CjO}J;@v@DKd>+Ph3B;? z?s{C|F8&H<>CLwRM*+$8-GJyMSr8rW14KX30iMq%ORJTZt?uz7BSn*c@hk%;^@m%z}12_t(euc&N2Z6^=9j>$RQ@a{>!tWN~ zGGIM$Ndoav{1nc@#c3Dd?*T1f22fb;20&#F0-}}Nn*s6pF5q53{5*v?=4B!1iU(;= zw0%DynhRg`RF*@(<}x;U>Ip0d4~%SK{sQ1jh9N!qTCiIlFNU z^Qq)S<4|+lZvq-8k|n{7fMiO#cs;r$SBnskcBZ;&gstM-MT`lS8| zhl>H>w+9f8!a*Q>l-2@dFIvI90GI(b04gKgmG^q!2yhg*1CTu52Ydt&uHx~Nr-#Qu zhn}Q8;VQaIuZW-OSFvvzZ|d7qr>AeLp-Y3TN>>Q4TY%dD@zQWRex-c?_#mLX=MbJ6 z7op$cnPloZ;9!EQaV2ZQ^&NotDLxC&2LQ|36K5wsHD`zW0`>PUK)4(LH1@6pG?uPN zAY2athXL{QPCzsfZw12p!+`MqI3ONB3_J>a=FH$9WK(^*8@LS+PJ4k1fJ=bOl6x`k zg$cIe3TNTFAGig$2~c_AE4_IyAboN_Af56c@JRq%S7S^qrj9^YwS5n8J0QMn1ccW` zzy@Gv3d>y&*!Eub_rkZ5;+0?JM4xMbn*q%?l4Y?qPsvi-VJ!(dH}!1)Wg6zhHJo0WAGSo5V!%59=Q#W4ml2px5^`V zmfm;-I7jdt!cV&MD&R8UFmMETGjKG4Xdrwgzv8X*$4NlC<1EE@2tVnED}alDYZ3@o z;k_TY9+2EhXWRpLjGCv9pIzfL;3ghO{-p0V0_%YaAY88ngx@}3Zvx4%XmBHN8}KgR zUf=|9mhm#o?+?>2jVtw0`urFm85G`1d+O}s$zpY??$N?p`9WOi4vi=A;}$^pF;|6n zrGFYA|6=Pt8}g0BPxHcIKzNFm(kmKo!u1|NGALbg4)9cc3~Lz8Yxe=-nQ+?=TnpR` z+yDqi@$^pMF2FkFEY_KlpP*aRN6Y3N_^$@8NN^3VaFu%ixCyus5FM0PAek0zP6Cgf zJ@OlH6W=6nk~{H6@+dud32*_h7uW*`U%3}2xID#Oi7VX2W6zPA7opeLF#gd z@$qip2q1a%{3gCUc6RmG{a&m)gx_KCxfKvEC5Pg#aDVFD#4*E7bKfyQdgTxxJ}NA| zskC#Hj{(1j=)cx4l1YuVgMh}N@RUvwFNLf0$z6cPnD7>V8M}*>lQWS|_UeH*>aXy) z4A={701g1+r{G3FdgQtsD178B$B%Ip_DjSU^_NpQg#VS%XV%U-T^YZ>(fU1j0F1iUgTuML6&5b}$yX|m_^xYY{;zy$Pl(_1=g~d#+2|hp z%joX=o9OQOhm`)Ml>X(E{?(NJwUj>oiZQMuhdZx`-zoc@jNd7oeZNfKp?mqu|0sq3 zB+1F+eA7wSXD=Q8-q~MWI_rB_YiUTrwir;SdO&TFK(^-r>wr4o>p6I409C_vg7w6u z-+)IS`c!v(DUZtWap{cij{B!Y#7$E6e-!eK6ZhY9aZ`ka`WFjvM2&sE5XXl~zm|_v ze--z)xqSZ{af1K706$E46sT+wK1bXWz@rKN2-hH5@TuIdeF^viAY24r9szT)RJ2nW z;VgXQs=j|rz_)9^Cdku??hjp}tMa=J^+n*i^7V;E0$uq^R9^X9hx#JO*W*5YmH1J0 zxLvs}Z#Ul;wIh6lyXwjJ!}&+K?u+X(U8o{lu4hzP$E|i9>WkEfG#;8m6EqA=QKGm_5@uK#Gd;U@#>bs#RBbIUD zRU9v_M|Bj-<-?|p>ng`f)Ni84xiIE5KMM2_y1c(ZSa5Z6?JtfY>sYddtHN(_xuCL| zJ3D~pbIo;mc#5#*M9GzOoMc%b9jEnyKz-BvE>K_dgEv;JEQ zE=7D6gUesjhWlYW=7slr z6&K;N5?n+J^>q}#Oe^zD`HHfxuy`j~pRXTE`!irvJC0ijmxbzgy2eBiM1PMDjSbHw zb{8}68~>-N%X-Uv6fe)zddxW3T?{T7bCyxjO7t-NAh*idUoR7$xTv59?Ly z>AY)Nnm^WCc9)Bb+Vti1koj&L?2f|4{LQ3#ev-TiAK@&%#8wBtl8fc6 z$Ea%PQjM#Li^gXWy#Dc+9bgfCMO-{D+V#3aV^_2iZA2ICljOm4QhlExEf114$(iPb ze1FuZJV@rW7E`@NJQU8C_4v=@Q^Y0T2l*}Yp2H-&YO|<=)V{7!xVRqSqdtiy-uubB z+QU)ZqSdLyMK}o`^+U9Dn`&2JdTL+0NRK>^#b2)oVpsh$h)#JN?9a=O8eb_c>WA7KHRhzlL?h#1 zcN8w-aUP75>F)mL-BGv*pCV40`xeyFWHF7k^{6c03VS-Yd^Fb;N&i(J*OFde=bAFJ|v&Yuex@kXF}q!<6L0IK^R0O@|=XdLXWHZFO5 zJPu7y(MmXJ+fH=_B=*KKV6bH%bLc^W8}$$WnQl8 zcUx-DAQ?7p(nI<3@(VYW7mtlgzTUjwZ7AM!wP#ud&x9sL!(I0YWm+yz| zYJT*ZOwTJ#>!PbVi}LA8#ZT#U)v5JZv1~r9dNi(zke3s+lgADe5sV>nj4?@oCv3%c)e&M1zMBhB* zaZ~+yUKIT*r}oU7B2He972D2--4C^;xzQk;bg6#vCSRuLcO9epXWUkTi+LnDE4G~v zyB|edgp=?QE}~JsOwsQ;=EFtvuGf>JT$NQHyne~gEBW+%uI-Cmr&ecE5pybf9D0#F@ zN-hnOPs`|P@;6UE@kD){kH@Eyzhh&MUrO^_pU>R*UdlhF_gKD?;>Y%cY-3AxTd7l9!crN%6(xRNacu(Z#OZUY7 zzby1~?9hf3|E-bFPkmcV|Avh*eQa-ZxBk+cuIN5CcI*{nWBY+UBS7!Z>fKqr=T`*D z>D!1uapJY1p5^_Vsj|!K?YUbj@>+aeKNlokpM>8<5U-DwygoUY{eZ4r|WH=P~#_3e4v{@VW>kug?`etDkXPYfPWmGa5Xei+omCm(GAH=j%v| zbM1F<{}6lr^c?pMm9$Qr*c0>BQn;PMgZqS0_qvYLKJeNEYhp!1zmmnJfbXwWFRN|! zeGmV@p*i3f@h5=CfxKSZgZ%FWt^oD{`+)<%LEs~=oDYoKDA)L|p|Md{5m)a6znl4?H}S;25sp z#2irM@AC0oJ2n`j_6xr}5FB}VJkEt*Fz!HN?#WA0M`S`9`VlP)ayXLT!Tx(ZScooWue(HmC_eybDh3=G9 zoMsA`=Z9$bxq$Am^sMP$1LxOu@RdAgVQ&2&-;Unq-uRYR9D)F)ep#6ml=@|5^gGu} zTfb-^F~EXuS&w`3xsKS9`#)R1h$f!@&y=27>AbK08;2#6Bo$Z*?mVIowsLdfp>*xD zXirHtDCPCcqJZ_wA<&Y2lfv5p$)wgYvZvGesL%XswthJT(jJ>D8DlG<-CW~xv2~XE zWwDeh^PLI`SifklmM)P_xfW2o?vu6x_W;lQYqow7O-vu@7mZbo_tSZ~O|`q+w%vE@ z%BA#Q>kH*~9ZM;zybJYN^ws)hu1oEEZ6nz%UP{l~FBj9x@R_B6W$qB&5dWSFShr{o zM(N_OY`XQnz)OK==6YtfemMlL!d;ifm&e#j#(Jo12|uNNDfP<|#O18Zn%6JVA<`ex zFVZzyzeuM@=j3&b-euCgl-_62nupg7!adcwt#?N27wMEUd3pV`+&-AU%Pqgsa(SJ+ zQe0Nrm$Llnr$EMY1mTr5FP*X;DED`7d4(1%UXy#A)`3*sM zHO*-+yF?o)X1|B z;gKHFnGP2L+6(@lf&TzVuY3mBN#1*bgXBMkaL!QI9p2O+{p`6$=oe_>u7bkQ7+dN% zTP~iEEz@VqZBu<$J%XiPMg6kW@(cA@`bRouu1oEU2Xn1slwR)d&PBa5AD_t_9_be8 z7~La17kCArHO&pc*CC|hvDP=*Z}A#My5uPEIpBZ<`JBD-`X$=eEo(rYv-pqhxW@13 zl*PrawEW^)DRZ5z6tI5Ldgc7SX6qN-_Z6>dwc4DVtTwBYlZ{rR(XLi&O~q9wtBoe% zMx)-U*Xzw%t=4Qe8=Y=f|Lsn<)#~f2RwwI|laqDI*P6{ni?Z?upm4KMukl}N)N0jw zyVYp+JDqm7(`xtIt!}^H>64fL31D)vNki1fzvAdny;fJ@daX)v>TlE={eG+4?Y26d zPNUUrx9C!hMreSN4f@$^))lTdYLmp(o1J!})dCT!pf^oAO|!b%>VK!dmP<4lU(4Un z;$(chqQA-nf0Gkl_Z8`vh1XWbC-kShLI*m~n_ja+tL+|rju-JQ5?kbGbX!f)TOhhM z>1bPhh75GL*6Orc9lG3Uwwj>a4i!+gAyQGk-U;OuhUV4D2J{WQszW!?Tw&D-h*p&E zbSPVc-XijZn4_Mi@T9_A{6Oy-LP2Lb@Eqv2oAo9%^sNgO z=qa{WCnoBXl}fEPF;VMv+C9S6$?@@t+C-%ay}RVE6NgYwOmthI)b96d&3?a$t822+ z1G@bhuC96;Kk1D)970_FXR_JtS3`bc5xoi(R;um(WUbrp5mx$Sy-j^lGF5A<)9o|D zLNybOPJg1#IH`C0U82UTt^W9Avp+!{8iGn2uM(!-cC*)4H|msaG&}uXhrSabaQ`M~ zXM(z_b%p>qQ8eJA`dj!lDk<8B<^4XL855gyWrChOL{+#nIu^yRG&;!5r7;r!Aa^s* zHQGZmkcC<8RmLa7Uv<1zsaLedpZ8i*T^n*vpnx=pMqFxF@_+)Xw~+Z}t=>fzs#ThT z{|uB`7dfdT8#9svyNF_!AriuqxQy>Esw;%M z8paLAb32abke@sa)S0fe6O+_g?K1pASoJH642LkPvx^!He*HkdF4{svJH#ok;t<^s zMh%7bTg2&VOLeEdhKRxs$PLFx?+9Y`DQ%EvER5sP{E|k5XN+b>=)BA#aeQK}^r!M` zELWw&(Edz1Oe3Os8$H%)1$ji*&XSKPHBnbHS9l+A&SuA{WO5u4nSjl6Uez_^Sz8%& zf6Zj8S7~*7^=>a*YbTn$2^4(29mADct2a?^5sn%3%OupJh^{WvC39Y_->Nr51Zt-T z)}1 z-D=moG|o*{we;fjU5Q1c+ivBu3DUv-YFsQSP~KbY8A%vMEIL* z@Yk$1s*Rd@r=Bs}FesQgI)ZlijebJv@rY|IYNVuX&`&JVNH@K9_WqsY*ZQ(jfv(&YqGT<#}=wT z3=yF?p|yinYUn#;3;|p6Rj;oZuT;^2nYvh0X-tpT+SAq6bhy?|Hm31kVwJbl1{CYE}zZrD#4Em1T z)6>PVhJa*$U>yIV$S`MwKSU>r52G#pAx80!#dP{(wT)_%II|vRrtVJlLI(>!jJGJ! zVcexTGmP*kqziE;u1b>@Mi0~DAlzD(qX#_xTP@boEI1i$tsW~0R>mD%ep$4j7z%12 zsIKs%@ivKw*T?H?>tSYIs7DiPqyx}<6O45hiJeA=RVG6@DtSFvT+ub((2|Z^+U4;U z`>eTaq0Xf_EYojk%rV}i+Zqc_ObgYoi3xTJB32(%h49|JKw4A$xXH1~khEp8UL+3BGR!@UpfaQDzuTgtC?!vsaSHl5*K zfn(FnKTbm7_KB@buUJpTPwtCzMwdr81KgC_11{jNK)=jNU zNwnHiy=HxC4a-eYJly^bEpjz4ge9)#y2%CA(;e zY8~P_41#K$vTnnL#5|YV{e`kTcvw&dhZCGu+Xl%eph% zO=X&bl$oii7#yFh&2T$76Uq}cfgg5eVQ!LUYShiGdMKb`-Tu_f6rih0JWKK!rrQu^ zWjw>mcm~pjFn58p-ys~+LuBr!*_)c-J|*Z@Mb|sM8E&g)&~G7EZ<=)Q>XT*EwRXJP zu2i)Ct@qdUy6e_XRFThWhv`^rlXaD9gFT0O7t!jio9eEcTDNW;cPi8Cs2A_dU`>)+ z8R?EZ{b_QiZvMi0gB3?p!zce&Yils^+pfny1{T5|mLYBE(qW0D^>BaP*L@xTx@b9F znZ6GD0O|uRhc;uY3yp5{v+iyRe?f=DbrQF)^gOPTn$p>AWGhS{($iYJ^_WUTl9AV% zFpuPBHN+G_W!jE2!b1IHNTfZHSck9!zqrcOl3mk&GfZ+_6nh)OMe-p)Om1!v@Kye$T&V0fjJA(YN=eLxJ zggqZ!Yf)Bc{`Q)2Da}@6&05tx&~M}8lib5pdn~O3*R>6!FgJW5T<6}2oxUEsc$rk_ z)=F}%OZQ8YltEf!c%s^cHr!X$LYVC{?sw}w+Se@$DDx|YZ*kenL z{LP+X*f;4>M-L$m>7#z!7p1l6S!Uo$S_VQwA5T=0eU zpZelkkEBL$!d#c#c`hVvK_9XhUkB11J>+PSA4Ppe)osskf-$0%pD&)KZnjs{ZP1pNL#+*9KRFlOM7r zSALcr!3n>)AFn3|bX>4UaidMQvg%S$w{Zy%>*&EkB=p0QoEWS^O1+oL}iPbWnDG z$||t~mQ6O*8`?nCw(-O`VJWscH#fC_0U)7X!*K^|Dw{{(OHFF0YaTB?U?foK6aq zI_Pv#yKJkZz}ZKEQU{!UJSlrrQs8t^pdA0Fi_&E~B?Zn-3anHIoaypsCsoT{l@ur` zuviMLREI3KoiblZfsz7eF9r18r7yjkVgK3N zO%%{QQr>n&CPY3L@@(qosqV{PVtXaqo%0EQ-owC{4uiGonu$)efl+V0GT95p&mByE z>#`kg==}!XPwBR6b&fT_KAsnGu*||F54&Kj*6?AFj4>LP%LOJ)O!8g{=DJfDiDSt} zE%k~#?d}xsAya}^Vw#v%@etz)LhnFWRV*Hn^$ zIwo8(Df1L^E;7hlf-xsnZ_!hoh14ReirKOXIsYNmY|oPFDKno}6v)Jeb3u~WtV|Ah zUoFjTk)HRno5I;gOj1bc-QuB0<%*>i;gBLv%$xjYmyIn2Z_lkiom&=S793d>R@ z1xgB(6euZBQlO+jNr93AB?U?floTi_P*R|zKuLj;0wo2`6ABdVF~i~3Iox@kQyqDh z8Ak{B2~RFN-Z>LEy}*xfhD*$uFr2Lnore^#JX%hR$8i*o!{WS^Of0iQ_%ctHlzHkt zpTmzC$L8Psc6;uJkE?M%JyzV`?BJKgJ2z)muHo<&uF$&9_Xr~-^XRyb(4Wi`PfVk9 z=F!0)>A_LvaqaQ>xk9VfUrs@$n>qkFp4dv=3dZiF4$Kq5c_li5XploEm=KY#fm54v z5h|ewnhQt7sz8VcQ2}|Kmqd;f5z^c7T+rA@6-W{E5Nhclyc97u7LE?4hCu|`6>R%# z6O|u|h#{SM6Pncz=@iLD#1!+}a^UCXmJ>gpw;cHipye#$HQ=9*JGH#I1D3aL)}iQ; z-AMil`kZ52IL?LdC2%4X<^}TbuLCr}wAl<_BG73{@(_n7pCl5-Bzf|c<99zC?S48; z`<5SAhtWc~f;UQ)yg|Gq`FU>?xxmnzS8}I|yc{n&k2iI|bT)m>2agZ)$^AC}jF5F&77Xiryw{|m29M>Z$OCue0C)s ziKb)SICs_a%IVe*9Ca4whoH)(`3`c}>(ZU*p0u*6l$>osJR4}eF zQXNAPqK(oAIhff(RP2UV9x)Vu;SEQy`3lN7A3;K>V~|JPP#K-umWnB)i0q1C3Oa^} zn2CrGS&%>LXX|b2XYxa zjsgS0wi=vmHNGUIGC9n|Z^acB2MAN)lDbr8E-6q_prk-afsz6x1xgB(6euZBQlO+j zNr93AB?U?floTi_aDGz2&)JQ=pT9dC>@^(7yK|cP&6&U>Iqxv$E0QtL90|kO%Fua8 z0n4N1)XynR3O~nmSli0L= zFYujZb%gc?591ZY5RdPKrKj^LLZ9f0Pu5d}?f(=EMWVT1#6)HrbUxM}3xtS>d5oCL zx-WJq7&yfT*^ZFOQ=o{O%$e%NJ`6>~8Zu)(^^pn&)_rs_1hX8${*UxrL}Y;ZZ8`9B z3(JY0_*st3Kl5$%pU-2@9qj+Anf)J6B4r4Okze2kU#ktK3)rv8g8>2`{0l^irh(Xw z5aT>a&g@w39rn1$!ul>{6o^LnJY}%U$a`aA6nO0aJP5FQi5I<`#>R}l>0_# z>+o8ASrNM@ct7}=#Gf*_Uf1V#UEck27`L}ufvJOl_}h`(GsIwNv&9F@`R1Z* z#FP?EzQo;TKERi~yI6!FAIjD2v^fEc!^D&iGp}IsrONbC?QR=mQN9E#IlyqNo4({3 zsMRMBtj1D@ji2#0ex{4@GksPnAAFcHPAGB0U=+zbJ}3bVX|6#81PT#W5-}JQKvWyK zh^R8=j6luJ$`MV%TqIgAF>qk1?Z=uS8|C_}m~sihbhD$VDJ8FKbtsmLIY z1u40vzxiVNn{OVU=AXx>`RDOz{;kyhi&Yn&j%~F1<7;3W9(|b>*==?BtZkhG$O3eY%zo0>A|eyX2?`1mL}^o4GP z{;#nnr9@21JcXQ#4ARS(Q%louWu8UWP{@|`C#xs(6mpiqk^&h8GO@|5+g2zxS#dOX zYz2j#HMb1UphBNcmestB+R7s52?a92&g5sMhNV{2nLIQ9u7sG`fvcH3XEm>++Olj( zfsz6x1xgB(6euZBQlO+jNr93AB?U?floTi_P*R|zKuLjTJO%vR*ogZ1x5M+=-}xb* zGY6N)>wfez6hB6^cLo=kFr2Lnore^#JX%iuoYZAcQ}9kp6m!h>v>PyjL%}QDvE}9vMLIOczTu} zJn{HBSDf5c@2~6ydBV=6W`n&SkA|ZugseZb)9(nv#RwS~4CP1>v4&V67!=Klki|kw zmxW0{FN+{%C_<(sqa)NIE@~JYw-=)F5#jK%p$HX_xk{*1#&$87Gq;N|xrmt6{I(pN zY5NHDx$W;{cE^8(C;U91$(fWXT|ViXm@Ejj=gz6uOW%77AXK)+NbEc6q_8aWWK}I^gl@apCdm@oYZ1-{zn3 zGXIQE@riAiFJrHvsO|4WH9l?_`>ntN_IE--^v>Deg<~rnAH-b)KZ-J);e0JhB$>tZ zY!KjpNv`a?$zW_X5Psutx)^`c$M~B*#^3ZY{-#gyL0{26WYy2#o0yQDDE!BqG;sbj z{zR!;l?KJ5rCmWlmR6+9y>be8;3wDP!1C{L;%pvA4k!H}i?nvj_Lp@{9)kd*wI@{} zMZt*1#4OlfGNuV(Rw=y}XRuxq12!4)$p*E@msz>uSSQd#sbkH?tVN*PCKI-|*k$&5 z9Rk>E#uTi_IFnO`siY`CCJf0^hflkHi1wG(@Ii%ZvPdh8xCXF()si4gNHKd1Wf9n4 zD>a0})DRwx3*?Qah*?e<;>v!vC%cb?R<<@++T>BhG%lCrk z`<@2-zZIUp=e2)!{@xt7r6zIdmJ}Ep%j{6m5|JL6XL;nwqz>H@Ysfq+tT3}sTw#UF z>qc4X+@iolHO(QJK(4-E`-I8mQ6}qHCeN8?c@>tWN(z(|C@D}c*t9V?khNBHvcwDV;b1d39GkDsYZMM5-{<5Y8XVe}6Y;?x!d0$qp*!2=)=Sc#3UA>%By$*oT~TpUSI-%$Sde zQ00*QA665C9ML3jC?eKwep?RC`1AQ;`#+2m7$%q>MEgJSPv%s?mLYnG!dOBy)DVxz5a^7&{UX&PkmAC(s%yAJLJw>nM#bPi@c^#X2=<(`t z;qmJ6Y(9BBn|~h9=ARL^`fzw2`@eWDWgIulwExo(iNZ*GLNbaffqCu!u-zQ8|HItJ zb{)pwbTR&>kMTEsjKAq){7s*t^0a-4>7(=aDwsO?{5>7L#{p}$8X0rFuFvhdy!+)a z`aVkLcy%&*Dp*9#b7^SLce&!^x;^*9baFpUKlj)4b2X-)!h{mpdYvf7<#*?*-#YkHcr6lfEW{TE+Sr2iVdH1Kji2da{7jz}%STiSQ2~S@9MwgfF2WoTCY;QA z3%VpFp~P@Ogg`zBNNSiy!s&W3Rc2RQsyjsxM#l|;p@ayTi;DU$D?lYO%F5ezjfij| z`VcOfkz}fQM+8X?mR%txRH_Uyot{|pI>LgKT+`otG5yUqk5BW@%-#FD7s-T(`nWaGWOBYH@5GdJ3tkPt-Ub4@u(~J6?1EbI!FB?{uDPvmWD+ zSG?rMWUrsClgUf!u+oOKt>-r~a446*0*Q>0>P`<`_fQ?Fp4mUgfCdcAU);N)`DdnYO@mf@l z9Xq3?M(=e#9^Xx7xv7)*YBl;$n>9aHsw^71y{W0}{JlnHqCx%Lero~~@zfA4)!TjQ zk42vyH%=i zdEF>Wom&*}-Q23lVJ61e*Fn)!E1?OWRgcB9)1FsY;YvDFmOWP}FiNmjNe=x@0oE}q zp+;_`qO z%^3T+TNWPYX}JS=SC7&CkS`xUrtjO0OyDuQcc_O7V8Js-!f>`SbRJT`@@P5rb7GUi z&ygMG{Jr#iuiZ{!$QM~HkAC#W32~`FwlkfH=KLQ)a(nKF$AqlaJIol6Pl7~|2U23dkSJoua__Lm zMHcq?dy?KIoxf+39E#<<5=33%YqHA=-m}2|uEF_xxg+<64&%$)-xUty!)zqbR=mic zzb8ryHAFFv5d4gHPTtaBSjhfPCvOEF$QGsDNP#o({oC>JWN;U(?gl?eKrAnoBkS3e zoY@mQjQw)pclg0jCLhoTozI#pb=dQR=MB#f*3+IJjJF@0nl84dGJT5UuV}9%dp{W} zFAR%1_v7p~O#B#KA%y^TOtJ_=8}ixDo~*;7>Ld{D{iG)e z@M+$lQp0&~oC4QqH`*NdMhZu~VHGH|z!=cSdik*D8KO_H2M!i}L5&1OqIq~=dWQrN zoE6~=(Y`MffPm0hq|SdjH)bf>`wbcQrD-nN`$gM34gZ{ZU(&m3AzYGcF~VW02<^r~ zu?ijMrb~HKsTdLM{S+6&x2lZTYl(TRtt{mQTyK`EL1M zs=eRo_}*)_Ml8@`alwJTnLolF7kP^-UFJGZDR2tUd-G{nD2$a5HxuLXytkE*@q8m8D7wloTi_P*R|zKuLj;0wo1X3X~KmDNs_N zq(Di5k^&_KN(!7;6!3FPBkkutSr~gWKTC34aObf%o1+BJmPfx(t)mRe{k$RSmVrb8 z%cJGg&nZnHKgV=9cix-L9<%e_^c*?m%RJe$#LV7o{)aGb&;9UoRrk|l#r<`I?w_C6 zIxKrLj8c&Q_|QA=(L-!K04HzGqld)A=y7oHgeTAOv2KcS-EvpEzkILJPv_%<^)Z=` z#E0*xC$l03&+nt%0^RZh{VYNVszN>O&YcJst6bRLEHf{Qoyv^IM5Wk9mLmqU93$<` zqIJdG_GU^~4bLchGnwZE>jc@GVRkTd-di$ENTz7EHzQYG*zjBK9qn8P@Jp_=S%w>kH15IFO`GeqwZ=gXx7;)d+a()UH9-qT@o%t(CW z85O4^hZ1AFq{VwibA>CU`@qB zmSGdLpm1F!=?rzQ^vTjtYcLIS4mA^U$OJ7|kEzaRJf`+zzMxbFMr!HMI$5Npbh@79 ziE$pd$+bSPp0GZ!9G>(3sr9ylMazf22dx#uJP%{sS~?6$SL zwYAL(XFGGKa+?nnu*7fo`^`#gf@7qc9gbdR!L8MPuUTO|UYX=L=H_Ix$|_vvF>AfA zTLA6~8nt+0GB>C?JGoZ(ElCik!FkDk?6K;)Lph6nZwvW;tl5h z;U{}k5?@jY!SIv4fih=;t6T*)?g$3+{qPfxTvfd>Ay|pU)S-t{tI#r4#Qn`&<8C7+ zgvJLwSe-VrTH-T;@EOs?=OYE@Oobq+|0wncZ+iN&Ecva&18x=Q@kTF^7!z$v0btI=>|N$ zY?tiH+?>OM_pS7vNqF%p^MsE!$M>yd03Kev%Fg%BJhGJz%2V%PC68-g{r9anPuH(k z$>^K*)ZM|mBk0QE2=u1#2o~a@KzMN^Mg)^^zh0#r@hy||zLg^|$k&V@i}08uMJUP< zLvK?>OaDLv<&YV=-U0{_Spi4*eJj0@k;ta(D$us^_pFGNKK#CwYRJ8S6)Q8pEeC#Z zXE{0D_UWuY^zre@Ngh*5aO(Bw!LRo)AXcN9UaA^;-%3=(Iz9is6;}GoIp3T0Op07&_!X-d8)bED z*85f#Sp>@7mP9oRXmnsmG!XMnM~u`fEkOunu*54?QJRD3I&cQg_vZ5-oH)&u`&r5R zRudIr6t4=0PiNQKS~c?*J)+fVz5*vsKfUAoR;;9@Yok0e?itJNB%IQZ?e>%f6GG+# zr06vuWzs?N1cI87Ld4vyAL3grUd$qZ%r)AwjZ>i82_=Xi(CMHkXr)b=UcblT-W>Pc zY0KZooUYMsW_r_l(etYHrsrMjQ_sKFr=EYUPd)z@-=FclMPkQTINv+!Bar}92Z8hs zl66p=2Lm- z{^p0vyb-SIm*pzRtQAb!CXx2`3ZEK<-`_E2m zQZH}OUax`uC$C|(lKtmIwb>$$hAWeGQYR5E`q1vSn0Ra9?JzX8tUlFQ+70%fCRu29 zl>Mh^o$uG8{j=@vpv*L373|nP-j?3q)tdvk|*m_McTB z%)i147eJs)enwDW)dhRD{U?*#N=P-k!py>XCDoQ?OA3?}C@D}KS`d7CrARjz^? z_bdmEXEsoCCaglEu42wM=1g$ORd8)pMO6XmjO=qJtU{w_unNng<n0pBPo{r^@>6Q2`%>0n$K%7}#&!W*)b;`u3m2^Y$BA zcWrVqJ0hC)B?}a+OXyw1P(=vKCdB43ib(dK(HbU;h~)`7$H4wG6(It$#R8!YRhuGW zrQ`_IQi06eGZHWtAp;m0lw~XNwE~MhZ@(4J z+ZPT=!tD*xJruy?Ge~U^z@dOeGaa#y@tur8ZFgn-O&8;D`WS!H$M~B*#^3ZAGG2lx zw)Zl9uxGOAC!S;kx)S@(%CP;XhGD$c)~oi;a>MYR6}z$s(SM#R5#V&w+wvF;@H2^Q z)Z$_KwgHtvC{kf7&~((kgGiqwM#i5>VPjg{QIKkcGKY`1r>3T)nnlBqS;1yKn1iAf zr=~Chjg9DVeKN~Nxm6D;Q>neFAeb2Mbvk{*Q#64t>TnU9n(Fqbw?S%`0CuAt%uyRy z;T7!zEx)F-<=66U`L%poel6dYU(2`U*YfRgV|li{qQh&o$QYQAqOO8IiyBK)SUo$? zUz#99*uXRfMPunbCld>arSF^`a?FkxBu87$U~4G&=oYPb!Poe!jg?_N1nL zKHsAK@g|+@NNg;WnHMd(j-iZMg{3{|5M9c^ycEd9CX>U=GjF*$6SLyz-Iyu!%vomM zglt@7)^;nbaNgF+#AgTv%JW2@A&e~1C@D}LZhxC zJ_#7n#+(T*xe6{uG}IEF7=)kffv3&4oSG%9LZfG}3d^JA)X!nvB|oQiIM|Olkau+~ zm>>G)=A-0l08ZA$aW*ylgcinATS=!9_O~pFkL-_tq+Q}1w+OU)E&-WlWB`U z_9LO+(bgrJlMsQC1F12c91)K!LM9->#}T8=M}^-|ju?n-Bx_N%P>4{BEJCszsTY_z z1YQ>q^BeM zf>+Yx*yvLRTaE^A!JagmUo8I~7nXmI56i#Dhvnbnqc~3$$D8fG5)5H z@i%>pzv*NAO&{BPg|_(dAagipPdbrVmafE}bbLIbr(Yhu4+7)0+8}V|eTe|4o8HKy z?3gjF4!SZ(qyjm6(kPKos68E}Qr2`5krWJOplG&fopc*iVK}OGDg=WtlD9KGg@I|v zs!*pFf>b0W*_KTxHh8L3i5(e;c6F$z!kDJ^`NIq~B=!`X;+#?JNii->_N1LIg$Z_L zPuidAVow@Ui}rz*U(?z0Yx%bPTD~p6mT$|i<=gUW`Sz4xdA7Zx!5?Mo#pu=gU}B#lhb?#QDNR=1Ap<7fgxu#U>mHv)q*|CoL(` z;oyp^vvZ2mL)i#0L4*p1;zN`yH1iiVDrY__pgB8IjfX3rR}mbN94{vzz={SOgDWXf z0?~um5HnmjTQ^xAEGL!+%aP^5a%Oq3yjdPBZfM3q%*<6sybP<)0~`$_OBdT8tq?E0p!s+-eh24hts_|Wfl8Z zPDjN!m4j0`>=b{#$qCF?p>nU=m*K4JY5RR*gc2X=>E z6M+AsOOMEybu2q}vb>ueL8dZlm;yPmN#eIcvB`=v?qgHv@!>X?7RoA&cb*i^YF=7J zW$yEd0;f>0c@HmKOl>QnXeQX%0MQ$M=rmScNvv zWEGZ2%c-Bkx=(&i>oDi324QtLb7j2ZhrU^)Jmeppz@yf{(4pK4kbiW-tej=U`9^^y z%j;6lQ}xsROcDFB_-IOde0bd0&cXfkkns3&^{&l!6b^^;ii5T5!2Z=ItjcO8Bw;Ta zEn;&AtIEzLD5hw{66%xXiYrd;>i3u4*>q0^HwF7w?C*q#bI4AmVE-B{^lZ~LhK5+YQkY*-Ww5qfQ5;Rt2P6^R8@MP>r1bmhn*Vo=stiHIp;kV8EP z=336-Lo2f)W`p@{Ik2gP<;4859NFH+e6zic<;@LR-fVAUd9%HZ+aEF}ArgByeL{G0 zlE;)XoUYe1PdrZ*Tu+1jYmnY}^kC6zTd|_0t3)Q`O{WdwhnX=hib@KI#h{k*I!hvm z>1_I%52mmAWcr$army*D`kH?ZkFv)SqC=^h7I%4oI|jBcl=_)~+5P!5VrD?*)8xHH|y^0wCtdGs}P>L7*) zKA|4!QKi$<80T_=rRwN*3HCAl#f%SY!7i5xm0a`3d^3N{Kl8`@Gk?rK^T+%%f6PDg z$NVd{U)29$bsmjurFFtp=ipGZYtXOKN%3mRZaOMmM+Ga%LKH@|@F^deDJfN+ipDtQ z97Lu#MGhLsMLK$5woA?|(iv5J&d5PgWe+)(H!C}c%tvK87ay57ug!|DI5J;Bk|)cH z<;e14IkUW2-YhScH_MCV&GKS-v%FZ|R%)L+UaQNFooli(S>y0mOm%A$l}1I&yJj1E zS%iwynH!Up`gk~%wpp93vohe++E$%&Wo4g>W~sNLeJ36}})&Yj}DT{`H8Ft@V0Mj}-CbUOJno z*Yt?7R-+fu6N>6*LODZ{Jy}xp_`cWCzAtu|`(4Tpe$sw=ov%{pHHff>USlVet+lYj z#w&w^1l^+y5_G51!C&;uoePgI4j}eZBNNs1cs0 zXtO?js4hI>(Fr5bgA@lYNos?~HH~)Np8Mf_0Qb}T1n#f*5nP-185|Dhp=7&1Y?ur^ z{t1IB|2!x}#2tR^`6!rrKiCe>(9!mb(vb!|4~qLXxrq2gNa-O*?(2Dua4*ju*Yq=8 zy^mwMdw<7#@&1na=KUS>&-**(pLLG;=lva1!23H6Yd@Erm1>oTc7eckdDu7OyHAAq z91xp(9G4&(Ym7$EB%IMZ%&jV$I4OxitIHK9*Zpv``|0qwj?s$p(~J_Y4Z^&a9Uz2V zyoUAK4U!*kEF@i)_bOEvv3~MX^u~gz1E#a-Yd)C1=9Bwv{uwXx&-j>s4u|JK>X5b~ z)7E&Dd+(E@`jL1MA;v>O?Ym|HZJBBu1mdzMmIAXhjayuqYy3?Y<8S&Hf78eKn?AMULUfz!@+2M( z=vjpI&N>G~{B`TrNvOn#b~^Fe%7NB7AI6PobhXImnYN zJv{4LzZ+lE%XBooOlQ-}^ftXrZ;wyY+vC&p_Wa`ZitP`cCk4eU#-pyR(nU~T`N%9f zemF3njqH#uJdAS5;6heaJrpPEkBl77rI6T?d(1=(+{;CZ>->p@xtx*~NM#6@s?9})+G2`xI-lIwx>90n{7pF*iX1c)a=Hgu^9bi4E-}>dU^%fo zSdJ_YmNUzP<<0V7dGmV1^5*r19tVM8U!Iny%b)0LI+;GE zqv>Nhn?B})$D{e<@o4^dJeofa2mOb_4NIo9atf-j5v(kw3Ppil8X-CftJ(9YlBDqT zTcaR|e5=>)pdd-soY~_nn=q23ih4Z`wyEpmlPV)^r4p#9HUU+m>~XX{g+0!mo5CK4-<-mx@AFdFa&l1$TaKQe!j`iaq_E}i zg(++~y*Py}$KR5|mh%^-u;u;5DQtPaB!w;SFG*p``%6>U^8T_EwzI*W9X{KMP;AhOFvzC%h6!B%VPdIpyN3r$}#? zkDMaO4U;akSZVTc)2{49G@fXq&;A+rFeo2vL9~BHeVtxkwQ!X zGSTQ_J|YvmwN*w-SL>$9dK*I$wZ_L<^C&KE|IC|Y^X#9^N{X$R&Ti9uaCnvX&l+>= zpRog_WfZ$P{AjIA`=@vROpVj}V0+0FnB~siCL8RZ;mdEVgxSz6qx%FQh|WaL za=UtI|18svv)Uf>{u#xFx5*aVKV!#j^!^#G4JXWQb=fh@F7Pt!kPYphgnBdq+hk+h#+72h_sn7$Z?8x7mW4t zUDMBW^*m*|dmb}iJkObLR_5lP=SlO=%Gdn!JnJ5N9(I`ZmiNyXfn3@@3vOdV%ADoS zVB2iO{+SejcG9vWSDak;!_n@i!|DD@@{?_vakn#&nO3~DmvGRKZp`Fm-KIs47+&;7 zQ49-cdDE&oc(tqM-L}*L)7kVjA535K$^AC}jF18^bUZ%I{WqNyjn%*9trnl!8H(P8U{jD2?s9yb> zZIy{azD7sJqRtatNUWMhMGnV_HN|{lCLAqZ+{5Ri#dH3-v3Fi22fyM{q_Q}pb1GZN zt6!KODhPi63~zIhTiQN0l?un4nv0YYE*esz>JE9c=#)1)gagi#`k0QUkLhgsm=C6p`D6N+Kc|O*SYL zVE>FoB)T`G=rL1VGM*v&l>29q@Rp6yuT!cE$=T)Vaxks_Ro0Hsom|cF{P*Z-apgcR$KdLyp(}$Si7#RE%|sW zBX}jaasP}P`0yeIh6Bvx%**Vnap%J#jjt3St*J}FsjywgHw^mIebq)HyJlf$PKTju z|BU0!u|H$~jFZx+4YRFKVu1wZJ2(fI;f3hwRDF}&$y@2 zwo%$93-)L1JB6*Y@RJgjw0{=1K2UPA?aw6HEE8;hMnh_xwYvD)ZqY@8baHtAY@RKw z$yvs4VgHQ9=3I?4uZK3`Pcz%2%NlnNbO%AN=4o8pWXZy8_Ws$(1Z`olNyQ6*+O8U4 z-X;MOgLt-u71~|ZtrIn#-#^pZIFLOimZsmt4+t*Q{1H>=@#9`gKSE$I2j^O)x! z&vTX&D|5?{*Rz&0uV*c9UeCJkUe7u_*gxaxOSp#j&$K|w_Qo<#v_C`fWHFh?6(`sI zaJ2jB@X-EQkPF>9@$Rc6LN`%q|4h=5_Rr)+u2Kf=iRHZ9tgC|jPML%-?Y8B-sRO37 z>1#fizUGtrZT=ZA^UwI0e-3;9EC{prbAsFt1>*i0@nN>njzhTp(bSXn&*(bi!24&A z!jj;YR>w8|ri<}6eT={9WBg4Y<8S&{e%-rbuTRPTnf6FDOC}OWEi<%#7EI2x{t;C( z`!gvLY|Ns7%?_+v7x_ajS((KElf440h^R?3KY_vi8G&Gb#>PjlEAz8pf5vjpwy;`L5h7=N)~&YJ|la%Fik{+1`po8`&!W_hx_S)MF!4(t9= zwijW)I$0nNHq3%R3?`l#^{)_Q-yw;`OdM<)k{WJVFftles${r1BGG zUZ%Ilr|IqSX?lBpaeJO$91c(WlFkj>*3amzGHdBbauE+o$D%RdUns6x9E@&^9FCK| z9GSC_jUYL-Loj>|MLKmT()ouXT~mlmwK^^~L}d8akA2D!OQ<)=o2np8q#Da2f=7|F zvXU=kA7qWaRQ&Lze8pI0Qe{}slFUr&|?br`nfML*Bnf7fY zj2^}e7zNr@RM-QQYDR-9s^4b_M0Kn@!Jn2m@Mqr#c5--6r(t2gEMQ|eI9{yV=j#ExKxOU7}e`XREXmW1^a!rgQ%X} zn|7>K1ij?i4Rh%1Kd~owE6DIWWI159YV!!Th#7nBSHM^V{-Z zep?>QZ_9(nyZP_^a)-I!l|7(VCHc$ij@hmYCbzT)jD#>hza`Pd{CrUgo1ZUEVe|8n z6gEF!lEUWaOH}RsMsWWJ(lT)718u=zC+EYkB2TM&)sD>6>ms473 zkWKH?rd`bGK2LGkcHq;H)7mqYera=h4N8Z1Um6|OR&01y)=su`+7x*wYO1J9YZx!) z+so_$QBY|=Q}4$P?`IODO-|mY#S=C#T}9gJR0F|gaQNevnT3EE6mmMnpu&}3*gHjZYbL`z$WB!r*g1X4#|yv!RLPd&)maO3Vl zmY~hlu#d`*x*?@c-LdhokD7X**(fB8Zkbs2kIBN`1SKLy_}DGhn|UDtA{tdy#oc_^ z#SELc;YU*r2{J|uTbU{r6H>2+D3FHQAYv9D z+}|_pntrCM*Bhq0m9_ce^@jN-V(BvfEbQi=*Bj=a*Bh}^JVV2Nx%vG}sX*BSG8A>s z!&wH5P&gFcr`4Db&)aZY-p@>1oun;yKT|@U_E*v-retTfSK@=LguJ7@Di-%GLk)WF zEFsFaHWdi>H}Yiji0N$lnh&P0`DFTqLG47$IZ4Ba2u=X8h_Kp_?te)-}Ev5rjPMAeJsE3qvhA(xSS1Z+PJXQ;#OD6 z;Cfx3+s(?`85wMafl;8kEzqp%XziS`Tw)`?%I{? zNSI#rsVm7Mxo>348@alSogQsc#^y}bl z`hD;={Xck{ZXdkO^{i*s&1JC%%$=qexYxVLlP%a>TJg;#K4MXcfx=gPt9dvplw?8M zq-qot;{8+Mfut9R@F{VFiMc$nJnG?$6vX7RCg64XxXWyOsMrHCh3^-&Ok4dOd5s)L zUL)s`*T{S1HS(VEIr5(IIr5(S%al3ym$}Z{5P}4S*T=WlGZot$ulv)!u}UfT$ymSi z#;cL%sl2k|Sj9U({)$L>CHrt4=4<4J`x2R@#HvKc@gt|H*cuzcWztHW*iFh}u&I(X zBAe-1%8Bj{96St81`mUy!NcHe@Gy8AJPh9Ed1LT4>l=f&S>G7E&HBdR?Ys7XAKur% zSAGco@749tJOihr!F>Vem3| z7`%+W8NAH3`kur6D@TFyV6`H8f?2C}N9s|YC$^g1sC9jm3B3{b_j#X!W2SVtQEVg0 zwv@h!cnkM7DlrduS5_J!hLR>3Hr$T&+#JZqq9ai(H|7Q*=PW#u3X`+UaEp@};g(wp zNm#*2Mj~0ny_xrZKbmTP;QirY5A%?OuFu`MSy z8I2>>_lTQ|71@d*AyHOieNXs5J04;WM0fiXb8*ZA%=zyCseiBQqa}zL-~UC+Wybe^ z+1E3^|Es>9@%>--^^EU-+t)L`|C_#^@%;nqqoR-1eOEW@A&93s)Z)uCh8izO5iGipHu>G>46_@?q8FCboJ=yA1(8m?ka(+1bz+)s6W&LK6hO8z|YaA z*H&C5@S_rV>-ph25BX6EUejGA@UJZa$NF1(;73~a*XF;@Lw-cc*EClN{Javl&O?6Q zzP+~WDuM4w;H~G6>pbLplDpEc68L!}@RlC<(H8!-`G2&WYr3lht`fLP;3|Qu1g;YJ zc_i@G^TTx>^7HiZwIx>xd`kj=a;~L+8p}g z%;nGD@^80LIea_Cm3o!HRRUKDTqSUoz*Pc2qXcH1#pfd54=~@H{u$f)R-67KgkQP+ z^E~XYYxi^gmb`wIc;)b`wDsD~s|2nRxJuwEfvW_r5-17$=fAihe)Z>{5AXR1 zw~wFi9v(mQb|k(@`Nj92-9GTjcHWi5=Pr4J{Fhta6!wW1B3Um4KZ~Nx8+yr?4G=Wc_ct5X^{PBWUUTjT(FA#Ai7k?xmFYm~%0Ew3X zZ$anMZztZaxu6!eW*FwXosr)-sL7J6N{2JKs<tqKR;uJzc%SmB>eUKG7!ip1Ramo2L0;w#V zPiUCJ#5Xszg~F{QC*I*0243=lN0Jco6v8c^{;0U*u*V@#T3?dxjIdmWK)NqqINjXP z-<uV43k%H*EY-5n<{dHW?HKQqLo zA3EWZ?+@|%Ox_hLffr=XrEwv24hXw2NZ#`t$Kvd#jBF8%$jh+gBS(bla>pfKR_7B+ zA*`o`z`H(Eak4=z2FY>YsxEm$C^a?ju$qF*3tFadq$3v^qfAv14^)FwLYF5$|76_u zMDpYyE@e=)gd#uRGP)8Hf_XaNaD?0Oz~%7>OHRApoFL@#goYv1mnSa|T<(q`&_3Q* zO17tMy2po5Pv;CyPgI3(3kK*9k55O+ts0!F29yDphbK!T@53WG!k)_~8fdu^h?7vY zI?*Q<)R*sUkx4vB=p2d5+u#)rFr!n1Sp)8FgDXA_F7!ABS3w@LY&d8VFqMSM z!4*l2TM1EQyXeUzCND)cD;O;JOXv)6UrEQ!4FV^!scjo@lP#>aNQ?qCaci??56oIm zwls!8@Yg3^SsTEu`o)efRYlkC_UTnayXtd5!~2@WmGD8oj7lREByMt)t_xIT5G5n4 z(pTuU+`##?z=3fm&;gui62O$pS9i^84NBLg$RM$5Ws(3Xm#~Lbkca|(IK7*Kl4J6g z!UMno9G@9eIBK{J;127ZGa*iet0*_#k6rj9TkASC;R?*=w-?IAp59uKy@Nng1>C@b zo=I=Pg$4tp=qnmwsBjhh1&IYD(Uee~>Lxt5)PSMVNl>VjI7rL`+N$A5NAs;gu_CRB zg<0`yz>OknT^y}P{R)Y~TSyfbLlDf-gl4~LxWFv>r9x`BCvT7k9?YZgcIiP7kuGc1 zCwz9*`>nomseY+!mADv`k_q4fBwmW{17r}!NsWZ|nfv8Cq_kk1yYBGwcD&vo8;RB` zfD>1RY^qD);_q2tJ~spNs`Z{W6O5U!&phn%-G=kdp~>d3Ulc2fjgb`^XTuKOC3|KzR4=bb>EmkMUAz9?)%%zAXRb z7Zc3J7nKQl@y^mpD5*`7KzMpb$wN7@801$4`A`DWI;Mb5VwlA}KISs_E56S0a8Dd^ zabShObN~%H1XmTv3o3W-j+QGGkx-1!=A5Yg>D}R21Q?wV4g_Z}d_j+F$;Eh&&Qr$a=jEDln0z^IQ1$ypjT$Q(Fxf9CzF zb~tC&&nz}ccw})^VM8z*d7VucfzGhdw1aeL^(Uw%;h=^?pf2xH1~B9Mr?$PoaCd}o0&HeKnV1{?a3D%D6#VBCN`Ygct@@7nRzMH3o|EldZP=F_lDD4k6>nhfW$uk|(R+hhN3@ z6D=nc0!1H+a1`*#5hP|@ayrma2nfjsS4xr`;0l651XmJZi*gL$I!8)f0SBI`M6f0+ zVBSZvW!xbe8BhSH9ZV^JXF_UfD^nrw`%pt5&h}QiBniRJBU`#Q#Uo-^ElP$QJW)7I zr~)EkG+H6<6@2Fc!14b3{eht?d$cPjZo9X)+yeL()QwTv=uID8}cO8^Jcs1edDk0>&}7mA3*6}5l&6fr)X zNXIikCSG@nL=>4RqHXz-){ylmgavh87QuM2A=XOlEkyb&08x8ai&8lE5Su`0Q7y`# z^3nulg*f@#24lj$c1V^Y^#K5WkpeXcp<2!@8&+tB^ifJfz|lyG?wDQ(uDS=QPGlOu zsrraWTuza#ZK5u;GQ%raOVJ?!IGU^oLP&d4c+_U9#yrPS0mqWRN7H zgt(Hu>I=Yu!zdXENCT0mWK3k2AUQ=Rnt0+Q2eEvZgj>>{dQ}WdYlpm##mIGREK*%2LXyMdFO+X?Ff^)ht?NDbc zFo#KsOyPk*i&3CY!@*LTT{V#qQ0B7g7r}dJAqii99*DPYOrauU>39l!}1fJw7duY|ZK3q6?ay*nca2?%V@=lBRA z11?O*&u%~WGQi-SlS05%#AFRQGAdFlKc&-vbEHIZQzb^l6Zr;ks0^OK$ru7{?{P#Z zs)csQt#nwI0R!=pqr{W~;qjCXDhdTr1#$px$$NTYn5Bq3|8c3vsLO=p z97v6HH)U8Fmlj8|r>6l1`~)2Lh&+e{aH(;$KxB%rgDd-k?5S7_8^Ad=0BbN!j#F@9 zF)QFgpiBCo|5^r-6nCq6{>#WRU2w%HCtX30AGie6c@(n=q>Elis0yDV=;_G|+LKK_ z9C=(w`9QhjLio}7#&7R)Ebm&Md@~=J`O17(C(Jp`cX#HR`HGuIwQa;weeWOf@HqQN z%pJJzIVl&>Rm-je7n}}n^$)D?TInVdaCgMHc$MWCD{O4zmPVlp}_qX?a-uiy8eGET*DiHga z9a`|yXLowBkjZu{UC#|&eYXG8``<>^isVo4-=iP;`1tu_e-f5K%U93&o^Xv`#%V?= z@QKgBb9*7^xf2ZE;Wy<@{;3yy>KH=*PQHmAeslf) z{pT;Y_pyJvx!?H#=v&O7=$qU72R{*cqeTHLUSHUV=R0zrr+t(EYX3BnsNYNZzHa}- zde?>h6AH78Y%&u*vwtGK%${y1P$@Z+xC~P&*Vg{&g5h~B&#qpvf5IeX?4Qaiiwg5d z&iNja%amsvzH#wA{GlJTBI0kgWEw*#Oo;e9vwysiaRIR3uDa4W9w$_Gu$gHs+`d48GaR~~`p`88^f zyKX&r*7GZR`sNdVWB>H&6A!08Gof2vvwvbSvF)G21-Y*X&;e!I&jj>W>ff-3^^BiiDU(c%kA+!`SATx z?k{S2za6W=lQ#tp9*@~T_j#mGEKA4Mi5phZ@ywhj^d!+nDAY=v%NGQ5m~JI_r>X}` zo?n$gE+dLuR^wy;6frFJPa$~XPKJEucYEoAFyHqT*J z)>d(uki`$7jhi4$sB_GvW?IVZMGig)dP`TbeRW~~#9W5`53;dH%Be$R$aGGqyqYQYnXa9VF-?3WoOcKeR7{xdjj&Z z=WY%|wt#bE+wFVg$0@K_u+f)5 zibdrB1kp7TlTBP<2{qXUa6wprnVt4VZ0DfYGYsq*#GQ^x?+>_Ezy)DK0J`YGxTHeW zmkS&v2p`iW)U1eD33PA(*DEtAGFW3wblV1I10PKoC^eUig@$MfniDOsYB1;;Y+12y zwk41>!`{z^v-QknPB9VS)W&N7DYho*vVd!hOT;NVMGJvYtf-1Xuv?~l^w#N#dt!BW znVz8G3UHln0i0Y4S2VRk!AlGX#MRWVjS6yErYv2WE54LgfJ+Vt8oG22wwj{h0<%_2 zELE+5i#bITKv{`77BSwmMl0ISol)U5`z$KKnA-l3ui5*QP zS<+Eja22fO)C@wP+$PX+?rQcRFfObW80>R&*bcp6pR-F7s8kQ0yo`qH{uOYfL+gn| zBw{*D@0yFO0?~#_u_|*E3I`ka_rSJ8DWi=`iUBqxv7%~imUJpma+GmN>arja_6x48 zy@axlS#q3C0UX#+r6H??5Ds|pKKKGx-Z=|!bVVTLiBR1+Ww0d_zbz6=cXmPF1e|wM zI%A+$;37_#@q@}(0T(61rFY>KSIB80z-ln0>Vpu#!KClvPys_U932;^%0V1e(Ymk_E25_7jVWrK0Pu)X96$}9!CxMB1 z2Pb+Og;E4ALlB7&gpU}{Gh9lWQ|`J8uBr@mU6&Rpb6Mt44bd7JbptPLyNsEYK~*S( zQkI(u#?04ep7GZD%4GTN)2G-!Jv=a#Vj>jV0dG9at1tyZee9T{Wha}>5qf0D{K&^c zur0wHAu#6=EbwI)#$Kx3yTsAC*`tv_y4dANV1ei>OX)n=qNiX*UbfuW)1q9V1Jr#s ze_(&hZ7%julMckh{z-yccjR#2Cc8iUKAqUO>zy9<63ZMa?JYuq~G zA*Sq1)hx|fo=yuq;D?YJIClskvxvJU&=?8tzG`T2I%B#IN zXJ6ESIk0m}PAmyHtE$U{Qoq!cZg@dpq`L+I!N(eGFleRoNETJtQBw_Yf`DEGutI}sgu?hnmt!JjViw7r9U#thJe&bs zte&#DpCqJlqYn0Cv!Lys7zabBkk|>ZKkxS7{$QNjP^b;Wj^WlxG=anb9X)n9dGDl? zV`i6~`vx3q@~3R6mc@Vz_R9{o+wydYi}c464dgLRG$Eff5D7U9a>-KziX>R;G1HaY z-@ARB>MAC3kQbE<#%1qV6(DY@QgQa6AyCUAWV0A8RR(+|rpSuhFSv5Q-chDZMJz%D zDgj&*yhED}0|K`)NZ@{WT0{slom|dob~juBVK8S;*0Jb36)wc)k|d>l6iFG}(Q@<^w^J1vkN$#2i#UqZ{)rpJ*E{;W zkr;8JbGXc%dJh3s-r}oPs%M(RCHH4-Drml}I2FMiZ_1zq?F3Mf0*-NEillSBe!)5e*%it(*%1r=%_j*Qe=fnALU?6Ujhds{lpMQ&f(HRgrBv- zHI-9px=J^=3dTE>#PG`{H_2`}BkvIifSlk;13q*t)c~iM394jX1DvMmSaVXf?sNDx z;J_}`2|*(Y8k73P)+q!bT}R^5#yV{Q$6i0(Av$G6UHX)!PGfw+qD3T1;VZ6cRA}>o zNIFUEntUD*aDjk*4*MWBgn%KEOt}r^6iFZD-WZEBP8v**DA`h)j}i8V!vF%-OP!<$ z+Viz_89hB^XbVjak_d}{KOI1==-E9tAo@Is({Er^Y;cM+eDtXfEn^T3dYUsO-UkhBAw>dc6>ay(mYX%Kw0R?M)MjoCxd~_BV9jJVa!OvG zE{lC^W>ROEJB}2Sy;0e!aB3E<9HHk~sz(%s0ywKd{WD-==9E5<4A56nNf-6CcT6Ym zo~acC>JLnnZf+-togQ*<5(k#$_NqzxST?W0bfBh zhGLa%0bE%c1#k#p1zg$7d1sIG@k0O`s>4__g?$K(ShZ~_OWJ`Eo)3%ZW@^=#q>Q$( zi+V*6l+m~k=QjSM!JUqx?OXuI21y#zErO7oxzw3QDqSHCBG=Xju<9HlvB9+kT=zNr z=-;$eVUvvuaBtG!59aop<%*3+k94YI(&Q15O5~;(B+>-YlpH|8Cm+%wq&|{&)uIRO z<#O2L?@k&Qz;A2}r2Oc7;}5fcivN7}kG}8}>;92j6$aR7_L(*ZkEJ}h5p-efj>q+} ze~L8^cjd+Y$^9dqf_Wq+G0&_9TqGetBA;EMa<6cchhJ8XWXUcCZ21c*n?&9^U0_)l zdW%o#3CNH~ku5`KIOcMpj;c081|+lAaCQNRN9pY`^SX%}`7hVm5#vNPFk+#Z{%~mH z@S6Qo452RUpK7Cx>XM86Jh;{$4@T@%c*f2Nz6g9s?%EO7V#(=5?4LRpf^7~7&{J|q z#+6|>Q(O$HlF?3G?Vq|Jdnb`aN?FtN{C-b9i~W-_IX}K($@C2penNlj@r|qHSa}yP1Q^u`?Mvihnu#rw?QQG=@+8+fw`4+N=H3?L)sGNc*SH zw_jQMp~ta7bS315NeAlfmZ>lk;``kT`=_>!V~OVW<0ouNwW@JU!YZH%Y|uRLNc^38 zWC^Pt*24>xDo1Veq7b7LJ$pcfj^?e`ZREoB2@f-&u%WOKt}SH35+rs1jos1T(f;WZ zQpGZigJD$GPpHwZ&*e8cEde^w-4FFa7Q!*34Mf!eV9#VA%ui_;X!sY)UEs z=@T!GI)DEY>u=zKzbwR=k;G+~LI5VOGDH1$5^yF#g_p=mTp8<3f~7eGs`7PSNSN9X!#T^6 zo?-abagnQ76=z6wx$rUY2irfX67tyU(@PAY(029wip>v^{Gr!~G>~<0pI`IG5cW}V zF@!?D@HiDK9hWfk{EGG?z=NaDxT9aWhpRT{annwzCUY)`5(p$<$fK$}hYw*NNn^iH zWIgrrtjl97JPEKk+uTZeg*w77P3yjgAKw4OQ>E%XQa}i_z(bMbK2Yy}(jZ8SDCCro z+do{IatM`VB_v((Fv%+fpDroZ!@C$oM-V)khp+LMq1OpX7fHPg*&;;vf4_D>)QTy5>2 z0<$@NkHGqAn8xg4%c=>mrmxbh+##u9Vx}T+WFt zEAhJ$CR-+C&c%HlN;da9EF^ZEtI1M>*ba3ZfMat*y^v0>eSI(KGIs`u9ptPb7yLGa^ktty zpa=T>W7F}Q92+D?>rr@CI2v$5zAb82_-HH;R+LJ*g)kLQbvZR*7{o9oz@$YY5kj|Z zwGLpzMOctk==Em2D5-u6kb)OZLaGV$;6Sg@G?x&BPq5ZV+(4ib58x} zgSIx9m!+)m@oi2^8L^m}9P*pOB}`qG5b9MR#T-TW7y=t=xEK0r0g|{X{Ehl5AT79B zH72|AvT98z5=)g5%3bIJaNYX_GjPT0!>Dy#8p@@(YJ#h3n#f zRZG!at-e;kMQ@y)R=};@-K^@}WdbB`X#x?sfd}LB{-+~jBK!c-U}IHjt-c_H%NAiU z^|H$FjXhN^>F86^Zj+r}fTRci3n+ zxCr39|7oKW!@dbGHQX8C%FKzndL!*ukBPcbWPKyO0Nh|BNDKr79Kg6BoB=L)3E+YV zasarwL6!y{aIFOORRCA0ThteMX~$cD3jrp%rIv<^{Zmd2IQDp2gKV&-`EYAEdT_<$ zR`nGKJ8z&jIaHR-ls>Qfc^h6LsWMO!5yEVJ;aKt8sIN(~C7|ka8HBBXW4myHnScuj zm+cE?d@~=NdB$7oD>FGP`zLqlnUygSLi+BEKRz%GTJ4{h(9oM9yk`H@Rv4lPzU;!- zRk|GYOF`)M-k!-OEEh#!fyhT+c5Jg#!S0$HS?pJh{ZkAVs1-YuhOF3va>~&JH-D2(je&3=FtKvZm>DN02-%i;syNV-eRze) zcGSlH$!%69vD&GyahJ_isNI`tuM$HnTaqoLBz9-7_Q{;uQ3L$XoLq8ZrGX|J;?lWc z)h{)5hIdJb0ZRz>1}&!vu3TCxO+b(&&({!~QYRg6^>ZV7wSQtLx77(kRGYBF!Bf7f zjKu)5*~y$pr=5zo7R^zDPB!fHu^?NzmQ6YU=N2s?SxK<>V{(P;0}mhXSP|g%$3#e` zlmXVV`>0(Vg?p=~1`+}qQ0Ls=_bqZ43jrGxH%P(wx+h!KdDREmf?PHf>s=EhWmov< zywY8;%skS-2#lvx>w-E*52RMHFnOTmA)v!Tz;-SJjFWhwm4Q6>*_aw?ltIW=Qoj~m z?TC`yH8c7nV#rO<_w(Ulpxn;Jv~Ar0T569TnQ;t(`8r4(w_mS5B*B1sZ9cv~4!}*#AY$yF1hvv#0hf*K0vvVDfJH;~#x}140f`Mb{j0h!RYuxB<>hB} zH*3JvJ4e6^V~0Kj{IP%X6>4sVw{?J^=D^a@)(NX@UYEs+G3#Ex1j=<8HtSnspAdjV zgT#a|ozl1pN;svdA@Hc#_D|W(r(}f9{TT>QcyN_>bkWz{AK71j6>#b+K)V2rCbS|W zF5qH_GjvsvLx^Ei+v$-iyZ)`{!z$Gnf)+E>DsaqwrcYp~I!~KH=ar%4{FoV25f@(n@l z2wo8r{9u1{i09Qqjwo^n8;%&iXg!z<^b0w1#4sg5kC<|5OC#vhwQcM}O}ci~AKqaT zLf#>$;Q&$&B-JKJ)Tzx(hTuRXoa#6$pi`)>kA$ko)|0vAA2ljU2!oSQHEu#+ya6a7 z;)=a_eb-Z$!Dad&Mq1P_gcwFqvPzhmT6@|Q95moy7UL$=h!~=V5s44J)DJ!`%n=$S z!XEs2>%jiWHc@T{NnWA_tOOj1>7TZL((;Zt2;a4TY7LSn6Oa=HuLhwm0US86$gq!) zEq{5_QdCRnKjMX6`dmQ_uAnLz@*=GuhtY6Upt)HGP2Ly6CH7BAocEN$2Qikx6Z{C$ zDdMywooe(0q{c%7xF9jN)GgqwgvLn?xJB&!KCZqw0Fdqv`XG;}X}pDVDqo? zYXTytUrHe8$pDTb^NP^m%3(vN3}VsK{Wuup1em3tcTdmtoETw_(4&SCp=HDfFPKc> zVXCCawl#nH;rYfNX#Z53N9?<^RpI{8_w1k8Z&>V~c!cLsk28PVmVLz&OWIe@17Yce{Sz++y5E21{XjR^KVh=NXVVzT416|{@71k5%lSHsOZ%q}o414U zilZ;+6chkMQM0)+n&S$sS{6`nz>X9pqrDVi-wnrrj$IS4KdFnpcJ-l;B$#l1wR4)o zwS~S+pf8MeiGhQ)j5_{N_D@KZe;g>|yaTH1GvjUa)LZLwf2sY`dECHXn{O>cE=CQ86{2TuNO2>bsvHt&6+yCJMyNh2R z_aA<{t_y&RS=e!pS${vz!k9+ATFFko;wx*~%V zvW7xfSFGM7TqId9->h_4BQC_g%5)7yoEMj=VhC%0tf7k>f6w+@%eqS7pI!nppZMPX z$TWoSF|ftL!}cdOmeGRToEf)_vMUy4`6DBLqzMP?wg|wD zy=Dx7IkS-@m3YQDJNvwLKbP)T$uQoyFeFfaMDoXIuRxKgQZcFYm9a?F0TMBsDS`m! z%03PJ&hN-+l8yY9>%||LMs5G7)gl4H7k?!m&cu_eilLlW?}@F68(Vz$Tk~^0PCS^~86$xe}*n4OPvN8VvKiW;ZPl>UoFV<0# z)ez1Apuz!(1}b6Le8Apo_9R-EV6TmpA4XLrBF^;(p9;K$*7xMY{&?AI_=Pem?1n8r z9LT~Ja0(%p*?)bVFgZF&E-Sk{+{UdVak-=j_Kg)^nj8a}IgzTr!jOve2`A|bLSC35 z71>ZPS#^k7Cse1Euq3X+RUsIskXMTlsz?n~4Az);x7Jr8@UGM59fEBSft_tliM*sB zL)Aa}Rfmu-!x4Aq>t#5?S^FWvb=b=(I}za&kkxF3tNR1TAVv$LWPX zG7Nm@YY2#hB26-<_D2RAx@ALiw+fVdFd3k^chON z+15~>G$gLegq9Nq+piO-RqVS$Ef-@egh36bEh`GQSCIia!J*74p;8feoQL6gx3!Du>1){yV( zl&$LP0&t?_Zh+K)%VpqG_*0S#5*t_Q^c8UA;8I-G$s7q4mlbd-Y$`L2wo|BDT9i}z zD0u11YD{vZLzl$qUs@FgWLx|<@%xhjLM#ZFgW5&iv~EHc03@h`^A=aiJ}9BwRC20e zAB9k-^pP)mPYs9*;H*Y52>axq$TPsn2pNRIYk*7Vg+LXo1U1+qG2OiqB#9TYnH>MQ zTnZ!(s4L*OD!@UQwwY*hgo}*icTNazN_dU1!YrXMK;?&zfQzaMd_ajB4%wriqR56C z_}EyX_X1ZER+R>;Fwj61v2OsE7w?CQq0(^E$)#lIp2iE+OnV1D+siEk=-Tx%&0liB zs;JR$5zdkrz`f9L1vp1QiP)MF@?^-%z=sfT#g!1O4IxQNPm)*wFF6Qp0mnG!9vYY} z8jk*?_5o6mVh7Y^G+QnyNtURuq?;Uq3lCWPh*M*TxODeuI02Jpkt%o7(r^NO(7xg- zqqZ)s%t|O}2wUQdpNtJDCY#XZqSiymrJ?3Cx5_9U6ci|lKeByPUdXGKDnIvpfT2&m zNdXZ07LZb3`Y4A>?wsY1+}Wbx27h|mQwJVbw><-FtuuAWX}J|~3BUDn4XueMhb^DR zbX@x*7iXLoWKXJKBN)nwmYcUUq19ONk{n#ZZ%b&vrL;E)onw-8)o6KKg6+5TSGvPj za#U~Cn>^?u9jQ5n&|b*)T^%79^i3Z2ddJsm7f^0m_QTV3c%VQ%9Sd+al{N;Q8K&`M z&n?x&kWw*n#7DW4P(%^LmA;);yxrbA2UW00ygeb9q+Q_?r#HtOGasFK##{D|OZt3| zq5YAWx6nc5zQr^s{>XbjyAT4t3sNyIWqdNy_Yj!ih-e8q4H7y%<9kCN>cR3HSHX6b zd47KOHRcfFhT&*t#lWXt9%p&9hE@ELpPpBLWI!ImF^Kn z_gwGUrCq0I3V6mBg_Eup&vAEw(C>(jPe*-^;iW$^OtIMK7IEf}TyDn_u+?pUWGB_g zh3SP0355IxJkwz=dGW#Gk4z=;<~me5Z;d1-3HPM-Rt}fPN4z|CdrrBGBnjzu{M;@k zj*EUA;&z|SuxCEp7q{4uf z0Ds@5zdvwC;GGTakBm6Up>Rk-!xq3%coE_^`W$~`M6usLKa+UJhj+LB$iOE6!Trcd zp7#TMp3?!(aa6{;lfug%IUj1kjqe#ZDj;gPc`q{ZeFm}o;28G&tiR855JpVB`}r9k zF8z3X;BSBATd^B)S}SLh-trjrpgnHKp3saEco=~?1P2qsFgWEfPt)R61+Gb=_nHv3)Ge-PZvaPjJ*YV4po#;y z1G3LpwSllo*Aj}qTNe)7h<(vMmF|Tcpe*U4^^~;3o}j0`1w5A<9~~91wdhU+Ywsfx zq|pFDd)wX-d%7Y*3?cri$${H@ya^v@szq9jmM&!gOZY*NF#gE(BJfMVf!G~VOSQYt zVU^M##O=6|h=^BzYT(I3b#WZDS!IjCoYTQGQjPtk+sbs2;QWvzoh)t0t1O1UnvULxo zS*c%gM2F>l45tNG^&O(*Wa7`K9iRl|}!aNIj|3yMi<&Vr|y#-&+ z&wgDY1fC4~%M73$pXX6DgkWjWaOtDSDzBQ4S^@{& zD@wXH6<(wlaPaf-ulj?y5Once0SBlu?raL#=ztu#r5;6GsuKl}Cmv2d2|&rH($# z!C(8dM0FSwe4~Lh<-OF@HV+G7n3@S$+E> z=jGnqsNmz|*5w|a6M2?%1A_HiN$roUtMa)>$OBhD>C)49Vrhk|*eeA+I?KL(Z0- zu=7+NrMJh->n3jGzg))y&RsEm12^Ae$oDD`*9(7Szn#ENEBkA!8*=$0^QLtfeP$bk z2X>mwgZV4|$RR1~ayqs%`g;syF%pp`ppbP(e$^lO7S0s6rVk(TDs(n+7FIARlKpR4 z)Aam)Pd?+1Of5Xz_W9Y5-zT4&8+P_T{>(CQA8&j7KKZ=#*Y>H2$DTUI8g@qQ7<`Sj z@0g4YYA2rt+#cTbJmz)c-ZebNuXa@Rd|$vDg@;z)9)16OH|sw0xH5WTboY#tKUcQp z{GTnM3a}rI$M!2nr~CQZi-N-a;KOe>e5&H%fLDU9+B>`z__P7b`JV}WR;S%)k&stk zqbFIR;9Y8<>cV~d9rpR9id9?sZ~GpNytLs1hBPW5p@{dxm)nka*SUSXqu)y3d8dj0 zc9dSO2)X7`N1_RGlj5f0$>jx)xu{DQC!zSyBsmi9{v4bQz6OVbufgfyYj8aH8k`Tl zW*iKx1}}5{o9N>2lPAvlaL1Fo6Aa(sH|0+Lsn=iXzy0Ckj+@&4@Zq;Z{8M;CiJvCH zKgDmA+_irSH=)Hpg{47W7{B8my?OOdnU1*VuZiaM2Lv%W>eKo-b34!}6Cz%Y*vEQD zPY6q$K3I6{BV5+YiGJ~$!e7Mxogz~BM+Z_uYqQo`g&N_cP8-7F))K;+H;LEFH=7a( zt@2xixQ140xV%YN-tEAIhm=1c_BU(w_aLNMkz{1GHtRyps}R@Fg>=`vNwQ-1&32?i z-=zM`gjMVbU5G9%zmV=K_KWec%K3uTKd1cGmR|sFZQvJ`;O27fqL-TC_qY5CxEGF( ztDG-zwGu9ncmdY67ydZ`m+Gc539b5hZATiowqqr%+0wQ(NeDln+t+*4Kc{g1cD1?? z`zoso>8>(;lW>uD&GEOZ{gv}o0{?;%_|f^_G!6fhk0`(LPhtEKMzb;AzVN1j&-jxN z{>-W&G5oQ9&&mw}v>JcOh=oIk8J5iUaXNqlpMhlsl9W)1CnKxMkiyW(_XWdBM#?Is z0+dC7Qj*JX<>Fi<>QE%le-r-{)^oaTG6J{4FbP;%IwAuZl3B(AW5k8)Tt!n48^ zAlc10tuQoBKfP!%2f=vd_Co6c))vLiQ9~cwxz(T>w_;HTnALtN8ev{RI{gSju+cy4KH^{RNg=vY@T0 zT!;cEf9{02TBEfk0o#S3%5x{1={7SUp+2=?!A?Q(;j%U?r~uq*SAx9=_^`@D06T+A zun_}>F*YHvJ-#QO_a7Kumal0k`~`kimS|WnCsl}gu=xS$jF23)=w!Cefh;f%kx^Az zb3p#IU?Fx5x%oiKk{IP#hdG5oIAS(o5>69m2ySNtt7eir*hA1}sY6ZB%rr@wz~%=n zW{2X=Z4jHKd4(G_URK4eAKn$Y+!8QM+!ELdN)j4~QqeTKbEK>6Iqm--r1=TyhC;eN zu`9$rzc#Lf0s~G`x#VPv-XQ@ z35i$`X5mQ}Nv?$l7Rx0$rjjNO`;-J4Y_72I3{4smnIa zrUnh9X1`L0mEBEKLs&x9M+`~YasL|NRv?9X;LFB>CP-}PRkjsZh6->A^(Ao)GZ+{O zY-7!Q1~@wu_I8ROOs}q8o8F?j-SOzo4y}aBD}%)4lsFnafKw2iu2f_?z-FxjwhB*N zm0_)tF16~=;8ff5V!F+dI7WO*gSF+ZwL-sq8*u7kv;ijvaUmi|)aJYhby=!!y4KAT za&&dc7DBA3Ay~g^M+0t+OY=j`DYv3fbDA2+kG3?yR&~{yb2BJ{fa5;x2V@F*P!pm> zYAJ9KfT*8K1=-Y5X@JJt7@wl!)QYU3$EA>>G36g+;jqHA!227x(%;2wdWR5-&4D=x z)eUId6{`mx&9Z*M)$|q(?8IxR(?OUPtq?GdM;a2xKV_1XuA@%_nn6xWvZa>pslu0z znl9^MFqf&pWJ~>u6%DLf*)vpw%dj#;uW{Q^?1adxbfHqyMi`-}G@l)Y&`EMrB1Z_x zn@~hktQrU0%)FJa8m@CtOm3-EBTpIKz@Y*dkEyO6;3V*)|XlHes8X)Yn;Q+WYWPP_fxtNtnE0Ab-${w`dWf0P93goTS8 zz$w@Otkka@Lk#IE*;MOS{dPg%G6eGCT7nnOuu6_3e(igCxY@N#9fdfgPM++yTmXnv^k`PeNa}EH>fJmok1&BeXeWbUE{lQ4d?Ko~I5d7RH zd8ZpIhh3}XVs-6?l};*{fa&xCgYs0tjIaQw>;X-q7#=Wayimr1E8-fl#9a`QgStFC zJnPZYtf=4f;+0aL-t)_iCqES$o3)u^%zSI+8E@_9F6l4)QxqOEm&ZruXFkASxXm0b zaoDnfiPb-4CA7I+EF|;24SHC^PmJec%vc0%_Z7F+a(?oq{ZrVY_sL8Dlr~{}>7Rm~ zAf|lfM}Wu}D~D({;WGnG+!-_~Wh0zdY4{2ZPQ0$l zTN$%Bwx+lKDNNr|HE({*IZ-BtctJv@e8|O1CV5z9@-4&mPoZP@gd2CABINT{KK0OO zYK0zr<$HNp{l)Z|@e@yZ!WM4x+wlUN#~!mK1)|CDnAI?i_RZV=R6`KPGlwS2_b7u^dN{Zqg!Od;?A zKR*|fMV;NFv#Z5FCGFk6;-3OeL?RO3*Z1lSw{egq9nj{j+RWCc zb;io}UD>@Nd))tl90KO+%76hR`gkroN{~0>qL2FV?UJ0dZy&oW}3{L8Vz+UlB3E;47O**w)OIK@Ga>j5Lt{ws0 zzKm&!a*z&zHb)FcYv4;Er~#+eFRqQ~VU$ZkqJ&1PU()AAc-=oGb)b9F@{E88jFwkl z%7B)a%TD>H*xkFFlppEn(DHkt&+$)D%@GGvYsIu5BW~)l_@~g*_5$s#K3~3kMB5^9 z^2U##O^`DNB}A7{_y8`J_!{{p4mgZ|%CP{q^-u9$qP72GK&=&jju>QX#Ld;Ye@cHZ z&s5YQpo!R9tIz?dF1P=4|CBVJ26itHvd$!?OM|PJq6hrJRa8rG74M7Kdx!936}Nzc zOHh|yiw{R|6=CB5jpKkHS&U)y01p3@5FQy(B+vr8VFhPE7%`*H{{qzi{F&*2LgxQydU3x_%fosBEImfJ=_04KtBLqRzCLRVuWLoGQXT@gkOY8VOS zdvp};2PuPHii|@_+y(spJI3bTVQX*#GbC!&`blPbhS+F>bP5b`Y>+`b3euev-ru}y0;~>dOX_Ulx)gZuY}a{dhaJ}O z5J(-jM>N0QHPkwKjn7>#fI}}g{wOpJ9RHMdT-o@iSbE?C2&wBcrDX)9ej${9ioTX1 zJbSm((VI#J5_2GN(}@I5 z#2uf20I=vU9me4zH|Bl_BuODGpA^-5FHlap_LQ;@1*`Hc&a2;3`?dsd;DFMCb}I5b zfXnFVAw;jHkMP2FsKIZGs~N-@_90LmJ(g(X3%{poo`@in0~OiNt^lgBLEQTA%h)k- z{QXknP^m;Chi{VR;k=b<6F@rvZeS&ecNN-^(PPj9f`xLB4a#!-=zQZ3^G~V$BU~z6 z1kL^tt5ylHv80oU&+#m&>z~5GqYsa>?jMzZN;X$`kiYrtE=zwekLO`>amQoco&bI& zJQJ|F1e4+e(s@)MjP@nqvm8%Uq4IP{7?RWC3;z`A5$4QN3HUUSl;PvVumU{$Q92}+ zc{!Un%=fHHFe%v{Gq0Ptk^geN*(V0r%=H6$|f zAz*e6VtjcRqC?b#IU{_!020~rr{Ia?4*^ncao)r%Br0Gyf5p&qI9qyggUZ3#-Zaq6 z@k!CTyBuEZGDy?({C-b9SO1hVaV_7woY+5&e@Z|jg6g=qoapuUtptDg=l|9sUxePO zgG%A;W19YB`1!^BQ*=+^c)3Lh=}ssaYd>N&2+ z$Zvb1c;VsFi`EhOeR)yw?S;~bT;IvTvO`n)*DF?N>iB#6r}(|fkHOc6c&O-`l7C&F zxxbBGe``JSFZEA(uYbz@;pxL~Pb>vKKJAY9BjKM!xAUe@em{P~!-$R6d}Q~2$44an ze#*lWuMOe*DPOPOPw9@j=&y-=pZhb$Lv2R90F4EPNs}b&bIzNDHE$BHm&54AFNRJ3 zxFd!CfPczb$u+cQOa0e}oFrK<-)vnZlynj2D$_NzQp4pIz2^V5tW%Z_XS3*Yodbx@{aqH#JEWc~pt`hj&68O>i-!R6%;N$1^ zPw{Ih3_MgGWA)rWg)d_oiG>FH76j00^+$Sg5hlQ}jDHG~aUwZ0^L~e0J!iH&_(}!~ zswBotoW-SL$hjC2PqO+WaRne%m6FTIZ7wb;w@7t{n!Od1{opb4YF@29w4jZ4CXe+uh9tiWK(kyU*57ktIj)<1>Sa`qvze$F!Wc7K6* zHX7V1(E5G#PpK7}+Gwzi1rN@#ov@kUr}r0RxbPwD9z^yRh^#+0KGKlbCibDktF zC{sU}=F<8-#GL{8XxsfQf`T9kO_ZryL}jWMm+iCXQByx}2!^7r&4~;a$n(9R|t!f)MJOBW>$! z@Pn{59+p5miGv`n_KFw_F%18NN_hpi@th9^9Hhp;yUe=H;U@-u#6P8S*cF8C?=b{z z_Oa02xC>ykws@*kNQVI67+dGm-pj;kLv-#g;9mGbU2|Ak2$*zilO(R7y!fZUIU-5n zgRo|mybEDd(OFagH^xI9csf2&YdKo*9c@=xnz{Z!nycS zxk#wQ6u>!%@iqZr3*g#61@$m~PhZekA_S03w2BFp(>K_o9c!$Evou)bwOA; zuabm8#2!|!gmQnYQ$C&2UMV1P@lUCbi46e@Yw(1P3tlNflinuncY=}$nl^-U|CIVX zOZ-!mJ&0IOVTw_iahlNlCH^VRFV#S2%O(CPB@_FBvJ^k8E40 z(aIBwIH|MQieNf(=zcYXZUQxsRiu%`R49nm?43|PUPbrhuFLmM(mh%b5|Te=M$1(NM??>`YkzhP1$4V1%c4F{ZsnWWmHYS0;&^SMM6=LA>dNh)CeVwlV%G7&s~<6>GIOA*Y&j8F99G3&tN~KA%YmuG(F|@2B8lwqN`R z1e})hh{@&za9kpYxS_NSI0TJpAp`}QiL-)0*NU8mk3J^)qA05x;p&mP%M}26hWvRZESF>c`;kXywyI)kgIVg5!2Z8OOL>aj??mG2Wv`It)zM* z@Iksu%P$F0BMQQnYh+BJ$Z`2{%n*=x`w^rrh{W%w#1{oQ10+j>fhTal_a3;V9gr?k zi_3&~AstdQB*7w)f%gNYVPhGR5sv20!%rltT2OrePJN^wLFtkea5$R?m7|J``&vL9 zFvK()hp56Ig{NvXt3JsSzo!LPG4-Yz0*(QlPplB+P}5Mf|ENPa`^Z8MMnZ&QY#sOyDh%R}M&0|bsZdICc=4q8$NNn{_erav+=W3eA;q_pU40HV4CFL1W@T&ieb z8TCb7GRiE35SOuz53V@1hQqSoW}`AP(hqu!ltVyr6l|$!eSk$7^;awSOp0g+zF{y) z_(Y4J8nLu;D+NyNhC<&y=>gh>d#5X}nbZ$i^*xFjL{{*yPSh;I-iW{0yx1{ zNoWbZuVW3vj}+<9;0o7|QyxD^(hgB{PrzS*V-COrK><$f4Sf2ZM{}av@plnn5I_?` z(M2Se0bFibQC~VA(`K^e=&zjUpQ0@14lB}#u=Z15BfAiSOx_%aAjN`^YSnji3VH%vzr2|c&d!J zPUPjteV^u6;eV#IrB<}INBr^l=Opf0{pft-5A#o9Q^#+nT==KBe-!@|92lmKCJGB4!bPni1`YZDa36BvKqtmWu(50g#;m=yC6S0rxM z73PLc0EWhgkB^iIm}d5mnjvL`p}AnpFbYGc3qxkt%#2#n^)vIji5&Sa*Gy}&DMmFk zevVIyfyhTw>G-E;0R4Ucl>UB-{wa%xNW$e#LOJD5qVovCxr_Z;Kr(4`n z{7g#xQ}BQEdn$ZC1$~!~PURgg_&VO~`GT@0EU)^f#N7mBZv0cY@cSvj`MG}zoEQHT zJX3T@;f_|HLGi-FC6({`r3`uP6Cr<=RSw7# zH)e}5^5@KShnbTB7Zdm%0TUhOO#a=l>c)p7nIp04b9cvQCYc)X@)TmY3@M*W{(8&n z`}t}GB$p$YkC{sne@jf(ja+7P6$!)V`>&GZTrW3q<})P9vKp*pabEc(@ygIimwYS< zi|el`s~L6?EKV`iy1oB>>vbRaR59;7pq-evvqH#f;XSAOuZcqnep{2eQZ-DXS=hX< zbjBe=honnfPQ+2Tjl3uv_OBI=Fsu+pN;^b?IL&755fYTW zV&P4~#2K}#cCa_b?mw?}ODk=M1Y(Q}KX)?>nU3u>|1j}lZv`p%0xz~zOu-LvY~Ahm z)ZW!;q=9hQ19k%r`RuI=Yr(S5DePse5P2_xLZs2kl{nb@!EVZ|bX1hWErx<95~fM# z36h0Vv)v~R5=-p#> z;rRmXiYs6%u2Pp8I4MIxoAafblzqHs1BUk99hsUiyqN67#<>w!jje3*`k zZP|;I1Nuw9O+-9_Wno15g9^q6v1=yuIUDFYB;F; zX&@CAt>JddSdD%jz%d5HnKJC2Xh&+5oEZfIz1tzM84YMSIICGP#<7zA7j99nG-yUa zG#pA64TmZT4hjs8MwLFNh=f+QdQ}99MD+^lTG&w2tPqrlHT6XCHc}OidUc$tSrtxK zN&+np2wy7$77$@2FL_q8N+g?cPE*pgppkwA6$l~Cv~e~+MMfG)cQMYpff)R(?XZC@ zdl`n%@S&zQuoRwgUAO`RNUaYj4cU5U>%8`dEw93Dx$PKPnN3-xlGEN&cx3B#c*702 zyg_PC47aEZ<-#@T74{>i!{ZTkve(}BV40o>5ywj=4}{Xd6g0}RaJ7s2sv39?uvV2f zU7N-vhwV$tNkIjZ&@!t1fgF^=UrC6GK8iu8q-|;j`h37(X(hj)Bpt5? zE{q4F;EJ|Sy2u2Pa8x_&4>?mnS636=9_LZ!OWyPceGb3$FFYG?tE^Ik5F&`2Y&i|A zrXpE8I4!Dlc9}$bW?yK3*$(f6;;IWTFxaao8E=b`xcZ7H0GHlR#Z$%;} z2?(?kHM8Rx5{Hc1DWh(Xuk^W+l3^-ceNIV0j~r=-HK=N&a8lCA@{f|KILj>P7zx8s zWJ)7FEicect#X;sZ8@bHB&J9QT0gld!)izBk-8WMv;lg+Wz`fnjHwS6feg~A z%>MuETYlHxo0orm{=)o%d$3eMK5O_)e!#mB56DFU}})%q56tw(%M% zxp-8*`G0ZBoZNPBC+njXn^!Im6b(*A+hBrZmgqri7vYgj#%Oad=P{}3NFofVU zXiXhc78hL>cX-QMWMyFFG?62}xyI8N`-%F~-8g0woC$K?9Pa6PS$pIroFg$_7(lAh z>W`>RuH@;&*#}IxLSbk2;zMMzntfqdG-6Dg1e;u@G?x^^lcwVnSxJ_c=tKnHlaJr0 z{CxBACir2}9Q<(pj7<&v*so+(j7~}y5T?J=r(cZ6Y=#)Foql)k(A}cWC-dOMS%$eu z1%6x?2!5O{41Snng9Q0J_^?EP;T)CvK#cfdPU%!XWig)yKY5}`E-^-8)h0GM;?bDG zDm5g=Sx(XiKfiB2&*}!kaQ>XxIg(KxoOl>y1R2bwQB(`~hLAYsx0%mNfF#)a+Ln;E z{!vE>#w4AwMWO?$H0NYnBTg%uMp5#MHLCqj>@wK%7CPfx2oW1g}&;Nzsvp*4utCQCW znQU{c@fXx>;Z>eINi>DODC3-vN>L;^k}vEp%6PNzGqGnre<60)bto_5O}Xb{-}Gfk z*ECZw&D7j+>?ONk--I(8Wq zR7k)rdCkI*wvfbmBl580`Iie%mCj%OZ3?d*H2vflR!jX%vdJMU6DNz=xh)2aUpQ3!cCIug@1A+vuQ7nZMrksg7!s(#k9&$8YPad6?wbmQ+P_7!YRhmP4YPx(r!W+%P>ad{a;|zg2jZm>RrYxReq5i*l2#DjBg?$;sg0Wx6H4 zYM;v#xe{_)RKzXL@bi?oP0P)ayjA#;E^*xfg!^(Wz-%N=Jm>oDbZ0Fm)xy-mbJhGN zS69;5kQ2Z3c_&_Kno5LGr<+>kvXwOSF3no{|NN3Tn_$)oPKUKz(Zqg6IyjC(9 zyx=8i>oN1unTLIMKJN$iKJj7qd*))LSe7vVf<{hq} z@=X@jKlVGOKg_Cdl&(b@7hAGw$<|kv%Bo1$z4*qH%RgCzbWxP06;?f5HhE-a4`(FT zQ?e%IGSLAN9&r+PtVv`S_u-LQo9jS)cZ_BFS^uR1EhZGKjEOyGER(WvHBFFKRYQWglpe*qmX#?$eqByGU zM{6V)g^Lp2LU_#4Bss(2a5^53c-?T)J1OfxM3EYYWa5ZDJsl}LYq(iCb9Iz#RG3$$ zZ_3DuDFu-CIkj@Vixnq&qDrT_Pp&Pps6?{kfzLis#M2S?KRlwWR8^b=5Q%=G0?$XL ztGLbcN-)GupCe{I<>vCOalX(aea?m^VpcfE>GOzPKN=FVtVLhe;-s0y0ju2mhqce` z^lBgw;U7z}$4BPYZVIugil!29RXEG;fRMrw3|hV@3*p6!*SQ$UF6;l%bco^A{g8pv?5KZOrVeyK|cSyptl9+d1(d|{iK zQV_e~59F}ld3nSG-z>EZDnRD_?s%|paq?6sFSAHY?o({m@f z)-fZ2Q3;S}1s-nnrQ99A6bXMj9Y`Jbetd~CX%=p1NeJ-pET(g9Dt!*dB%Yo;0O|7y zz_DtX!s$0#!RPd-E@jXT2(=JSE|J22Yegxhq^Idr<0uF3KS6E#s=bu953T@Q3I}IM z{)8y_M%IC^-5mlrR&?;>=9Ow$T|cmUxbJ26^oL`bY5+Lj3qZQs`vE20=ZKRxsBFf$ zL)3NLjJ!iu*8{k$HdB>!)bW)*=R=j0c*2RG5~12 z5vUgL?Q=RMeI6lN=g5k6cE!mkj_z>BG1ERb4e_wh^OY;S2~{)#E?|wWQ@sERdpQ(X1gOS zxTbz5R5uQuo~6<@P^G{q%dmno9>@%rC*M*&vAmTG-Nr}d9OtN>X8`of7_;?1jD->H|&v1gpJW`kB_@Uyg3) zJwYlK^U`wCIbL~(2FX;V(d`jp1_UnF+$O3F`-8qr%Tf6H(_5>I^W+elzK;T?Q-cgO z^u6Lh!tc1_m`a>ipW{^iEZ`z`#yMn4tCstAr3SVA?odmI!W4!8E_Y{!MnjaQ)0e_Z z$tyb>XK4j&ihP86j9dsY0C4v{b)Tz-FNq^*v#yosQrZf_LL-*R_3>@0A?Q@xO zivqj$xoHaRh}zpHL|y}cFO{Q#)^_;2n=$eKAgpZcSonRNW9-HAPCb0ZO@WoL`}&^wtI z9Igk}YGy)Sc)Od!ps(S}aYkwU{=NOT^XG>nwefxF)bfddIekymk>3kUbNz(0kq zrN4cSi1~)k1=>t;2h%@AlM6{CiG|B+{waAVD4&sdtdPe?6`nHOWYHW(rI_ro00Al? z<=JQTPZ2zp)rtA~0lCWJ20p;cwJ{ljwk6F{#2@XS!W&-7&;?0QEuWt#T>lgZi97R8 z$@Xb&%bQM+vrfT-*Vx}1$KVj{tcXZteVGx9(91uCrn|^z8M0^Lnd_X)T4vo4T#*g| zR%R%IV!=*~bn>s|VkefmR+I%c&vh(2B+hjr{8Ly*lAnDW!wTwW;x2;~M>;DT1lp}( z)|kW$aXXI_M-f)Lb&ZT)D?H9I2*V1oB2)e;lZ}ci5-khMKV_`JNl#Rp)uKSM&{?7@ zlhSDn69&_<%#+DFvjHbc@-$smT3kFN&L0e@yIE+ZSeKK|RW6O|V{2Nr#N0HgZWxRZ zU6Qp^ZAVsQQfDt+P_b}Islu7iQ=b&h%1ssSBClfq0sj=Y)zjx2vA2H;m2~BwPl|#I z>)hCg5UJJL=VxNK&*{MhSCIitfdLQ&;_aW})&@MY_E!EWss@1BKxzk}V3MlPoeIIf zbO4($v4BM$68T|{A0k7x{8I`(5q59|q}G80SOqmeYX6iBCI*h!VmT)4r=!4{i++~F zk~YE)CdFW-v!7CU4B;FfwwIGB(q)Vf>T5f+TL+m=yOYg$(t!cvgDnVlXj(%$7vx;+ zWDd(Dm6@(oOQgSD`37&CnWbh-N6u+4=@wieE86Aar)5h>Uel%Uv0E>uLYe-ZbiteD zu=27goOK>nPO5PBkuCv8`%|HFFw{<2D!Fu2w${9lD>XF3rIKNUR9&WlwJeR$sAO6M zD*>l2sTpcIfKiq>m8x}#vQ%%-mj#9ZE=q>Df|UKX^+`%E*yjPmijDM?Vp{aoMv*nz zV=pPgRNM||z{NkssW10K3oF2F{8OT(N-YI&+?5;v^xzBslnl;puQ^Ib2sq&#Tye6? zUH;NPrB>E^wB>%(}bq0%0*V9hG7f zR67)`Lm`+H=xgDwL|HietiPj$jR^;UMIZG~@lN8+q1*)m22S>Njll@kS_q$W{}gvR z;FwWM$CJk4jM$U7WObq2l?WB8p;qNqhdP8x?36)wyy2fxL#+^NV|x55KK)ZTp?gCWO>PpxY&gC-L9p|(hO>!~L z>t17@ul^})S33NZp}4{@pKF?+!c!Uwyp)si>3|aUDn#ndJ~QdvOLGnSg@1~|b{&?L zIl7%yRvXWozM!oarQom6j0dc{WbmK})9yjcV_CpI2UG#i$i1p z#=yIG1H?to>oNczJ_Asbac&eq1_k->6^7ii<=KsY4A4}Ww`=v zS@4m>{w?U(o_P*1IUKYP1HF05BG-8*;Q$#YG>7{>)Z0ktL2B+!y{hoX> zpD+Bl&cpK+60;7xxX)sp(K(+NA5Jqk6AUTydCGHz2H+Jb?lxqp_f5DEAP3Imf;sp! z%zty$`i|Kl5y?L?R#{0xSu&&o<}E(VqC1dRS|nF^Rt=r=ldIBHaZ{Exq^#d1A4;!% z1824Rb5*TN7Bu5yX#7oda&{^`wPR@uu1yws*?CD10tc(8_e$Vd2~ntK2T!f-G%Y z!g=9mBubd-nlH3Ec~0n@lT+`GncwpS>y;~n967DAKAhJ|Vnm##!4hWSS0~R2ZSy5= zV&^vrUKC;M>xEl9B$cevwfzMeo6l8NX+oH;wWO4`6+01$tBOZ-OS)7kr|LI@NxTvQ z@06C4`KJtmb(y#&U!^NnOJpw3uGS(hi(Dz^g{QEy!eMy9^Xq}hs|VLkr#pp|ryR|KuuL}8w+g>(ui%mWT6kS1zL{1bmSMqDjF%o2 zVJ>Tw(+arg__g;NgtW8jXM@w|Z91M96So1J6g%jNLGbUE>xsu^!+i2QQA zQh2dAFJr@R2x0n4;Z?i^r8G~)k%-h`sYbOU{Dx^IJ(sv~sWcfc(lx*0yrioZnrA6o z8b>ulI#2QT?GF{+d0#I)Oe@8DPD9sA%dNsw15Q0^i7hQ9{k6InUs78~?Z{v{z%(9R zh>|~R`J{_9UT=9P8O~iKEG2Ln!orG3OH7doRJzKMf~-+9kX;ontCwOgR#V2?g@+-m zEH|eVA@7c}5RZzVbW=F#UMalNE`>KselBXY5QhCkq_jC%lglHFh`i|OHQ7@5k~d|n zVxOel=q1@y(qCz7)slo$a!B0FFlIhF^RTz}b0-V-Oiba~f&a=pJ~mb5EYkidI<7De zazL>{=Ks7G&Y9U)-k;?6H<&F$!0$xZyHDXlER*Ui#JZTBB_?W{>2~~6SdUB3oin!;ISNOkj8JCjR=9ZTno_MKxlGh+Pnz0h;md3;kLu*p_TH|vy2d5J z9F~!CT~pU)*bhr>ZD?Lk}BV8uAEq1_=E!A_e`z`hnXZ5)Y zLcNCODz_E#)od(MFX@yn&14CjS-NF_EBe=MWdzM4555X17XqI$1zf%*j>R@4lyr$> z+T(&9otTxl)WehMSfRA=v{yv9UDDE3L=?_WL=`Tsc%WU{!BSqzVCwB=C|(QUoW(y0 zuE*m}lfqpP%p#^`)V@N}RpG8tu0wvr@g(T~FUIATzYtgDmdC8Hoxp(vh+y~p{Y zWJF0TnI7j@Li?7t5@Mxuzg}r6nT+$u9yGD$mNKzv{eU6KWfK#cu7MVe} zr_aFwniT&TP(lajvj@|#2ODiC(13GwUHqk^0zJ#N&j;-b;0EorFP*|EXaQWIo%S}` zZwl>SrnBpoKQ}8Z$hg!>4X54}@kvKW4TtsvkKJ-)L5mps!6dahs#J&zs5!|r z?gI8;sodz@J}x)*oMR9bytB~!RY^QY-rvY?8yYeOEBRCj|Y z`4MA_0;Cdz-LSw} z;c`~F%Bp-vgm(Gz$R96_xC@xZO2HilG}o5ne?-XU(q?n%AQFecKabc4a8h+b>Jeot z8&_6X@l}7M`RJV%dzzba)3p>!SsY@WZ(Gv>YnyG%+|T2kq&LDkzZvs19|}CTe~NE2bKe0V z{?*tI zL`5!M&7^R?^?bDgZJs_;^}I)KGJ(^-jsKf(-?32vX;iAy8}Oau12=0bMi(=s9`~md z<))PmoxIDpdZBiL{Q|^>EaF_h;U|*2?#@-M96F>RJKjn@8 z-6fMw?q+6x3fiCDv-?xLN9CG(CAmjscL%@Ub6<-4Q{JDRUOaKiy?3lI_hkRW=_ycQ zF#qWkkPE(hI{W~#@CQEfnesmp0Mjsi@{z~E_Zekk{>xql5xC><{uEb$xa!0p1`(a> zV1EjHX1pNRVS5fKO*yfZDgu-S+mVc=z_lDc#x7cMVN2md;vO+28)f?ePnrcp?@zhe z=jg}iTlc3}B^pcWHTS2)3u&^Mz!eA?Ua=7@5klt+pOpzJV;Gr1MNFkjI%PaduCo@~ z`gS_1oh4mw?oWxjdEH0gVOr=Tpd!1Gfcx716fj_*mUI?BIyz>WF2$sc5tah{7-asv z>`#$_FZQRn5^1xn`_=s^DGyG%QKEsPfdWYpKuy6IzkuscI_CobM_D9a)y+qhM2I=~ zV_~mhb_k`UHz@iLSE1Lw2_jHFRfI6i=1e22A(49K0?r4b-RPyj;sRu55Y8`Ve~L@E zC62INBm58w6|F?TUMFjWy;wye8WyIeZv3prPDQ~baLX4`3Kb~{!BmHdoDpyAPhp5Y zdy*u(<9rEGx;J?4z7G5}2_j<9aG9whCC>S2vIp*<8?xJphV1a9#b<$0wh>rnLtFQ! zga&mIQg8{N;bkxO4St7=(wZWtA*zdW)fzJNDDB^Rf66EBPdT`FXx%PA7iU|r;z|jM z%y2Kjjew&f2^tL?)#Zq2mJu_rmo+dr%ZT^)r^qfI6bG~9TAgWvqVZMMAf=O30-f8s zgd6TgiBWRqvR_%wyp`}}e@Zn2ziE-Hhw!)LDm4HpWr(~@MC+koiVxFbrAc93(;-rk z^|@C;=_hsr{FC;llw3g+2)k~G8c7@}=>|KEGhgR!=L&F`;*TxLP6ov3rZeA7QGN*u zM(t18?<~{eH~UknQw3OcmK&Z^vOM?BoQ3C0IzU4NfoG##cVuZ%U5}Eh>a>vTYS<-6 zeA3v)3pHkc3L+3e3gRG-i=W0h^%X4z4&8o_{PA2Z=|@A1M6@t~0d3GQNg@#wkqRcA zL@Z)=rD;z5uQl)RJyi3G|nJi6)f6QOMy35w6_weR9~`3|6S~vjsl&q z-~uDWS<@}RL#xz-yiF?CtD#F09xB^p2*vd?FN@M=+h%NUY?LA4JeDo64btpo?ONOf7zin{eR5M3bj zS!yNJF_cYF;dz?c(q%;8HaEdV+EZ1ql4a(#<{@1eQcbPs7woN8m>25q*Q2OLJ3qXn zNp`ff+s>VJ&Hj`UI7GYPCY|L625+~5VOfmP$sbK%2nZ*=g}T%Yw3_Dy!yD8f?85WN zt^=>wy~Fe55GR!6fS557ls%~X|s z%`obb?RB7Geu<5w3By0t<~#PMu=y@OYMM>?Mfay{=3~yW7?Ab;f~&dDQhj6QV=O)K z?b$@LhsFH@^l$_^A2Z7N81r|+`?R7>E<;Rw?Eo^{EpfvfwxvX!>%7kC6K!C*KZX4% znc!8K12?oZi1YdA?#LjSIbk~_I3an!XWU|z}JVSxlDZd+hVv!EsM;^?UT zTq&VqR1C)ptkGC}8hy6=o0Ol}7vz5SH*M_;bZ;`(-AvdQ4(?BJDnWuoAyhB-H>tIu z*vJp#G^QgAaM+IIh#zyny1&VZisO8u=n4>u+27=L2}BD7Ow5R2v%kr5ke=1P(4wxK zB3i<71V+IWFshKeKPEr0zy?&)c5MfIlk;PkR)O{!4q7}FQRzTAVGIFr8P;AC@_-sY zFC!|PqDbyvfyB{krz?m4gc&Z~R2LAiq)QOZhnN7Wbkb^lM8E|8JPJ0ke0$5|*|{`#kb zD_tTh!m0umCFrJ@PB@E#%oZXu)=xQYftoD`?5>Q6#5#B z6j2ccw~7sj&bAL|A9&OrDWk%>zJ@H>j6tr(-$gI%TEdf#q|M81x^Q&)NqOP)%I-vV zJvP8wUIvB|Qh&+|&qP$Z5}(3=gyUTR>!S}2 z++NhSC?Z1aBxs(SHzh1Tn}~%qNpg@b3?bLb>9we^=uqHF(6<67aAB;)SA8pNjTqO0 zV;lt}<;9;;a5eBxP^pQwXsiIr%rv?}i&@B-i1 z7hH?=*`yl?DZr=(9!Eu{=Ic+&t)CE9XTch*wDv4qU~rjY^E2s!hael;LaRzVXb}50 z*$1v!rYOrB7()^(QPnr0{~K-rH?|`>hZ#u3^EPm^2xtr39Q(inYz1zn!NtURst}!G zwt2QhG-vYqGcfjmn{^_(9w{w_R(72oHjpYppdB^vmzrB>5vZ!Vfng!yQ-v8Z)X=dM zI>0;KKrruKx;0{zwFQlC(<5+)Ro$j547>P2cR_87u9&?*V_Q_AUP%^^dqr8zff3hX z&C4HZtQD-98yE}{ktE*-_|%uTz$mAF2Kn|b&f#C!zCzQYaoAfkQ9m+$Wq$%zMWiUtVBcE#4L^PcbPE(S(@+Cjm5a)tP2ga zT5A7C6{Vu3EGottj@~AbSdcYK#Z2f1oG5(JnHDb6VFSa01x`8%|dp2l5d7xCtK5mDR>(`*ymT5r0LT{^mB1fHM( z3Jg^X7)j)DRhmgJa)m5pYXH(jCJQKIKx9Ln3nC^hNEf&eQh_U;myXZy*euI_7_OGU zSwTCgG0rT&HD4JSLIAc49YTOr37miunffY11w1(ds0d*?(EwN2B3V+^Mc_(_Iq0UU zEpTWUBXG!x1*G^0oLbOmC}W?4p30P^BUqzj4h9jzMc~wj=63Qj?*@CZi?r8qV-gjF zls}(U;AGjJZdQnaF@R!MP`SD%?Zg^HAh30k;+5(b4JkkLzhjd?nS48t@khHG0sE|F~e-KLhw`ZX4OU<>s ze5rYbh3CXmj@2?<`s}8VK~fjsiMGNi*@~y;@VrEHtw-|KO;?mh5egioM&Kwcl};E9 zS1xu@VgNir3dc_;cD)w35W9Oq!ZhI#nVQSR5K$a0fIm51pOc`AIAOrCOnDwIfJP2l z6N+mxk}f5Pfarp>!c{dFp(HUdIjT2{3`Oq6!nzgDw{jI4fR)QLwvuRg4`IN2#UI>L-#d90o zfwU95)*LwiMl+eR6za0)PLl+9Y6XL^Pc(prqZf z2%OxmPkGWwbY6M9ukT=Czy@IOPDVL(I#!w%49g>;@L-0l)&m5XYz4W3IQq>>+1j6? z{W11DEs=A^U95NYBYKMo@8gEQ&iOJIA$tW9&8$k=q=$^*P z{g3;8oNv!rEW^I>_wUZoe=*TJ!-0nCp4&6nuyFlwb(s}*68`ULj`Fct>{<9x^LDKB9rCOBhQ zmm>Fl9DDm6T>cA;Qe-ac(zBp`vkp2DlD$@Uswp4fP6Ps61P+1sSQ6l=LQ1f1ox@RP z!Xy!Ar#sbgpd6gLZbdpmI)c$BK~87+ad7Eh)RH~La8#V(u!G~wHxKqZ2)=CnT}<@!xo0LPhOj6%dV0n4P*d^nnb8eb}dw8OBfTr zktB?Q7Lp@eNO^0zFonn+heSnot>9V@X<9IZOY0SJ3zhjr2*TBHR(K*>aaN3yd9bh; z(1Zw*%!mZeGzNWT=uB+4BPB5;;hcWxG$12zy~umN9+}x?I%c+1H5#kl?;zWk^~1g8 zzAgPIH|0U5q=O8$#t6hl;FRLV4`pNl-wL&PBXF9ggxkQQs^n)2 zqkua-4)BA`gjyR8iwwmUakPg6xFX6@|LO!Amk3sXN7_vnZ9~=% z8;QOWakIg8?_-Txi6T~^q$DYuMz=u|3!Iu05e`bpvKh$oN|&li7HhtCuhk0FO5}Qk zlCT9vX_##1z_6?U3ONHPxHNECOO4XhyqN^6S(r&U8l9}h2gs15)5(fg+qtaVuiyr_ zvRkGzD3qF~^9h~lEEV9QLf*Z_i+rT(=173;&3n#)#0u6 z7%o&>1#G^~9=oBjY_U2Vx-+_1zJ!`0qGCY znj&0jLPkXHi|3)iemk$Wx(EE#cD`+DGCqP-z#Es>_dC!zQ0KIQ?S2P^3)z)kE6>{^ z6S)G_l9%DRtpbuz5hP0~Nxzl?46+|#Q-yn6sI5oFFIDF}T2Q-cK|6u<) zdPpXMe6*rebixp&qNAnkci>LvigJ>ZC{M_7zXQ3{_^IGyh*eRHm=Z$v+V8+BG{;wT z6VR@wPnnPLRVRdGu!l7k?swomg}~yo2^zR9q;6rzqz*3yksgR-qu5T9F(e^IQ6zKN z+wZa8A$uHh7!J6+vEPB1^NrPnRr+O3-2BHN2jR(4E8``r6A8DNlZ0iOgaaK8@^Q!;o%4Ty&G4dhDS)Fh+ce2IOmY<7&9NQeKk8Wk7{h#3a$T zdG-Kq!n@|;1~lQMJbubsfD%Tolwt&~`AK1k=&)_+05&MV4#xRM}0DW1Rp>flPe0sgkYK@&w# z8svu(g3v*KP{i(Zc&x*VdUSYkE2tz%cQWK@Ca*B|Kqg0iwg{QTz=NMPaa=*DT>CNm z_2^n!*g<{Q;tRvQNoNps7WAFQUrxH!c$=UHpO2-ej%lrRJXjyvo}EZ;+H8D3-kc6!5{S zvA`Qn=zY7(*cZ69*e$Jw3VDxbP1@vGBUV=uHE`Sq1+3lDQdp{5yL%EgMHSDdhM`cA zN#Lnw7cogH>~)?WpfSK3MtZYXfKRdlE-QqQpDk?hA=IBw;JN4u*VL9Z_1yqVl8t|p zV*@+|n99;D>=S`E++;iiPMH>KVg1BA!B&3>uXIW5&t?Ypsq2p>%O~!4U^Ix1)4yfE zgYzPG3=r1Kv7Jk^W}F|YrX4T)9Z*7OE>ZgIklgPOtq1xKj-`tki8&c_E!m+KiXV@! zVzL&H6h~2HQHi8>J>6Qg>na{gfl|xQ(F>uLN%5pdQKI4nsIwYaEl<=iM&7YxNi_uJ zU2u!FttAWZW3>SW#%}5x<#>RTm+530w}&gZ-$5Nv7OoWxky(KU5WG=&*hrEbgaW)M zL`gsYe+@^?`u(VYHlq69Jku=)%EJut6P&JW?N7bFY zqqNlq5$w?^r2w#UWhk{2DK)o6zSf9^bcRvsf?e9p)MyX5i{j8U6;{Fp*DRo`)xZzy zeg|pq^tu;eGwavNGUh}@s8rqIkz!SgupxGoW-)3+%*xsZ=Fy8$+2#jzg8W6asBhQ( z4w1eQ`>{wFq@dyM(Y- zQk;uAkVJaI!~G7qi9{*cN_+JWp$p-q$M&6?@5-dmIiQQ-#UpvHz^&^Y5Cr*V;s|EM z!VKh4o|@-)lg_sS=anZWGH;b{px$WLORnI{+QY?&XuDL!9-$u9Ins_K@~B-WM>;Jq zjMYpuELA}MAy?JIRnM%%5^0#2E&Cl52CGV~3R=8yyu#A9Y=dQFs&t~ZF||})i5kLM z-9n?i_=^U%0&sjBV>0m#oFqwHUVx`!a;t?c^JGrZt=wR3>4HK$T<@EmFnD{z@E&_iM^^iMe(MK8epemIgTiEYbngixMrdEQGolq-dL z>EXg}ao_NKk#-mqXyhVASKlDfSb0v2fk9(N2d`l(*I>4J`DNLJ0?5c#act zT5I7b?Q8d{y;OtXYY4#rvtV%e|_qW`_Q`A=E6#oqz6B-?!A#qOXB`B=E4{U4|BC4(OfU0 z689>svOikj0jMpk<9-Ll^aIaK_4EGNdg5=+&u?zd=vQyfN`a)#!J+NBa}g&VhtD}D z!PWCh|#p>L5y$R#Zi2eLW--jshCfPrf>8r;5ve-Dy=Brlb zSlGuXaPirl%*RUnjClLdU)u9a1^!E`^%3xq0!IoQDR88~4@QB_4C8a{kKChm+&}#5 zzJK`f`MdMe_ZL{!9&XRL)XaPD+2qTXVD}Ak(cR_c&il?-0i6BAs0hB}bSbv4p1$xyalalEHW*RhV zs6d@6pyy>PDLNXWa!HO+Ir6Haa$for*sx5@dh^a@fhsLg#>IMWf$ZB7P|dK_pKHS) zoc~kxPny58A6VK@;r!t7_BVfWOC0(pw;sDS8_-(CIM|Q?{(Iv9%cv8Eu8P>ren*fC z&QZ8lgr*`gjpbYm7>c+on|2Ls&UYN7wrIuOftg&yc2d2Ql2pR!2FklzJRfrUlQR~Ah z6#k7BY->?LpGvk|M-}YH?4q(2jCbC!LPTRBGAbKymw(j8byZ84O|!zSwnfE=Vk>!wm(Kq?GF%pFIZs2E293>z`>8@r2uyg ziBlrDMjYXKgY1Y}E$0l?Qs4Y23$I2H9-g-dEX3LH9CKr+mI`J$NUh`y%X$rmgq@4@tzVj2SWkM)5NsZIlG85orcgC968K8gh_lP=@{L^F1=cyKGk60*N!ceF&W^fVv0;6tZwP*IMqi~p|1#ancrBvRbRPUIwMlr@7B}38vFEN`B|zEn=(BWa+3Zk z5mq;y5wGIqm~g38M1WmseL)W!)<`AKOE!>$XSdNkx;^vI&Nq$I?yCgO-f_tr(kY1$ zcC~gPV=Ihc8hN%i%WgU0muXRHudZ+RzN7>Uf`)}|x>o^J*J8)~Ti88`6au z{!}}6q>^50J`)4O%7nVf`v}_0jZjUYkkj@H&QeVR4Qt^oFx;dlaPrnpO7|^tHyLyZ z_QY0w*)u6WB$zp>l$4w*1m`y*p1fhI*2Kk%|D?R-=h^ZeLEBxEyJy0lzI#UI9-q>~ zSwEm5{FCnKF&$na2((XRLnl4r^Ha!f{kUBUb23F%JvOVNNa>#6$H(uUp7|H*kpB5O zMOpD@I=-jR5x5Yiw_)!~VhMVQfRL<a}w;wFraQq~})-o~7I?4M)V0oB`e~PZ%WviAXK0s;q}7 zK@#{P)cJVzNT&M(epgyp`}Ey+#dBrASnK`tEJYS+uO6h(0$K@w)k8Sq#6NzYMRcj45tKs$_}j_y zv8HGse@F1sbMPlJ(k`+@;C`Ar&YfU$);C&i5R5(m1K$>sS9XQgqbk7d#WZO5>EzkDGHp*u$W1EpQ(e z37qu^y=RQuTzjwrLZdvBoxRo8Cnq1Xr!pUdF!f)P{5jWj&$BgZ$7*iCOY`}Dl+{_D z{V0Pwq|L#2>(S_5QJT(u5}-p~EYE&{YpyAXgyu>1DX;=G(wFPA=Bsmmo~t@WeriHG z_nEgOxN>%pgq-i?ii!y#>QH{NA6RKI4MV^6%q`YiC?$MaBP}{Ml0cke`N$8VwGqgX z9}*MG+;NjjK{OXwI@nsy_bSmUSj36OXVJ&$m4uZF{(wXMfWu~^@MdT5M1Ud9#q_k9 z{?QMn{%sy(6HdfLx&?UPCUzT<(D_;OPDr#78DLLHzdK?HRdZ1K z9VI2PiJNo@^XCTu{sP8eRS_bF%O5trD=*-1NcKb&Zcr9Sn784%ap7l2ENPoZ!aSs| z{t7d8;a`eLc?+QOwb#VkqHqg*Q&f_#C7Yq1gLD(TiqDIpz^Y2G;@2D&B~;<&HBkp% zgQGXvPgSWS7G1s}dj&-wQt9SbM#--wU6mXb0wu9Y+v!%;t|e4D*`3&sB(YQIAq*o; zoFB67rwi;Vs$opYf~cn=bf>5eOPl0p7q0IEAhLBE*8gU=_LO&;Z}eFg|xaU*`#X*BNuHOf?oWA#)E6d|t4e z5n|ar+z*_|iPLH9hkV47}=M7&JlYks&bb|O?bIHKJ`R_VG4~Y!HnFt~YA()ecEFHkcS^`aEF_pG+8Y zil+5&(;oHh^Mr%$26&|dE_1=`a9)8&$^@?YfI64)NZ@kq1@KU4N=EyyGRs`rc@Bo?7qplpqllr%)t)fGVc`c-qV1=zDd05R- z0#eORiBX@K4)}z@H`1zN&rfhRU8(H?WC3pWPM0t|j}J_6nWD>E$?lkFCA&PAx?!!t zAY9Ek5uYOahUdu}x+ER6VQZB@-{g5jc>_b5CT}T*M&Kf&IZrsU+enIOGeCx#Pny(E zI2eK%o^%TlONq&5{j6X zX`Z7CPO}o*h!4q#Pu3urs>(Zqlh^G|0yiKL(YoScpWq&hKvCPQMMbku6%c7hK?-KO zMd0k$B1phH>|}a`I0CmaYSYQkGuW+7Cllg;V2~V1JZ$GKMCp#KcqtJ|;1-^@u*w-H1q~Wu_(t`!Fm5 zx@0g?#a}7CQ=Vb!<4fL%fafJ}sjtmIU z5;zKl%%r1mh>>uc!sZBpaJqq$GG572#5TfCe?1YpEx=u0s2f6rPGeU zs->NtLalI-0d8b~Q+=sRdDYHC5`PE^Nhn#$=DtqP`p?hcP|VwB%PQY<5wsfanMV+{5wAjQN8ltPn^SWQJ(l?48pz@@4ivP%P7 zOWNQna9MR0DQOx=pAcrJjZJKifCt{?X z!qR@1b}rn|PdeGRCov^AlHoZ?3b-F@`n8t!PSQdc#+Sf#`>kf6^xMuUQ|`-cYo1QV zYC&ad9%9prLCqw|wqLobRD`-CS2P@Rbw_6L;@pk1_z1%!Nl`cAJv_I%WVVC?sTgSX za}Ai)wB#yZs~@-(@ao7)kg5P=HT_yD6D}mL`NKiK4z&|nVs&hkNL*eyZ?-vWoAF{h3gnKB*p%i^JFz6@}I9O-{iIy^?Af&KjPCi=Mj?% z`x=%bh6ZIn;){u!yk+jec5%L0=|5CE`1h7KHA`#sJhE`y^xZ}T5RTe}y#A7;J$?*J0K{v2-K zeLYn|r@)vL4-2dfy+*y*54X&QxPA5;hEd1oNP!~-ehnzV zx9<2HDR88~kpf2w94T<5z>xw!2n9AXjL)^NeRF#H@Njy0egANJbAhsrIse10KU}Z+ z@Njv_)Ecdc0rQ+)U#MikdwG93fxelsf9AtZ2K9U7x`~2v$$lMm!Qx#VHw%zb?5#1M z?K%r^%R2zh$$2O{UMVkFB^-UjEAhvmPoTj2Yh(;@Q_S{=c&&FYq)S`nZ(;rx&Z~jj z1RM7S>Y^wO4*|UfH~BuN^bMfboE&6DrEOuQj$hKGz3n%$ic2et^B~8P_2~F01=7jL zccgCEoHu<>KL<=+B{A71)%SUGN*O$t!I&zx1>D$O4mx`gOCZY4ZN%rhFK#I-bz91; zLJsP?mW(oW@vN>T=;%07;7EaAISTwzTk0r?SJm~yMBMy@0nNq zq4v){yPvgxUVnHT{XVV76Lt2Vj{kM3@7}pMKmYH3p6dOD|Fzz~`0Mrl+25@9U;Nwk z{)4|$@4xVW*ZZ&h!+QVXAJzM3-~8T*&tH6(_r))6e{blX@Z-;s0!IoQDR88~kpf2w z94T<5z>xw+3LGi$BT(Qt5BU*@d<1c%z^^a`zO)bc()_=|q&cE?q`;8^M+zJ%aHPPI z0zU!;{$TTH3mfl`0Qy%Ngmn0oM(~K-kpf2w94T<5z>xw+3j81xP|xC@Yk2%~tp3^0AcsWrXrcOA==UID?&zp5}Q~t-`bH5q)cL4&p6v2@Z916jy5H}tK z?#bU&-$Nq!pJS_TIDan@oD-2)BXX9Lhf~~pf*n7&yw4>E2<;w-xaBGA(Hg@kiU_}uoFIW znU{PfiGu8zdx)~(w*>>CrKku$u_WO*e+AjYD(ezE4|wr_zS}ew4r@8TvDtd{!j#fSlvY>ZEJ<>Vk0iO{Fd0h$ z^^`|QA4x}bQxDpwtq=O<94e3hvaww2wI$GqZj@%W=}{okN7q5Yv|jpBk1M)A0eG`w z;YW^{+a&_H_nuzJ1{_LE-XfxOxRVoB5Ue~xDIEsb(4s-lbB_Q7dv|s{b(j(u*dQNv zCmgu!PQ9&ARC+=Ee7d+cDF_+ee)GaZrBjl=x1K=gz}RgDEU~*tLfP zJ)oQ#{bRPJILZg53+rv)~nB(5wE8HVBi7B52mfiuL#_s)2q){gz;+mzgB^^w$FM- z@cRAP@@oIUm)E1Oy!W++)r>nGw|d=>9Ts0A`v=F3K6v6wzfhe8JpunJS$Av>1a*2o z=?z0K9{O&*eq-sbyCcWxr;)yc&Lb{5k8~u2dL&)-C0)O1mp@kj!0f^cm{Q>j`UyKz z4-&h)#KXW|Qt;19nTjgJKSv(gO{-S579c@`N9&j z^(6di`n?~UK4k)8YMH=6j5qnD158jXfq~ksIcFPWpWta< zi~nH0mqvtGz-i}u%RzY_3CN_5ae_ky8(N|gVo*D-=6g2fe+>Q`^F6L*4i#*GGv9N- zM`fYUOazThSbm)EF}`9T=U_8OJ9^XT&htQPs>ey+%z9v%d!(7f>`%FJinOi$-kFtD zrRDO|2jt>;cwoTpp@yM37ebnuAECvQ^ZuyWEp62TU126#s7 zp7w#;ad>(#Q%7JFT%!r4|T$iRpk97y^IxrFv`^2`8> z%lsbL(suvw^n3zo9-lzxIX|A?dBQD+43z{f&H#7D$z=1vZJ{lAnr5 zY$8g?s1Y4@&9*Y-0)hot9*vPM!-hgXOiw_2U`hieX+`AlUV=oB<8Em&nQf&}A>l}9 zoslcvneW-!a%wWu5QzJ*Ki{*00!QGgrDj?u2Gt<_6?h@U2gE562o(lFyr2gm(uJ^UQoFsw(<_mGW*-80Wk z!^mm02p+OY%l53=+Y=ExnfcyKHbFE;CvzYT^^nd*NvCyU#SEf>N6kbM(PI91yGvhD zxKLkanS4iVuXiUhzH~HwK>!e)1_% zI{cFJQU{mO(~maa%RJsWs&WekcXvJC6P>#|L~Ag6P_Hna&3w;(JSWc9ERSB2oYW-! zrjoXJc9lZT(K)Xk)Kzqrp3Va|*vK0X2TgPT=xpo#<<9q*^*Q*>Ps_#U_Gie4$LxN_ z^I3^MTyB`~;Uve{uR#HO>tB&)KD^&wUKRP8(bN==&l?}wYduc*(qW~4u;-u`a44CM zj-Ivd*df%92L=>Bk9?LGMx^I(yrqioF1mG9aQx4pQYUHnGjlxpRo(f{<4|mQx_&?Q ze1_8wiaON!g6=`0RP|8}t)2-FVf3UAl}bzc_BcD#nX{_PVP{)q>WB6doOh?*3p2-( z%BkTpPx!Ivb9QliMHhd6{;hVl%ZJ<3cjytXpRZ~<{CLk@#hB%u8O6Pa7CU6?;_B@5 z`ew&y_lhI6{EQ#xd&l|SalUt)@5R1%obNfU^DBCs?>U1#&i5Sp%=~ohUp*W;8T;4x znSaE-cbxAPMPAJJxAwiSG2eUlt(U`m;BmaTd4^H_9{t$NGsk{7{2sf;WSjBb_`~nx z_9f$P!(((H(8Xl%?yX#BT?3XvYtM~7i7hQ36mNvxe-92WHcW0b4 z%|%GsX>M76_wL;p%Rf1*F>S zg2BomVoOU+7%EB&%?~<07w(ZQ5oo`2A5|@p%L2Lw(9Q*f+FaDyqH)!3!h*NJRe7k< z#>HsF#$MCFF(!+Fz_a)$_n0#HWc4LN&QsbbGM!>(`AkwHB)HjOABQ(x0zWGUbn zJ5&-=?^u1Jeux@^9BL-PB&MH-GA|LLo{~G_h#;|R53QgEnkOtg_b1Pg<^*fWL+mEc z++jv5!&vqBM14-4FxqgNqIMH*HhX@;F!XdHqfmQT9u`f})!;*t0j{AbFjxx%pl6Lm zCt0|sv53T8RH#Z@7_2zdR1?b$NS$C_dU|427Z?c_;3RQ5p_i`h^#yw7yEEUL`5sNe z`5rC)tS4nIj};ca@kFV8t-2`64g_lKHCh=W$e6%gnn!z~kI?MD{KRr&Iz&v%p!(#x zqBLP>IS>FM5*yQx3Y9L(SPNL~H5xZT2)1WY!E5#!7Y8cWv2*BBMp!q8e57F%+@(=z zEm6ar^?5Pa?*j)p`hXbkRr60v&G=nR7kkadvKs44w>GRpRlFFa=4s4n2^}G3_6xKL zntBkgCM?00dc@2_ID9vDBC1QkvTARj-6YM>#+;6Tm2i|EE2;~#jHTmC{KG0mTfQ0T+B7UG<(haEYjnv&8Ik4o94&Reds-W8MY0-#{bQ`Zy_7c zX}vH!kAv&qzsEBL_j}+C9$!H|(5TX#GU;GwCF`?wfaNW%jSlN(uZVl<@oZY z8Tp@jkNgi^X8t<#ne{Hi$63cT{QT(pO@*QK?=^y>ao4j6cOOPkD-HjpzP>tyR^E@t zV(cgKY~9`xxjtL>sQNq4n&@)s`D4@P?2-=u_UiWB?&SR9Mt%L+`%8>Ej%m*kiPQI| z?=SGvtj^xw@wt6}es<~zk}(S#YIyNwc(`(L^966_SLA2MgT-AvnExH){Cmc;3~e87 zQRkh$JLMzC&KDMk(H~ebcyXYWO(ie-ys!;r7S-*;DY=c%SuIGf3Yb z@3Zr1JKlG(Bn{LrXjWTgyq~Xc4QtY@m!dM{&Ilw)wnJ`*M6}~`gq?_ zL`z)kviU|`v68J8}7%UM6zXn%B{e+vk=Rp zGK{E&;f>5$Cgye@mVYr+d9Vix+$_>^2*bd*hA^A)KC21|V>J_FXUF@=;S#Cp;GUl? z>3Ql=70ePTmp(n#c%Ly2gML>+W$l7%s@xL8zLSPx4~C z?>?-2aQtDs?|_^Si=sbs3X9_Dbd;R+Sv}sTFZk$qUm51p)pKPe{BXRVSjMK?@&0DA z5&W#=hsXQ1E{tzLkM}_>^$qZhlYtyT1{FTJgLqJ@h&RUjjI1F^=r{FnB;Divtj}WV zuo>^WR|Z*gJiU(h8GZM7KXYnYQIGfS)epw|S*2}nfMf@?0lpdUyQAvGcwe;k$NP-| z0_ut`h7t}O?3sE#k_ZAG4*T=Zl~?Wo_xoSVu_J&QqT}#0FJt&3#gU1ew)5@!EPVJQ zW=8y2>$4n(u?)G^X9<{Zo}ZjTZ*P58kM~Ifc69dENGD`2YuD|c&4N5 z_w=9Buge{qKy2rh{tjN(z_k-^qzEh?$ghv7JyQtTMF4s#OZsHu=)0-o1PSSVA(#4R_&sSp0 zn<;^bBbnw?uF6}*B>7ad-$Rd~)6iq+IODCM^UM#1-ZMWKdXK()=zZ9~%zY$-#<%X` zuz#2_eN7t{Z*;#M4+Wv`Wltqac9f}2faUcVL1uW$!Jz>2{sPdbpi=X%o zSmP70^;SR?-@l@}ef%!(Jud?G3PfD4hQ33u;m`1G_%r+){tW*n|L|}4GyEI=4F85d z!#_q`dk@2~z2`kk+gXx*i?P8)SU1(>xaK$aoIAi2>YRNi@3m);CH9Q_&zRrbXMW?> z;MJbt{KoZhUogLM0$l&Wm>vOl&0P>|9QFUz`AtWCsXfD)6rECj=(NzLIljY-+}r2m zC&T}I^bR8Unza$4<~Mxf#-72)ihc%tq=R`1Qi<*;!ikUl)+60vV3bM0eI?M+a|r;+ zC!Nj?dj>!0k?g@{ijnyZT_HVJ+e|1qBmc|`GUU$C{4w(aJG_j~wF5AT0H@va)I;C^ z6?pLL`Hh2G!vRim``rd^SIQ7M#;Z)=m^)*H(B74F%nR%|so-XQqaDBqHpEcz-D5}s z&Nam_f?Xm+V3%o3AAxU&%XShsTh;uA^_x{er2d|X4}jdyPmMek0PhJ_gA=A0s{f#U zjv9C-0=N&)Bw^}N_6)bsL{Sv$j$2BYvRIFM;Hp&Qm;#0&S|ZqIvWFFVB&IxUWnrHQ zFp~Gg`CRV<1`D^I&=XMTBg+Ocx;P+t-Z8^De5T)+{$l!-NjLq@;(uj+lP_b$mllLT zY0sdid~1FKr-?nB-|(TOGJZta4hL~a68*XJ8zk1ByA6!5HowV)-WmJ{<~Nxa900cp z?kSlAK+;k_ZqHyS`6=@ov8r~L8T_Z(GaQe&jRR2*{r2WJX{pQ~>>+GVPA67-hHXa% zIQvO^*UDfo@vwuxHIHn2hUrWa7^_{TrcV@nIKQa~^)2!@#UtioU|XE|4PFtqugI$B zuVc@6F~7;a)5z(I`OUiRgm^#wnCkf9Rr8xn52hjXd)mjeoB3`}yPEI%w6FQ@Pcbtd z7=OmELf3Znh4Y(OqO64@Q|C7{x*DX$gPU;rReGBak3FNp9iM8?2#Xwtepi|y`_{+Z z^V}0R^_zN6{e~`6zoE~JcZNPQ-WmGLcxUJ_<0Srngsvn7D;pncAooM7oS%8ml#3yex8C*yQj$!J2{^eXm@Ks!n`HjUd$?XKs%ontV+y2*U% z;g)UWtk`0m$>tgR1Vu%+dC9&E)@DUXT{R4Pz)?bx)UcszLv_&qR?AK}8(T7OmAOflW;0wICgOq3KPcKsD4qp64@ z0{evK2J+8>CjF=++`s^8hz_)hNyH?HfM8exD9S=vhoDYR^(=ZhMAiuRTRaA2EE-vu z<)OpR+9$F&`APc(hg!9L!qb<_dVxLRiPdPHX_fsJQH#6Z!sTM@w-DQ9zlHW~HZo~m z5Z%XhVU}27ka*N^;Yu%fl_bxekHz{bmv^Ca*~M_7T|}#ih6|Qt<$SCI@%(=KEj&Bn zlIeB?zSlgV?d`Quw4rDf;FSiZM9@w!OxvD`YWoC@rChbvN;Q(_^xobP5!*&7#nBmJ zvWb#O(LY=QrC!VPu~ex5&b)mXvt@yc5^iUa2s(*H-`wT}q#jFvT5*+JweCReaIMbr z7|3Y9JP-MG;MT2*pZyjo`MORY30%}ag%pL>$zUV_Zm&EOuD)9G9E40)S~pt2UE3$D zYU+#HG`5_qzpA3LO@nZXve8dbRS)%pEVE4op=6nRDjiV!WH9Jup%6Ri*gwJXdTImr z`BAJ8&=!U*HE=~bL=>T31())~U@0D#oJLE?`a=z-;eOJIL8&2K*L&EXPyapr>gbh5 zu1D`Q{@5p!4%9@N%&)Jszx!ojbqX@6{#1dDs2Uu$*q1l@YE2k5Yn4lj#nwi5_Qg12UwbE!6b;|0N76^B28U`bxWATsuJP39@ zi2XQON6%1idEmC6I2We1T%|7x!saK#EC1i9O!_G2a8KfV%MuUn(Yu6!G1MI8;4H`T6YkQn@J9gElR zR$7qZG9q79^Wxz@UTtpq9Ltyb>?KxT+0K$L3mF47CB-`x@AuGi=sffsdJjE^-b2r! z_t10bJ@g!Uk9}pp9)7Q4|Ed;IJzRfPn&O1L2uNF7t^zxJ==k1=cUn4$|zcKw|q&ibho2LYs8Ly}_kzFx*Q!#@W0uMF6n2Qn^TbbHAy z8g`eEo6~91Z!*eZdlTyl=`T4amiv9^Ip4cR&F+-22QGXdkf}N=Z1~Tlo4ZXIAkyqjI7)w^51`jP)Cag9tMmamAba!yOe&4&^@=V=boednU+M!K ziNnbk`T#yqu5)UA0Ed(_%K)cduSl#*22eNXa>nW{L9F!4w4ZcYCz;iZF3!7qbmhRw zoBDve=o~EmKp&9JVEg(23uQ)4;?f6X9_@NXroqnp_w)f-$e5E3q7R^|tq)+)7L#uF zW0m@1)dx@yG0l%Ka{hv~BqFCNxX6$iov;iOHGt`!vNxH6vR=_M87h|bik?>e#G*m< z0d>4_)EAKH?uj3!?!X9{PE@|Iw$mL~6k7TK^$;v7b2X!3&uqV{HIbxa^ah8x8tIY4 zy450Nv83xMpIEeb=Xyo;0ViyO+ctLG^Ie(m$$WPv*?gB4zv~r0tPh|UNXPD^Wb^@a z2CwM@vLI}k_B&6d;`ObjpIIVcGGFIxMNGfK6u;L*Mxk)M=mUCCz<`07C_gGAMjzn# zAhYp&uv0uq(qb3}P`va0p5qcb`T*ow&}@MzeSqaTEU|zrXDb+)@mujyH#lTD&<6zg zss&hGj5(Z$gY8VPgO&P#S{Yb_`j@m4->Qd=MTm}BXy9u-Y^k9}rUr=>PA&gTwX9m5 z6wWxx8JYTkl;Tb;O3SXESAl1ZQ8XNADWG`jLEe{GS;0VK*yb3k>I-CGgD#NdZ<6SW zGSfBH+_^M@*YD4j*BAPL>(&RL2FOeboz$K_06!8)r*4g+(+J`+G>!v&rhQDinQ`6V zIpe-*Uo#$@V)j111iqyY0HGeJEjvIIL`9Ka!vPwyH~IjW=*SC{uV=hC@V+*_8+}03 zVyf}g2hiO4uz{N2DTnaU=i@*gX~=v<5vhuT%BTvAx@EvIi1vHvHo-&J@h|tGls>@E zFb}E$n3~4{&`W2BI9}X1lObbB@ZpVTV zxlsaaoU0OGqYqGj7>Pw>H%>;zwm-ho={FSUeAs;xhU&az9M>;NA0V$_NT~zDxZ+=! zREmReX5ne{0nNfaEkTl1+E<-F7XLV(@4{7-^>DFgdOdqS9@bDf3OUQwD3ICOH zjNtZr^~O17r#Gu8TayKuEG=tQH^l4iWyTH@NB1ZEjW?e0_flPR zx{~+sd-%(yw_nrgLDOOOSIRb5WPcIRZFgbH{su;a(_q*5*8{fkNpTRc?;RD>e(1*6 zx`IszgV^=az45nq4S}T@^e#CvLL|>Y`RjJxd{Dt~h5A8_ z9k*fK;XqqU2@3KxRN+<~^$R?7$^+Z?85_P(F7TZ4$-lYWU9rl5hQ}RUS7;C%KWm_3 z<$>!B&MzJwxQdn01T&+ZpE|S-7Z2Rdg+40bkbj2D-575j^*Cxwl_Yne_(S{g5x#8!+Fd zJ7aiH$xQAXi{yv*oqB`A^#(b6u{I(y8C)&Ovn1}VO3ifQ{N~z++gS;0hI!r8u#EWqhiIyGGMRL!}+$akOa{r zhjV(<#$sQ`)0j9poXOW^RujQpwU)QbUB<+6o(eT`DMc`u}< z8eYnU)&t;P$LuB19Qu-odsaLgJ|mAKr_*muy6M*z|Lgh%thb9f-sxJV-ydIZa4>DH z^#-ecA^Rrz62p&te;bC=m#uzbU2ib@1;5aK;rsGuEupm2H}wlqFC6F>+KTUd+fV(T zeqjqd3o6u~1H+2jQZuLD*DuhHh>Fsp)h0>DI3&Z9SM&>1nkeVxAJ8w%6raQ?FPMVw z=t&m+0yvf4z%7ZAlO#!O)zmMby0X1n-_kF*-hgn#iXQHOQMLYKlp9owdUriSEUTpg zWm#{KdQe(`r&>mOU-M?Y0re#bgR?7n_M4am#&28*KMP`?0| z96DRaN!7cYh&=OsYzIwooP2bCr1}-77_z$FfC|)ubKLW$mK$f16|XA?oGDd9_J-t~Dx^gz(OpN(^ZzQ#L3+&@27{XGBV!bJkK^@ysCo==HuVoLexoTEh; zNkixsk6(a@wqGNqQcp=EKDr0L2Yw=Qr>u!og4O<49U8H?)6@vJy5cnlhgRX@iHB5d zd-WRBJkvg>-A?KYzFV!_Pn6{(1eGarE2yI1-7NMX`dcGaq-aEB)(^|08yaIyB4D~6pLVvRb*{AC!!ZA@a!3o{sJEev--MXloL^UYxMwc03YRl zfRFw?iwpPG_kmi<^QZRgmACZP6dw#y-zA;8ik#k;O*>l^xH{@0$;%ws@7Mbl*ZQLP zsG@59TvTr3X-AKl2e^zW_X->U~O%=`*g7V3UK%>eC+J_Y@|2IlZL zaD%CE(Y0v3+J8nKM^0y6J*j5iJ^p=twk_qQKAW~#noC-ey4IKb=c3Q19sTh7Y_v6n zO(|7TW7S$G@hXk#i-1O7y<4St5m5C)MOLT9u^GUMT4Lv5K_kB8r;@U;0#piGX+kO< z+TcZmqvCCdmBUplq+a5)jHU9YMA%GG=B6|`4f_*d@%RaeeI~IT-vJeE{EPjTqo*0A z#prQHKQnrs(a($?Xyjz{L?cI|M;bXB`5So~J=Dn8==H|G+9N_idi1q*Qj%-=<9Jkf zjl1qsAW?M0309bu>`IgDd^)NP5J60Ps)1C~hF*GNv)n)CyPr-l!OfBT$y`h(v6Q-@Cb zvoBko7Ldgs$E$&nsBJnIBpw9X`)NvFKp0TZCXhl5Gwu4UDc7*>HeaI$AnTNq|K_}f7NwPNs=RI;V@-T8V@-T8X@-Xr?@-Xr?E}k?Mt(=$#;!Km>ud&OGANz3C(bW=pSR3(uAH`=1?)Tt5_)fhB->LWDJ9L?1 z4$G_lh)e%i>cNU9Kex4L8=UEcGXA{vuF0xHg8Z6ry&o$U>6-kuGrYbw_q-?tau}JOME$ zd$@A?FOoP(@+;?`CoTgG8DB2S`C!UIACRCK=tW~xe%C=<~wZbCTM1(Z_K650$H zIUYWYd=H;SzK4$^-^1sT?~#L%?~#X*?~#X*?~#X*?~#X*@9}^8E`uF9!{wp7`@l09 z`+c-;7a@k9ztMCVe*R|rho8UI{^93uw}1HgJMABS{%-q+pC7kxE5eF3nlnymX1y?1 zb#f>gOOH7Qi@Q2G-5G@qyG5A^kN`ahXFa2E(}k^@Au0=!x!*)5o26Mkd40(YjCO~R zXB}pvl-DJjVb$L4c4rs1agQi>;m9RdpyN8{I-N@Z6UKEq7p#JPU_?g(;(OQpyVEPR z9&DL^_wEAy-#r@#fy^QhuEpl7ax)?xc;7G_AN?JDl=DM`b>HFVR{fm|tTR9K@^ah& zO-Sa4e1N`>{*L_^>hCCrx@B4lN$la`WuO@~UA}G_L;W2sXr`sK6356c&u)i4YpJmE#xVu=d*BTo)6Wf_(+>{5(@#z@^IaT&&j%d| z3Gn)w_Fm|{8Q|!inoT_WjSX1?5JVs2t4LJNhXKNif&-Aq4a;~EkUB>m>&p1#Cmt59 z0mKu)WtyGZ^qGB^-%6MOZc=vK$q$QF`59pLV!H0thwx2o$NxI%@93ZDMqcXgY~$Zs zf7jw7e>0{DqgQ8btuhdKC^3n%LI@juLile~!YVXjI44Z!^0WYt{7<_W`JeVN@;~ik zib{pq`r;|jITYuNhf~wd;s+qT^yZM&n2xFzFe*UHY zZV~WCcOb^3?0;swJoL$GP0sp5e^&$BR^JW$DR;^nxJ&+V z^n3Jo)fY`inT~1e+4evC%DfQL^tRwVPYBsPLvj7-?fLi zN8|fr(>tAWS`VW-d)+)6=LGRyqBmi$IY+yfxM`4Sb)6bAj@%4iN1mqs!`G3w;rrwp z{*Sy3+ehBUKl(erMx(#0M#6WZ^mjx=I@*#sbL6OQWn?jvVVxtt+V5=NPl@ps52LWl zm&drwn#ot61-K1>`le|0iE(nv`MLg6xdDw~^10x6yBmyp4Win|l#)BqJ5?2|{)BFn?%tl$uPtjS$audCyo9J+j8?Gl(L)LkW~k>n51Y_U5Fq z*vgkXx52SWN<=m=OY`C9@Ok(-axnZHc^H0{!jZH zzxN|%phkDzj|!sKh6NQi8T)Nr%995sNB0ac_5O4LEF^1I-S z17?2bO!qks1I0D{LA(JcbhJhQ}z4L{_}eOr+?PuCnx`XzyHRc&Ei~z!9Rs&{&4!Z z|I9sY({C82-~DadFzserKVD8ttmkiS_5%GMxDWsS24R11lcux1*lRoChxzsYkYxFJ;0Tle3@fA}Y?fhYT>oO#O^|Lof> z>oC9mZ5brVV_Ehq{@LI7jqy*u9@bm`U**rb%Wup3hy4Bh{?mQ<_c1(16z6@2i+H?N z#)J(`8#^nU6jX< z{SDs+{wk&$N$!K`9FEj-@rV4Tld$>_!@N?8jAnWe%gxff1KNk zwBP>OUZ+lPwf*6-blLJ$+I-)(KQw;pJutWLt&9PB?~^ob-?w#=N3Y4uYwhK=_UGr$ zvVJHT+ty`E({TfOc|O)&>`yIk%6yHc_N`x|E{A0gzP?3RnGoOk7Hr$id|wXB&~N_# zum3D(o-dKHk9}Vb@p!8)pW9xhK0}iqqb}QaGVYOwk?-vg?sMDATXmYc9otKNM-RW1 z(#N@z^l^^0m1pN{(@vb!_&4pvdAWb{t#KaipKZuL$2R^s-}cXW_WU`=_D|i{{MomA z#)RW?&!TYNJZDk7g`aXSj{Z#>7`d??{#mE_d#!F$r>V=-VQ?4c!Syv9iOy5=lfSmk zOA^ZbMCAFq|C5z&=sE9yInQ72d^4|E-~Tav&iwrcxc|M)-@lE!O8w(MulJwm_rF^2 zneUx|M?D>X(eH5VgTY0su$EUi#e|=AWdC%_w`g{I;|N7d0 z4c(`Y_C3$L)2DM5c3ofIoPP796_|B)kIQrM{t@*vir&Y|_m3VkdVTYFP8j;E%j@06 z1!1bjc2`%AH!iZf;XaGUd#_Zye`I4UPcEAnV7$?vmyb1Q2aZju&v3Gwtx}^*F9(Oj zen$QmNtXgy9ybMUDfS}6G2lo6K6Hy5jx7;;(3cQ~#YL5!C8XuRg#L93oLz+&=)a`E zW8R+v1%5ceUgVkGuwO#SrKK$Le0g*1vA=|($Gk@h94T<5z>xw+3LGhLq`;8^M+zJ% zaHPPI0!IoQDR88~kpe#z3SgSvd%oTC#h&wCyXT9?jZkkzyq<$q)?;zmFYV2U{bWbq zPmls5k0YnrI=4?-8<(JO-hF%C2E&s@3>U}PBu^H{SanVo$LlgW00!RRp^e;U@SG+w z__h(W67f5@O#tUJxveD7-9U2aa1S79jfjIo0Lt#<_P|(>+*sG9q{T6%*V+tyUk~5S z4oG)5EyxMnjZ6esANNPazn{Y0QF~cBzzpsT)0-4~0j|oa0xQL>0W3z!W0npmkhLo+ zDK-JFN=laO*m9Fp0t~7Wma_}W>%OW^5u~zjqyxk;+pJtBRF45}VjX|Khu$9X<`-!@sH5@Neof z<&Ho52WiK-gNhq^tP~Hpx{{(Fnri~B2K7Cu+u*Dfo|~?oJUL-kHhEKNCBa-*m+(Qh z<0d_Fr-y@asCcctJ8_3T$8@lHFKBtD%OaZajvR}ePW?yzrv5{pssGSt>Ob_E`VW0Z zegl}Fk>Bxu!>%e%JIY@C)wT4{Q|^>Ea3}xZHU4iT$%h_0)z5jR;C>Gt6Fm5h-}9c% zpge5!pw@S82w;;*mX-3snh6m(KXn+ z<*!c4>fXaBOW*|O^oSNlGJ|9nVA5_q(Miq|CmRzS1ZcP&Y?!T=|G~|e+_r3o<$oKw zXqzxHWGJpqp12$=m6Vod6i@nL%Pg-sbd@A_ApXi*aUNS^BFgC0#{1vD^h6er=#*;V z2FF7h-~5_@Lb^0U3G>&`@hu?+Cr2}I~1eF9=wnZ7q>zCfy2ce(01CFS5w7+MZOFC*IPf=q+FM~ zy|P1fTjh_qAwi{J$NM;jn;*$~jQ;6T;OwI1kpB0ph|MC;bgoq({pOd@cPWt7vR&ZS zbWdMW?lJGLH3c^PVT;Wo;oq;`iySWU%#h*x6;-*`0!Nxw+ z3LGhLq`;8^M+zJ%aHPPI0!IoQDR88~kpf2w{6r`)cBHB9*qO$k^%mpVzByEOS%kC= zKY24ktI?}!JC1dDJz}riqvxkcfsx0N)3J*VEyiv-{%^j0w}|DkC}VLfQHx_)Hn$iR zdo9`&c<>&0gU8r$2hXwd4!&ato?^yMJbu>Cc>&L|Y%UGK^&WA!Fl2EAG4C|qcVM-~ zqMh;<$CUm*Sshm(E5&BH z+>3xJVUuDnfaHOJ`FiZuQ^FE38J0yxF9O8T5|$J!6gmtj9t^)n4yFSfIT?%J$k7-| zM$TqE!N}VnJ@Pi|2}a&#J;6x8tS1=%cKuv9a(TFZ&V_WWgK)J(uc*V|uOH4_8zQ}Q zgpz~rQvNvlJ$O#=x5#@=A6JYyxH>E74xEa=l23v?r(qqsILlG8lj|kgX*<~qZ3KqS zL*L=U(0BMWcn|-EzQez%&+u>jp>JW$`ok>tDNL^Mh>|SX{zIRs|IlaZ zKlGXU4}A{hVdPgBKJwp-qh9<}^s>%n${V;HowM4;?faWh@hkq6Kz;q+MtbD!$D%j# zczSwqktLI?nsj*|%^O#qb5?lbP1j|A=4S`N(dlC|Tzy>maOLe0^Ta!zyphYTf6udx zX!pnB_p-c|cq8Q;k>8QCk>8Q;k>8QW>3;|8^uOcp_V3MQ3MK8> zCeEt8Zt%8j+9u0euepFc-CQM0I#=#h%1Tz$!xm9};;%BdIH3S)fP&aX$Iw zhXAtkOlYUA{3bNUY^F3rC0JfU=>n<@lakOENvNAYBU(m-0?XNwmY8PX z$iv9VgpVAJJdB);JdC`JJdC`}_ju%OzQ-ePU%I~U+q36$ZY!nEr{6xGU9d#&>gt*2 zDbM-Y(|hh@y}sRDUp%=korCWP^X|UOYi^2t%6+t~@4I|ru_;T~S(*Lxz~!|p1iafl zarG=Dn<|Dv=Pt~?y?=PT&lOE9rN7(NSDITV9&ypJbJfH>D~Y)wj;kiPlY;9f-kqK! z9;|Wo+PEvp?oAYDE(O2kDhk%Vx~AJ(JLzJkE%|1ATwbP?2afW7;qSETDQ4RJ;y-14 zgeL>^?T_8+enbZ9mzP9jh2fgGBWUbbidAGSC!5__)w?_U3gs?g*?^L9A8c*zT;Y)#EUaWBAY8YZA$n~c;1AHOCZFc(MP;#x-)ci$6 zc7r6{wtz2jzXDvsa=YmZ;DH;?Yypluj+{=vF=?h>8Gq)Jepd*niQ3jd1pNace(2-y zGZog?r+WNK7`g#jIr~9 zvobaUL+7FI@L}jXd>Xume^amF-_&RLH~x$#YczRv#TV0NT5~`rm$u?e2x-vOq?P7< zkJVVDoJ}EV6hD}RPyL53Q~#mQ)PLwR^&k37{f9myzeA6a-| z#TnH{(>oo;^OoN2G11M<^OoMv4*Yw{e*66V9dgyN%QapS-*zlAgFI2pA~pB-PS3m|aVpyH zq1VuH=rwd6dJVmYUPJF`pF{6ypF{8Yz6{ty_{)9Ul5!quCIeb3BohxLei=y0!*n*c zy+B*Cq$IFPlIrzr11HRshv|}if|rD*tiUyBlk!DiA+iQ1yEC5c^K}CEOYJhhIB;7) zGj!x(K&Rn`S?-NRW19Y43@koDY{;Zw@0evDCPBNMB~b_$(AH(O z1_ezraZ_zFa?dRn*pe;x)F#_*cXxMlb$5M#!^ODXXj_lH{vDq26M758dp3S{3SakR zu6uAdq2MV%qMP8u?~#My_sGNWd*osGJ@PR89(fpkk30;&M;?aXBM*be@PGEdj-T%b zGY}pX+dd^7Z~solejo3*EkX=Gf1~L#{QS-K4?lma{lm}SZvXJ}ciKPv{N45sKmT<5 z=k;gC(eG2|Hz+A?AGo#{W?o$0JTU5Vs)K@2r6T%8q8TX~N+7Hz!Fv>w_5r!ymObi> z(J(U69%)&8&MC(0qPh3>K%W_~KmV_Pp7-2u`{(~^`TxP+{W*8&o^yHi)7iIZE8kx} zT`=86Ir_wWH~t&9?O)$MU7<e1HB#x5Qld?CECrbpLpJ{aEv3@?iYqyMqFD99O5* zl*2L@mpDtl<9=SutXFq8*LQbB5zZ+lhTPr}i=ONXvtCqJ!L@&et`jzNU;MNV2*H2* zOs`1M;b8;kcBG8ZArxM^MGj7}2ZOrTM%kfKWA^T$pS>oEaAK$6PlWGz2dW2v!k;}b z_4S96B?n`u{4lyhKg`dq?A=62-Rec52zM3VT;Jb9Hdsm5d`D-ygErT+%vg%QxxXXi{*L1sn3b6X z6dxWGrU!zbc0}Agn8b)35x3kRPUJ4Y11J~>=sw*%ii!ZIGLF%c7hw1I1>D{{s1fnt zW#j?Qjm{Qt{V1NhYpkEZ1NXi#@H4j~{ewjrar3Z4zru~>TysOj{qFICdXV^T_ek-N zd{`cKPt;}iV8lHHe%ulJ*g3o%2U3&w?*8$FYMtb(@_0x1339q43_F1co!mb@ob2u% zA0AHt&ZX2hH;+0K9}lgPh{Uz_~;XYm5*$2+^C6gK{+B+}f3B%AutO1A-Z+ zkPECR&pL~rhB?&z)cw{zz%U!Q)gt{JgB|#5mtgZ}eFNn=Afw$;9`q9p=fmc>Bkca3 z@LjbrVc2#~xa{ff=Hc$)?j#Wi9%3#+_taa_L@*n;9j(NHPJpNJ?PL^fF<99f*mVf} zjtJpGJL}=Y2^vNS)l`D(mMe5$7#T|+jD5dRpGK0IjyIYY0rS{?Ou8X@bE{nUnFSac1?)+zR zzA2@<_xIktd+)pN{V%7@ccPQYWG2ZZISCW)JBPOqbv>p(H92@*y10r^r!?I2$9VF$tY^z`wjHp}Lqakq~TADu!YT{~}IUww_EotLi{0cG!R zkCac!E#(usNcn_5GF}$?$aq=kld!&Jyev5;;_jNN(Dp-bK5L48Y!L*mz>|C>z2GJ8 z{{`nu(Ljmni5e7o%)yUo*G|oM;O7gg>Mng+HX8g+HXeMW2#vMV}IPBH|Sq1ykokg3tdkGLu2DsrWSI)&b?N$oDRanulC_$hGhx;V>Ov!9FK)G%@!Y&zSl^%pJuffP zh}h4GM#whJ&6E5%*qQv?sAc1r?p~xEkPeqLsVf~b#ft_G_B^Sgr$eZz7T)H!=u?iQ zm+@f9nU1fbVV5)6;}k2h6SZmVL>8J5BFlF{#95?Rah>vLDL!z9pTI425$_~%`V_ay ztkh5mNWSP_Tb!sDrhhIp4I%ZU6mhi~MBOj<(S)oM2XRSVq+SL7f0aM!Q>;pnNYZ#s z%O%f169*AM5(~EJA7(^7GSZ_oYFCL1^$!J@Lna=TvOYzFEIq`b@d~LHJex%UJQSi) z5QXxn#T>eLdQsL|U1Oo7AmV2p@z9TUvWPM~y&8Gk^wq1d4umUXRo!QnZL%{KEjayadTB86_Y^i#0kLkxGC!MWOhlHc>@s zg7FXQo~G_(=3#=Tau8Ntp2=9ziWi`jDn{4ahfvdbkdDgv>M~<5zAgNR^_)Sy`##hu5aHKE<;VRC)S` zx)^F9xdEkCmu*A?wlVv$xNsG&ioCcFA$^LIaSV<}CFcP%mz=kG>j1)lG!ipkvU{*T zrE#V;N4Bvvu%v3IsZW_WlNSrPD5YjOm=Ib!(xE0fd3Ht1jyvfr%z`Aiga830V(WOM zA2Dweuj$Nf^}%w-`7+L)aO757)F_+w#6uyjNqV`N`V`j)m5^UFm1SD~aK5m}hscfe z(;`>WkBfXsKQHo>u)m=Gh`U|A?a*ASrulHwN2?8tq0K^)CL2izaqfQfh)#1RuXvgk z$;kHpXX8u#H*H6!e|y?+O0%DCuJ$~w=tloZX&6Ku5^YH&j-t^4wYpkSrs*FF;u!_% zXlUM#8gUOV3Zh9S;*bRR3f;t8=o;rXsl(-`8C;S${ZJi?)n*}j(BQ>JCp}B5wP|XE z;{0frtVu*BoVJ=YG_CAu`f8hu>!iMgu2SE^4^rQPx74?kOU8v#9)T-v9v@Lp$wE(x zHsi+vs^@d5U7;3)0-1HG-=h{vTWQ+OQ;!+kXfBl|0yRr>zv#`pOk&GRLY#z}0P3#1 zc1KiF?#+h4zq))h4bR-owWiseIof75eJRki&=^asJfw`Pws=-fN+jUt zdn=DZZN8>O?@Qz&{;SLPPye1p@c*BBYeN1%euPnNZ{c^51L1d}v+%pfi}1V1i;Ukz zUPM0Qdy)%!$VWfg!HuTPNo+zko6Gcz z_baJPFFihwgT%@TCyh%RXNdNnraXnSW=&qaXvHwNh12yx5tzE1nssZka8w#c>x{@# z!(sZ8g<%jdnrEQI971nOK#V}?sFrjT^5+OT3jfl-gb_3b&pGp)2t7Pyq2o{hXU=}6 z4|$t8GS{%L4QaNTQ4-Xb$b-m<$b-m>$b-m>$b-m>$b-m>$b-m>$b-m>%ohk6(yog; zi382OIC(gE_}cS9_ztd)UcRLH(g?)W&DWQ1WgtHnM;{;7QK`*!_VFQ2-JXmCE#XjM ziLT^F!*2&toRhlJ>XH{<7~tUSLu*>JwBzN@Q@P(BI)<9GG5(lEZ{Kot_w-HXLFzRx z=z1pe)Sp<=B)yLZeNRFknYg&o*DFpA^pT;HD}513p48vF(m0tsspoKE8?APd?!m)h zb434L5lO!$1~mVvO`w0W(=T-h%$VAToXjvh`@r=}cAkvTao9)mlMZ6m`BoHd6FQ5x z)PuP7`V-~!y?##|r2R;A^f;6`mwI^SA-4npBX#=G2*q1}vgtuQ!(bcgb3AiI&x^IDzQo#;sR;0l z0ARhZ4p*Hyw{AHYji2AQY!BX@!R3 z(drP-JkU^zN~P2CONgX$LbR6OOz9>KS{n^ zUL8Qw0yNnpjAwfbKMJ2pyCKn}T@kl!|0d}lJTT*VW^G|f5&eTV(em(%E0$g?AnYUy zH?vd}u2OBGx3pgZU-An>9nMK?<@@HLL)mG9qzN>R9^WI*$wXkKILv~NwJ!cGlo&&|f)bmVJ0U*^{e-Un?*1p<{4X;b&;QaSE6@Kr zlZEGPh|Rbs=5+wJ=qVEpqAq|mcIu^hS;98|>+B}w5&jT961VVKoco*pp%oEb(|QhA z^Msz8HT}M`+5(wR;#t|LAL={giL-M3+dSE7LqPank!3ZBc$18By>pAK^>fp-ntcts}iQ`cMe;<@x}$3 z?>2#&4jaP%26~ggXqow5-b_C&P9kr%cq}wJfhj%ltu}e$2;Z!KZnKqF_)6+c$}jaQ z{3i7-{3i7;{3i7+{3dQ&{hJa*66eS}?&x8)!HxEE#0eT#28$WJwct=UPGKx8>|`;b zbh`Q1BBdoPo|E=4+60d3oN8B`x}*5U1jHUZp=09-W)_k=+E%Awnv6heH`-}V$5Lcl ze#|jE6%^+r7dfS%wztqr=qU6OIt#so-a;>-x5%f^TjW#dE&7dQo3KA)rA6006ImY3 zS*GNfUMyUH@Z=!POlA!+J*I;+lL)(T?dd63TQ&aC`7PiNB>i9OA%gb5M80)g{mo2ko+YBTjE2S@p5(zzDS7Bt&ztlz_RFHZLDa!x4P=+YSDDgQ8K}%`4aR^@s*U zzCN6Y7BO?)Hp7!JeWhvBf{^0Hx=@nPJexCzZY@?$!1 z9Wl%gWZu~f+u6j2A^FN%${~3C)v^dYLj4an@E?5_w8myKz_2r%y@ zr0f3+k2{p^0U4nw!xNZ7Gk*V9Fc{AN%Wzra!}tTS;yg%h_45pi(whzUo6>iZ)vl0! z&e-DJhyGPo`^5#%eU!`dnG=}DUOY49acn~aaI@5;(*Bj=(~6D2u_=i(D*sCW^&yG` zA#TZ3MW|saMKpQ@B0BN(+Ujg_d?GFn4 zpui6b{Gh-O3jCnJ4+{LCzz+)ipui6b{Gh-O3jCnJ4+{LCzz+)ihfqNFok($cjXC~9 z`^n;N4~_3n3rn<_=sO>qgLWJJd4T>1=Fd|6&453P{KM}*iUPuq!l%4G8~?GbHpY4V z!}s6DtpUpNP8`VZERvt#A^Uj*Pg#2vd=rXD!j(qzz9RbUfpX!UdEYEN!)@-Dj&I>_ zVl;+v7T&FF!#U3K4ds6UzUD_7gofTds_~BdYJ+x$Ch*YLU2(XHCvTnCZVw zx1;LaryPM}eDmO4tmI*a>J6)=2YKl&tDM4iff2zVFTL&6+*oNsr7ffq!-QgPj3uD_ z2uOYP7JKk#0~CX{hO&zun+I)GHQnT4LWqmO_uqa8)D|&rZ;SAOtXl}5$V!Xwkt~!* zy)h~H5q=X4gx>^3;WybYYNnzC9>rpN^ZsC3=cg5Zx-f_~3Oc)xg@{5QAkw8oR4ytj z-(N%)Iu(G3Ne_Qf#sT!P5*=Yg?52aby2z3cege1PDc;2I-#+ru-$9xc%|{^-lV~Q8 zZv-d<)5`mlO)I_W;dmUA5H>B0FyW$8Gj?Vq_BCVEuMGjAv(Q)SLFg;>BzTLw3Vo&i zq&xyw+?u|oAk)_pyy2EV#^C~(4hkYH-Lz!WeoQSF;-Iqd_tLZ<(^foJJ9jMy=B8`P zg5VG&J{3qixV(H=5INk4jj77a5dCQ+NurHe=#V#NP8%!HN09s-qzz#yztBa>FZ7Y} z3w@;gLLVu=&`0>!2L8K!ne3M+36BqG>nRNqG)3gcmO$VNJjqw!30~sb{Z%pU6Unzv~y# zW1*pclU^)aERWPQP%M%fK4Xj|NjEY&mi`WcVNxO%F;2&D38Fr-QXg7D{u&4e>ic2M zcxD~y!!j8-K_(yFO=&Q61T%V$p#dGTLkT`Pmkm57$+_b!{9(JJZGYjv;`1LGW8feMnNaiDJUufCQS5; zvF1?z)L47ya+1x=mVU|3I5Ht^6)11v6X6HpBjE?(GvNo}H{l22H|g($-=x12ev{2< z!f*0@gz(#cb-rg(2ReRGH`7Uz`q(@3{y7)=1jNU-f6m_9f$!9#!w#Lj`KmK&j~&U6 zZb_hBbq;K!z4>&SoufCM;=&vDot)?>DL!DGzTD>PQMlg|-sU&)x9N;iqT(#^qy6{o zbTo$<`Jc9bP7sdUHWz34?_>2N=6@Om{%o6(Gy?w+E#kHrQD0yJAnE&uAlVXq11LN5 z{vyD?g3OP!|5qsRuVd^u_M?8~uTUe7vA+TQ!@0|U1^$n;KPd2n0zWA5g91M&@Ph(B zDDZ;Z6Bl4UW8tlxh#;Ja8q9RG>7E}@&qvd~r5rG>r;1@ybcU4oV-?Q#h`Xes~u7!2jR zB&LU%$F~i2oGE2%^DvR--9$DICMhT3L#hceegs0i4Rwq*AN6QPux*y(a~*9Synl`% z#PcvignmL-Suzy5%fg7%i|i*5zLxz2Qh$Ph)Sn?sb~-y)mo;?7zUx=8tjK2m<6kCb2NBjp$R2>%K_gnz}Y>z_J&+Dr2N zk1c}06?l@bq!+xzP3@7cWc@=hzd3lP%m0#xtIdY6@Z0|sy@?;033<~Vvw)^MGZeRH zo*v}X`#H7K!`+*?Rr3+IW#63api4`+1!geZ5_-DR?jM0lZa%cu45BbPrIwt`cAU=U zqC{`kZPnYG4$S4Kd;%{!>0n#F_LLv(q+@XT@;VQ`*_1u#%2_j1 z7{T@y{uMe4{|ddO9)ypCe}&J4e}xZ)e}x~V{grH`{S~+EJ{2wAx)0>KC!(2c8asq1 zNxW^Iws;&sF*&JppJrSg^G`g*>pPf#;z`^4%q_Wbd2>eee4h<@@~%0?FRhq{h$4>wJJjLBu^xZmQj&F1;Nw+*JbK~dt{V16Id+y_W3 z8_%2ARR41VNgTKHM)*PaMEF7YNcchcO!z_gP543hP5NWuH|dXs-~Q_UKFxOt&$n%V zuc+{2Qrac&#@BUmGhpxF7P#Hr5H)=J?Xx0w$U9)K5leo zo;SB2=6zbkSiF(mysw3?X-Uc_>e1bAbSVqfC|~@^7P|1r-Q7N3kTZ2nbk`FHQ5>PC z;3sk=Zjrk?$v^s5Trawb zldnmoc9QSwcBh*e=!Xp5J;mpf)7Bi4GKNey(rK=>-3vw6;PAy#6p>nP+x=VAD)W8a zkFoR=$ESHz*D{&0|sy2oJE;)U7J|xZTenbj0NAEOPD(G*;$4;S7ZX z=mI%z!) zGjpmKlZZMpUAFDb0et1SyQeo%#aGkMmpdw3=ALvkHBsE#m%2$`U&4(7_`+i)S97?|gTYgyLiYg@mFbRna_T4yfEbVO>t<>BE^{hD{LFQ} zd`}@^zyW3^EU6|!a$h$~s*5}Cd8ZutaDOf!eQZKp!bs6&++^1PI35p#=+baSDwtNh7xv`o3<$ zp5jqT%9Tf9&=Vv=zbW&hvM@Mctm??sBLd)zolK5eomrEKPYbMUw9Nm*Ur%- zh~^r7i4yY=RS)woGfsR9mC5wsDyD)kOVUu3E%Z)^kK`wKNWUz2O1~}mO201nNxv^{ zjjtZjQ9DGRf|*u#65J##bWCe*LABMSpv}P(4irL%TM`Qq^{D2&ZMQP(8zgAjfiE7^ ze_r0?Fo(y~?$F!<4~zA671T;lVp}8{OVFhdc64h5VMhZAdQmgt$=0|>$|vQP@(Ep} zd_o@?_XvGtJS6l<*ncOaH_?Z_&Ev15^as||>get>ZsJ$q3OvbI5Ei_|{crz1if;?k zOh$ahw|FvFGSBIUKZBs|P@FVU;qj0>qYxiz3}OSfE1S{GN{63}!9xiqcy z4}Z48y&E;jQUkgd;eLz$>CwOJ;&?pAMUm;tAKkNYe?t*;0JryMd~RsSrRQ99C&(%; zbx)K50Wf2k%%JnuZ4PJ8Z4%+eqeJqeEXc`91|v)mSy5p`^|wZhFr#KeniEng{^OVw zhr+cYq?cir5}#OX&8`rl9x`SF(QYp0)-!hPsCsNNcchcO!z_gP543h?O&}wC3SRn z_H_1g;_sg57Gp>LRG7br;`(*-aw0$NOI?oHj=6erJiaBF^cqsDc@oRngJY4_l*FFA zXe{7J-%q)@(k(pRbgP?_6hTuczCOkG<Sxv9k_JINqXfZWu+k%fY| zC8tnUs%YAlgV^FM^(gQ~&c&TDfBpR5vhshwi2>>#k@rv$2{ofZVR9&TKS3# zAS#&p6pvNN#-l1dwDR~)pE8G0=AFMr*te*8pfFrbkQOc7KvNk7zwS zbRGnc_=((lv}x*q8Y?OrD^>Kv@E8LcJ908|@|ci*C|^>W2o)PvG|2m8?U35HFrATt)z9 zl?rA0{rB%5=b@VB2$l(31)H_4>)N#b50#JV&(s;r-z48FxkC(1UJpb}nPHJ25he%qh2}k}+NtSI zVLa;PAXeM7^iWf;wMp9uL~kA7K2Pg;GDZ6e2_4p18csZ&vp$euckY}`R|VurwdrtTCImjB;P@5J`D{?yh= zvTCH8UU7>@oSQefm?CIvY!i6s>e8{P&U9bK6(-4T9H^7pnriK3gJlcmlnH$jx^;|i z@g+%oA4(G6$>=2TB98$cxB>$cylU$cxB>$cwb& zl7GVSzxMC4v8aAe*k!(pUN_(5`Cr}FnUUiBmHRs7ZbW&@J%)TYB!T|!5!$e4i+D!T z%KKjpBR*2`@nC<+Ti$Z#Wc)iUnFqvhnb^dKBWdNG5C%p6(>n^|!}w?1VJZ2`J0Tv- zlTr?T|98srw_tIZ;y?fFvIuX)f6LvO|M&0X{C2OVNkgZi=G!ao&Fzb{F?L05_w&|0 zVuts-ZHq^d^z&@Tzv`XJE+VvIX;mE(wID)Y3Hs^imlYJQ*(wCs`#iX|@&C0rXq{@`A)Z^uw* z*lY?6?y?AyUflrO#_or^vF9OR%pLe`%^PrUn*@7zaK+~Je9=E=8XS5&GcGLQj|Hp+ zFt&FvPR)(jaC9lO&Z>Y5>QuwF>uO`YwGGgzMpOJWt|hMN-WG?w>45vwg<+>hT@hM` z5(tXOh^6$c!(V$|nMrn2)LmiBHD!3F!fhW6aDEA-Y8WyyYGhGlrh2bR~Zvl!U2p0UX~+_0ov zX*}(A)@VB7i;*{93f1j#J~iE1PF=m;N<}5@r)GT^tIC|1tFl|ysTB?flvnf13P(Os zuXZJZ&9mL0&yAF@AvOyvjK~k+M=X#zyey0is|6jlG>011y1=@CSm^9O2tG9&3C=4g zz_2tkpyj-I(51vO==J_*2->p+8vV2z#t%6RJ*}rYUnMvH2DD}Uh)ElZ}|Wp zTPDI5?d`ExM`x_p&K<*>dSm0N$?J*vsa!Rq z)u%@TmEXOQ%00~_)p_7g>TLE!>hzaY>b2Wub+GDgb?VR&HLlk=HN4(+RVeJfO1$Z% zYFFrsYTqR(oWJf2%i4ItRLA5{X@?(#kID$^!?VMtu6ZEyz=AMwWib5w7$AA^QqXW& z1xTN(I=tLc7rHcU0y$H+hNZVV!hqe~q2$kzu=!FSIMRFo_`Mno?M4oVhxe3ErIv>R)D?B8p!%!9k`#^1U)uw1D}OEVd~_)uzkcq z2po76R`odvH)GF2jP)V}_PYw32Hk+oBW}a}@%P}}^hYph{xj&Y;uVzG@D6_7{s}@_ z*x}UHiLrXSq-b<-z<`cU=+MyxC%1RQZEZZTatkla(Z~lg)k=oRE2O|{kP7Pr_+i5g zY4Lz-dhGE!0~WuU3Eg&P!PT>~p<8SY{8A?uw#}Ctb0o@(=}zXu+|vWFQ1gPAGFu>S z`>il0{iz6^uMvVN?Jc-sje&jY0Y-d6jGa~tqYIV5Mh8lwTkX==>v|a+)}kB+-71f5 z8&pK^6O}NFs)Az|RK;^k}gaCxc*IILnr>>Ak! z8_jKumG?Hm5;vM+=$mF3oR&r^n*n-0uH9k9$b(j_b&_QEf)$7SO6~M-Ry=x_;yxtVe`>`wFDU%A700}_VyE|3d_yuG zL^584`m{tO=QGIokbJixGmp$sGQX2~MdlNkuVm!@V#6&W=<^`gVBbT#g5TX$AroHD z2EM9h-EJJD@v3Sk8Zs~dbm1XxZd!tWAZ{t!xI%E0PT*j51K}Lz9C5_!7 z)s4UvO^xo;!i>6!tj4u2gN-dSM;rc*Q;gIrW*c2bFELWC{MmTpw9R-qYoGDD+X>@l z-%G}fqrVw0HJ%tA$=@5LofE4y3mnzfChn?Q5nt6hPil1sGN?VBv#I-AbE`7h3#!8_ zf>pEXsNVXPR=rGidTk0%PTlTC_71htG$=(g>PTj5Q)Q26)XX#!w zrS&0IE8w^ac08j39$rxSuU=J|FW*$}Zr@RJK0Q>fnVzdG)!(Q~qdzM5PIk~PRT6l6 z$R1Yqb%KHD3SErYX$||wS;nq+kjg@2k1DhGccz^#2@yR|n?iIb=CNww18oXEjVp^fN4az80R`S`RJH zZGxZn&2O zZ{1Id7arK-xQ7nt_Q(;7KXSsnkDT%FLl^XY=!!`nxZ&h`?s)Ky2adh%iBE5O;ni#2 zSo4YxR=ePfCr>BC!^e`NI+y}8?@oz5wx+^@>r!K_<$ic!UK-pmEiFD8lMZ_fN{^MI zGGOPhjCj6zCXB6>8C#agg8hQC;@O|(+9r43A;R^ivD3fJxi448n}wPjHZFH{VRBr1*@jupqJQ%c~C z<|T1Z?oxQ|MJc?qsWi@rDTAMjmPN-T<#5xUa_G^&JUSGsfU`bVzzdry;__~lFm3M2 znEh5|JTSQmey&gz4}GbMIaXK06iut+B##<6e`^iIHZ`%0cP;eWQVVN0tBq+L>tMTO zbr34o#VJqgV#Mfr_-o$!xc_i{EZDjMX0mIDw|}O%d&J=H2$_RjUK~?&^RGb9cle6FTC6 zPaW}8^G>+#Kqm~y-5E=c?2NA-cgCWX!q9(N7_N8hf;XFY!8O~uVD{u)u|&tN=(4*j zMy2S6)7y2!_FKE*1J~}Dp+R?aUeXbb8nW zcjfJgWy5;ntW`bn@ROc+C{Hh()2e@!GDcySvQaoJEDE0K+gbeC8>+BX(= zkBh}z^I|dS+E}c;I~KE?ilzKxvB=|C?EfJaYdKnRm9G^iWU!)RZY#P3S#fqz8Y7pt z;<%bte9?%;$E~e6GR%s{ds%V4)rutsTQPc+6`N1A;@jy~RCBEuyx5BOS6H#eS}R6u zvSR&TsL$MG#U}f$IOwny!;f1r*J;ul&ryGR(TeU@DeX1tw{H@>+vIs=aUh% ze}0Bc9_r6~llg_rTQdICf7c`vL1q$}Rb=*%IYZ_KnFnN^lX*kt1DVfcc)TCK- znP)`dRD)fM+&r|aNQe6>xX;@e!CNCA1gF}OCFGo4{gB{9BSL<^xiX~g+;bsDCcDs7 z%~FQ08WRxua#e-Uv)kK-&brn=babr=p#ggrg!b~^6k31CkRUJu>j|2lNSMte(i zEpLlgSUO9&r2du+$%|Nq%_(W=yQI41Q=Vp)=efIB>Mpcee2)*dEO8iPxgR~nax`F$ zrAp?dmiE=wTKu+ev(#?8-{M#Gq@_uZ%a#lmZ(C|aJhi;4^}!OmDY3DprIRr>zlV`J zbuy!LCO^ZsY(^t?WOk$P^E^iC@IpqhdcyCs`2ua zs^m&PHE?4(mHuEx<#r>Bs{A#(x|z*i?X8hly&MvtI_)c@@;et%MQVnsehZcIv@51A zH!Z1d9W0}=1XoZqR#sN!@>Ewj*VIx)R6W)GWJ7hSeN)xOt))u6zKwd)vV;09O_+Lh zshdhatEXz(AyRFCST)+MuPXPspBnajfU0tTkeYORh-&=XFtzCS5vtR}QEJtzF{)Fd z@oK*JL{%f(WEEjdRo-=`tMol)s_BzvsUchEs9V3yQ%gJ-s>`rgg?C-5!WS)9mv5|8 zbJML+#~Q6wb>^&BaBrjPS8$8U*k_wcacaA2o^6*(9J5EgzOYY)1RYdICLdNyJ{?tO zTAolPPo7er;H-MT`n(Fxeo1Zm>5A&%cTI&&y`ko%`AvDu`CYBbbx#dg|3D2Z`B?2Z z|5Rn__(H8r`dYP^{Z;{fQ0nF<)o9RHRXJrM_|!2m1n*4(U(?z{wO$U8_lzTq4RD5- z(Jt`hsVm&B<_?Y5dq6!uFF4=F8&2QzflAerL8)Jo!=_v*Vd3Od;O^)Lk9wtnVh_@S zYvc4#?o0;wP%aas-JKa$ShB+M4cQ=7p&amRbxtT4;15?<=Y}T*^Fpf)`JkvJ0AhC) zfb``GLAuj{5Y;dUg6eufH6;eb%tuwtLVr&$wt{MZMy{wS0T_0#wzAt3W(+}Et^oPLb{h{C40Z?<(Kv*(k z5Lo*ThI6flz_N-%;cLNRa4Pk1$e3sZ+`l&h@|_w9k2a5j%=1RW$q{4VRnM_7s@XW0 zQE@z^3!VVpStmkIuSrnx^CTGaU^0}rI0ahlp9)XcO@ll0rbC(WGr+t5OeoR)C%DpL z7F@158;sI(AW86C$n8H5)~B5hvppBU{lp7l?3;x!@xdZ^eQhzUKC=Y&9b5_pw=aV? zYnOxf(iPBm_DU!$}CY*G- z1=U=BgS)P`VT}9lP|@=ar1riGuYK;pjb!)XQi=!gYpRFv$nO!@r+W-JGCYAQnVv#S zmS?a!+jF>+;{{~!e+hN-yn?a$UcxI9->1&z*NgeSWXhT9zVm{ zVqaihiLbCHvmLIOXNRM*Cc@SW5@F%&iSfh2#JDa;5^S+J3EJmMiqn@Q#jO7JIBTgr zy5)ADF`NT#%(jSV{c zVW|gx=+HV1&bpZfJsPFOnitbzSdDbp{NW*J4g!dt*6O%NL&q`9Pk zqF8lGQ9SjvC?;uB3~wJRhCKp{mxcJ(Ubz;%^zwPzLV)4mG6 z*;@sDGE~LW5mhnxbX6>#yBfaeUkyuLt%fSFI$j!H9aH^Q9Y2NC!2V-u;L1BSFv_Tj zkH*$SySp`Uqoo#ljj4rhw`<|jBDL}1u-bV1*Vtd?| zb#YzFdN{vLJuJMj9=3I;kCs~Xan-!~xbJy=jKT(ZdPD;}bg2P0%ia*Db!&*-w>QMc z&W+HqRwLX!s}ZJq&3$!PxvwF{)=%O!Z4s ztd*o07An^a*Nke0C(bm(k*S*FqlV4#;q2x(>~?cJoTCLUZQla@SG2$iPg|gSftDE7 zttEC_+Y*z%YKip&TOo$G!hLI7;iDI=a9x4cn667}%(1dHo_W|BGv;c8o~_&9thsIQ z)U`G^->)tD)ozOg#qyB+$kZHHcu+Tql!?Qvhj_BdfedvrY7 z9@8c1fagOxU|^RHSa@LvynLktX7%ofKBYV2{K$@Yb!A7~bgLtVr09fA%XPv$(VcMS z%1*fcMknm<(;3f~=!`eRJL9+oo$>y;&Unv03`Z3X!z(Sr@YMJ)?7TY+*FFow+3CAr zP{l6TqjwkL;V$^}bQjF^wF`RW?us*Ncg1skyW*zhU9t3qu4qlv4O`^yhA(S&!+f#b zF!`cxxa34Py#KZvp3l&o^q%gxsdIN+F|j*V-PWDv54+-WMX5xubgq+aN|t`{~qMdnE_Oy(Ma19C** z$`TPcwn+r$iz4@=2%NYk0-GLF34*ndSNKHnXQnJ$vf z_&5>|CyK(7DWb5Se-sXcD6CXH3NN*a!rZ;de?$~!o)v`$*F<69-Y9H)J_=jhi^3cq zqHvun&9SD7#+>=0(Ho<2Zpqw&?TXgqT@ z8v8tq#*go#v6NE`Hck_^Jk#B-CVI)v`{R% zt5{rDIu;96jl~i5VsS@vT9fGzi|fNlUyX^yl!Ib%+^AT*KPeW|<Z_Q7rncipAeI z#Nw#!v6y0iEJhzAUG{7&-n|lw4{ycd$@{T5@mVZd-p1md&y*&q6??kSysa1MlqsyZ zAT6!kWwv5qPAi_yOL}P`TEhvpqCL=>PYEklC~L*Cl}IP7ZpD|iDP03AhBl@7<(5{= z*v^V!ovgU9s}&FQu;R(yR@@t7#W{Vg*mj^5QxB!}qY})0*l|n#0~hI_y5m z^MDom9isW|BUX$(X2sSgtXS+6!9PR#_*pCVId8@6q&x4pMDefC{Pa}{zh=dy*RAM8 zdUS(Zln2du-ynV3m-K1NUDCrzr|x{8=Efh8eoXV=;iOx)d`#sh{o4O2&3luMeS*wH z(z9#Q{J0zG+S|yqB7NJD^zFH1ioCJnelnFw_dZ3Y66xN1$ppQpa5B!MgLfozh)m{> zR1akKlkp*4ydIgEWPT;%_nGQ}%n&kL$vhyF;tQ>>k!eF_IGGh>j*@vm#-4QV^kfQ? zDNm*`nJ#4dkQq&8CYdE<){)sk<{+7qWG;~TmCSEs?vZ&!<|&z%WL}fu_3QU!K9b>i z{m*1X&u3l#&-8uK`{jMqDI##$AlINOhj#^Szpsisc{`)X&Zq}Pa_`I%JSTDe;9nAt z2(Ea0W$LW)g1 z64LJR^^gelI%Lys`_P5Wy+a4ZrVFi>!avm6zewov%_T#F_EisEP_bF)hbmn{^PjMW zX8wI}=(LPuLcdO(5?Zy|oY3K=mxiwFy*6~qgKeS9rtS~zJLqI+=$gx+XH)+kT4m?c z&_(k(j`R{bozcoTeQu@4s}ncAuvB#V)v`R~mZe?fT}%JNk1X$Vy|5gf^49V?#b=9AJ(00AV^U-9 z8wX?PS!d(@W;erkk*9HSx{pz6N^+y&j8ul-;xtCzt?7-?=QA0l-e)ytXUS>It(Ds- zH#(m&@nivGVCuq#U;ALA+HQ-HCo>w0hZZ*uyenl43M*&ad0f%B+r6qWC{ayg-=sRm z+(HeEv=;u3Y~Tpv_=Hi$ltp8VJln?^LoQA*R=k;HOiMM@s0`DM!)<07?h|Jj zDfiDY?tYkO#1vX+TnbxkykE7{xc+jvG1Rikcspo~k@NgoBVDcy#yRUIqw3`?#)#lw zjA7Gu80GDD8;9HNHC!+3H{8k|GLCIKVpJ-8+!(Ruq%pL>8KcztbH*>mMdRgx%f_AB zzZw(oUpMUf+%j_b{cbpIx@*j@_rUn@<&ojM_^ENa<_n{S{cB_7=C?*{*AGUHyq}Fh zkG>km>m*WvTNA4u8I!6pgYDJ8XAY`n11I(QfV1ioibJyg1po+?QaZ?!AZ zN7Z@dtM-K@S1ylJs2m+rDZj_5)$On}YQU?s>SJVjRVGPB)ox@a)iiY$m3L8Abv!7$ zDseD}8rdM1TK3Fe%@~|VHO-h$z1xyswWw1-&3;`_t(q99#uN!sC9V`v2l|Alv^g!R z*eOE=M}zv3v#6SIp_uwGxP;0dT1pjqQd-&1FRKJF2L>oz*s%E^6QXu4=;J?kd-c9%|s&UTR^l-fBdXC{?6fj9M6IRgcH?QSFBG zRr~w&Q}&VlRkrW}Do5Br<=kPAI@)Hi>e6b6devg6s@r0in%QEw+SPJ|+S_`hTGVco zYTs$Ja_u%o4evFUy3}zh=fLr*#K;LsO`52Z&7PzVEuE|yZkVEu?4GJpot&nMUz@JV zKAxfcKhIS6-Djx*8D`U-fjO#Tskth$-aOT>^L*86zyg(J`a-qs=S3?2k;N+d_7XMs z%ThHj^>P(mc!kPeeWltOwn}9fwOTb?u|{=0_OojIWUb2LwO;KkxIqQh-l(jRo7C)C zo7L2PTU6UeTa|mVU(^s|ySmhBhx$5tr~0sEmpXiBw+i#!tL_)wr;3E_SM`26pei3f zs8W7Cq}B!;QCV6XRjno+Q@sx#S53d3P^k-_Qu8~UR(A8wsJvIssyxZgtB;i~sA)qk zDwn;NRC&8AGy`{41xNj=?rgrMTD-rmR)*YE2P1E()!Tkkt-sz@_lw_Ap@Z+Lx<~J+ z;yw@5`??QR^z29K$i2tvPJyTDXw)+mv;Vnz@BLC?<5#N6ve(N0{Tp?>%sXXFey_US z{h+!9e^Q~tKC8o5zbNlic93be9Zc+)2s)-r3=4NBhLW9=KqkD_6CxaHvlLMqm0TIVjfY-p3;Ao_RhA&fr*Rs@* zsf8bmO_K&1pG^ZpN2UeuGU?!rU3v)KnjS9n$N*;oGD7Z08R5pFOz^x#W@wZ#3uON_ z3zVOh6%NEMxp(Ox4_g-g%(x={&G>d|qf> zD<4Fr%n$c2<%d->0^oR)0#GVTK}deLAgE=9;FqvKm=IVP_Pj3)<#q%?_JKv9L4{zr z;~fGAE{4F@S)nkpjRm^qH(=RY11vigWEcuiuR6lLG(~BStSH#8E(YTwi$nKPC19~v zNhol&BzP;|x)M?;ubz7agh&=>~4ZVa7{G=W)jnnL=BW^li9b4ZlE1+@I!0({T41dkQ1 zpyt5V@Oz^+uq&u7-1Te+b?>(W-#zUi)yxjirdLP!TCEe@$kQ2Iox&jYw=f9Z(FI_7 zR~X)_8)T^29XiI%2MvYB?}x(Tj>EwF#xR&# zV>lE&FdQ5#BjDl65%4tgNbsIK5~{n7f;HArknhzfIMjAD^!s%*)#Dhbd|(VTHO9i| zHDlpw_Hj^p#yB|UJs!Fa9uEaSj|Z>r6TtcY1jyKAB2+&&5$05w1a7-0!MNbbP^z7$e9 zEQ8~HmcjIo%OIxba_I4VIrQte0v6m|0lzk13I5ks!iajSAo00XFskZm$ai!#+$ysM zmhM>tgYjqRwe@F+F0vLTtX&H`@~?w0%ho~Foa_8)pyyF72z>6?#$3?h=mmuTLOVFk0 zWjL_&GGs4y1xD<;0w0Q9g)Y0V!lUA}FJaHG@S(&t7{2!!WG;0bcJ8|lElb}3j{`U0 zmohh@`@x%#uiPzodgvCcFaH}@kNgHzD&B^y$8N*tO25OECk4`3$oB{tTe?bEtRsIfS=;0b}pKfEDdu!r_N6;ZDa_kmSiL$Po4# zEYDs;?XGX2%ZoQKwEJ6_^Xe^Z>hTVazj+6@dcB8N@7_bw$PeK2@dKof{s=ige}w$8 zpCIt-CkX2E83Gf1fq;HrAZL=VkZ!BM+=P-65ykQfI$Cc&F!l3?(VBslV561?V=6!VlzioJ#=#T|!|ViFg7 zELq+j`wg?lZHMjgg^L4bt>Az)hC5*F5eHo0>WBv_IO3h*j+p4EBc^n7!dw-dFldAm z;!!6o;pU7bDmo*KaK^x+&X~>31$`>I;QQe&c;$!-ZgO?SF%@V}?{HVlf5a8vxVYh_ z@@^PD%nfrNcEc;q?l`ENJLVqhj)xDrV{<1Dd|k!^`wsR%#{(WX*ufL+N_%3rfu4A6 zuP2sB>VnJK!_nc%u+7?J81y0;ehx^E+rpA#x0T5;}`JW=i}yLn?G^oC<5qNQDzGr^4f@Qsd{^sWHpM)QD$N zV|8yotY5_s>y7lo%18V##5oP7E|UhI4M>CAcBjEuyR;YtY4NwHv^Z#UT1@{oEiMmC zhxxmu!$qso(Hv1a?CGB#kGDyWehbo*o}V7aX2?K$R5IX|sTuI;`3(5hHzV!4$cT4F zX2c_hGvWfrOxV3-CM?`H6F&SU6HfY&2?L8{#{JzhV};e3ao?lNSTI)>9M>uf-kFmH z^Igk=?fkOhd?08l@=aLOimd=LT`(?wQwr9g`AF^R^P>Zj5`}D|#5vy}y^M|<* zviqZJGk-ih-5(>*`(s+~+_f+qt62HSgryz|5N~HPcML7&lbP}?gjB?se;%iwjg?LEQlkY7Q~M^3Sph5 zg>c@KLU`?DA#`#M#LUG4(Z6>fW?B=7j`sucO2)!Ct8QVeHl{GXI8Ye-el3h&gMzSQ z=OEm_APBvF4ZF)0CjtOirup1Sy5D^1gEbLZn0TsnWMa8a<|Mfliojixn!TYsm zHoJ$(D;6HEFvs*O<`~q~0%hhFP)oN!%2o>;X|}+Zz9Q&2h%iwug6Vz{4BJIe)Dz=| zuNZR|aNmA|7^l98VL3)XZKMF@)dJkE3YgJ_aUV3p-eiWF3WjBO8RAq3BSHMPJVM%b z!j~4}z98Vd9niN3aNGr?KI1yWKuZ)kSt43)3G+Hj{CHuBt%I#Vu2wiR%?gwETVcs7 zD?HG$hMJo-#!R<{`F?Adyt0Od7WXl^*kD~T*CXm|aPzqhTnE`=zoRXbrM9r!WsCGy zTg=q3!%SN{q~+PccDo(AH`!sY>Qp$eskodr6=oGvvAA(6ZgsWCze)BO6l)KyRrcs{ z!5*#O?XlU&0iJ;lcr(ud$wwXVpxpuEwH=Y=?1+sLM;xf(G&`bF)d_iGCrn9pLhCvw ze2Cc0+r*8+LARL%WTZdSlcdZ}c7MgH}%;td;seRON%SjXvDV>Vsv5 zzPRV%i>?x1Xm0hzz#G2!^TQWchxuWqiysW~{J7TVhoP7JP|)dzquTy>Ve5|{ss8w~ z${!C-`eW;Be+2anzz>T6$fE-AZhio4_61-@a{#Kl1>(r)KN8-6^`9QA~4k|0%v0) zFuEiHMKuxFb3Fn#K1JYO|45uOi$qyaB!Xm-=u#1hC8s0N<3%Lmm7}oBI0}!PqwqB~ z3SSmSp=ECrYHmj%`fC)r4T{DB^Jx4IjE1))8q3#5I_}Uf&6UA6~8E_xBZ7kekVqrXsYek!5vHDCbMz_VHs%sonhsD9) zDh>-G;;_9q4!btSq3n1ZGF#$c@;eUq2FD}TJRU86@et?6W7hI`?B5%YYd7L?{e3)t z-{n~t;{@2*C*Vy?0&-^XX*s`tJOK-u5^&^u0&etA#El7wIOvv$xygyJEJ?)EEs02J zNaPx7BE-KEQ9LjSJ0~XLj9U^Kl9Et8Ckcg{k}&B+67D`sLd4f3-072y@ne#aXP=C% zQOP(aOUCgv$*9_wjKb?&qk6+Ns%|Mr7@C47<|%-83QAH_P(L>X_bOA+T%UqVcT-UL zAq9~=Q=vMX``3k3X#1sNdU`4vOH$Eu6W6ioQ(=B56=UD0qL)${?hH-C9J4g&d!%7o zLK+54Pea<;H0;@%hL%fd`1F+XGYw6B(@|@jjwGve^a)HyWkx!5O42c{JRLUFcFKZd zcotq|XCb2`3vKJOV7)gB3(sYt;b9h@zR$wDF4<@skd1T3*;vN1;pCZ(j+ku73bOHI zK{mq5v$4A_8}H6#W5B~~7{BBEgE~}$+L*|S_^e9py0#XPk3&x2$H*W;$-p1=#qDucyp?p8a{=NWT#I z;|gITF2sNKh1l*>2tF zLd1M7gwel3G^-Tx_uL}%8CHblV~e0BA#<7!oQ#*Oo}UlUuF@Kq(w-dTZHIk zMR3?qgrVDu@Vu^wKlh7ZeX$5lxA@;472(mVBG`BG9L686Gb(ZIu&)Gx+7c9ukYJt( z_n%tuoRp0O5v~%L`b+R9LV|rs5`^SP@LeXs%()VDS<1bt>m+F0EP+8S*BTE>u<@h> z=Pydo+9<)hCJEZxBxrgk!LhFrEcs6YKV>O;_mSd=rWAhqQoJ;lB4MHwEg~swY`6~T zEX8YYu0w|K3`h*uBvZK8HAjjKQYqHX;#%cGDUw%k-EuwGGPg)^u11QSeNqgpmtyB> zDJEZ*Vo#$KdJmYH&tbLq`?_1L!+JyM@Gu{V=hCS zDc3Cp8QQFQ-o#Oc@g6dq^OM0XREDe3Jcp7b!`2KL6!K;8kjb!OrVQ8S$?$uz3`17Q zFnPTUmYZa-+Af3HE*XaHm!a!X8SbByq4Jyz5m#gw&?v)+doqN!$k6$e>z}Xq`tM}O z=#-)9JI}oQ<@@d`N3$~5Hr3?t(vYKgkQ|jdavar{5i7;!gx6jnaZ(IBrW_U} za^x?Rqh^U5_g2X9bB!Dt8@TtklIx^fxj(pCj$yTO^w}%NxBYV5J}gJoF*&kNabNIR zzKsiVY`Y?d=M8@Q7S~|!$)VT8xA#bnu}}H3&$&MPT8>$7xgOiWy~mwgi~TA`>kl~$ z{>TyWPmUE`i_y@%7%zJiL$OyewAH!Zs8NiG12~$+7_D85Aw#)tsn7Mf;aod3tQF4z+4A-5xhL6?`+;4GG1HBEiam-E z?#;DV-(u(oaNloGF|LFZV^DZ8LL#|OIJy{jWBGasT(?XrMrcYgiqrV~44wVi9 zm(Sz+VFA}ei}>+Kxo=p`HQZ_38$E-2hG!MSZ%#2xN{Z2SKG#7P6k}~E-_GJ<=q%;i zUdHv@6~(Yv#dXKkT;p8JHQq9=ldk6)>_&dv<@}f`x!$^&Yr3pX>zap(p?QR7n2z#uujj{njIV#3 zYosTOVb68sSeC!UMYssRel^?U;fE? zf4vxwZ}4-!$**xE&p_Sc*X1_9mUp;*e76|=?{O`bbNoKv=L3E&4~sFpiF>^{waxtT zYT=LNBktYitbbe#&nNucT8mM~346--$2I9)9IrO6zjBs6FUGhRTvz9Wz2wKwne~e6 z)vvkloHL4R)pZ>6cCHa~gtvUkF?+`!Cyw#^Vw7_GFx| z*PQd55uN=1gY%eU{+VaLIIlS3FU45IdBPd@m22aii=2MnxQ@=*%z48Z`*iE(o^rIf{_Vvn;T+?9^Kn|31=l|7v}=!G3P6%*MI!~o->8x#0lkOaAt5;aJF&| zaL#e=aN0PZIR9}}|MCATjseGnBj(s~+&O`qXif?zha=_8;wxM&Rxy}P7CJ==PBno=OyP2=Pl>r<3!U^Of^IU;cN_56(}{ z|2+Et)A0XK$N$4`|4+;RKRy3{n*RS+*Z;@o{g40C@&Er$&!b>cREetT>WdAg9&gx` zL*Lg=87FO@vi8()voBqP%*?wjG;4dl%WUtqyJjf{3g*jV2bo`5HQrp~u(P@6r3CY^ z7cS`+j<2Zeab@Tz;;*MMrF3i|83cEN*CxvVe)1#lDla z7DKOkS(N%jT6_-3un2otY|+*}*Ft0D5(~@9H5Q41l@`m~cUT;lxzFPM*JBo6x1P7? zz2c_Duv1MI<3_!(u( zEt=3VPt>8hNHoG?ndpA*DpB{->qNVTl#3cmHjC1_Z5Pcc-6_%>xmRRx^MI(jTS_Uy$7Ndc8^3)3!jO$9e*Wi>+@c;Cc9H~_QiKmeEeUL zm9&d^o{OTm)IeG6qNpN1|F)O-caysKZKH;G<;?-&-}f}dS}(N4Uw#c0muL+@^f~Sgm-E$PH1h|SDo_dJK zXZwi#dIgA0YlFpCeZ$3CO3`Ay6LI3lvLvyWU7EPKf0j7%ZLawDr9!dG9+}wq#x!w{ z%QM8MFU}JCUzsC5-&i8<+cIBl*1k||_Ggh;Lu0AY05jQNX70-LHTWoApC*CaCFaCP#pjdz0 z5wT%uy;$+%aq&^VQ)0)4)8f4*=fs_r7sM)>m&L!AUKO8JzafrW+9-Z9@Q!#w#XWJ* z*oWfa6V2jD-jBs?Z(GI5C2itMMlZ$xuD%xc%6%*TsMjH`x%pAdW_=cK6@L>y|Mo-t z>%edEi-P~ecght6z3yEF|CDY*;ax>xj-`?yuT>Tzbb1P7OI3sy|5SyN95rFU+ulNH zbRXfvqrQSTsGpGapuey@V4$$EX^^lyY_O31TuTsAbcByzhX|$9b$RAPUzojdn9yos zAQ+q(A$SFh6cRre2}vcR1fSt!1fx@9g%@Ea!h(O}1+7gJg=JGG3!mSa3T&mBkO2!} z;aicgbgdxB9ZB%{4MAhKm2f1+MsU!v6HeWoD(EhC5aQjOgw<*;!tU#?!k(q>!WutM zA%2Lrp!?ECII+i1u#*J{`<#P>o;o3deMhK}d^%jnUlS=LWkd_MPO(CF!+4>#TcRMe zB?)zBQ-t2z(*)1b3_+5UB`gTd5oS2#3E`#%!Z3p(;Yxq05Tq;@ZvHM72L7BTO!+!p zaO#{Pczm2GIDVKVn0}Zo^!qqRc=2hjQ2nJu2>&rp=<#>Hu%+ulVPelxp{~y&VZ`9Y z!h&H-glA)x3S-Qd2?@5#g;ky_goEKLg-dCxglqEE!r8@Zgq@XZg}M9J3EmgWguai~ z3k{tcgs7h7!dJZtp~#|A_~f-o2u$59)Rk-z{%+YSSe)J_#J5%nbN+1?R_pE%)>zgE z3!-)k>9cDE+v;6{%Jtns!{AZfp#wBmq}dE%gO?ad)UYv2*V-{z<= zJF{NcTyad;d-J%kx64VPV$vyLT3mzRvF^0c=f)YKLGhdrDLyZBW?c}nYAytndL05&_tF8&%?pzm!Y1|Yhcs2^-m);VF-nuRP>33JSe?JnI*gg^NEov2dH9Zx^8@35H+0O;Lh8Mz=KCgrU5wC@|J#U1Hu5Sfr z-*>|E?eB$@za7FeuaCmi>QBO2h0j7$z!#xM-B)2mukXV6_#cAtnV*8X-f!W#?2oXm z<*(o?{1Xb@6d3*~Fv*@SY+O`V7SO*N`*FS-Q!i3v>&JFyl~21f?Nv&wm$NdCJ_E=2TY+jKP8 z?*|&}{K|ez*}FeG(Psc_zdnGKmJVcFT?Vnqy)>EmRZX^c;b2zjs>PJlwOQ*;Z8m)iguT)q&vZVHXXj5$ zU@uB1vVzb_ta$8X_WSQ-_U^hV^Q@S{MrE0?0$Xz?8f3vT+AWy&2@w-56SJ#v0=q3{ z%)Ku$dPS`AI9S07OLivNip{XGW(TxwSjZO}mUqpTDOTArrRh_dG}xZSPH|wT`#Q2^ z?;Y8_OHQnGn=?B+(}np(y0Qegv3En<*^58!%%jDFjXUParmgp4b~0}!3-e({mcGnx zm>;{R=+By7`7_Te0ZggQ^gWzaJ&s^&&PTG} zyP{a*>S#82dJMah6w4HR<5)T3*`84eY|_9)X52N2E$K*NiOtDu|HTxRc`%h#Y)NBQ z%hQ?9j12Z5Gm~A9%wki#vYEO~4hx)|%LW?eF&oW%_DrRKeg0d(az7Qagcn8Z>O%?J zbY03`pOLYOBXV|WcQKpbJ&hf@K8@u%O=rpHr?Yj|Ggz0CGgyUqCM!5Rla-jxVvTjP znCJM}Ol8+>_IvakHe$ydHpgf#)2o`xI!BbSKU+!|8O&pcH_u~9!{;-f>8_@CB@K z^8yxau#k=2x{!@CEM*B*rL4(l5u3SV5sMkKn8|i6X4l6rVSf9Tut8Invff9QG7^@t zttXc;8=K`!>%ww2(s>0-y|IF|d#_|0AFO2aLszldXRDZU!fLkm{c0AKy@q>m*08eT zwM<269ow^T9b43|jBQ?5#y;q;XIa(j*_a6%*pMR|n4Q%|w)N6RCiW_4J(|mzT1*A^ zDOIqed6g_$VH2~NzljC)-^{8uZf2v6x3HJ{wy+1Zl_^}_%EEoOv9GP$SVKw`JNu)G z{WohnOY2+B`fsdepGNIqiidYFH@g~k{ZWfzmL-NkH-b~7B> z&9bKMVNG}Uu!7jV%=PPD7BIVxtr@V7sc+lI>Zj~y8!zl<2Llc;#r6Yip5!32Q9HyY zmLFmP6ArU|XAU!4zavcb%@L+7J<2T9>siI7dd8+4V|^|kW13;dnQ!NDc5%)LmZ5!; zx$Qa0BJEDG9Zjd$$czTo)crI&U3QwaPB_CRUOdB&hMi^kU(d3Hh3DAf;pf@gqvx5_ z>jJZGzrfgxi!4R!5`XM3u_Wiq%;NcFCYD`c*#ob#*4fNAGGWXk=TnBm?gR^;Byx^^_P;|p6@?dV7B=H*9hWYS|+*YgR>sD8qt z99vn*n^yL0-cy!7>KXTsJ!8XD+L)8tbGCKYb2i!I1^fEx1#4galJ%SNilsex#r_t( zW+#WdVf#^7t?7SMnb#o$!xYH2-4@trcj+Y6Uv*PJueCx{%fC zE>!!j3r(=@O4nC+rCIO0lDADa60hZa=te$viZrK8ks3cK(qxD3v}a>?vi;hfI-Qm1 z&?Y5X^;3yTJ(OvEl`@_EPno*=^`NlY9&|&oCk2M|q(A$5(jiq9njft~dG#t()K8UG zC9BevGpeMi(~D#|z3A7~UbJL{8j)O$6z{81n@MkaSkjwbKkZHGVs&y`p-x-ht5bjb zK2%oGheW^n&?oP{)KJ@(wkvB;Rip-;sMnzP1NzaVjDEE2azE-hqCc%J?oX_#KmDFO zfEpJMpcCx_=#1S!YONSZ1O5!8NdG}}u5J)n_SU4^iJBxor%9IjgGoy^m{cDQrv9c{ zG#puHJNBkgsm zbc-&}<>^sHxE{G2*P}k#`qW;aPtEuA>G|Yg)NT1N5`7v*bKQs2+uGq2-^+l0CK=Es z9(;;28bRiBN08ym5j4uqknFY?Qhv9QbSi2j>7E`*EA@>?f4UK!Yc(Rdr7^iz7}FGm zQ8X!H6giw4MOk{IY2UQbr22F;6~Zw|A!IkX!DW@6y7<3CiqOG!3QVOAk9fMx@Z#lwoIZGG@05f zCX-(`Q+g0=4K}B*Qgafwn$s#93sSDKpi&hP z8K;S;xlu%$OvNN$E2fOUVk(FfXyrM9E*LXXU&M&VZ|Sigw~^Enb<+bKm<5u(0R_2P zlJh=G^47GXbeR=ZJhP%#_SR%wYfbw!Y{;U(hHgKyp_w+eWM6Gd`s#M1o@+-M&2}`( zYAX3xO{KMJ_Vh8^o`Rd~soBzj(yJV3aBoMtpW{f?&5pFh+KCocJJE(d&eV|aOurvH zljBqus;PCMVFO&LR_aPF&s|Bu#f>iRbE7TV?zD2IJFR=`PW!w)=xMzN4Kwhhf`y*+ z^ou8jhkDVcb6&K1oHu!{_9k5gAL^3mL*E;HNI~pNL$~;nyP6-Z%=4p;Cw>&{=ugdc z{*<8;K$>#`==O&I+8h{2bIt^kbZijKSsg@Mx&+hRWS-5v7fe}}A@pcR2!#v?r4PlS zw4yzfTz$hx>r@#192HLQR)$ljLIkO%M3CA22+FsPq|3FDWHLC4w$F;9$seQWR&X@U zx)4o{lVV7(Jcd+NW2r}eENQmIlGr_tGV9~$=*V~)up*vjDkM<1)C5}nFoEZ06X|PR zBAwDrq74g^sPtzNEs0B}t+$ius$~i(?Mfjp?Nr)Rl1lpDQfW(c8d)@^(NjvNbvx53 zPAh|KOEPHkw+u3i$t34nnUranMb*2q=(A2Xc`V4L6F;+wCFIbJdpX=EnM+3dbGa`s zk1j6FqkRhbv^zbYjz7+)N3I3b`*;C)j47n8Wrd`oT0}F7ib$osh_(bu$m5cP)GVab zyj@C1HDy#&BBR0RX&DR1XU76EdA@)&hAyPP{@l~Jl;^0gaDQX>Qu>NgQYtDX-TkFJ zXjw|}MvG`w)FQgJei8M$zlgm0E~awl#q@RdV)8t-m=63}O!}rvXnFb)>b+wLEq=a) z2J0@R>cFLBwPGo?USCRcdM=~Mw#(>^d>L&$vWybH@cSmqNhxVLJ=wCHPCi*qRaz@( zmG25#uw(_5Tv7o= z{H3eu+11r#)ng4+*{q>{#k@E1=o;$sZ4J$su$EL(*V5YUYxy~^r7ODYC@pv$X|7&J z7jLbj;@)M%oXV){oHDxBP(~a7mQlXNdh*R(PvX7nY2^F$G}w3pX~c3WH<0F|4P-EQ zBboVbB#)&VDdXBkTGg|hzmJsDx9R0%a-y8lf0grVT|r&4E696y1?_yx`-+SzDI=zm znky>F^-(3A9lVLG{Wj70Wt+(J#wL2Ix|#AFHdFuEo9SS~W(xmrGpUKU(CPdwB-_7* z*rzR|IBqN5OxjADsFC$fvG95d-&jw|kLqc^_A!bHI!1%n z9-~|LkI~|R$H~K&=k-?{rzf|LQ*GZ9RP1qrd>5Y}lj|o)P3Kr3c6(8h)as!=#i$8ee&<)^9r_-Ru5dzuV|Gvp*W zLzzd<(1xF9=&Jcy`Y-=1O+Iv%(!QOg8q;(1F6SIg*nf@+KcAzs6VFq>tn(DN_dFf@ zc%BA~zd%{(7wFcm3pAzU0&N(3k(5&}Qtr-+^z!XR3L1Th8j~)O%Z^KQ`OPJAHoiUd4;;fbC2t`D>U}y6}m9uD#gTJCB>~*Y5Vi5B+ZX;sBdif_G1V!cM{ z8_`JZ<&AXyNh9~H-=f*!wjdXJuk-J^FK@6nIP_efdyK52&Er%~ni2~X~mzwQIx zzwm$-ls};AClBbN?n7!1e@MM69@3=NhZL;WM6)BBXir5GJ#K9xHT`BnWHV(|HdEEp zW_qmOLW81O$ZJyzEqc~MSBE{KUeS-pZSx~q*7k_*4}VNUVjff6mdCW``D6NH@Pr&= zpU|4EPw4fFCnPd#rA2YA)V8gaEMB$J(veT8J^m@#ZGTFYub4|eKO?>N zXEbvZ?_Ef0BbS;s+V{4Nw8uQBSt-w{W9M@UdjFg*jD10q(_YZ#T`#ELhZi*4z*vvyjW-%eVG+iCrecG9(YOPdPclHt*}wBy%XG7-O{1Cn^(Kg z-c#U-_w?+)_mqqd`dZw<{mvbv(&YoKwE94LGd@tw=?`Sq?IWGF`A8nKKGLJJA1SH( zC;D#piDu3DL>d=9QH63Rjdkdx`jSp^y3|PzdVZ!jr_c0d{%4wbC26;G`-I^Quq8u>z95b<6Gb8pvHHy@%~OXmVc+l`GZRC{h)q>e$od2pJce^C+&XllgtPIqEmst$YI?ty3zED{Iq{lOYm=s zT>qQD4*sU3A%CbN^bcij{6n7~|Djynzw|ZyFXdJ6Y3pCg(f^M=MgB)=oBpG>&;Fyh z;s2;L`X2>t`A4^(|D&xM3V1qE0ovZ&hn%f|CCe3XX`ceR-cf+)ivqIxcR}^!E@<`X zf`PeR;Igs{rXT2n19!XN&DSo_8Q2wWQ@UcBUsu%Sb;Yw)U7>NPE3EE!MaK88*f6LY zu9$VhcmHk}UeFD0Yr65Sscxuz&<&S=bVH}6A_iM10)dK%EmXw3wTh@cqKKOh74i9} zBKm7}$7E4=_yl!Fc2RdMUDqA8N4w*4Q+K@h)gAw|l%Of*-J!usaF8e=tV{_x^-3sd zRzlftCG65x#!0a}>w7$Nk)n2;WrB<%r<^*z9j z^?+py_eKBVJsmndVJq~6bx2QGN_#?B-xFrXdSXILPZiB-8TQ59(tRrr;uLa0}TezPjN|5n8-tzNh&>V@q=y)dV! z7oyhn0v+vzK~255F4+qg2CHGcg&Hyf)nHwyhJI_+&~{i2dmgAk_CpO0n!VB2yf+^B z_eObsZ$z)|4Z}md@%mnGRDJ7>*n#R8HboteeATfkR~>FE)uDJm9f$9zBk7AewEOqL zhfR+CFf6ej%1in|dwV~u zywDG7ulix8Qh$6O(H{wR{qZ2CKc>#=kGjqMp?#)5WRV7KDu}`P8V6Oy6B#wixu;Apq$hSxKOVRYp%B%d6Hsz<}{^!G4mY7K|8`EW@5hGToqaNJ%t z96$FA$B-MtLGOnnSk(Y|#s(<0H$Y{q0rt)`z{yGjTsmohn~!)OG)XhS@jW{7y2Th;zl>2bXcRgpk3yi=D4tQ^ z-uco|$loyvH!qBW!HZGI?K&E#bw{HY8x60Z(O8i`8n;)BM(?`Ou)8rD1@A`l?)EXb zV>kwXY{o!8aty5HV-Q|8hQF4M!J@lkP~JHPwd!MWc+6Owa2$(X9tY3gnOIiKP>8uX+OL`~=<|G67xxO+dKzL>x4m2o;}+2+Ej z<=KEwrifCT0)1oN5o$XH%Oa-0RyqZrR!_mYeN%uNQ}CpH3M5Kq&=_Wht;`IQ1I=(E z#|$=0%y72G3|1G+aO9a8#{Or9^@Gi!Y-)~F4|Ci|HpiH`=9s;S=Ln9Q!|0(ovcH() zsJaFIaJzuTR15AswZJy11@5i3K$m?MFuHC5r#BXeR}^8It_UkcB5d~kUstIJ`xl6C zaGMDG8bqjR5uyCM2#YktC>Se7n1dL+fEn6yF+Q&m^Bx;9R$S*DMsLIzrYPXqPyrh( z1o-#}=$sd#F8u9%+E8GRIne9{D5L`Va{*Qf z_|yY&cY*8=fTX7-iicZ5#w?NNZ;7N#O9U;jwkk zYh*WBqy4irg4Jwr!O#XKmNr-#XoHR{8`v$h!J4f$czMDG;~v-`^OFsBtJvc8a9ijw zTR8jKA}8GzYfEf#xY8E4j@shoZClh?G| z(jNAf_P8BjkDyF@w9K=ONIbhy-2b_HDfREoCprh^x>yeI#h9ipo9kDXq5!>cEVsE)44jtm$a75iJM{NJ+ z$RB4X%rxO$==M%<2zTP|FHZQr$O#v=IbrDuC-~lTLjMjYT<`9T8AF^g!PFT|F3yn0 zI73J3j04M^;ZWm@yQiHI+T@JZPkh?bg}-mQz~0;i``lfi74HJ6+yxI-x?o(b3yROW z;BvDI`h0eQhl(o}=)2;Sxhp=pyYgjSL2_4wu5?A-PFKu3VNzxPg|rVQ{q@KAd#Jse5ji|K1JmitbR?cE_a&?vOdSV|2JX?&P|2 zFQz*NY<9=aBksUWcU*bt4zIuNxZTeK?xQ?#&eDT>ay?L<>H)=B9*AD&f#Z8T(C2~& z!X9~`>az#l^z?+Go+m=5cw(`OC+ed-d4|msT^4&nXR9a1*L%XU(G!lZJmLD+6VCm- zU}NkBQ+Q#RuNQhId!c=r7tXKpLfK9)B%kJgd%*K1@4axOn>R8Cdt-!&H*VQ_bMK@# zv@^VMXtp<8%e?V;k2ey|d*gkxH&Q-%Awl79Z@P++UUqlD{qA!nX{utx#kAu0| zHUQxP0a%~H?@tSW;>rM+R0qKKcmQ%51F+~t0Pnd8z;3lb9Mb3c7t=r-a12CEXducm z12JcIAd=Pw!l5=0`VE2jd?yg6UI$|CpFr662|`zcARICaLY#9D)Wd^NmlXu}IYD^2 zHVFB(LFm>HgpxZ!P<|bR>A!>UrFSr*hVc$F(_oBt4947$V6>zMW6aE82=3^Fpu;2tU2Q_p$B$=d5<{RR4Z)zrAyC^Cg1`Gi@cKds zt~Q0B=6wieDulwXUnqtdhT@HRD5{-95fjF{(K17EVP+^YR)s>NIuyI>LoxMwDDJn0 zBJy)6UUm;dtY#PMLbJmWJDX>9R)-_9IvjrW;jp_Fj&V=Iq46mkAG${1 zeE$fnHjF@&c?67{BJe6W0u`wd@F|YqzV!%f-xLAI{SkO^j%RxAM?mFG1eX7bz`$OS zSTQ6LswR<;Sw`ZuXCz#sBT<_Z38gta=d(HzRof%+;YcLLUx`FYOC&bEk3{2tk@&41 zg`xUU5GF>!$0iD~K2gYwjY57NXKoZS)YHTW3bYZbdZztQ3u$1JUSuJ{t4y@$R@+(U|w0FQXiT z49yrc8O4AsVz9w62Hyf>;E)u9l|?aVo*x69vKaW+#9(24431ujL0fYSl-|W)_#d7v z>Jhc&VMv5n=q-dH#^$D-HUSX}-U ziy10$n5-3tR^vF#v514AV;mX+;^3PQhqnAUq|A*&$Er9aZ;QjT199*^7l#vf;xPPq z9A)p%XnD2$0IK+9@|pmaZ?(PFAL(KQ5KI;JL18P#KZAo zJUs4mUdF@uD_>qQ0Ve$tpgAl7zsD!=??VaL-i76;V3aVXFa62#sKjKm_C?^Hur>DSnQ3|}uQV_H~1tAAg z5O_KT9yd~8)slj-Z&JADIR&4)rsBGKDmLq+BFi`x!jx1f*rf93b}I5iQZXtq758&f zQ9L6R`ioO>yet(y+f(ske=0H?Qt|y7U#=;Y`?*sQ|2Y-+{-wgQR~oixrlH%2Gz3pb z!)}&_zm93J^Gn0rs5G2SOT(X{G>n~_hM?tXJb#sj%9=DBKa_^sXVTDiBMlwRY54q# z^EnOg|E1xXD(@s5l#Zjr)3MPc9Wrq`eC^X=?46G9Vd*%Tl#UsB>A(zrzcd}yYt!Mk zH64HVq@(;;I>Z;#aqD(EqMxMWLwh=Mzop|_mkea7W#E-&1_BH+aKSqRO6f;q+o{3FbJO?%+6SKx=^4}LS;W;%ECZ3t-5t51KIGzj3;_58?t<1uhomucdm<7qHERB|M1+IQZ`=o$;KnCY+N_U#?f)vs4&mQ3~Qb_bIFFOUpAB@ zvT-Ld8)eyio-7;MbF*=KNjB!J%f{p_eBIh?Ogoef-3H$KcsU!cce2s)C>wFFvhns~ zHj;m3<7KxTgsA1<>cAYB>*b)_I0p)oau6!yV82}sl-zUR6Oe=TkvVvhl!GBTIq;Y9 zv7zSV;OJuB6}cvd=K^zJT$2Oa{W%Ceo`aP0IViZ1gW?A{nEsSc+j+0#=Nu&c$w6TE zTv+$ch2fxFDCyuB+k`v}6XhYqIuFa7@^HqBk9QT6hk?;~ut?_1W#=J7l80F{ z^RQw;9yTuL`MEOQbGbPWn``n=wl5Eh>hmBwlZW^#d2qR%hq29h=-I}zc&(Nn zUwLrqnvdQp`MBOUAM*z1!%{yVoksbn7@rRZ^L)HVJ{H>ZjGcQvPWa`+JuDwBvH6Hi z&BvRZd?ZTwxCk@z`FE*&TwRtAi*-DASD6o`YQD@KK2Fe~d<;6tmpjk1dDrss?@m5! zTkoX9W0dU*lzX7jw>!U7CgUV!$s1-yf?fPXLJ z`M+HS=-gj`>iPnNoaW;;T;h4Z8wCiySAah)1z6Wsz`Jn^aN%PC0=^gE`QHMhC>G+Q zN+Htw7NUJnAtHws;|-Vm_ptK z%h$``J)!x92$k{7-^@ZZ%qzsZ#f9j%st{Aw^X|}1g~-@mh&j6ov37qUs*V<-?o=TT zpXXV@t9*Kk-+#dKg^vrd?s*~RwihDvVaAqI9W!UyFdoKq{ps(wX?8C-<1 zx<&YGP=x)XijX zs0dYsd>h3@*gcC+=NDo7VxBczS;T)M=Xu0(oI}+@8Ai>y266}1+*Lx{JdAkJt zK1eX@Ge73C_QvCFlLNkbGAH$?@jglfNj%Om1c>Xa> zibYvctjd$3tcYhQ<$OAW-=D+h&zEAxBEH-*zWge_-a5YiM!ua*e0y7^xL++rT`kXB z?v*0!fD|T2r1*PGiVLUs_=jhu@V+QT|Es(o_J$Otw|O`0eJOr5Nm28dAKx=6y1$g7 z_Kg%??|F~xN1oyQBE`5LeEr{2g#MHA&*(A~EAj4F6`rG1lR>+$3>*8)FjP~9GHsrd z)Rkf3FrKwEl=06OGPI77!Fjw4`zFbtX(mIFNQQ?@hACD&FKNp=XYFM$ca~wEn~Yx* z86USzhJ*kaYJ+9?5XO6Gqhv^mm0@!NUoTmPUg^AtHjB^8m0@Lp496uhJd?|yI70@5 z**wQtBIB=FJeRphhS^JbK6Hf)TUN`kXC2RrZjj+*g$$=RbGFHFs#=Eno&4B#%dowU zAO8Uv795tLpk9XP6EZk8@GR+B88j})@ad8a*RRTWx3LVn$!=bH?Ze)5d!ZyC?i${_9{M_V^J<|*;4 zW>20CRh1*DH_v?b<=N1Fa+nU}nNdwSg0$s$Jw%QiJvsgxCdcd%JP&Hb`*laj(Q7PU z--M6(GLiS@PL`u{iX5>PJPRt8!jMC+Z%9LYWHt*%l zm7`k$@A@s`^Q1gGDwpH%G@cEe!M8t~FFRKb$9ZxjEa3UkQaQ>O^W5uFexA$uGArf$ z_fa_%*745Z^>S!#&EkJioEw$ z>Ho2JE^ty$?;rnGyW2*;HSU|xxUXBLi!7q)z7&o7B20AIh(?l)Xe2D6iLeny{QN=~ zw=5MCA>?OVTSOCK-N$|1|Ihh8pJ$u%?2I!3-KX6MG!IG2M&VmhLqzqWj}Eq2I;blu`b9q%-;$DKRV{gJy)>@jgSx_7gL?nT^#e*1V& z`d#C_>7K-nbg$h$6MOXQME3-Crh8et(!GNF((f5}qu&`WrQZhLpMC@R0J@*BJMn|) zp1y%)X0QxQ7fpj0}VH10F z7&Ng*d4PVS_XxWG^+>v3?sg}@wkaSYRc)JzvHRC6X~AF!E_(!Npw%) z$+Z6|)b}9ucL>#g8tpTb?rR-JeH>2r9gd*;7%S+0+>sM|#80Pt7|)=7j3WKcr2AP% z(|xKTYS-EHKYzy1eW2$|>~YXo`X8?6(!I0e==X}xqk9=EC-w-8r*b}NbpieU@dWDA zh4kCQ7tuYt6DRiYh3U7IFQ)sHCsDgDq5A_T)BT53mS0NuVqQj?Tu!=H(LJMA(C-^x zN!naR|F>ug-J5we-9LE^wVBGxQ|aE#2*q<6#qC;p|2n$Ic{<&cwUx@uM@g5tR1cNQ9-}_iP`*+b@i=My1l3KY$2_W+ z%DMANuLX4fCzXSqq_|KS`4su55{c8junXz;nW^-7n*Prcl~bRgdpoIIu!!3FEaeoH z_Ro<|DtkUp_m5I3T}<~IQ|b8vQa(vh`=wPAWH1d6&wzpVNKvRBop74wd3BXbz%s9hFz8Z2TqZPh}F7`BZ+Svd>ra zd+1c6RBEYg@-@YV$^}#&r1CM9_9@CMDwC+prBX*_n{TKsR4$})Kb7~X6n#q?QW-_% zCMt`m{6J;L?`VH27f`v2%BxgiA0 zrNyrlBPx4Q=|$x@Dx;``sZ6Ibo63ADbl)MZ9Vi}D3V);iQ`wtJ4=P7cIhD#eR3=lo zp31+e%%$=il{cw;MCE%bt$wFt29+JC>_g>XDg&t;Ph|v^u~a5enM&nmDzm9PN@XFH zm#Mr>WhIpqm0zh8{6YUWo65FScBRsZ%7Ik+QW-?$cq*q-8Aat>Di=|?oJxdBHI>_` z+)d>{DvwiHNaY182`aTzmQ(qd%9m8Wr}8V6mVc54REnro zZlf}b%D<`1rgATp`>DjJJWORSl^QDZs4Soor}8wFMO2=n@&c8YsJu+&6)LY%d5y{& zRNkUeOXY1U?^0Pt<$Ws4sjQ�hJG_d_?7ADxXlPqw*=0&!~J(dT~J`- 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 ALI3~& literal 0 HcmV?d00001 diff --git a/android/x86_64/liblibwavpack.a b/android/x86_64/liblibwavpack.a new file mode 100644 index 0000000000000000000000000000000000000000..c1f4795f638b2ca4effc1abe77c4408961710acf GIT binary patch literal 228388 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 literal 0 HcmV?d00001 diff --git a/android/x86_64/libsamplerate.a b/android/x86_64/libsamplerate.a new file mode 100644 index 0000000000000000000000000000000000000000..fbcffc869d9f10ad88809e138ad607a7c47289b6 GIT binary patch literal 1510464 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
    wtc$|VchQHeF4B(cqB((GwD?pP(f%$P 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

    q*~7T z|EJ2wvY#|a>7E9CJ;RlPSZQpXje5KXWvqzizn6S+-5a89IZyHd#TZ27d5idRHNs$s=$L4 zQ>;wFMP=&PrA%3KlxbprW%}!(OuKZH$?&rhZN0BV-_w++{|+TOIzx%x_EsWu7bWVV zu0%KPb+XsnI@$Z4o$RSfCp(?r!6vWkU}}6mBlb@_>$u*|Ml5M(3I6RY=i5Ja=fXdh zJ@X%ncmBtQzW>YGj{jvl$NptXR)5)q7i}zcZyS3uppCuPYGajm{;-=H{;(bJhlRJc zvS(LY*^ro4mgCXNG(WX49wf-dj^pbgq>)uV_`y;)|6oJl2diuP&Ss>4XOE|SXO0fv*{GM_*vdWM*rwj!*wT)#Z1DB3 z%xwNwcFXxI8&&y*mG1w-aKIN9tNMlA&23Ko{^D9z`|16*yH!oDPJrk>0AJb~qaQ7`+x#}(Z>HU@se^Qqd3a05*!S+|ZVS4dz_?-S5rf7c6ew}^IETUdBsora5pI6S5 z7L>CmqVoT7bk=cIHBSSln|r~)?gUXRRPLEoz{0@p7JX1L5ED^U1W^P;N<>O&kP^vz zM!FHC1VIoGB&9p=Z{PQi`P@3^?C#9n**&{wzJpf9KXJwLpP0DrC-R!g@S|%P_UtUf zm7}G2JhT+ApDD#_+)_N6^nLs9ax+&z*`fZ%Z)>QRdVf zzamsQT!iz)i%>MW5Q{DrqRpg2T$5IS>9-4T%Yp(7FZzxW&%Wc1Ro~ILCLbN`^3iQ$ zKH9bA;Z65EB)jskf9M;!2Y$m9N55gH_&1yym5Vp^axq#V7aJ0CQ0#gRa%beAM0Pf| z-pfW@n2jbyluz|E3%@SULhWCf81*s}C$7uHvvnEh`X&PtNd^|Tq+^LoI;Lz%N6)S_ zyyTgNvv;Lo@<1vc^i9R0eW|!{ECt^MrC`nB6r3!Qf*Zn;amR^d+%A!fYa)}7b0!H( zrIXMmIuX^*Ct|W(B5K7YVEBaul;tMi5&l|>e;}ReH>H7V3jK?DVcwDR)k5||@eE(k@vfMb#iI2ss3$Yj_PuKrrWANnp7@RB{ zgI}Yf@$i{wtdxw#1D~TX_CyrQiACYQ&@X6yC z5d2*532zvG!kKeFAwM%1bqs?sQz;nL6N1qBzaXra3&KTFfq3|2Al?@V#Fs$_|r`&Lpup6%Se~(jly~mCYSB!UZ#XB0VIRE!MOnLSW4=;I# z6}c|B|E3GFlU#60{9DvN{T2g+-{LPnXB6J)jMLklaIu3EE?Vb=N)?VcZ0d-G^BigZ zA_qKn#Q~+{9q?0xJ!&1Y$DDyTxXtYiMsIwBQ~%iEjpue4yVMSQb6?{E!`HZd!fQMe zZHt$W*`of44IcHhLC~_n$@SJ)YiW%im96pcw^ulJ;}yPBe1%J+tnkwjE1W;{5?{N$ z#5O{6Qq{b`m(N~c+QJvun_-F5u2|wKSxej)`W!X)K1cN~3!Lj{f#Yi}u&C4=-y56b zk?H0riO(?f^fS~Em|@umGd!tnh9z}RQTzE*^jrKCN9>-UQ_*9bI{7iaIBJU3u8(kj z@dj8obOjgiuHb%?%V@yAghs>q zc#)@%TTK2#1^z|M8M=T*8W&LffgW1MoyWd`bGU!~IedTbEEYze!T#RUD7BW#?NiwQ z`6L!~o--Pn>c5B3aKRyTJAV*kybfSe)qc9~ zu^&Gi--pI7dvW8BJ=i;854!Ht#TBo2V`T0wTr9l{Uv1lozs+~xyks3bJiZ+tFx%1A zcpKVBZ^h@`ThKsl3u<25j1ocG`1P+AUYxImV`ntc(rpt8{oF|R+BRa=KAHmA7VvO3 zgO=h925Rw;HPyi6_zf7>w;n&NT8|H}uS1<6b(H+O7USlwrQ_)u>~dL+4~kb|FJ~2= z-?t*r#O&OF7md15;Qg~{n6dE6vM4Q(V=#ojFzYwDN z^EAZJ;+800|0IIC^}@JlmN51n7Q*|p1Z>~yG4_JcD4Sw5%qrFmvilAVuus$b*pKUa z*)IXzY|PXyHrT3zeKXv~Ub^~^U0K<}w(f3bUB5Q68&)*1IiB_GUTz(m`J|Rz)mhEj zo%_w!6jZW{w0^OtKbNys^M0~H_N6R^CbQ{A#cWD#Ase;7fPJ5w&)!>=$8P(W%gQO{ zuvt&D*aw{%?A&wdly{cO?%R~YmWL&=$7d(9-)+CLWQ=7$UgNW4zv9@vyJFe*{AjjP zIf_+sjbyh=eP)gBhqF!%p=|i!5H=+(n9W}k#FlsmutkdgY|c|(mhJFn{m*=4t@FHC z1Mp-we{yG)rn|BAFJ0M?0T=eB{#$m%4=1*9vm@&sY0v7;d&3Uey=Fg*+pt@%TeJ1Q ztk|bJU$WEUE!prT&snXv=4^r3GxqfDr)*xTDO>r$gl#ar&;C1chizML#QvLfgKg-d z&lKffVv9drWHVl#XJh_5!}@8TWF6-mW1o&5Vy~6&XOG3~VK+POVprbOVQ1=YWo1;f z*&&HdY)c)(RwZpya_6&u0_U*(&u6mS3)9#Y zno8_}Srb{)VJ;h9CdW2KNwZ5GBv?a3Q8sb65WD=)Fu$GC%TLa3;|EwY@;_{<<%bMc z@bjZf_+m!+{Qas~{HVrczM2oqPd*dPzcxLbzp^xt&vEePOYU*!&yab`-<4sXREgJrH?WE_eCrCH+ARpZL=oxyEaSn;mJ_E%Ke)7 z2*b?yg3Dp?HhRwS-{XzrbHca9%Lhz~C!5ma4%xA8sE@C!sTgvpEUB*0lu!8yH zu!@-xvX)UzU(ZbX&0~uC33G|7#S|{t!YFEPXBHpZ$tc{^W%6I_W6paWWU^w8Fe3TK z8HK;6n9h;2jL(D%jIy#m^K{b{Cg|`r#`mfrV`z4Zk#)Jt7>5`$QOOUP!Dl%;VDgvT@Q)LG^Si%hRp0@ItB z$o$YvX5JR3FdE0x81{EMGv{I^qt~3pSl-BCta@^pYsPtu+E_kQXjZ@+kSJmzUllXm zoF9yWV<{s)nznpvw_%WMw+!>FyUX9lDGGG6N&nfd%C z<{7jwi3zRDPt7(aFQuLF+S1AF&gf!(Z0})s*}creo&C()+yTaR_YiY7ZRpq8l~w|?OeI+Jd2DtXkfT+ls5N|jO0##>& zSu=eO*?$gn>&*qLIrBieavt1yHy^SNEdX)Fg`k?Z5Ws2?tlPR6rU@^Bzqkb68!v?o zYn36fLm5_lQh^ux%OGo>Ds)$>g4ny|AULoB{>ZCASe6>-nXiO#vI?FJu7dW+)u4TS z4Ln}57QAcMLa3WMd^o%g9&**?Oxh2``Bh!t3Y!=XKjIrPq)Ia_1oZ8$2OQ9upQo= z(V=;;cfiKH9dN~BCp=(wfnoP9*cr4NWY6isXQe#=d3zwld@l&|_5stm4^H^+htsDH zz_tkoVM5kHNHaYIC)ON>lBUD3#`6f=J9rd4q>e!#eU|;*t>bWY$qATWc>=z^ISH`! z6nG7tg1@1sfunZ@W-6TpIr>a|jp;dXS#=&({XGxi@AQDX`vM#kT!06W7s33$|G;pn zK9F2}=rFwm&sJWBp+A>lzw;Ha-EIKELk1A^=_**Cz6N`_*P%D*Iy|~{0~!_>!m1yJ zaK`c`Tw8Ahr<#mlh3hS--EkZ44&R2>;5(pw@-CRj-UCPW9*q;Z50_^c!@^u+NH%!@ z8&yoez1#$Ty?hA6>mR{z!y~A0Hih?F9s{rEF|Z$>0B7k_Sn=d3Y$~O)+ziw#%s}Cn z8C0)&23{|p!QSd;(5`L{rZ(m<`o|m$G%O&?&H|JgEZ`tKhbIot!L8{z1Z=c~k4~0g z(_#t#X}*9JZ(l$|>kF{edI<|%UPAD{moQt~3ZA)G!H<7dFh%xtTCIU-+JKa^4J0?)z~zm$AaJk+i$+@*WM0FGH?QGS{cC91UO^{VVN(Z($GDf7$~_)d4)7IKcE`2Y9~N5q>{#gvEJ|aB?n<3AybAZ!(;~ zZkjVZy575 z-Cbd@%@v9^y$4tO_pqn#J#?;hgC~}5Fk0pY`pWL`)x;fyzq!NeSst+Oh6kKV^ngPO zp1?cr3G$Ji@J+-Ej1PLj1Ya+B*XsqcTR(t-^9P9i`vE%DKZ26wM^G;P2ul}x!^C^u z@GspPK2P=mz5jebDB1^JiTQ%?Az!%Y;|o#Ul!>S12UG3+K()pXmaF;0w8#F?{mma@ zX9U0%g8-0-4*)w!`qaviK+yLMgfHEJ(54v#6YPRuK~)gUSr!aZ4}zgGBN#j;eF7c5 zPf!#72`-F%f}))vp!zNZZv71b-_@az{3H~zzl8!#$O-QHVQ}e77|aq1hs53Cu*)?Z zQvZg-lGPD#_i+S-=R`oU(r2jC`wYLsK115@XK>yY3Hu!)VX!I^UMYV8$-7^`FzE{< z%SM6VNE9sbjsjj=6l~ZK4Rg(-p(igIK2ME-;}>G!Unq@<8jOJ=?O0f38w+}6v0ybX z4&1KB!Mo@}R8ngDKJ5+Hgc0pd3&g1>blm=-6(#u-V_td|6) z!AUUOl>~Yk$q@N88QLXdXSJDm>2KIstOoDMJ4GGNo)45;B}fPqjZRBp|L4c3`pT966Bld~Y{1Qo9= z2&~TnW94jEeIpx6BD3M_KsFRJIiU752kxZhz(=WEh})eDF>i9gqa+uuPyGgqPJM$6 zuWzuo?i(a6&V%U&d2lK;4_Q-X#$6rvx+>{D9yKKS0Fy2jw090E304@Ze%8-1IGlJ@ut9abX!GT_~fR z!7?cLQwD41{{++XKOy|XPspmKGP@kYPnUx!jXzxTs~ifZRluQR6_EJ00u+B#z|M)k z;OhQgaLeu&oXh(K>avy4rBew`mX$C&trF~ntDtdX6)bvG1-s&_;Anpp>{#;~7To*| zbs@juRr7C{y0{u_^s1rJvl^6tRm1)%HE{M|4IH+sft9&6&@E95ZrZh=^0*d0#Mi=T zZ!K(G`3Ll`{(-yxf8c8EAJ{gt4y2COL4=!O|WcPGo4>F!xXn>_*>Krt}-pKM!N+fAGE-f&n=+W)B+B3S|Q*_D@~={ z3eVD7L1&~DdRP4ei_8CD#Pc5<`SA~2WZU4YRvTpBZv%d48@#D&gI&|w;oqKiFtTWe zs`z$T-q8+v3p>E{cn3Us-2vxQJ7C#h2UMtb!j1Et(CFL=TXQ<$<#;DVtnLET?}D)R zUGO}=3$#SKp;o;c^sjV7p?f#XE$D_rqCGT@wg(KZ^uTWS9+>#O2NHyPVb9uLNY(F! zS+2csGPf5VkM+WHwLUO9-v`=`eK3&L2loAaz+Ku8w~kX5;;Vl6%l1RxzkX<*H2^7l z2H?q)0hkvt00A`vFhOw;&S_CTqR}9H`Zx&wg@a%zJOn#e4MF$0A$am;2s#pnU`xjk zn9d%C_qxO2{%9D?J`KapieVU(8Ud^IBOv&11dch4z}u7&i0d4Iud_!XU^k6HHW`J* zfuq3w7=^W>V_?5>42n*V!N99A5X6qbzxpvi#c{Z~aU7(sj)S?&IQ&T+hee&^uzRKe zj_3$r%N+qIeGouyt^h6$2;ioo5ShC~h@^lJIdVXV{JJDW4wwoN)4 z$=>;*;n|3hXipkb{#lGXP8B10KPV59#+z#ni;)X*;^h8p z8jHSCoZQhCC#MgIllA)IM8sH}Bv^@)Yi{C1HdLIrCy0~T1>(fMR-E*8i<4bq62xJ$ z1j$(}L3-9p5Y7$>GW~=EnQ~QvNIa4t4K@-a)moB+KSYlKZPANtCuE`Ex*$2w#vS6K+eAN#>G7(ovGMdP|a|NJ(OuB1w6GlBA(l zl05B_B(lO%764*4yZ{H?~PLAkFFG%bXtn6yCy|;K9nMRUrCXzu9Qz1C`H6# zrAS^nJ*Py9tge$H`CU@vq>wbJ;7F4lv!qGTGHEhGxs^mmniw6CCe9b7N$@Rc^7*MW z34AS0?A@h_L9jGYkCP^y>C(i#Seo!^rAb!1G}%5XO=6{G$h0Xk)?G5B zYK(FSWMs)fC0SxTUzXUekR^^hS@LR|EV*@nG7Qehl1T=XX+W8oCT6lk$yS#5yptvK zd}Ya-a9Ps9mnE7Rvc#-VmVBv{C8dqBq`6y`w2#S>Iw?7lJyDK)m@P*xQ$E7nwQ?k9 zqa3-oLymMDlp_XbnS0q|;uGD7wp$`TlZbVT2q};>(fYR5_BL zCr2F14kPy8wKAwNr= zG#1E{uAlPcUyVE|Ymz5lIw}8QP@WJW4r!I-kXKv|nLdR>-p}R`nZ+D(Z8_zFuI13a z${}kvbI9?X9CDp5VEV<4howqq8(1b${m~qIz7aVf`HHUONamZOW z4q-oXh;$(3iH32=y(kWG=5vT&5{LL_aEQw{4tY?-A-jKa2=_OKq}FlBrDhHpYv&O2 zUJe-=;*fI!4v7=v5+NBb(cp5)g-KjuI*m(S&gK$}1zd7-DVOLj=aLz#xukp@{hr~H zC7N6kyM;?O?BJ3hT`rM5z$IsnPoxHJA9+aLGU|<$Kg|$&Gq0arjI5 ztPNZe+Q=ooO++S>$(`2i zDy^f+A1?Vt>->n;o%5UOm$pUh7nfY7ZTm{wC{jvoTEZpgXxr~o9X!qFk_S{L7pQJF zW^svh2IbCDo!w665`{!A@uIq%&8N1Zy6vDk){5j3^Kh!O5H6{pHt3+X==0%{R%)9f zYNO!y^jsG%QFWqiqc*%{OY3gMrJPD?$7i$+Pq@UHvQvKC=MsrKR982tZm-d@FLTN2 zi`35NxTNhQ)zeYh9?DmlxR>gBCzq_>#wC$jv@V289&X^0tToi$YV<#$LT$W=wr?(% z7|fvm86{drMJ|~vNA(~EB=8%314$*r|`{{iSku&0u zT?QOta)CqKPH{-+VGfDdLz%wY>Gd=@zO7`J}bzR z^VHvoP`~F){omA9IbuuwVGs3-JM*c3Op_yd)L#x#zd0#@`cMx!GS89vQ!9GRV>yy> zM~=KQkRzMU$&rS`lykgGj!0?A5%YD_r!JEty7T0SyOJEKl$9g$!g6F~zbx6>O2>d2 zS)%&60t;CQt*Y26M?dX@sOqbN?CHvlKOiSS)yksOR_G=k~zm@$)(-0fP@AO6V@{TdlEyF`X$X3CKBtPE)jqhp%445@IIA&iv_ zv3(>%3JvMlc0q=$I3h!~?~oz;L5Aq6(ckCGP+px3^}}=w9F`_}ZPG-lMw)mPNt2~? z%=C$sCJJ;6y+Oy)1UjY)nMsp1x24Ik|D=iGQE6hlLz>)Tq{*4((gfy6Q@)ur$rF(# zPkW`vq6R5~Wpq5xmLiFKDY7g?idcC_k@DA4WX4lE)*DHYJ9<*Y`k)kX-XcZbs7n#k z#dM6HLdSn8Dbg`0Nqm|m$<7Ko&&ZJ^*ICNv`9zsL?vf5{7 zoXk8fPTp>(^R9K`3qGIGprzmNz5+z%5MTrCD2NnB?5(!69vh1lS*?e7; z=$;TIJGYAx-da&IW1cAKloutj!y?3p&Ov9Dh!8eOgy@EfkOEf`vfWaIMBEY~a%V-z ziCrSZZ9Sd8E)XGoToJ+<6(-Y~gvrzrVIrL*O#XcmCaEsM#Kv5h=okuq{~K#aEyg0UsQ<9+apA#Xb2IZg+io~ zL+9l^0w~WCfVQUq>~9MogU;h?XHn@MhpfzTaCRSu?MCBJvvnNKP9KM~_A%h3j=?6E zF*tg43=VA?gY^@~K)7)fKJ!Om`|D9iJx}i?)JMTkY7{(wjlh?%5ePRM0f$2)aAL^_ zWorzB*SBGq;WZ4VM#GS?c^LX94})CO5J>Zf;2#A*#+)7keYGJN7aD?xMT1b|GYHG> z4#MeegK%#Om8JnW6+ZyVuLhusvXG3I4Z!e7KV10M4`1BrJ=C>+kR<&eC*KbPm3@#C z(gzlg`e4!SJ_w!B2QyoH;WodQ=8fouAIEy3c1bUk^!Gq`dJh;m^}zHCJ@9E&4=fPs zfoJ*MkWKIR1`N7EPNN%SB)g%#qzhQ@F1T^C3uHESfvs#84E*eb9sZqQe!CO=G&>0!f12pb*K&@s6+>-BrmhyJk>E8|xx7s0PV>?vHP|i|m8zg(Tf&Gm(*uiUq zX7M&KqP(SA_kX~n_qZl&{(;YUD@0|tLa0+K*qv>K<0`En+t&hqi7l}7RSP&BYJtYt zEwG@u8Faoh!(r2A*tNYGlogwyv!V&Se4AkXjV6d)-vsl7o8Wd%BZN9OLgA@Ks9Mwr zMePj`5!(Rwo;JW@dLN&l*Z`X<{z9<#Ul=p^3mR+w!kLkJxSm=M7p?1I%R#y(Fryxl zDYxl#a2@tq!~%&me?e=EU0xDw78R>HKkm4Ji4VCUCgkZkq~7Hs*5-837fOfwU(?{8 zNgAA6p9ULxQ(-J36~eBk!fv{LSk{mNdwo(M`fLhF&P;)AKa=5>Q!?1>O9ltIWU$Oi zf=d=jpstw&og<0h8k-1ew-X_fa;X-yB!HP;0_2@b0Ew9ipj!47H0c_rw(eJ0CH0m1 zB7~o&2yZqZtm|PRCzORDYAShO^=82C-IP@5f4EOy7L)iRcQ{Ex(G;i zivaV35wKP^0!mWC;etsx)UFDLJ)UMjd4TZOU5TSZu$w@*L;H8Ey2+AAsBWa4Tg{M!SFXV2&S3@0jvyyy$ykIz&#MQ z9tZ?wsX!Q|nQ{|v2f!`m0GM3u4}nhppt{o^yaawA8tn&14gA1;jvo}1_(GqRFUV~2 z1%+N8kO=aDw$nb4Ho*sMGQDBTBX4M1=?#{DKZ3&hk6^v$BMgXqgoCjk;KS7q@O#b& zkT3B9)t6pCzza5ZdeVOF36qX_LbI$VgwwqQ{o5YES>gc!74ER=wL64rxx@56H!u!# zgUpj|AjNe9CgnYxz55>SEPW3Tf4Rc#*RF6{%M~Hx|8_MjVR58sa4!$w(q@WwYVbo~uz&v^rn3+y1o%ntHb+d*yJYiM$M z4S%-2hWvh82o11>C&z4ItF$eQ#oIujfemb%VFP6}f6>WD)=;cU_lBxoft&3s_(xvB z%62Qb>}ds#d#oUG{3WD@y@c#DFCm%p62cPbzSE5taDMg+SekDMb*7eJzuXemR6U1m zo9F+(Z&lE00a|Vr5U|q%goe#Qm*!e}easwECC#BN<{8N7KZBW*pTWE|GnjGP45a6q z!M}p1kV^N;Uaxox@A*$aWa<+*c=s{b7Ev~rnkle0k07G?A=qtu2uFQPKuX92yiYxV z#qq}AG}#zhjqbzp{CjXz^k^cUIXLWtFRWXLgiZn%9^?YZM&|(5&z5ZN$4`Pp11^4 zqV-_~S07eg`48r%UWAdE7a{rH1-M^b0dyJnACAlK7S1Cwz1Ra{)w-awP8UpUcY|B~F8Dr+6pUlwt|Bv<$m>U2IXCw;p9hcFdfhW zJ6$b!lnBp*0Y`XAKzmtOg~zpZ#U`D$xG85>ooqV9ic7aPeFL zt=-FE_4eg()lC(gJC?!c&C4LkMFo;tmEp@KW$L$E%=`#_W`X)f-_6ack zy&~-XrvSG%D!}VET=4qC0l&2z_+Tjy_CMv|zKR?icq9w+^JSoUjtux3NyCv;DHxk1 z1@HAGVR@Vc#7Ikk`bly46e0#n!f;`;FnBo$fp@Ne>A616tWg+a z&P9$e4-XA97X5?F!*>JBd0s!GUfIhGnD#J1bGn%w$(_tky$2X;Q6ZLD8xhUi+Z)A%wns7* zwx5|X)d)uETNtzGYACZzCWKiM6wFN131UPV1DHS0{h9cMe$0zhA7;0nHzO_lk@@Q7 z#a!9w$;el^GeHmCn2polGdXeZn7v0`n7lq`X0wwM^JTRoGo#R+F*SU{{FJw2mWSBV z=S^&w)TURA_zNpWYtc*QeySxCc>Xz4EHGz=JZOGIFk`MpJz-osA2Bq+I`i}LeWu0t z4%1s>#PrWJWIB#rV``nQFu4W#Ot{=d##-k*bKc?%vnuH%Gct0FNm_q|d2;(8qY=K3 zX>ZYGycX|bcIoLby&hW`*K%!!nXJiF>?6#58y=&WwVnwQRcAJBTFn%js45@yzwg-n?5JVvu-Hd8cXCiCCXY0R*L5@VM?ky#?6$Ruy&FsIC9nGuv?+y})O zt+k>|v!M{9a&&}emEXtf-rC8#__c*sv-U4fKct#BxS)dP>{i0tH1RvH?^QN0UL=iY zZIZyd+8xI`Y4C-2;!h~g;6xzLy2zXNb*BeUIMs!BjB((lezD-hT*Yw-^s-^~}CI?CUDPLB^4uJiN%qeP1+Gk(+B7ksa18~&no4*Ul(F8ufFJoqnS zy!l$|0{I!yp?oFvFZ`8Jas0_^68I^fQ~4WKX7lfbfo2p=;Ld@8|JT<5n|P{L|92naW-+Y6njiqmMu(>XH_04uzDI3*$4fTS;H?= z*)2C`umh^I*%!@o*?zwTthU}__Ude9_GZO0_TbwUtm1)HY>50?c7FCc_O^uv`(YEX z0mB zK4as-f*o;r&MxY)WH;=2$*KogvD3w@*`_l#tXI4(yK#~on||XBtDbGo+AMHnb4{Jt z?lNaqc(n^VVEv9Q`RmHMZgOL{xVp1t-5%_|-Ck_C-v_pD{3AR6m=C-5voE_`#-EkF z5Wp6&fvm}-U{?D2C)PAQge{vD#wy(lXL!yjZrH4<3QH;JrKV-mY`V+xz%l*(>wO=CT@GT3UDOjfi#i@=l*w*1lndp~}V?Uos4cb*zypM;LG_Tyvh)4c+A@jf9m z85BbNAdLTXL{O$n1eIJxQBjNLByJMJ{5Rrgzd-`EYb3Dtg(O~Alfs5lDb#%|jUN}u z;Gb_YsCY*fRcFYddWsyXT#-jP1rGj-;h@WDE^3M?;E!MhJi1>I(+3oBj^_l_-!c(h zTP9-sn@O0qZZcx!Wb}HbM44DqP$ho~7T%tU7pG0bx`b({dvQAYNYB9fuohUO`wn2`!@owN)MW0#@%2~{*3Q^m_4mZQez71;ZC z1-^T!hKrW1M7O+^IAXX8w@g@#_o7y#{gE~3Jh%p*yHM*PfiF7e=!ydFR-Gk@u?8V6w_F+W$K3e8}bZOa-^)C*f z(xQX7BIO{eo;`#LqlfV4yTkZG{RmDkI)Y9&j$*gWF;ovYhG#Y($7|Kc@$ADBxNgcx z?1?;y&U;SbjFwYq`TR8gn0p3g@C?pBdKTw&pG9HYbC|j0JQ}5(N1@Ytcxylpv+XaS znCeBGpK%cvo%;`EhyTM;M}4$dehDXMUP9}0muW1+Wg2&J1vjZ0pmw?e&5?c;yZf)A zm)$i~TY4S6ldj|7u^Tj3_YKswGQ?f;ZsPLzo7lC_2wj?Jyu{O6Xfx$D{tCN|vfJ+9 z?5aCB>CRnjmAQw0AMc^&hWnV1e;;T6XN>1YjM3cw0lr*ff`(sBaKpieSl9FrZ#;g4 zl@m>IS&%87-1r!;7eB_cm!II8u_xH8^AtBZKE;PsPcdML8KxPTVIgaV`QpzI_ddh- zuFvpF-7{Re+#Jj9nd7}Aa}<}cz~=`ou-DxJ4>eezuiA60H-3(jQl8^l8gsJc5ETzg zT-#uY6V+Z|-TfD|oiA{|^h@mA{}P|Pe~Dv%UgFhdR+xR;isoLo!h>S3@X791=;rha z11evk_d;v5xn_;}QP!w7YK={sZP3oz2A34uVCZyPT%c!5;T`%NeuszNzr$`CQ)Ifp6$dW4;+YUvjOwKC*S<&P z2k%km>w7#*W0Cf6bwdp+H&n=T!ygLn_~MW|E_vsU(ZAerjS39e8kDRAMvo=M|@WJ z5#1+xqt9V)eCOhgCgt9!Gs6ePPWxb}rw?wf@xhFFzNmh|7ae?kvGT7kPFUiH>X-d+ zYmgsmxA>vzGJh1k=8qX6{&=s=A1AB`K(`wKs2CoAcRB(vRV@(54Fhp;L?AMqfk@XR zP~~P2ibVurPDc>cZ!pfJv0?#X!8oTq7|oY|!s2V6P$A?KjTxeBJ(UpLb0q|sz!03= z7=jgxLectSC@TAeVq|S7E}ctb)6RrpnR^&2{0c+$Y2mo-XgF?m4oB7EaLT`nz@$A9 zc-rQ~NE*zy?SuR!+|(_Z5xM|vf@xhG#<-IJl-;n$NtE8{I4yZ#*y+-RF98q z-1(?m%Eto=ENbm!afStpHD6hLGr*$CD#UOD#M!=x##M+ElZ35%zoMAcSCmTmiv7c1 zF@H@0+Fwh+O@0YjR+WIql@c+1Pa@8Ik%*@f6Y=FhB6_GLq5GvIwDd~C6J<#_m79!7 z+mi9X<7E6Eos8;j$!NJS1(QyuV7)^M_GG7Et57QDtxrYQ8>zV0FBLm}rQ(ALY1pQd zhC836(HN&ROleKSs(I;Hdo&%t+ooecYC2vXN~e830|PH+;Ntfg`1*SW)`(@|3|=N~ zGR#C>-%Q+Eo{5V&S=gzag}(Q*P%9)0vud(%{p4)4-;s^Qrr9X?oQ;zkvT@?{930Wj z!Ea_cXc?V@%FQ_#Gcy;L?aRei=DAoDlZ&D)xj1XqH=Mig8_Jn~!`kR?=+*QMx6jDK zGTl7f_cRY9BlB>yJ`Yz;$w%EC`FP-AK5B;M~W1!!$hfN$Ii@X5CVJUmu_lUEet*E5BvYgdRFiG{edvk-61EkfUYMKlh&2vZ`8 zFs!Bs%@vAqlV&m28y4d&uVQS>FUGCo#b~pfMthzr!9wd2EZ~=5TyqJ&nEC@ZZU2GQ zcYoj|U&2^J~#_XDvRsRg3Vx z78{al@qTkHb}0P8JsbX@)7d|mWcde6LjU0Rl0W!)M+r;j`I2H@B`Li z>z_KDC0&o})ap_Fa6Qg=SdUE~>d`%;9@qb?$2i5mICuSDG(7beea-%2lK)>!&HalZ zoqzGsBYrw)Y4S2}B0TTlnP~lqx>U1`s{-j2{x}gz|oNC0SPaCnurxBlIHllcI zBN}mH?L`0TPRtnT z#BWo&DA%+Lt@d`|rmJ08Y1xHmyt^>tYZp!|@4{`p^fR{`PpNdH=GJbMKG%(LCf%s( z+>M#x-MBcX8?V-Py~(BIPr@lx3!I<^d=@7N%| zR~W*(3x-gA-4Isj4B^F-Ls)Wsi2hH9@VvtiKJgu*?1CXQ$Qr^86+_t4Iz;aohH#8C zjA!N!qwgxpdC(rl>Vv~ra&Z{L?hfO1%VAV-8AjKDVU&y;#^YJTX#aB=9Q1))P_;i=^n+?E4=&@xCd-jgu zij!lwM}G_t7>yzGXbh!aj3L^O;X(H?Ebt%0Ri7#QlO4m4>0=o2eGGle$I!HH40&y1 zSk*s<7lp?0yYx8Doj8t%XHqWcqH(;jVw}b!kK;7Wam>&e$7B1)G5`2DD(j8o6@zhn zeQO+DOvdp!Wr-epHI7_|as1>;*`goE(IIdgE5pZ8Hg+86B#h(K^l|LV9mm+BaXei< zj?LBMc)Vd8!~Tt9WA`{p42`3-U>rNe1o%}(fHxEbD5fO9$1?=@d#(WIFBag=Wdc05 zlD?`7a2`*9RT~9px>OGEMXUrUZ6m<_uLbzzjR5T(1o*;9fEOqq zb-_CUX1NORfSUl5+yywvQ-Hg@1oYlifCe80xX)XFGkgS?OXZxe0L!Ut@Dt!eDn3-g zseGVvpUP?~h4l9$R1)d&@>DeG`N!yW4%6$cqt_kt5MUrJXFV-1gqABo%ilulaf#N) zkk;!It=|e-&%f3Jd`jyrOzW?2A;1XQp6bT}?0G1_R$~EX)Am}^cCVrBPo#QSN%diQ zQGm%*KeeX>*lKd_ss8p;J+^G8Wo#B;4%M$B)ia^`-m{XHP4z#Q+M#ByfHKJi z$o)V2C?UmQg!S>>0-zYF7tpU*($d|8aEIaZ!CwAGcevyA=aP6btr# zzKVj4f?yzuSeV!?2GW9xAV`TIARvN(NbMPRH`%mG=WH-XCu9ez7~Go5sHECdT`Vnrk+C`@2UF4nDMgFN>WFON-hr+t}HTf8L)hvS(Gbp!nQ@|v zChqT|Hmxp-+0aEt(M2tbyXb^$7bQ;UqMpOLNVXUM+@DUG^0kwGRdT*=UMFo%?xdWk zPErc&BukG@V)mW%!JNyrPKrL&NoM;yY3cS(N>lA5)fJuOJ+G5KPwb>oLpy2qzYd!C zvx8ddIw+!$>y8wzS0X!T@5>H)az`>UN|>bT@{u1!Kaoqf|z)4kd$(ypDB-EHS~Ry$Scx6=>}etuOuO^|P= zwn^>uZcsb7b=#=zQyZNvYNM>AHX0Vjb?x&uQnhWPmABex_^CE}ufuil`ZnsZtc}jk zXrr`YZPd5(FU|Y%mlhZOrD=(OsX6#By?*+aG`KD=;yQgT*X@p6$LDZe-^g|T&yjzr zqPvxXzP8elqE_me&`Rb(t@PcQ^L5Nx>EhW|vej)RyLGK}eQ_(ddt0fqZ!0}%`a|Q& z|IqE^Ka>^xhyJ;6Ub5LAnt0|9_0ai4*=zog@dAEs%pY>;ZlQmlT4+mN3*8pCkdrr; z`z>_qatm$R-@m<)$`K>#HW}_o#_FFE&x>?j~-3HqpjuO;p~iiN`K}PI(cp3m^TUwHJTT>RsHHQT{4_RIunf z#Si~Zj=vgddtoEBgg270QzQMl)=28Qjr2fhT{JQlzBqC8hqixy`&sN^;AkvZ{ytbIW^SWT}{i2t4Tk&nl4yY(;5A0(q36jGi9ndKdOq1-c?cGCslOqbQOJ2 ztD;Ght9bo}N;;fTNe0g=Ns~L=vKp0CFI&lDj}Ig)LC<YiI2Eye4y`ooXxcO11; zT$&=6ORa4=MCmzX=#oSIPvp=;r5x%pAcypdv+0FzHkDk?=5d;A>M@$Lp6arwC^U<_ zjI(HuMizB)zuvlm`}i!Aj^E3q=-rvrBAZE*n=?ouA%hk@%AoQ4GwAz*3<_>b=WO)X>xa_mt3o=h?@FTw8EF*nltwj2(&*cgG^+1TrIgH6a&S&14TDtrvm}-7b*IpP z%oMudltSr;Q)tNI6cRd*7)NtEV`)fAELGX^xXqqe+BhqgY8&3s(TI0ca_1c>ZF)y$Bi~U> zc??N>VyN{rM~AM6A?ZJ&xHKXwJEB#(L^U&s&V6Il7{+M#O-8|LjGBiqn)5+S>)pkq zZNTGB@?u)v5>10+qAABLn#W(GY0BtmdRZPtGrgne-pMGcS`tOm+ahUuTqK>fjHDae zBI(i?UVow@f);y6(C-rwe_{dGa-nJ-wz)zk}#ZWDuDe z1(C(-AiCB&i1wrg(tMjh`n)ZWo{S8nWks(j&gB&edauZL`YY-o;T$W!0J?iJfc)hH zD7NV(C5OEv@s*e4q5P6AcKXxGSbzF@*PrgI`P0G?nQRNUKD)Ji(-~|5&QL=UWV}+Czqbn?&Z&E>>p1`iSVSOS3T*^N>94_*MmMs zdC;co9^|I%K~-(f_}F_!%WpiRO`>PCt=*ke#qKo!hCB5T@v0kbPsup?Dal=bN=Zsj zN#m~@WkkBs%BybVxWbLYxGQO2a;3{lUCHv73)zIaknuSeI;!A8|9y9+enHOM z7IvnSa?aHMixWBcInk)2PGmOQiKKN;Ncs5_x~2bw!lrOmR=FcJyExLn-Hy~b#*w}j zIPf_W2XfPJp#4J~XjJB75?ehct@V$oviD=!6K_wcx9vIA!Je+S*-=b{9sRy&N0XM= z(TeYnXzi;R$bTwshVn>!|xgm+n*T;`{Ws!G?Ohw4v@JHqT&}n)l&*M%%6u-<2VTD@+UgRS zw_hX}^0}qT3v@)|0u{%dr=^PL>6-UB@*91Q;>^!d;-51VeC!OFmz<{cn@&?xv>}f|8jxPu5lY^4 zgvLi7rd{(6(;cTn^tj(4vcG(g&-Wc5ZS4bm{z#wV7weO*$9}3Bx}Ub))T5VtKJKT^ zKAN4nmsFSUrET82v~Gkh&A+pU-$xyKtE)r%(sonR^4)aadlyv=-$hEdcha42JLrwh z4$4o~rYc2kD)G>wcSE$u{`z*(`lv}gv^B{sR)c0O)F5Z)ZPd|c8*MqimF`ul)7wqz zlpVf>3i$kE>VwVnvTYMxH`qig^EOgFHqtHs4b*q^1~R&{o~pmDBgI|o=wiGYc`sDs z&ly$9>7`2Pe9kkhWDVU{T|?ThRcPP@6$&<8O{(8lQL4@=QcnDj+~ohG1}D(MUZ8!3 z0vQ#F$XZ22RsqU%WwbKwxUEDpKd+?f?JMa%TS4<>S5U;m<+SYYGJ1Y+8U4#xN?VsL zB^!4|iteY#=ed^9=aR+rWzAwL3s4|7N`W5UTtwTY^3->mJiUroNNc7oq%_L~w5Cap zUg^kDzxes2J%2vg+0CQ4wz*V$a4t2c&!N9d=FoQ+St{x&OCcv_)6KkDBvPJ5Up!}$ z&48IS{oD-lEuK!(R!=8u-)Z!D=rmHgJe7?3}$Z+(BV z%A6l8#_2n=Inc<~&u?Hqetu;Z;xBB7>1TFl%O_Sl>LXLEkgy9r^~}?-j>RmiW$B&O zEGemq1>dh^_jXh;?aAeAsHBudyeeUu7mHb`sEBFz`oLn+3)pzOe0D@9k9kge&$2(} zux~-xto>3JUssXI8hd51y!15Y`zV#2-krkcPEBU{l0`%4|1=utURw+5EyFCUps9 zPxN0g$Of>Yum0?4h#&iQ*_RmzFW843K1@jQVoz+Ivrn3yOku1CGc0#!o}N!xhJhRV zCg;j}H9524;ZAJqjVEm6YDd<$j{|E;vu6bl>{yW2BX)b7E!$Y}fDL+npCuaDu*-7R zZ2Au?mKbKq^sia4-!Ny!JIKXY1pyu=Y)t*z^4J z?7zKdSx&tn(>6TGa+;5^)wc}Ti@t|h&xZ%tj?M|?f_r#SmvgIG4_li0YjPF&MaDOT$& z5x*W>D4sGYSNvEmLp)rREOyuwC!Vo~i6f3jh<98I6?a$$ii4c|#3%f`#ET={#l2IV z#dSrG#n~Spic|jF6KD4`7uSt777y8WMSS6mq4@8^L*i$_I^v`6w~4p^R1+T(F4U9k^iE{cYceGRVj&%Gf#@1k{J?RHrzeBb=SS<@1j%D zQE95tn!6`QU&{Ux)zau1wQKtLDDA&*mTRcbQu4g*skCpoMSH}s9Ner&Sx@bjh0N;4akPo3x?y0~VLX!(TEqSsARM3t#?MG4QAi1u9; zL@&3j6TO_FA<}Kt5mDA5QPy)q(fun|L^oxPMOHHAqLXd+L^J9iih{Bpi-txxi&Q+^ zMeD7+MAOduiPHB3iq@?S6+M=V5QU6nBKP)KzD6%e^f5hMq!OAVI__K`(z{b4ns&5O z6r^4!>c8}pNPa?tXv)7PQL&^&v^S$&xFCAb}v!UM;LkTqBq%stKOY*9)%0HwkC&Y!POB-ztRc z(-bCVY6%CFcM5m?b_=)0=n6Yb_X+)e?icL$9~Ay(9u}08j|y78#|5=fr-b3gr-kr_ zv%=Cn7X+*1OG3nws{*-S7hDG36t-TzEf}6N7N+>#6~yHx!kQ6g!rS%c!ibv|f^Mj# zaQ~x~5HQJFc%x|}_?X`pjKvRx^*I z)81LwoZ=!ZYIhad<(~?#54sCm9G?mA(>#R#Iz0t@1ur4@khk#Lk@MHmUkJ?|zC!LI zf5GnHOF?i55HeF<394;@!t({M1*u-JFyc{&Ff$=knArSA_$&KXpxxoZ(R&d>i#Sp^ z*$^cpPZ0}!HJBi0Ov3We7-4qZJK^uhI3ZLuUeLIdAmsTZ3M=_KT9dvhLg?~TA;}<3 z5Id#|j>#E<8hedy()Ut5_J^ zQ6ik0UnT_YE*J95D}>^(O5t5?m0&4TBPjk?E5w|v6Xcxhg=@(Y!S9z;h@AFG@KgUR zT)X~7nD6^lVENw!`F{<Ndf5P=|1Kd8aV$K$qZd-7WMA|0j5z?SVIadg6^sPk1isgV9}$&=0?l^@n0-e;jx;05@k3ghkXq+)*C{gPK7+KW#8N`VT>X z+YoG27>a^~p-|s73~#;+L%&-x*f4xJu6PfJ{fZHAOCJIIeIs$@$4IO<8HGM$MkCm7 zG&YFFATw(Wpg$I_KgU99I*#+j#zVz_JhqD_U~AR{tlU2lLz*Tc=k6rj95oqZUrff+ z6;mLSHU+2mOhx3^sc1Bs2AQGLG5Ohaj8T|@_ShN7)SL;6+L>5%VHV6KN!ceP{YsQfQ^JNIC3uRIQJboaAv;BwUMIqovjTc|3dpnKn7T3lVZPUY z2wk)av)C%!+OQgN1*`E*Uj^OYRM38P4XS#tMS$&E=uc8bhp#G(71hufqlUGc*5P*H zI(X}^NATD6@V>kOcY18ZTAPh%9L zk@R;b+KqQ%+`!$KXtx`^Cg>o~QwQer_WXZdh386L^o!Mn*806L%iasO9sA%^z7N+A z>0!+mJ$ygAAI5+7I6T!ReuAc@Du@JRWrpMo-RR!-Vtr<8~hRre455&kN9*brFs) zF5>OnONe}V3GNFn<7m)jj8wRS=OI@xQt>M1gI&e5W!DfDehuL(uEQbnI(8}DKu6RK z+*LNhw`e1*5Z%NP@l9M7-NG^PEkJY|zoKu$M)?kBm)*gV$;QarYm9?##;7YZ#*T@1 z5xM6s2D{vaM#){6k2ArmT_#9yG(mcy3F1eYB0$R&W_G67_TCf&Wz6t)s~I%!o1r4Z z40{He^Lp{-m~CN>3rXe(>1Bax6$^CVwg9i_fT0~0=u)yo)fG#;erw5@f|i)RnCBOr zwu06xD-?XT;=|@1d=KA4tLHr^Ro%mhN!GB@vBpzJYq;lI^C3p;e~6*357GAFAqq#>!egr~ z_S~~Y?_^uJ^>~EYcm%hrkI*aZ5p=#k!n65yC^%w=Ru4N2D!0RsvG(ZFv`3YVJzl5S z!?5RLOvGbEUU>}F(8qZ9?J?%gae(mw2c)?=pu5lkvt=Biw8;^IsUzfL95Jlb5mk$y z;OWUH*yQsBlFBDIJI)E8HJzYg?SvPJPWamCgsCf>vHGktH2s~SQR@s$bisIS7u4Cf zz%9uIYr9-{ex)n+o^eICuPfxMU2$`q8=^JbAhC2qSF9WQ{&hpU!c$Zodx{W`r#M&q z6jNo~Aztr}b+_FS6Yh>#jqbQQ`x&D5KEqf0XXu~t45NB_V5pJ@TF!VN5d8K8;hIelR>TCM<~z@Soc1!mteT^X>UqfYF zFb-}E#+mEEI2I5L_3~g$84`kWguwiC2qrxXfqPB}2LB6zfkG$(^*O)KHk9A5Q1ovK zMfbEfsL^cU`a>6mBD;(<=M8I%Q1a4bK;6``^4%bIu&?aTNOXiAMe6XuQ&khQ4()x+9`tRUggs zKE>D%F`LbXDW<+At1{j&T?l8;1p-<9M!lJVuG)@##=JUf9HA z+uL~5R>VWUZvs-~6EJaC0(Rd{z#ZQN*ySYP!Jhl4xQOd|Xo6R|QT5uuVq zj2)5$gQZD$rkjL>yGh9PPeN*L5?=n{xyDnHu~01;*(Z~sW5>6V{J1I^m;0o^UoHj7 znkmS>!t<1$roc5J1^S;;ATul#{!3G_a8D{+Zl|KjI~9uQsnGkLiVLICa9$}5x_W7l zH%Y@6-!weROvCi1G`NmVN4HWs)b-L~dN&9HQa|dNYTRs!VH8XMSVkR`6WMXD?CMwG_VbYz65i_!IPc;kQ46?AoDhsCq z_;FSi?7nBgWOz386tgj7M>cXUXT!iL8`7w3Xq08ct0Nm#lXK8#RSrh#=U}jL4jMdj z5E-Atb24)Pf(tLd0 zo{v7~@-gsXK3aKxdro>j9)8Nl%Dx3ipIHDkl>+$b6`=V>0p>dwU_*ETw&fRK)sF&< z8&Zgpd4(`pSBNo(3SoD<5Pw_?p&D6;>ji~y{!s{z!5?5d_XCcret?|*2Nd4;fMZWS zpg!~iHe`Q*!{-mk=v{=*Q;YCJxd>G|iV$(O2v@C(F#Sal-ozGRVObGun~P93tQf=Q z7h?g>>0hi@jHy?P(fp_wZvu+3C#jg*OT{?YT8#MNB^V@E0;rZ?=e`o?TrR=dhb0)} zSAx9Q5?m@NLC>EhxIC~F`7=r}UR26+tV^-?WGQq_N}=Lf3Yj;hNKG%r(b`gc|67Xv z!^;pkw+w$*m0`xNGAN!d!$Pw%40S6*acCK=)5-9EW|&Aw%Wx$t%b7PvtQ0EJyx`3iO{_!Jn%Yn7_ROV~P1O0+ds;z$1~WKFDsy?hl^RI2bns|wl%RfxJ;g}&BR5S~^+=XDkI;;OJYzY5bN zRVZ(%f^q+944qJoyK>d26sj>}Yc;m+ug1Z%)zCAphKgM^hImyY_DwZ(6Zv}zs>*yNvkmbzEWi`lBtHFaEoEveZ2B{Zopki7BPx~5teqMv|p`2|QR|AFI z8jP)~fwZ9pPdjQL8pK%><7=^KZY|7~*CJlE79Y3Q;1DMLeX51P`IxhN)}du+9fBs-Ve8yFd{|n?`*t1N)ay{HQ->Y~ zbr^QO4!v*Hp~k9?`wn&3?pX)vt2!KvtV2>l9b|Iqu(q@g`y_SP|Dz5Y+UqdBZ$0v4 z>T!NzJ=$j14Iryg?;)uWGLJ<=}M+bgReW z7xg&wx}I}?>v1ct9tP?4Sdm|k#DGk;BsGd}i6V9o;&=Eo#3Ji|YCS%RNN64;tZcz(SEcWoso za+F}?Qwf%PNw|+E!P3_f41Fs>PP7EqVkH=mEP-)`1U0!5%>5w2t}@}~*nk$8$ zoD>c6QcPGP#iC_W$gPxOm`I9JNO6C)6m!-};jbpehz(L4+9ZYR7AeGArAW|_B6PbH zR@zdm-zmknT~b`vk>dLvDK_twa&9tzpPm%i`=vyQd8fWy z{&0~$B855^EiNit#&Rj(=dW?;^S>>BeJ3DxL+jzT+dHZerS^>KJJil(j zZvOrM_dRw<5uznUuBH?pwn>qwE`{@EDRyp@qJ5nd7OGNos7SGE75_bg6v;|bZktMx zugLkU3R2u&D1`!NvZl%M|7a%vol~XgIf-*y#!0bfloSVKq|g}5|C|0&NP02`O!Quu9^gc;&zK-9MN(r`?@OxAs!TW692ht??ksyI?j0Ay^5_}AmU|=A> z|GpCR@syy-MFNk<5^Q`RL8*lVTE-I2Zc;B~UfsvY+qomY`jOzqXOL&v~*X z%Dg`+O7Kihg36h^tx3GiQM~QJ5`5|5v0YM!nb~#t5?=?Wh&s-a=VRZ4Gi~^|KFr6r z>&-eupQ}UMkvfF%@o&ZTz(%eQnz&vt=K7(H>j~Xqb@1kTqmb*5My^MGaD7smU5i(7 zwJ->)#Q@)0Ja(={Kbu+{x>bu8XKRsvkn1PyTGX$rMcT?*IL@!dmPxhvGNcw~yK7MO zqlRRH4`CDrohr zg3b3z1eRAKGOZE;;gzuP;{0M;{%kR-gzfQ4$n31-9Q8`1$ycJ+M9w$vSBWLRDj-`` zf!-Mv$Oy0Cc4-AhKB&OsYZd4^T!HNx6?h=3K$vU=e`Z%8s-qk(AIouwKO4vJXJjaU zRxY>pc(jsHq9>2oPc-k0KbbSZ{p`aL1;$ob6UW}nu z#c(=PjDb6gaa1Tq;EZCF_b*0EV-fxq6hRVQ1m;l$Bl9B2o+?6=W)W7bD1!T>B7E;r zgn1u7U~A?F><#$Ta(f;?0GuGx6-j)mvhcn zq+`vfbh!RVLpAp=Wc<@0XO@N~2huPLY3MmV4H>^vaVIww(_V3Ixbl9WUzUudVacfb zoP>siB-A}k;`J$#V5gac&2mX->YaqUm5JQXOyqp0M8urn`)d=ia5DGFS`x5@`)Kgv zew%RuBsvLjUBZtCB_N|N9_v^<0w2fY->G=4Qj5ol$?>?`90&8PI9&0GgZ9lhOx_X4 zV+nD%*gFor$~k}jO)Mn$Vxe>}7T1(w@j@mR?>@dmQVjPu9p2#yXVxEF`wkN(yu-U6 zG0;qjLC(_{C|`_$-KH4uGQ#Nphak)SSp_e`+-rov+X$7j2ySf*>vI{Zd>H2{F%)Vr zER|)r(=J9-u9%+}qv<-AZDRg@F(Us)<4$%omU>0w!e_efvJ5W zpj;e|H38vRaVs1XHN)|3W;g;`-eOnUTQs@8#kJFK@qP7MY#;d+UXn1>MucJ5y)ew* z8wN%BFwFb+21E1SpxWyVJTJY$w)JoDb=(_V{t}8taVU1&4~4&8D84NU#pE8L5b{E> z(JKUM7egSg7J|NGLXgR885lx!8ZiT3 zBcU`1;V*;m4U?-}XnH zx3gNd0RRJ8oiIL!~%jlLMmd|_whi;kVX*g4A=&zfGKIOYZZS--$I zofnuY`vRkX`Jm&S58m7Oz){Bsn`M3Q@#c;J;T(#&rp}^4o6pahz#73qu>th_NPcsdI|;Gr!e31 z6j`&LqW5<EOPVistgu4Trpq}>x16-dV;?NW9Snve( zza4ReXQ>vMIYN1>BOZ=%L}8@^2Kzc-=@|!XUEu(o?#I}f!sDwCA7j?8$7r6yJA zoC>nXh|Biyhdq|`u}5I09mYSl!xddSq|C6xfG>|Aggn9l9?!kH>Jg0lK7vt}Esj05 z#d=*^jGbYNl1~ru;Ppc+z5Ebaybj8)UJp@__5f>bAHaL(1N@ov07Bh;T=2h-r)TaX zYT13Hw%Z^z&IV!&8+h^<^wp6zSX*L^Zg*=09kzzXd~4KmhStfq_fUWR9yC_p!|Oix z@Gsp8sa#usnPRbHCn3@VVQV)_Mz9Zrwt7 z?^`IpcN1S_Zt~cu5n?78!Q}Z3ES`G<$${6gR`ELgBd?)_&(bVNxQb01u0kX03jW)E zh0lpxMuF~S7*$`w;3Jn{_W2?{8eYWWpBHfW@&#U|>^w|woyYl}=dr>39QqGDhv55X zv1a&L(Bm_hK90|ixSod3l+#G^G(`3+L&W)>g8TeaI2?EqqZCdeF!TfzmYu-Uh~xOJ zbR5grG3fty43}b$;^La4*q3O4#p?{vm~sS;8;@Xa#$otuIgG*ChoHCZ5L|K(B2M!l z^70NKN9zE>3-n>RLm#Ri_T$^m{kUDEht6GkFeu)K=-vD9w|FmR>FkAai7o^kUCb@n zgC072kW{RLi@S9&tavvZckRZ2qFp$)a~DDjcjB}5P7Es8f$>^9Fe*=*`xn~C&e6jC zty)-_wH>*ew_``TCXzSsd9M@=7^-Q&J7F7ARJNh$-BuJ}D`Ldza8Oc*PQ(@rT($*% zp_`$ouo(e?n=o8%6At@rB_qyt=yV>E%z1JIerDEJYJ5%q03=pwG1PA zFN4#qr5N&85$7)`BDG-&1|M4jmD)o&VcYUq_!Kk~=jY5s!?PLKGj0Z=Y^P(ufa%y`JPmjLPQ{CJQxWrd3Q`YD zL1M{dywRKt`?N{C-qIw|!Z@b|L8!#M4@5o^2pJDJf9EKJ3 zLlL!SC>FgR0_XKZ@P`ItWFQnw20-+;Ka|gKj+mq$#_IBU z^W45jTGtmgtPj>N>4QJMz2P>wHS;(qnOqT@aI-0nZ2@I|+9?opS} zdZSY~ZqOklYqSePMQwu0?7xEkuvX#3-xgtiU9+H)^_#Q4ehH}_KLx{kO+wd&AA-@o z@50A*jlzEl4TACbZ$fC#uR_k(&q7JTC*eJP6vAIf1I7w@7%g_JeRnu27gWvOvgb%M%Q0 z-wO?Cxx%5493kB)TbOnyOE`KoQ+T>HLr7efE|gD76Y6`V3Kd_Hh2-~1f@fr+aOzot zFwZ<*C^{7)2Dx#eQdgdh9nLZKp zjynp|wmJw!OCAemW9^0c9gl>>YFlAv(nF!r|ADaY!F?g`yp6DGm$l#}x+io`wGuRY zTMBNU%!SHKGhtkasj$((M7VJ6uHdlGSlD~_wqU&JrtoCM4Z*$is^IwivS57TqOfnt zc|or2jPNziPw;?Dx9c3EPVAnDCnKh7m}Cj2{XHNg^Ni#LX^!e;kVWf zVdg|FVPma^aM*vVaOvz8!Dz)M;ab;v!7xcp(6L!7h_qCMQ4>}P(rQ6??W-)DJ-t$x zw`{pk)~+a+$1fJfec<#UCrUa~^x@mYeA!VICgWvXz3CJUt|69u(R z9Jv5{-G|F3MWvBC^hO5NYZ>5>1oZi2j_n6cu%w zi0+QNB|5p}lIZxBQ=*#&heUpN_K3c@Xo@zx-5`3Gvr44-Wx1%Ux4bBI>TFSn@+48@ zj*+6uvjau4Ha$d>w*F97G^Lrl+{Gd7$`v!AP;!n@QracC*Es&dQ60tt-S| zY!mv;HZ5|GP!}XJ5PcYjU@Ems3yXp2@Rh z{`F;5O9!x$V}n?v+Yn}yJB-Qp9>Ky^jAC<6j$yam$Fb=56If~Q$*f|XPNJr^UUw*MP{0DnJNFh$}(hcuw~je z*;V7)EMu23TX*^{3onq>R9GZCQrLBQ`qRj%~`YXD6y3vy06R?AX93Z2eRxCbQI;C2nwG2llzLPv_j& zZu6(?jf*>L33|q6C3rC9B2T9LmGjrSz1Z&&KJ2yZ3$|U^msP6!F|7msEcoI})@%{L zX1Km$D}n;qvbZ2Nq2M)>N`sl}-w?K9@EaCAC5+8p{FYr_8_r(uh+sKKBU$0KC>C!W z%^aVKndWQ8nqrAv&5L1@x_3;enRD6t#xvWo3Cv+`BD<}W#I|ipX1#S&nET08HpM87 z-L*+)nQj@Z?G>*q<^Os$%{b)y$)$hF$+y%T_ekvBI7bwo^vRq9%W2 zUGqP&St~!Yg=$~e*zI3gt=>2G@MHs~H3l z*~}Ifx3Cv=e^`5CD_h+5m#yo=*Hg=MFqw&+ENONZ(^2SVS<3&I%*-A%->(PHwdzT7 zp*?8?Uzhz^+>3%&_ogFBy=ma4KJ+ZR56#fxHKF-h?iSsCw63}znH}y=Z$9;>+*1Rn z{Ko()x;T(xTL;n;qd}zikF(uO2UB>zA++9l2&D`iO3UnqlHF*|cXJv>qbJFb@Jxm@ zXACDTpW&oBcLdD{7(w3`jwJu!k))|OillEx(eag|sWf^taUv_3ycCpjM zI$a}6D-X<}hUz)=Kz}YxsGdu9`{z+}j7Sq`D#WZHa66#J`LV0Ty$u>@rR<2q~ z8Eh$SP+mr_BY57y(&Z!yT}}rUt)R27R?vxgD@pyuN}4!RiSnK)(S=FM)a9g1=SPbu z_mPOk4Hal3=fxfF3p#d}*E;V4Ex68eADaIo$8)P_Uc)N#KDL?$)UT#p`&H;csR{+{ zSVIxHoFBJ&E!|CCOY2lrsY$F#=F8QnSBM%Nms>{>KI^Dq>UtXNvYtkb+CaS?Y@o7! z8_CspBdNA;q=Ji^NWF0r1s>f@E!CSzcFz|2FQ3a6b&^d|rxt9b!0@fKWzjau^W8?P zr)iKQulJrWqe*`(HK|vR?bLF0JLUe^PLGah@f-s!O5deTt8=u;eccYKqa8GK*-o1N zY9~#Yxr^GIcTt?oZqCTqO+CAI)6I)IRQW}Rv*GrTcF`U>uC7am6Ld*UX)g_ay_ceA z?W3(O`zUpo9?dn=qtk7AoVT=}0_yjZmySLeXX}&d+5^-Oae#~#9Hb_XgS2_{A-ZRE zh=My0QS`aP^isleX>^W|a@G+lU2Q=6VFr{w=O|5ZJxW`L9;0K%$LQ$qW3=h$aT-~A zoMN|}Agy;ND1Grsn(cj(491)yYs*vQ&~}PUP8rh9N<*IOewzH_PSZTaGj!kk41E}V zmU>y7rBSVCX~6MwR9kY6JT{#t74dmWmb*X-ZWrk0;ENPwbdln}T_o||OY|i3673Q$ zQ+vQ=x;ya-eYlD zDUIl1M*EhVk;_RlO7SowX(4Ca4K%0bRh(~k(VUX~d0tngIq8nHprIQqDAdS;)`wV7 zro@6&CRmc+R!i!-Yf0-OEa~P~OL{TYiej{^D8<5x;&={Oz;`P$n|Y5kcHN^v*7qnp z<{oMOyhjzYtw~46nv!g+X-2Fyo&IG_0kSq!tYbsXHau4?)`tH5w4sLC_bFrdeR8tC zPdj4nQ?I7`4@qN!Es3_+ z(%4(JRQuYNp4QmX`jL+~@97bpy!?nHzK>{Y3FqStw4+9m9myKn@!Ul_I-FxiC;r)y z{$hJlJ7`bi?d_=|!Jce?+mqt#$CR|=F|9X$OcCLaY3#?xWH8o&eAYWq{uKxM?(0Au zMGo|*pCi?*a3t|jM>2ilNJ5Gu)wVd&RoN%hwc`n$H+w>bVNYmI{S!Ji(uthbI8nqo zCra{gqWByq3hZ(s%Z1LQx!0KnSUXd2lrydSHz)CncGV%9Cm0f5~(~GljOVOreKI zQfO6N3S~5>(8rG{q%|~^mMuypi+!nN7Me;1RjD-eMJhd1Nuv<`G}7IkM)jU)G_NR) z(r>5H-!AE7FfpADo2FBMLpnt#r&DlyI-UHIPDaBrsL!Gd5^XbRT~G$y6*9==Q3e$$ zWm4y9nKaKlldR8X(wS5qQ`?bAhrVRe>Y-VrW{^b}th4BdUlw&Q%_5gOS@gbhHW_MX zllSUusyvcSccXZmZcR2le4fqQ>KqE6kwaz{In?=V4n-#C(8$&t3V5GG9|qEOH+=6i-#;XuY>-a@Tk|Q^ zC7;sL^C_e~pX@&5lit7rdO53rJT?~4ptA+!lUP8X8VYFP%K~!jT}YWz3aQ$pkZO+< zQbBkjkIO5hwf73Che8phjxM6p$ifC&Nk9U?AQNza~x;3Df?&ua%iy4oH zK2c28QN^TQQB39cifKWo5-J;2LTU?3X!nj1N^mWqrqmL;*;GQ;UzAXdQYnS$l#<1Y zQtGj{l;XWhNh_z6!aGXo>)TSA+qaAkPcEb2Rb`a0zl%yRm#rJM%5ET7C5;H>Qcy{~+AHbNvr0-< zs3PNGRrFG?iuM^-(QVr*(siq%lkruQAyiTQl`3j|$Bk{pY6{b=CQDS4%KB=`v8yIs zk7`O!tfuZ%O{=d~lk>Z3O6XBTStDyGUcZJMO=@VlZ4GsD;oH$QG_j-<_WxLQl%n_AN7T1U1+>nM489W^bh zqpMr%NOr7_3VrLykuw+dsgCYk;>WzKqbL9BXsK#Fg-)#JOs;zRY+g?acJ=hrrJn9Z z)>C$VJ?(6)C#5^}6!x*6RC+Yf;b9F_Gp&JsE@`0Qn;K}s!3G-b)7BWks@g~obsA~NyhhSr+enLdHxf=Y(r~{`mBlCe>Bmb zp3S5-yqQK!X(r_b&GgcwnR0hD)8?bi-0o_olM&7IBD0z1Q!_btG*jNaW@>uR8Ihe@ zsJLGXd1$uK@)<4kWg%ZTZ6U>-Ej&KEh3Z{fsB>rwX{WXjD{Y}!jV+{ct%cq{ZJ~^> zEwrjzE8QK~N@inPNtn?}iVIt5zDX->-_}a|546&bv#qq)x0RG*TB$y(m8^tTdehuW zTducK#nV>m%9#_oo!iJ*rH#xq+Q@KX8;z8-(G$Zq3R=gRlvZt&bD)jX&a}}1uQtjL zZ=>5OZS=mdjowwY(e?H=%DCA^yPmaCpU-U+`;Q;nyPeJqX{U}c?bLl*J892pC%t9u zyd7w#zT4XA=H7PlJJ_v~foVsqXI};aCSPb?TsM z&kh^0#zAB@@ z+cN6+P(~-8$w>BEM!i1r^S<$G{*uw0PIA)hCZ`Wda?0o{rxgR_bbYX#w_S3|87Zf4 zV>qWoTTX_P<&>~hPMfUcoarDZe``4@+45ue$*J5Hj0y+);P;4$VJZM?Rov&vxjhKd)~*uXhZuzw;qEtvw*8KKtcV!0&IKjhxE({i^Md)6Q*j zin5fGxKU0G=5ms*lT(<9oGe$%No6H}W=rKXeX*Pp7s%=N9R7?Ya@wyaC%5TxIzO4; zkB*#{Yw^XnZnOWr{T8~Ha^(LqVY9Tc6_L1z;? zXk|nPb@lI{RJRVAe!7D)4tG$`Jsq@eYX^C*=ik)I4k|X_`)7CX=hH#PV>+mtIxj=H zgC=zApxB@7^y_^)EqvNeM{c!KfV`c;>p3Gw+DYYUZzG|#jb2o= zQKtgV-brqwkD+bU!udO14sE1w*G3n%wb5GBHqH@lqapfjv|&OUxesrnIOR4&)?7cV6QFqH&6N1AiQA@4WZc?BO65(Iozg^-pe8DIY@#9io5*@&6D2Keq88mI zx~17f*OZ&6@^>QzylkY^*Ba?ZZ6kT-agI=QBj<)SQipvb*XNumWYkD&^&4sZSl+(& zYorl>8tBQ31`4^t`9jqVRG!7#>97X!IM+az_BC+kWdqkk4K!m)1L>$YQ15OHbnAUR z1>dSC{f2sK$*ZTu|7-ub9q?~|JNqpJjx(C;=#x<$jhn@7i;;C?s#HftpK58^?ON(oUrUr-OI9JZ^zC#l9obb& z_gB@D-mF?WKBAUVdel;329cu=(Vl}u z3)T^J)h8+%#xeMvh;BR<$*76r1~NtZ<0I1SgCcD;70G^ zia_S)1$w$ipe;rMHB1pmt-nAPU!>%AO-k|QQl85|N)ZlHI%z2-!}(HD(3Da-=Y;d1 z528lS3{Nj7SC4XP-&0Ns+-}$8_WQKHS+@=-9bV8??rYaTFmFGpYtFeflCKr*3a}i~4 z;~b}XMWn4!L@R$6(&k%*w6VO93_}ZPlzkz+FfQc$@j{y4r;skZDxg)(1tg>t&_L$` z+PJlV0_GG@v3dc|sgciZ@_foK$R{t~d@{Aor=CmmDR)dhEl|j(n!9;4MaUzs&^)?! zD3AKC&ZC(V@@QF)JX-NMmr#{UL!)x(#nD_!GRdWtlXK~@688h2=Fpw$9GV-QLw?6{ zsKX?Oeoo4vK}tEK@g$p6tFq~LL^fTt&!!;me=gR^rYBvq>Ck=dmrAo}LvR)q?a!iL zOS5SD=qxh(lSzB7XVTt+Oxo;~N!Xc5J?CXo(-7|Ce#)TU?HLrDl0m)BX3#O&L_tB;}{;ha-t8^y;1qG<1c zC>ruSl1hb0TId@|HQOR-s%|9tDMr%0+YzLZ7eTAeMUdUP2yz-9LC(Lz>8LE6bNa(+ zl0DDOuq2$))WXT=4bRz78Ai4Nd}$R%MtWhCrWi&aZ}Hp?IiX~6Hk6JThmz~)P;%k@ zR`yLHw2pJF#@TYF6+$SsZwSwy5KK1M9Rq2maUlH~6-dRO0?4v1fc^^#;EdS->ZTh&_T2*L+Est<&-l~6 zqyCh%#Gl$!d0*W#KYCy4N3Y%d=;nGql4|*p=Qm$k#q(cu3H7CnoxWtC>r3rjeQDVh zA1X`YeS?R6$lAb%viteaqX*v9GvAv=pY^6GtGsE_aBmvM2O$3nUUbRBi^6%op*#PVE7+rfo;E_0!~gLs~iN6xf4&zX8UI8)|QXTl(7s(pBlB)OcQ zb@Ci_Gvxid1I|&*eJ8q_QV($sWE8fNcEzvnrUtd}Ec=bfeK zC1>f|-7}nBbcVL}K0|g%r)j6;G#OlUpzhWVRQUH4Ee<(FRTECp$l8-+V}6n%-kqQV z7cS~2C@lXt?c#me!|og-;ovcv*W(!FL?5Nj(~r`;rX#dt(-AuO(Vlj>+0(+I_N179 zm`WENrj<7jaYoc3n%emg=XM^X5}ku|rSbsXF*!gT&+Pd9*wOC3cGN#{Kc(pIr%^5Y z$aT{`y8M1GDLL;YZPmRrEyI>HVM~8xd-%J*hxUK5p|0*WB{;+)0Yq$#e7Upeb8+P~rzG`sZXtiw9WI(d6yque+T>8n=?Rl(oW=-rU|yYI`@+l;4|Zn)fCeK5P?x$=XPz zY$I8S8l$yt1AWt=5yxr*$;UX&nj5 z>u6D|DM=@qlDfE-b}w5?@z+hbU2Z~GJ{!{oCu1sCHYV?wHMDZV8v0Sbn*5jWJU~}g zk?Xcq^yr-tO>i)xZAwPGpLrz(j9y9J`76kN&I(%Ex}22EmQ&f|Wn_F{8Qu83lva8y zrJO-a=~sdw=}k5yOJNBeUb2Me9#~8}Ef>>*SBt3k(M43Jz{i_>7Shil3+ZIC0X?5$ zKnCIh@>;ThYA(*Fr<>-}_viEI`=NRC^v_(XK0lW{2h1gd*g5oK{2X#90{xu>+TYB0 z`@=~6u7uX_mXPB|eTq1xPx0OKDa3C!om896bJ5Hq)ss#K4*%-5s0ExKg8R+p~d znMpHt&7{-sXK=fB20c)iLH~J9=giFM^gVhS*Ui(YD0eEIm^GCqS5Ki!OQ+E8i<9ZK z#bmO4G>K~WOd{3K6UpM#MDp%3k@CGJP~CtD)D)#d;%FU;%hIO9Gqh>8IG)}bjHkfX zaWvj!9Od2ABCTy&(9-28<>#Qj;=AX_80!DB3t> z6b&yONf$7Zj?|5yUdu;N&;Nu3t6{YDz%UB*NA zI<@pwr=nmr@>f@*E%8HWgw_zclr@-+Pa90iWvUbbRZ^`TL@tJd=vn(fl9&wSV@W*! z)+Rna`>;QC-QAxCz3E442m6uAHx>GIQiX2(Q>JtmWwKRLCQaYI)ZV`@*@X4s4Cg*{ zI=(l38Pl7#Wb~qnNxew9uqUn4>q)+X5+5s2;^Q2O^kIo2{ny%qzOL%Qd3)WdZGCr2 zy48&iSazdnkGj(Hon6WQWfz*VuM5?D=uAuPJ5&941)6zEfismm(I=-)w4hrjKK}4e zJT~~Rcyah2ap0KWqJhpYal_P~;wHWS#HIKljxhKxJ}~?ydK-NeN3Z=NrkH;g`&oVx zZLB_u+14M#Tl?ONUk<$!|KsEAFCE^9jZS>r-R+fV;Pp~`?Ds;n3w|y>4}T`EjCm@? zCOi@Eq&yaTWIhr#avzGCg%8AmrT4{8(tBcM#a;1O%^h)g!)>vk`Ib1n{ic{8zajp; zbX{C_?V5P*=2bEC&K0rh{$;W5(Iv6u=|wU0#RYK}pHDF6olLy=p+nsNxn2D4Yny2Q zqgA~3vqhZsr&)CT*Ca|6n#6})8pZ#*HHZp|_2N&ZI`L7jT2bs%Bf2P8i*x%`i7)zB zip~QoL}gVHy#|Zof1E*Pt}YeRhn9;khn0!LG)lzqLobIh#ybCqk^&4i|T7hl!oELq)&w zA>x4X!J^N&An~_Wptw~lKorLMi#^BsiL1x>ik_o=L{ZaQd_2la>@><#95~WL)EIGI z)X;Dj2Mu=b*1=BVC{;(XNc)U9V4Q=veauNQe$;VMrg2n! zGt{0xgG1u?K?lTV{r8Iv%6r9--h0ILO4g!c_g!Lk=N;mLf7`^CUt2_jADhM8FB`=^ zA1y@7w`O9}%XQ-Ir)$OTkBr5!_g0IuZW)PludNXEFD(wa6 z#XNC_bdLC_n2GNB`r_#9Sz<|=t~fVohFBRpO`I7yMNABtBq|0>5O;cOi=z8DQPFv< zxa!Pk(dWb{vEF`!_|IKp@qw39Ua*2uq(G6s}&h z5e`;t6NY722seX`g*3-y!uh=mgwy8wg6pDbLef-i;rg&qf~Jz1;QCcX==4ZY2$ppc z+>U;fs;_w{eWra;`ld^bbkeC=Z(Qz0AKcPq#3j`)uQj&a)lN>t}1*b=KcipsD})lYxHQ3@iPwQYZcNn*sX2 zekAC>9bBmIpjWG(YI;fE_Ru5!X1`DRo7XEy5_Tv_au4;BxHzgwG<`=&+@rK5h3V5I zi6#1y^|cEmGTAbT(rsf&_vaRpx=-6A3;xb15@>s)1 zQaU<7vTJ;ZC zuac*>|4H`j{Uh00+KC-5?ab^-yE2o~?o6XpkzFk5$!tq{vp2rp1<}jAs@}I&5XaL^e8ZGP@T& zl{rLCXMe(GvTY%HEIn{GyW}Tf_q@T{Jm#_}xB1M-*?>JbyNH=OEMXbPm$Liz%h|UB zE7{wk<)jv zCljq%?{RxrzfpVHXZ8K8aNq%E)b|i;=wZ*)6ppgxKaa8XpHHy4Z%#3Vr>9x`-LtIE zYezQgxf5Ic_#9h%-@s>p{0 z=K8Xn3_n(!?9bBT0+?H5AX^g>#Jc$hvsBLzHr+LpWu6UVy-$WS3;PHbxIdB=TSu|l z?a@rw6vJZH$1z7WVL!pY}C|bwnsaKMQf(A@}X(0VqiMU?vue> zx@WS*|1#OT?^(?0LpJ;KB8P2zn9Fi+=CLOi^I7NC0;X77$i7L7SbIS+^U5e;(-KNq zRd^ZG^)F{Z?oxK+jKI1c71`i@#QN{3U|%*=vI^rWwr^=Q>oTu~IqBB2Cll(}6wP|J zWk>@%+P9G%?%Kr6el{`A-(d2mEo{f_R(9_~8=KeI&RoO}mdEETSEtBXN#q6Q?{|@{ zcDcm99KXy?@4LcYZ@bFotiQ(WmtSZ8b8j&J={MP7ty_$#-)7JI++oKQ?y}ck?lOZH z_t@#%_gS>;0gI`5$efEGu@z~L*|&%%%+>oT`*!9TTYm64bFzBDqSn1+VTP~R5&hRp zZ^9dPbJ$yE+4mi5`1g+W{rH~gKl;EHU;fBu)PG`KNFK5sFWxh}Tv8y(nVDhjNs?8NJ{DK1Z7# zl;BaMgbMARco5eUp9b~9XRls(tk9eD&3eQCZEvi!>Vxk$`oMoxU#Qjhg`d7MzUC@p z=@=DwMyNpS+Yh&#`{DVIet5L6KiVGkN0Qk9Sho+rumuBASuzktI-L0yI|zCMRN?2Y zifg}A(d)oqK6idF=9mwGqFQ^(OLb*L&2Me@0!81Zc=+--*8?ww&6 zv1T|{)eVQOo(AkQG+;Yy1XlTtfJWz$xMe>QF3(3oeZwfkw2wmXd77{;&_w>|(Rdm% z8r>DgVBpCy==)|2zHAohFKUlb2c0jXG2uc$CESq`0+*`UpGi_w^@Q*J%&BW3@ZJBxU;~Jx8RJX zIcRR0gTFK9LL+f5#w*XmFo${g@nRmT*3E}q?R+RsSpd(d1^Cv(04wYb;Q7D+1uGY# zwtOLI%p%SZSp?hPi#R)KF)A)E#-e#kP@K7hGq((3RQ;HU5m%h*J9opQ=BU|MfS*bs64+8 zWgpfd%zQm8tJkB?crzsWnemt@GdNqCL)Ku9e-kY*B-jFje_7z~whd@&-hi`HHbO0w zGw6PAL}#l_FmBldw<(*E5V9Fbzc#~rnx;SPAI?nL~_ort=(6AlKuV34{CZA6zWo~=$>ct)$SYeCXIkuRf!Z~$^_Tto) zy*R1250>Hkp!IVfu58?oT^0LrSHlkaj&?Zt&<=412auk00HIwE!e-||jBGpz(mDj@ zehBf;58;L3VGK$?3@t@_47Ik$*Cu-ujynQV_anIV>><%Cy`is5-|f$;nbm1z=czIILQGvUJg7)(*dKG zoW{DO)7aDL47P7RgSo;P{82rN*u!Tr`odWr%jgK(MUFUk$Pu3Lj&PAV!tS>tR_ZuG z&D;q$U7fgIa>9g%PN?d84hwM(Qk!!a8FmgQ>N)@J<2n4%aEA6uXDm744AWF+ti9}v zMV(wYFU$o$EL=ctE;v}^0@VjD$m#70U42*N?sUcAK+eLebVcPWSNv3U!}x`6SYqdf zbx~ZJ+_3nw8^(=r$A8P+L7aarUyn`^}w%x9%$C_gxfk#%yjg`rA$w3yXuJt|2(lqhja2wIWO<5 z7ZzlA;m~C-1po0u$~bSN8G9r0ls6nwys=vDjsE|6qe0UL)+>GR`-l%5<9zU$$3>cb z^5L+c7B=7+vJ{BX(J4{jxX(7ES_%I^L!nBtF8 zGk+ed?T>xw{wTQMk0(F;(SyfnsxJ$`@Ph$RjtIcV>HyTe2!M-9AoOMj;`)|A>~;^t z^V~p~T?<6npFngU8-&FxgE;pq2mz5nh^+}i)QcdTR}RJwy}HoC^)LTVglG{?c^WgO~z#^ck3c=R=jhuZ#l^!JO$e|hncUx-K0$9OF6pMa;+ z6L5HK0zMp0z{cPN6c;Dp*OdfJ`QuZ>dSVw;Ly9;t9l zO~s?SR7`)EiUWUB5j`{wC9~7`gzq%uA4)@@UmCV&r(r}(8d{&G!K!mQUTUOc6H7;h zSvq>#r(>yqIu2#0b3Rr&e4nJlsZ$2F4a>mf*%^4bHUj~68PM{|Kt^f?)N6U1`P~fE z{m8)Y0h!R8k_p}Anb6yri7}3u=oFQSmXb`I<#FnxUuUAITNb8`%tDML3tvsM!0fVM z=aB`!B)+dA3*pzZ;P^2M>w0Bl$k=Q&&CSLR^K863n2lXtoL88fjiHs<*l;}?ZXYr~nmGt(oL^{~gC+ZN(8-PS3}bURH!uek@*GTjk%RM{a&ciuF1k<4h4!*s&O*qA z?ulGz1mxmtdM?VVIqUES|NTQQ0(#^@aYP>W>gA!rC=b7OYxV}+RIU5Lo|LcA<4#MqWX7~L(z_K$_I>Q)3}wIWR9EQ8PUi;!ws1Vig0Ts~C< zBflaPCKjO^XC5qUDT3XdBDlRTf>-BaI1DO=#rR^3X2rN^RE$$wi_!CNG2C1^FCnZL z2ARchrec0C#b|v{j0>NNdD~WkMAZ`P8()Gkk`gqpD1pW15?tF~f_aW52oB)ui6!V- zT!Ik|CD6K70=4HQ`0>32^@^o%P%Fhqol+D?N-=pwDZ)0E;;n5drZ|*hvv(|0+d~US)7rFT)${GAz(9!?~qp$TKTL^R6<^?khvJOBrH= z%3z&X28{x~T~!7?7Za^_$}sJ98C?D=<8h?rct42qAIFrV=k#*?oL7!(M&*dzSPm1L za(p^kjO>yPO$u7q$X*v2gm1EqMa%ev+hw3|C#?NvT_mE=OKq{ud2fr%8aEv4vZE5+zzQjBz#qNkq}4rTvI^8B!Sy@0+bdCobM`Nl(_(okH?F>0wy05u+>SxX)gip zAp#uY1XyMWm{26(DGBgw6fpFHfQXx%WBFKs*&6}jUj^{6HQehV;*pAo%W5L>HANhs zAY#%?5gia=u~@`KBN2M*MYvgtsM#gr<$e)=j*9qwM#Kv@5mmk-oI^!SkLBm2h%n6& z(NxUS6p)Ambs|z*MYLQLas37_>%NGxXCge_a&E{M5g&eva8)4mP$by*C3FlV^dCwv z7)97Jj<`Kc*ffIxeS+dVLiHlTj^%{Us|j}N2-h|c=dtkPb`pa25HjruIrfC869hh- z#M!ijx9$WlZ$4BN!1A&4i*h!cQ4t(k0IGyh<>;K`^?_c_{Y?e;*La9}_H}5#GNb?0e1Y^_DR417H6{ zoU6yr=lqniAB6OuJXP>-UdCU7LZ=EOC{$o#mkK0z<&2f?6)@{jfk4FyNR=wk-m?O2 zy(&=By8_;QDzK_=1^#deQ?9^pl?wQAdBa7oUj=Nr_;88j62#>=mt|bKamnS!7;vfM z=S|__&dX@y<^AI24(2j~U!y<2)+c`53V!_~ydFckRd5@k0-BvG;KA#8hu3%LAHw2a z{Qvlm|2Ld#YV?(}U_KMx@%xN_$ETmZAvC|_%jblICw%`y!ub1yRd)zmZ}R7Jjj;4G zaX*`Izn$RILeOd?@F^}BUd5-miiG+y{+x^WwetD@n$1H4()s_MOt=}x|Enm%{4m1R zK>qxF`LP}Z4OfDdBY_VOqUb1r4iXCY5`uU0|8hGoXEUM3jIh>(aB(Gn9}Ecr3ka7P zfBt%eVN>}vboje5hQCw836+ESd()3FxECR{D}NXM@^|&Sh&vxd41FcS@Ue(3cSLNz zD#Ao2Vsev+?^PnQ%0;X!5OE_zgmI#X(nt}CK_V7=iLi4P;c|+9KZiveu@$k}O2nXz zBAQJ^>|QS7^8yij^hL;~iqIG@V#5d#=Tt?6^$`)?m46?<_;>$Fz?hc;uH6@Ko zoE!B1Un!1%D8;)6r7*r&iujsR+$|_Y_ry{R3oONmbEQx|REpQzN>O6Wxxx$h_Ow#O zjV$HgTq)fDmGE}I1e*6su(qRww@oE*$SQ$-ByamXN-*Jg3103hLCCriOkPxi;^`$A zH>w2g$|bn^rx?m_ilKL_7|WZBv9h!nlH_8j1{UM~*j#b{nyjKzAqtsPwq z#eT&w`dfsvuZs|SqX?M|MMy5>ZFXD{ws;p|)QKXj4dPgUDYgapxvl_(^9x`;f%A_B6<}|t0^E9)5524TaIE6CPewlO1m)x1 zX)e3@x-s9!_-|wLF-w_qqJQLJ-=jRdZOg-kl01~e=Hah<9&``p!D2%mY!`Bw$kzvP z8|!Z_{yxh^i98n@%5ynuHy8Una&hM%x7{}6;+#P)1f5(w=%0%(KXdTyQ4XH9=AgbX z2Y!(`SavQ4A8m5rW}Jhb`Z;hInZucGInaKejh)xB;a8E3G;T}gaGNsWP&S+`vSB(u z8+=R)ReiX9`6UaFZ)IUaO%|%svM|7x+obkcaNUrFr1@FM*UCa>?<@p=%7pEWOiZiH z#M7iq&Na=%5W7r-nP#G^BokXla6VJlOgws-0VR0`Mig^icSHsToyowr?HQbpl7Vv* zGccuJ23o$RW9_YUv{t5LT2eaP+|$uwn~qQig=Q{0%V=%bT@mAzAN@?A2*E+iwdFc~qy$#6fKjIHL$7%xf2 z{h`Tl`;&yB_mdD;orD32NjU19gytRGw^@<|{c%aKP)x$^mxb6Y(g z4-Uk0j#@lsOpWL5Sv(fKk3+F64g+%Iu-zw)^S zjW1r&sI-a3al>e6j^#dU=V%x{h(b*T=SoFI!R>eyF06|}uNhI$Q;CA{+emC`jf7bm z_kmp^p|LFzujWJ|RXq}GzenKx&2X*lu% z!;!zAuP+aWlU6v^b`Hm&dz?Kb4TEh+826XMaBgK7zK;vTrY>P9ycdf9q@mmw4TbrE zP~Ptqij!KQuvZ9$<(&{nc;7(xz!22!4Z#7!5GZSgAoh1KG_D83uOJv7y@Ii5S1{b? z2ZPju@$gF!e#nCGFP$&X1>xbQAdp@V+*N|G=v5$p2Ls_B6Nr(=0+FyL5Ce1qakNVy zx3L4DQW^k5zW~@-2jKjI00gQB!1we2I92}Gkm3*RGya?d>yH@Tf3iT)AJ-oEVYAc^ zR|EVocaI+;4E*p+-4A0v`(kaIFYJ?i;eN^&UTb~fG{G0vU3{_Nwhww2`Jma;2S>O2 zKvm*{w0=I&dFjpHNpExy_lBjNH`14QN|_w&^Y)7!nUD9H-dcz=|q2TpGFfS~7rH@!We^7uT)NzZe} z*m>yeJdYvlJie=(N6RyJ_>emm1-j$SZg-rY!~44ixFh6+8x$+uus6sJ_0~LJ#9TM< zc~>~`!WEGfyf2OSqZRLVMGjmM(a#mfpSfU}=z`w^=>x zKBv*6$N_S52cC!E6b2-pg5R=J`26l9<^-R_e*KehyLSR^&L^;U{0T@pj^q8oII-mz+PWM=xAddXT6q+cKOBKZ@DY5Qbp$21?Xl^sJzi}iJ|+56Fb^?v;Qun%_w z_aSBGKCHjC7w?bl#R0XwxGmUX(k5Hj{MiGa*gc4xw+H?YY+&bPgISt3cwTD_Co5}o z?P?9XTnD?t-@KF6fWlg&7Syp}KP?9(CP`@Z=qswP**bA6sF%vlV3{X1I`cWNt^s&C~?@GaP2wgoj`EjiQH604_M;>d-~aNWNd zj=eWyN9HEXSh@*spKgS|^G1vqwGm;J8}Mu61}y#00#2b8NSiVA?9IF<6D6ca3oAm=TWjH$vB(l{jm- z63-s4fWE^DoKRhX-RGeub}nM|=E6oc2b#O)pydy+IRv;r5m;T%kh_uL=O+nfdP=Zq zlmv&$^>J*qK5U-N#`4p%p*C`S{o{ZT=09$A-n@ z5qWbQTKA2^D}{0R6{3aT+FCp>(OAfg$0Gje7;HZ=27~&HL3#XWt^-EnLX##IZ`4HA zyHQX$Hww!Jje=A9NMy2+sF#g^eA@`LebGRoV zLOq9~@9?2GmZy%33)C_EiW)ZVQiIozA;|U|f~sLdP?tLx!u-KVx}=KJJ5;g!+aM^O z9|Wn|AZ*GSh>sYELA2RFTb$Zb+Vi@6G}zf{KclgeoA zrHuUOzVMjT7p9ecFkp2bG~DkEn*+U}z{gF!1A3vSW-pv7Hmv;pZb&CUiBYK z-^*EIp5Ixg^l!|o;Vb*cd198GzOc06pV=+RC-%eaBkOeJ1N$8Co?Xa&$HLp*vK24h zu$NumutTF>vuAT&vBeu+GXJA5SYzOG_B{6)`_lT9y?yqCUF!UVC22fnTO^N|;`)ay z=HLUS;d7sPr{81G>h7|M_wTT+KW{U~LAROD)LYDL#Z9(v*9~Uibe(mHzQzhmud-Da zudo}hFSFI%FSFv2msk&Wku63SP8``F5c^=f4o#sdlY9lLj}mi78j!^SJsu$h|GY$~f_!%QpLkG&PF&Xw5N zSdmRE6Iioc%GSLoXO}y12ANtJi=S4?J}l#N61EpJtCK~{EwGS9W)`sc+I$vvE03N1 zl*=r7=CZMxIqb21HVZV)Vl!cF-gpU zC9*J+1eRhG&(a*@SX5XnbIy%nmJQKt(w!*w;Zr0_Rf=TBBO};*y>RAa6vh;Hgfi!o zA?y>MtFbOEh~-oSvY(d&7<=W<4t4TpF{*y7Vxlj*Y~aK0ntQXm`@Ps@7f)6h>A_<2 z&$AXDW#!NIutzF3?2lwO>#=huQ}DB5Z_2l^rbk;? zP;X1NT5l8kvtG!mjcrs-HBZd`7K%X^oOK! z=2yvBmyZ&c%WoyOG+#-y4?U9{sCgtQP`NL8z2&w-nP4JXNoph7rww#lkpLRwf%8yFE@3Z58M{9{^=2pq$r4|yy=f;w9 z*X0u3F$*PCwM=5MZKgz_(fbe;tAG3INPT0oF8Z#8ZL@cj z`Oo${Ibn9fsP(hv$sNm1t<&R}#?bP)gD#eD@7i7JdwR5V#JBm<{`)PZJD;AC_RRH` z_O*$U(&$X-zj_IwR#pDwm z*v~$*nf1LnY_VbV*p%y~mYhCc3lB3zx7C9Z&Z6y%&3mWvnrM z1)J--l3mvGWtN{;v+zS}m^f=4D|QcHA)^DC>6ajO>QFG7loiSf-NM-ky-0TTQxrS2 zKbobb#jp~iSmvr0$GU%uV>Nf;nd#vKR$rIM`er7v7>(u@kq;nb`peORki%lZi6c?ki_1juot@NhSNHR>jVJu438O ztC^^^hFvVLW%Fa|81t@Ys?!?ST)jpX*1d_Py=r1fXPVg>&SMkhw6ONTEv#_iRyKV6 zHdZ)rJNxu)JF~vIgZZ}ZWSh%&vDl5f*_tJLm|(k?eH*%umHyqwMm=a{B?sGByPPr0 zSTJwz{VaI$0p_oBkj+;*#IznBVy6!tW-H`J*yEU^%--`DE3rM!&T5}vFMge1uWz4Z zS6WZ8YVm)}E&Me5w&)Ct9DkNQ?thM%e>%r}FPvuyEf-i~#znT)?-H|~d6~T)b%n)u zzRHvyUS-So^Z&8SuCp8AH`r_Eo9xlJTWo*d+brhIZKiwb4r{5o%e3R}vGq&uvwE8c z?C8LU?8v8wtnS<+7SQ;Z4NiK(n!KN~Vf2iJYCLCK+n=*@=U%W24KLZQgjZ~%=WC{K z^Md3oWYuP$m`~4k*8OQa%iRB&eJ=jOCsw|))%M?5 z=*aKP=ht^O{%Qw%uK2;Cl76xeOMfxD3BTEB& z#oeKGq&rR;_rS`M9%%2Rg7xcEaOb)Ttfurtd~;7=U@tu1+zbC+^+I>&-uSz}H=d2| zgSNari22nA<}3T+>iND{X|0N9m8x*=#n%)MQN!PRYOtBv4=c9y!$z(Ch>!1&@HhS8 z;XD9i_Yc5(J#|R4xzE9Ob)4`Th)JggqTXx}{)h*0|3nRh_-UZAw zyo0o$cS{SmCJ#nb!(jAK8-k?pA^32A2<+^%kfrnBvJmGc1lY z!=Afl=rnm8tg6SswVOFs`k7A7C*#59$zTsABX-gh zn98T%)ZZy^@SKW0`=_G!&}ndto`#S+(~vBhj=0k4Sk*Bd;}_4so82>zscwfs!FEWy zWQS*_GhviH6K-#3BG6$L0vl$*y_-FZeeCh#ust${J3w=j1F~*A;Ek0d%!?ecyxkE| z^JZhCVm5rZf6|0ibMWcN925+ni(%1oxu5b}ydOUg=6Unr`EDM9?dKz~c0Lw$T7VHt z7vRRe1qe}Jh#%`0V%3?2VERtzh;xGWJtr7iJ7Z{pGk&~t#{OB0u)2B?e*Ia5Fjp7c z+~IdS|FZ-a7A?h;ElW|>%@emgJ)yMM6Ma;@pyca?I|sZV8RU&=0p7TD z+#7a7m!UFb86KZmhMv01p&7LteJ(A>%h8-!7qbHMudTrSF+Nxj?}O%>K6qoY68(}^ zV(6WfP#w1lFSxH-?cG(dH}}Qm6kkle=Zg~a)qH<7KHpu9ALIP+EZGlx@Ax5rv+Q~$ zt>N6jHTXJqEvCk=MdX1_Wa2sz5y67YN^8LAbOu2*bAp!HN6mt##gj)pZ--(6Iq(4#8mM!Ek&R zjDr(HpqU$jMUO%dZXSwF38C=48j1;eVR#)HhPV@9_%kRROMSypwKp7Rx<}x~;s~6o zkKq2H5pbCqiOPW%oA*om}DHRpVQ}Hk<6>5#CFh84$=^s)tvws?25IhY!u4(uh zl?EnF!-hj?82ls+JCxHQ7^GvjLpp~0rz0vS9VfP@qx02tn0`ygY|RYL$H;)&k_^m> z$$&vc209LBp!G=x)+lG9_vlQ>W@Tc;noJb(iTw^mCT5?{MDB-799PT2>v367a>_!t zkSzQz%)*o1S!lbSh4}ATu+hxMBkOELx@DttR5mu2W#egEHf--?Bl%Z04h_k{Yas_+ zm*k*tbPiM`Irz+SaQ;pX#J_UjG$a>)MY$+-&&8;yTvU|iqE~A!R&j3M_V2lPHz*I9 z6Y^lOC=U}u@*v{A#CkjOpmZq@XFhPh;=cJ9H#Q$<9P{C_CLfnl^C8sdqv&`(9z4m1 zR_6jt(<#7`i3M1-qySz~1(+o+fXs1y`87p2QeTA7V?`MBs0a;zieNan7^M@6@nc~z z?AI4_CRs7|)N>Bt(PBJ$P>lP(ig8+_1a%fA2%1;ISsf*~mRy2>suFzPUxM|wN^t#4 z35?am*f2)Sxkh4~T_(oEXfd9Yh;e;~7<&o!&U>S06l|k)u88-JW z$34Ar7;ztTU)OTv2bFV9U^#YIm!k#cD7sdTweQPe)?I?9!zD3e_qpDq4B?B`Np8l;X`l zDXcVP*kB@qWCmvuE|Gx+a}Hs;3`LbPtllSs(FGaqJd+{nw+uZ7$dPC$$A?LB*t^J) zzfO+-;`y;yjxJl}=yqI=j@xqF{3u6#w+i@ZS3u3Y0?jikFn%fDZm2;2)C#PUR-kc5 z1@4@zz^}U%=-FO@?%gYSIjqDvvq}`tsKgw1ejHGVl!QvCh$|7LsKo6s2s)U4@W8RcKJF z#%bMZ+@4U4oA%W>zN8uz>#N}xUyTu*XK=E<8Xj%cxOcW1b02U%;-_l-=u!jAK{fC+ z;9Nve4Weh)aGy=iLI|wE$oLvODyTsgXC@l#t-`_{r~crAj= zYO!fbEy5Sp!fQn>EJJEJZ><)JqFT(UtHqr?wQxOIi=#Jcq5YCG7dvWE(xVP-nsqp1 zP>0jjb=W(r4*9Ni@K{}k{t9iCjRgZ9%pO#561*Ut6u z=vNO%oq8CV*5kWvJ$B5lhr35TKKa!nG@_ojjrEvSRFC57dR*Slxe*8Jp?%PG0d~{?X5WBeiyIK&(*Q+K18&7Mpgp4jKgA9BSlfUr zI~q`PumLML<5BHa1Dc;Tz@ohYO@ABEmoqH9G#Vk-ZNypAM!Xan@o8owUO4e%uSUq$ zHo`NU^Dhz_QJ>uivogNr9E{%E`F-H`oovLp%ly83jc9+_h*zH*asF>3DpZ=_t=@#b z!<*1#*aVC5d^@oTs`gD-?$m^;rA@f#+k`hkP582rZ0S`5YF@%#o3c%n^9re41{v7W&oratax?dr=GQ-LM#GC{q`q&4%hzV~|IMG-Spg>%1#YM+U_VHKMr{SYjZ|P9 z|Ix_JRDt!D3Iq!Z_)Jk?>P!Vx=O}P$p#p)f3MhLjkg`I7@2eGX4p5*XSb>`n3jE!q zK>q{<2Ba!D`&fYodHlJ>3V4_EdnyzV*C?Rbs6bK+XK8L%z;F*g*QP+i0R@VVC{TDp zf!NauxSv;G1^ARltbnM=H;kE0+}L!}Do8&#zfL-yC`V2|ORQcz!v0 z?{uEew;B}i;Q4+=u7Cm8gAlF{EnF|IWOAlziUP0W6}ZjyW*^s|1g=NK_2~)Ms|c=N zKbI=7hU?q^^iF+_0&}Y)~QxC4MqjkAHas5pjq`)vW1uD5-_wS-W z5ZChqT;Dsm-j8_M468@Y5N+mUnlz(_K7Yp0W|XQo z<3ulB7CSfN^^Ybz`q+fyFPb2}-vqa7P3Up93AIO>VA|TmdG5TeRzG+xe59mjj(^$ z2#?2HZt#81{n0<%h>yD)(a_Y$Ib)4@TF?mJ)JEKlZiH1(BNA6O;*eV-Ue9Snr>TwT zF`*H^4IA-bXd|}vYeax@BZmBFz}~kFnDVdztydZ_{3Pe^wl!c+O9Nh1G@x5y1JqL* zpc=*N?R5>DU)_Mxg$oM849{;)4V~PW3{|dZKG3H^z>ajt!9{Ec3-1e)3>~S5^ zuhel4e;vl|uEWz>eq3CKVZ2SN46nlg-o^#MF zRV_N*s>QKWwFui+3yp?a)R)vkFQpcFVYPU-vKCg0Y7sb{x1$!d*upu+JNwn5PN^1Y zA8O!!zXpTP)!;wIc}7h&XcyPOKcxmYLTg~=Q^VWo8a{4RgDWOAc%fZ`*F9@+r=uEp zUX6^a)o?gcjqh8lQ6R0xu#9SmBdR&Ku^O&U)sRoF#WRN?IKDs<^x1;dU?Onh32X%{Oo0hQ2d zsKlFsN+>p0V#(S{{Bo&8`qWBvH>pI3RwXWWt%UZ+3b@>r!7P!9V=<%pnih;_?R-?JQbpUO~l zvkbx9)}G33?oL@{*cM!ddG4I&G@0AsqswrnPZ^B9lp^wWDOwMe;$>Yax@U3wJ-8Hu z+)B}HQYoH~D#f0jr3m{dhW>RiPBJkTSBh~nSq%GiVl*!hKR9*fppK7QBB{&HG7R4j00?rVzy` zh4^nxA>Pg@gwnV|bX70J&u;~Ic&h+=QGghE0j%Qru}=Y_W)?u%r~q-j3-JDZJ{&LQ zqiknBZWZN2B_bbV-1A{e`Mlh6u9On*&ppn=2hNn*Q=5nNDZFp!mxmn=d9XFkLtCFb zjQ)^|1dyoj(MZgA?N-4hrGY9ek2Vx6`Zpl zlg9h>X>b;$VX7wQSA9!G`;}De-kypzIjQLHpNeLOR9G3LVwZ9%MmZUU~@eQ=XNB)DJKbM z*CxS=Gp&k7CE=M;5=P(SYYgzQk%Xc|NP`m5G$#>_hKVRsPDIS31T5O0fMKNxxE+#! zwD}1zGETsO?g^OjBpwG2#KWj89%-TRxHCTOSwWx_+i#}u4!i$d|ic{8rS+2o}Cw^$n^Fz@jKe)eJjqc^EA)U1v+TVPUQ0lUx8e|71%v+1&$qF zj{W}2A=6q8zvIg=ENB^^y$sV%d1F_wH&lmv!|Aja;zGSps^f*SGoDBa^Mv~dPiUQ8 zio;<`;XGm~E}mHetFR?V(OH5cr#{A4tlVh-M~n*-^9Ik0M*jRW4Z`S{3eWVbltrjsN3{&av@g#&Eu9ANd< z9z*l(@xjU-E%#=@HDMOs8_Yt``I&ea%$+E-W+L%`9rmrT!>t~6c-}Gt4;RkBiSN@< zDwz(qDbu0+d>Z8G)1YTM4JB8m;(Pd1Ow*o_*;QV6|3X(*aVIab@ z(>4h9x50Z=8@TS^a~ICm`1;KXhNV_;6s+KJZvy8CPQZ*26QFa{60dwLQPIs3b`9fk z+kQNjys^N!ObZyBSRm?xIravc<8eQ8{N6DR%Fg5P=ZhJh6q#Y)1T#e6FokJ^DK2T6 zVtK0x9&^Um!k=TYt!ym*h{i&6#~7Iz!3h7|HbhXA zA$klpL{6&#y15x(UB_q~DH)9(R--ZTx;}hD^%146kJz1h2wSL!C7(vYJa-g2Oh#eL zIbAGTr;E2ebrIY+5^rXX2xLlE$9F!o3W9bKT;V`$H5-Uw+=(mJPaRj3)uCB60P`je z;I=}46o&OjWq&SP`k}y~AHtujaWjvlhd@eIW8CnCB;n&g?Ei=2~>7y=CjqZZ6gSueyw$89~=#0rv zJHaG|uY0B0iL-K*`23#|9-RKirvLrR^2YsTCw=~~=Ow?{yVJkey+1$MZq5)3U-5&D zEbd@?PJL$qV1=>kjfKhNHlpJS6w zpJlNfXV_N#GwiJMX?7$2KX!53DYozaNtWIFBwHvt!IW1YXLUu#nAOpvY|qCdOn2B3 z7VCJJosBrey4M|K=2s3dN2LR7(b)ZLjytd3Q#g`rR~x(bu$5)?X=UR@``B5&7MoMS z9(Ly7ZZ`hyE|#gei(Q|-lc@&nU?S;uw&=fYY}wbX%yYz6Hhaz%HYT!#{i;#0{TG{A z;O{1;&N*aFPL0fba|3H`s%IM4>sUyqI(F2!mUVTlVb%%NZ0VLN7J93a#dfV^n@lU1 zzq_2xOOmls+obH>Z3$~omM|Bya`xT5jAbU3GWBg@mUFv={q0)9mYEi_y>3OUQ(_^T zw55RmLy^x)I_I+;#(C_JOD;Pao5R|gvRU2LESCH?lX)0qGQEWv?8(M-R#KbBCSOQp z_c~Ho;K&sA!!enKhbFPtvP9-|DuHeP6wkU1iD&bt$FW@hSe7|Oc_dPz_}D%L3Spo$J`eu4|ctiyzxj@5@wvtYq^Xd{|=n za@P3Po9(ytVu!PrvRw~6nApsnt&4MIW|v*qvyqEfdax54aclu=RG-gAuAIv*0>uka#)yAynXCvl6)sUUY8_m=o=`mNcQ7nJ+NOt7B4tq6pIP2y= zlnurZrq^pQFB_U{c;g_Z)}hWi>;|x#Mg7>er>ZR0qA!~j-dB4{S7D(6-Pwr! z%Irk1uFS{1GyC13#D;wM(`KIev(47ay0#x~oVwQb^%seMUR#AFot)e-Ft-|5t*2`-)v}QOhZmlC~)zu%-+Fh+%Yr~go`v#wu z@4GVDY2SwX=k^}yr?C96CrjWW<*+%&3n~qn}FhNHWk_jY~riV*bFeZWwW5=xs71{#b)&#B~gmByC~ADuV@ng zLEy&YA)?7OBSjlm8j6zi%|zZWCWurTY(=rFr;CmmIEt>lT)>%Wt|E`sUZQiOSBZMQ zSSM1g3l`n;i4wKu#fn~jOc4E;mm+$%C0%r^Pqrv}U7lzVU&l1xP%Qe8QZ6!nE)&^L zuM*i+)rxeL8buG5DnwCitLU@lPLX5S9#QO-R#Ac3eo=hZAcKr$zVv zofBy;xg;{(cU7dLepB>j{T)%>nfoHu(T_#G@y|r!doM+m)^A1e1s_Dh`*zXUS>Hq! z)jvc*e}0ROj!_c!-RvZYllZ@l=E{P`gKom!j2^;d>z=}{r@e%Jd3}V%wyHwPD>b3A zsJ~D>MP0~#H&9q!sv!)Up(PysI9Ql3(H4%+943tXJX}~M8zJP|>k74BMhSAcz7XqR zAk6w|D14KT5i%Uc3f;b%2)=SNVT--FaObmy@J?zeJez4H9R6f2B$SH;qZuUZes3%2 zi6;q>Q>F;pUr!az6-*b-k)5#Z*-Rlk+g=!9TSNrGnNVFTr-dw=m6TxnS7KNBFRPrBLkZD-8X&T1c#2 zBb;_zCw%(kFMKOmFWj*W668-d2vgHSgkvUQ!lIfANhuJGO}PiX6rF9hGp7qprR1VvP#FvhV+C>~NQ zynjjh2E-4k#jmw11zsm&gv*p5Ai9~p|Rw|?mGGTBpxlnXlF8pq+5avc! z3YoL2gk2id!l~!g!pYq=!uG^kA<3yum_D*zc>l3pNI2Labk1%R)-Guh4jMHJe>$24 zy^{*Ts;EVm|fDkhNpb)NfNLYUMkYFi3 zEPPmTM94QiDro;YDrBEHCcMl$E*LI7AuKdFDJ=hdQgAzPO0Y`%Px$S0T4)${Mxa+` zggraY3WH+K37)gg3z_{d2o-lP2<3Gbh3LRb!gSGPp}or$A?e%|;a~Ap!OQ!aP-A#q zxY&MOc*Jf9Hxh3OJLlXILI>Rzv>)6S8tU%|T7h?kKpT){Up^A9ZG9{(;A>;=nD|uquKY~UIrmI3DSR#r_jnBAHuSY% zMsI|O&Toa9Q*VWx+3$o}=l4R?;17bu!w5pPJA|)8eh6j{e+aW{ehQAOe+grZe+%zE{1)|Aa_yCHi|I>jRs!sM!DwQ=~sSta{1hyDxG@Jot-_Xo4N|=gs70wRTUaF zz9;o5>`Bi*_oOXOy=c|WUetF$Z>rtUo5o!3O_k&NP`A83#N?OI!NV=RT^W z?9b(_Dt$3hqbq4@RPj=cmd@-)J?i>VRoDJBW(DWJ9qvy(bq0`E%mAvsJAkf>)akoe zow|Qlr*4Y|Qu~g9bY5)`i30|4PR1bmW~f0KDH_!GnFhs9)uab)a zHLDM%?LmX7_WWQ<88d_yrw$?YXG7@F6m4>oY16}>+O%l#P};k5D0NpGMl;q8qrg+c zC~eem%HiwEC)^!QKGr&9UZ_LwKj=`2;|MaTA3@tYkED^FBPq6ZB%M*$r7nTGWOzoG z1pQGYiW^1xcSq5`33_xqPmdzr>XF7weX6O{r=h>~DZynlUE4OA)O#7wq?HD=_@DtT z(K4ht!G<*EoFRSDH=^cPBbsyDi0)d9p~YEa=)m(a)PJ%uEhsgnP3^{1J@Ydoiz8;_KX@D!Y#2wir^iv%NOMY$GAGZ= z<}}R6g8qxMAg@~%^vG;H%}pIo^$*6=>j{>mm2F8D&n(G?CXivl1nT;F0-c#`MbRZz zr1jp4DyCc0fO2aJ{A5l0X4=pjsST-ov7vqrBI;TpqQ_rF)Z{48(n^7TeG@2QHqp0A z;{KpSWwUMRY^5!|{ANoZ94FGliiyO&PNZ0eNn|FUM5jMbqPeps6C{&K{nKP}nK6ap zOQ(?d9hWInDZXebEqXPT2G~yHezeob@#!==VKtq`WK5^X`_pOrxEXXgaR%MH!M8?s zv~80egza25siv*&&`_7t<*o>p{sATu`ydfvpD zbiW;_?_5XD&2psMA027f)Y;@vFq^!d&Zec7b7)%f92#(A4)-CPOKT(M($`aS$yaM0 z9r2q-%5C$=tmk~1;Xa?HG|lJiwfXeLp7ZHS7tpL%3+TKxXVj%Gq{15u>59G+{R(xW zp2wZ2v$``qUhYgy+nvcxX%T&zyNH6Mi|E#yMcfzJg}hT;X!CU!N*=YCLN_d?*@qTW z&%Um-&BK)@Ho9{5hAXK}cO&OKH;TRQMulVCDJR06f{weB(BFgJdU{Y|vj=tU@ZcP^ zB|QC>(1*KAsJG!#QVU&5zYZ;>bG2spnH)T4B7JDnnM& z39P1zUH$0rY(FX~^dqOce)NrV?_$=jp|?BM(Bz+MD00eL5~r>u*@d-~I%pl|^Q$^QZi9e|oUrpVYbrkby%0jmiz6?$-n8{E+puaoKw6Q@@^)-ma&|;{s_^ zcpy0C zjtrq+2%!y1p>%#)D5-Kzp5^IKn$(B;fzA)3&IMuAb}ft+YlhP;_i&md4X3mR;k0i= z1f5+GLC0z%ICn3CmKjD;x3!U!qllzG?;>fQX%r;|Mp4D~D3Z5FQM|=QvJcrvUv_Pz zgs&UvyJa-Z4U4AqJ<-(oEt*;;Y@))jP2|026RCdNL{*kCG&nSdLU+Z`&d)J)-F!1= z3~c7CuFX{Vf%Ek=xS#BVSZZ1nOE*JesiPp4dhU#+K9^&u%cod+tr|y1P2wnPP8`{< zi=*%9aa7V6M+T?jNbx+5bd=*MMK_-APl+c3?|51f6HmF4c-qnyPX}(sbIwmZ?NsMJ zyygiMFh7AT0}|*x_w6lhb=yQ*?aujo;feI5Fp+xhNF?10 ziDdFNk&IM0i%&m^zD`Y|<6cRW9GyhgrAc&mcM=6%PNMJclPI89GTj)ROyi~}Q?z$7 zwMHk?b8#{$?@p$Hmy&7FyJS*P;eN}bQt0sH6iQi=Lbeep^sFF-Hg8QKl`|=n$o-o? zc1oqWLsLm&ol19|QmOa)R5D3VrOCCaH2qL2S>H*eVc$~ei&`3AWIByP?9#aZdm8QA zm`2lz)9B!~G%`MuM(NMe=+?h9(j1&l_T#zF_1tudUY$;x#@wMJreq zExD3Kc5kvsr%N{XgU+UUbMA}okWC+!Wm9xyHvP!Wrd18ubo^j8uk*5L;d}0zuAD=a z+Bvk{f{Q~ARV~Y*goqq+&dH%cbvbkjIkfgl4*hwRL$OM^^kq;kEgqXo&C_z}gIg|* z3e2Th$+@&tl1s~X6S_!5jpA<(P8r<(w|X8(Tn-MUlD!VSVTjzi^!~^h%9#$k>Rl->T|t_9=#}{njb~9 zxK}a#)GnqhlVVbxTuku`is{MnVzLY=rm&=9sxL04Q}xAkb03%g`2KAk_J*JPT}hLNdXUshCVAiK%w3n0k7O$=jdrM~mrJhM4}8@oSpIG@w;X-A;+=#dR^Y zJ`+>a7cm)iDW%i>O36*9lx~`olAUcSRXdi_N4HWMyPAiGl~PDzDQ(U#rO1j>TE3-} z1e8+O)1`zPrL^K1=S8&h^Gap(wNDwj4Jo4*gEIPLSw^F#m66?i&YM_TMy_kh$UeM` z3^;ems9;8eqRp>DG!iP`A`XsFpyA@Ip;f)gl2P&M)m>;9rTdUgOw8cuwFv% zBPDb0JOn4wsVQW_~_J zN+Wal^(9ieDU(uZos{giNa@vXDTVKs($`~BT7Fi_*}YQgaYss1A4_TND=8&>lv2ib zDaHMj(kf*c3B6_Xx4(?GYsqM#j*On@%V_yn8C|lFk*P>V(UWDg&yI)BmeHSuGV12W zulMA963!%HYh)A~C?m@-8Qt6{qcw3ddYdexC7JwOo{V~y$Y`cSMj@4)V^SxhvS!Y= z+{T}|TSm@pGR^{)(Z!=O3Oywwm2)!6yu{yeO-7!#WwhnKjNU!w*SwIC^&1&yrf^o~ zXBioOmr>_mGCKWNMsc0xG`gFdz?mtN`^aghnw$oz%W0K{oHI)}LvyH{KI_OyX_TCP z>&xkdp`4Bw%PGTDPSecg^m@FUVy)z)ERqv%iRs=%Ihjt8Q{XhtWSJqSLo?-c-d;{; zIh$qQ961%tlhe`#a?)^;(?MrBEq3AeESA$kH#zNfms8Ira+s9{ECuYj2fu}(vPYWBKCNFr}B=a;Hz|$&+r`b=Q zc8ho#%6MAd;A#4gr|rPeavCy9PHH3M^p&Umsljqe*Wll!&fm%NW*yI?H!5;+>&D~4 z^RCN38BOGQ>BsXlf#+=|&*Ma%*K2v6PkF*QsSmgwab57bE~9p?8zEdro^xHXJ0_!I zt~=Mb4t3chBc1Is8mo|zLA{JKeYoCmo!iTGZ+*UuG_trZrO0S}yo?&7Wz;uZM$3X^ zRJ&G2H&)7cUCMROor^QypTomu%BW@vzeeEKTJn2L_`L@F86#w*IYdT*>byMkk#Ww7 zj0P#m$oL0myS7V7?~RmHo=WNNT`9?~NooFhDSbM@%h^FGb=oJTz->~x&>$u4N-4RO zN+~&ym-93!wZuuOK2l0~K~h@dCnbwzQhMVmrGojqoX?Wdwn_ZiR-7GcBBcj5iR{J8ac3!I{g6=1M+tepkdVoJUe{cekmQVngd-9i7v0FG$rKPmve)#oT4|Eb0%v!Wv(u#UrWl# zeL*=j&M2oBHoVR?DJP4O=531>Z&!Mkk;}hQdiSZ6 zLZ9;O^-^;Fuap$5ls>nVk`Zs87VvgzHE*xh^LA?`Z@*@{my+)6QhLSPHMuEo-$s&n}^uVT&x6jR|%G2Q-;w~>tVgcV|LABbsTwwPvZ=51;qXAdtE)0qXFcQjQ@ zqb!%FDm$`abU zsD#$fC?O5Y652Ydgsjzh`_1`CTAzz)!{cINmx}4@p<)`ot(a`&#WXFum~1x{lfk-T z>f%w%>#1T&w=Sj$ql@YCK+aC;T1>pe0mXA0Yb>|5PH~&dxvGFJavRKcBWFVU7H|%40U1o@ zHkfe%MQ9dKTGs+f|CmqFck{{XR6bek%BS!0e9kw^r-hu)^lEuN1pPt9ui z^z9e79be?p(#v@iwV&IN4SAGOkVj!Ld9>Isj|`mi==H=rk{agG6!kp1{x_GFyvn63 zS8_>oAeRanaye%wmozrz(lp;(@>;+d*g`I?)ypLh)m)+wORBtD~l*Bi`IK)QGp!~Gs&XugZTDuCKWu- zr1j@BiS}gDPiZDKC1sMMeI}g&R<9Hf%Q*g=W`{8MHcWD}JpO!|EoO5ojnnw4&q*B!FR8rx6r!?M&`px@N z-hruHk5lQND3xqCPg*x*QF*?;JRemKR=oNj87&Ltz=sGCy7=+N}|ByNwl^xiI1fv(S)ER z>b@w6&R8c=oOTi!Dkag;Cy6xwWFlQ?N~FoziBuDmNI#tuX{vQ1Z5onD&3_Z<^rHm2 zcPxP()pG__dIBBsPaqlZ$NF0&kjbC~dfX9DsdwUO#DREHRK$}}LOhkNjHkadBjpwQoh7FRXgLzx+sn&hR2bWTO5rP;z(&|99{YwON9?($?-@meW{M6+@x3< z?i))LvtntWQ7lFGiY3LZ&D=iPOeZ}z)7TN4De_4SHPyz@5#Ja(Xc$A)Z#L1omQAF+ zeiQ95+eBmAqbY~8tZsxvlk$XU8vK1DsqfoJUn4dWY&O!GpHcL;Es7#GM$t_niiZD= zq&bMBWzmu3L6JniBd9C?b8^SV2%0HG(2<|vG^#C}{3FA8zc`$Beh;HkmQ zhmqRnP-@&BN(O`x5~{5dnopVpjONA(Ho=*+}*bo0krI=5>r=jN`Z^+sz+ z``H@WE?+|??rW$}eGNT6??;+xel%g4AKCs{O~!jUA1i1z9W`1_>-bpIAE_^eE%v3G zYQCg(WPV+wUi>vmQvO8CA3Gfgmx`lLXsX!DByqx8HRY!c|#BK zeBe$u3f)QM;LdrTZggOm8$IxIqc_9c=;0MtzRrs)rP=ba!}i5=w{9`{cr2zHs*B0; zmLeoIzzzx3A11pTt>od;Bb-XEQkic_tm3F_YeWwWB|^cJynJ9X(g(T&~?S zD0bxxG8;I9&K{di&LPw3Ki%nMbY&Vv#80CgC|cjE-=(&;&#?(Mdq)MXYl zvX2Ed?K3AGA9G4lHK$u`<7n`zapcf%9QnbF!hOvsxW5@K-ET@(t4--&e^c7C--MQ| zHldIGO(=v%__^;`n%RFWiD67PRvB~7vN7qhF=V!K3>mAAA&pie`n24LSZ^Z=*<(oB z-hAyF6+;qs8qoG72Bg`|fc&?Prk$>%=>=ze^={TD9cO(S^+%61>-6aNTs{7cqbR>( z6xrF2qF0}EDY{IT{!P`T;5Q@bdcjCCqLJkPbOcpqj-cb?N6_uNI`kk>hprmyP}|kv zlp8&qTt*G2K4*u~?%-iGXUH(Req<=kTQii}`VFOlt=i=6txeMI+H`u$5PG#}2zC4( zOdZvO>9xaPI{QhB?(<6a-g_pSY$4nC z{CMJ8!R%}EQZH?&nt(M|!kCtTBy(R5BVMu-E8B%F0Lwd8P1xfr` zQ0mX-w0li+y5rKEKEE)aCWQv1GuVK>iuJq);tZ!lo%Jd2usF{tRPe&|^l1IoW<;LN z=-kJq8E9BbE??$O_j{? z=^-ZXaflrWKFD5)_4XzY_Os@l_p>Ge``D``d)d+Jdsu$kJR zvZ65+?0e1*=6hs2+wf-_do0<;+9qvfwgIC4EU`@li_D$RCN_q%9t-BOy4o;SJZU!Te=3yibqHZr6~Rp1eFl4} z31R~crm>kRfh_NxKU+4_kFB^qg%!C?X3{O>AEVf`UGx2h(0GQ{IE|?-uOsyl$-h z{VvSL!<@NRn=udTPHe(jQ#Q)jgbm7W&)R-&%ie?1G5va?yoo&LV#{HE{^8F=YBfd*Ib^I!M)%Z!W?aq5iNYxvO(aKkn z?J3VCj?lBgMHCEFcON$R>Cm$dp< zBN_Tg9Hm=RC0Vfcpd>wWpCmtcw?yewAyHXula&11ERjCiC`qnaCkbD>S~4YbrG$c) zNqRahmgrfiB+vgAOHR}lNY)>gOVZZlN&GXiC80=@n4~30&aj1&v|sZiwtSZ4b;@+f zMv1>9$Yd)?ABR2?lONqAt*bgo+9kJ>bayb4 zNPg%^4#)g+=+*GqVMFW-hml|II(&`0=y2id5r^Xm`yK8#mOGdvmpR1!EOGdrn&U9$ z*8+#ve z)3K_ds!LTlE$&yzvR_uwkA|vA_D!_4vHDt9<6=R=&lVJ;-lR@-(P!j<8*DsgIU^HCiAt=Jr`<+$r7~Qhtss3 zQ?s?7m*#1A?UidMUMkSudR?q_(o<=Rx-Zs(Ez@51Td6&{Xtj2A(K@YP`9|&Mqnou+ z54LL0f7_vL(RR1CpE!WSa?C+()8H!YktAq?)HT}M+mC5&PM*}xsXe1jZ9K1yFuts1 z{jX_XjJm0fntDfjHRisyZDFm}YU5*V5B^O1>Do)}s``3u58e0LOtVkgLpEQuXT~;a z_ssaIjg9}KHE?Ufov!Ne*+ETt+{XTo%r(P&OEef7v7<`E8lHu!H2Eu&e!+v$-nLG#fOsE zw|UZ%hk5nmQ*Za@BW7ChAFl@TO^dAg@SlVE&YU5?u< zPr|Jj@f*iR@>%Xq{PtC6ZWHLjqv~9_YVH`m{Jk5`iyz0Q{2njPxt+k*weaL!lwLg5 zbRs{z%7;JeIhnuTGKJr>_T$_3`}1j%K>o32DxW(hh}WE(&VPCb^Nu%Xa?`1y{9ElT zerQ%0pZaPJuZ;-jE}!Ocg*a?s=Z^@!KRt?<=`7@-(nY*^i&$P-6vw}|5r<=H68TKi zWIlUE3Lo1gjkj2v&bRf*ifT*DXN)9}wL7W0u}PjP&wrF`Y>rF{F+Wqhmea=y633LbHN1-DVJg^}tK^>d1gC9D z6~8!9EB?#*=Tn?N$p+_C&C?pIx#ix&yeguG5AS<~uXucfKQBAVJNq5ucE-m!ojcA4 zb{pa81{d(NvE$`gpH%spGyfF{B+3yE@@!p60OL#4Juz190-F(Dj3+s6J zsK8~JdCq&;zu=DVUht6{Uh*FPuXugS*L>-b*Sv3h zJzv%T4gdP^4YyUl<&)jsasQw1#J=(Oyk+PI&P_gYud^Td$+SVjJhelp|O2iZ-f9DIVesJl-A3Ue@Cl49*i}!5!#ZPVe%{~17 z@cjmV`M=7)+-m+mzN%FdbePiw>4%%(wy6$!M(beuX&vNS=wfrCF7{p4#ooS6u`aWz zIJ>mmNR9$t|?+!yO(^&5TExfr0sN(0z^GQfm!&Ed7S zIb6OqM<34?__47Cs(-e?LLWo4-(raJzlP}V+Y+m`3kIBy5qtuSpxJ4J6U|!T`P5eU zy1Ny=>9@x7pw>9Cw>31)+hF31Hu$rz4OX@=hGnoZ*6%k)OT)I99o!Zb``hAKi*{%k z+z#FMw?m&6?O`^fJ$~(NkBbH!P#n|&w5J2^>6u{eR1-YiX#&rtA|}P(6z{g1qF0lS z7&oOOrfunnpx+(gF|iY@Hg&@H#!lEb!3@*an&Hc5Go-q8#)lQ1;q$IDHaMFLK8ZP6 zzcfdGNf!}Y)dl_Px}eq2u7Y*c73=SGg|}5VyiM-EGo|DNy{@j9P=_C&HrFT7vf3ll%|!aC>Pc%bSH{inUr zbyy$tkoG~lTYd1!(h^9tMBEumn3?s(_IZ6VK-(8f4g2B!)P5Mcy&uAU^+VnS!H_HK z55=4Qh!F8bBMS%M*S!JQJirQ+Vud4TtuWYZAPU0=;>MwYXkjo21N;WT?!Q48@?{WA zU9Cl2vNbl>S;J@WV7yEpjCmIZ<925o*v_*-(jgmc(;I>_lZW8idhz;U2)2&2MPi{X zZ0_3PhUHL%#SO*dqeC&i%`mJA8ixB@he5A#7|cfxM;Fy_w5T19#{))SQ{o6rJ~0CC zjO`FJ-40K;+QCu8X-Qq|QCVV-oA>PT(9!`{VjQsRumh3|B^cxOn;v$|*-w8<*ov>r26D~Y+ z!cA*uoK12@`7vii8;wFwzfq`JI|^>EMNFEl3)-i-AmF466s=vc-rp7ft#gI?wJYY^ zj>f>$(YSqlG$M?~;O&$#@LfFy<DNA6p9!Oxfgo;(4=k4(UFeGfeM z@IYsc2kh^9z}dnRHesGH-0q1BA3c#c!V5-eUdTV{g%A4PaP;s-g5cLJz2%Ly<`bcs zIS~^-CgbD8$vC@sG79cY#?UTP za58uboHkCu`WI91w!g1nb@@WF+ZQ7ne9>=&pI}7z;Sl%3)W3ds;p~s8x&AnC(jPwz z0?^w%0QN-z7=TH^nm}0J48$JOsW1On+!P|>E!R&M@mkaINW@_t4Vi(0^)tX8&%kvNqd942 zFe=vuL;q1QShtz*pFR^)SIxxe`!iwEIRqC2LJ+Ym1fOq)Ah<&)_Du@Kdu1rvTozos zRV*pp=iJy*v_4U znvLSMZVn2&%*FYDx%jkrF8*E-uSVfGCt_6#^1@+rBpmn^4r{x4kjKo!sfu}c^J*T% zUOl{=F&{N6<|FOKd|0$ufUV;fz$|Y8q7E;>w(kpY-Zlc)A|h~Pa|ASX5%B07iTcTr zh%S!A-BXbm&?E{o9iosL6NU8cQJDQK3N~G%@x(V8DJ9YPekvN%{zYS>-9lW8UWn)A z3sL)MA*wqrLbmrJ43IBE)!{`L^lcI3gJN)Ub`0vvV$g6c22WbV;-GUZq7!4$YG*7| z&tmbja~#I{#34l<2X%EElnrr+=^qb=;CMV=9FK%^@p$(y9^-~5Kruf76>Af4=tcrI zw@5^?V*^TU?us^0V0}sLMuhV>bG<&OvSO94J^0dQHl~p70#lWaeP~k{mSK zk%NF^Iaqrq2e;qnpov~Cx|rvp|Bzht9h-|z({u4NCKs0!xzMc1h5PwA@O+#D9FR2wRuS0pNGV=d6+HOfG!PrXxChd8(pN3 z50PS^n-s^UO5q+Y#qnIJ;KE3eze9@KN2D;lDHZlnits;Dq_&kIvyTk%4l)FJ$}l`c zhJSG~aD@zWSIMBiTZSdaWiY)hgQ8xBw|`_9)m9F9Z#fRz$??)%4xJft7%dV!!8|z{ zm&$Q#s~nplNBCtq%%8|n^F@v+1`6CaQ(*Ey1>mTFsgD97vlLhpufPSl0&i9*@N2sQ zzpEAaa9M$Cj}<6yP#{t-AH6%~<3hiDgbCij#|imZFg+i4qVh33D<65Pe4N-I*o6D? z(eY$H2HeVr^~-$p`ks##Ed;l~tN>dE6d;rdu7O7Z%7Y3pG_nAD(gm}yqyQOf3UFy> z0gP)3;BvVDVUG%s{6T#GuK;mv3Ng*15JLwS;&V?_=+OIHz~s0gGJbUq6oLH6``@N2+cnfq2-?<{534b<4%J4U|EdRVZ|8YQj9y^ z#aKAK7~kg?V^LBu?n{d?TvLp!b;UqMF3+AFnDXjcU;TT$qQIVw> zo>U66+)}(RF2(-krI^356vjJCQC?Y!!NQ82UW-E}ZM&%uVX4AW zYZZ2nP=PxN{)d|i8@yD=@KXuitqKNnR5%c+!lZbW;3cXMoTtL2LKOxHUS!%z6|i1~ zcUx3wy;}u~Ln?GXtU|k!DttMw!s%-&6xHJ(_hac+oO_yRQ+j8vnys~VTasS)m_#^=duLngsuvdbk z@2w65x z1FP{G>=e?|T?4t0`$D=;(7;znst}csWkO1X#0&8d(q71Uab2tsBOyz~|62=56zN?R z>6#1i6Zgpy_gf|ITQ2UuQRJgkAl8&OZzqQ0(n(I8CJUwucx9ToL?qMZhv zMg7hc^}N(jq-mhR&1M=r&=Gb2SB>glYApS(MzClnGtpkh-;1^t?f2@X7&VFZyj-Wo zK+(QQqMZ-i6nc174IR<`ZG;}Q7W(k#s2UHe)u^aaBTDFth0vQLJA}>%J-WG3jj=+n zwy#v<-x4)kg}x;Ty<08xZ(okk&2*u6Nop(;`WY?s)K2K@hgoW@_&@y(6nPW+Z099( zUFi2;7s2TnsfJwW{edBBTo?V|vFHzVqF-Dw6X~>9BTMv`QKH{8i2k!g^rL=XRM;W< zRri-FniwO5dBm1!^NUMt`hxniRhmhTU7|yphC|w6&{NIn_r}YrBsD| z=_=SHsIWFlg}+#lFHmSg0_!qY7Qys043C zg`mGmJpZZ`ENUfAKU1RT10^D_3%hhqiCagNXsA>|XSWhf%9Z%IT8S%*mDo_I#H<{_ z5=vG=8?A)b93`#?DKUPs61&DLVc@KU_Xs5v1C`j@Q;7?ml(^Gci5ty?o%>mewI53n z^`cZfKb4~PYALc#m!e&DDVFRNc6p2VZM9$!sY_v~D1}S9u*ET@$emk?62T%2 zfqiia`eX|>Z+r=^h6}b)Pzgp&EWuOP5+vA_;OBr6M0YE}&9)_i_ac1K_hRgPBm7!z zF}_?C+~1SM_H*DLfclLEIHD;KY}W!f z$BNIPg10oO0PS501cy=ZlY10kws8R}|K;P)`+N+m%}3D1d?X+r+1vAxxiTM-`T6il z5?toF`FQG^j}@cy;XG7~i+bc^mT^8F{Z+v8odP@VEAZ#60?w5R#BWxhY_UT0I|Zs2 zDo`~;fz2KYNF@sR309MtsREapDiHTcjOQN7vGjr*?X+@amCI4LSdJk%a>PZ;u`NiB ztK;RUA0fxrUUGak7Qc&e;ZZR@Tr9?k0ViZ=vqy%?)iO*fkl|5+4AW=HaLHRHR^?@o z_LJd42N{~_$T0Yw6dre_n08Xg9x1$5OED~8ik9(WEIU&QrH2$F?WK6wON!_=QZ)R` z!@L)HxOO!U1FQ3pyhV(SHFFQA~EK51gdsNz$7UGfld*S>PLt%?*eERFF?Yy1sK(H0lvJNkJ4T9(KbOm z@6&u-(w&bMXXjyH={$_^ornJB^U&;ZI8JX4M@&RG^aX1_yKyd_W3K2!b1`S^T;v$d zh5YIq#4nwL3DX4cs{0)5eijC&tzkGA8HSFwVF>;<8!D|}`e)2Wh0AO)hcp`z=VqaQ z$t+y*nT6?sfpz^(D2A>QtAxR!sOTArGtWbCeoF`rEeJu8bqFSWnu*W*W+EqHCVtz` z#Ef6T*j61Z&Tk0DpHabR)+`ubPR_t3`3$JW&wyh~F%NTLIwqA&2lt+iR&A$a{IwuN zYJ!k9B}hCw1i|mtH1t?D4Y&NKA+FOj{Jt|4QDP40T;No+={yxq_W}{HG7wXz24ZaI zKy{=iK?TwLrY<|G9>tDPS*uKL1W>5B(m zzF5%87thX5!MK7cSTb%3F6mFfrxTO$H)k@wIZwu&zmxDECSiKYB>c0RgrcuLXtvJ> za~Jwx{~#Z{74v0nwoF8qu!%6~IT7D$y>YtC8(9I~=wsrI{er7CxWo&K-M#Q!-wQpC zdtzLsC#Et__&17qx_ut#5bc5M13ZxNVgfpBn1H3zCqUP10;b(?$J$bNTyl5EYdtad zcVs-Cq>jgt5#y2nX&jt(j6>a=afs+K4$tq8#rUOTv2x;A+%g=CzbD+#E>nnu8~%PC zgIhbsVC9@KaPK|_FYk^199P+723$GFv`ISp>GF>d6WTIIB5W8=nVi>3Xa!;{y5&XKccSmL-X8zPz~<~ z!&iL~v$8MFdh~_yKTEjnu|&iyOJti^LUy_jQj+^%hE*TfKJ1OJCB3mltN~2;+zYiE zdts(;FI?B}h2fPwA)nV1XFK=Auk$_7HN6LHtb4%rQFruKc89^J?zs2K0;@JyVB%y8 zG&HqiB5=)?Sx}JJ3;SSM@X_eVx~<;Bt0@kR*5N6Mw%k* ztqDeznV^lk2`+u_fXwm^=;7A^`71Y{eFb83vy`C%KpENFxO?AyTiMQb!_TBB%GYqa~&3Wcl0y3zPnn9^v3 zjhn=oLOw?5{I4aPceKRRz?KNpZ;4s^3^8SZOm?SM(rB(?dW%!3Vq13{hFlFlS&h_}pm3@8A*MGci++QAZ?hn^? z|HJDOeskT6zqoF%U%Wo)C)Zy3!DD*=;O$br^Rmm0yk(z89+vWrZ@&DMU+MjoKTZC^ zYcDnMc$iTODsQzK(~MJ>t9G)$$ikwY-J;A@BI?0XH7;fPaB8$ zW&W|~5_fxek>?M($g9#X@LLzp^SZ9*`R&Ma9Mxw96YMPan0|);*m0U`exKsz9;djn z>?CifKfwh_i09@X=ezG5F0Ozx=y>f?VMdae&0^MrO8fy-m`)~TDgNieYu_A9=4rVXK&-0OIvxM z`BvUGd<(DIU(P4#l=Fw4n|Z*>|MOvn`<=rZ z+;aFsWj4pXEUxUG#rHnQ;DZ;Y^QBGG`0J%9+;TuN_pVOlvnD3+Sx@7*cS0<;Y!Sm> zmo4NgtfTqxqmjINas;=1F`sLa=J6+n;k@hWIoxe<7!Nu+i_e@K%6*>C^4 zymDm_4;?s-|Evz=S>6HsTb&=D8sp0=noi*#7f<3nEq%D_A#XlqoEP`K>%raTPvCuj zjpyGB$8l|!u{@$;3~%E&ns2=1!uth};%h!QalI@@KErq<7x*9k!bZY79JS}eeeC$S z$HTejqG5cD&QNZn68l+t*znrj)_jBWARc(diZ`7(fN%KFj}Oc2%eAd7`LH#;`Nl!L zxPEmHKHZ}`-*&$ne>1-;@A1=|d*pZKk)6zVUU^5Z9AU~;Cp+-`DeZaU)3$tCj4>af z(}o);Tk*@?jCe_fAs!Pt?=p*ELP}n$dr?(vV-;85!TT z{mQ;-pC0o0nOuyWV~ zZH3Vl?dg6OwRc9J)7H*Bt-YUiLVJ1nQEk=!!&=cDwefE&wQkK1YK?pE(_VAhtu2{W zp>;{zrv0cc*Dl|=Nh>+GUVH2L8f~P`D($~6E40P-OSPs`G}^LgrM639v3BL=0uoqwzj@shW27`lD1-LjJDungf^_%T&)ue(RPZNrv0?VS9|V}xAs3%cWsX6 z=>Ok`<-+Z?{XW}j+w~u$Z8Ed3_RG>9+V>aDwI7<9Y8#oc)*#kU+kIOzZQijzRrhT^ zSGlcyQFW%({i=|(%T?{)9IvVktgJe5W=GX2yY*GiH!rE`Wm-_xv}JmgPJLLF>sha= zi(Blf)+xGI9S(0%<*$BLd42N1%5Nr$%KSY;D~%TIJmmSLe0b#i<8}}FJKCpv72CVY zxjn0SZEy3drGvj|F9+ix5(obYJ`MxJ!W{}TG99WW6gqskz0~35tPKupKU6q$Os#V8 z&_C%gQgy|l-u!`s&*qm7F*Xej4$caXc~J+7V*9k z%gjNNJuX8f?erZaZ)Bl7^4jl4)1-B-{4LC681ElAnu;B|m+Xl1D={l5K65N&-GDm%O=BCJEWS zM#4+iOMXOcl9+jwOS%l&CebmfkesdGC5bt^SMsO)fFxX2DLF8kOP;tKmVD@bRPx~O zadE#>5U`gBopE9#35=h}(g-DSqE znVYkN@-8f=p(}F;wqSS8b!Q5dok-)eb}NTOSbxHU$)1qKigR~fN6RUWHU<# zF_WLxY|m^PHvIAsw$5QFYuGr94Qf4tc_!I0-zWCW)kDHM9%SsA#Yh&L@5p|Bc4Bjb zMltP47uH}snzda%hIP;x%YKV}tLLtbXK8E#Yrn~Zl^A)k_i^6L_TfY}ZOkM#w_-B$ zH}Pdw>3;0VGk=!u5y*b+o63UBgV?&9>Fo6D8SLuBnXLLy2rKM1i!teJcIizRbD1=k zt*8uVSG&z;^?3`}^ZE#OWTH4T_+T_M@3M%k%#L9{Uc@qck9ZcaCxHc+CNcZeWcK}0 z3R^ZhjhSvuXYs8v*?nZ1niW%m5w* z!4Bq;U%@g)>||w6cd`x2U2O5l-E2|)Zf3u14}0ypm*suj%M4fVV=3eJvzuS{GqVi` z*jTTFEcoX^7P9#e^PE)4dj73skGEE_0$(lbqQlv;9i0942Xk*)&2n~DvkifV+4g2N zY|XA3mOS+cbJRP^-t0QcvZfwm|C)*Y?7NP$1A!;lyQU{u>zyZ=X}~FFpnICtZ9mP{ z`<`L$|IV=cTh6j6lg_aNzs|A0o6a+9uM5nr@d6vO?jjpF{u2B7=@Q$$@-p*uy~3`( zxx#4iRaQdR*y(52*vq2p?ESDC?7@Q@f?Ic!MGU;fTHmT`lFRx`?ydJU1UmmfAE9=-I=f^DY#bef| z=n1<$YxZx`YbGCG&l=v< zv(f4|EP2FRrn&c)DKp-&n4a&M{i*lt$-ECNy46Sac=tzUH{}ys*!YPRul&qPMmDgR zx&|i6{lcF2`O0F?d}Yt)e`AtXjVyLoBP;Rw&Wakov#2FMn62GUcK6Otai;h$cE$WR zv#9>fd}jP%VgLTHpml%Q@KOKR$H)KJ*ilVLu4+P+kDJiFAv*LfTZcYf)u9(6hU3B_ zUBOe+rTJ}}Qm>Gvf?v^;<}_(WAHADV#M)+bNATZM^2yG(Sece$-JOF zExgs9_V?^SFQPh7bKZf>3`_)@z=WEw6$IgW6WTk%lp=FXspBP6+HKa6?87?J&fOiU z{qK%6cWfuxs_sPh9(JN1{mjT9&WxJXn9=(do$1V!&ZJ!1ncV6{e9$m+O3yT>zh})U zvO^a-KcfqE+}eeF8oE&O$gWf>?@F4hT}f)*jpl@PqhY(c(Z}!I1Z&5Fh89^+)lCZ; zWYL{U!n;%Lp6+D+t2?=k?m;t(dr;V|9u#2FlO*9isl}e2bm~V>S}5Y43<`Tu@pTac zW!{^DXZNNZJ9^X0FTJVF$Uf9t+K2jH6ihi2OZpOINryLCQv6#>G8@*Hwx{-`{>S^$ z62pG<-lrc8UD1!`)b%52-~ObE>Q99S`qQG{{mIpJ05vTbK)bFCpm80o1TV*mMs2d9 zb@f*C#zw?Jstn)+_Grd@BWsn?Lfl$S7= zuJXZTsAEGmZZ?7|WJ69@Y^cA<5c(H5gpRHmLQzkLQ1gDaR1#rJP4)=>+*e!L;xLpR zrVpimM~9M;{xH&WA4ac>hmrQ`FiJ2PPTc~B)1Fns$);{NmGv4ypXQ99q1#5#%y%Ow z*~X62W9=yNpdF3-VMndWo{nVL)AXbE^rEQ)1-dyqML9wJ^ZbR-pS97)n=BWZpgN0Q8Oq%WHt zY2`~t>fg_aHibJ;i>*!+@Y;zq{hjI1JZCz+)tQdGcBcROkD}OlB2IAYD7x}$6wT=8 zLbv9+kVCl($zHfnbstx%o$X5X8(rzq6IZI~F`DvcjwZ*oqv^rJ(KNfu7`i=mjA*+t zlp+{*+f3Z(=YAwR~^ zs1f5y5<8x{?jBF|Z^zU6{_f;F$DPh?aHo-v+-ZgR1bXB@fm$z~K$ce~P(LFN>M+iO zUI|d&<{A(3{N+KlBRnZU#A5OaPcnGzNz~hmrUrXa=t?h|bkmCl8jCnicW)|_deh(| z-c<3^n>q}iNVB3R(yFZ!sruFD*OoOKY3@ zQ7QAIxv_rKZ@V8|ed0%4(I2v%N|W*V`x(`eJ*Y4mky z5LwR)BJVXp9#C zU~(T9OeSf;bb41X&3qb6k4f9O+4Sk}Y^om|M(1XRky;f-PRGLN#^*5d?lp(@OrAqOMf~!B{d36q*&G_#VJ`I; zJ(u3Z&ZSiw=hCq2b7`+`IGNgpQ)oyyX_Vo#qb8iTy$>g4*LgI}V;;3iokyFu&Z9ne z=23zEe7ZGkJ~f{;pL(d~lSR#ZYW8kEUFp1lvd1kTvxEh-Y~up@ePsc;{arwbRuNPZ z5J82~2#VSpL3WQK=tav&O0$oo#@Ue+sEVX@)sb}RbtFADiK6?XqDUJVMOiDN$m(Pi zRey}4VO^q0H8z@Vh*a z&tn(S&qX4(ylfGPU>1t~u!!23#n4ih82Yy$hP;==Q10OvTJti7RvX7su0t$&hQ`vL zf>_e*6P&*Xu@v1bjt&frqq-?^^eHWlUT%t`V;ABm_e&i0?-Eb@UE`_uf_O?%$J2qT zc)C>=PxlQH=#+H=E%i;H326!RVnYIjolT%~9}=j&X(G8$BKd_TlD8s}2JK9wkJl4v z#g9a?v`C`mqm$^vyd<(JO(M_zNi_Lx5;^`&qSn2V>G;@W3W`V;Jg;POI*?5AyUDcw zPcohAkwVpDQfS4z6bdX(p?|wmDE~$ZeQ!*m3Fd+q=$K0DLQ-i%UMeZdQ)$Y%RBHMz zm6o?jqqeqb6g4G{b|(mC!16SDs!gNo57MaoZyL?)o=$&9rBl|dbb6VWE|?_g6nZ+H z5?-ZKbc+n~7?44&CJ4UZf(#m2lp*|92K~E`L3ZylXmYDenmj0z>^(C{Co+?E7G;vt zj!ZgmK9kzK$)vt|Syb6U1WEVK5=^-)GIPxmaq?MI6Ou)L7G}|)tSs^_&7xUrvS@xq z7KI{fIH@+hS^kA^MJqemO^D6JxoT2|&!(Xl-Gdm)cPZ|BjW$9eScO&-~O z6Q7$%DZ@}o#T}$n)J?qaC#4WuDGetn{T?Hw{oYcV5h$e}p@P2{Atk*8DaB_>>9#^j zR%*f9D3en8CMjL6kkadeg4I|frG_(7dU91t$L>jK$x|r>zLiqzuTnZ77#&{vGP=`R zMpHV<=$M5}@Y7_p$VNu{?Pc`JSw^kK%c!@Hj0OeDsBegj+Ru~G$AvPgNs>`!mW*r# z`{QP*jOH(s(Wf;snzva-*DGW+SnwXj3NC4n%c%aGjEt_y$l|VydezCO^Gg}&yqD4a zFEaY?myAMn<o2FzgXP3V$SI!Ww9Z9N)q+EE!Ar;# z@qVgYuq?!HbHp_fa%xy4r&WpKzv&{49Fdknq**M|7Hr9o<#PIOwVdv5kW-T_a_Uqe zryhId)a8(znnO-6j>zf2NjW8)lT*LTBK_;)KX>Hx>VceQK9Le1?`;+2J6u7Tf^WH!DX830LH~^s{~fKM_^}G%qXhHPQ$a_)6%;;6K}~!WRN${5 zy{QUX6r`ZbGZbVIA{Z{S6r>JQ(80M1IzLZA*A|F8L@H>%;ANIBQqZ(m1)0Sw=xl<5 z<|m0fB`YW^RY70V6cm&puFF)=pDe-C%u!HSu7Yy&M0!#MX=DnL$`v$Ep&-Y6ao++3 zRSTI@s34sp1(gUfDppXckOxAnOB56%q+G})Auoh{6!J#M9U%vWNQJlw`5~@fCB#-p zl}KlZkTQ|(H<7-pkZf_kJ>tIC#QmR(e7qLr=T5U6m;B0K^L49bea^j&p|<|5u*Nw zDyWBzg02r#P-1^kCzhh_dWu&IabI&$hK{10Iw)v{v1kt?QLg3+I?+tDM-v4d`7Nid z-{q9^MNVEH<<#=6oU||HH1(a%W1%IIr$$JdRiqX z*?u|Y?~+s6HaUga?&l66PCy+Tq!60LOCsw3jNHIlOjb<@8aa-8ZEd!^W=15 zmYhCJ7xxU1Q|C!SJmh5LCcbkLzd6XMaHyO{4-)sZ6xVl`Q^(G7TGn3ll~!_L>*ZAQ zPe%GbWP)EJqwqH}%6%py)k7I6Z^ag)mT(4Ll3`e9)|4+u8x4k`ITh8b1A$bml|H?(xL}~cXTC}TumhN4Y}mJG?%6e22wPxY`_AdR4HHPUKLF${e!Zo!eiLlg3H$RRO@I?vCccR@L{ z*E@&ix#Up$;W@OcZw@(j7XDRmlx+VA_VA}{`tUTHB)76D@k};t)(RiLBb)B8$)+dD zY`T||O{e0rY2%!1iVMi55$@T7$e&G`LD}MYJe#VF1%pX9o3=Fw#_{tkntdyaDo$t7 ztI8}g-IhgmWm)82ltmNMvuIpY7TE@8k@3VVs&mew4MVcXzh{=D1pcogOtyr}gERC-#PD$-7+YIiZ7>z7K_da2~}B!x!Qq)_`+DReU_g))3o$jCN@ zvRkLn{rY4wKb=gYHVWobrWiv`OQ!#kbk}iFe9;2HX#_z81Ox@8q(M*w<{rAcJEW2B zX0gQ<;WgR7~vp!MpFhKkjFCmt}TmclOS$^F8CO%Hgg;IaGXP z?$gCGDBe{Dm*$kgs2J7;wJL*Y3T2@6p%i}gGW)5i6hZ~1%!VulZ;MjcCQ}Lz21=MC z&YbHlCGe@J1kU)Cu=Yan2y5F5pU=mCk`G}<`EZ$8-iCd7kkgz8n-}E4!KgggJv9$%B=W%j zQ7#N0&4sl!xgZ~#3&j?>%$~}HZ;x_dOiKd_Nsr4yMDL>U7u{kPb(**!J5jm~(CxIB%TA`U10H z9+?HhGOTa*Bn=K7PJ`!jm`@d$2143t@cwHmoIaZhf_15&nVJgCGg3iYG8N|BOM#v} zDe$#41*AMuKyrKve0-e@CypmWQB5+83r~jnDaj!FBMDM_l3?#zX1FIM!7Ga-cqYvH zoYxa!^|nNC%SnWONQ8{hiSXcl0$A*2hE+)d)Vm}=vqA#wdlnBXn&Tm=DjwumAGcX0 z9xPwYgk3E&VPy79aP*xCS!y$3?&~Y4*tpEwYf*#^RZSRj~O z4uH5d0nBm=fVr9hQ1Hed{0{qrQi(sD1Aj;o^@qU=eh^dZ2c2PlAgt~O(_i{R&^}*? z&h-UUle`M{w?Z2ZQ@2m0iF!2g~%9I5w){}Q~xQqP;UxxHZ4Q7=d=@nV*n z7mOG3g4<_3p=yaI$oYA~N(E2&b=L!Yw|Ky+nI1s3J>d3hcj!Cd4(D^-VaGIg$oT07 z>eLNrwHvrOxdDp1fyM<_$Xf0SyZxD`rQixr?zq6ijV{m=?E+ggTp;$jGf3}rhFz)7 zU}WG74ey-b-ytV(%X0#Og%fQ5=Ew{=M>tsK2x~bb zKIxf&Y`-z6H5!9*j4=q0H)bZ95j3qbf=F*87?v=CHQk1wTx|%8Z4BYzN74k?Fku2z-co~rWon@8%zUpus!-UX z3ZpYvUKmYPkhwn|N@~Z$4fpY&KB59q?JBT1TLpIOs6hKeWjJ1^4EsElVY!ep#2;4z z-5e!&q@x529*zU`x^b|_V;pFYC_-(UB7DqL1UoH7nA4{Ktt%Dao{Iu}_#@AbNgh6? z%0u5od1$*i7UnM=3(jnQtpI0iP&9s@t7j{(;~Sy;sUug(xz zcq%0eKe}W>dU~}$D`pw-Ds$H9}Nlrq+$F~X*iuC4Y6v{@cyb4WY3p^XI4_+ z_I?y>Ya9iGA)`QFY7|7Akc7&7Nm#8b37hXrz`7L@FyB!EQof6W%|3AuiWLWbtT?2d z6$8mKG1zP*29uwP!lpV=kZ==)l;0xIaZm(?XNrKeq6j3P6NUxl!m!a;7`8nXV$Wl9 zP_9C7zUbI7}934wILQ{v(F(|B=YRe+J-OWzdu7n5I00#o&HQ_ z=zb=7i$9UNcOS`CzmKHu=m(NF?gOzZeNSHBe@Eu9R-Wj#L6R#xNX{m`C8Fov5M%u} z#D3{(Lf#J$O}_y$bodoHApeT^750-yw_lRb886B44KIk;@8^U>Jtr~r8JRWl8JQ_~ zN*ta%Au{$)NcXnKBw6S&`5gae@wOWO|XrEx$mj2hWpb9_Puz-Mu7Btd}?@o+F~C zdPs|U5Am-&%jOKvkiZ#d$niDZM0)5n@%B4SDh`|?8%LcYJ5o-P`tB|=e^M8TtU5u| z?<2Wpi6pO%5}{8#5qR@ta8D<373(Cc;ycKBJWf83KTafz+llOrHX>ruMg|riBYb}= z5jeCGv-%ctqqeDTj&p>1N_Ov6&Q?9wO^*9wfU=4wBuA50LdQ z_mfh){ls(AJ~H~-UUI^3FNxo`hkO&=L(1ZIlMfxcNU-8A=3MP0UwU^CBdr}Itg4CR z-`!5Cr*0=zOB+d6|2E=lw~b8NxRvw|HIPl-4a9L*J$X31g``GoA^k@;li<;tNn7$J zBGt8#_^WIri}N;+)(h*&b*=T}S>-zN^7dNNXR?-@TC|32d0I!(+5EoY>eb}&+gh@~ zsg`JLSw#+hT}h06R+7e@E6Aw-mXoB=<)r1%GV)D)88M7oNyE31o>&_?gf_dcd?YYbbn@f7<&moK2XOpy)YBFt{ zfV}ChB#ZMah{EJ@QggMG3{;g6bE9ICdcTm=)D)09%Y3r*WiH8HokNH{%Srb>lQeA3 zAZ8xvr1^UqQQMJ93IbBd@&A&@oBfGIG9rN}ipLX~mN@byj;+BM9YYp(L=o$hNOD&` zf+Ti@kw+P!#6=~9Y&jD|p63P<<%t1=JMTw)i+qXyWFO*i*^6kFd6F;M9;Ee}8%eHo zCE|K6Wc^JiqEhWhmKZpY_qXkc!yH?(zz7I`mm|;T+K@lS)0AQxtm#W1O=*OyWV(GbwinWS1OUQy5q>js|uu|OrA{A8cX;~V~BUL zEV-p2LjulAle76!#B9PSQhQc{yvY_P)+%D8`jiNv>B8i*f)KGO`;VJ<@ejvO{KdV< z`Of`0^@S5v{LKBA{DFJjKFFON^@gj9dc_4Ee8GtgKjrrNKjs{^Kj1EYxyO09+~N3j zH@V5LuW=RDSGe;_E^;ytdpQ^59b=gug!amSNdxE;q1 zbBn|eaS37jImE zKW@LYC%5>3GneXP$GLv6=5$t0<0Q;Xxxs7t-1R(dj+fWq_O^`YHU}$mb>C#URqIA^ zbu&aco5O!?Vun83)J_|)xn2Cw#;D`E&ALB5Hj1{?X3y*+HbLFHY?Q>e*bKSX+Pq%6 z&}L{$v5l`*yiNaJFPly?OPj0hlWcVDq-|y|du#2yrOSHbfi>2n$^)&9t$$jr5LU6$ znB{O>^Q(Brvy0Ik4c9kzDA6+=H+FvPczsT$Q$>0jyL(8#JdNk^OpN^_-{f*{DO#b{?*}XewpYzUgq!uz9_1OKO?@B|8rzH zuM)G0SCg#c#ah<#w_`T&OC&e*+Aa0`j+kw{q+}ECe{?5b6}^XFA-yuqJd zf1AHxcaJ|jaGx()`G{AU@s!{6_&NV`K|ep;_%-i)>n-n6@t#-K{KTK@9pVFXzVRL7 ze)50#-~9N5fBaa<5x(HA5cM<=p)ysX^u$#$8l@>g`wJy$^tn;AYrHg-%^XcVPRP() zxiNHJ0?SF;I+kXLD^UAzMJlv!96j(yi8}eH&@&C=so5u0y3k<)%XvGI4!uyPlG9n9 z+l7Vx2Teha#j&=$=(3Aj2`eUmT&Hdm^ zuMk%%ztoMAK6mOh#gjS|c~P})Z~8#am(Gs$qf!U_Y1yv;df7FIimhQefS-j>Et4=R zSrJaJpNpUZ#V9%^KAO%u7(*Zailxe~GpXh3csk>80-a!xL|+so(-o&usH#jFT^v4( zK4?m(vL7?3woMjQTaZn^Ud^G+s(I8aIiH?yE}&C>7t&PcVp_AJgf6~UN;5ResYzx9 zy?(5c1`k)!Sf;oCC0X2WuNhhq-glND5F?n-K| zvx=JZuA<5rwe+LRYI^MOYC0>Zj!J*8qnkIZq2sx=bpE5Y^ilOXs;#-6Mx0qs%TqSc zC6XKIqJ0}_p7$o|{$Uf9S+$v-n7W0=+}uK67uM5wr3Tv5-ayAkY^7npx6*l=x6#d{ zk#2j`NNWY#X|_fawK~~EKg`@gR|)N;8ryf$jgGtM$n#w^aNcgZN^1}8?A}AKCGMp+ zME23HrhRn1(|#KDVn3ChcYyBHJV*^sAEfp1hv=`7L)2kgGcB+?Oluz>rW>n{&}9>j z(scePwTNt?uYR`B`RiNhXv<@?`qnY}Fu#pzjcunP&FwVL=Qu4HJWf*=cTk5ZomA{> zCq0_LQ_m5eUaY6ol0&-W9@6tgC+H{nE-G}mi~jLGNuRtqN%t>2MdP(j(~+*zv?jWn z{`%QXgVvs*>!zNir!JqRw^{!08)E0^@y2s>0rax-u9rS2JWmtkSg!E>7pR`wMVj{f zB3)H=iEdT7OxL$urX{{tsO_68%u%~a=c`|%!X4LWTF`ac_Wn8@WR{zR=1nS1Z_@7} zw`lLjTXfFi+jO$l9lD3!p~|6mY39efbWhDamP5Ud-s4MPpL)8GkR0@IgQx$oc6#As(kwe_04=q zGer7n_NIOsGW8YJ?0rRV#SYNSZv*tr($~~e^9`*%{)VFOTYCBBTiRVdNbBX^(db?8 z=m__o)?9y2zomSju75w!%G!@~o$e>Pmj6Uc{6ACM{?GJH*$^$2{Xz$~f1!>uzS63T zU+I>(Z?xgdH#&dOcj~M5gZ?@6gD!LYNrmqGq~WuE(KUa6(W5JW(^kztbi=Vfbf)`X zD*fOu-I(={N{#%Zv8(^1Yqf{zp|)YV&wYe0zCS{DS_)xFwGi6$3gJgNVO$d-jE38V zvE?n>T8QA<3K9I&ErMjUD3%3_;_fY?c=n|z-Zm1$+l69yj*8)4QE{yB7Du}^;`rr( zIBw9AK$8p!Y&|N0hQC?djDsY;t&v3YYm%6uJPOyuj>1DbN3j_1QP^T3h4tl9Sb9nd zoh7Al*jF0&ua!o(hthacb2R$T8jZAhG>-p18k1S?X!~3lywWR!gR(5fCs-E0Zj!~P zPi2wnj=`GDG3a!341WAE2A6;wj+-Zkt9s?|x6D`!4jPN~8^+?DM`LkVQy!Jmg zJdPWZ$G?^ec%woA*Pm2CZ!tyuiBhuI=;H3j^|`GaGk#f2Cde>|88pF`f-y`BWx0`*)R!z_Dw<$waK_RdNQ`v zPsZzyS?rgFCf=B-iS3P=xcIpydTMFm&qOU;yF&}r`?YYLjyC>D)<)l5+PLDCHv2qv z@Lq}zKHJ5%uXNabU0ji(i$1$_@mIet*6A>3E_n*B+%W||znFsdT6$QSpvU|(J;bMa zcuGSbkH+fbs(O8leyER%Y6jRDVSqjx4Diw&1GFAzh;=M3uCLY*Wv&^bv8)l=cpKrg zB}S;$YlI)gjIr6t7^CMHGbf=S;9Qe!~2 zGzpCx0A23@ddk|OwW}>E2yF4*F~LSS9kbxVB|ap{L$fn)t?;jv#ulh#yGP0Xh%GE-Vt96JL22vPWUjx36D2A zVf9@nG?Q`0i;m71Q0mMK4rk^sIb*zv3$9|Zr2FQ&;GuRG-15!^i&&iLj8Ip6xx^JK zx?J%ui$P7(b3=@F!+)#Xa0-i0wfW_SR>tl)Dc&82*0|%LUUv-o>y9r>JuoKG15d8= zK-mi(=xo?^UKkngg-`3e(67gf#iX-1Sp#oWit$FH zmELH`Ts*}u-Z-G`gWE%W(7nb7?{@g0-=Gg3nc$0meVCC~?TdbgeKGWzFS^P5;bbR2 z>@V=c)jRx9@3tTA7W2n3mi`!@;*VR_`QynRf4uzNAJ6CpU{h!SW-bgs^|k=)=np^` z7l`|u197Av5bc@*G37=emIwu5o>>qE#|7b}6+w8524VhS5dIt=%;L0zv8y;3M|K3G z{>@+{LLoTAGz8URLU3S72yQtZf;O*0@RUL*nmL4G4RiH+H;3Zq-cS_&9*X}o!|;h; z81AbK!`QuH`1>}CZ59s4cP8QJ5EYKqi^6eNOE|VZ3CI1?5x8_l1O_EWpvcMy+}s&~ z6JAB&0%q>rA(1#HEfS~JMWW4#NHlsAi4uxYc-}S&3uZ;3_?jr3b0P{~ypBQ>g=mat zBlnf5(O6v@jp=+elKyD?Asd66tYT0nAqF=rjlrST7@Yn%2IC}R+409>Mno+7%#B6m z{jtm?ip7M#vG_te4!wQim)AN``#uf_$IZmkFcaq_&%`OqXX3HenP~WM zCf10=<0XT5{1p(7qs!t^a$7vU?TN=@@8dB=F#$(x5^#2W0={09fL4bRFy|JFQU9HQ zb(0ctwre5=XEMicbt1O3C!+16L~Isjo}XS4diW$^ZhjJ0uTR1vnuLMRl2}}CGM+X_ zX0gV}c%>j2O*bTC2~Eb`Pm>WvQ?OGn1-E*qU`B2VPF%xc>f2Lr#sl`)e<}EZ#oBAR zq@sOVDmpJsMUz9RID9P?kAF$UFr_qnWR-@VQEAvvm4(=2>4HXR4e)A4aoI<^<4W69cdoYDmvrt($8^35|<1xs_*r;rLUz&{x z>#`ABvf1%vw4xj1w*7Zb1KGT$s0e~9Mc_(^%F$>rhLQ05Wl=3(Q~JapQXhZj!f zvCldWmwd~^(_`}SnSMULa>~c+G5NTinGNB!`S@*LK9-!x$0v{e-z-d!E5J(q0<3T> z!1$;FG%75>$IA+^XlDTqVF3o;DZu&<1$a@s5TB?QVxMIp9``LoK}sR&3ktDwZ6TT+ zEW~AJ3h~N=Li|2dh$2!&_D#Zz#N}2CcikDB6;=gO9sPLi`Wxti;NAWT|rc#D84a)EnSB5D* zWq2yK425&caLSxAG+$kYT1{p6v!x7M&Xi%$?K14^XAa}{GF&5Gj^~-h_(GQz%W~{> zEyvZN<>-)7j(3X6(SJcXHm@niFHPk*v85ahPnV;{^>Y0Aq#WBmlw;(-a(pgbf&Qu$ z*rZp14=gM2r*j4V39P{9GnpHbU4ikH?6JiaSh&6dZ||r;wWAg2)>VOFmnzVQ*&=$c zD)9AC1uh@1K;_YuxKO1M?`v10;?znsXDiq&ng6IBQi<Os+qu#Hd%5c;QneYW%6haIq>Z8B>Mj@Vfx}K9J9I#H*TsziKZ%y+Fylr zEme4!ufmq@D%^Cj3R7=Zp~{0QJoLN@4c=DalFwCmmH8^ahpTXugaH4^2=I=g0N1Dq zaE7J;yYvKTWGXs%1v?8^ewxF*0RW@e7QEx^dT0$koFz?}~Sxc!j; z=RXmk=Q9C*e=fj9F9rCwUw~l)0$lf+?fVUT4{rr{bWnf`-m&-eUVsl+iTS`DXGQL# z03BHgXC;Ug3s!!z$G5XGm6aXrx&PSzaje9$eWb8`1+jhVuzf#xCBPE)T0dW~zp>Ze z`&58^j|KStp#TT&v-f^afJ^SMecoc;=XC)yXa%_Jk^s-27vNxz0EfB-`1qs%n^Azt zodO(b6X2W{0lsP$pxFTd&fFuw!W{z4-X=irE$qE+5MW200Nqxy<60uXu?q$0H%EYZ zl>#g+5nxij04=iw_%2m|H3agJx-qr3pcM>B&*j2-hoc8-0o!kUj&sQbDK_dKmaxjts_T(82F=c{n{sVdyj zQH2YSRG|+uPJeBy!lfIkPt3PS>_@Vi?TR@zqK zYv%b_8&+Y?WOhC(v;UQ;!aR{GgkP2T{zE0se_4sceU&)#Y9;PEQ;9b^D)ITDO6+T5 zzpV|GShTznC(LE`PjMxV)QxJo<_REd|}D)AOqiKk2}akW+@dMa1qE2&Cmg;wCT z&lNbapVbBTDlqM01*V*+Ko91)%Cq16$#oSN%<6#46%}a2>V#ZYH*8{c#9mfcG_X3O zjMW|1tPXj?>XLL;r#xVFi}}-X%w~1XDpu#LXLZl~9pxCdwj9SSEXPB|esFdR*$#NY0QHJ#cWjO6_86N2=L&df-jM-U+OV^a))_G;PF~1DU z;>*z1zYO2nmSKf)84jtHp`TP4uKrnyov%vq{H;>N)1|ona4Cj2l;VF&OL0kADgI3< z#o*vl)-Nu_Hj`59QY*z~$x>YKtppvOm*9&lC9GXlg7j)5{7mrl=4f#}uNAYa!N|6f%Rf5TF0Y9N<^%`gx@QH?|d^Z$kmTSx|r( zS&nN0o%uL_Sw2b@tg3 zWaGq+Y*gKnjsFDM*c+dX<<8ltFeMx7MrGrlLDn|9l7-cWvvAAmENm>y!eyaZ7-yBm z-1RKv|74=`qfBf)k%^HZEY!}#0I^IQ_bLNV^<-f1?hL%LC-M-gK3A(Qo!O4*cvd$ZRmIuu{#jUgW)?1PnuS$! zXJJJAESzXR3(u?1!svf#c<(_Pa-C_oa6=j%FHU2he;VF4Ps5XPX}J0W^Pn!J;>W$I zShgq?2a{6K#W58ZX)qt^Zwhwzr69JY;I_IHO#k1utq*J4>ZhQMcna=(o{T?FB%{UV zWDG4y#)KfYHBCly>16!=DhZoTC!tkC5*{l{LbZ@2oMo1TTcwlm#H&O+dx}}wTM}_u zNg{d&CgL}vL}p(l;>fcEOr!~Ta9sjE%T2(4o(U+VlYk%oi^ntfm@9QO9u1boV@Gm4 zn%l)=ok~1D`aBcIT%3spJ7%Iu)l5_ior#}KW@59%ObmM(hXcpsaAqyDzh}jvjAI-+ zsK#OJP%I{1h{eF|v1m{pi*EyBagBZ~P7#X5rh73cc{m0`7combHUcTKLHH^8$Vdy$04CP*g;+eKkOjr_%Z(>3*YHBF9i-zLgyCG<_KLlL_ z%&`h!eMs#Pl>HHm*UkrH<(6QS&k4plW?B7H2*$uyL0Ee{h+Ut8@Je(LUNQ;7){#J5 z$oi^II|A`-Q6N^h1>z5tK#YAGfX#dWzFo$QtJnaXWE#L69e*6T=8xAJ{c&l&KbkqQ zKCyy7+Pw6`t*w6ealRiKg!rMKjvvN-^To)szG%PJ7v++D@zOM3%op`Vkz35VYGPh} zz7JYC`e4ymAFO}sjfb1P@sNP|S3cgDF@g2p2fgrihZknlc;R5E7l!G0;h`^{|L0(- zukyqhv7X2od9pD^4;1h9z)NdAP{76w)TVl1(|_)$e90Y4HoD{K6lUyOxTC6&JL+9= z!^xZ7P&~~I?@V*U)k16>;)*L?+2o2osjkd=bj2|vE*Nmh1*;HD%O+-By2tN%J< zPOmdsuW`nYan4w4=#1(=oN&WwC;V@@6Z%Iu;RBHZ-?#ic35p_hts~< z;_VZ*m{?Fe-!c0;Q5jnJ7 z$l(EB4#kx@^nGH3^LE?d&Kw(Tox$=Y3|r%-bJm#4@+eFTV`Ee5);RZ-70MoB`4x(+ z@Ex&2dr>Q#eQ^dJT0H~LN6f$*Y@F--fF&L{WQl?zw)lZq;u~R0oOgaYO0AlX)uGez zIrFwGUQENhz0;lgMI{4MtovYs!$(ap zoQ(-Kawd3p*cktI8>3u}G0J-zqlla_K4%`+;q^wC8D)gZ8b)~JxglEbGQ=aZ3{lzG z5Hmg*U~`KBJ}Wjr5gP+k_@|HZC-re;u0B3;(Z{`#`j~W44`o;A;ckCDG*w_@oVTao z=nYdaA#w`to-hR;Jl4hkw&~*7M3##~M;Ap0bnxXK9c)e4!9pV))cT-}r<%3VFHajU znQNo=69j7%=WS#~RCk;#y(ZJc=>bPW{IvaOX$7~UGbnl*s3iBr76-PFP zEIbj%ot}V=b0(m=!vtJ1qK2=#)X=h84GV2q4wHYXc$%uRF>qD9X`_l~evQXn$H!w? z$#^7|%XhAcvK+ zP8KbsWHG;onO|&<;GC@tKKeZx``bq2ll;+m(PT94eJhRSyQC2kq;Y7XG;ZvZLW{Lh z>~|`KFj@)^og0Pn^G0E+?I=9_OA-fLB~c}p<+3r9M6Xv8=-()T?$Huxp)7%NH^lMj zGI4BjV-A?GI0~Z})|ZH(k+~Qid?$*UyG3zvyePg@VD*yb9rt^n3uK!JckNQn*Du2<04?k)C%%61DjUUv*`3IG2`%b&2e5ausztP)L z-zZdmrOV!bp=V;h(3e+-=sWu%`sm1K+NSxLmezfuTB4t58*{?U`#;ciAs^_=v+t>@ z<$G$)=Bpf)SZ<<)gH-nWTY4k;Ev>%&hK_T2L)W&xro&pVX+YfoT_HR`Tk~GgGf(>| z`t{Ss6EA7D@k^?+(@`zg=npn;cw@;`y7BuJ>YZ?f z4qj&Siq@Cu#~qhwu-qlOv*IFs@#+GV4ZJ{g@H{opJ5SZ>dg(7_ik(S2M=Njk(8(9_xx~J)ZRj25_-zVuhW{c%s>7rIvUGzia3A$SP z1l4BE>K%_Mm3OB!`v^}vRC)SkUME$3-$AE_cF^fv$Em*FaVlNg&gRkE=$3>w>UHrL zePeNq7H?^#L!zxTCaZ!f#T}Nnw>=9aCe3;I8+)PVdn`zvkL)21<<>#t8 zNRRd(py56T=!e$*v}nS9Iyi414H(=@_XO^xA3OHYDUzTC=Qyo*b&DZ^P@U zSl1RRud{{9E!|8Rq>pF8{HRo{m~b-*zpa650!>O3i#a z@!dSC>_3l+wa%rlmFLo~iaAvA#B92DK{Xxm7SLeDDq8!Xf_7{#rx$0H(H^r>mLIH` zR-GuKRtpO0Bd-FQEuT-{+{>l@TXSe*ayETzm_;RqGN{_|bgCwpMa7-d=;KkTbo7-InqN7Mmf2a*JYjPh zdDe_t)|gUJFB5u3#+VjgGi2wz0X-U`Pl<{i?YOT?_3L%$vN&z}e6kibdO4ZS+BJ!8 zO4Fbx4Akk}cN6H#Lu#}?SC!s3A5Xi#D%0(4O0=+a93?i2^w%GGx*x~Vz-l@A(S8h_ zBP>fL&y1!E7f91zu2M8nauhv%UV^GD6{pGGVswv;D1CNCn98pbqWO)(e6!X+{=v@Q z{P!t8`Qg3a_@9Pf_-6+{@g1fg_&G-gc^iv2{EOCCyuk7$KkE21exdaf{%hw$K7`!o zcjI0Dz3pvY=j09E-{Bgcefly#+vy^|;7l)H?b5?%^>p+8Zm0Muy(jpu?v!sk-@#{l zw)1KiTlp@pqkQD0W`5B7AYX8KAOFQ?51)QzC*SAW#M@up#&7j&;D21*%)9w-4$( zrpEwDklqH=v;-=x9dAsncp5wY%3HU+lQUGDBv+mEn+%^@|5Z)&~-rtnETC zT2Jx#Vr`}_Yx6}((}*4tR7HQL-t*l)wd z9J84f)@2hDaNb7Q>!!_G=SMboV8Eu&^0Q5Y=^vZbiXvRAoFsQ_v<$aKQl1MCRp#Ce zt8s~cCUNcGb-01g2Hem)Q||7-G;aNKYi{ZzTW-f)C+_2QcTVAw4=39b$UW@};}&;B zbCNCbT=anyZo$qBZeBw!7qY&H`@OQ9%d4s89-o}cy(0^_7snTIr>8C979U>5SsAV5 zuI#SmytUSFM;g{~|Hg0ROxJGa+~pcL*QMJyL-8i=>+GFe)1TekjN*OV;ZFxRnT%%6 zxBm!N5ZB68_AxUpsDrb*%yVyDPjJ;IPjcU_yE(s>v)mG+UT*i!3*1ii%iR3+S2<_7 z8{Es9TU?URUG8jIA15~SfYV8T%xOP=$_Yij;7(lc=OR2_b2m=D<@BxIbFs}Ixm?{L zF0TG7XQ=ptyS3yO7a{bQ>n!XkeJ`P)gN0MdgOnQ@Dh}0HWVt&JoI7oUBOIuGew$O{**y~M7pZE~b zaek!O)1O?a4j@v;0*TSvAY!2rLNtOy$;X;7vIE13?N9`vx=}fk?Khz@H?4oGfpJ~Gt-FNnptGRxpX4^JA*tl$|5V{vWX5`S6qK4 zm;CsiM=bOUh<{We@n2p<%({xn(5DizPP2@t2A7lB3o1xYTP680P({9}RFlUZv&k)( zL-g*Rv#p@OlZ<9r2`0OIGEvAN;f2$!! zmn|lm+DphBehIl6xRi{3yOdbXSw@0YmXp}#xNRXRjm2l-85g2iB8V#|=dJ-Uf0a zYaZ3ladzBFCf?mjUSw<|>qfQ_ z%e9T!EO+!lvbyyksdPI;0`DIp3R%shYq*(&u0Blq zw2u(i_9JAg$5Ha)!BHZg-9ijUT8P=|R-&POjQl!wjG$W^$?9t(;u-B^$=`PJYx!{! zsL?^z9_}Eg9XiSV8=d4qB2UhJ!-Sn=HB4O?1-EkbOVS5amT@Nw!iCIk>Zj+?jTc40N;n<$=BA z%(GsyGWR@j8a_{+uvmno2^YzYeHV$I^(B&W?h;uRa+z#;ahcTST_HKcSBT~EtE6A` z8mZWGjr^W|oy_dMP7e9sATJ)>AS3BFiP+DZ7wVr8JH6**)6wVT0eL}$&%GdH0$vi~2QSI}q<*sDLq8#< zugF=U0Wxjr0I5-YO-|RpCeL)=kpAX3?3)u@QEzk{E3Xw`b;YKeI{3?4iV9gA);>oh5hcnkYS&%r03RG zk{9)jj6C~B3evul3m?7{(V`zj>(39OGv_CfmiR?(FZ)I2%Ks(`8-A0TiGRqG?SF`x z-d|#U@Gs%anFZJWkG$soBXuYLBbqM5r0)DM8Soh)8aGBry`d0n&Ju#9%|ej*SqSVb zgh8Z87>>6IL+nps_+~8vf(jA%Nkt&>KN0A%6NS-pM8Wg4D3ptc!6s)h*uOvw4)%z_ zHVJWQL=5SImK7g?AxUlx9!mIV|V1G)BNK%sgJ?7}gi|91>*v5|w}QaK1{ zmxDFm^QI%R)Vp1N^rMA36`@sFpFAm%?FJ}w;(=g*CYS`k%nw_~ncxhl+SQw513 zRVX)Bg9mA9V6a0CW<61Zb*dBKXvhSht0us)ixZ$;d?FM$Oa!aSi7?nU5te>5)9={f|L7M++6=8(9xI-7(N-C zR!@fZi<4ozm?q4!)r8$8nsD>5CcJ;63EwoeU@%GxuCCF7#>-kTQ(PNl?6hHTi8f3< ztPOi!v-^{EATEN%_0{UYrSm#4AfyYQtaag4o-SP2s|#D6=|a@_DIgIr1sZFnfd0uT z(C}jljF{+we~KO~uV?XtxAfo|bLnn7>chD*eb{|i9|{Nb!9?8v?gSe^`ceaUcgg^w zei}f#i6M+68N!Ush7ft(5Yi=#APtNlu)qlP_Zq?b$40PK(HOwf7<#LX!Ty*r?09Po z-!)8NT8Ih6Eir+TE)%F=v5{H&rr;H83ghZbSiW$sd zcHI%nsmv~!3bz}k!ucChf#raOQX6wH&o+m9jpmSX+Z^6XT0jV~fP*;}@OirhOul0Q zFlrjOl4)R*GY!_FSd9>zx6!<$9+aPXKtM7^+wuW}AhYU=<484h5-(E%3p zI6&(c2e>-P5pMZ7LU*|%H0*YS#9NM_AmjvxjGe$D(g~UtI>CQOoxtgd6BI~0!-^Ts zP?zWob5}Y;4DSq+2b|%$ybEO5y1>U-EUtL13$&kff!~8Jpr`B#4vwzioaG8rH@Jdi zw<}zD?+V2#ZXm{hk>yk zP|A70mn07eU*Q3}+dbgvQx6c4VlmPdo*)tJ39sjSLd!uhXt&L4PQdV=?8^1E4T60Q{>1VBC%X=924?wH z%Y=fjX()&Xgu?FpP?*Y0zouiMFnlKzoPLHv&iF7`U=s%OqQW4(G7N0$!(a%*pzd)P zOdJk_l^Wsj)-D`OW`;xL>~P5077m#w!y)i#I7}W1hkF_kP+}JW!?6*ND~N#e^${SA z5itE>1i1f+04LQ*(6x?)p|D8URU8RUYa^kzB@!%eM8dL9k#Ipa3O*Y}!H8!R{78#} zy9=XW>y9Y!I~@hDpF~00zbLq_8Vy=j(GVRH4TAh=s96~e6$hdrC?TfM5Vh2ndP@N()HG?NHL)`8*(9&ttd#Ol(9{P_erkmADyOvBeHB5L;|f zzSaj?`d#UGaY6Q=8S~Ebhw$34hd7!;q;1h z&^?q6F_+U}{0qMSZ#sMZ@0A4|rde=>Wx?FoEU+ldg2OYiVBpFun7S_u z@Jtpwe~<;=K4!r?4xBK^fpohZcsVo&;y9;bw=4%<&By_@iX7;(D~CT{zONw%c0SL6==L0VrkV>W zM!8VukP8X{xnP%^3x2X(@R^ETiU;r<2CKdu1oW){HsQ3dd8dI1!c7Qpef1<<*>01Rsjz^tD08SfOp z$7h_)_^AM5{}jMe)k28VFNFPOh49I-5cGWt!6Kp%j8Y5XcU~c!8e0hRnT7CoaUo1v zT?h}h7lLtBAw-@igq+KTka4dN{8~8M@na#J=q!Xpl_I#SSp>|m2o_ir0XlNdqh}F3 z2rhzCaYay;UIYP!MeuxV5#&!Vf}0D9U{HAxNY@v^)SX2z`*0DA#3IfQ;(U|qMX>2X z5m>bp!Rpo`_|#SewttHtrkf0;nlgwqkb(I?8N9NVL8+4r`hpCW_{-pJxC{m-$RI9F z2HCkXNEt2z*YPs=`JW87&yj)KVi_DPmqD+!GKk;8d6T9gViy!kq2I)^_u zlf%#=Ib0bo2Vt}vmX4Fd)roTWJVg#ar^%sprX0=|%VE|$Ian-|!;um>m@kpT%%yTT zwOkHwD&+8ECI4R~zs4FlELkx%iyWG^a?Z?lIq2_@gBEAceBn~F zOAfia<-D!PVeB4$FI@WXl|uxVY%UpG{J8Yua+2>$;&PAw7q~3s#}YrsJ$}CX{JbZ( zaaJe4h9AFH^Co^gzxK8Daxmg$N#tc3$ICXEmobl*)q|J$TbUdxO6Ab6L=KA<$l>W+ zzRvH_o8M~)zh@7A?^?VLZj6=lwk-!GUN_?l<%GGB7?}v(@eMb>AuPcJX z%Zs3Z>rywaQ>9$Deijr#6xX#yT<7+4-K*g`xQpxJEUuG2TsL2H9UaegwUz5^FxTD1 zT!(A8E??q0eU|I?Hm>8tcN9YZHHC1rv=AI;6+-2>LU@^92nLcuaEUAgci%!7=v)YG z=Dhzf;C+I6A>8|000CbLVBPZqXuMkh3Kt8Yr&s`r`wHOk`U1|iDS)t9e0@v-B;^!9 zZ35pHQ~(a{1rTgi06~2Vz)r0Ie*fY;+4uPn^*A5yT;u)UiF~LykPkODGx;~jahoHLGw z%*lhJV>s(5GY=+2vsvCnhC=w>b)K9LK9_vONp)w%Fs zUM{GP3M{)uc@x;qR4e5TdhMwmGaCgcy}+`(Z` z<~$5K`woLJ#bGdy^O|;FONV1e(qYf)beKOQ9U^km;df{{RM@A3j$S%U`;`XQo7132 zeHz&8P2)VBG_W0?25PBkaMLRdW(`UM1I|re^Ii(dH#tZ7m=wxaOQD9doz7=Uc|eeq z^ERcB(^Cq%UnFqojs%=)C9r8N=Pyr}fO8hNxdJ47OecXnH3@`#Oa$dsgl=$Q(C2BdG*h7VOEM_l z=Jw&yWQbmo3<(pG!9OV(4BeCAv3@cv=u85`#w1uHCUK@&62whSf>KEm9A-&yqF)jm z`;`bQn-U=d6G3NfA{?HQ2=3f=-OX)SWrIWr?nr>~_YAa%T6eFg`Z0h~|A}G;}_Wg0Q+Mm|qbE2S!H0DbD#u zvnbf2z{eL&kziLH3AZ_mDn}LxPXi*s-#8K~envpUod{?<5CO^yBj8_F1m}eDaf@CA zjQku9x|hRY`_^zUo)!-C62sx%kZ{oM5f1JxVGx305WrdFHp9c=@emkZ7y@>_A<(EF0%JZ0!}klp{2dhx zG$9xiB7?!+EEvLmb7uPOAn@B01je(1;7w8xthEaQrV<3_n*xDV1;V-of$%mx5KLSG zAwVq<;-3XTR80W5mIiRHbpV`q4}cN90-(zaf0$F}&$*)h5R~H&B_94D_VS0j&;8(0 ztsgX$`oVraW}WEf2e#^byLl+29peo6g+l?-he9dmU0vxq6xtenLG_?7s1^G{XQD6M zvi60_zdjIp%LiU>=iIBwd>PKSjeWR1?hUu=z2WC-Z|FJP8`OQgp+nmnZoKq@idruS zDDi@pG%t|Zd%-g$FYvqT3CnkS!nMhsoCoX)J&Zg-^)o>GX@HyM0IRs^8|nt|t~u$92Tyx&Q?&={`$Ir|+Yop(Y6z_M90CEVL*VH>JILQ^2aiYEfiKuWMRz;6 zd&d@(H`{{Aa9gnPumy7!Tj+Ju241eSfjtE_kmhUy|NaezvMYn3=c>UlC2KI;vmFe^ zo!ozQ&KhQxS;NXyYgl7u4NE>-ahuo*eCAofzi2Di-_Hs{xgYHAAxns!Y6*1#mY}6+ z3CWEXP`b?mszz8qy}JcmRI&i^syVD(X%0mh=3r%Q4)?#A!MNjQpfKMIrbe5=D+4p| zer^g2_L;(|@uu*`%M|{0Gv$5lAl`Nc!PBfkaAfcxn9w#5td0+at8+P*D{>$_)f))W zPfg(PP7_cZWdgqLCNN6D1j;TNbDy6vtWP$E5@Ta1d@}&t4h?{|i34DZ_W%fcwUb))_q{`XFZs6Ob@P4(Ssg7df=?0$H&OJkY1(>Y4N%c zZlDV`Pjuk#79BX1uLEOkbU^=0Z`gmVH#kq}4g0)$gKn4JF!F*nh$Y(49;FRtI@;j> zKnoJqX+ctk7KEB=!H_qapt4UBu8q`$c}|*O->w1IL=8xtt^tj{8W5_Y0sAlZ;*8>6 z5ERu5W@z_zJn>tL)R|ijPb@=gK4K^KA0~n(QSDe)# ztX&n3*Qvt5|5RbJmnxi5P=!BddVuxZ9uOMT10+3qK*p8skjVY*-cjA5uU2<>bE_NY zHg<#5#BT7fPd8Zguq&9X<^Fmp&+TH=6-GQ&fis&_Ks8GR{06DOs29pmwq2QzQTcn9;JgJeSs6X0h-MQ&oAx?#_J87X5z3EGNBUhrYdJ zCL>?6sqbE}lesV0`{w7Yi}X2DzTd(=#k8=qSD&$2LC=`=nPx`N%-n09vJDPT*{8iv zn3eex7P;v$OY8fXB~?6Ptk)yfV?h%;qu9jqrZ%#+wufx^h==Uv>j%s@^8rg~yw9e` z-Djm&@392|_t@|gcbS*lUH0?f9k$u>4s+gon^hUyW`@gevC*ox*x}hX*^{3)*pD$c zSm(P2_BN}5ool?#7RO#^-j}bjC%)HMQQcMc%%100+I5Ak7;uH%TzQ%O?0K1K%)P|4 zeqUt&#$05LZ!fSd85daM{d(3OQP1X{JI@r@c~)@v96N4tj{RMKmf7i?Wuc4CusDS? zEOf$YX7~OSQ^-2SPToJsumV38m4Yt!&YyoX1cwr+06OJ*u!5(naQZ5EcyR@vE(Cc`PC}6 z!l#NYIC_{BS{`P?x^Jl`MYh3TF1cg1wbi zu#MNsS&&ybYdNr-jU2F?eJWeVG8LAw`cX?+|7T?^KcBL;t)ov~u zwtf!VuRe!;oLbCGTW7O~)Y(jSX%?I2K8wxSIg?G-o5`9~XRxhrrm?vC|JaAEQ`x9l zQ`n>Q$^2`_BsRuiB3t)kJUe)M9NT|rEL%}JhUFKHW~M=-*p)#eS(?HK_VAIM`PRu; z#fl@hJilBDQ;JSzT?QwyuPTY`dUHHmg>fu$Wi0zPDu&Gqi)P)-qu2z6NOrq1oEaSp zW65QqY*t|itMm(I8~X>biuM3D>83vm-|NTQ`cQT{-Iry%`>^j?-fTjvCwp@aSjYy( z)=m`I<7f}2Y30ZT9hriU1G}Ve&*prwV-A;XS;H0^mOgbb zYmT#K@itaWRJLTjADgqZV`gk^sVTdXJBWSs9LSXUoD%hq16cQZBi6CLKWiFq$PP#J zV^hugGLJv{?A@I{jL$u0)^l`Otwe`0r{1heRht>LXtEhRC*Yl>z1V<)o@|)6I;+rA zV<$fJU{B6>RnPR94>o8VkuiBM315J@_+pfUgb^H}3?f5NxkNYVMQ|u6G z4ty8>O1=qBJ-!Hu)gOhz?Dv99^PP}({I%d+^it65^IW)fwpo}n>WN^{|B--~9tyq_ z?hCa8?+V5Zw}h!vZwMDHt_$7nToHtsmxN(97lerq&I!eH&IrZ!r-X@*jtj#Upun8# zgr3dS!tIiy!Vka@4?IT_ao zMk^}?x$jD$>V3KJWz{ml%CAh2d|b>~Xp4kB{tJYQpXLhB))WhE0kecIEz<-Y_sN3c zl5s-67b68NK_>hw%M)I{%oNVEG-3U+WMS0nIKk61N>C{e6)wIB5axUN3VszJ{Cevq z9QJk+a#z?1eOj%Ai#}$;q?N{k<@k+$bi${RxYLC#jWgeL;=6UE9 zPw}W|%J=YePVnemI@H79)ew&;@BSXOm8u?lUwm>;sJ!exI()l(7sZ+GhH@8o$$`6W z>OB?RMtfP++&uHP#$b$h?Hz@=wJO1TYS%AmsI9!yR@SW!_R~PHLxZJ9XC~m47 zcJoD@>wu4Sx8&`025Ac7-YzO)|2;j#QPI7`tv|HIW9#~eJBJ#I6WTTUMAOc7qEE<1(Qox;(dO+|@wfX9@$iCOV)%nS;x&u?qT|Ga;Cqii?RsEfoGKbmQp4Bl)N#$}p2%MH!i%b!=sQFUcgAUB=fvLVzD@_TPU+&L7kW6g zyFM1!7~s(8zSwPCKdf10h_TooA3ia{P$gsBVP=9Kf(PON`5%u-^t}JXmiXJFWz&* zhz@tGGZ3&BV;CyspYo=8;?xaZIP#=7hBo_PPsO2FW8#OwL;dkoRsb3o2V(BlAY6Vn z7`HzU!Hr$QaQdKd^!JOvFIkaTJUa@1ZH~s|(=oWNITp|Ti^JPS30Uu$h#RCyD4m*& ze^;mAyxLU!dQXBwze{mq?{r-1FbtPOW#Gu+ndn@Sg->>6qpUs$o1W+55XF4VH!8r{ ztPp1=7h&dj8JaGa0dg zpM&vx_}pu^xp?{PTpS)f4;3EI!`X%NvF-bOOqk8*Z1-A-uhuL?J&Q%?a%2(ud2=4y zl@hc~T8!PFFUH#=O0o23DZ0#Cg4g(b@VND5c+qkx4nDdRr+F{K6PK6a$Asmm_G~%o z%ga%_y&Qkds=!<7D{$4S6&N;fCBEOs=bpQ*!p_sHFekhckKe0A<;>OS-ntqk(jamO~&rV zKEHNj=j=UrL3Jeb zp;y*nRC;?D509+Eupd=;^S>kL+vO;(Uw9OsYaBzJmB-NDuo_*rRHLP34R$$DgO{CZ zacW&H>Ur1UI?ixY4;3-5LBzfBh>Z^szoirYcux4d;5dpOj^orZC(yk81d3BnqPxN= z+%)GDe(io5ZA(vMtkxOKSaAlE4bGy+`m@-@=Xrkk^B6Lu9yeFjV~fiL zRIj^$1K=X|J9!cR`Ch_n=PqG!&}B5ad>MC#UqStbD>y3VDjvRl6&n+-Ve9>C_%h`> z);C?prD+W~^l1Y=%D92)EjRFD_D$^j@+QXT-NNy&Z{hTU+c@&=Z455DgWX&2;6d44 z^m>06kIC<$_J@0zJp4Y+`EVas4S#^kKRm#3!ylsOhllt<-iUMFH=>ff3G-T;u&U@0 zzThz@e+nMs@7Is9CGQCyeE9^ka-QO^mZvy1vl*W~ZAQEFXPEiu8BR%U!O0I=Fg@`( zTHSe$jWI89bi)h$82%DtF2BUpL9g)QxmWne_ch)<@fwe^H#oWW4Gwa7i$@N>MGL!k zID5}KJZ;{JueP+}XQTH#FZ_EvqW1yi%RiuMua8)|@FRX#{)E0WKjGM4pK#%X&p7AH zXUvv=L5tU4@J8lWOndYduP1&()0^KgJ**9uyw&(~TBv;PF=vy3rr4?zAbaJ2}toPIV`` zlU+x5s&MGRr20)fmh3@K`l8v3bKrW>cLdY0;2&EmF19 zrn@=Xv~;aD3AeQAPWRrF?%kX2kMB)B`+8GlOK)n{*P%X9Iy`1mhvHC&QoiU=BxlVz zrs;D2k}hXb=+czGx@73ANBax)$Y!G+t-GT~KYR3{An!gjXB>~s+uet*Jn6$(A^LPZ zSf8q==~HQyKE=J(r|yOZv@hC#yyx;*zd8fX(J-Lp1N%~QVqY>U=}Vy}`%><=zBJOJ zALUE>QB+w!GCSLk-u~!E>#YsRJKc~PmKk!+mLXAxAsN{8r<`H^Y5ns4bpCvQYU=1u z&4Z2TPP!3Qb0*!qb4KLfZbV? zqcOcSHlgdWCbVOY3CXKX$oP#3oiP|lv0(%0#(x9J^T0q_^>iRT)f_~+LkE$^*g+Jw zjmupgPubO!blgnoalR>4RGN~H=wKQ(YB1$(7)&8o zIos~%V7hN%L$eZW$e`GU)*s^Ws!wcaxSB21y4%v1TwBsBw6#stcG^)_^C2XQ9YV*a524?ChLFYmAv|8!p8SW{lZ(Wjde66~$5r-J z@x-3oRUPP}ivtB@I?#c|4y0V`K!ML4Xk0HxTI%6Qt8yHvq|A|Iq9eJ#bfhmDPP9^R zBFkJS+EM02nxYfszi^^Gy`1TxyECK=Z1Knsao`bE9+X+z8IQ(WVb> z^jX)PY`oklKF^)#H6#|C(*TMv8EyL+Bw_}h~N6EE@$^ddKz7xh`{MbD0U z(W-}D;d@_7(-=zq9EZ}m_@R_MaVXteJ(PTC zD1WX)>9&F&{T}E?S^<8fneRtG7x+=b9zR-gmB*=n^rLGU{uJ)uPt~#hq&Ci!5`0i+@cpaW9_Xz02CIz<6w^*Dh3`x8K7|3GT-45aUAf%J7+ zAT_QJqN;I%?TmP**vy?V+d_M9zxztAynTH zLT-AYwA?9_?nj4G*AbyKpd^$A?g}N1^P%+W8E5|e4W(Gl3V7`nMtSjJ)G#WH29}1= zu-#!a?>uJ-JPV^`f5K?IK{)xlgwyZnaM~abC+h{_v}tQNDVz+akj8MD_C1`|XhzWH z!4b49FoNWnoDKM21U*?9K@$!~Q2Uh#%6b(+H42gRqi-Y`xkQqER3zCHMv@k19yG6u zq}A1t#BM~=g}0I9*(HkB8Aj0ymnhz^N0C!O6uHleB8xRqq;MpP&RmJ25ig>s%bzHk zr5jD}Y@>+$}42@eBLt}Tvko05>+1=v|hxakGq)RLr_Kl@-`&jxG7)zdMoI5x+mP$GIp?qU3 z%{~@OsaImD-?Lb%|H0SQ|lz1u~9#8XT#Z%#mcyityPj85C--svm7xDC8dpzA$ zP2e&33FPaLKneZ{6q}Sl?nMdIZCV1IC`+JWTN3E)(FBrmzG3ad1p3pOK!g7#&``}p z@*S8+*3OCaJ0Ov2k`gJkFp*wQNhImwL=x90lG4FMay*qtVK);gq9u{X*e8;jauQwC zNum*EN%Y$#iN*#d(e1<}GR#k+$caf*I6sNxtCA>rXA;@faBgCK5-q=%L<3(X(VFi` z^h-IJ0(6pT(x7B2cTA>A-(;E_olKHp$z(7hnNI(gOfeV0&rhMwaVhj_RtnLQ z6q>R&g-mv((4nI#WOX`)7G6uC+YeJnr<)Q%~W!0 zN~NfmTt20eduJ-Cc9GCIbqVF^N$BeU3FTTz=!~O;x`Bk812_vMQbNH=5*m^rp??Ju zsu?Yzq$v_=o-Lu+5((`qm(ZuR66(86Lbm%PWPMaZy+}e$XC<`k3P0|)gsK}QWX9Pl z)80zx_-6^dZ0G#QzY_YaBBfjEQd-|zO3{6#)M_l{_K1`o*-FWQGg(FmQmXKg@|b%m ztqzycq*y8WBunXYnv@o1OG&j*O5;XIseY`K6ee>P<#Z_xDVEZp1ycIASW4%XNon*- z&U#rZrMVlW^nR<9*e)rJ-6y5;LsD9Ml=EL|rIbff{{H1qaTveJrKD%~C3QE+ws3Qri4RN(QY`n*2dZXFo})?TeIpwefvFr1Yy@ zN)4S-D*46B^hZkcm*0~@8ZA*wqdQ7z)I~Xs`l_UnLDw`=?3PBixRi8HBby#+RL#Xw zHI0h7)N}d5rK?&RDRFtt*N<_Lap}QjDgUnmmt=lyB|pb$e!g4$yjS`84|YkTDg0Wt z{F;~kNhyMtLHsQx4PK@QUbb<(jK$xjH07I=QhC`2@_V@bUP{B?N$JyTDW$xW(!Lfc zy?H7nb$;*qybgNux@f&ErNcL*lyOZ;?U$r9v7Xo28Ge5!dEFqd(;ChMJtCz=2YKD@ zm6G*NDc#?~&%1#iyIM*yD|p>4mC}O}DRpuNkJ4;jcmGN0`a~%$8zUtcE~Oj!yo^~= zs*>_&nKDvpDN?vV=B{l2B{DgiMA>$U9L&K@k%EZkLb-lh92E&PKK5ZJz7SB3*uNH3@-| zgvNBF((;d~wB|)Bl{BVO&W%*E;5v8axUNTWov-D(-$ReHhj?F*%lm}Uyl=?keT08w3aMRBA(8hTamP5@ zmG>n+>r$wqEQM~&PN5&;d0$ePLVqMFoE@7&yL?kf;+#V5<|*`_K?=31rO?p7$yEF~ znLq1fI(a9Vus)eK)h5%3J;`LYE}71kCR5amWI8h{nfhlXQ&wCuE%Q&NT`pYAlR2X) znR2@)lSyY1e-|cEVq+3ryPQNrFo`DbO``p4ljw3u61TyV=%g%(DkVvj8kR&|SrV=T%^)jiDWq{kq)FMl3_$5jbn*a zZIwvR`XthKl|=gXErFVzCD6Wx1j;*}K&pEaXjNqb^_rJJBgZCCT}A@Ek4T^%EP*sF z6G%Zfff^MPXv4>N3Tuj|XBXlr>u5Y(-4xHcz40WS98bl$@l+8LPfI-GX^d4o`RK+| zJ7@M*zK9F3eCMW@nf=n^n|mZWai=2qRMTxPuy<1 z9Yz;x!l-p^7B#kiY{2EI0?}gI8x=_kmA4-R2a{hC6DD?~q zrGD0-q}wx;IzNTb#akiV-r@FTWeC+y2_dJn5L)dWLhnpM$Xq#uB3=d4u#3SY-NRYa zi-W1ph+w)G6-+Z6f=Q=$FqO9j(cim46kiiWD=LHN%;X??m>NWnSP)(2Ht<$%3+F!x zq&_DDscK^&xz7xwJsE-2%{P#uOaiG`F_5-A3*i2U0NS!SfQn}YP;_Phb@%1JaZWZ< z2%uw6{i)wcf8Hnh)1GPmbW7?_uNarU{&cg`k9IxqBUz0f8Laf9BjdPzALmEA9sH=P zrXNLq97@Gkhtk$PL+QYRp|m4!C@u8ob(RkuOZOoego)cxLcZJ{@*<$06qP;Ux1 z@}{VtUgUMpiwvr~sJYaODhj>0ec(l>jQLoIkCWEl_oRzirUSHe`@7<0vN4wW3)hvQC_P+4(A1W zvq7N6lLRu16=?Nffx4&&l*-vw>uWsd+ENdCSLi`)L;13w2VHM-rw!NKNwUM8RA#u- zx+Hfpws)sx-QDR^vm1HTxzXrlZnUz{jrW6Yw9~+i%D=dh{E{m?pa=j>dS}(NrzIe92i^b+%+(YD=vdwzS6CmfXAB(%B{(@;qom z+h^O*Z|;}yv9h7DzX#KbhQYLL%V63velV2<52m7ioX`K!n%gYPdOF@Z$a%4RhMkY{ti5X5=y3j9O#OXz?I3GHf%Y zwdYK!#|l%*&o!l^E~eaeG^Kv`29e8-LF7GQ5V-{oq5*n?sQu+YI&o|ujhj1=3=#&? z0n>rx*v9=#XHBR_xe4dYo6rUa6S|>bLSGt;NogaO5ytctjOmt|F>P)fKpDFSkjA6| zv_EhFG2H=F_uPmqs*GsPOe4A(X+*vHa}HN)e@d?FPr38^Q)WVciX7CRtiKpi`w2rj zy4a92rw!?kg&{5a-jBL+zuMTP{pe;|KQbEJk0c#^Y2o?4v~zi1IyS5?9kt<1u1*7* zRc}Bs!+-4HJ7)`Ow}pxo2;RexOYTTea!daBZ6A&eywW(~fIeWLl|360Sex)h{Am0B8<+|-LyxA&s`BY3V3_g-{K zu^0JX=}CJldQ!Lao)mAP~&^x|7b2 zZlrvo8@-y_jWD7c&DQNk>~U9my{#+Fm3JjQ=dQH+mkMc|RiTNCROnWW3Jow&p<&I+ zw0tM`VUJLz8{C)O_`3@|INOCTF6u&iW4h2R{Vo*xREfIoP@#a!YjS3XENr6i96sXQdfvR5q!-u2);mbdN@xj8sSf%?H$87$C2DX22 zN9}Ly>;IcGd46F{>Mv}5`4c~l`iZZ8b>i81owz`&6P?y|V7++<`W$Y@EsXp9&;P)_ z(Ld0!k$(@!`Hp=)w&BZ(ZMask4c$w=;c=aBXuaVpPPh1qc<2j0_4tDC&wR$_u+Mn> z&L^Ce_6hA?eZ;dPKB7C_V3w`e_s~0Ra(jn!PrgO{ zpto3Y{S9^`yurZ7ukpW}*SN0r6>cB%3RiW$#4$5pqHDL8_@eX$PStsVzt%j*T$ATm zyR!wq+qR(L(PwBQJVWzS&8QmKjQ6iR#j=>EXn+3+qVx$mv^>V8`H%78`$yPw%p)A! z-h@v7HKDm;6Ly)`h*wk_aa!3!G|+j7n<^imcK-)Ba`SzxHoK2+cHcu4yL;HP>Mkm{ z-o?jtcW{U29ZWra8-M!W#yJ;n@!UnXP||P{cg5bs=DRnrOUez@e$;?Hhc)20XV>w3 z4$nLE`Wo66UBff)ucH4*{_X0^6;vH}1*3ml#@UlDrC*D5mr}icY0R@VD9#Ji4d~Q+rh5 zr}>9*T-U?+dd?vX>2e6y%sPlo{|=z)^aE)1dq28O*^ka0`_N>AGy#8_*x@Ygg<;^>>DQzd}Htj&~7tCwMi{W7fCyA<=ym!j(CGThX!3@ukK!L6E0 zP^+XAN2`?LxfzR5^=AqCjVr-X9~WU+!6Mw;vJiJl7vjcy3$P@50m?4VM^FFxoQXCM zkGsu7+2OgUK6ox}+BOHRjOO6>RmG^QRg9At&BmKuW@G#w z4bCeoQ1-#kU%as3sV6pE1vD2K4&N!@)(Q{2Jj)%Qjc~&^5?6d0?1C3uoN?1YCoI%( z#6iF9@%oz~D7$Ni9j9$^;sG0cy=E|m%(upMW3BMnFiX@Aw?JQab4)We!y-*nEc!hV zrEg5o_l_~@pBjMA_Zs1*RsAu#*bv)B^uv zYZts-aVg)-S_uy>n3zW)uk=)svDtiTeo{xzdCIX)w=ldFSRd^UaxJsx3^a4Tu`g# z9$s5Ky=!fK$*h{q9vfWLV^+BNrfa(Y&`xxZdS2?jnhv?guej|#efSUeg}A_Bi>o#KZbvg-3q&dXI5^c6h{GIpFbUdX2{f z$5S5k@}kG}%9|d0!x}we|F(FXIn?U$Gpo&`Q|FII#&adX47v%|D%6Ce4;sRm03D&{ z27N*JVJHMfnh1_N%!J>6tc2|ec7pAGM`5|Ln{Y?Mgl|>e!p9!|!ugC~VPZ|Vpxi4) zkmn=_2gDTNl4iPaJTFUFNO^*twoKTYKT`NhV+AYiNrH9$e}Y2#Od)Z>Y++^99O3k% zdBVM}3xzxOC42x@DwNJC6M_#c6I$<=3lkMr3a!?aLU8;VVezzeLhX(X!qtXNLVd>; zVVB8vVRYzD!FcR$;n>=}g2TD}LiziHLZeQV(AD#(pr2bUXq46p?~aPXo<}4^DW4SX z4?ZpU#hn$(r<@n+H(wAQU%VvT`*cO9(z`B<^1LBv<=he~7Tpm#4&4*H?mrN6|1=6C z20a#%LY@jHBcBOZE1nC9;!EN5)7OHU$~(cu`n}*4^-(Y%_gVN*`Bf-C-X`>E`5{d1 z+9}jo{}S#;{t<4C`6nb?QDF9u62GGX~G1KIsAgP4P&8JnnS&UOy4V5jXY zS-qzfI~H!umPiJ(m?9hYcakkzG2f2qtsKH;ZnI~1svMZsX-DSP;KTwSJ2UTA7iQe) z%HDN#XX|x5n8!eY(GbS0Jb_IM^<-j_7kirH&00tMu;%H$j7o;G8I^u)@OFQ8{BQts zI}yk#F9)&ad%;ZOc?dK8#B&_~3S-LMBG@(UNH)zVis@KKv!yOE?5j^KW8rbEFe#q> zmzBUK3{PYUlalxx@MLzjG=;@hrn34i5@xht%A_@EZ2IYRHuuUfHu`P`^L?7hzQ4(0 zrC+m|>hBy@q>{%D_R44X`xLO}#)a&bRT10fC}R>PXKjAN*{JXltRa3R(@q=3+;T@V zui;~u<@mAe`+wuuwmIWDLu&%tT|SZhT{DTfY?;g=cTZs9X2wzLmQdn5I#Tuz$W(5W-~jucQZ@3 z-ok$F+QN!0wzAIcTbaak8{5N~ZLf^CGmVYgnQ8wW%zW(*rfaa1eO|ef)#&VEvgNy& zn&xh{s&qHgRNKSGFWAHCRrWHa;=OFJ!an9RZ6EXfxsTcLoaWuy_OmOa4zQ^o4zNB& z2ib;K2bos(AvW^qAyy|j%s$>f%rxSwSic)pOgsDt`+ngFJL7khO+9&(4PeLE{_11Q z!m*nDkD{}Vi}Gm#INjad-3@m;aCdaw+1h#0FFl z13^XKegBxxbN4*^?6XhJ&dxsbosB0huzHV+%?Jm-;S!rS@G_fPeVO%4y~3=@udpi7RW`ZwD*F+1 zjg3Ekja_%W&eZd-voMPrOqO|r_0+n__yfZX{@i3$Gt1cQ&t*()d^ua%P|n`;zr_OX z-(uquZnG6vc#iq-3bx=>1?%fx$;|RA*)_8}tlwrHL!x?@g)O?vR(!w9N+;f9b+37> z$)GA$^`MF!PPos;U%t=uLLacaq6f^}=^>lD>mj?USIyd2Rx_>N)l561hJAa_nQudD z*~02tW|R1c9k}#}83#XR{~dkIj@mw9RokAhdi6SXe_z}fs9?zJ| z&1Y<7L_NE6yq-Uo&zXMKbEd8Ng0(Ju!AicoU}<9;*uN(YJeU1TuESn3-=Ib|;!q=- zWATd3-tdYI`TL5wXS`-l-@IlS{ok;*+izH3_Lk+Hc+2kFzhmz+-?2B!?^*e*_iXcr z_bhVI2llY?151G>R&=6?wc9l_o2|{vSFwdTPj6xWUbnETeLk}BH$SqkA)naTL!X%3 z^fT*N^_iJ>d}g-eTbah=R#q3+#x|dCV;-(w*pVGyn6^qg>pP>JEqmS0w)gtV)?fX~ z#`}L`Zh7C>9i8tyPUJgh8h&Rc1AnmO@*iwmNCz9czk?+h{ABuze=_{|lO+%8WS7f3 znOR5|>%Fgw=cE6{W-Z`xRZYK`N59|f$+h1s-R}=;-1CPC)w|i;8QpC6%WjsJ@|Uf? z_?Pu^{>K!y{A1gG{bMS@3UE420c3d!&`_fQBQzCxytX2Qa(3K?LPe-H}gUGvTV5p!DPlDB9^8|GW%~6M{Ds>p3qyY~@ zd64RV8nA1x2E4tm0glR=&?8I}ru?S~i}rH4uL+Ztv_KZB1rBLi@OqCHWZlz(2nB7p z8>9`r#%V*@PHph6)P|*hwBeSY4s?&y0hjGMz{+$W<|k*)dFp~QkIVbLk;mv=)`dl1 zICsuT53cmlgTz&OaQ%WF_%!LkYD;~1kgN|{3-ux7gg(d`^kJaB0rVCd0Av_|*?t3P ztTuo>%7zddVh9am4Pio-AvBipxWNuXIN)XkANw1D%Nip{y=VkuKN!Izb7L5jU<}D~ zjKT4UF?@Jz47qA15EEtsb>mE6Se6MqylDcV-%Vhxvnf>eHihnGreJr*6#N^x=$nCk zlo|Y;WCr(g%wR*M8ANoML9M$vjO=d?^()OGuGk#%UYWxOeG6XJ0^%oGz|cJwFzU7i z^y{zyfr}+*_qK$4ODtj02}`i8w}c`M&Zi5rg6uI?(7x3Q*kvo2_0bA)EjXht&Kl&? zt>IL@HEg?U4dc43!OhJE9{09^nM-Uy>9`FnuCsw=6GFtXcgE&)i^uYn`sAwF4=)T2=}Kt!l*rt(0J1kq-~B+Xz2vsVw}KxiWBtOJ-%iEn{{3U1Te(wy+3|!#5zy`d&1rSJmJAs zPq=o`6ABtUVUnsBxcPX&z206hYMvLo$@hX@8fUm~mqsPaYBqBm0Gd+U!u+nH>tI z7eismlTdj4GZZW=!XP0c3`P$Oga77+!O&e{z)HeEtu72M{|tjs=HbvD77mm8hePeG zaPY_qhqQCyu%m|a_`Zh2DMKFb9uNTwdPG3XlnCh97y;Qu5#U%E0lS+b;E$RBQe6eG zCPn}!M+xBC5*|07D}ZAtfTd3boOLFEFD61*A0z~Wo8b0fV6a3_eX~uzd>y*W(QK-)5lmj=?BJfPJq{jy)n_QhFq3?M1@Pf=GCXkx=B>9ayDBO2;8IKr6dY6 zhDJf_>?r7;83o6RqM*4f3QQWK!1GrWc$s@u`14u<8-Gba-6$HSct*n&aWwoM5Dm^#qak!P=LhCS zgVnicXswLqe28f1*BK4XdNGjZ8UxiV2Hbncz=X6I$Xpx)M|N;I76aR_#=w7%W5DZE z3_Mnh<+_-21$|;+aC9u39S{rOC&hxp@>q!284JSWvEXqn78D-G!u6I|nD#FgG)&@P zgGU^6K^*kz6$d-U#c{S_9Mp4WM8m!~xO+Yh4pziL+KV_aYmbAID)A6x5f264oJAPL zxf8wP;lFY5uzYSjtlAI{GxFjgB z#Q7C2oLgwHAOSvXOn}0?1n74<0X|+!fJrq8Q1>ta}t$h+?`X@oS zC<$)Mk|1Vy5)@8Og06*05WF!72Ig=M;;|$c$$1>Hx0Ar=NfK1POM*$?c^Rc-m}Zy^ z)%M9?=a&q9A(`{Cl3~d}z8s$neP$+u&GKY;uq7F$yD(ryy6sax{?CtD^nooaSH5yl>#lFIE%3}1yYn#VX$5*^tI$15|>m^<4lsvf>an8 zn+l&~sW4_xD%=>83VKsgA!cqWj9Q)w=^ImFSavE13sOPpSSl13r-JNKD%6(qG7nNA z_h~A;dd>IwlnQP?Qo-YIDwwECp+#Q`$1J4K*HH>ho>CYeB!w!W6dYqX=P^YJEBZ)b z#}FxO9wUY66Qv-T!FiAKrLcFo6g<{TAwN?J3cIC{Tp)!dN2HK@QVNI9OJO%jVb%>P zK&2EuJ&?khCsNR9kaGU36lz+e{JE2IT_c4--BK8=%vmj(GO*N_!4nf1EVYt>F=w}I zag{-bmkiuy)qEx%fNlV z47v{TV;zyf;A1jqIWB`Sr(|&Jj0{Z9$sm<;W+s=&V4j@UK{AkX-lh3f8B|`A!Gs$! zXuBzck>xVLTQX3nkb!@t43h5f{qD*@a8CvXRWf+UW#N6^{s%JH%B71->O2Z!Q~DwGk{AK-_M`Rd|t;XUf(@l?_*wn1wYPVe!R)IWnjyXT~a24NZyv? z*JYr}+m?7m2D2{7U?a+4Q>hH*UgT{*F9V%o8Js`Ox1W?jS& z2A^|f@L>->znwDJxkCm$GG)-diMM~f48E?GLGKm(8ZVK-g9S2Zox|_h41S%b@@qR$ z1{)^GfQ{kp8_uugVBW@lGH~i8gK?=c*p?uJ!e|*Bi=c-lo&u8LDbU%A>yW~b|M*P1r zFaIM64!q}jxh@H06-lr{o&*PrlHk9ZRGzPwL4lz2!z*Np8*83g}yI(|u{;g=pIL+;l z-Ok|!h6(jz&hi$+wPRxFwM`6nI0GtZlo(beis6R87+TH5pz>D)YVSnw z{f-E#&Wd2iZV|*U6~Wu_BA6oO%V7TBimzAT+uujQx4TiGS{wz+ySY8LI0|l#je^z5 zQ4qpeQTI)wpx^IExZM~D?&Xm%y(kh2w{mXOtVno1I1=hak#N-|5_V`tLcdl3r5b>o zivSLL0k$m#_%aqin8b&^z5qKoOZvbM2Ki4JthvNs$UX)(s~A+Kar-ruL5n|wp~eiT zLkQ~6gdn;kgs}xen6*L(GsX*HSdtJze1y=cCxoNz0*I{@K-C4l+%15^3k2|Em;eIB z0vPNhfT=11$ao(CBX36lI~D;d-1aV=907y5E#Ay+^07t{aPM0E5SYP2V2f1hLOJ>aX72Yjk`huU-QP_)S% zGRC`u8y{;|@G%A*LVjQ4-VjLmp z?Lf)M4qD#Z!VR>A4O?v?W}Gdw2y9`wo-Js-v4Le5ZJ=p`4TwkDz?u*nxU69V@19%3 zpVQW$yviDW5448YKGsmGU=7P^tsvs46*Mleg1J4cK*5_KETDJ2Is83g4ttlHgJ&OeIO1v!W}Rj*i~F9+ z_L_m}R5J*Zn85&JGf01D3X?CI!pL=|5Ie*aEPYMk9o;lfdUpt<@`oTv{u7Wy!&Ne{#& zdeFT_4~hopL5jN`Jnztj5#_p2o23iFak`Khq6^QIb-}bo2cq}uz{m_8m?qYN>H0b_ zu0b1;PiTYVLTzYC)`mlt+}GHo1z#>`!O~S)pww3jW;=A$)uJ^~G>@8;~TJL-_OTOF*p5A%dPz7$PtHAPFWeDD<438%( z!z7_H{7_SdX*EjFkgo)yNlLIiLJ6L!D1q@qMG)sI!ifJAAtO`~<|rz{)O!jrc((#X zj8gzj&i2~d^^a*~{$nFN{;`}Ze;M`v%Wi(|W@lG+vo+S;EavPV_BQbkoBZ-Odp_$o z3)K0|rtJU4G9!MmoGQ-w8r#Lj{OV**TRYh;*G|?Kf3n*>e=?`{+_$};gKakGV0njr zux#NEHtYU(#>ReU&7I$P{+w^@kK;Es^1@ekBKa$8Y-neHrnj?yYVE9L&lh&d?+crI zy^UG-Z)1m>TbbpeRyNb1m0djWnY|9r-5zX*ueJK zG_VcFUocLtW!`t6v!_Fzv*{n}*^l}4Y>ZYtlka}U{&+lN9wkp%RKimxdR)i6#?>)} z?@!p(^;_BbdNdRy~~~syvr87 zyTf#*-(hS2R!A|&Bu$y?B-RAQ{B{jEL)`(kd*vE2aG^d=MQz~cC zo6FcG%QEJ2=q8&RaFdnb4fa0%22-f!b5O&svtJ*svHI!PSYh{7Hg@e*rel1S?aRHw zoIS3v?Po8uHn_}$JWo+ZuS+buo><{HE^WxN=ON2bMkd@OXYFQkmR(TFJiJQT(c%(j z7Foh(lwV|*dR$~b>Mk&w(HB_2$MYZ`19LAjD`<`U}Gfpy_-zQkt@)N8~>jYc6?KtzcI?l@W z6)~A-5i37^jQK?zW2>(evU~A`Or`25^Xhk$iJu=~@nbk&tmQCs%s9+*eH~)7_z;_} zdWe~CJjhNM9c00~53oY}15E$$em34`KRa=DAA1|IkLg?~V6Jfm%d zD?hrE-SFMX&Yb0Wu)?$1XyUvvNfvunwu3E8-odQyZ)XSlY-f&j+t}8j+gN*JCW{%D z$<{S*WmhL}Wi9PnnA+?u%;eW*X1aJY(@@&XT32miw=_4gZJRc-o`xHlV%7$B(1Onm z?_JMs+OKEg1MApnw{^_u*jkq6yOy0f&F7Va*D#xltC>i+n)SQ1iVYX9Vnc4MWU28h zSwO`KrjfdW)mAO%b6?9@eC;y!x&Jb@_UTe)K6EJyy|jcmUti3+$``ScI}6#!2MgGj z+W9Q)={#2XVlFdzJ%=T{pUuX$%wp-SGufc8Ggx59boQ+)gXMQmW1))E*g2J{%vNIx z%g~<8PU=l!j}0fXCX;mb&ip@i&nk^`!X~hx4&#}M^Ej66I+mGujA4ttMzd<4QOwwX zB#R0h!TJXeXM;kAvBdD9%vmsmwFn2ZTo}Y6qXx1H(Et`L>CcWt_hVf#eOW|YA2uew zH(Qv{i!D#=$!7EXZT*vF%q2z28dFl)`qUKWC{1RErAf?EmdF;!5?G}yo@w-mW1&4_ zSQQF_@Vp1Tn4nK-L-?z~`I&+1hA7CX)EF_aYy*B+8p@^)Z}p7zYs-Hvs;*s_~WHf)iDHS@BwVwKjG zY?!45dt+wKhMAbLN<&lTt#87X=os^7#E5@SVaP&M4A>w=o{#UZE?e?jhb`^YX0v~2 zu~A<&nWRmFnSD}cjZJDS|D7u9^IC=dX;5Z4^-3(DPLauL71+%E|AZrRx`h!tehdF> z>=GVd^;4L<_=m7|_BUb5)OO*i32j2fk)MTQ990{?-cr{-_p?`}{yiZ>xkV&+iH&Ybu3lmA8efu9XY7 zm)sO?KXqNW`tViZ#N5lA9Y#XE4RYbVWhKJJb1w*;r=AnixU<5fp{Ip+dY=@Ela33E zM8||$VMjR|?Xa-W>7cO5V!zN%zd)FznkP*Eog-Y{zFV02VW)8Ci!9;xn(e|h6`8{6 zSGEZIpWh@5EZQJc*|$#kAbX8)$HrB{UdvYq)#ok~PN`okyjnhAsCss`Fe-PtaMIc- z!p$?%g@=ZZ7oJTTEj%AGTzJZUurOb%zi`cuUc&K>QeotsB%$7gIN_55iEz(`NMZlk z0-^4xP~nx7K;fh?U!kd^r%qy?$(IXLn9*I47Q6PM|t?_$cC_aN@f=gw%)tAO3$N2zwdt~JyNqu%v;Zw z4Bqm%#4O-viF1>7>5p)m(nV{0O68BC^th|Ew8zY0rTec>EujksOhQhkivsI0yy}mV-l6iY+JL@X# zJf$G7zosJJU!x(HzSEJ{cNoZ1G)(2WmX`8|Ubgc0%u)V4)m46Wn5R5#im&|d;z0R~ zEur#T`2u<8sYtoTRf+t^{W$sMmr3$*ZBqG%zrEyfdi~{#Z3oM@`3#pYWuxVZ$>ZfM z1JmW>CQOl+%$hELyJEKdL*{(>_58(hdH-ed#lu#}eaEhn-%4L2Psv!vzd_s}H(tC+ z-hbs5`SSId^4(jv%XejG$(QZjDet|1w_NvVj{MY#T)D6~Uw)!wpIqbe0eSL`L-Luo zkH}ZuE0iy+E|L#ymuW-z)MA zrR#EUwVU!v&2qU^_qP0;L8bh!@m;yMd6gWj9?1P|tL17AwerhOkL810>*SB!pUFeL zp37(ZG{|@PHOg}WUdxvRy_Ls?yq7nJHp!=kx5ytwe3DxWTjdh=MIH}d<=&Cs<*kt& z^2{jy-Kgl7e7fk5{FLag{Jp&bzOh%tDtjd?v{%OI_A2OUuZs8W)NqWQI=-{j!2Y(H zc+N%(6>PLoXsv^zt#omYr5?_=(8qLh157Y8L_<>}ylrfZlZ{O9uYoBp&^N>Py5IJZ;T<(=tWmMSawS_ltYC*3f9=rYk3HV$a=<}99kKem6NZ0v#x-p&{5yG9 z{Lt)%o$uZ8+Zzvj+USXeFT8NMuhR&mK6zsVDBU z?uFM(dgE=~K6p;8FRuC57sZ|Zu;EL89Me1i@4gy{HqQoOuj;}48}A`F@%m8gDIbPb zXNO}&;RqbMZzMk2H41~aj>eg5#^9dCWAWguakzcbcpN`w0@@Bv!;+r=VR%A1?v9*@ zFM}tcrq^UNbC`naW>fK*_B6~?%;2#N8F=*5bkuk~1CyW3#Hn{@;hbx;anyx5=vy=w zpXblRNjv7_%e4zIWYI#Ln6U^~j9ZM01}(wkZcA}P!BQM-wG1tHEW=9OXnf0xeKh#Nm{L>jXRpYio_(1Y@uQRBedj`kqpT#rF&SLYov#2}17;Wl`(LDJacH=p$@;#61^Uq_T;RU?8 zoX2l`zktWaUBvFk7ZDOma2)5l&GRb7xjCgcN=J@ii{$wIvmEn=BL>~)p*Yifi?+q2iKjIHvU)o*s4`Kis{J z>fBpmSabtbt#0D$wKuWw=S>_mz6`(Bmf@V3a(sJ+$Fn%x!g-r-;r>6j@Lc+BJXLoa zcf?oVsB;x);Z%tiw^X9IyAsc&-$CuVJJ=)cE-pBG7q{5o!%Z9S;f$_(C>dXcUDZ{% zOLQL{kKe~kiwD@U@&Wp^Kfr#&9^!UJUYlEkL*Le5LyuZa;!z4Y zZjbPB<|FL<^9YsF9^?1w$9OOD32r|61jCK%@YbR_6gAahUhk*)j-H~i`!n>+e1>kn zpP|;cdVEw>k82{HqvQVPxL^APYR!6q0~=o8=7a_;I^BRLEnnj9I3l<4J;+Fi6I7syq zYE1luxeq>}Mc8MYlk*u#p%vecYsHSrR{ZGShGje2aAj8;dJO-9XLu}^gL^y9*wBte zZS8ow&sVIx_!ZAsf5SyfzM=1%Z+JcaJHoN=xJUN~zL@p{Rce2rL3jr$?&-kCe>!l> zh@a?l{U@Gu=|s~toj9Vo6E~%FVZjN`kkkK#(=&cyV9hVA4f%~jvVUXQ&);Y==np2y z|KKp|ZXB?%8$(}oV@Kp)%*p$UF8}`G))D`(@yb8cGEg8>u>u)QQy|3x1$uQ~fr|er z&>Vk7@)@B>HJcS_(q%>J_{?MHY?Y`XRf!@OD$%AQC8~O+M2cF<zApJ;53iVYfzzyx~kO5RB3d&D&5+pO18IDY3vVG%5_$wTfNli z)e<%Od_s*{>eZ-Dle6Z+)oJxObxPQ-PF+{kX>Y4K`P*pFxg-tpoTEWo4{FedhZ^Mn zPlG1-aMs))O)6TgNf(MW>1?AWa!m1oZTtVKbT zpBm9PWn=p1V@zxN8xGvAxi2R$=N4(Hsu5oYvajTz~kHY5K!GZHD7QxuO|_3dd+ z+H=jRF5jGX+%hL|n>jrOFNnogBk z)4`Y4v_{p227B9(buSybGuwvJ_u5eBH5;1s!G;=jY>5Tg(#iq0Liav;;rR|UBF}-;t~*f9I|s7Ybfj%Qj`X#MBS~gB(voaPDk^oPvgeL; z@1G;*j5$$ZoD(ff<6OKAPW%~mq74t6$o!iVWtuwEuW)DTIoO%97CO`IJZEaY>P(%l zovA~`g%?816xCi#;ei*Mq*32Z^71(7fLsRAA*v=LDW~VIb$} z&GDoa*`6dl&tuAKJ*nucCq)^0(G`C$@|Ahf+DTsYaJ?646nc@*Eia0E=S86GO&*Tk zq$KjD+e5u+(R^>R+vQCs&U=$rjW>@g_NEqHAM*3|p^=F`w0N8kt>-cCEAxFQoqQ!0eq=e$ zkE)mY(cHa$q+Q}i8*2Qhv(=A!Yx&b|SAV)E_NUe%oYObkpMGZg)63)jRD8>yX1(?& zmu`Q$Vje(=K>>6rHGmu@@Yw!k0aTO|K(*%ssQG>XeQFM%dgVa6Xd6gN!viU-S0L4; zb4I|*Kzhqr0n&?swEsaMy=x966XhVTvpB~uG>BiPAkv=@L@$;E(e7PABt8>Fk1B$w z|LY*S`74O*jDu;McQEbdT!PXe!JL~E%;UF%>Ck~-nv1~{UK32OIm2LqQV9LC454X( zA)G52LKY)KsK=ZTn!Y)NmLCeC#S}v0YeI;%giyCaC>5E9Qk-8X-Hi<;(U4He%Lt{G zHKF937fK1|LTO-SDD`jT+d4wYR40sc$HHiJco;cK!>Dj{7};>{!op2qRIxvd6idR$ z?Oqs#zYe32pJ8OD6Heb8!s&cyIE_sXr@zC)Y1NEy`ne{Y`g4xp{?p;~^kz79*M*Y~ z=Lu>kM$i|N2)gMJL8~Bw0((YK<(LT0|B9e1>m$e}FM`IMiJ(0* zM+^j<`z4^zFafB40p9lkH56^%klX&2HzMMeci zjC`CK9SCNm9?OV_(9pKAj7n!Ry1SCmogIuW9AvcV9A{+QWYk^5`512)*?wcRSqbQ) zAyB9z=Nbk8t>;V){<#os83r_c5>WI4pzd`*hjsyl9|5{>9?0P)PxDj_RMH6at`+Ft zA0TDzNcwIONe|p2X;(-jrA9~6#~zV1dsrlWN{=Mj+(_EHin9^7Mbhv5NYXhGNgDD< z`cfWAH)|sK`9zZ6=SV8+;_O7VC^~Nx#aT#E)WN_IZRV$+G7rd_bBI?t|_vsYTWd$+y(-hMaLovl!i7C%XOmDoz zWE?CeKh8)AjS-W3ikMXUh^cC@n3j(glT*5wPG*S7b)J~kEEQAj8qQMLBBr2hPHoH; zQ{+K0xfF@1 zdP+#%S3-`1Bs6oFgwBqV(DQK;`tqNI+9&hh84@aqELbOyu;*}CQy+%UX z8zj_wvxHV=axUc#2^H>?Q0^WHEzFfrLV<+3_e&`6kc2bvIJ@$ggw#$*sNX3GZ8;;M zbHx%WJ1?PY7bSGGR6+|lhemKoLT@fhXzo=B?_(u2_J)M;Ca|^$O9NlOi%Zo1%kc6kT#EVr zYFy%YT~m0yD|!7Z`EfG%@e<4VIr3wd@^Nm+2DHnaa<1B5&se3B4OF;cP1jjTtNOV2%cZo^OiXj)#k3@fvrWTz zSwAt^yYc;P#WdekOd7gkTA?DQ=HDU`eiPB077^`xC8G0nBD!#2MElD{H2;!_A~`$t z(=idP*(V~sT_RexSwt^aipX<;h=yl~Xz2w0{tx5tZXf<$Cy9uOMD#O6L8wki;x~0 z3CT}UNHf|5bnu0MvrPqbx0ElB29Za6uYgp=OEaC)~ToQ^FBr@<4#sk3)DEsqMPF3)fpW*SZ>6~gJ`$1pN`5=Oq) z!zl0sw>Nf$(ZA)~&X^oV%Lay#YfKnj@a1-fMHuBPh0)JXp~RkWmhrVv+E^4yJF`M* z>yl8K^RMHtl zn;L_t=j|Z+cPfbX?hGP#ZqMb74&UdE#K-#!E zkdh~Jo>ZSe;=;O^)dT6nXU>SO4WJBp0Ob?}(Am`ibYW5e9qk=JYa;@vpIrbM zs02_+vp@B??@!g|{3(_*rVcFer?#>FjV5 z(ZmeSsqXJbtA&2_)6S0uDEraD55ClR$Coru`;x;BUvi!6OBO?YsY~Qbx14=xrMfTq zfApbSRX!v;>q9rPe0U$~L$ina(0P#$y>jAgDpem+ZT6-=cf9GFXvIqpI&sy5%Jy+?)p8HIHpYVv#d^>jR}an`_n;5& z-D%Y=cQQQcPMg-cQ%4$ShbOsHmZv-2(R8P_W;ar-bR*?sZuD)P8&&`3M)^r@G{n=5 z)HL0wpvjdyZ@W^#5m!=M<4QxuyHb9fD?M~^rEkivr2NK(l&*8GRe=jtEpegU!(FIv zqznDEcA=fWINR!}Gi6_NraxKE)N3Xm>-FYiy#Qxw(Q~HXpPcA-r4xNT>O>W*IX8W* z6ZMUDA_WI0%IS6_w|Ym;b95w)Y)2Z!$CpQYI?_vDM^e>xB0#bFl+e z4&ki!2nUKXb)c8+_B5@^p1vHjrx9!H>GBwR(iPiNij6(Z?X;upT03rk^Re(oJ6fM+ zN8@AdDA2)?gJqSZqtU*_J}mIX6DemO314N%Y5t=035Zg0nVMvdM<7rSWA9 z|8K|FcUhCD)|!5vw5Ggu))YF{nl43IQ;4NC<$SZEulKA-aMX%2mRr%Tp;mM%%!)1= z@MVi7W#6=K$}XAFm~1opI>n4K63pn8y%|Y5O=;T$Q>r=2 z8U4#l$zzZyu|QK2X_`{VD-*ITHKDexCUhaqgeHqk$dohwPqrCT#4Teg&NC*v*~YX$ zYD~9Xj7jZ}5rx(mQQu?S=d#R*CJZ#9!Tv@Rsb)k*FAV8Pu_0~d{+h5+hIBvNkOt`) z@;nL#Bt`?u%`~7-6AU;v-GGLg7|@ayecEXDC?9_6*^l46-I_1~jQxl?uNQLHW>@9C0Nn-00()FId1I%GOUhki!u zP^GyJZTY0l`zLK`&C;f|>Dpv0(xyyfZBl5`qEVzp=eBB5*H|s`7jXX<_lZq^rAdp= zYto{1nlyQsCiUPs8=O@&sku&r_8r%tl%?FS)<=V8xoc3zFLg?*Qm1?S)X8O*I!#Vg zr=!;D^r%&heq2){^(-~gPE#XA#{G7>YE;(9b4L`bQt#EOq%ugA3cXcH{8xo49;i^< z0Tpi3s*p*d3Z+@8(8*8A^!~Ck8D=Vz{}^TNH{(7;b!CcpszeUlzxbQ`87pK;wBCXH z9KR~kn;VL>FiVj%CMeSC2u14DRHUKx++TTIfw~tda5#kmr8_8))ti49zv>?jbpMCF zD*mGX#J~7W=P%}+>_-2doa5F02UWKJ!Nib1IQ`LYTrvAM&Nu&!1519P&7fa+tE&qK z?digY!Y&M`@5I>)I`M#YCtk##cxK2?-1fTzhvami7VE%$oa<#j{|BzH{DJpNzN7NM z?`Zq;8`@`oLygdH__XFLW={W#0ft}k;;D9YleOc*PhU{J{tLeJ_`>t~wBhTqZFohA z`-}@(F(9fH%j!R)WFBXInSI7@#h=il*C&i?{fNmMK4Lg$ed(69;GIz|e7>(46>^$! zZg?|3scAxoX-(KmrwP-Ke!xkwA825z#H83^))Wo^cs76yhfuNuMmg5LRn`cR&HxVf8R!2a_c2t9Q6{P{%*i`Sq)h4 z-+=Op7r0`~3k>akj@8-EabUo6tf;6*=P~s-;mhQH!9nQV+1UrX3!7<+-W68$H*y-{Zoi9DYh<;o?*P_#^TI{r`#gcP1I3~3QJKt2} zyamecT*!AN$;?LY2`~SkQS7-M8GsJ+Ak# z3-4k~@4Gm!=?>;BzJo_i?%=*-mAG15i31*2pz)*%B*hBswevPs``pH;>$h;%fLr+D zQ#tA_FGnBqatu3OhQ5+A)PH;vU#8#0oPRekX2%Vz^SFV7FI~smy*MxIJ?DhYzlH^R z*YNuOtN0-7D&DQUg6D=`!S!D+b1v3p?6$m&drn+J7s(~uTT7^zM%d>!;`YsmR~-@S z&&lykf*hYdE5%EbOL4P8DN47O;4jw_&M&&i(@0;$9WO3m*VGG`s&oN2?l_O=b{^|W zc+Md{Pxaz?F_uj!#vFxW9J%c*8oQjubLY=sY{D75QFj^x(of^Y->2}&##3l$cM1ik zPGV2-N$mgd1g4HYfdSu+qw>n*SY~n@=Nu~H^BYBYr2H7V4>*Qd9}4l?oI;dn6yoAt zNAVb+gDWpNg4Kyf@Lt_vEJ-_z+dB{8@U@4~!r~C#IC2n&g&)MG@&h=!{{g)BZa;d= z+K)3-_T$Oz`}kbsKKyZ}02L(#`1gK3ejJ{U6`%8P=fXVfubqc#dvfuxM=pk6+>51g zd(o#h2e*#S!M9)bpx2T;I7)X9uFKht`#pE#@r%3gNZc;mQL_`LkJ^dRZP}>2C>zgf zW#gb-S=i>9g|mxyV4HXc4zAjc7lv#{)#hy&H+vh-QQn3*TQl*DZ6?Z(ZN+opTe0Bg z7F^P63-)Z-jK&i;W5rL-8(X;vbqqJ*?%a)N>9r9zT-bnLqBmf|{q?wQ$a=j0VIBUP zu@0RS)?viPwJ5Pzi;)M{pijUW)Z?VyHwmlxJklym*F=KK0fHByeJ{rd^9);&KN8;Cm zBhad3IQrfhhQ19$(Y$>Kwki+7(`JKlxaT13WCL-DYyh^8?2kQX^uwH0eX(X|AM7mb zjhfU8)vJ2q*Oxu8vR#H-lw~L}mEtS6RGbo#f=x-u*mFn{9-fqlEsGM+W=lLmK^!KX ziN*NqF&I!2jhb&I_~5%3SF4KA+f0O)-J(zu9*JiY0F4JS9Fr!*{c{EQaBT#(?Fz^4 zqha`~Bov!&hy0JBvyQ9c2?99X-QDnlj;FkvQL%n1c6WDo2Z|sD76yt53L;{G2;2^+ zC^n&>h=7RLf+8vyD8Kz2ePBq0ZcCO zXJW^8VwDeLsdgsJPAFtXz7K0J(=evlzc>|(&Y`|Go_WAvEAEL|40T!+1k z)MkNuwAhMcn(T6#2CK_fXIh17%=NJ<3#e6LbDy<~lbipF-3;19W3S)hoi0Dcd81pz zwk6-iHL=ZNeR7j1T>C6;c-A0Z`1(;S()%D*y1x@2;~P;NUN7!hP$v$LsTFlj)`)32 zRU$m96xoLg(Od1QxWleod>-^zwC!6e_L*8N&R+XaT(j@KxbECtapBF|;?SyFqV!vV z*razuJnME%94_RE&4Za3IXhR>+>|Y@J(MNBzL+U?y>nUI`{JTl{^Pu8V3;n3dZdY? zAXS_ogfxB9};)z#)~~&4v5Vi_KETR_liN& zc8j;x>=Xy=-658q*(UbMj}gW4Xwl=-W^s#Zr1;W$qd05aI#G4oDls-|nW+D2k+|My zzW7R*E#l1S;`V)$#iDEDMa_oMVu;NMaa4~X;?hL}#OR~p;;y^@iMzjd6Sul_5!dts zar&x`VxQB&qO{asRB7`T%Op}Uaj1tlH^M~>IOiZXKeZ7rt67Tk{7gm9F@|Dww63`K zvZmOxMpgW3+Lk+V_V--6-jM5N^CoxO!kXM~x1Z!raw^V!wET8%ucG|in;zM@J=R^! zEh;;cJJI`O?yty0xksPx$qf(MmaDOSQ|`W-OLIe)PRsr2Haz#~j@O4nmis7HKV{cE+Uj5{dVno~Kj;XW% zbxfSY-EvN>4lSI0B(%S}7&`jsv(R@Tt)Xk)>M1(~*(vkZ%akp5LzN%Qdn@B6j8rzI z&QPjP)zhuzY~< zr~42=X*NO_`f{|;=fZfwe%)l@ZlCGGK+;$69+Ixl3jd4Q3|WjRg&=d_bFjcZL;v`<{4pF>RI7*>^Y%o(Rtz5u!}-_=w;!P zL#B|gk|nHseO0i!n`hW0|uXFAi+8ZKV`#`c@IAna|YoM$9LS$h-=y{<( zd^tD(HbxAD)|rD~#Gt`&ByG5PeFQkCj)Y6QM}cJJXo#A? z`D;DLa^BZCXfq!VUw)5=J9V7Fc6TC3E>41r2PT8Vx+yS!%2YVjdm7~XO^1Ao8IbgQ z2F!Um6RdB~g4A=f!Ex^#SiWK|WQ?5$WnuH7!gB#!(_08TzAOZxd=Wg%Sq$BdErBDO zmO{n!Wzf=RIkft&fNIl~aO%fO=wG=CDrq(JKDh=CZ(a)zXRL!)ebz&z&j!dej(`Qt z5wK;>MkuV>2tWF50;~K@AoY&~`N>FdG~Em;k$eq&^JX|aH46HdN5Quq(Xcfu8jQTQ zK-9r4oOKriU023H%)1!KAGsA?-`NU(I&K5i)NSz7dON&`*$!7)x5Mh0JHWqU2bBL8 z3$w1qLZjzSm~>z#+|=NVwq?6uRQ)d4He@%X-PjGe0ec|l#2!d7+6$Z4?}b4PdqIC} z9Aw>#g8`xY;AzS}=x@0nGB@uB?dJUuKIs6gD?R{6@gST_I|!*Z@vwhOJS_Mg4;`m) zZd=JA*w^VWc%3`UuO)!ZmIPSwEddH99f7u@Bj5o?K}bCcoh^?+K;$tn{&Ebe#~z3H zyT>6+aRQzuo`5k%C*i@GlOTV05>^aNgiF^Fp~5=}8sd|nQT-HDFFXY~Ri|K6uhS5k zc^ayml40)lWO)B08HP?yfwYGy@VVm|a5}~PFN{**ztySG>2)f&a0q`>?pZkRkp?4n zr@^ORX)u4Mp!TrxZlB`eRv^Sbl!xbFqX%DMp2&KDtU+eLWSd=b`; z<9p5*UV`cVmw_F+4F6O!z-Mj-^eoSSzMV1wQZm8D_zKjnyaM}PUV*?qS->u5L4e&= z*b{jbsy|)@^P$-g!m^>Odk!dfPR;gR|cHJjes-J9^$_ZCdvcMHUyx8U#iLXh1ogfQuC=(6)R$eM4%AI^Tu zX5630Dc#ATZ?tH0wTuWAh(Ez@vw7 zKBNfD4i&+qKSgkGLNQ#uQ4IMWC2%pO1h#%Gf$;vN@Z(}BY&ClX>dPO&%!)^FMfn)s zA9)O#|2PwFQW><~D1##Ra@Y}F4gv4VA)hnhLeicd&nD-Pki=Tp>e+Ag=ser#t z6>xv>GuV*v4D8G+;rP-@&@HcoaUstke*bgG{r(&ZhE+l4l`7a_Q4QhCs^M!{HADp0 z!1uTs7}Q(?`v<>({7WyO)VLPzE~tgnqFPws^AhZLyo8G%UV^-L9mJ;8!4r*FpfU9o z*xh&qR?hYCYh69ud|nSrLtlg5!PgM;?KONH^aesMyn$)@Z(;4Mx3IGCEsSw{2ksH? zpsea0%nE%E_50sLPwrn9+y4WIXFouZ=0~_a`6DFfeS|r-pTJ`ICrB>+1ol1+up*`b za$Yq+ZKp=~bf^((zBR&?0iR*<+0S61@db`d_yRh)Uto-R6U5DLf{S;W;IiviIJEXF zOndSbEd86|+}380ylRFR_y!O6e}k6BZ=l)hJN!EF9UlMu4!Z~cfWWjLkfYWD9%EZz zS!N5Q>bJs;sjYC0wL+r#Pnb3LCz#*-2}yRpz-q}aSa9zbq`CZt2P=O=N%3#U@%#hP z>;6E8vOn-Z)&@N{wn5Ui9fU9Rq9BakZ8PX8LR3i%}Z*dy@w0oYO$< zat&;4)4)nkO-vu4iHlciqSr}HEV`?S)4yusXIm|t-AxP2xsPSwJ}r!3T9{w2g`f4c z(S-Y9x{cFD&nWJfnXZlPW!jv{qm9Shb#O#q9c*8sg9!;b=vknHNgs63*p&0=LUoZQ z>SEg#UG%x2ivynM;-ofRoa(NJBg6H$!@M4v9n!;R`FgnfjUIL|(8m(asv9+0A0I{N zBc$l#!H4?zs#zbMYz?q)7XzF%-2hkYFu-M(4RC4&=hpo-Ky!CPEbDEEQ40*wbH5>G z=Nh82))3P*jL=wagi{6@VahTie16yn|K%H@`D-Jz(KSXxKV$qh#2D|bG{)UWjj`tq zV{CY1jGOgLP|x24Hw`tx_bW}X%TW`Ixo(2jUYp=s9aH@0V~SdX`Ei*kzCC1$`DBV) zUYcTO4KsWzF~bdg%}{$GKgRL%EHms}$$fX*%rMW{9N%;^$F}L_sIkqQ`@EZDU9mal zd^N`i3(mIdXn|FuEpYKV3v4-Vfpc$IU}?PtdTLqXY^fz43%A4@^DMD^mnBwQ;tagU zmYDwC5;s^`VV6)VY#MEad)Hc_>oF@lnQw*0FReJw!y3uW8h>@SMz87C*nNvN4m@Lx z;diZ3@xdC6^=zxNrud3$E|!f)^)q z-}Ln^_=0oxs5BKlTyerU&e~h)ibM9fV#WnmRJrepo!+?O zEEPB0WbcOCI=ErPU^kpL&kZ}qxZ%%4H%uir{Ez$2KmO{5{SDmls+T(&c6G<0W8E=k zxjUZS?T)!;-7)*7JD#p_$B0&U>}~3SD&8KL+`|Kv6FiWu^g!>u9=I*d1E1dXK$99C z-r|7+jXiOg)DwGk<-EQzp4hs?6R+&xzW%2@@fUgG#wVWG(&&k!wY)IR$qPSr@Ivc> zUKljf3n9V_gX6u>=AsvVy6uJOFT8MU3+D$IN^rBM1lv%8Q-(<}d#(h3MM_YfAi>_3 zB{=M^1p9NYpQ1&A`i4?0c9&v=AVsIaQqIAXq9lG*>i?MfE+LP zl;fc>a-6?Vjsa0}e0fNY8_vs7uRxBQpUUyWM>*$G$T7m)8!t$_@jiItlY!p&aH=<6 zUg?cdJG`;S32$u9@W!3Dz0vZyH|}Wk#xE+I6=>mu8zerMCivjZ{yunbk`LxB^}!Qc zd~p6@AC#s0U|GHo&Uxg6pX+^aQVVB4a4v+tJ!c1UM#S7MzPNF)FK(LZi;I@~V!s$) zv^wmI57YQL`J!4ezh3K$4Nbn-Q_T-!&HeD2habLF_~GaO{P5#QKYTpP4^vnB;oR+h zXn(|yvmyMjJNY4d=!Y&fez>I34=?}q!x}?>Y<2X-yb#B z`(r|^KRO=u$JlfJ_(Al?;QRhKr_vvHz4ylxt^RmiD*(4y2H<3m0F(p=U?pc~tR57A zniB&sVtxR=T^oSP?E$#vPynW;1Yp6H0K8wonH!}6nD`=q_g4Yv{W}25wF7asWgs@V z1>(4XK+NeBh-!TUF?19^pB{+wmhkHlfjBHS5WNov;+JI3@W=?n&esC*-h)8w`iyfB zUk74qQy_Nu8;Fy2gK)JaXMnf{ai&TT4pIi8ea|2)AH>-piXfc%DhSORgYbN75C*FSV~PQ1kXQ%f5Z7Sb z;T?<_ieN145{$R{1mk7SCD}ec7zfP^M)k$Pcxp{B`bPz0>ds&^iVw!gCxh|i*YYN8IoO$w7H3X+|HY1sFCW?Is2D^vgVDAtd z9~^?iIU7aUJp}dphTy#+A-HS||2>8CQf7ys%Hj~5uqp&oBSNrtO9-m(3PJM&A!u@x z^Bj{xu=H#Q?&EyN?%Di$UI@;<6@oABhhW!7A-Ja^1RvIf;P?6v)cwfgY~s)S2*D?R zLhzWX0tag=u-QO?8_g8>$6A3?92J=5roa}70^NNTh(QYM-cf-akTW8?D)3cL1s(}k zVAwzfJ|4=SAEiLPUlv+UR^aIA3fwVU!5Mf8ys}uqxn~O8y_z#()+^9)lLBu?DRBH& z1-{&&z(Knem>#FV9|sh?{1w>$r~=2GP~gZU1$IeRphcBhs7eZy{u#C%~=L*c_VpPR{bBW+`gv%)|hq$cf z(u<24m$Ur7PF(W&bKYE{c{~q!eC<4LXD&YcJ)Zo1`ux2w9x3n`Pe&h~p1L9h&fw{L zc3*)Vd3qyxx<#J;+M5b&x}m_&*A!Tpr@%{0fy;7v9Q?Zrt|+h{&xe~A`Sk7~t9iaH zS70|@PNBTKYjE#|(gFOtczG}Fsle1Q1>OUm<_`uI76E^9a{{uIE2?hF}HP`xLJKQ+Pel=k+0x*9&)E zKlbr@@`cxzP+o5q@cOft*P}#UpN{i-wbeZYC))G-%tNq@*Sp1PA^3;a!=+z?v4Yo2 z*~?&@SrLr;ii7c7VK81IUcWPgF)}R}2P6ig&Y@tuu#59mql2+vEwA@Wc%7aVjE^P+ zqvr5nl=KZoMOV&T?HG)9zQOp#jkg^(!8pYz7~9qPy}yD`g|m#Ny$-^wl|lHuI0&6@ zai&pj5O%&0gn_3x*Y!{kzK9LNLz{vyYz1$l<^ z#{=-@o&ekv8GwD4@v!LuxOHRz>hmN3&Q@yTQs^OoLm zwr+(V_POJSpRW4hniN0$dB6{+MDzY`8E5fM^Fzf@KOE7`4`&4Oa2G%9Z|sMj|9tUN zgD;+_^2M$(jiY>V_!3{-Hpv&y4e&(~eKAMwi>GXSajljwcKhyw zt#v+lxPVxKoc>f;lgIP;_@Z&@uG~#`~Gq(YpxGiA7ZGv~)Hn_xXgqhq{ zFu3E5Co;X!<)k<6j^&);Ro>Wfx;HKw?2QLId1JbabDu1|@g(OyMKsE>U!@$i3%T8L zNshgb%CR^`j@_2Z@$>{ae(xja&8{3LxX5vpz8p8T$Z%Di497o|VF2eJHz&$4F;<3M zR?6_fWEuX~Plgvd$WYT&hT-}$-0(w+Cu^m6>7EoXWJ>YKF)6Nykz$v{QfwU~#bZ6B z8006#ENdxxsY-FnN6w8Zlb~sy1TjT|!#SII{3>q8O_rcCT!IF{5-hftV1$MQofWLR`d%Z9&h1-R@xQ)2d3ujOC!d<<*Fv;HwPg{H8fp$+^{>~G-mw2K|wkMuD?uk9O za5nUOPyBDVC#It(s(SD+eNSA~?16_XJ@D*x4@^Ddfd_Ya;F9GY*m;}>{_N&~i85}> znt0%K&Yn_m`!|8x!HwJ=4%p+4lUHy?^*DFj)6E@sN!@Xskvoq1?uPEq-LU4G8*WK< zL#G{Xn7qgh9Y$~)9Nh4UiyPW%xnbW=t~kHc6*q7;)dtSUo*&_geW$siZ68;B>g$S| z%v{m2)dkN~xuDB+7uS4$IN#nGtN%Hn@X86d7CK>JsuMQva6;pSPG~>G39S@PsA}Vc)xRAv zrN$8_U3Wy?Q;wWN?1=JN{20zzR=$on#n=(ges#c?We%uy)d3w2IiTAbK293vfPXtV zaF(nC#;ZDDzj}N8ddnW8`It&~t39rtZI5-~_Nd^TtJQ|~nEu%gOH1sq{*oQO-D`)> zm)K$6P&?ccVuwR5?NFODuhO2{VyA3dydH0hA**aLev~bK3bjRlTU(s+%Lcbp+F(Mi z4W2k`gZoz7;HuF!*iUJLrnWYC=chH!duGj9j@Gy}p7XF)SmX2&e9Wn^Ms-VTgzr{3 zwag0FW>{g=UMpO`$O>l;w8E}_R(!l*g||Oh;^O<3Xn58V6JjjUdWI!N^{~WOZk8CR zYKe<#E%0QX1ztbG`R}VO@bO3sEL2!vs<{QO<>ThC5_9~KZjK3@l@&OPkEMH>V}QFk z9#%2OZ#8DviE&=mAu~)~ZiWRz%&^qo42uoSc>iRICvKbKqEn_AypfON$C=^|r75~t znc|sd6Lc!!WBzj{SQlf0-qTEQW|#@?cQC<>pT<~F&gGIZUWqlvgR_irP7h=BcQMAd ze~fTfg%L_Jjqvg=BlMYL#Ce!T*y>`0z1j?MYlR_-8HV^`ry+iuWr)AK8)CDQAy)k| zz^mm37;=Kt1fo=!}ky<*TMSp zI_MIkg99h&;3B0CZZ^}wt)H}U!!6F>>3R)Oru7%G&X`=ltO&oMo6IU(M#JGN%c-%u1kMVh?U3|W2ak>Wfiqb&iaT<6( zSOZt;YoK+#I-V8P(Kk*VlV_`=QCD@GW24Tw@oM3w#jlV!KV;}5Vq>pg55`yR%sz6VFn_PX2e z9gJ&!3(w-;0(N=}+h4tb>oISj*5?hpd-NJAR=kEw_OD^-^?GocUJn_%_27Tu6&xJ$ z3f{ETfzy#XzEr;s!s}l`=a`q^;QbQni)&%u629MvRV`e~eE|;RU%*n87m#tP2CDz7 zfiEAb;ZtliJoc}Kq{me-Zg~}`*i^wT@i}OXe-1O-DFpe=s} zZyr>@h4~dQ*|-A!U3v;zhCGFz-=4tm15e;+hbK@}Q4Swgl|z$lIlL0fAb)HbM7KSL z4#yrtS*OP^=EWl@+VBYE&W~WpwNgl)SPHk=OQ7gP2^4fGfyCNkm={qD?#{(e;Ie10MeaXw10}6(jFMddoeSf8ZY2hTMaU$9JK_;=7Py zd>7O%+=0IR?m)!H+i+s*ZAkaJ4av6(Vf&Oq7^_kUw#RS5O}GW4D{n&eikr~a;wGHA zTmWAN6o5y=4d}V;1`PAM0RwMdhYpjjgZ|%Z@bK_8Sli(mSe50&@rC(dVUQ0iQuCm& zM;@rv5%{bp=x$5UD~o}0Faw)L5ngW<;kbtgJ+J4&^Rc-wzBLDm;&Q;-F9%lK%Z7{7 zvf*j_Rrr)}6+SDjLTzalCG8Fz?!nhCm#Ghv;6CcH?_0Kc#dnD_iL z9A0)At{7d0ywppO)$I}-t-c70S6l>z$whd7_5y6{egSN2&cmS<=RwQlJWM^C4i~zm z!-uMKV7~ku_!ymokTYrE9hS!D$j`#N#b+U1?<`C@l?ob|3i0JY*?A36eE{f|Ip zVFFAYmjE@*hoSej!;tKJ7@D&VL14c_FzHo1Y+4l$`;6it{`5iEAsmDyr3awTj00fS zwjYZ2?uXTq{a~H94^oEg1Ihb1NLU{S?PhT>B6Tku@3a@5J>CPFv-W`d-`x-#w;MW0 zc7r$V0@J~};M1F(aCOa2SZ2HvJWj{L?a){lTeJh}C+~pqE!*M#_U#~Z-VSRsx54#Z z{6EmDt>Ct3D|FG=3WE;Cz)+tU=yQDw1P$8)#_yxy#oA~{G>(Rmr=mcmV-y^_zZrZd zY=+BUBS8`!32`=&&~$DSbnUVUVjgdV>(e(v<<|(Xvx$K2oj1VHY3rfy_I2RH_uKmZ zWDO+$Sq+_BS3~}Pt3Wz$C9K)I0!^nzibr$FMT99 z=8k|4Rl@=Q4g){uVPM#m|Cc^x2<(m;48bXb;MSdi(DlOrIHxxN)P4Fxum1gD^@6?- zzdIaGUFrkJ9`%N(=3X$$ycgJq{09$)^@Q2Wd%%wa-C^O?Zcy>GEBLjB!BXomNa@%G z?vCsXl`A{(wiJP*_~2B90E=3c;BBphCmljz;fRj#b9o0?d_Vz}S3)4LJQ!Ag3xdmL zLGUav5Sj)Bz|V#L(6q}Bo}KrF%MX2E?I&+g=y^k}R1Rx<$v}IC6r!Uf@GZ#;hTiam z)3qM(?yo!8JGeub;07Z{xx%CsE--dK-*+y<2_&VC@UzhYn7#unlG%ezFFVMbW(#4F zHgN5PH3a2ZLHu(|Xlk_pw6uUVLFSM?&QFKa2l=#ix#Uw&Q2BhFtlA5 z5c^j+cI%JutnHWZFXX3SJikRSNd7MTsBRYSTYMFE^!p+xqZ)-W_DLA??SoJve=h_~ zc`HO5el4)lSHc_ZI^kdET0vt)jqoeIN~o@{6fW336BZ7BDmZT~7p~<$76$w%6&`w* z2r#8cNI3LB_)vULkZRr)M!{`i_2OH?jxz^^xy*9a!)XXOfaK4uHc zU9Jk&Bd!Q(J2Hg88<&K0Ef)k^pYy`%$>)UPgJ%V+hi8PLswqNLhttB@xk;z-_{h z%`w8doM_=s!)9TzYozdU_(oy3#d=}D`qe`Fo8>~{fF(kQ>;*!e^IW0h)|tZTrm2GF z=t;tu8{>piveCk;y~72|--CtDQw9j*?}rOZgL(-O3EhQAwJ>4*926Ek4i&}<3ZY9< zpkS}(Cp0gX3k8*4LTp!eVbED;!Nk--c(BSwhtLo z<#=sn#-FdDzu-ye)^$0d)AEjlI{aN9YO%3LXtuh3sJY3hj{9a^?~r&!Gdrv(D|_HX zi=2Rp{y9!(Hs^Ghax&+ILtc(qMP*Luo|YWFWZm5Psy4ZM$9v^2%?-&lx9pxff6?IF z$OjX12YD^XE#J5mvaA}&dx0_&CiW! zE6n{XDasu%v^;mwhN|4DXJ6%dm4C?1`PYOPQ89aF(9uw!00*(?m9tpB!d=YQlZZQx%SC07pLnk@P!vWh#Mp*VF+T#uM`mH- z&E)Rl{?J}x&j;aR`S<~1*QUW@Y~*n9ip6L#H)Wi7By^HE`uEv?pLEvgJx?r6cE88d*eBC6z&fP3FZ;BQh`oxHjO}B}sDz}T15@SW}*}KGq zfIXu1&%I*AwSD5FEeAxS0r6sp7vfG3u3$MlKA4wW$|=YrZ{LVUzZt{El$wN6|X%IMa{h=293xU zd)i+YJH5Oi+9%%>U(7BPWBl%j7T@lQTe9zq)qL%zby%_3L8DYu-hCvx#FmMl20jrF zn^%bPif7{Sgy-Uq@ztWg>kF~(>sm4VOr7XGr(XQ*^G1yO@>aCTcrR{T_EEgsp+Ri^ z*(kP&U&Qz8zKWThzljr7eu$rLw1^`&{}fO0{dkKt+r($L|B3}M?PAZrMGH3Vuq88EWyO+5STmWzh8;GyWvyRrS=UlK zw(5dCI}+=_&dqUTXL>uaJ$$|IGz}N#`O1YozUIp29&=+~*0{5YqdXW>crtZ!FV>;S ziw!H1u<>b9HY7&If~LvY-!N~M;poGL{`O%np8B$3nSSibZhzK3H-IU62eM%vL2QCb zFdI@G%=~jgSnECoJG-z0>(RF(yXO_kI;ttz?i#+fIY(fB_5m|qh|D0o6KnS9%x<)I zW~-ieVYXReENORFW-+H5ThOCByX4e^RsHP2K0ofsKBWK09&YKy4o&LK`U-v68}o2B zt1+BCzTKC(pX|rRt?tj(4H>|qya%!+8iQExnn6tC>R^_-YY1OAK9rs6GK~GU9?n9W zhO_Z^N3dBZN3zkYMzMfFqgkV54BOK_hS^q(Wm_+dV>Qv^nf3SytYgST)=7U7lf0V5 zT5~3|^xacfuNhO>ZJfsB=F{2I57SxVwHYk)z)Y4lcNW{ybvFCYdJg;8Fo!KI;7qpo zc`RW5d^Ww?0=C|IAzR(Bkd3~vh&diy%x=wD!UlF(%JR&YF{Ag(ST|bE#_U@)lNgZwm_y zieW1gV%T}Lt*m^`R`%)fR`ylc#@;7wVk@p>04?7N%Y$=Jp*#f>P zy~E{rmSc5@bzgUg<<%Wxp1lsUwdsf1HPZyvydr^_S0^yHu1AW=h*H2=h)?zb8OqFbT&Xt zXYKaq+0pgqnOE(3c7*$~{7t;T`l?@KTc%xP>4g`$kH95HF_+kx_m|lEK9^aSw9Bkf zFN1BFo52hoX0Y`>ne2INCUa}dWFz`tVJpsGVVexI*sA$iY)nxWllWd`FJrH=sD`V| zqF*-KeJ-2*(92=}&Bx?xy5gWap z*!e1A4az)bbtsR?Tk@D}SUxk$$Y*bjud&nfud)6QuCbTW>umg%>#VT;Iz&O9t)kG+c7n~lY+?s+l0&3&!*?+&FvjqJzHe*^Dv&$=E*_P!D7nHNJx64_( z(-Vd(pRg$KQ#K>wDeF=3lR-z?Ce^b0t+nh=zn9D`=_NC5eaTw;*0Gx>>)6U4b<8yU6^lFmiv8w( zaeaE#vkgb;S;CikcC7nrwk7^G8}aEiGwkw)rNzBrzHi^Kc;#F6KK3nh=KgjV{El_m z@{Y+W-?3lb@7cu-?^)kR?^&_?2i9@L2Nr$z0~75&vM2LCvZwhU8JT=y+opVCc;yo- z=WMwlBOBP&)CQ*VyMg)lZDc)8? z!r~@2_eK*NXZn=|PyWi9E`4QtRhpU2pk@|zqM1GU+|2Yle`AuJT&lk@1MlywV)b{n z}BPOmEaLrjh)M)qnlPQab-;19tpo&ntejaF0Li#G*g!8U0~DblObsU{6Os7VuZHEC?MCiQODB#E0Awf4}WoS9lQXS)^| zaeiG=i55wlwdkaUHtBTKrYWPfDSfRry+5W+mYic3{7Rd;Y3NWlFC7Z$twUCGbm-#_ z9lCH{ho+Y3klt7Bhij%w@(^7*HC&erSL)L2L%Niet4qz#b;+eom%2FW(ZJ4JChAew zje6vss7Ea~^hkWAM+?>U$-+aQ`xEO^&~$w|8?8@fDf%?`wmxOO)u$#c1G1MGP{&>d z)MKUrb&W9~|1$<;c*lUM-x|n0TW!h|}vnb0R&Q`*|mlq`pvQrr?# zYTs>2@c|Bi=ino+Qu8FlSqMqM~3&v&&M=^r$s$_z7#FEOK@4Q5oYV@``b z&FM>5a~eOvoWwQeq!VvW|7DufvJ!LJ`^lV6Xj{-xcMICq#e!yxwV+_m&ufa~VHYe& zdEbHx-&jyrRZBYWU`aZmmNaarCGB2dN#Zt3DnD&WFRoeAv*(sn@WYahm{`#?Z!2>A z&x&qOvZ4uVt?11GD;m$)dbjRdksbG4pVV$e2W_p1aewyG{?_zlCiipaKJMv9tSKVP zn!1%()A#q*bU@99yc}%kjKYSj2inkzSvK4k-i9=e*iaDX?hP!mp|NjmXk@z$b+@r4 zr$AeJ-^Z4crr1*WT3f2$XG?R^ZK;m?-uJ4prDH#A>6M`!S$T0k{mypOZ-gBUSYSt8 zw%C!&aXb2wWk(md5C6C~cJ#Z=j<#6XlbVk`&F^kccgEP0$r5|&!~Omjo#cGJYS zY)_GI>}f`uJt@r{=#R{S(!(66|40X_p6@_oqa5gNf&+P8cHmqe2Rc{dKu^9o&}Uso z`r+(I4GKqk+}Dv(COgucm5$`N(~2O9cNxv&ZHaYOv8FQ)2`9ZbalQn z6>V~+vIEX^_pCFe=Q-1cN6yscjWd1z=}bEfT*%JFg${BCph_~G&aqV;y3s+U8`<^cyufj8)G*(Tga|iUxyOxj zx7;W%!;Nm=Q2^5ciPv-o&Jt?rxA19>DU@~D%q*8oo;1_Tlg@{D(yMNs zq&e7=tR{Mr<$O<4TkA2yLDy1RbQgTvA=~-tU-djr6L!@+MtdtC=OKJWBDY2DOYTYO$*X>eL?vqlN zqf!b^mXgHVH>CZ%d`Lpi)ZpbyE88qm<&CrS$Z-l+@K_%jnl>8AYFyQTt^X&CHPz<;zH=P)30dWHk7Zj3!jbXmpK?y4K6c z=7Wr?Kg($McNzKrmQh~2jFg&kO45_lZ(})iv6RyiJ2~xh=3yRkIw6zOHqLdK5-cZa zsGO=%PV2kM$?!ipZ4Z~z56+4lFjP(lM#?$MM9#UVa{4<}PJd>~>D^p8U0=vql1n*1 za;2PJu94H?4RUJQB&TuFa?0K+r}iCkQtXy~aaB$qbGV3dsw6pO<;yAJx|})|$f<@iY8DmB z>FaGdO}Z9uadF{tmESLLN#}7Ga2d_x+t1_9_42#0zp7nl7iRvpnpKoUWXflV*~fdYs_#9F^0K!~ER``Ej3|7VeQ#*PU`w z+b*X|TjbPlGtbKiUUuu`l(|Yy+RNqCdofSPd|sBb<#ckooDNUs?;9_t;iEa%XSkg1 z4dP|ckC%Bb9$$AkuP2=QBgko~LQcs6aw_!Z-{>W$Qdgcf2RX%A%W0Gu&j&*}UDW2f zrN;B2O-8a-8AWnN(EU$bPv6SO@L4{gWtor-e+-rzQEa}sWQ5d zC?kU-G8(mCMsYhiV`z(vN+V?SWR;BWESAxkIWk%?RYpPMWK=UuM$7xlsI4dG5OwDD ztb>d^{be*wBBQ;|GD^3WQI@fc&TI3y+NCt3RZ7w?yzal1(ux;SQhO?;bwyHob4yCV z8LAsIrIeW_rSe2xuMbJ7Za3!^ZIM#SdS2I;Ny%fblnNcdQy!0&gxhOgbnvqm z<-Ouuq^Dl=gmaSaaE|Pm3@=)d!rRmYFRI`6-A9~|QS!W-T{xbl9Y zAMY=w^L}GK??0w?_oUtmPi~ufQVs84cIkPNZ<`0PMi1&(>%p0-9@KWjgL-Cq(7Mz7 z{D22t-Qq#HD?RAkEDwqu?LlM1J;)Y3xNdpSWCsuWWZ*&5{<_nHMt5?1;Z8G)-6&6Ti>boxV7@(+mUt>>oFB`Q%1ZpY#6u zo*QN7xY3<6yl+0}MpvTUXwNb?8aI{meuucxjW9PF?e9i)j&3y4fcM?MUCH!=D-Ex3 zrI9{X<=7YM2YT`MOZ4tqaZ9a-m<%&a|x7nQ9+6lQPGd zB2POL+v802>zwKLEN4;~?o2J55mn{mOc!mOX^Dn2dGbk$yH!p!`i>Jl&){~}aVJXK z=0v}iIZ@~&&W-BpM4LM}(H>VPiZyVeRjrOR^pztyaU1Pfwj*ugHk%!{-A-{E&VGs` zMfP)~=N%l$#nq8U>O0c99}W~(>%hlb4zwfFffgQfpzbjaq`laI#4!#uu7?AC@#Qw6 zwFA9UaiAU_?dd?7Jv||N(n_%>uif^X8^vX^J$Z)PlSZ&TmDzJCw4SH z-;O?|*wN_SoH@19jx;CPQMcZ9v@pPqcG}ocf{Go*zqh5RQd^pwV@rM~ZRt}C=TI%Q zrI3-fbfdE^b@sBQbB4C0{lkXy?`&xAO&iKjv!N=^rh321hTcxJp|byM=#sAuZLqK* zzWACx)LB!^U2C$s$QjuOtVw;HHBFvkO_zFG(-%K$a<;UlE`O|OU>%n`oUMJ{id^TF3r z)h(&^y#-|#Sx`iV1%<|2P~BP!T06;tG<#amMwtaQ7+O&8W^>yA)SMoR=A?3hv#mCp zliy5p^6kri`*Vi4nK?abF{Ay@&8T<288sxD(WYoK(w=Qb>-(9}YtFhtb2Ex=F{Nvj zru30aN%N#BnQb;D;~A#(x3?)(dz(_a5$BbEH6iD66DqiBLcPEEnwIOA5E>=Z~A$^E3q=s3BRM*FlZp%3*OW%-YG#HRekpVq8 zZ$Ptl8BhynWUUxzK=1qwDBQ$=jyLJk>r#EPzpPI^_UdzPr9RCWtWPro^=X8uK6U)c zIq{G5sOXX&ZQi3t@!x8Zg%NdP_Yw(oqPEk*d5s2V4&EIB4Q!7k}9AQDxdC?FvM#`n(oj^`fM-PzsQ+4pAOyqWvEw@fuz=?@Lo#ODo^;&}vUutrY}_Hv8{ zyVXU5ZB^CahMqcmdtaUH2~%hKyVTjK+3HMVkUH}+QD-^zYE1f6jay}E?9gE~7P~@? z-5;*TvhCDZMu#ekFH>cK$$YNkj4JEAfzN+TP-TAIRGCbjKlVX|^}VmcqC!-d_I4Gv zbcPDM*;j>q)m33upOu+wmNJ`hMVZatqs(T_QD$xfm04#aW!74&#L}{r*w!c|Ci78Z z>GPD>l)*}@*jS0TseiPJ&*j*U{YPnk|I&!$zjTuuTpbR7sejoYniTklri}bUgWI{o zmH3-dSN^7H*1xInc?S*g?;tq*Q1}f^_ zK+DSO=~X~Ix%^j8`|9iHCil8Brq$7Xl{$*L`<*td_)eXq-zojkH*(wdjS`%`kxFST z{dc&QmJX?<^)+8<$;GdPW4_YApI_+4^)EDZ))(R!5!okyrgbYmQ-tYfy8p0-GQDf) zwycJZJgcTL`>Ls~S2gV`ucDtvt7wi(6-886(u;GIR6nAUni@XQ`%9lFdEzJ9(*BXG zV?NT2nIEaM>PI@9_<@SJ=cS?hfjXzYryeWclaiv=uOH1h0ffB0iSwde* zUQnUW3ySLgf|e8)ljh!H3U(?cv*$&$cV`hjb1dR>^o8WSwU9>H6_Q)_bLzSAIsLVG zPAuaYtz7er+Dx9&4l1CJ%L{0TUIFb$dP-LpJS9?lN@+Kr&<*z|rgLdqn=r9#NjwBkG9HB8!<>eLPPxi0F`9FPk)jtP z%|fCPTZz_K675eD>EKe4Hmi#?HC92^lN9u#A(eKWOC^1mR0=HTwP^O;qq&avDC$uP zm3yR+k{&;2k&sN%>B*$ll0+XaCeckHiB`V7OM3h7QiS7O>ip;qU08jGTD0$w+s)hD zZ@Nu!4T+R_CXw<6CenkK33PQw0&TZSAQu)-pBKjST1>Y{5^;-8jkv|@|J)?^LpLeh z=_b9%zCrCCH^@lm21#zjk>eG)4Tl zPTx;or)~qT(~P2P@F_L_ZBB?zg zf|gH-AXayU)B~^3f4#5J>L-_J|Juv^+{b0|i@ih}#$KXvHQ^-n52xpy!)Z@u7+Ee0 zqi7{wr|5DhoplYRrt%PS+Z95779o_95=^h$gXvpi5dAn6L^XYasNl&(y0+#bd1+mw z?$GD-agL_VK1WxZ&(hb^XGzxgERB0|hL(GtAukPHXDRA5 z%^!A};O!|g*ma7E%}&v=yC-SD)RXk|TOiFn8c1bb0%_dC6LfRY2~zF|pm7%i=%8}| zB|JM$1#6GfJI&+tG3pq-8hVT}%8ydm_M^1M^eFXAI6@WUkI-Zsxa5_ZqGW^JBp&t$Wb&w{UJxH_q93=N#UmCr_mwNs?K&l}J=-I#n z6!>gE4PUdLKCA5~wV^&F+p>>3$L=M=iaqqvWDkXn*-bDMjPYP*H9rfsHOhc@xLVcvA*+eR{$ZKO3bHqb49FDg^4r@C+J=$rjI zdNF-1T|cyjmZo}=My&^(xAh={sjJD`cNN`FT1hR{D|o%D734T!Irp@dQCs{{%6h+q zc9|?8>ye8odg~&xjb2DTWeezu_5xCa`P6mYJQ^H6m--dVA+vw8>2u%Nbd7stlTXj2 zPZ{pCqHzWlI?kY;Gp5tVgVQMT?o`V7G==g_r%RLN`oH# zN7Up>{TyBC+*G9MeLzmP1e#SYr!CsNwBQgI+P88DtvNfGMr8~l!}@`gYcr5Gjdv#9 z9Rujxwf>}6+>f>>^`ob~`;v5iADVQeH*HJqMJGS@q#(ndbOw9S9?$MH`$9MBl-ZTu z*E`V(8z<^Dt_!iPoyj$_6D1Tll4*wnd31H4_!%;)@v$f4n|9Qz%$5W-9{p^n*8*!Y zI$}lDcX?g8cNVlp*MiK4nA5#wW;8xfO3xJ%8dqgXNk*n*iYByjwJ|^UWkes-49Vb& z0rim>(D0%9G-iz+jX1AM{T}F$Nv$@0mTJ@8VOr$9R+Bnk(4Z#|)XAe(jebehXzwsp zYF(qk?K)-3O;@6kFaC+|yZsec?fos57PgB6oZ7@4yIRG#f)+8`u~~e!tx?R(YY?OC z>P4?j-$kd#wPL>IS8>7m&*JL`)#6A=l^C}AllX!EGc|ZG4qRFx4o`X`x@wk--R8X# zm2Q=a+5bw!z0+Ta4%dpraq4|ybN9Lp4S z-eib>dp{6A`P>)9LMHllA`!MK#OlZQL_doZ(R59cc%JTv+WNP}4T}=Q+=N@Anet6> z*7P{>XjF`t*nC~g8+A=AyAUOo*F=a#E?2~~qnE_+*J0wOo}nV_2^QO*Toe;*FNkxz z&WXS7pAk@tgV>aWlV$sbSg}@=2iaPSbD6ogW4=T@+ioPr2J4IDq9f*(YVd2ORK+(^B{9>pO_3MfsCZIU zt9a6>N|Cp;Lh<-=sUqX;a|N@`Q>4z#R3u+yilmZcMT%*Hf~LhNvQ9=Qil2rkYIM&j zl*gY?bUNa%2nz5~bZBi-cpqA!=un=m2-!DIF|`8}c02kgG+JZ|?Mt)C<)G_lDdZb#I^S?4UC{)(o*3^AVo=J(K&hr~+dVcj~(mqhoIS9keO-t+1Nc^}8Q z^192bllDL5U}5%#{< z7s%CEs0fh=)ve}2vAeZ!^|qZb*T7L|TGK_?kljsq)~T0ZyuYt7_{{*p)n%~I<(yoo zt4ASt!Z4w8w3~2JWsLB8;dnt!F-b6xOcQ>3xeIBzvxQ}y=L=Q)773$XEfsv7R|=sg zJa|plwZih@8w8`!O+s+VUK+u|dP?)EFNC>{|FJvw}BD~f< zCcI5PF61vgAzafxDXdYP60BC95t5D03Bb+^H&dC4UqDE+eF zwjUxg*?WcLm>7$%0^X zPk60J6_zX)g#tY$IHaTr3l^sfd$cn6HJJ|uuX$O*FxAJxuN&FIIrm(_>`$Js_u3O7 zcT$1S*78g+xKt=;j4l=`zrPT!oqs8eb1f5!Dqjh%0p&t~^IPHm>k6UxzGjZH=%$^Rw{D^Q+L+=$kMx<-0IrLA?MfKLoXyMj?JuvmkG35u$=xg*w+Z z!Rk}H(B;T)!Kn9N;dS9ZVFW3G{|R3Ecd-go^jC!+s%p?wq6U@G>hNf%2ArFq3Da%0 z;9s2cfi|18Cl92&xl|K*`1!zJ4=?%rx$+1)75E zVhL3AmBM-@Gx+k{45mkzL#($2d>?KJb|zK;AFW{Y9cys)wE>6ew$SKc2MIsyU~Yyz z)Sr@p_Ywzq*Vhq*e~z%fpcC8)?+k_OxFiaQjtP*ca0c25;{UuSfL&4@pn> z_^~I9x!nsc`t*jPNqwNzx-V#b?F*`@{owPV{*XFj0Bm+}2J?DnxXuQG{jovdJ9{uZ z>pTQB8izpFbQc&9AP1+p0;o9wU!Dr?p1g*&^K=OMGab%l&w%Zx-C_9rnee0YEI3*>3p7(_!`cIL zAZ7eqs4<-ff8Wf5j%)Mbo!0`08L|*&D=mU=Ig4QR>BW#UcL^9cE(Q75r7-@^G8ndN zIoOO?0dKTdf^XqU&<|b(dzP$*!mb{mQ||%Y_;v9;_O1crk!#_N&N>JvTnDnC^$@hk z3z|D`fI+nzVD9aWuyngOOmf`>HmaN9Sg-K|A!G0*{djR}SAAlZB z2Oz`U7sjRd!b9_e&~xWO@PB;}3c(Nb!~H=1*AHebJ_IWs9D-#I{xHqgANqarhktH| zA^qxM*r0v{j8+|iE02$WL)W8l=I~Kyt~m;$#vTLzm}8KtbsS!K9EYzt$Dy`c0K7dC z0BN5CAaLvnm>hEg{%HonrPYDZCp!>sIh_P+|C6w@>Lg^3JOyf3PeDJ`(=c(_X_%F9 z8m7t4fZ%fmOe@YnIi7_xp=ZIR{VY74a}K86I|o_P^We1QJZvvI4=MdFKvm!cQ2BlV z3?^Iz?bwUZs1XEtD}vzk!yp(f3x=&{j1(7y)B9@n5D^BS1jUx!}1 zu0x-a>tNe28rqIU!^5g**fA^ytV3hqMoSEIof-?L<9IHOS{(FP90&6haj@O=2JByd z1GZ(~fH@8~q3iCO@bSe>IM(MD*d4hAm$~=Guk44F=i(vmdpyt4N`Usu382=N03Fj3 z;cZ+Z+)%v@s}|e_z2w_)S^o~$uDSz9?%#n5v%6rw;Vw+dz6-1ElVIKUBv|+?3FKXq zLD?r6l3yl+d!H1jIFthJZ&M&;;5|?c;K>o6?!jUq71p0lh1H)^VbV|q*j`Y;t8WVM zaTCEfM1;Tw5q^#)7#B|9-$alwj={sr3^H06#7#(peGzGZt!Yp-@jmQ~ybr%x@59nb z>5v?m4o$7;U_I#p^o@J~y;>iDWMT$XU&-KBVFrvJ{}9SAaT~7bA<&pi&<)FkQ4N{k zF)|Cb1!aNPw=9@C>=9U>djy3wkH8xqLwn$3SpV@cE`)x+%q3;Q9da2xe>Sc2^_!u1g5J#1(lgk zA?*57u>18Cj*csUijV@Z{#F3PU7x|!z-KV--81Ok?>RK>e-76RpTls+LU^>P5C&ux z!eP@Qc(l9-YVQ_7yJ|5s&M1bWsA33dDuxMeFQDqo3t08>1w8Lx0-X+&z{2Mxu;2bA z9QS$&`_f**JiSt|onH#Mv8Ax!S1FW@E(17U28TbDf!O~Ql=!@YS5IF-ruA#M;Q5;O zo!8K$Rt|fomqY#Kav1x)9F7Wa;P&A+kn!RTC>-8Gkk?ySL~lV)s{$h2E5I(I0(`$$ zz*G4XCZ%_$a{VSpBc_pBA6*vB>;8H>r#I{vIh+8#mI#CV%N~@tnRs&1d zaBuEz4fOm|1D>NlL*U8J5K{ITjyrsTG|KGGV(jveEkmc{&nEGqYj+X>!3xw9^xj} z!^pGskoBq_y2~11%c=&rcC!Jfu>n$Ce!#_jKVV_j575?WgpetXV06Bb=g&35E&C=Y zUeN>PEGI>#-K_=DDQDOn$2GLo{|yT-{Dxbl+^w_t1Hb3~f%cF;P+tBAB5eM`goS_M zRrp_+Sn(Gk?f$`=MgO4V(m(i9@eei`D&g$DO4w(L61I9N@tkKRTokW_f1WB~;CCf7 z(pN^mUdmWIK^fh+XBTix8FONl@n?=QNi>4GXc&sD{s?W)*tUKL%ERB=<0Dqd<(MP{Ie`Mr3ISHm<9HH`3A z!);g95Fe^x^E)-X^hXWl*6R4!MIGH{spH+v>L@v_j;rF;F*aWvD?Y2Ex`qbYbke{s z!!%H~Py_XLY2cR&8hG!n25x`ObDh6yV4k)nE_Bkwk0Ug3&SFhW->r!jL7KQUNfX1K zYhunfO{~(=!sgCe*fdNFD;H?t;~hNL`kWRnNYp};Ct8?V!}G0GwXxJr8>b1{NHew3 z+?#uN0ooW5t&PtfYGeIdZT$C388ad7O9K8vMZXt)J63MU98d8Lq#V&-0P}`{b%dp z%Z+;6meRwxIZGtW^UUjoldch|>1>v@j4zdqJn*2k<=eLPdB zkJG;Dqq3?2Ua>a7{sRs0&O`(3ywU*u_Znc?c>}bGH^3>64RCXX0Ur5jfF}&Nr{`pd zp8px*&{>A4;bn;T4;kXha6|l?WQhJx4DsJ5{&)w^sW&k~{T@c#FEheTbByrB1|tmi z=Xv+x+~P|z!iD)p*yE!S*8Jl485-jNCu4ko+})dDj5j@vQJ3fO&%0oZ!8eUD=bk~{dBFhxrUYTOacT=3DBEcLp3HInI!97DI zcz=cj8&*ruc#i}-oswYZs}eLzm0)YW1arA(aI8s!pee;SR#IHwM~ZdBrMPIO6w^JV zXt+m;Q%*|JCsK-+lckuDBgOb~DPF3R;$CGloG39vovvo6kelJ`iDp=}i2DlOX88P| z8TP(lhPz_S@SbRfl~2r2>75zs{V+pKRdZ~Tm}7yHIR?3y)t}t~vi)=J=|_9F=O!(VW{3w%QhGYGr|K+z2cH?mtYlz%dIguy(x#?%QX9 z$|o&w%Vi6EnP7q49$28~a|;Z9Z-HWi1?DPQVy=-T-jiA4g?^T}e3&IVOy!>7VoO}J z!4g~cS>nb(ODqrPuHY?8^kJ5mns15kUt8j@FP6L?SmIAj?h2Y&;q5L~xQ&|?J>0CY zV44*!U1EimURF4BuNB@q&K-*oD;yKUmr1e0^I29HRb+)%-do`b?q7KRw!(qjA*?sI z#^5g2IKbH&X_z%SPqxO8`P|RoF5%#9*0}bdHJ&r^k_|T)ZLoEv4c2+v;ETOB7<<$P z*PpjRS%eK{-n7A)sW#l~v%%5NZ1CD^8*Hkw!T#L&SoGTlcWTQg|*<$)wTU;^27TXru;$9D1Y}jOrGxl;5@vtpcowh|um@PVAx5eR!w&*I_V)rat zR4cH>f>K*N^1&AS)!Jfqvn@{gYm1qhcG%U}4tHDG;r&i_Sl`PIjRxDHY^WXDjkQC) zX?FN!t{o;Xv%`&R?a*qA9p2qzhj7Ra@0_qh3+^hezhsBEuiIf|yd7%XvqSTA9@%!N z`OFThUh?HC?9i*)4lV2Wb6e~X|JY%Ynmt(OkF<-hFlBDY=KRAl&8Lx!t$W%$lehNC4i471=CjExMX4l;DW#RCc_#x8EzaS!_VVoIC-)RuW~!)v%3s!=E(5B`7)fchzGYN z|69TDTP?#co_v{g{Jsr*Id2(yZ{dHp@#pT8VbpH^dfcG2+%H4$mEic3y@-7i3s|QHJ`#GVBw=-!D{#u3<9l5iUc` zOEN6tapJNJ2Vaq40gssxGR)`EFH(jFc|7LP%EKZ`hFy7d;bFp~j^C%?v6+Vrk0kya zfkz^L4GE9c{550wYrp32)6U;dn};TU?`FOp&x5$3!`I23uiNi)GCarE)rzn4Nxtq) zfqYx@&vJx+CdE-1zBD8BTYT;k}_U z)aBpZWd0rQA1K2s{rG3;#r@B2eA{-G;Vv0pFB=&*dt`XSRE8sYo5_vL{J{QhV=e9rs0AMfkk0_~7^-~Vr~9VYO7fzdiUT(aB_ zFVC~%`(Zn*<@=0ZeBaT+_aX0l^JP2R;UQ}~9BN{RpSA38|36!94B6toZ?;(Z(H7;e z_&)5JE#7`)izQ@>HMec?OSCO-FSbZ$ZSnX~TO9Ah_jOxr@!}d=?6SlbBWBv7!310M z9A=A2gKV+Bhb>ylY;l0p76l!?@B3$iR?Rl}Grwz6*w84&P{Prk*pWFt6dfVVE2OCtA+F*p14fgqMjdAtX zX!gk(H@&pRv|MZa#jMdW(Hb$z8b@8Q#{Z65W7j>__|MB4vzJ<!jiLA7<9-A$8Wd7Zyr{- zZ=Mw@O|-&Iu2xvw#|k^ktZ=0<|7}yT!jvXUd|b(+#1c~;TjKe9mbfy;5<3T5V)0Q+ z+_cLQmDgJ0{`rz zB)Dt71hN#%N(pQMT={E40y_vTd1Zuc(o~Rn{JBH zuBMpV%@oT`O|jyy2^M`Z;eL||9!odDsc|N#aoz-P`Iz9yH75AP-2_JsHNk}Le9S2^ zLHEDLc=EF`vLa)A#f-7$I=81z8Dq&VV@z3LjE5&1<2V;%>~P>dl`glbT8vOpVT65i zjPSy3BdiNC!XbV}xN*G^hR!nL`!6HR>}G@+#zvUXZis<=EWMbIsb$HASj5NJ+x!ht zX9M@GXY;Z5FhgA5%@7|O8KO~}0gnG*fZK8n@a$~^j0omq`U3`d%F_ThO*6oeas$+I zFu*h|16rqtEz`rWae659)8pf0JskH(7sXH9waU}QO^LdgdO;WK_voULN;Yv1f-4>V43`3T|9Q+~j8X86EtyT?a2L)Iph>4u*EqL2Uya^k~w?)G}>s zPt(ReQQGK!L>t$x*TyZ=wQ<7`ZJckTjdEpe)UMXT{5&o6NzlU1{J4zx@!80QT9`gu z3wt_g;V~U8d|juBHrzI!c25(xhic+UA59Eeu8HTyXrgaVP42R3;=m>iY<;PLw?qw` zc}WB74`|@7l^XbKtOk1Y;>U`H8fe$VP4$=D!BVJWc9=R=`lw^mGIeYorH(b-)bWX~ zI$o_)L$5+L?2)8~Wf#+B_aEGXZ|Anbw>s}R%T&#k_hO1zqqYApKsbFrEGWO5r$KTw~ zdUaG8E%~wdgo(EaxlyJyqCHy->2^9mCaFtXE^}qcC z=Ue~aKd*n#x9>ktZ}{0+EMX;OfX02;lQ4 z^Y1r<@$P1bAJPo{o0}jku?fDfYXYb4O)#pe5hg@5f_z~k=vy{I?u#F=_S6q(neYQv zY5suw4;$d`-UjF_Z-4>K_0TP$9@N&~msf+&*=iUzp&GuZ@cIg36|{I) z!R+o;5c$3mUS6z(#>th?s$L0|>=THaKf%r(pTOb6N4S0QBlMX35dwG(hf?ta=z4#E zZe2e>pSSP9=IncD9{V1W|GtC8N$;T1lh=Q+e+MsKRDk2L3Ya&v0(LjQ1^?K$uxrs< zm~HwN>~h{f!Jap;x<7Zks>)$@NIAq$E{E?bH^qyu>iV`<-Ql6bDa?T6zyG5Y;IX-Iq%{W~UC)8~nK_`Q&Lb%sek{v| zT;psw@!&DIZg>o@Y#+nYCy$_H*CQCz{Sh1}%>u=tEO_gj1>Zkp!q=0TP~^(puiA&; z8T=5;#yo_?<_s7dnE|m=GC=Fk18|Rf00FZfz-_e$ka;^DG8U!74c&A&n0g<^tmJdv z#`odE{WNe`n+8GVY49hL!Q_n$PS`L=<@Hkvw-A)d2=bnY5Vu2w?c4(E|D4aW?^b|U zR|WhiN`al7>J)51MF8cq+W^UHIAZTU&D168+091hFymn zHP^uHPzgg}6gkL8B#HpR z0;=y^f#Y+pfK2HMT)Tc5tR`IspQcMt5_}1)hFyZG)#0!`ARGb*g!8HMFbLQe23tFa z!KA!UFxwak&!wTTn?k^BX$VAUgn-@6U^qT47{2@r0++BL*fBf^VyiDg{_%@Y(eEOB zEV%%syDmVQ{RKFebsiRao(FS-^YHM_IaoCN9DL(&$J#4r;mydi@ZXm+aQegSD;NdBlyXq8-(>Vn_;!nb#X(!=fOCanF4g^QnKuCLk0>=BDfZVPp zK*$e(aIXMpG7bPpJ`P*w9EZq`V~}y_7!(aZ1}`g*!V`Y3F1g21IQ8@hEaJYHz3CAs zPCg7f=Ntx;4u1#__XnF{{&3>sA!zhF1mn6Mg0s1PP`K6)lnwl#OX5Mm=?7tSvoE+^ z@P&aczF_hC0Mze30HW;y*pa>;x-aGD8dZ3V^?{n>`=F*^FBBN>g>d&hFyrEG`0;8N zY_r(~m5X+QJYolI`?MWGyKIM;)!X1w>{f1MZGqvvw?Ko}W;mR4UkkKDdq3gJlPFVT(cscK^_Zt=+X@`BE(y9jpm9g&I(;r2*H5sl%KdYM_*; z3Sl)W(92#0?#xn#UV%z5==eY3Pum|M!Q;0up|o8n9MvX_NNN=>IsOzXPc;i>{~Cn> z>wgGBdA-nQT%DkQ@0(E8xmGxJ=8NF0^jXMUUo8wRuM}d&eiHsBe-K7=dM|7`RUw@E z^F|0=Q!bnj{3x%fT&js)21wsWr6@=J)!C#suWE{v5 zzI}fzXwG{im^{uD^anf?+QJ_QCEDpiN2@MxF2q)IA6Rd}N z3Lz$|1l{Uof|p{kkQJ~%&|5NB7~?!k*rqW<2!1t1NW3{wAfIspO&={Jc5xFze+?D( zP7 zm^sx*c;u)r^l#A?g0nS*-@&TF{B=sghP~}_2ghc4!Q=1pZEI`fRz@G>V$y5*oVhRL zO@E%s10%ELUB_g|AJmHSd8d-(KL^Ik&%TP5JMW8-zjO?h@5??X@3AgWUT$x7ej;Ke2X(vv_{b zV1A9ITs-*{#fp}pqM@Ce=rDS;DDfI6)|{UxhNMjqdsj^tujtJZe>l$-9p*0(`}!^x zZDN;+)z4OnCw_W}CbsLu&2AgS+n$@mypvnS^yD4lsq)<-D*K2_O%I4B*L}qV7e7&+ ze@IMRcvzG)91)lM9uqH10>td=C&Y4>lVW+^De>`wGh$fXS#i<+^P;ZFMKLleNbEc) zL_GaCRQx*Jjr05wIB~I&oP3(04x>zweM)Z9bD;jRRA^IuZ5vQi7)pn#LY$|{=Ce@rG4*ppY4yt?4#M@UW;7OB05hD9`r=~m-$qjF#Vah`~7oXf44|H`nyHAUTRw=xeLsmRhE?MA&}y+)x6k7Fq%Y#TVYQ;( z({G~n+&WRWs$P7v@rQWwcca+pNV6DZ`ctgC)GBuF(I!H2yXZXZx2TiPUA3A2#NHc~ z$YYQ)oo!d9_;eLg_^Hy}acUH9piWzh)#<+=4Qg4SNudr})W2GblH;_g`vx64?yO61 zT6M{q>Cw3T`m}PS0d3SWB+n;?H0_iTIk_9tS922zD>osyY)U!HB;@AA>mPrSlFBVJ z8okk+wmVzUg`XA_sj#HbJyvvJs5QB(*pTFr4P_j*rTOFS=!2d;xj(a~yQgLJZ-xW8 zm^sqIGDlh;(uvkC=uGZ*U8wu}F7!3Ri7qbhN`1R@qr27oTIiVW#Xk%ptYNwDcN}-eQ6p9Hcf zw`bV!>)gv`)5ddi$Z_gi5_RX1JbNBp@|{m#To;ga+X8Y9Jy%mo9lS(hcNvY9p;0>rKa$Hqn{XO|)<0W}4h>3n{m})9v#8w0-aa>T~)4y{tVz8%Fz5+ZA8h(&0<*XC5R>JjioE{3vII zAN{)TN9LA?sN3d4)cxrpvhK=rBli1K;cI_7H}Eix4LnTWYYx+a;YUa_^a$-~K0+TS z@fz;YN6AO&7$wg=MsMyMqbA+s)V6}xd`~-0rDg#XzafCO<^)hLhZ9t^^8|SoouK+2 zfwb~qAmx__l5F5fS{ZPXLMl(veLO{l=T1?{w^Nio@-)SUou=K*rwJ!=$1Um%1$3Mt zs~Kl0D2~^qS2;(^=ANTliRb9E=6Nz+e4cuwoTvW!7pU8c3#3mM=!5Y^y6SO}W~E=G zpVA=mUl&AbnL)JCGMMMr1e5e}Fio}zp{<)j=vYn&1=@wu{w<-jBrlZu%EIXT)-Vdn z52FDN;k*ugIQ4rHPUjphQT4V<)b+_Fn(1(vytiGZJ^7bui|h)`+j@oihV`)T0Ea^4JQs(G5S`{3} z`*0j>`R@i*oVr1SKHZ=lgKkpH;hXg6)lDksd5f~R|91V^E!yf3PyIH>Q(0C#tusrY zZ>tk%t|Ec%=p<6>{6y+@E0IS1O{6JPZqukMx2fxo+tfV#4#l6jL++pMP_^@2TH$w> zp1!zCow_8^imgd>`cV?aNs}plWink#PNrSzDKuhc3bkBKp|i~?WIOU6ojrSxnm^v7 zVFOZW$AMG|d(K@rdj(zfQqa*f1Ezkz0q;{h(jJh94$m{2 zok72&GU$3k1_`bYDfQ?>lD&LLn;kRhwpS*ViJA0OBa5o1XVH^OSrqm)i)IaeMC}J2 z(UGT*NZIl+Eno4N5)vL$Rr_O7ADvBxr?W}*O*XxE%AsiQ9Gb&&s7WK2wol8Ys?c0Q z?#J!zmq#(X@`%GmBpT#X#GHKcj?AZ?-}0$o&=Z>P^Mnd>o=`uNr?g}KQ;NI#lpcM5 zO1XmzD8;9M0&)syqVY3op8JdrMLr{?+Gn)f`8g%*eoj@H&q-CUkhI+ksV%gSiar(6 z*`7t@x|!z%ibXU*rI-@N6;sElV(M2`Oq12 z@RGi}zofyTFUjM>OY-enN`C80$?I+@4R0&uCTJO5@++h6d1Vx4_=;NHUy%^Tf7^+#C9M;ti=5y&+w*x70EBEft5q zr86JilDta=WqVYR>&*)8$5l|pfOn*`?H$=E-jT)cchvshd&)ZSp0;GYCq2y%bbQaN{a5gTHXD7U!08|9^tq3;`{hTPVDX7m=Y68c&`;F$?I${CS4lOCE6FjUlH5L4 z(u7V`B&?_+!)sOaq^gQGI91cHRn_DfT}=;as_9SH8glfgp z%)e3VOzza3`$qMJ-zd}YJMEkFo$QZ)r|UW2$wZ@$R=U+u`2IR#X?66Vy^i9B)YHx_ z_0;!vJ>`9`rwKh8==Q1x`V-keecv_E80#P8Hv0!To&7;|1wSZEr;+-OZlve~jijE| zNaKDrlDBgc?e}V;&9O~1v9gJD?3*cmZZi!&*GyLnnyFQb=lr_0(4@UBH1%E!4f)YR zYCV5a%8H*fiMw{Wr9Y{MaVu>c-%6neTj>UCrOPd?w6o7Ia#{V0$}j(-Izm!;ti82f5 z#q+dBD>FUr;-&6XW;4$!v&x&wY~^ERR`yPrVVg2LYofx+d#W(AQ7UZ2A{Dln=X-BB zrNTCHCvU|=6*jJ1h1oZ&u+Ms`EV7F#oBW?DtDU9FcJrL^--lJ%hAXP9I8~K(FH~jT zUsPF~vKo77sm2=nt1;#AJeKj>JJndpX*CuX%N@N8HP-Ew8Y^m0W9zllS)08&+df2{ z)lBAg-YRt#x>udOJEzX1H`N(ta$E1UI$QKZoz2tIU}NkxSeL;XtYxAGOIfbLJa=g@ z{nHvODq4eezt4@m7aB~rR)eil)?|0gHCaP%O=dq*lMS7x$);`8WbXc&Y;2e&>wQO) zspV+0Cp`E5P!rF&*VbZB?6lb2fm*C|oE96iSc^q((PC{!wV3N=E#{rXbNF+$*sTgJ zmfXZmKAzVfWUI|K571`A#%QxY^R?N{joNJDA#L_HSeq@5*Jeczwb|fOZFant-~Ok~ zv?V&Me>WXA0d?5SsXA=h3LWOULx))h=&&!Bby)0O9X2mphjqNxVS#lz%veR28wk3r zwwo>+j=Jo~6kV3FOqYG#s>{@l>N3MHU8a+u%UUyZS;-4s7FDCmmbdFNQ++*_WUt3Y z571+|BlQ^0)?*Q#+&$RMZ*%`(^A$Z7dPk4l&C+9OFZI~H&;0RrJ+@a*pN+HAXPW)= zS@LjwHe-f9`?NxzE#Ickin*&WC|I8zj?-s(q|g37(dTZ8J{wZ6&s>!Zn6t3~vvM?G zjROoAxf!r6?gq?ur2)IQ)qsugH(>WK7_c7E2Hb};U@x)_mhJQ9-OMV$JevH62 zS{SmW-3-|X7egi)YsgAx8?s}o4O#E)+z0eGWTP(_GP-8S9Fh&$_AG7)78|mbkA}>) z(U1*N<}RR-5gTG}#2oqn+#;l0j7BjaPbC1uM z_2S;({xDw${#snf5ecaYIbl zfRQHb##H|Qg(hqr_cT(rny~r~nup*2UG7O&@E@HqJ0*d%0t{+tZYJZZTzJd`y}2 zm?P>rO_1{6rmR*&!fK5qtlUb% zsI!C}?;~LoT_o)Ha0%ZI64qy?gvBqCFnbT~iFiv`;Vua?^^>rXCnRj;1qs`JS;BV2 zNZ6X&5;j4UFxyNCtH_tIQ!gZJz*`B+;$GtDItfetDPdOsBy63gl*JoL*?V&-Q;|uT zq??qP_4~i2_;sk1rHzp?pD9w-f3}nrFOssAtEBAndMTT?Rm#{NDKqesvT4Vq?BE$G zyA~{E_pV5pB3jCB#!IfEkM#V#YeVa-(sC8Tawb z*w{&C?C5keCeAivMK}aYh%e!Z&5J^SaWG_odc9Hcz|Bui4 zyv4jb=ia&Z%*>fN-_w6iOdnhnQ?tur8go@lhu#oVXU2Zay(6X?_Zj;ogz+H5#ndrU zOby|hbv847TE*1qFXPGl6H`~loN4Z5ddcY1KskL{prB6` zmG$XxRed@^U7wB-GG>j2K5fy|r>WZd)Ja#Lnu_&ln!Y|=#@LkE1NG@NLw$OEus$ss z!paWQr*nqu(~U;@bk_)dy4_fxE-}%kBTe;bGn43%`qXBWK5b&+G@9`%nQR`TPm`I* zj@73ui3a0h>eF*f+?lvA*~4Tm6LlsTtlR-6N=&Y?-zqaX$c~l8j;qOJ5v$`6tM4+a z_d2WpGSlM_(`O;mOJgW2$Mke$`YH|5r(R5d1p|G$pPf%SJ1;dIrn{Ct-ObL|nVq+r zx;{Ot%JgB^0~DEl@=Q;5owoFeX*;`aXV~>?Vb{^NjkP1Yu7BC}9ak@=t7^q`PqmmH ztPoR&axt|o5mTc=F|A?kbN`c=&d+1_2Wz)&*<$*Qwd2e*G4)9m)99hMvOU&Azy(+TL{d%;zQ;){9=+RyEdQ`Jok3KHbqm#eu(Wrd(oW9ee2VS%1 zEme;;CF#+Dae8!Wq#m91P>-75WzU?S9_{tgqi@{Uv+1lyC!Erw*@qY(b&np++ong^ zULJaTl^(6M(xb!X>CvU2NB2(AqbJAe(PJa@==MQ+)Ix_n-|Bkwotz$Z>e8hHT6Aed ztu7t;Lzmtv(4~KKnJvlErS7SWd6b|_3!-&t?L%h20(5Ed4PBagS(n~$)}^aY=u)Kv zx-@c!E}dzoOJA+frPCJb(tw$|v~h|qojQiut6|JWiFIkXK$kv|)1{%EI`nFT4&70y zL&p{B&`QRG^?I#CN1_gmjn$!J!*!@%pbl-iu0x5N4r>b?8hS{FzH-o^AMAAKyXA~0 zJ70(1k?7Ff6LjdP5jwO$pOq8nP*quGbK9AHuhphoO10^;d~NzSQ=5)KZMr;0o7z9r zrh9K`)2&yunGM&bLyl_G>Ydv3fgR&9Ez_ny=CHnF8vAaPHeF??&FrT(?UvJ~=8VU* zvsR0`7Hcv4phbPs*!u)6>JXttX9Q}|e_o8q$R}xX3zd|~$ij7e|3+ZIWC?4`m zNPB|V_{CdDJ>&oA^oVwSjGyBYuqBBPs#<1v&hCxjLxJG zC7|+m1hmafK))Un(8t>a)NzG?j+n)`Qey>l#{dESqr~`9ZR+&%55`x{Rj22vI!$}5 zPFwxeslKZ^9m}{POQ>6uUsuaJf(i?1?xt@(TH3L*B&&HoN zhgE6CMpepk0@6=YROz&#s?jh70Ye@ca#GA7l( zr7ASlT!kJVp+bjh)5*!o)Hj5&s;{!K^GRiDzfGBXSu4{B#;Hme zs!X4&D$~$bCF)+HL^ot9QKL8|S{R^2U0s#vFh?aCvrdVc%~7JkW0a_(E-TZkNJFa? zX=$z^Rb$-j(IJXda)q(9k15iLn-r)hAIhx!pOXGgZ zvT>6vJsm4ct#8Rv(K%U~VJ}PfTgy`A$+FbfK$hzE%TTu}8CstsL+3q{p7TxQdUYZw#D zqP`ckl6vvY`CfEb(u=>ujF0uB2k%AoVBYZ_tef3~wW>Y%;Zrx>xz~+WySlM_VmEH; z>cW@lU8v&Kg)?lraLLdvw5<7uBjf&I!+-xUaPB{xp#BddK6RqX-A-I;--%A+I`L{- z2VP?HUVGOL9KECizvy(}uA;wK9`YAw@BNFHCjG^@&UQ?H(T*u@?Ra--JMPeJN6n%( zd>Gt@Lw2{J^Mp3cY-`1Kp3T9}x1!QQ#?lhBVtjrJ+TU)$?oBP|G@=E|YMOD}(`MXq zv>BbuoAFF<6WXUW;Z*k~{B7NY9-2)k`qGG}?=)iWrbbjVYQ%BX4LCir0Zknnuzykm zzG(l0JEecH?aUwCYw-u)$p1lMRy}f_^|)+lJz8njxDLy!Yq2h(7K`@Q;`4E}c%q>OhsM@m?BN<5J*5V(wEe=*3BOS38rrplnQh^ zTY;uCD=?<#Ck~@O@xRkQk#axr*S{awo%{nkPyWEt=|3>Ky&QKuFGq!=<>)o39Qzx~ z(C%p&-rrw_Ib+K3M@=dI2rtEK`%(-vDn*;}66|7rCHD;_*lSRNo4yufxKA;DUr~(h z!eZ=tTZFalMfi&4L%1MYgcDK=G0mwE=gcU?$F1KPFX=l@-~SyqjQWmyD+_RYPyx>0 zSb$mv1(@~e8}9V}hD}!A&|c{qroH-#s%O63ZeOqux!Ydi8$hUI*a-Jg$tO!6_k>?69~`G{t#KjLfV%d^bP z!#L+WRF>r7qLy4d8kLKl_PKava4w$w`T>`Ee?W~zACSs?z}3?C`1SC6oHyn@-u?Lw z%LCq_X!ScBrTz{lr03v}(>d5RIR{_Xy~U#;Z&B0kE#A>$GuG^EJm8Xz$uqLCvEdDB zg}=d}o8F*-?i=iVn}r|FXQ8Kg7EW%=#LTcvT(B_{9!#4lbi z@%dclo9%dk)1qJC_pQudtM>w{vr}>Txl|0FoQgHoDQFOwf>W2L;7s`xoRUOQypLk_ z5Q-1;5tq0jR!9(c{^9Xk5RcQ=@aUq2s#qtIM73j1Os@!8f$ zw9$;jnir38&%wv|eaK@p{}92Roe0br7lBPhk5F*s5sJA-s9771|89k2zGXPxX%EAd zp<&puDh$13!%#am6x}z6V!a>~XX8V>xaT1zvb;0j*_y=fqaoNZJOs;ggE8%FF!LP; z*eiESXRQVPVHX94KAB>=0`18`~b9SpO-gAJN@a8$}|T)pQuIc zr&qV|^8cJ{qL?|+leb!H0%l{y!FKM$2`$uh$l8@ zd7$rM4;(Yd1D|DF#_^7qF+l$^cD;1RC41fRrj9#iQ#WjLa6>H(H#ADVgeKeATAJD= zRET%QvJI~IRKXPwJ-LV`HY{gS-v#D(zJMLeFW`Tj=kZU_d9+!49^;x_P$s|y=gxJ( zrq3+@l8G~(IerfBy*`U!dS}ts;SBCgIE|wePviSFPG}eUALh26!m;yC;lZ0HG4RI; zd^+(2MmitIYafoG-C&mcY5!4-;*a1&)gyRs-C=AEJA{+k4&wT`2XXgxN8DC=0OyT6 zfI_GJ_$q53Zr0m}mD~5?>exLP-MbqbtajtT+q=-LY9~&Zyc5OF4p^IGk6{M(Xzj2A zi{rMVP2V;|t8J)uYb(yH*n&IFw&1bToAE%_CS0Mj35RUih~FYN;OW11s5aLQFM8Qx zO~HCJH(rlN53a)i-Ug!;ZSe7mwRkgd4eqR7jUy+m#!shL;l9k3*r>S@H*Z*heAsf7 zZ(4>kxMjHBbtyW0Sc01kmf-yD)~FwCh2Pp2WNhU70qJ;Q}~+`$slo-V-N zj`?UZXFlr_=i$sxb8)=kTvT_MgI}Lm;Pt<=amMV~_|AP6F3+2ZFAZkmux$h#9|Jya z=J2zG!$0RG*p_XMbz0__YdZr&f~TWH?KBimnudv|rlRG`DVU)=1t%|`jNbl}u()I* z8kkJPdHc<9OZ)`f+ch5T=ZweYm&f6l+_BiEHx^?yjzPPJqp`hq6uL|tg*_)m;_ehv zd@XN^I#woZuYfVSd>w&7h9fX;yAj4m49D<>VR&WgFx=`i6i2=sf@O+B(8GE#n%pqN zXI}^5B*Q@%ylo&VJQ{%O>kaV1Bm*osp^x%ZjKgHbY`s7aCtcA+(>xs%>gnJwTWyTL zuZ2e|G|^;~CcfRTfjiwMPH5_wY6*qrYK{o>x3}$;D z;)0a$d8HyojZ(y0`xWqHtUOw`$)T>f9DY14ix(NYY_z-#dU*Bm5xTwnv%qdX%&3dM z__&j|p4h?nCbshdGu!y#87;hzRWsk5*T_rOHSh;Y>Upmnzxms>wY>Mi8vaOoH9zNc z72hLM$%nfAx?}9+~Qo`_``diU-gck_3bVHY(qA$SDwZ1vd`on*JSWT`_uW}rdPbi@t3^Tzf@k~ zYzqHNhVtmj^Uf+#e%jR}zE~rXKj!nC?-R%KP62WJufehW!r-U;ZR00=@uMhSXKW-- zo<{KNCOzVJJ`dw}&j{r=@gcnB%wXQ=eE4_kZt~L#uk$_|z4>3IUi`#uSNVe#o_wf-2cP%Lop0Xb#;ex5@&=9<`5{f` z`GH4V_(3&i`KI4ad_v<%es}9JUcKWmf4|F-AKtf*_m$nlcPi}Um#XaGebl$|??jvU zzgl*@w%$5^xWO8J#GsY@fFa9xx#8A)>4-&qtmy*&_~^O(#BsCv@(F~$G)ck_n>wA3 zn?8k?NG9@0FrFVjYYZP?F_Q0}Ys_z4Fr1HDIE3$CJczekV!*pC)8k*R(B|7#Y49V~ z3iu`KRQZFpO8m7A^8DjXGAuu1mozNBO`4w7AT7?Rkv8Q1l=gfomMRu}m8uozNd@I^ zrGm-~saj2{RJlG`D&O=>+TR*2?db@Yc6A3yyZQs9z4Cric@=M|knQO*)VwI&GRjGM zW1^$f9se(emT$l zhwoAIDbH`12i$vX{?P4}xz)k%=GWFWnBuwl+1S;CE0Lbs>FP&g`{xR z63Lte>m_?<*h|)qJ|vMDbVf2w$yJiw=OKX(Z^@NLKS}bhK*_7JU`hD5N0ObnPb9Kg z@si`IQb}6E3rS7%Yf1IP90>+|lR{8|A9a!8tu{8q0&KcVrM(v~LLK?l7D)*ka6GTR)Pk zT{(suWj&s=p3n9Z&YZ%{oIagXGm~)qNWv{0Hk(T`n9B{&TEMMRUBvB^wdQvITguI8 zUcvR$tmbZ)+i*Gsw%mc-johQmE!>Ng?Oeih2hKBUH%CJDaqn(BauV;u+{H`BxX9Bd zx#+`A+?8EtxsVAi+=0jEITPcHT+V%0ZqooauEfWkvl4l54=;OiHF8(EL1(=;1Wf`M0>Q)_1s-uLHQmS$8?54q6wSS@dBTad#cu4HRTbItIZhOuBSCGjKTK&Y`fD+rR8LXOmXX8BK5C@*X#GTL(9D zAFsD?#tLnm?a6lTVBKHNVN)kJGw&bwcWyW5ozTOnjOydI2eACZZZfc8wk)jgl!XOx za$vMq9vX}kAhJjSY#(11Y@nmY&vxEaD3GMKT=27}7uAuwsnP*|up46Jg7f#m#f z(3@cdCG|#dGh_rzS#Jz4g(kqIo4|uprqDcoB$!odK* z^7B{2u?uUUXVO~O_hT)jU1$64XRia}#&uwJe?1IeY71T6wjhnPgDtij;J5Nd*qpc# zlI%CZU+v9c_-ZqZJh%l04BiUOZ@0qJQ`=yb>2@gkv>mL@?|}Og?4h8@9y%{OK<~7j z@ayMJNb=qV`^auktlbT+etV#1&R&?*uot!j?1RIW`(aPZewcs%04Q2HLS(xmObI>+ z!AlM?F4Z9z{qQi%TXqEI{yV~QyB~$$%Z`EHzhf{W^f>q}I{|f_Ctw6)wplDa1r{Br zU_|hLP-o=?zHLr0{QhaUvG5F3Hl2Y%0cTD+~M3qcR2Rf9X2k$3{&o2hMtDY@O+L3Z1VMhzttY#BJqT- zE1qCq>Itb6uYk(MD=_cN6*w^RDqQ~WD)_KilWT*$;M74cmbcss2J2jd0{d%lA@Ld* zs(3?~tv3vf@`lSj-tc4Tbr}8NI&5pY4jyxEK+w$_5MFTu?oGW37cSj|bzg77ppib1 zd(sDvyzv2r0lsi)k1za{`hty`AB5WZ!OuuP(Cqeuan}AYBhViv{q~1}!1!*Sw?JBW z3mnJX1|6r{5T1P-Mh&jp#PwqQ6P6AZGw!En$j1m4~X0iCK4u$uf39GxG6%R43mLgB#9P*@Zn3Ys!u zkhvs`#fODKS5+9Cnj8)l=fZ*Hgu?~>N07MV5qyn#1eM*7plo3TWcftE-LeSSJoYgN zPdlpF1m53# z0vk)7K*7kTFz3iq@TX6qKq&?kSH{4wz!(@=6$1m!V&UJZSa_Wl3ugs!Fx(~%o;`?z z3AJ%>Yw|OwKm82GzkUXGqIfvEE*?$=#lxQ3c(9!O95hZphm7>+;2=nV<~0eh=UxK5 zuS$Tyj1y;jA`x6t6TwF*32rP)g46yv`v%Y#erm4myisFJ;|_mz7#^QNTD`g z3Ihl7Fk>4Jvm;n+TO$ve(-FR(LGVgP7_Y|S;8swWaErpV5(DD*k`S1-4t$qXdM`eTZ zzHG32k`4Zi*^n~nEsOhk3z-RT;c>@XI4;S7ai?=2hvvYVz8uJ!{f;r;-oc)2bETN@YypD zp1jQiN41YI!0IDB@%RX%vp<5jN>1TM`lfs@W9u!=7M-S!elH7kYX zdrRR>Xeo>;D}}=Y${=WU86bc zfX(|KuvzIRESvokj8FZ9pRqr|z4j;Q7*&9~T?PEOSph~l6<{r233iNMxAJHuOo*z4 z)}NJde_$0%T2%#+9#x?BstQ(iR)MowHTdkT2Jd^-aQJgIaO%IHZq6@oIrR&ApE9mp z)h~z|R0G8;YoN`&23k^T;9F}Agp96*HCt+--nSO^y{(13{#qC`tqzv%t%IEp>cHW1 z9ayRU2EAFoA?wI**z)K%lob7jxtjHGb$&ghoT`T}(e;pDUJnV3b?3b3515_#0~s-Y zz@p+0goqoUZgB$`oNa({u?=8S(Ey6#M#x#z2q#WAg38lIa4v6zV(lgvx}XUboos@2 zkDI`{s0mDj%}_O~89Wa)gI-88xP5Ad5``8RFues}R}0L&-2!IWEg;*~0@5+9ux>*u z6kchCxwI9o*SA8tVH*@LX@kNuZIBw>2JXdeFip@7Z=fCK>}!Vy0qszc-423(?J#iE zUl6YQ3ssl?Ldf&Ku%O~Eyw~ag&Y}aZI(9%hiybd}+X3aB9gt<(2{+et!rTj;P!Q7z zt4cZ{PVFDG&-e#J9R9($oBv?wi+|9;V$$Ocx?s(ME+{(O1(x@_z>hKX-u~@^3ZriL z!8m&9PTg=Nyc=fZcSBZhH_RN}1OAMs_r_)*fORM4y|Ev^ym6uW<(!!ee8p~-F;wW(hpac^+Vyweh>!tgYnyb7}nYk zG9nhAZzMw!r^}EYD;Y9%3*+svSpC!PGQ=ZLhIq!vkTdBrWZO3xV*Xo($n?t))RrZ? zO=XEPCrfTEl_dkW$rA5ljKSwFOO^%7k~>dj$=6r1MB$4pF=0%;8Qrpkh~&uR;c{f) zR5{XSDMwz~%8_&X<;VnQIg)onj_e4PBejWgWNS8K3lzx_;|4i$SVo@2Xv>pwV|gMs zL!O8i%M-&5@6<*Uu9YVryX46tfdYvetUv^2 z3dGhzf!tcDK;CRuAhkyoNUy5`kz;Ixf8h$`N0I`;Hwwi4y8>BI$M}9-3dE0b6h;~< zlBjWtWcW-)a(SsD`LRinjCE8byUr;RziW!*`F%z5n(_X!QWXh)P$a>nisV#-BAL^t zNV7`;^ET#sN(CP$FHom56bK5}B2xM65HF$f7Sw z#Jp087%&b*ovbo>s;NwN3{@to6O>6XQ6^)ol}VVbGSS+tOdL-rlN48F(tA^xm<217 zRWZtBXNoe}pTmChU70NTrA$oQl}WRl3OkMp**HXnbdOabS0yS$v`~edU!y{*x2X^~ zs6sBDVay5-6;kD|LS#Z!h%iotsHdusF2=Md{H8*pDpiPMvkEclQz38ERLN$2RZ=}d zm291;O5PGxV!BwB9AV7C*lnt$obfSaoK%Unn<~+}$=De88GG=tDtVotO1xgF63h3h zq=_*#u2iZLgCpg%l+}p6wi-zstVTK+dt>ZWHL_y18rf;3Mh>iHT*9qtWZ6D7 zGU|jHX>(B{aaYvHW`D-)2vQ?nQEEh#s772~s*#GfYQ+4D8aZ30MxHZ{VNok9->XLY zl-0>UEyge$q)yUI)X8SV=xb)v~Qh-szj#Nih^exo`$+o?`kWdy`dRY0C; z2}suf0hwwfAX~-=h|^>Napwf&(p&*KY9%16R|&`nI{~TMCLp)=2nZY&kla%Ovc^R~ za@+-EvbTVE`U}XXdjcX16A<%g_P=-m*~YWuy%LaRZvPi%n`@E2}r3wk83(3(eAqmV8l7w6#dGSd| zc*cJTFJcUsGRAG#SKoNN~SVYzi6OmRU5xHn0BJ!g|CWUd6E7w=m|SAAmx%=vWhO6Jxm`?TnOtGNS7LI69WR$1doYs? ztez{Zz9?2VWjdrXUE-KdeoVJL%b9*m&nl+#Rcpr6Wcoi@BqAf(`P^I}B7fL9a&y_a zS%^s3ET$(Bk` z8X_VK3`OL^01=51vuma!A|;wkgzUYVh{P(hHc$|eg|Z^j(<>ywT|#2sAtWzb*(>A! zgwzX3PYt{Gs@Og7LrCIEge3PnyYId*`N-bCXWwNDiR){254>WWAj*Ejn4yyALh>p` zNVq5=dC1s7eZfLvbx%m#Z!=zykC1#~ETNwsLQ>%>Bww6`B*{rgt{i7vp+iEVxR3Ej z9fV~5Rv~$3CnT0@SslxTL}(=>wv0P;YnG64U4^82vXFF)6OwNtmvX z>=y~i2o)j8krfh$ZUJd*W8BjQ0V(*!xI{k$#I;aBGCm1N`#S;A&lHfcFW57gEFi{l z0-_!%AQd435)~*Q4!#1S=_Mf1ml(t79Ag}v5Rg#^1;k^QfD~>KkRj^@WYr1*Ik`wc zu2~3(pE-MFtfNz-nEeiW$G^ms3Rg8I5qD~w?GrN|f zP8!nKXP())IL1JVP$x4VFk9!ZPSm~BNy$ZZ^1w-*tUjzxI(Mm)Yn#=Hc&$3|wq`bM zjyhRm&TQTUby8-mPBfVPG-Gyj4zs5Vm|c}H`#Ox-*^W{*^76A9abot@gxTS=1ZKaP zUCv|n*@D^Whs<98bx|Y0?Dvse)+*%BOcio^BI`qqRLB866_Tf{LQJ|? zf6Ms1p{2^?17r2pr74q6#_jD0S0*)#;hW>BOdgzJ{j#Gn8M2kJd{?r*d7d(9nyO3= zG3M_NePuF_@qcf3DUs6ON<>_uL@Yiik&Q2u$lh2c!AfMqO*THbs6=#*DUm{ZCE~M| zeYR90MbnkYo{?;vpwG&yD3Mp4ibTIwk!<;{NbY2_aS7u?RXk>Fs5^?}uZJS3`%jVN z?NKBVwuX&E0EV)+3RxlnQ^4t#MA%_cj` zlT&Q07Q@DD-`Uu$osHq-P34IKV@!3(%9G+oITBwYN6zNR5s6feam(b$WnVcmh%uXk z4$2XOO>*SCl^iLZAxFlW$Pq_vITGA2OS0-^N!fQLp9OoMg$G zU9v>DhJCh>CF>ZAs%C&J*{>u^ezeFCt1=l9mLo%2l4Qu_P#I!>osDtN$dKUOGR%g` zkO&JIa%-Fn`OiRxEK`snW6JyCeo{YlTka`SG2w#H|xJ+fERT>xAsS4%qXt1DYOoz@`%&5WA=YY6o_J z>Yu+Ldhr*!ue15g_P^jZ^)Hwx{e`G+?V$g-9ride?v-^rq#3qD)}J|7g``@C1YU?Z-K{6%^>@- z8D@JogZ<`aI5fT)cJwsC%pAtUy3+*VyPIIzj3$UuYyy?fjj%MN5l$Uy1kYKG;3{YY zheF1~ifDl1;|*|RUIR2~Ho)4_KM)-C2fm#815FG5K#TStC@!mqCv48S^S^pfvaAO$ z?Rv%%{|&37e#4EEzaeSfZ^+R24bq}I@PAYXc1P<#X?7h1sMUe^Yc2d2TnicdYoTLC zEojNtg6@YJ=(}A5c{^%YUV|DK|BrFA(tp9|Yro*)`d{$c=od8BSA$$qHT1YtLzz`I zJl3s-jipu4@u&(;GnQ60R|T9x6`Xiq34#8V5V55a?v1JhC&r(*;47f4SAe2! z1so{;38|q!p=19~FqrleM)Wd<{p%mleDwz;toZ@k4SzsqMLC>|Du>b|ON0<$|hF zF4X`00Q|!baMb<-h)q5~Xw`cd9R428?|ct=rtd-R*E=wK^bTh4dI#LdcQEW%4m5|e z{0cjn@5?j?epS5%hp@Ns!Tv268NY>X71?k#BpX7uWkcw&Y`9VO2KL;41LHTnf#N}L z;ACMI^fJHO!F5^iPA?1eK4*f}%}m(0A`?!EGT|WOcdhb#4MvMzLy6*Ra81tu{qq^% zKPv-dd(vT@G#vs?q(kN01%azPm82kzs_7|79%fn#rs)nY} z(Xfz2!|c{57#SG_y<4N;m3|Z){}2iKmm(noB4K39WAKl746U0V!)(3B;FJ>qq30tY zWkv+N{__Y@9x@h~Ez6Cf@d(K4aAdRlfzxQ~e?AkU#t}@&}VIez45l5B5m>;Mi|pIDC&W!aBlVuc+1vWR6?$U`D(@wQ@9TM6TIQ@PH)(y?+we} zT!Yd7U1RNh4W1Qx!S*X&AWyu&zy2x=y2sXbmR^OP-Yc-~=@kgud<7~+S3vy26S#w( zuyUv;*yeh`8fOofW99+F%PvFfwabt^>oOc{a0i3??(lr6JIrJ2Oc~K`V7}1}9;my) zKmHOd*n0_F2V8>0H?GVF<_ayQuF&)4B6PW4gt{pg;ls}h5PIVRI9gnQv5n`U=-zoa zx8ywNb-TcW$1Y&F-UY5Ixj^|IXSkMm4n~YP2SLtfLB9A5EHgg?&c3JNc9Rp_Ug88U z5&yw*h5tZl>nRAulQ2gAB-}c30{*-|4r4|ihvlxvU}M=)Sj8O$GruFy-gp=uS{(*S z*da*nKL|tZ4#L6bj_^q22-&+2z^AnR@Y--c1fSRkJM;E}?wGw0b#V`jE!hpe(|5x! zwthIGb|);JyA#$2I>5>{dziA+9%RCIKw{r^uvxbq%44>{8kKGEZ0lC&PTm6JwYGrO zp3Si8)h3uXU=s{Gyb*rA*#LKjZGdT~?11Llg4sx0#-UpepTDdFtRcbQ3T)~ZL&coMu<6z!NUvWA`g0e;x?7fTseS=Gn6m&L`Ok;I-}B(C#XMN* zHy2dv=0NaM z8qMKm!3;1PHv`alI!yaC4epyxgTMbxg_-ZCz|mn-;P%nU5S=**Vg^itko^*1lWBz*|n(j5Yy9R`DJ63dUK zVhEFM2f@_HfiS9j0Em_hfa<#j5c5YL_RZ3V0p4Pemg#}@L_NrL(FMzoIuJ8l2h@*f zgKe4?1ZZo)hwYls_Dlmr@)|I3wFm}06oQ~t0L^m+@b;!U`2SP`o5^aRdO;OpKdP`X zs0tJuQU=?XN|39e1m;^5!T+fO{OXm5@k`}l*IhaA`z;GeoGg6skb(HPelC7_A9wdp z4|niNH#c@PW0z%ia@*`XxFXrVoW+AS?iy+3vc5NSzfUxA|8yF;*4RJXx25&mqq;h7 zyL&CCYFxtwzO3d3ZmQy3|5b2>em}XvlYekaK9q60_Lg#olu9^%xzrBIu`R6JnQ=Uqo|(*bZ%yJ%x)ZqBe$P28vv_V{ zb{sctM=Yn;`;`0T|AdR07|m^a8_B8KKjt3xKH?_c3g==chH*x3A99y>gmC3OLEJe1 z2i$(M``m*!ce%`Mfn0gl9j?*mHrF!l7FYY)kNdLOmrLll$z8dAgIhcLI;WdM%$ZcKwKcgyV}*FEF{XOrZ@Eqic|E6qL4ZItzN#crtgQz>K?~Jf6EW zeGGTbVI+6Z*O*(EKAfB0GK3QiH{?o|58%SjiMd@*bU348P426jh`T6J=f>_<;okcz za(iFPaf&tllCcZAB#T4ZB%AviB>OkkN{&h^B*(<1633$j68pS-$(r%+C38HpBx8TQ zl4#ARlD|QTl7ik?32zrA2}}x;oYf7IY&jetnfJk0GJ34HMC-DLq_^^-q~PKi$%~nX zC2<`Nk|%L?lEi(>CGSk;OIpgzB_jjIOAf3tl4OeXC6lw&CC@L)Nc_&!nYT25GI!pU zVs23qZa#hWb@Qy7N6l|JTblpaKfrudLcxr@5oc#iPrWfcH}h*^{zvbmjHcQo3uU8Z zXT9ag1|!ZSE8O-?HXRa`{O94TWZTgN$-AC5BzxYGlg1PYrNM&-NVje=mevNDNy$%6 zx_*SE6zo?@D?>L*S5@tjUNku>J?U^x>Ywi_U3tV)TCa6o>JaBAr7HrZEsa4^1@CZa z>-cDC%DXt}j(theO4StU?1(h!QOh?{m&*6jofkeyM-2NeO-d=18f~bQ?&z$Q{^!>y zwV&KBHO}pl7EP1kMGEr#n0!UvEJ%enbX4bCK*YzYYVm8o>F_^8#k|dt0eswSL%u~Y zlpk0)oFDnfm>+m-B;R5&hL07F=T{Y)@de?N`FTgD@i%9i^BL;EfB!a<|M<{?k3Kk$ z-vgGss`6sqGvAu8zqgE^xMwB5cIq15uHS~A{nnOO^xMcsZrQ?57_*(f*=EmwPTj?~ zU*5~NuR6fz8y@1XRv+O_Vvq9y|DEE0&ppi#6rAI4?sef6bIS zM1_35d&eiiC@s^}OGS{-%1&rev{=mo-K#gf8;PFKpuxK zQozIQ3K$=vh?UEgP_b7D^&*u~Z=DJ%D5&DkSXGSOq=x&|)X^YG9piThkR{>51S&+s zJt91!r-4bYG_dY~CJF{>p<$*L4mzTZDnoRzB3lQekL%)&;d-d@UJvh{660WFeY~2h zk2OvPIN5Xn?)^9bub&x+AtMK|c#}bR{j4GG8#NfGd>V{3XNREYsG&IE(@^w1JB)E- zhU2RI;pltD2-8hRU}@e6tadWSLSqx;KbWBVDO0pC8i`doBk{!XQP?_UG;Vw|n#EO( z!RCQuad5_1oOWOwW4DdRkuS!h?CuGerD=wzq-LnQeIf>`O+sP(B;2=QGRDhK!Rn|f zsIX=#3VWuaOz1Q$wVsZTTBoC3;0)}TYmUx!=Gb&Yf=k$*b)Rw$)7=3}CJ_Abg<$TP znJj)~7VdsK3v~|9#t3~2G)=X@YxZ-nOl>X>h?|RK-8@{}I}c|)oR5PSFTkpX1?cB% ziDukFj4NA+hL;xM!7+<5Dt9sF9<##Y0oM32)f!`VEWzU{OVQ}bQcPaCjB#C-;oX4c zST}104y{;$Gu>C>+_9^0LhdS*JGvTE#cOaIzXpGAT8o=xZ7?C!2HO{|L&M+eaLl#! zICPRNc7L+P)Dw2NYrqEVzzyiQc_Ze?Y(kBPn^3Y~Gs|7S87(}v;NY=avHaau^l;pU z2AbQ^i^U|=tlEL2+jih`KYQFT-2s<=b3o%$JMo9XF1#q+h3a;@@l@Atd>gO_WnnK4 zDcXxePwzv;LHqF|zaP)r9YAr{0rbA(h=0rvGKSJYTzB#i?hqfw)d`1j)S4q$-f{%b z-Z+YVX2);`i?@j0e;mK7onUcvC$QA=B;&%J#3L6@q4u!<&@bgb?6Gq~%T6ae>USDl zC!fKSxo2?M{I!!My@GV^Rdl>|6*UX5;zJWJG&$^rx2PBXQ@)1QtFPg;``7Sg?KS+t z7;ml4-q`lm8>{sg+imN0ycKmF*Z;kaDsyh&qboOX#@8E|FzhB8@4JcT6K-N||4mf4 z@Bi}y2Qmr7AwGBe;pdi%x6@-1`gYo;ZVEq5zdbtqnT@-@e-XW;*H3ZKZvKXxG z4{^lfhiKRM5S^!m;?2`cUWKwawlLhVGz^V>!my|y44sFBqo#d0dOr@w?uKw&JM|IX z{qGUxr9Q$I`3RI<9D%)F5m=oc!P@;Xx@>%mlNcW^x9Tz4jfup3$4HzJABi3vk@yCp zu+2FN1sPGOtrCrjOQNyTI~rp@MdKd*C#bRE2?pPPg2R43!K)@uv2yoQ93A}>H#9!Q z|0c)a#p5yPlpKSbS)AL1S+Q8>5{o|Rj2ovEhmnio(BMiO9(f;!$r{h__sVCe=KBow zzCJ^NK|D6v#$#$=JUW%cp4qXfKElYm!8C*rxi ziMS~$5l7Z1V#&B9bUu)Tf~QG%sUZpLCL|+wFd0w8B;&otWQ;YFGTxvRZ^uZ{u~CW> z%y=wxM}EETAHsxR4}^d-*GmxA+sY3T$%dUM#1^6dR+Sf(GTj`F8fd)RtKD}NfEIc#||3F$H4J1u*5Usk&ICH;)sH!%I9OeX*#@S$s zaSA5&f?#q`4x!5ZAvE4Pgsn#kp>;~3#BBEtgwbU8FnU-O zMnTiVi81)8@B47-pB_%_Ln0_%D}r8{L=ZyQc6S76i6hBNH;^_15IMS<(qqURcscC;aJ%1ff z1ES*TmTUq=sU?u&l?0moHG#xA3AA8XA`RM{Na+TN^h}aS)9MoG`?Mq)ekh49SR~Q+ z$RtYWNuoT}WJ*7uOuR!f8Kx!E(g7)ysF6b2w^JzSR|<_ROrhN)Q|aE8R5CSS%sTH> zI#!iRvnHld#_lw_Zkk5Tera^1F^$}(|D&n{|48ZOKN=nKj|R5=ql($-jP_FJS= zZCE;8=t!sdxfwL>SO)F1%%Cgb8FZr~gXvBtsU6Lvme-kN7n(^k+A`_=tSst0m__O@ zvglG^7CmmvBE6~Eq_ZcRR7|p|gwG~}s%%nJ&Y^2tb0}0Vhpqd~p~;0gG;e4wO<2p= zb~kc~zU0!$v|MWLl}8uV@+js^9u2k4BaO&B+Si^(+B5SB`|_!`Nj?c|ZSb+r6e9jU#qqtT&tlwVm# z=7Z~LqPU)HkJMA!lX_bAvz|^R*3-?ldb*(8KmQ?-^)!T&scoQK20<}tBDk4nkiv& zGa0OJrcvjc$;!N$THTvzMM^WBV~m0OV_HaeMGI{`)U3zM=Abr8DQu&+ z3hlIJYC9#ZZKw68+R4GFopQgllU#T^^($?sHpLE#n$|%E>pDpJR0n-{(m^7p4%!yd zL3)K9WF^;0FD7=mwFFgLqj`w7&5npz`PzfeJ#z$pl~)fI%m4GMyEtAa3d zkAkq_Fyox)Cm770%nlQDY=`)!s;I5A%&yjm<0+{7XwaD_++SuGNLHi(1|TNs;V zhe%N0BNC(sM8dbDjNhmu64K9#goBqvLi{z6u;i9VFux}f(jJKzD^4V=ddgUi&qa(c zDH5()iUb`Sk+8{LBux4!5-J@>of{1a5M8dsb zk?Bosu7gq|3YpcF3>1|_lorHX{Ied?;W*C`V08IQ)khi%I$3fJTrXHujn4D6*Sgfr&k)xL}| z*nCJz|Dvd;uX;VF|gCi^EU3cr{%GMP0=QP{!cB9l8zZZSE!tuzGoqP!w!f9nZ14 z&SP~h8muThW7jZ+U5o2LMPUxRHoJa`LT4XEVGFzFSBi>4n1Z5EEvG0b$|?%~v9=k= z+DO_V60+Jvf=df)yC$X|tSw_}MZ)Q7kjb|i{~t&I7zob}x})`zvBBH?$CNI2uq`jPeVHy@F(_z%-Hcaboj>A<7!>>OW2 z!f>V=n?8sHT|1FrW-StIESS!|5DA8i8Kh$@64V~Ex;+#L9(P5;ftw=6MPvGNQ6zMq zVRbqw65@`Cgvke3IoeEbw~K^`%_5<2Ju6>BB-AWt93nNQ+l$ya=dt5wGF@f5@2e~l z_Kp$>B|}8Qsew#~dy53fi-eb53PM_|f-s1UA+WKuw?siWou?q2$xsjuu(7t1jk)1$ z?Bz1fsV%WF&crm!vk8`LjI%L(osDHTJq00$@lm_4v2(JqK9r65 zer)VFYAXnTnJuv0pdjo~R}gwJ8}W_ViWSUe{NHvgV>aXqvnBEa6ol=}w!C6CCWP6V zGG=pnnCVi$NsPt@xSB+UuL`Z*vktA%$6N_CNIP>+qU4Y zykK}$UWhuwjyuZi+#Y$x9Ama`E&DIyCTT8WHf)x>AetyI#Ey^`Ob5yfOGWZRTBn?F zra?}qDw7kA=gJAuDRRQp7&&Hx;btFr`^m*j6DcTw>hX zN6E5+K_t6p_{j=~f6EGL&a#5SJ6R$46}$f!$qFOx$qK(N%L=ND(d4>URv5d5-FMVw zg&0*?VbCmDVV$z9aGCLOO%-JY>kb*gx<*DYEszl|rOF6vqhtgnKX(6fml5td$p~X? zWdxV!GQwg#8R4g{j488Dxy2*J* zH)8>HQ~PKp-CdMh&_&rCUm?85c@9M9O>_ zDH)kaY48OpJ=T&^#sVn~A0j2S=1y9b)=6_Eoz(NTlYH)X((c2Zl+HNC8qA-0#r&F3 z=HKKpKPQ*@J0V6L^x|{}t=iB*X)`)#XP*xGQ{GNpk?l15dpoT(Z6~#J?KDEOow8=O zlX0JR8d=^(FCyBg>T4U#H*TXnr`qV$+BVuhrHxeOnGcrVO7;P*G~)wfEI(+arUR|C zh-;<2BU|Z2OAGBvZlT#8EmZ!Zg`Qtz*+VzAkkO15$`ZBEsKRDi7SK#<-!;?XyUo;h zPcwxrYNj)TnyJ33iH=4#(I2NKs@G>e=iw$A%QZ3Xb`#~*HwDf2r znW2%QhBs1meFL?|G*H>s2J$y(p!v^4)v6Iub#?wv(NeU zmRf(+QmRoc*&nH;jcT=&GpLsK zl{4Qwu!a=g){yG88rsZ!_D#%pSLvvxZsyB-e5)oc{c4KeTTR@8YI@eInu2qxsPIn} zRXneveog_Kc(O&Q&|SVl4$WpsUb8O2qw z=N|u3T5eHFTThpgCKw-Fsgzm^O6Z$c39T_Lp|C?Gq@q$nj}=PDFRhsJzZX*#V_@ZM zD<*z&F+FH0q8X7zB-j;^+NC10UsXh9gNtZfaUpTug|yP7kmep>?DDyV6xdxrXW|Q} z)uDhc>lRSlngSX*ynw|y^XWKy{?lR4fm`?I)8yItl-rp{k7M%azjt|Ld@+xTm*>&k zfq8T&CzozAPS&l5xpZ7BmsFK=slGag-uULw6tf(%JD5YAvvX*5XExo4%4YG+Y_d3$ zO?peSNn0_ShNfhZ;Fv{Qu4Pg9sw|qVlts6)GwIilOp3XaNy+OoDQs9KITU7)j(Y|T ze#H1$n=@$U=nS$bO{Wsibed$4P8+tS)84V^w7vWvE%N$DJqG{i&(?pmYwSPDE=!|r zf70luei}7wNu!CQ(+DN0w8A5mW58bJ?lSW&-|sUQ%J0oLN_v! z$<8U6eq2c=CnS@JVlwSbNTNaZN#t=ViB_s4kymFTjR;Gm<1Z7*W`81iPf27dmq1=V z31n%IK!-Lb(0{`d$Tc^fmVS$;@7EY}Ygs&P6~&W&Y#hC}jw7d|ab!I+j;=Sv5-66c zAIFmE=2-e~SS&rx{!4jIe`&_0zbv-Q*!|rxq!$)Ly5=#oT|0(GE5}f5aWq~06-}+z zqv^u3Xo``KrV-Imr1d(AF7Jz?`x979rZkeYS)69djY!HtBt4dkq#=h#^QvR_}nl(L?4p)WH zL-!Cexfw$G2%(cQA+#tom}*Rd$x17jW(*0YuW3Ov*glBP9u1zRb^ZkABS00~Wx^I`qyLnhl7-Hp-LY(|^+&+uyWt-*2j9 zaml;?JgCLmgO2U-AjxnK>Pc~DxhLFd_bzwR8RAYS5?MZsS8g)bfYhST}kt~ zD`jcA(!oBi6dmqD(~Vr{+8P)7A?HF#0l%pHA>({4`$f4OKPkZHC%w4&leR4WN$rgF zW$F5Z#$EhDRl?M&exnxcZ&Wzs8~MjOlPQbsuF-U+ zYDH&y63n{-5blgd_DebR@%-j#Sg}iPn34qL)`cQN)~2R9EUiy&N5A;9&<6jdGx>q>mJ2 z{*j(;{75SlK2o9I2fB0T19dNA`A%xyQ@Znens?$o>9TmZbJ{!l`|2GPZhA*$qIZ6C?^k0e2p0xr!#l z$n}(Y^(nod{*-oP8&k(?W3t#_OcT0|=)-R#8g$l(t}7c+bkY+VYVw4(t$0F@8V$+8 z*^vGmG9+QJA$f&ACdd1a>9NXV(k?Nev33TO!Z>333I;SmqE8+d^=auOeR56JqcLm_ z>F!EBvMGH;leax0E1!o{J>enEF?m2c>hIIhefMcs;60i@^B&c|yi0G}?$GR`cgQjP zHp$PwO&j0bqT5|J+5F&5dKP_yt}eVmD{QY*V~;MqJf%y+{$3-4Mb{|J_A2Yot0X>k zh1SPhrsWGS(^#8JRM>TqUZ1!~vm!6hk9ikpnB{po-F}W751*s(;IouG<19s+ouTgy zr%89uX__jWqQD8KXzddn@+?0|{k2Zg7LOBjd-w^~Psizb&M~^Kag5e~IZE<BPsKhm+_H~Wxb3Ba!F%c2jXhMI zrcFCIZF02VO}X8>Nb%S%8X3HkhELr|GR8Y7rEEJ{X>KR=pW7&Xz&1K`c`L=lYtf8_ zT6D!?3pqAzrr_P1Db8yXg^$=oKW=N%{q&7YS2t48+YNNLb3Jt(SWg#)brdyr9SwP~ zmNc{1(52;T=;6E7biYf3P9M^smA>jE8mG>D&{ecIYbBLnB^|e0LD3z{S>CDTbXu~E z-i};G>~%egOywv{l_PgcF_|{1(T*Kz)Z2Y2{Zv{?D=#gffEZO;Fk6*gm@KBO(nU0C z-6C4^c_AH^TS%vms?ZU?1?+yZfRyjfr=qlZWUD%lR#?oX#JV}8tu=?De$1x1eP)y1 zsaX^pJd;``%%o8dXV9EXmN!goI!(5kMv4tnDMM>2z5g+VcJ`ja@;yza7lD&#nDQjn zKNG1rbpmNEnm{%$##2(IGWD!irm>&L(QFwe2glM_pE1-kWDF%;9!<8@pULE$q%IshljBIB7^Dm(82WS@_*zMHHhq{4x-0; zN^~T1AiJ*&r0SOg$f2@7ZCKZz3O@Fu%bk6xc6VPo!QK;y>f48===7#*{=LX^R4*#m zRiweOBAP!#L@NyxXib(pEn6Z_GhfP4p9)#ZSuIOn-^ox^O%FfsQ#XHacNg#8Tgt~% z2cLeaopHw6_^-(={6*ttp83|iS5*VgeW>T1x7YEq3bp)NuWDZROcnopbS3{PrkvM% zSjHb%P|8m%DCUzaiukK*3;E8LeEzC)9-p)?m!H@#hd(G}@sBTN^47{3yiMFc-bgQv zKc!_mBSJKPY+f zzx_OTpNsCi%UC!5O|%Pt`R*^CoB5M(P5aI}8GYl|sXFuNgAG(&tJzIb8C2W3w8c!)e8RR+GYH{_hNoQ z>k?kNbusVftioTHozG9$KZg(Yn8_dLH=VCIF@?V(OysMFj^~eG9LvXsj^Y<8kKkY2 z9Lg8P{>Q6KSK@C!>d*V6_2C=l_u{8LRp58!$@1-2x+SY7woC3OG)mm`Yb2Q}<&v)a zLdnS2Ig+^==@PCXNuu#7R#iOO+_WXfPq$FLN$)|jC$;($J5`A?;NqNBoNs5N9Bv%8jnqprr^m~6!cB>LMt?@r@k@Zk+I!15`xudvngR$JT zY2!JCsEOSDi&MCaLDM;9&zanYJ#)A{9rL(N?^L)cs}^$w1xq-?Ct|MejAh*Qs1;n` z1$C}|;2KWBeI3`aVc3KhOD2yu|$ryuu~0_bHuaZ*qqmZgaJ(?s13n9&jlu^|-Sy^ts9$ z1Ma{)Lr(JG2`Bn%#H|?nl+!tH!rkUgxjTKHbEo&3aT;IExxOtgIKMToxWg8&xypPC z?&Jb1F7n|UZuDPkZqFE7?$Oz|oQ1a?_geIhyT9{2x5MEBH@NmA=ez6^x6{;-OG^99 zEuZ>@dwuOIm*DTrb@czv4cPyK>+|&|SKIiD^IPT0-7<6IMrOEkj?;c~!*xA5UH?Cv zcRz2gc#jX);V9wSYI!aP0{6q%mphi^$8{?QaF5Rgay5T~I1Skl?*8Ub?wxfQ=Ts2R zS(&fbpVrUXZGVFUhhT6<$T;Zq!^R2|Q4T$;$8(NE$oL??6F!&14aN7A@-=YQO_ zhIFnDncR*iS)6TbHWxA?mrFXD$Ay2(=iWCIaQjfiwLLE8?!}aF`9sUNS%=CwZKn!O zr@E5cqgu_)c~HX@h19ZTuJv5U&IWF;T_a~((8STq7S8`lE9d0h#$D`g=Z3HC14=!{OOD90x2%plu4Sf9`ZdL{G=%b2A{{XC@whor&7Dv#_pc7EBFh zLo#6wlKti&^Wa?k?U;)nHuG>}$$ZR8o{y-j3$R;B1u;KWFi&$K?v*aYZ^K1Mowyi9 zev6THKotRPsxY@&g7phop6=MCxP4v?^}WQ{`B{vQt2q42;uwz!5Di;~PPb*q+`Js0 z%a&uW;R-a5Uy1v)64lzPu%TfUo|~ydGD8FL!AuUX2H(CKW|nKPasFD=M6SjClk3pb zy$-u<*W=xy4T$@@0p+JRqDod1|LipJQ*{&0#%+Sq+0C$*+k(ONTX02H3*NC>C_cRv zQkiY&u-%6Ih1=m8y&XCycR;>t2cBB(MDyHT&mlf@IE+Clhw`$Zb!ZYX$JA;G+ zXYsu5EapBrhu@>lL)qm#E@@nVW9kL?p1TO4`y%6yUBcOEmoc2b4CgIZFh2hZ?q0tN zzSlM6yuF6fxw=RW(1p{^>)2m%9Zk1y;A+2{NP2e@BNyC)M$j#6-NjgLCATr`_8t7~ za~J3A?xK9oJ#6;72aB!u;hT4#>A?fWxqAq6i-%Y<i`AHijk9-^+5ncv4WRYi03G!PuogeYRQ<y?AA7%m)s`2y`}zg6(q3T5*q31Mzu~;oOZ1e#gu%R5 zXu0+Zd%a)bN9QY4uY8U1hOeuQ&*cvCJtg&=}4cfQb;QMPEXr|cU z-w0c1@3%#;y)Be;ZErcyJHiqnH1Ch-4TKjVJTB&#Z?~soA0i8WR zAXxrD597zpSNe&~n}0&v# zx*%b)E1HhDLc!h@GXGprKEw@vTiu}d%nkFx-4H3~j%_R48Q;qtQ~tQ)N}W5t&Gta- zDG%g2cpxjw17Rb6!+yta95(xn0TI9PRn8OhmV4skEl>2gdqT6y6Z+Hs;PcTx@Ob+N zzmosJa-bJZZ}7rY124pr7fv;Mp=_Qvw9k0M)xjIh8Qz#S)Ca4#_+XQf4_5m7V0@bo zDi=ub>8u26K1q<2A;IP$Jlr?&kTc}5Lf~<#iN~Eegj**G$LtA9k_j#S*gDPC0>t+O zkcWVo6$11p`XY3%FPdKXLMhxAL%V&Upz4Rb^M3g9$q#$e{m`uBkNfNVQG4GXn}7Sm zs@xwD;{#B-I{DcSze8}lG=wq5LJ_ew6!DKk5#$|;_m!bI zIX(=-c80;tC=5&ZFgR6*p=UxkR__YORpW4&@Zoq?9gf=*BA~T10!l^^kod6e$_V@& z7YWsEk$7qli4f07RFp)bb7T~nHKQ1pFA85>qHs7b3NnME@oaT8WNt*`$d_n*O^Zf) z?-(?TW6*gn1{HQO2#$%tldc%3%=?S5!+){%#b3Di|AkE5Uo4vti(}hjaak`Gr`=+) zF)tQF2E{S{T^w{Sv$e$U<8UxG4u87h&^9L?Q`nkg@w0fS@$nd69*;V<9{Kya1Z=sH zfDFe3Y-MYeU1So`JTDQ`4kcpMvqWe}5;3nd5%R;55U7!a(^rzv`Ys8Vqmz)(mV`0W zlG*hqXm}VMJcd5n!)_iLyBV z6^xyCG7rV3dFbPwhhb@X=-rja7;5=&+K`W}m-3Nsk&pe7e0J~1hnzwI7S1fdMy&#@ z*Db(Yn*wwS1#rtRz-Gll#LX%Mx3v&vx`ha{E@U%LY<+%iA#xdO&ue-Su5T*B=*va; z@|t~m72!sD5qzXY$RA&f2907==oBOJX)#{>D8{nbVkFcRvvFMlSJe`3|9aV_AT!raoRXF>-3a`Vf;80WrYuRe(Dpx}l)yUaXjf>Z-QSh=FD}Gf&Ke8I% zimTxxTZ3QYYG5L+!KU3cXuMJb{pU4k`C5bR!8LfDQ^Wkl8iWt61S2LeP4$P?>ekXsKfn=I=q*! z$Jep-uu`qZS*?0ZIbDyCNA=LOsfV{)J^Dn}Lp{G9N81^b;=cxH&1`_OdIOU8HsH#Y z1~eEqVBd!ZeD!KT#@_}s6*Zu-vjP7YU3(6}Ol@u)7V0I&F|%Z^J%Aw$Gvs!Jpa?@7{)>fHu61Yr~$LHndl@LBF#NHGSHlKC&IR zr?tasF=Lr%wBymXc5FV}j_&jAcyp&6LyX&T!?GQMLp#b{+R;JnXozS>Y)U&`7PMnY zZ99TG+p)NJ2TX@{AZ$VhO6PQ-TCD@=YdY|KTL+FD>_F$~4&2l2K;FX+%r@=70jmyN z`PhMTKRTf4)d8iz4){cOV0~%_guD(6tL(te<__HI>409JPFxz&3H5QEXrI;z>jj+{ z#dSh|bthsscS1(H6C;jvV#t|JG+*fi-RZ<>gHE)Wvg0f|5oy zbfPP`6W)yXvOB30=^35SDCoq?@=k=*bt0>k{np(HK_tcF{!%O$B1OKrMg3#I5KmZEiq6o1!9VXP^|^lei7*e%7d15%tkDuuO<6mI9FaJekStLswiyCa3- zLn&+xq!?r@#f4{V-wP>{Eu_e^mLlFxiZ36eIOZsY>{ltCe3zp3mlP}9rMTuP#dB{d zOnE6T`bwc1AVp!26gNVps1BE6W0VxnVx;hhmBKfkoi|Ym!(=H|rb>~U#_E$UMQnx? z%2`sj9$Sj@IZ~XV`t4=)9LnnZht+!- ztG{y)<7xU!F^^r>Ms|Ig>^kSO>+Nup;@khPpS6R}7j`a3DGspqdBWPs!kV=?Yqz7U z{ghcd1{$&B45aXWAVpu+&KlRHIKtZf*g1Ai)(^v3e}wO6zp?(w+{((;WPQu}&6V|E zfEqiF^``~v*PX0?JI1pzMoAe%T#8NoSvevpzA}CI#q`3O>BkwSC*zpD_%OXuWBT)s z=}{Ter;$vr<}&@7&h)Go)3+F=cej}S^?KHc`%E8GnO+XR+6gc{UCZ=UmFaEYEu9Eu zdaT3rxq|8S?&+OyVtSr2gy}NV`(~#9nQR<J{wnTe4L5tKqMP4O5Ppdes*B9 zLkBe8bg*_{=s4y>8i0hLJ|P#E3;-#%;%cC{m? zt{v-(*jP_%M^schihSEq=+=%1$97n}X~$}lcBJ2H$F585_;a)!(jD!Xv9=xD(sp(q zZ->&Db|f?BK_R@~Xu ziq)%I(Wuf2lL@U5DYfEsR|{M!TacCBg1Yb)l>cc#q+<)rU$uaH)Pm>>Em*z31s~V9 zplC7U$xdp)IHeX0kuqCf)(p3lX6y}WMu|%^_S-eX)3_N;x{N)0v>DSjH)E7qGa4qd z|0y+NcV`pwOPa7Fu?gRNn^5Z9gnpJy81|?Misu;Dc2^T@S2khUtR{pFZNics#$_sR zWO1fORQfie@oOUrUp2z#UL&sSG-AZoMto3fgwmu&ob1<#k4+5-%5Fe(SOa+12E4Rs zz-Ijh)Shj??Hvs$Rrt-L1#IV(?dlM$Ux#gs`xK&82W8bd934}Kr?Pc;Q(BAXe`|5( zcP-}F)*|&`El!=RMb5@rEN8xf0rL@Dn6D7Td%d21?Qw71b3c;_d;C`bD zMtiHEfhv@YtHM>8Dijt}GFwrJ2VX1UWKs#w^Og9%r4mo)S7OV5mFQ@wfH~tK_wlO0 z1?viU-L63Cz6!{I$=C{%Nz37#UCv?!<>>#R9Iqdhqvr_YE3YcY%L(Q1lqp9*UKxG| zl)?OC8Mf(_q2ovyp06x};`lP0?ke1cfR-Z6PAYa6`|#95j@uw;lSh~RP+?$SXLnddhPjQ30mr=R-}%$71VzjJ%eQ;?4PZJDvR|mk+4(Bd1gb!EE^wmveB|U8%u|0<7iD5u7xqa)%z^$xS56VT3JY)nuQx(ndnZ= z#O0rvh5X_yT^|pZk@1*N5y#?raR_-Hhn7Qe7&1Q& zqh;dIFCiAC4zX~#7KR34fDF zY}y-%;AxSV+8hDh;0XMD6@mC85y+bxfy~Zu1V)CldvQ3n>4c+gVK|=4gri?<7;e~w zA^J=h1}q5!Cm)8L@uArBE)?s}G3M6NP?XDu!ahC(+`ABjoMoR&LRic>1m&^8m}D1> z^{0cem$A2Y^|1IybP)ct4no55AUvEGgy9{5cpDmszOMpt`d}bjr!y8;LjV-~0`Q+n z0Q&3-K#g($0$7aYfu}#FKk|p~Mt`gv%Gm!oek>1*AGR_c*W=}WaO~v=*92cU+xfy= z#}`NE`$D;0KxB}Bqt68t?-sCoynx?jgf4f&qI<;HY=qMT2q#l{Xno)@4RO@eOO)*A6!-N!HF1eXjpn<;6ZOhO!mg*N-xO$ z_JZMEFEproL934!tm9ek1Z$Q@;qV{Gv3QqkwI`~7dm`+vC(P76q0!qDMX@XggVk@; zANY*}lYYaq%mW=R9+-E-16$#N!?GSY5bln3X6_iz_+7;#-C>*K27Goy^jSAHFW`nh zO|DSlU9snpE6moo!o80xf@56}V&MXhy^Q5G&IS7leqr#}Uyz*tg{=#IA*tyn)=GZD z>A_Dlsk7Li;!hlk`hi>KKk#VB58NF70|zs{V*!gTHn14u=c(VZrkuqce}2Q(D=fL( zqHh@9>Wm}2Gprvt!*7){lI5L|9`+S6CST#YnZ+@czCt~b@x3g+zqwO*3nLUPYvWI*>d*nyi!Nt@L7c}iKy00C4 zBHv=Y$ysb<7w(E$XmX`n;n4&$v}8TUVKyHi+5H@fgP&tf>@(aj zeFp1w&+t?38Jo^G#gDtDc(cS5x($pG=3)Z*b0+YbYJvm#j1^}86c6@3MaPh*Y|hCT zQKrTix6T+RWZ680V1)2nMkrcngr@2zXmx(Vcx_LRto#J7>4vy(X^3T84N=?25LO|N zG5679_^>&WB~1n_25EqPXAN+CvH^Z(>!aLSAES2YV_AQF>=E`H zd<6OUhj_F4AqIIrz?E4K;PdW2N(S9W=i_^5ZMln#vv=`1>kf8ry@Tq&+qkg!Hj=*F z!o*Rxu;td?R4yUK;UcaLzKB+X3pmwy9>R(9kS3kOlr`s|>UoyUvz*0X%QGwndiF!S3{NJbpRBBLX) zX*!IO}&4Kl>4qFF9 zm325|zZR2vtwqY!HMpL&8nWwGsGN`K&ucCvJ#Q=RwBS=1wPBI zz>N#bp_;l31uK`~!8bs02yp*C$Lxd{i?@n#!$%FDC#oUPbScZ@wFF@Ym%uet6-M(^ zvB`QddU_V&)0stBl)&a`#S1a{lM3|vsv!2-0`$$C57pK4vF*n^>>n}@JMYZ}3g=+R zra8#)n2lGXXG6_k7UIfhV)yo$i1wKQl?gLoWIP=)HPaxcJqH%&m`{t4I;I3AJH$76}PGRqA$4u$*2VRGPD_G~y7x6H=i zS>tHD+BX`;{-bbZ>L_SF8;N1{Baoy$0tUixOqw(te~gELs~!sX9YZnNX9#YL8-gH% z!H_HakMZdK!(NX;xIAJIZr@kJ_56W2v2GyN{1||dg9ae?dVkoa_rv-X{ZRU;FYfm0 z3z-Xja5ug;N*DLW2HRe+?@~nJF-0hciLhms2$#(jVALRwm)i0$XYU5+Da+xMfh?OF zmBBzw8GJg>!zoSf=1x^exi9XWTDoI@LmIUq^AJ5(q ziQ@*Yj^)&Q{pF5FM{`$RL~)mPMsoW`L~x5U!?>>Zp`7RO5bnUVV6MJAkh}RSfUCIT z&uK08;~W^rte7Wmhh}CMyGOhPFN@9j?cjx<26gsNCaj zdfevX7v1DW{L$q$FS*KH@xH|At6ks>Bxkv++-Ytbo#e(XJI-YaM>vz^hq&o}`?)_W z_Hv8;cXOXt?&K5$wsHGbX>soZHgPGdHgeqo>$uVCYq*(#>fCJgmE6R@Wn5o%jw=mV z%1KtKa*qNQa^h7BxN`rwocYSx+)V!&9KT{3x5{ra=ev9&W5_9UcFV?cT{Mc*X74L~ z<%e>0;=!DXM2S1EHh_EQ-It48(wn_sBjWn2%5zgZWw?u{q++9!tzxU=4Px7))nd!T zWn!a)h2qQmbHv;Bri*84CyS*!`>B608rFY&E)?&9fdeu`7n zzl!x&eiF}K{!X0C*@z#gS%{}DF&D=!G7;ZaF%+*q{80R9-*vIv?sMX^+m4FUHff8s z)^8TaYG{b}u22)#i06r4sZJ4VsEiiN&K)F9n4u^>zOhYhy?T+_4spEN6BR+NV5YO$ z#YvWG)5hqjji0esZSUv>YSR9_)yB#MEZrP?WNG#7hf5O12YU57tmi#MH{RQL^&p@2 z&1yawyN~(|nQ!P*z0k(z_L84I9^wEW+hxfloaNdNoM9$OV(vHNVwEii9(`Ol2{_cKR+qYs}zWM|0BKmrP+OX z+x-LhqBJFb4l6cLd ze)(VELHWSMBeI*@F*$YcNjdZBX*odsoP62%g5163W!YTkiv0e^HF?;XoAR?SI`ZT3 zy7GEGvFJlEbH% z$^oa%WGgpw`A~(0tfBE(j@|Y|-fC$j=cZcA^V-{8^_`-r`p!JBZlFX?<(uk~MX5*6n)PUC|&PsDCdv*7zvvtp6mxGx#hI z;TL&X!&iBo#&>z<`X6#DgP*d$;+MRz?zimM?>|{>&0ks4`zJeZZAAOejcD|sF%J)E z!b!nR_z zXy-P9;n0S==e1?`{I(1_(~fIfwP*H=_QJ=ngW!U7;GcsXiN76r)S?p&MvHH^BRbP) zYZqSl*oDgtyRvitZjAQp#zV{1`Qx2BFKTz^yAC}#<7E%(&*(`xy(fzg_u_}Yz4+d| zHw#Dhp?_!}-q_felk562`&K_5?B1WH?)|xP-T*q~3}DT14fbg=kkaFUTr_$RXN3*o zppAq1wPrAVZw}$ku0#3NWhk|04r6uNFfKYcoW{R~GxFgGmJb}sPyQoWw{#TKibv7@ z>}c+4F@`Oz$METxvFsZ*mUq{WqpETo2VEV{HSGnD&29ouPoBu#F%yZclh~wwlDN)f zuI@aAIgV4fbeiC@#ZBe=ZPTdHAimMpnNF?Fn$&dEr215eMKKbMw}7K+LGNobsL_5V zuRa&C$H&iNL)a{;t((nOWwZJ9{2V4UpUZoeb2(|)JVpo15@C2-w!X~xStES z=I%mn@41MpUoGMoO)Y+o)uR38#YEL&zP+@BL)4b?vgK0x4q3*WH_KQ$e>rp0m(zdG z3SRrLf+KIPWN5opoNc>`FGsHC*TB^rt+j^Bvet0TzO|h5aV@*wT*s`o>v`3BJzEXm zz#D!WSTJuR2c&M~vK^bavt|>wT-r>j*%mf6*+SpGTe;MAD`Tf_pBZs+~BbXH>m7%lT#nxmHvO++%diJr=9oXQkGCstoQkF6KTR)E@AJ)&mYRc)+yi z2Rz=wh~F0)@$79Q7DpOUv)M!5o-g=sx(`_w_K+%=u$X2R!0V z;dj+a@raJ!A937N6S|%^VK-kBp89A)#W+)bI$_E_?xvhlW6GJs%{b+t8T&e#@k@yr z+25RJc9^rfjXB+O%{gA(f{yDfsAgipt;rU&Z6la)i!E7y+mio{JN|^dUx~E*34du=an(*MnhQo;OtuwkI$QJiN+I{GSrcu|*d{hK zpJl^US8Vvx&xWQSZP;^+EsYP`@{5BlwUoBJ+v_P68=f-v(Nn>De9Dp*&zLax86B@Z zwUvR|z7hDtdf`|US;4w`*?l@=1Ssr$5 zD}3|f2H5l5R(rNJx2IW>J=N44cyx{fWo-xk^l{*jItR`k;z+HXj-2_}QS?bieroAN z@3~Igam9&0e4GTI%Zc9xz2uhdFX?LjlGTYX*{!)V$IW!+)CAbB<<2bX<3j88 z!sqaT3kxG$xaYSEGbg^{xbnv$SN^*0%IY`5cd^!$#sl5BXp0+b zjNN!O+KoT|xN-j^cfLL1&c-j?IVsznYukEo=R6O=@bcgcPY<>)^I&pMPhMH&$u74& z`9$_)n-88mI>d|qTfNv|?8PooUL5kvOYjI^v%~(^tbFpCZb`4Xy@@w}PW7hVF_Av^ z=Jrf)y0!FS#S9;|KjXtePD1j0*s+~2Yv%aU>%1@bxcKs4fiLfMc*92X-*Df>H^Sfi z4eJZvuxm#@4x2CJq8~fI@?%YbA3fR&2HjkL{y67PotOUnoa@iEZ36ggW&pEJ1@MPm z0M#-B*tkU?tEL4~J`%{wHh~~xJZ6pXssLQ-n?mgi@_rPYbIeD(A#os!bLX>Y2F6A6&zES991z3#%VN0bVhktQ3D#X=3=_V^ z@RCL>+bxf!(ZyJPe-X>&39-EQHI}~p;~2Fhj^ToN_v&dJwPWIh&WK}PuXr9_5Kq;K zc+P(u&qty0jINGnW#g;7p}p;;AKa$M{4hZcgNoTZugUDv{=C ziFExbL?el2OOkl-OcDoKB{42EiCe0YnBF0oQ>P_UcV{vKZzqfKIhpSS8!z)$GQBlY zcyVzGhn`AdutkdCSEkVYT?!kwO6BZvsXVkHm6xxk@|;~NH^roKaD6KCJE!r=^fWfz znZ^rxX-suVW4Giq&i|aotv%AYb!Ivj>`kY-K|0gj(s?O0oz1_d^IFdg7S7Dz(7hSl zd?$nFTr+q%IfDm2WpIXiCVy*Y(s4&7r`*b#6D+1#y_O^+klEW4l0rk>esohp9+m@T+!IkcFPBe;k;%($Gx zRn|H5Weyt^<#6iX9Io%5%WZRVxol4^2kGXr)IOIFB68WUESFE3<%zuWxM*P>uN=su z3TWQBkj~=^>9Dep2FDAz?p`6)T*Q7fBe-{Ze2nu>odRh;gv;7R-ddY16h#1h&pFX8BeC3L)5!sb>bT<%lCYY8PZ zD=VSte;yl?W3%2)5$JNzAI=L>Gcr+1vux|HezOPQlt zN}V;O>~y4*cXdix^|+Mdyh^zDL1w$LrafeN0`uHZ?d3U0Kk;1ItG7RFXkyRd?P-&gQx z(@Mb!uH=sqmFzXMQur`evdg|o)?BEhi(w^K*ixXX>MH)Xr;3-(RWVn;iW-(xTiYUv+V%R@=E{Ff_^DXV4a`&y3sUCX^K>Ugb_kUn+XH>{2mCf2chMjdsu z>eythV5)4dqkOQAA5Yh@-PJmFx?RWL59^rtq>lRbbsXqkM`yud=@L@M1F>~{mR84L z!DWmrt)q8c9dCcFBV%}5FBOU6Q)4iUf2h{WM@Os`GUr)2?_0*eF&n=7VslK{i zIHcBd!LEAx9js@&lY;Abp`NF&)$^KOJx|`Nr%Dx4L?6{#egj-|A`dyPk%P8hD_21BbV6U`G1} z?(fpTg6<8J`ZVyyfCjn_Zs6PD4SX}Yfo9_yxMgw!n@?}x6Ev{%>;|5l*FeR>239O? z5Ip4ueqGtX>@^L1wq7u7HZ`zhO9OXoZ(zvI2CD68;Iw@WTyda*OAa+~^pOUBJK8|! z;|-j3Qt)q1HL(Ag1|Ajs8=G?t^gZ7|p9>9Qd}-jmOAYLHxq+TS#%edvTu6zKZdV#O z?*FB`NXx}mc$75qX7+Jl#d!*Tgj@iEE{bYpxg94iRPObWD^> zli)Uk~X+7897tfo1Jr7*3=i-a?>~yN0;fKU?wp%=do9j7ajcETR;(41}&kRiw zwS7W8IYRuVQO}t@>zUWFp4(d1GwNR*yM3?Y@`gGdEwAIL!a8otsN)IODoF=3E_{9}#_Fr#N?g9ltLT{b_a`qbJv~M0&!AYG}%gPD0Y&N8pt$K)aTZ?hvzZ&X%sG&w_4PRx|ut#hSPs%lPcdudU zvlwV|3P7FKi46v25NT+OFlt2wlp7&kvx@x!|+ zj!UoN#;__LcwNP9&#S2Uu!?`LRnhfW6=!X&qGE9s`%J6i!68+A(xr+%jfK3gq)kyJ zk0n%cprVptFDtp&ypsO6D%ti_C6{ckE3Z}HL;HFEY#U=v>Zq|CQ0MQs}+3GJa+me>#=1!nlmoF5~5WW$d$} zjIXAavEP6)UTsyz&`+hTFDPY`s8as(5PV+CQhMJk<-x;(^(6GLq0qtI?ZHTMFpdRV}=rwiz_rhs!M6)>=C0egNE zOy-?Z9*dN@bO_1i+UL2fy^+fkJ9C*gGnZrf=JNQT9GVs6&{59ebE_QciMj1+F~?P# znnRbaIh^=8n@(xjZ1OsrOCDxZ`*=3ZmS)p(csBJ~WOHj-7JG$fG4gp9H(k$S=GH7? zdKMpa%VNx@OxC7k@~3+yKi*F~%DqcLF@qBeIo(W6i znWquY^dE8bONpcY%Q()u9>>ykaXdRRj`fY=xGpD_P9Cu=(Tiovt+DJqK9)UO#Ii|Y z470ssXlW3`xjSN*Gckr+TE;M{D4P9zqq)a0nvZrw({*ArU#msau28H;y`uz2D~i9i zM$u|q6bChnqIGU0|F}nT$*oB0ZiuAwh)4$f7eU{&2(diObC6gLZ~<<*6K4ugnc4}8%l!N);E}5`oWyNF_;_{%t1eccqu-Jfi^*` zI3C1*GlST?LlA!`-!kX*TiV}x%dKnQ^54L>eDs-YA4y&|CsX#5!Ys}C&BY)Y1@Nq3aMe2cbB(Z*I0}17c?W-XDfZ)7cRxXd8{n$ZW@VH9f z(AN76wQjzlYWW);==FwqmA=&U^QD2VFC$j@vaXLWo7VVHEx?CA^?aDO+J`Uu3O-kj zH(LjI^M#%_2e0;~MIUc|t$NLQey@4`mf&)&c+H@muNhwMML%yZT3q+y{v}=<&`mJ9 zRG!@D?#Y@U#lVR;W**V{XYn(iIV*B^3c_lfR|{o}?% zF>d^7;>I)E-B>WxP1qJ(d6lm8zU?ZwORlWyDQsY+ubAiYiUF5iQGf0$&S~?CwV5u| zf9AqAhh3;U!G)E-oCTxbnKz7_`Ff*>-_YNgs;ZYP_I}C4D=+CX|0U10eaSIdPRxGl z#8U@_y>6@%kAHV$dWa*389MUlYDYfp;mA;x1Jhg_n10%U;nN*x*T{jVW9>Qikv$7G z+4FLLdo~kxLmf{$)?TpVqM3Gl)Xa|Y2`~8B^aa~)eZj68BCUGPFP_htc;PwCW<2N8 zrqB5??imdpJ!AV#$`8EZK)xyFa%45pK)>3~l*&r7iQi+6vue z!wWBL#Cp|+>7#6T(-USN zeL`dq7KJJcTYVS=#V8e4M5dP{oru;lwf3u@R|aQ*=cZW>|1 z?e*qd<897q7tGmS(_Gk=&4iuDjFP??v$V{(r;Qnv$);jmZ%U61ru?smDQ6d&@a%IF zKHh6W_aP?qt$IW^w@0)%`G}_{JmQQm#{A`P%vajRTsp&;g?}G%ci2N_={*#Tx`#Ax z`H;o&M(kx|M6FduJk-gEmogskiiL=YvgrXg^nAcE1%e4?d!If#?{oKn`)u^?9!(tX zvD<-ryg&3FKUd!6@>h5HykGe~>dP9!zG~}#PhFmyaq#q49!pDGW=M0!L$$(a0 z?r^1_u<2j8L*uD;*ysCgS_j-_+sn6kdirff|IlX#g+7;Q>r-1(pVmM1=&8`7pSDOf z^~Am|wH3PJe_eLe)Mf0CTRaer|58B^-b0sx+(Z# zH|VnC7Pw}A6Njm*L!NiLvSn%;UGmampZ{;yw-Fu8Dc*g4>*N!;IJ`M+%(&qq=S?=e@4*R+L?mh-K*~ed3_j1VBJ(NVu zAkE6%)Y!e7UvhWRYt1fhh~LTbc{{m_I~YD`2RpiN=i%N(Mn>~YTm(E~z5V&{(=brV^z zb0YhvP2k%36L{WlJoSf-r=Ha~o^3OZtFMn`pZ8;!yL$}v(nqu3g3)yG8%2#_qj>Mh zNS3x5$x&BFa9`bU-rF&pcFDu|YW6U`cs-N`8bi6$bO?tw9m1k>gL%7b5c_TzM5m~M z>^F5F4PI)nL|ucU4F>Sg_x?0J)Sq5C{ebgO|JZ5PiNo2Yy!P-o5HHOY27eIo+7x)s^Y}x(aSx7yAF{OtWL1 zxi`NP2QTTwoPdtJKC~m%EjrMyX$ST@+n&a%cKo=q9kqhm(s)!`##^-!agy4w*TvQx zTh@wG*0$of(3b2wwk7}Cs4=~j8m%t1;QI3BY`U&FokE)tW1BJ3rYYyOYD(XWO+?It z#yqp8F@u8}@!zOMJT&p2EVunDf35f<_YC_j54HIv_rCB`{C-K13Rdi0$CMl~coGWG$;` z+2d4{+(g8%Ti7Q;zVs9t(E+)Mta;VF0i?k=k*y2)+qT;-1!UdeGwU1YQV z&hn}+PV%2vN7?qNgFN=Ez3j8dP9D+wg>3r%ncNWZRG#_7R=#=MMt(ELS}yErC4aAa zEVl@$I&&OSpv$C}1?^iF$Y6CCG&0^2W z4JS^^(Opi;4;07bIlGR?rOgh>=Uw;9Usmmv_kZ0bM_BKWJI~oBuP)y#-@La`y{TfF(dR%@ z7gb=#$fQ7Dr5t$uw{zg>?iPVYlXL?;pYIHOo;yA8Q>QM0n;z!}*t9VYxZGGRptZTq z6obPZe0gzOiZvmQ8UKAP*Q8UD>v zGu_QsGi-OD=EH75n$zOLG=pzMYidkN(A-s-qN#0@sd;i$p61M^#hMlV?=%k|t<((f zTc`Oo^@C<3{jZwurvB2jss5|kExEC@cvv&(fKChPcwS3s=fpOW=KXfkztRqp$BfR> zLW{0abiKMXZc$I^*0bIczx9<0R}PRWUJjIU{tlMBHV%_cdXA8~v=}Wt-!WF|_7~-7=;hMvKC7fL zXV*x7W7bLDeK$&4=Qc~hv0EkeemkVq=XOa)WA{i0`tFzJo;@i27kyZ=>U~V=cKU>L zI`Wj{*5j-cdHlQ-6narI>#8j+K73Uw;C1PxnvS$$!Y!$EtFClNUr);S(3g;NTe{cC zK#Cb*D1BagS88+Zp48dtzSJW5fmHd;Nb>J*ES+8aNa}sYMDn&Wl_rOqNe(sU(!b7@ zlK47Xy0-6$^z^=!`Z;2ydyZ+DGcs@r^Wd zs-L8_-CvS)10;2qKq)^-AsK#_rG7o%O186tq$c}=r8Rd$Bty?o$vGoT^7s)h+4hZ; z&d!UH#vO{5GVjMoyI#ji>6vlT=%4Y@iN1-F#oQ#x;XtzV_-=}H)+1G#l$ItHd=Y%L z9+^@BvZTqovZZsnInraNT*)prPkL0FFYRw%DD|CCB#B^r(yWV0>E#oZ^hqv}1{S@O zru{3G#%q*|Z-y(Rl>L>``8!q8f6mp?k+>R3QBy0`wW*hcO<4MG#d|6LFy& zX^D!Kt#I*iD|{Q$8VBCAM&!IU=$zIDt9G@;wfeSraF;V|t;D+zV$H^+rs3Z?xXk2U2YxY`)YN`6ZqfL({>S{%|l>_8fvWjzdJ8`Jw114@Jd-VX#dZ zhFM#OBe85av`&o>{-`6+Sbrquv>%0IPews+;Aq@&AB~Gs$6!t981z^=76}<+adgKx ze5n|Rqo>Cs@#lE-)SDoZak@`RR!HGaY&Qn#gG@A;esQNgrUPBk*<94BYXZfhL%V!{IZbSR&%0r_Mt6 z&9gC7IUD^B&OxL4IY>M=7rMXZLgUsvxT?)Z--q*YrRxHOSTDf)0Slq#yb!I%EW%fx zMTncO1%qHMj9su8L2-*Qb=49)$rLf$w=9Laaw#V5Uxw+`%P{oha{T$U9K5sw`~IxJ zXPuQe)_j%lsal0@?N?)w>1ym&UxPi?Yp|@}TJ*JFi<}|raQW3bG#RsAa81@DY0?I? z3)q0E;%n(aO4_WEsjmc0$nH*d$C z{Owr3eFs_;ofuxS6DE6ip`>&ddK}n|DHXe+d1wy?Rqes&!+YUcy;t}H?n6S& zKEbfr5B=KxkdGZecI^S=96N}R+Ji7Ub_jE747~?G_$9xrH@Zx6rb)F1%Oj3V#k=WX0%WZ8JTD%+W)?>v}k) z(8KGmdMKTs54Dr}=;Nx7fr9_mbKq?>*?Ajo)dwx`XyB?!evf4iI?<^1nM6 z1p_>|XnM)m<#VcNg8F?jrf0;KE7w(B;BC zJoCDTUN!e{XYhTL?!1rjR`+o-<34QL2^O5z1H|2WfLK02;MWIuJkAJ*1Q%|&gOT7C z8bMqAAzH6~i2HXR;!pTP?D+FgaCnUI;iNG%T#PZl#2D*)J;KIykD&G75k^Ek!ms}x zfm2Oz{FDjWxtQRo$^`v-nhMU0DH`sYVrIB0uKhBF+e9PM#$#K`e=^RBP{T1w*}5Wu|RQ(1*WQ5;>IjX_+PL@p}X*_E49RrUXM|?<}p$Y zAHyN!F%Eot4D~Tj5U}qF7Fj<*RO%DKeX_!%nN}z`X9aavE6h<@VT-yo_AIx?CS7aH z475h425V#vvVp-C8w@kHK|rJprv9>l!#G>~+i#1d*0#_~v4vYR;XA1L6fq~Cf(}pd zH1{b^wtI%L^Mrrl#b?lVdxmDJXSm+=Im#D52d+Pdj`wr;mOn>U&lf0P@dBl{ULeKq zh3G#oaIUW%My|0#ioPB82HK&l)(-3Y+rwwAJ^tRd$8?1~cGubCVt)r*UF(1ow;iw| z&;h+`9gx%45w})5iZRd;&;1YLpvZlJ=-ys*MTe+ZDybId?c0t{!S5Rz! zg>y!)&@1>Ayc%9%Vt-fIt#ZZRo32>=+7&ld!cVlLoA8%*gWqX4*u8KQ{zh(?+erAB zj&p~_E_VzvcE{6TcQkKs$JV|cuwCwfgsUE?boIddJP(w&^hE45Pdq;8iFFp9_!Hp? z(@&o0rs0L#tGrNh-3ue#y|6pq3wkYI!*uFvJly{pmrP${dFX4jZ+MNM-rm@}#2c!M z-ojVf8-8itX!6e+Ge-Mh?-n0ixFf{Z2fI~1nBLA8|7rTd^Pn%5nfW3sM5J}T@aXXd zzZbm0)H83eR$>5rZN{IP9h02XWrKu?_jyM^Dg;amKD{T5U5-eObZAnYFzgzamBFh@HG9qodU5F3Ou zAA-=NM=);A4o1bnU`P*xaoH~z_JzUlZyEysks+{O6N1Z^L!kLQ1Qk&sxKS5^#$7^j zN;4F(yF$_SPAK3WiVf+Z*!m+>=%+9YT@Z%4BVl-I90pClFofoZVPd0j7!L_Y_R?^) zIvtLo7U38xheJadj(<%f5IZ~qS64)!=h+C@TSh>g5xAg?KycGYd>j^uj>{v_^K>NI znMa~FAQFBBkvRM>5^95@V7w?w_^3u4hx zJi;EvBh51&@yYS3Cz_6e9YHUXI{60rM30b) z!A01aCi+PllFZWZz%vb#O*CGoq`ek9nRKbW?k%jO3voPaY7LJ-_ zLB~}{SQZZFWr9%#;4#|Osl!JDwa|C-W2L@MiU}u~IN5>pIQsiKNat;QT<{F1PYFLVlpPAJ5~r-dkSD@0$p5OZS-u_9ZfWrgVXsSsuV3SrW&2*Y|8 z!D+Z)A5Ja8*7-#+SzUzJJBko^v|ccS5k+{GQiRlk zBGgnCq3&}La{d*;wT)mUb}vTDLB%i|TMRX+82c6$!+CWvGPV_?>R>U-&xpuI*NS0j zP>kh*r&w)Uj8o3VDD*DI#J9yb6J0DA55;iGFNSSdF|IZgWA2Y)d~B?QVH+jXx+!t0 zpAx~tl=wDY33W+{e)9!?ak*fztXIN$hZ3s}Dxo^56zeJ_6gQPk(Mz>SJ zvx^End#P}IfJ$(jRfr$0Le@kTVyCO%AefH_7pTx_sS1v(R2Z;91--2*r0i0m$pIDm z9aTZ&lnU+6t59-T1>5T?%+XaL@s3FEi+y7iRAwr)eIm}aRiV!d6&g8;|D9F1<)%Vk zFBR;3RA}$7!d`_6&)=#L5u!qBxM0;piT`3%IFO)1=VVc~RFz=rsbH8T$|u;9t@BkF zRw(YFSd?F-LPLoPZlx-$E?1$rLWOlzD!i^%;cJZwgX&b6Ua!K`1{He0SD{+SvkxlF z_^3j-ka3?>xGf|?NVSmfLh6Mi2r&^dTS%5TZoLp$oYzXoY>~%Kk>7ri?>dqH$Xao( zxSp}NZof(uEJZoKit@~Or@}E&K0Q%RT~XenqTEuh3LnLNn27u7nWn;BaepP^J_p9B z1Y28$Z4n~RP!%Qz309A&7f(??TE3!9M14(g7kRm;@K)4gv8c}~QLp);e&3j@aOsg~ zj|XDgK!ve-BL5pI6l$x`@q!AYPK*0Irb4fSqONwU;JQtPRU1_(SS{*onF<~YRroYp zh5nMb?qn4vj#Z(@a1|;vL_79Y0o_DhwHMcKDcYd13NgQwc>h_6e|1WHFIOVBScw-o zN~}p$qBd5E<6%lUJyY>)-cw?rt`aHQO6)r$p6$a*EEN19 z(@jdmt`yJxLM7^FC{Zv;37?TloYhdGR}Upz+bc1sxf1%ni;?uP82>7Z(X+T1y)%o^ zBEA^;A;qxpD~9A&ESL$!fMqeP?iWL;Q;c>Oi!u0EF$V1}Mw<=AC|FVq^I651GO1Yf zy<&{-Q;ho^i;>){7{7iLp?$p=LrRM9A+rd!t8NHDAXvz-mYRyX;FmXKMQfFwh)hs#2A-S2%E4%T=y-+ zVy8mVV#K4t>SUS59+s2DAP@@pjIv1iz(?a-vF2LHd0_0{E zU{O>7p86G_$f*F$Eep{7P60YyEWnoo1qj_xfC~%7csxanw}T7NvTFhMG%bMrr+g%q zQ3e2^R`@+Y6&*(q+HzWpNmm#auND12eaPgz$qyQ-vVqCXU(Y_Anb=E@$KCo@~S| z%ZA>RYz*z64WE{R)%z(6h6Pzji_Ah(&n)zRoP{AeS?GEs3-xQV1gkDf@VK(@p-mP} zeaRH-+f0m%%EUpz27X|X37hL;u5cg|msVtA{*+Ao?2`$rW|ww(n=){5Rt8oK$v}s;8IV7vV^v-{l0(ul?PWUdJxE8)*>p5)PRHL_>G(M~ z9Yw9v;r1a-aEH>+;%yqt?8IEjAPq;3r{T?-G*nGZgIXWKm};DcCKahr#;4+?S1LA{ zr{dG)R9xDTii)|Zm@_mL`mIyp(~yGrbTM!9Pl3WZ1&?l|V9nkX{8^X+(-A4?+%5&z zJ|rV8L(BmKlA&pxjOEvpv2?eX2MYdF^P$OzXqk+owMqDslmzY9Nl=+4VZwzZoY<5E zGtDG8_D;f!{}ORWnTU;HiRk2zhyeXWXo>k~xR{p?ACZX5trOu}n}FQJ1XOz@pzL7+ z;!Y*NYIOoOOh~}5PJ$=>DIP5{;&I$J9zkaD_<1fK1J=i5!sK|2=^Br2U*b@i5eG-# zI4n1dgYvAHQ?HFf)Py+n>=cL1A7XJUMa;iFg&2wL!WINC1`$D%>uIPy0P+Ie9(|0WFE z#M)@=QL#=EYo*8i!!YJoC|+lVqMuhNF5eAB$i7f~oEeG^Jwnm*QwTaFhTxM^2tsd$ z;L4T|XiN&ho3r_ zG=tEma}ca+-lAE=TWqs=i)ZKFB5B!MR1bP9=9(03LBzTdmU_gRZ4_)U;(lwQ?K>Hl z6*AHv$>?!d7UP+Wqv|p))+=x_Qi1h03Jg7~5Vj8mO!_M@;#(lR5(A;(5C|RZKqRgT zM6;oR82KjvGt&bw!zBPCZUmso`T)d@2*5S5Ztk1q4_8;ggV*tg(FT9K8|jZhjr_4L z%MYhq{c!oFNZ0#e-3UJn{`&^+(%;~r^BWAi_68oS-#}x?8|eP@MQV~S+S>bK%0*u+ zU+Rn1{d_U^lMe<&`=HLs2QN?fVC7sNly>#O!76WL(;JhGy>WA|HxyI6p={}mF9omh z&GR)XZoNk2`qy|gOmMe;dErB%ut_}kLd&yW&=%aS9Ca@YuJ*((dcwfS6Hj+}!hV7$ z%$s`RLY4>SI}7H%wg=pnitRogh_81S9D8>-JQDViJ?@x1$sK!}x#LEb8w_8%;npQL z9A4~(S%T}|xW*N4WLK=e?~2lGuGll$6^VadVOY{DoPPQW&L>_WY33`Gw0niJA{S(P zxWNCq3vRD)!Ti21cwgs?dvBf5^?@^twmIX=NMY~!^%BN$FA?$NrHBpk65po^Y5o!w znNEmuaDwSsCs8*}_}Re;X2p)^>){BCtB&}y#1ZRyIKryJ0ZDHh@JZJJ&DS_UP1vV? z3OiN4Y!6pMdmPzlj~;{V5%AFt3qtG=_P`Efw%XzDFgs*@d4Ue$FCZDez`E@(uw%pv zZ2a~dvm%~D{n2w2Z+{Mp5zjI6+cRW@Kf_kzXGq=l3{!_c!-FqRkskUKYDP~nddpMH z9r6@fA8j!s$QBxRZSi%zE#v{VI8|qZu7NgqrDub&t8C!d%SN!5t+C778jjbjk*{Tq zMqR9-UTlTFudLAZycK@WvO-2HD_Cbf!Mf*9@cYOUm`{F!e*YfhN!(*JF@KC5J0IiK z@W&|sWQk5emKbMXiJ5CGf!>xFS#E*WUKS|0YysPO7FgNVLd*w6+>7VtXnn*SHz%5- z;Gc>I+MMqy#w7X_1>`tc0Zzt@d*(Nyg+ywm(n;>Gm3AX%v z1ZCJGY`XUdp=%$ZSMNtSSZWLhH)EuoGsZ_43pTqknkPQQPqT+mZhHv-K@V}W)(D!u zMkv2x1l@T?=+xQ>rfCn*T(G~6?0$fdVGp48{yygT-^cOm_i=Z@eLQJ%A6Du2@WARG z&g{O2#l!BQW5Zn}yb*Tgt9Q|To`^Zp@-9ZD7~+M6A=I`TV$VQBcvKmn*3$sJFBpio zCk9yC*Z^B%?qHpfh-b3y4*K@IgNEYU@OBh2PmbP3hw-=Z>Z?AcQ6B+1`WUfD9}nB; zqasxg<1O`YVw)bG4$wnrxv;0Z>Z0hBE^;U9BKqeoI0xUt6}?-SyZ9D<2{xGX|0ufa zxG0`C4&aK7EedwxR}?G^xOqge1;s=~EDRI_TNG535CthI>5y)uZ$30!0FsB@-QE40 z-yicjZrR(Nz1^MNnZ4)zG@YV(L8s`3EnPLkWwlQidsBR${bNC#e?phpKz z5dAt%_AbXMqVsV|@;^qQ1CG&wSO?PAb)f6n_QLVCryIfvn{0BF>>7_y)N1kU;I17d zSliL**N4gU;9>gy;}ChCIz$~i9HQM`2T9;A^djT{wHw23rJtf;r++O&?GR;;5#SJu+9 z)oZEm4NI!Av?S}>Yv|SbHMH)Y1?5{=(C-JUNpH()kuzx(Ewo-m^mHX@ZeK~ao|%)U zjk$0)S5W$n6*T1KayqtiIaR(~Ch`z0BaK%}Y0$2v)brI6`nYom6~A0ehjuO|t(RsL zzr#%AdRRoKZ5GkhXA7zK_Jw5h)RdN6o09os6Olv1ga$lZK=-W{kl(%eG-1Ph!tHsa zzjmH@<}sI^te#85uFfG-^EqVIJe#&GolVQ@XVJJtv*=s(Oz~W3CM}g2)BRb-w7zTx zDU4>&5KN~nhSNn~!ie(pji@4X8WrhHqc~xWIs8Xt6wB!C5Jq0%66)7aLIHt>^t-1a zt?)LW3+e_`<2IFEsZFJyj#KE{&&l-AZZZ{poJ6PhOrmKo_344NcnrGN<2TB z26h=uPHsAMrIil#J2r~UzWhh~_x?wxUyP))TSn6HJKAKmT3a}0Bj}sy2uiCOF7mPr zrzZu&Xy?RXbU$S%&C?!A5fMY^iRKU*sQvAp)V!i6`PTNJnX`M)W8R(Y^}AE6ly2lOtQ$QG?n?87OBQ^l3*G+P znKbM=lhGS>vfQdpJ8yL&+vS~TOLa$DWZaQ-3OdlYu^ouVwWqxU+EYKjc9hq#9nCx0 zma4zBp_#keP})N^>byoxxOS~6Zf(%JUOUz^ ztL=5HV##IJ%dnO$8Ct^}I#x6P_X-wzUCw;UWb9y46`Si@$=V&QV0jzM*^2pP?Ebh? zwobEzDgG3(;ZMMJU*;@6N6P9$3)wTL0`}e}pS@U;$C{?*vXntN>`>cmHuhB(yWW(^ z4i;vxf060z*y%L(Vpl3#usnqY8z!@xgOga-c8N^?RXkhJ6vvho#ERU37ny-e4Aa~Z z&7LieVyTlO*{1#xtW&FS7XKuaO{xuHd0D}1bkGHM{#X!uV-?7z%?n_Ty8bM;habE9 z#h3lQ>BG90d9yz8UaW_QC;PYO9DB6FgB2ONGxtGf*+R85OzqiemRak{mSwrH=K;>_ zu)P!ew*C~m>*~n3*>UEq>A(!`9bwlJ4>Rk12iZNt{cL{gy)3+XH@ka&C+lu$!^REY z#^~i1HZ^+_8|JW){hYa;Rd!m-jyG8_?T}Th$jY3})mhF;-YsD|1!m0IaUrXpYr?v8 zozJLc4qF#Ci|yTP%npy9&TQWkvnY_Tsg4G$8%uJa`3);xht3K_>*HtMmR|BYc^ zUXNmjaz?Tj_9NH|<6$hf{Sc;JH;}FJ@6UqQ^kvOMG@05{4Uv+xCtGl!JKHF{GuyxF z>|j+#cEF=O+p)AQTcfGQP8a@@n9TVlY2El$lD77vWYM!Xl6wbUNNoN-mOOR8FR|=% zTT&H$P4b_fO5#{hFO0GpiB`Q#VzH)N;{UivqS#v~`SLSIGT1FsGOK5*WOI0e24NHR-rmt^y-%@S9OHImdl zOC{G`=Sw<=O_$8QG(~bop(jz@86na6++X6Z-b?azXeY@&gI1DvVQ&owR^K+<@wLYA z+6bxPj%A64Lr(@8{!Mc+?3};Fa9=ND!|{6u8U_V_FgU*=#UNwwJOjIp8>XJRnVuiE z&$>Y4hqT~Oc&oyPq+Qr_bAI78`(1^;=gt%wS%wr|)JZKY{#sP%T~%M$%kO^Syp10V z`)I03*Z)?R9($-E-J={Rosuz9TJJwj%IpoKb{mYP&a+LV8+4XSJ9J$ub^NeJT7G4> zv_X1Uni%0IjW2VNTI!#bev0*!?(K74TJIJp?fyMPs=p&rYH;(SbkM>?=_8~{-Sx7h z-6C?O2fIq8`6r5{*WQ#%udbI%v+HW4JB=Eo|I$>_eFLvci_YDaKKglI`gq3^Y3cPB z(u4EgN?YZBly1}hCXMy`C0*C56<=^P;?- zy!~qpE*Y-LS6TGsYrXq(ld6Gy=+D9Y-uPkM&3Xjy9X67CG>+oW+l}FRq{l7xjpIAx zC-BWT^|^8PDZJer1D<(Q!l$Pb&v{_PyJ#Bog{HIk9>+QSaP~ZI^>hIr-+v*0U}naT zI4$AtbC>Z&&sXqs16J|0#TGo%$&v@;uH%-^HgL86o4DtqE&QvaHJ^29JGXtbgWLDn z&9}|p!zbGB<9AXHaGTqQcyreye83EQK6~FWZW42Xk83{3kG6K=%6`tggT4!&Z0gFF zZ9dJ{I=FFjzcXBP0(g%KcdokO!CgL_w9 zCoO;SN*M39D4ct3j^N*pMshQsDDD#<&5IGkuQpxe zH=o7w>OXNjRwIG$7@f%b%}C<8=EjFN-p^&?JOF1rbek&jRaZM4wa<^FU{Uv;V`!YVDe>qPd zTfuc^R&o#XD&DeP#@ip0^C8{}J~T$jJLXpNYw{ZIeWRA^zP`*e|JL#TJsbG$5sf@< zN)xY~-^`V3R6J)_3wJ$ng_F-!em(jcUz>fMS61HOJ+Iv4bDrMf>%ZORmL2bMqki{z zyD|59HhaKlFMPX3a=$Dm`Kv9(nfgq`k!3iYnI z?$Z@_dUr!}NH^pS?vAsu-C?TJ1HaOGAbes^=;rrC66=LNrM<9!wg#Zkz~_a%F`%(G zCYtxb)a!jPdYvZJ?`z`b7A=u4UJG+~^~JrnePMH;AMSnWhuQZ15%jx1uALl!c5Mb? zxZ6PJbsB^bo`cY-`(WHYKN#V?hrsm05IpTS6nn#m;>qA)SP(M|AtQ$4TKsUR>5M@C zlo1%Br;VN&+IT;HB#JJL#Gy(5p=*^yjBNbDSF>@*!%BJGh3&tJ=N>hKDzeYXNbc9^5)p*c3JTZtQ2 zR$|(cRd7?TLgCESXyzi8Ws(Jo(=6aMat-E2uEAqXOYHKo#ElMXG49k_?EJnK-uu=e z`1v|`SgptA>+3Om=>{kj8?bVQaNY7ZLVKJQw#8e)d*CL7`)`7u`exWVZN~WTn{j>5 z7HogA1-I93g<tUZ{Hrwd%Op8EcQa@@?N~3u@8|s z`!HeDek6&Qqjud6V4l+f?EZWJN46itwwnh*W{2>p^bpSLABIN!Vc2Wgp~~G3pMKe) z{hlNEdr!nREjxBIfM+8T{ya7Sh?m zg|k14u9;^M{rD`j`@17#i97zfx??4G7iOe8RN5Z+wZ;RzeLOIz$^(6WctCC3Io#QN z4#^kJ!TRz!^lI&i%qgCjw$l?l(i5XaoZQ(CUbseH(A?*Rd2wFYcHIkhUA%F`*c zykU~$jsCa2ajUxzyk`4g+z}s?rTAdhT_5E3^cC^OzOXs!ixd&Fcl)j{{`NeN9&^v5 z=h5?MlX@Oc?wm({4?i54?FSt@KU63A!Sa?LZg%yDsj)v&4*26|oIfPj{9)560B0xw zfwlqgiweN0rU0yO6Nu4M0`X*9Abf)Zp<5G({9l2XFg6Gw8-nn`CkT@AAngAbgbO1s zAjA9ua!y}BqHyKTJ-dJneS~s^9JP{g^xYAT6~W;+ zp$JFd*KmZ7jDWv+1dg~wU}1Iyx;}_Nara29pDyAycSmA-SR|UOBcb~}Qg}2`NHLER z21FDdWkuo1-6-KXMkAL+!^tKZ(}JS$v@#keKSZP5kQg{DioqTG7>rMh!Jd{Fgtxwk z!f_W-vG$@s$}Zw!-bL6wya-A6SiGcIxZA{vxTje7mB-@On^-LGABPL`;!txS4zDBQ z@T(>c-@nG;(eQW_Eslq?Lp%%;;&G!X9y|ZU#C+#O3`ynP3)O4h%(vkX0#1D_iz~O}%Fglol zkD(dxugJjgml=rcnTZaPOsuoY6s}?>>M}C%;!387`On1j5m~4)%|gijEUXO9!rziC z;Spw`PnSz@)xU)M7MGxNQuuc9m*7}?37#J=!A&b0dyKL%b4xbV+_RC9k&Oi{*{J`K z4dWp>h?*nJyB#?g?vsOgxj9&UBM0Vxb6_+g7a9w4abT{-f{aSU0?ad1Bu?iR=W9FA`-9KXJBywn6_2EaKB zV7fhUD+I9Sz|ETg{Q}MmC_*U};nCV6d^}c!*I`9yMiJs}6$#U@2Vz z_Qkj#T#Vs`#aME!7&c#vvAa(R)=e&f!HN?6*)QVoeM_(?vjkV_O0eK{2@=&y@lmG~ zqvn@lfwhR&cPYi9m{N={EybVPrO5wTD$KSryqr=7>lJ0F*;j@E-es^5@&6~4W$=4a z1|PL@5vyH}MbpaBc}+R;4wno2p&T_C<(N`iF4~iFTy9f=??WokeOd*2SqNj`UduJwpKEHvX{ZyUxxBD z89K^kVE1HL^<9SbJ>^(DMh@NCa(q}T$HhZ(O!tyQ7B9!t5;@LamE+o5IXZSwV8jpw zMjI&5Z;1k*wkc5PsDMq70%{owoRKN;Rrn1{J}cngS&8!DO5Btvac8L#HQSZA=%|Es zpb|aPlt`*jV$2OC0^cd|x?MH&23BLWel>P4sK%}h)mV9`8lyd`@hqwuK6%v`UR#Z* z`_<_1wHg+kYY;HB27F45IOl30+bG+$hKJ>GlO<3>b1($ec;Q(TX3b@hn6U5~!6>v8N?J(TJV_}8xiLq|72 z*RTOY<~QKa$_B``HV8AV0ll0XaKX0$?V}p7A-w@HXh2EMsz#Vh*$oN$c}Er=JZDVmI|Ll-iWu& zjhJ(<5vN}@BJ*1#D%&)nta}p@2Q=a6s3z!7YQoj&P1tHGOp}#OpiNCUy}Jq0BVxL9 z6Yh95p)Od=AKQdo8BORbZ9-;c6UNs!A^3U|UO#Mt&YLDI`PPJut((QM&_tN@DulX5=nz#*fv_(Am_CnLC>?`(QK19dAaP)6J;xYQ_#>u>6W_hFxMa zZf1)43Y)R9tQn`2&F~N=qvQ2vti9iiVb7b<^sX7ZzBS|RU*R{lS0Ssb3h#QW(08Cp z_#eV-9HT<#i7MPQP{D7y3X|rlP_j@3{pBk7TBvYsg9;t2RT#EQg^~MJ=y^ni=f_n@ zbXH;MSrs06sj$&sg{oi`G$K`47^}kWBo&UNi`Q%wObWzjii9Oorovj83iqnTJi>;I zX;$IERTb24sW9-KsLvx6{ybIT@=Fz5-->m86m|Wgg7yy;oPVoO{ZEA-YAw)c-vZ4} zEojrF1vk32Ah>4>X7+A@N;s2?`?VlvKnq$AZh=IYHkQL%V6EMPHUG6>s!j`jk8VM_ zZVTp(Z9(-o;ZaU#!MTYosL>bx&7>BzozjATqCB43f^35p>@;kFx}-()2V2mQiDikB zCdzG5zKHT&l*gh-ML8JvYTVJ;b`T z$G0Fs)I~$D1vX<^kSOZdDC+u9)cLNcd!^Wh^I}^}2Dad3zZM+UYQYP!t@C=dz`J`3 zO2l_?U3?d}#dlKOrUg;0gsb^Sg^oW}2>Ysn)+ZHCyc6H)D;3&3S7Fp+v48KYF#5LG zr`J_zRH@+9pu(V9u|MQ0^r%o_d$9`1g(|ef%(0j8b7usMtpVDtP#) zpyr{%W>*!`9EA^bRE56>RA_6f!k2Br3bInc-%G0}Z8JQVi}_5Naesz5Z>Bcm zmR>UqM~HKzpD>KNH$%~`88yF}Q1GD%-p|DOd8Y|Knw#LIY(nRfCLGLZf=oE5ts_)HUKqStA^B8}THu5iCqtNZyTzacV^Fp+;nFZ^Q*l;j@}GVz_Z5#_#;&uT#Wqy}VZi*~Y)aADgw!0=l=o;(xn@AZ28R@P&?v>rvt_4pN14{Z z%FcQWvJ~yNiD@Ixmt&VvN|~D*5O!eop2HApzBnJ zM|)i0#TC|Ak-u}2+{1Df{T_C1(@Da`)ZVJsm3R>YV`d zcTb5O)xv|yQNk}=i4JZ`Y~QOywuKVUXNu{%O7!lnMCU&Wym_L4v|fSz1q$?zRv_lA z0{!-#lZ)q_*+?u zLkXq0dbSkW!m8R}Rtnegr3mU-ihxfgIC-T6D+@}X6;cA3LkXTq?p`a3fJ$2D7#uHJo7^Q^Ar7){e{BqC=@vZ3K67U zh(*r}@J?0$$5>%tohraq(cj^s-}6WGf5v{zhp8$b=2_y^D<9)_=HuVId=!t!hfS+| zVIt?@v@{Rj0`suyK%Ov(^F&UIJhbVM2dziB=v$hL_F=hrV3&)O<+-pLmy0&)xuPGK zgP!F%I3AvZmLoanzaj@_<8olzDF??MXTz>E8yiEjG39VJzAwo}@|bMQZ#oak>_XF+pD7UX@iu;pVW-qdD_vARrL zb`)-wMJ6^+%oO8wnaF&U0bZ1W+`tTk?a9Et`5BlrGy{*mr^C4^9oKZYi)^FPyE(DcI9F1xp?#3qvRwcYQ?vep@m|8YK%GHyNW|Cc(Qb36Fx3 zFv>OwYi1|Gpb08io=f}f%U_APLh{Ho!9703mFmrDluFj6b+P-mUcpVFUG0x#C z#yey?V)4Z&7QK7LV#L#n7{)K6oA*V$+;kCnQ!Zj(r;F%+Ck8oLF_`8WgWT0I7@!-2 z1An7Y*c6R7ana~?G#aB8MniXSGzNc&LhGt1v;;*VXotuVAY88J-J)RsAQC@wBC*pg z5;Yc)=%*VAi$4)K(-47#mS(M60!{SaeP*ZvBtt04qiqeGyvKSbma2!V00 z5R^R(#)O<;___q+{t7Y9r5%jr!tFX(bpfXXF5t}83vie$#=zQMz{Hjye2oo4>cJo^ zogIXyy@Fu-Fc6O~1!9p?AmWz>;_Z+?=)4QSijn|fKnK8KT>y^i2Eh8KKju{Xqj#`B zTDJMaZHhm1+WG^{elU*lL*8CL44CeR16}+?hyOf2C!H6L&v`I04me-qJmx;|#pFz1 z^giK>r>4G0>g$X3Pko@4>w^#{9}HXKgV2FKX!p_^n+m*<;p&Yy%e*moh&PO1dtrst zOE~IYSiHgu21C8jE_CTj49vCpd14D)NrI{nfP95EG-PB#=dvM2=hi9RYaaQ9g~{zR z$W1(ho(IpsYWf*m>~scKTiozF$_>4Di5wpPcfVS@q08mdcpG#Y6`M{ASMxMxeRCE0 zVqD?r>54(CT@gLZ6`HSI;F#}%8>d{vapeM=K4QH1o-@jmopIx!GoBbZ<534^VO2Sy zFw6Ea>4`G$wA-ESEMC_u2h`)UR-n$QACZrK>2$1`F&%C)BV1f)gtVq` zT7`H$7noXgLC^c0QM0i#?Cz5v9i7uzAb8nei#06y@0=b)cHSL-TODc;_-{SpZUp0y8hrPr@nKo6W_S4 z{a2oL_zQ2@|Cv9r{lxF@_{b}*KXBho@A>@o@Az|zxBP(l8~$|3Yd&Y;EABb(B`=xz zg5R391S- z@|T;u>fH^V{Ng&de{_vcy>pe{yLyEmZfxP-s#V;&vYD3`HStdQjeL4$1Gh>NW?4)f zw++3_SNqrUah^5&lWR3kIHBb8?G*g#9ywnje#20*v5IS1RPqf=D|o=K?QK1@QybBIjOd0I$gP z=c`lv`2DE!e0`uVuk-NX6Hj?_kHcR4>P}CtWp$1(TIs>}e zt*vbN*cUtbqb3{f# zq^ZT9|L)DVJ?h18RrlcYvbynSu=y%eaUtUT-mOqvL^Li+4WqDWnZRAbqqYqc4^5Q0GlzW|Y-^yyK;V_x> z`|C1kR$-BJvumNW>(X55r2$#erO#5OFR~M*j*hX?Zl+Pv&^}?(5f6f-Nojsk-J{;p zwAmg~-R^GEq?=CCg^P|!XFob1HFDS~HR!onIw@(5bmEL<(#cmBNXgb%I=`)<)G}4oaS(h4h0>9=oPrG`H3q#ewD78V|RQFuD#df}cMibA`N1%;6Y35CzM1s1Lf zaxJ`aZhN8GtGR_*3$+UkQ`HKswJHk6WS=M)u;*<)A9ZNTR^G>8NndXRujNe!pXRC? z>O9mne0;*paCpDHhVRy#HS9bp#PHFlWW&Q{+_2QM*09Xtw&7vzH->lK{V_bYzJug` zMR&;noxT!1uc4A&A9W;`S51_xfkYx5GE4H(#Z>a@*>Xwo!nKn1nOh{ay>?65*&UK} zxp7?bF2Y%2)ZixB*Xo?)>_i`l%VvMcCjSeP;Z1_gBlEK) z>zV2tNuiG>>ICMHw&oE}U%4f0jSLQI?7xP%k z?**)DkA=*9gc&jRk4gu<0XrGWpcqZ2W>f%zn*2c5&wcmU`?E^Y^r4Ya@;_wG0P#w&XZ_Q}4)v z_nueEoMyix-B?1x88$uREUU_MXNJWdEVSwzds*wrbW~o< z{H8avec;0mJ@;ih-koQrU;S9WKmP1Wn?UBM9>g?yUSL65!K~fj5VlD>lqHV|V|ONm zv%ga#n7UCUYco5FJzo&b3Kz$)L*^IRK+9N`xiOB7wT@>Ob|$dbdlQ-7;Uu=oA(`zy znZkCvrn1%UX-v;MoxS$UU_lo$*_iMwmK1%7^^DJETat5FWO^>Ex|GLMdHJkXTENna z3)#_fDbtg2rc{D0zFfqL8;V(PRS7e{TFQ>!C}Uo?%bDA~3by@WC7bZ1iamHHWA-oQ z?B{C*+x$++vOiR_7oTcahp)A)%lFId$B#O8`ByzV^QVF7{A*;Ht(w_jH5EJ1riG=q zy}}yWU1e9>Ut^UWuCogrZ?L7EZnAfsZn1;vx7i)_J4~cGi&uH>{h3zY-*=x>~P2DETqE=7SsME^KAEut!w+5b#L>ACA5CahP8Uf zPX2wz%6`9RPkw%2Z@zzI*S~&Z37EO>e$2{_;Ef`s@eOc=D5JJp9GJ z-2Kg@xBjq=*Z;C-E&o`OO)IK@+KL`;ZB4Hpwx&l`YE*kyjpEj|p*=U-kd8%LYQEBz zcCTnh-x}M|fyM3VZf$##m~^1i@(xrsyCc0W>qs4@cOnfj%GJ$Koqh<1O*OGIMP_s+ z3*9c%I;jhVX?LX&F5oyuLeQbzFLmht=Fwz)YczSS7(?>fG4y)2F8zfr{hp*p&r(% zFnZsKXu(M$kIy8&(`nRjcN#UVFcR_IMigi?omOQ}C$&*CC^&3}$d7JJ&aTFE?YlAc zv7JfNABZ@Sm9uD3^(@jinoVk#W>b;2h$#u4LvK3IrL8CDQq{+~)NR{5nt5X$ZCEs) ztV`#Ux&8tg8^3_wX_-)%hY5}UV?ybBO{w=oQ`&02kiz8)sl;#*Ri`YXqJd@<>}^Kt zTP>!}2NqMzqs78pSVCvzOX#}6QtFYslqU9HM(o@&()+!P+S@KC<(=i?m|Q{aN>|Xy z@#gd}%ACgbSV0{<<3K(KRgM2K=`>zE(wOvF1-C09s zi!5m!ENS_ewKP6tEq(5=j-u_>(WEEqC}YKX5rem$EGBHAGm#r8vdcyabJ$2HpKm17 zRaU}YvZBC=o2YlxCOXz-Gb!vh)6b`yskiwS>QlajevREq%FwNJyn{7q9;Hz1>N7*6gD9RlDfL z_}yYzyUDYiElt^HOI0^*$#Cu-^2^*qP5t)L7ni;C_sw2y1GJ>+06DRPbRqU2`E@x&2M-@2gS&_5!Mww?H}fz()UqSVDLXp++>Qd59-+{} zBjhslC@npEl+@lIr3^~04M#+;`5wWmqL>ol2`oTmNnPLsz_HwswhM!wE&bUeq6);xBj zQGL$Pv$<#Jg54RCB%Yz#YiDS2$Fo#vc$Rc_oF&JQvm~oNOMiZxrIBOYX@;dcnRvL< z9PUmNUb<7){vLGG#DjwEJ!pQi2R*&+L3SO_(Kmy0WV8Jo)dZcRf%0>-@yj{#)ApqN z6`oY<>`9H6JV|!nlTy2Tk<)Z9T43u%|H8Z|vBrz0|L`KkC~umv%A1m0y{UDMH<>>0 zCYSC$ly2lhid`a>F~o;z6+V>r#fN-H_>$!^U+QyG#5|_?(%PH8^rXXivYK+9YB!&! z|9sEW{^IkL`tm$o)$*ecB6jlEen0vW=|}f!{Yd)Vk6cEIc+2Jf^wiOxPNw=($Ls#& z)HZ-#ObDQv>jTK$J%Gyc0_fR;0Q%cCklHd~&RGZ2z4L*TTO3G7Uj&j~pCA!O7et$P z2ho!YLA1Iuhzj2ZQK$YF$YkyXI=b%yT?o5C@p56%eYikA1A}ST{9rOT5KJG!gDFfA zOp`wbQ}MtMnmj**!uE&Ihp-TuA`hXR??cF|e<(%G38m;gp>#etl=fAG(u~)k^t(?O zCCvzojeys3v!~U z)vYK>REwr*W1^{aSu{0*>+f-tIVhf<&x)t+Ht{sVE1v$#jwj7)@$~suJe3Vi zAcwgLG<;_Q6?!Mov>ajET}z-YzY}Q9&_oKDlSsujiKG&7&)2dNsk$YRlD;R>;ekms z!8nPoZ%Lv(XOie+N)m0UPZDNK5_RvBOeTiOw0~_fxj812drUIfS0&TxXUQ~NJ%w(G z*lQ=@-t{?9o-xomN|5vw z?{tb7m_a>_GU&ki3@SSzY`lmJ(k{s$$=wW^_BVrc2WN_Vl}u_}pGjv<2q!NhlXy`k z8QjjKm|vOnt$!8~%c9+DvdH~t7WrSuB9Htm+H)m~W_-?~-@PtT!o*8twDb~{@3}~kr3wBn@d%crflLg)}B+Z^PC^4bbYJO)bl14Si+PLzS>T@ybId;qyy{eLiKd7Yqx0N*IcO^x4s-iEN!W7Z2BCCm2!jY+> zBMYl&i$xVN>ni%azlxF_tAw>xMU@w-#5q(&?pak-S5!s6lvULGN)`2eAk4!zRrKI{ z6(zKl(W)LYdOtu$cB5qUR9{9jr_1P!iHr)(g<-N$Mz@5Ec=@o5l7(-w@0^T=2g#^3 zT1N9zWhBj$kye?EHrB|siuZ1E()AJlzaXd9(ZXF!67y#XccoBH z8D(;cSIX&hqnwsqms7|4a!P(Crz!8mvcAfNhbgBu?G)rAe8x)}3M%fepxj{!3er)~ z=J5*ZH&sEHrl1A06;x`XpkYfDv}cuq;@2riu~|VaHVUfUqo9mK3OeSXApKKf+Gz!C zI;Wr;z6xPTDabucL1objdK9mq_bCc`o~fXkTm@Z_DriZGf<9I#=%hkH-)a?P*{Gnz z76skAuAtU;6x98Jf;v1=(2M5^DtN7+z3&y&^Rt4Yz9~rSmxAp7ih8tG(!aJ!8ZLaA z@tu`4s+*G3dn)OghLU_Vm89QKNu>jnWH4Asp+lAQe7KT^j#LUyR7p!mD`|nQl61!^ z>H9b(Wld1h3VkKrpQNNUQ=ngGlrQ4{!J_;pO631PC(07BjI&~SsbaZOvHWbY zoX`4Mg2VJE) z{Wl64@KQm>PZhNEp|F1L3g73Z*dJHL@zJE9Ep-a|tQ7mAN=Xjz1Ux&if*eZ^V4PyUV zD9CQPf`%*-$KYHAO`f5kNJ9mEny8>jx(eE$t)N4~89J;fj<4Nm*g>Pk5&7m4$5wwQ;>Y1l+Lm5q{<$zVB^^p?}0&T_J8EvJZYGAel^ zqnbxDD!U=0iw!c`D}19-5YvQzJujovZepHeGJ3L4MqjOE^wCmAHW#^x$6=4gXw4X3s@?b-RkJ8>?t}RTYgXtfDumRTLgo zMN|E&2yRuR>rh2*wxZp#s-k}@s%YT+D&fzIwrgw^eIHUq6}?2e*G|0uUP*B;D{0`J zN;=t4NpDi#(hc48xn zaPueFg#g2U9UnNof=QO)ZnlHP5ig7Zz}bF_(!%9`j;dJ`o@G|?E( zCQ8`RMBg_wk-k|I?bQ=w`b;tAk8YxDWnm9GG?CS(<23Nmagtv?PA12W)5UVZuFW`3 z5#h(_^1v^?J5^G?4__} zy+Q=fY40%_YJZG6t~^FJ^p8=T`Z3ZQag1&$9V44xjdbRDBaOS>NRG!FDYdMTcuFHR z2MT++yOEM@8)>VFU_H%kq?2lmv}#}@UF*fPIl^dwr-=pO8@+cj>c9ecK9HlWuM`=#nQPT1}N@KSjr9Uf= z(sA9Rv}?*y>NDslB`O@HUT@^&(kdr;qwpsRPBA)}iKGTL}pMz^-e1hij9A(~=z z8YX)*?Ss@iU0xA6&C8bS@!q0nGPyb!3CpBJA z`kD1)ZxG3@EL{w_(b@Tn}t7lP5715lIm#pA;G4ytE2Oa>*&t3 zI%@4#M-4w}Ddt|S;G@-2m%Lia3a+KeE@Hc)mO5+KlEtuEidLv4`O_M@e!7Nkm(A6Rkip(R?~*zf={hb zO=F)_(aV-9N-3x!3aO&gf@7s`T17<~RirRby#7&1uD2^GQt+%&(kdzTa3$^ASV_hP zmDGEDB^~WrNvmI0(Bm@|w7R&08bT|muX6>NnpDt1^$JQX<&i;MnPoXyXqD4Fm2z6~vyAF*l~FfY87)o{jH|t66uG*Lk|bg~M7;l1N`|*f#otS* zF0qu%_mtATRi)zlLbNVoo!;L|$h5VDJZnlQJ*I?;c9l?$SqX)zmylhb5}NqFm~NjJ z4DsS(>K0rqI5EZaaZxcX8DC71or>w?qau3USR~>g(e{hitBdHARuM%HETW}f3PsHZ z5xbQYQm@cL@^lbvtVM-1b6g=gcPONk2ZE1<0%}Ywp!(eflxAK)J7*M-X3qk8@iLzR zTJmYok$j3dluzx}`DCq?PuczR>F$R->UchnR0{G))i;lNZxB3n%A;c{d35+oE=|3Z zEAoB0WZ|Dn7dPgT*1TMb7@SKtzT}Y7r5sW(${_>499py?hqNe%R0ieH^N-n-E8<}D zyli^!nN53bvgxa4Hm&WOO?9u2(BBhBXm-XCvfg`yTvi+*w`oVnUh#;?n~0bjBIb@2 zF}Jf|Yc0+q`RFWSzcZ=edM0%#%OtaaObXkONm5BBUF(-g_upjDjT0Hvn3f^(LK(E) zMDVuMGU%v623g!rr#qGDWD=ZCwYKThgVJev|8(+xlSX;XX(UTYqob~ARK7HgqQ|Du z=HIC_@mi|jny1n}?^Nn(ol4;|1uMT>s$i?9P-T4zeGX5dv0Fs`VqOZZ9FRhmZ<5JS zD_@u z`e>d=Pt+3W)V~Buxt>7lixOynX9CGqCXmUL1i{NmprtqBsj67yX1wCb%rc&Wrik|n z@pP^=PB5h6=f<+u9h}r^n|6*y>wOG2CFX|2)h^0TKu_BgE? zGm07?MpD1(NLuM1Nx`clsbXp*oo&G=%mChtS|PA(THYgw)!DDfx0R{mTj_3)f&uT@Xw+1_lepa}bS`2GR7OAetd^ ze`BWvQMW&V^zeKj6{H1{opT^5&kv-EK7pjy7CrWpw{OLzWfBJOQkM1AwBeB4YLiPQ~q@N#kdF)H2mA+)?AZ;7!}Ly+wTNP1-lSs7J1ssGZ|Q{`y`t zQ{+`IKJ=t@WuEltfT!Ri4ce&GYJ9i5ByPFCUc2mX7-IQ_8jdpK#BaL=fx|!%owi>Q<M%-@J=1;eeWJ$6nQz-kA$&WHn6RD3H#pG%ODB5s zZW|T(Z6mYc+o-L^k*tgR$U*Jzh)K-Pe+n(pq|-v4*T?uc7kOHuPbQV1<3Mrm23` zGWW0iUwV6}EE^~U@*_`Gjn9-g|W|R(7DmONz;)f;_v(tpObTXlFam(rA zgyo`6hA}-^VoWA?mreO*iw{1#L7 zKrvsFXDDh$7}ArIi)i$!MYQzALfYuDkn9u}l6k@cnm%y>eXBE|qD2N`9MPv+oAt^3 zn;yx0^{CeXJu=SLrF|N@6nlI=rI^mA$cH+#(^-e+|D8wwh0LSuq4P*mD41eeb4i5A z6l_7%`j}Dgos4F;OGK<8AtO~mXDHOBL0a0>c0!Ai%(ZBK+Z?*KeGaYstw}9`nlx^Z zChf?cO-1Un>Dtj*^x9|^eYmMXPc~^#%cq$XcW5SAD9xmfiRzR-PMy>$XV8&(GpNVe z>9o;uI^{o}Mt7a3QTu;WNjYFD_3uBGI%iCwCzGd8Ro!ITsXv)UT%1H$J&6pTsZsL| zHJbisA_WFa6n0`F^-P~Yb0$q7lbZ2lHDARZ?;K7xzlV{;Zy0s!GmK6p zs?we@sx+izD3xdqr5TMwD0}e`;kON@4K{-*|EUT++O9%MKL*i6&p|Z1`yiSXJ&?w# z4x}zQ1L)S&0hC_bpDc9x)8CW*D8Zy3jlHEzM>Z%^zgK<9ZD(IP{i_f4_U=Q5J^IkD z=-w1DRMg5k(u*=D_oCRUp0tnkq!mp{G}1_k?qBI4^3pv><571yy|p`;ee6aTJ-X4n zc16nYSER4K6lrc;SMnIvmGZK?(5cB?1P8t|J=5+?ZH=Ai(xOgOb)h2#T684yyB(;H zZ3jB`Qh_$RDA4aW?QFoWe{5jaf9!9+zwF}3Kg@sXZ#Gf#AFEjSi;Xe=$quah!5SUE zv)At5*gx;D?05JV_9*!?tH}Gr9I8ID9t|H@{F(QxN9#N0(Ds&9zInr*e1FaUb$HD> z_j<*?s=QM@&S`-nL^wXt+j15M`nfHel+XO*${ zSa|wfwyNL`>sfW1mEacBZn?=SFWz7SZ?&>5kFJZlao5=SFIU;)KUdh(E?3yK-eNs~ z$|bgE)I~OZ(gk*9=6Pnz&asF3XPME`Gc0?>Y4+OY6dSSWB-3?jVWw^;*zyC-jQKXP z0inm){g`7cE~SxCb_2Uybd;^AlCu_>khdS_%;U6-)nAgb=QrwEmj`uXPQR8ZzpY{a zK3B85zp7Y)LKWMhSjqbLu3(h|%GrF?GS)D6bq?FHUNFoyA7LunvRLbmOy=jF!PE|)GY+}#jZQ0MX z4eUqGI`*u14Le?C%|c~X%=Lp7UA1e)Gh0L+s3O35y)7#f&CtvLDlDvH00D*(5fDRm`8pCNG@A z5{)LYUnUco>B{je*?KIyvwk$|y?G?lb{x)Dxu~*jZbJmCO@-|~G>|#@^k=IBmD${| zK5S5QFZMECiB+U@XFD<#nObfacC)Y(J6zU*>1=72xVZe5MD6(@$@BUmDGB}{$&Gm< ziB5eX*_Hc5vZ(B#q)+`_$@#{clEbI3NhV&oBx$*QPGbG|l;rvAW{Ja>M#22wkxUv`Aqf~>B5506AkmnfBk`P*DLJE)D(PjIC^0sPl?1Pfl$=-}D*0_6D4DUt zS7N)zQ!=r`UP++xPRWbW4w6M08zp)At0jsn%p{I>OC(oZ^(5pgkrc(wl#IxoBuT0r zEm1u=M3Q$ySt5DSU2@|`2g&cgU$r-CJk@Snab0`w?i1S66Kb?O$a1v5-ig&#{OhZ| zU&m2f-N#5<0pI%DZCV4ls7HA}B-8(o#E5ufRj#_-G2q=x~A9u~GH+O$l@4Bm> zbm=4wY57AlX>#07sb6lO^xxq`sit*-bn0GB zN@Q2FD`dkHYGg}-rLvU=!pU9>>e<4e{`9}8W^aoid{zaxx{6p57@>}K`+Ai~N=)mjhI`OMzUHI)hMSecL zyI8BJ#NEPsaW(%w{M12ZZo0caZ+05UM{iQ$TWyB$By&|>vt&50*B!}ov_|v2)5mhH z@#Fae)rs7x-z5IH+Z3+XK9&1_o6f7>sPj{gG+ZXfOwnjW*)iN$wwwyQWn(|4S=G=Xf1JBMcaCAe|;lAd&-XY5flf_GJ8HZ%Yl!N-NxVhZ|8}7UHDk1ojiPyyRyjpY<_{7ruz*N)KbW&5c-| zbRmv6pNQvokiZ{QCGty!NxUR8nR_Ip@M+zy0YdcYkt?|GIvi+nsFXHT5_6 z>w=qHG5Hqn9&($1-hYQ5bGpmj*52d2m*3}MIuH2g=@0qbk!{?m&m->H{)q4U@R(aY ze8Puaddg2UJmY3%&v{eY3qCmPrQoo=;ybs!=C0Onxb>2^e7yEMer>{gzGdJCey`I< zuKD>R-_`bs$6Wl(i3=dy8hrlHvHtvmjB|u^dHYq`^{4a{^9#O z{^j#N{N-(T|M4xS+qu290zxh;AZt+vdo8k>c6|TVM9TxV1{S zd_@UPi+bWG?+Mo#z3?Er7qkcWhIeRhK%ozwxb?yBmwnK2ZD0Jl+!qfPD5F}c43DY( zFgddy&h-~-_yhXm-hcgJe2TLy<-;t??CBcL*M zB+jOdgkzsk_~|(cuAfKYzTIfdY8?%aMPpD4IWsKIrI8dBQSP;NR26~`taO?@&vGABc)?-YDIJOz;- zra*Q5RK#4IiXZc)VR7j+_zs(n(vazB`foa#9cG~7)(iw1s>8TW9e>BoL~_hbjOnO> z_#GPf_CN!=#n4#+;bKEO6N6Nqz&^x$7=&4s=@iGhKS6kry(3KeBy%L(QL^HL-uzE|p8NLeH zzN?`BW))7GSwTxGm~SIihoJsFx>(7A|3GKvjcuwIO0K_qv+2ztlhT_U+-?iu6a&qO?Scwh3zojxE&jtw!?a? zGbFyw_$Rn<1q)pSgUSUZU4^F1eg_tw+5v}&JK-9z6B}Rbgr?yxywBT((5|lNy~P#o zEv{%D=Z3F7ZcuvShOYX%@jP=kirRO>Vx2o4%iUq2>Ve|D9(Zxn1B!F@Kq+<)zJA(+ zCX>BzE!~UmO8elmb)V3c?!)-8`?1t>KP>O>$3k`hgA)$m(w75pG!@#ql7m><{Scxz zAAj8PaWB?eOyhgw&UI?a8Uv%l}2OSMRIIi=9f3P27>--S?*bhFv{jrJpW6lk3sMg`pJI_gRyl-Fq)Es(YqxWMjwLVJ|qM&1|i7W9)e84nu|Cd0+%-- z&>a|x4)a4%wKWtgqlHcrq1g5;6c2ibL0>xz2^+(3FE|YSYQms>U+6o#hGXT7a4fS5 z$84`~^ehU;^{e3s{T&X?aS^zc6k~D}rp$=KcgrYL9*V-6yeRy<5CxxaQTR738V(Dh(XuTXePg1rlt&AOVKkz; z#UN!y4B{rfK)R9zpN85 z$uj{4An!)xR;fTkd|aj7Mfyd&lJITNkP_%6#Nl-<3-6S z@I0D=g0>Vic1lIdgjDb)sYrK9#m3cp=pSin}*-((qQS8CUk#k zxZRQlg_mhU7nly!sp;smJRP50($O514j-Y5p4pm?OW)IlK3j0@BpH}*lYxW-8MvR8 zfqsn{nA4VlB^@%cWK1R`2ANRVl!>RlnaIe^#Nv~gXnURsd&Ml=o0x_9i?a~5H49e* zv(TY1OXyXzFzHnm#tJQW&q+t{c<~YBZ#@E=z$5sRe*~eYjzHf2kJOp(jHV<8^@-XL8 z9#*`~!@BPIST!LZItKaZw;>;`2lC;Ul#j7>`6$1dk4ZuwAE{J;XA=vcwm|6SHx$6* zKmmLc3vj5W0GlrtfZi71pJE}(#umbOej#pK7sA|KaP^`J(Yv$|W~U3`^+fRX{uQEV zND;DyRzJw32x}dSFw(CG7c+|B$cymxdJ&vH6yZwuVvHSE3_G1-L|GN1WLGh2LW@z9 zSB$V@#aMf%7^+{3ajI7d)=w*Lq4VN0ykB327LPIn zMU;W%m*I9p88+Q0!~J(<(C<=?xMAgJomGyGOUp6Lwj5*kmO~}796$5Qaq?(6ysnpH z(wlNLbf|#t;0lyauYl4*!BViPK*-Jtlm=AbXj%n$bp>+HRAB$Z3g~>Rz=s}!-8ZTd zDsw6kzO)jbH&nvFy%L@wl_<`vL{n`gPMxiURInT3zgA*H_bLn?Q3bh16^sq5aL%R* zb9PiA%(n_x5(W3KvWFV zYB(iT<48$0S{emQ;%YT63$}#xXSHC5)xcy#4gRXvAkm-(qbzF>yR`;i_tiiztOolt zYLHb~gPLa1T5FK`q6T|@)nJ~I-~tY-Mc8z~u+XhVxLGYe+txzQtrmy;YLOpb3weGm z8l<&?{Zfm7JGEH;rWPFqPw+@j!N?e1hx}=E=%pjLg3IfWx~>kVoa^x5P#qqH*WpTf z9ZJjUu)CoSlP}ic-2FOOy{p63KXuUVS&tCadYqYDkFSz?^juPpzE<^6u&>9x-Sx=v zt;gz^di>6+M_@%gIyTm0>jlB%kbuMhV_-rA^ZWE4%)f`{#I0iX$jN8M7U&qlY zl%q9{BPN4mULnV|Dvp(Mj^-AQ;g>k#9!{zum zMve+KIc%oO@nx1A?h-kk>BynCK#ssA;^52WxV=J-r&e;@T`R{?TRB4QSs)-3vYQXK!Z94Y7Im~&B__p%)7*W?Iq75%v>N1r=_S94E} z`47bPw8=5@u^gYC$Wiu84yzY(yn88!^J~%PH*(B=C&%9Rauj`#Hs4!v=-!ayrMTt;S42O=J=l6)FgMT0(dm>Nvrfpd{J0#J4dOmS+%Ksd zUu)zju9U;1OpXUda;(mm<5;%nf2JJfsd5}llp{7)E?9$d_=gHkXP_KvzM@Zu<=D4h zjxHYJT)V_~w~M|xi1TfdBVxTAN37+@S}FeTrgGRVm1DvpIa+n)*g&Y@f({hxJ6UN?`kZds|qCa6UXZ=j@tp4_>*JC2QFAL9G&lT!HDAsJ}W*u&T*`s zL#K?RAcx~$GKXFihl}7G1s~*ycIEJM;MlyLW9CZ1J2K)3*A@KKIUH$IIJ%DJSTl$t zU5Vp@0>{g5GJJR~!;^oKsb9?2PE%#W&vqu|Zfy4K^}Cb5sD7}pK!F-p50N|WmGct}0+dep=6cOAaG zsl&m0b@+O|4y%re6)UB6c$!uxI6ZY3C+v-ya~%e+6Mr|ZL&Ll}xCy(YGF;dvVW-9k zdle?^)>C1>CZ4UuDp@Vu3WSYI5L^FR5g*iI(xzHGH?Kvcp4dmd7R4iKF}znT_W!OC z%n4yzZ`O$Crv|fYYB1}F;O<7&;K#ul9Nkuf9jj~5*RTd@vumI-rUr-l)Ce0_jsCBz zp?9+yYfe;Sb7eKG(}i6RsYcH|)i|@M8m?y5=%G`M@X6IsP^lL8t6Gd7Rd{l@3f)gv zVR(&bnN?53YPB}^JC;ZjtI196q` z@T|o8ZIzg9S&1LImB^n`i3NiyaY>;Pi{A(zr?mndj#WUfr~)pr!tXg$A$$h0H5c#a z3cqMV1={;mpyXFM7CkA)#q;Gbs4GWaMmfF*mSgs=a%`|Ehp6`l&uQgw8&nR<_A*R( zDVS21%MdOr6ESHS%7O(yS+JCSZOU-XpbW}W%P@C987%&k!sclyOwN}=qox!cQ%lh( zSj^kDm7?>CQiQTnbQn{LP2EdT`>_OHZ`g)sUd z7}j?SU?3P)xj6;m-V{JnaI9?2gdeV1fIz{r^7@;Pt&j3CuO%NH3-g7~oR5_|^6_j% zKJ2veacO8iru@r;+atlwK9Ps(`FVI1oQL<@^U!9Rho)J1h#r&&vtPORcQ+Tw4Y?Sf zm5U6YTqthI#k$40$eAoS+&y#g=Y0KrJ<<=}yP4oa+Yu$ARtz_1*Y{mq8f z!)%lv6Rd9$*Eoszrc%T?&qTb_ZDKZtb`!DBD-jEw75u9r!3z&Lg56GniDi5QN2eWu zVecb2{$9jVm$Kkho`us9S!j33!Z_0`NYt}1uWuIAKMEe!Wf7Z|XCgNu6DwUZ@pXA7 ze5PljWA9A3yvxA(^BEXik^zg53>_tHp%Z{IYyzfTo;rBqBQO2xZ?RAg*U zg|0y=u8c~B`M(r2-%Y_dSqj|ZQv`1-19z&O;~#zAjh9H0^>xUPb8e?AuH^J3B6D;9HX1b<627Pft2vGG-m z@NHr+Gc5+4JYvvd8iPHPW1uS7TNU@Cp;;e|;>c+9bBuU^~!Ysky z()EhMJnJY-ofQS8o>92>G!kh?MQ$WM5?`Go5o8#NKBFSx|1&~xVj_f39f4@U5WQU}%pBOnMxS$vhmxqQjx!DDp9S;Yc154)af8_+orp5uN7!!a_KmD=zfT|dfFFHQhl*?r!O8Z^u>~)zQ}#=gRf0K&`c0{x@|s)nD2vv z{ywOF;f+doBP+riesd;I-lb zD3?mi59win4kd(mn7URYe+gAn&UC>Xj2r41fPwDo{vR}YLS zaz~S~I~IT1jk?&~f(yMH3-7vN>mfJn9PI|%6Ru$PuK3m66&WSFFwJBaj)>smU(8PE z&)JFXw|3z0z8%;%YzJ%_Trhrv3vP69fpfMqJ}hv?s^{C0AFv${)wZMkj1v^MIpMpK z6E2o)L%8ua;m}bqFu``L!?51#1haiDIxJZWv*&9N>azwFqt>9|sNjNG z+aTeGHEd(8p)%7Nbr)7c*KswfyRJsxY%5sJw?fd}Rmk;Ng_8cOkXmjDkENEF`(h>D zid??`h?P*{7TCAa0@pvTz>rXp@1M8=woT@+Uu!N{?Pi!6VT|JK$d`VuCG7pm@FG~$=o!rrQZEtDoCMFGXyeCT(fVlP zX|5K8(hdPv=3t)v96b7?3D;;%e3__;jYntWsQGLtzMO^m2WMeRzggIquYrSeHQ;<@ zCYEoRiDAFhaVtU{KI7CeTs8x_#xpSN@pO2(Pe*Hy=@^_b4Mwx3!SU2o?6aAQJz~CV zi_aA3t4u-f;>kFpGa0T|C!yz-Nr?TWhMr+!&TNz#&QwoCAH#`QcxQr`ADMtd3KQTH zGaeoj#=}}R4%3&7!>0#hk+X9w3_Fj-o%k_WJ82BAU^HegAB}*vQ8>426xutF!dOvz zNo&$b%*6=IG#2xG4~OI3j^U{3I2_wzhoS!j!5pg>bAwA%QE_J|RGo&x%mCb5Jpc}``{U)l{#dQl zAM%ub=qu(iE#=AxU#5)udwp@usjs-leb5%#2UmynL0w62gwE{^i}StEXH72%$QrEo z_r%*CJ+UKM3C|}f!Bo}*#fy93*Uj!?Oy~~h@7)mV*9~O@x`AgaLZ%_+VUKr3q-j@d zeb@!FoV$n`8l90H(iw|~c1Bx4Cpc+!!kd0m;xTCDxjA| zJ72itAKw)Emv1Zh!>v#J<}=&=;~#(j;t49h_=H(MdHV7n{GY>jZs_-o@5%fsvh`nh z+znCx>(eK`vgaq>f8s~Z^*(T;HShTe_jiJA_LjR9zu`qKulc!$uLNJ}B|p>uCC{Js zg1Z<#=VLZL!A8_gsU(?pc!+$;G#r+=g>M0L+-h%twPt2j4xZmZS zBku6r{M&ryv0J?G)=l2)(+$41`wgBnx|JW7T<5K3*Z2*GtGvnU3QtYC%xx<#@d0Np z@|v~_T=(aBF6(oikD7RnyXu_fH7n2X$4;mDKc7=vG36xxC)NQxIemiHK5XXh-<$aO zUQPV?*yDT|JH}6%Hu7oq4Wh2vQGO;y&i{yX@5p1EtKX3EnQx_hR7WXqSE=V0r`7Qg zgIcb=x`wwpS94q6D*hm;k{gv*@ca|y{LAe!uKuBvukBpQ_YEoGfzyk*zd;e-ZB@uu zZZF^yyz}|X_&lCcoXh7Q%i*opv-z4=NBH%>SzM=I7Ehj#$zQMxKG7tdTiK=Y{T``2 zDkOy`WhC>M>Ll)YDv__ho4{v&i09us#`Cg4aeVdUSpI!p3=c39Yd1DWai2Yr{C!9S zH_iy>8C7BYSxYD%c{_v~zYXRt?LpkHUl5NNAIQVC1Gv{xf9|l(k1yQm%T;`R`2Bcq zo>=I`7t1~QowUQePqV1g_i{g%^xDT~XzbyASGn_h``vhK<}R+?vV)&~<;)lM-p)$ zV?QnaX0|4`Up0&0*gKPJr_SJE4bymQ+Z3+cX)@Oxug2{RC-8j^itoEL zg4=x>#`XKF@;V4Z3Eb>&C$ zI`ht_JM#6f6u9lcf3okZ{*xU@{x17+@3U;p$Pcpmjc;U~b6&_6JbxnFqt+(NaJ(nu zCAVZ}-(QzqRKFrSz3YNZT60F0_Ps^6SG!5JY+r+HkethI{jHNl&##s(@G6&mY$}$; zb}o=-7I_Ayt?(Wp%N?EPcf3*)L9~v9@mqlEMPLPQyQ{uMpIihQESbsX@YTd|xTQoJNcGc?s;-Hq=Wv#G-SB#Im7U!uHfl{t0|$_L~ODq}(P+__~vlt14$D-!5N}{0O=txuxGK ziT`~|GPCBMq{yjF(mw8~Waj-B5}mj=l8MG2B(FPvkp#)VOFFv!C$X6FPon!tfi<7+ z$TSK%voN2o?E1QHOp*0q;|KO+Gd}iW&Z{ zX8lX&u%7aApG8eX<^;X`_&Gl_WO$$>-)f)4LI$?6svsMs}w)R{ruTJmjI@=I*^^z4`OChgW36kA#8Sg2n&4~ z%C1}qW1SJs#^*#Z&9F$O;U2|?t&e8k3}YBqk7dq7;#lvF@htUqJX5)rzz!pkUC&Np zgF=(p0=E>lVNEKtUy#OZrlzyG12S0mKN+m)NhY&Dm&JZo9bvnZv)Kc$95%}#m${ne zv2?9`Rx9clOS=@Z+_#17(6u6_&x_f|%n}wHP|A8cm$8Eu9QbW|s7^nZ3Dwf=!UMuqA0HnT6LWX1Mt@8@=QVdph+ji|BifjsAL$ zCEq;H{_qQILHb4J=5>jMY`V;X46iWf$yXWcb&b9Ka81-3zRtSVwlb%L8%(zMCVOXd zi*?nx&AN`d!`^nd%j%!pWezR(m_q)2b|~-xYjb$W)Rwj}%c+l;L$AkdJ952{g%mgzGKE_?^%ob2R5qj zN4EaMN9KL;6ALQ+%v?jiFx_om*{3Dnn4j8r_NVI)X8G&~i)sGJsqk+r1lZ~u9 zMNa5Jbum5YoPrWv*{(z`4no_oAO+y(sm+UNpnLH&tEhP2+X@P(Vo^ zx;3~j4fg9xi$C=x`?bpCeny#GHT%(qtbR1NSASC6+nFXl+c`xqL*5u z$tr6!)d`(N2e&cA?vJ63i^h^$`B>ULcpPo=8b|YAkE3oY#!~~v)5dWV=ws*v+AiwF z-&{M9rk|WhyQZsAcDx!L`=>@{w@jkrLidq7XENuhAz2C^e8q}k8;}eDBV_{yj%3iRLy|8 zg$Rw$I|I@(T|lK(3#jM7g=Fcmkb-Y7qD zDE0gb+A_t0h6piH?Mn;NHe5+Lxhv^MCrg@TYe}n)S(4p|Rb+W!6=~dAMc=ioC@ap2 zG{0C;h3RVQSGJngDp^y+R%O$c(sKF8Q4=%sy&VS zZcn}@Tj^ZER{Gh&fqK|DP^TIPdfd~I@;5t@d4nT88MKX7yKJMnQ`_j*NGBS-$BAZK zcA~Lr+v(5Y?Sz}#X~PU>dhPE_)(@PiLequbgu0N@Qx{UE9rPz^2VHo%gS_YOq~Y;9 zDgEtE>SVBsmM86^Lmzfg%tBWROK~NqPp+hH=tj3w-N^p48{IM7O&V#t$@%kciZFDi z_*8fD{Nzrii#(`viU*~A@Svd!_RxXEJ=FYm553pjOMhec(x;bu>CD`HX3cWVaXfN%tbVlU`Kx-isa& z@+PJE-Za79n`T9LlSaKajd|!zofUoP=5!xQwe%tLLq7Cht`Egr@Szdkd?;m@FLhhs zOIx@33Qeb2l`Qk6>5qJAMK?ckm?1cGmVV@T&`&Ut{7C(rAN~2{M;Po+j`RIVX^TIl zh5FMd!Jdn~?N7hj{mFDf03|L9pewrq=yzfO4QdRaG0y^Mlu{t|o*78*ECZ?GK%n4p z1d_(-Kx%y#NRIu3=!13;ZCNKO|M&#a_`)D^z8FLWUxEZrDVRRY3#Q+;!SpL2m|m0w z)5$Br6!$%tELB5DQ8$DNH-!ieW(YNwhS035A(Z$%gx(Jg6}*m6a?gDh{Qp zOM*}LC6wY+!pMcfh^-H!Z{A^)l@~_y1gGxoyD&0T4yW4L;nd$MoNV`pQ&xI7T|OR8 zAD@PkLbnJ~m=Ym$$`N#RM+D`>M9}8C2vWHnLHu_FEgKO@mvkdZ-!77J{UYgCek9F3 z8%aCfMpA6=C@N5oq7w5c%5sY$zxXJ!mPXOYJ5hA)cNFaz9!GInzk#BMnuO^d!^7sUx^cZl{nH>j;A*Dcycj~ zr}r-Lv^FB1P!>WMck$%fQ?TuX&N{^?f#Mw!$SW{`*5oJ91i`&~_%wk6J0;TS zF^N>5n@FS9CzAicM7o!fNMm>+S>8&d{ofNQd_WRKX(W-4X%cOA77V=5B*B$P5`4oX zTJS81u69f&lTpcpdC8<=lT5aIk|{MVnOdrn>A|IBdM3Dd_qwN0(}WaCFi0Vr4Jp+7 zpwOEqrI3DI3N>F%p;;eNC`u`n9!^Z9VGB}e@rG2gJCI6FiK(=?MzHfPr_#8$sq|Vg zjnajdU4MQWwOXf5*gl{|w!A zTog?h2XMqfEWiK^6h%b=QBmRML9h!HMMVWMun9#BY1`$GD?u#l|%3TatF zA#GC>Qqa*t+I+W=+`bmlP@N+BFt~_{CKQpqdl8-6Ttw57ifDIv5p_IPMDy+zQQVgz zQgte(Lvok}TfU?~l-6Xw9YQtGmmwL#_!cs2!y30v9UryK8%IS5W zoZhC&>8@N(9CC{IPfqqvpU|6?u%QB7a8_Zo<*Rn#V` ziVkE{(Nbv@ecW9oe90=hd$Ec}J*c99cU7ePRYjNDRntTLYPvU|ni{RDsbE|+EqAJ> zZtm5z$E%vg3BLp3)zmMwnzj^Gle)T^Uh!&bbE=wjt_kPkaW%brUrmR8Ra2mr@Cdur z&`IMOnlZG7jxu2tPN^ZkIW?qOQbTvv*3hRdHS{gChF&Jt(5c)SN|V>n%-uEgMVN-s zXKG0MdJS!RR72O^){xQn8k*O#mbP`Or5M9niZZFCO_sIf$ZAP%QZ1cus-=~#we)F4 zEv?&7OV_pu|1hkUyc23EFRPXsN^0q7mGDdU)l&Z9TH0`?mMpH;(ye>7yd@jtCUz?RQ zH&990kxDw7sH8W-Rs2?{q>pkX-K)PZ%>Xj(@j%<3rCqK+x2tbNB+W~d_AF#94FOL&g43}K1FzxQ|qYP^g1$dsH3)yVi^%NGwNvN%sOi4 zB)%uYU{;;Tck1Ylh`zJM`b7AM2oSMZ#3B)vB0h-E^F)jmaX>6LTtuo^&m*zEULq!n zb-Rk~EE3yum{v!oV%s0ZekjELI83agyJG)b$JNnsvA@0S>S&p*SY8~5N*vDtaa{Yv z@#Tr*^cg0Ob7&pi6UV=0us8;BJ~jzs^Qt&M{rl9>l3sNbX;?@3-Rnesp^lPt>S$fZ zIrFNxproQme362I{=k&X_Dw8m9*aIcD9DOIFVrJ~ky6@4ofX(>-drI{k#rKqT7 zyoxd-Rb&t%(pP|r9&c9Bkc}d(tW{CyN)@Fp5$Rx|igwHq>1&3H^rxuk^jH;nG8KKX zQqcwr6TIE;4kqII?4hLpgmILvrKG9ntBJ5VD$(;7OUTSL8D*O1ruYLdRGrVID0 z>FK3vdU?E>Zqb44|U=U3C%Brz|fns)hD3n#mpHn~>QWyfmjV_!|K!>cKze>G)w ztESwx)fE4uioD-ck>p+#HD9O_Zf_M?37@vUw2B6&S5b6C6h`j58$iv!)R+7o4N-|$w zNyc+3snvu^x;~6VKiig5z!wF*d#oVGiwep*IQERa9m1NHBzE%DXBxHG+@1y0v8BxO4!IPETm+rFQqXpq%`hL8I8PFChA+l zmQs|FG^LE@1e8(J$}-yFR7PKH%4l)FGI8yd(eLI`8gajrTpCMhjk1*1W|z{UkWvzr z4$_`mN{zOqbKO2{#&gnT?p#67iy!fi@ubKeqj z(JG+VN2d5eswFP%fAXJ`%wYSYAm2HRRt8AQb3)z7Eq{r0lgSsK+IH>+dCFe&8K|2ctg0@ z`$ZJz)1?Se)?b@XL9_D7epEiaH_WHFzjm{v)7ROOdPFBjxd*D-ly zX`Dx_bsmj+l}mlj=h9DQE*($HrJY-IY0#ovI&7ay)BB71NSj9l zvqm%cLvGndH7HlWxq-r17IO zDPKR6UVhJ@{=x4Yv(^sa^=SgXFYd{*+woaqX&r-?aL@He` zOQrQ;sq}q$D)~-GrF;ESNurrb;g3@2=;0JKn@laNl4+Z+c>f`Z##~6EsH!A75tBrpJd;RgN|G>BMYI&w)}usG zeoUlOd5ILiJ&`6XNTfHT5-GGxB6awfK#>;`=yPQP&5BN-!c__MU_t`v7$?w(zwtEb zPCQL-5XM$|Jem5&QwyhfI%^hBky`OI@>v{RITA<93*zYM_Bi3I$I*VPIMUOJqlIsU ze}5{L4wS{xt)N(XA>6I!HnDW0Yb>doVkqI9aJLjO)IKbR_AH4ZCyJrF-DAl0Q#74D zA5G?>jUy;5nocf>ravs226m68aUY{-=D8@EA&(-vkSOZw9z|cQqX>FYkyP9vlDR07;bL5d zaFJ(+Q=duUbkQiBHhmZEK9|ENsWObT!^3FH;xM{y9Y%w6!)Wd6P%1taN~iNe>8XDx zeVQp^ka(>j=G_XR;<^x88yiBVD?;doZ3u1a7DAmw`%}7Thw5AyOgpv&(`~0cd_1D{&W1v)@Gl?{`v0 z{!U7F+)3Mi1<>S*0Q$BdfD+pVP{(~cXyb|<;+*UdUoSCk!%P8 z58Ou0SGLl|;H`9R=vL}`cMHvq-a?+Ex6tY*o5?Y0GZ~E8OlMyC(~1m#dOF^p96tC_ zcCH`&C)xnteBLC?t4(y%VG~t+^Cgc`U($5)rRbj<>6>&T&6vGW*vLLqBljV-vkz7O z*+7ws4K!`e2KxMGJ%uUO(;w&ci(k`s{V|?w2>clX}xtCvPhKv6kFQ*V0eN zwG{l-OI#0LG-a9>MSfaCHMwi(;KVhw@0}-QWO&kIdrx7ouO>y(Y8oODV{1HGMbD#G zk@1LCH0kzAnjNx|CJ$Lj{V%VeSKC%lmN37DonB5#pXJoUU^#go@*w#t4?5e?gKq9w zM*q1jqZ&=oep|kjOlK{nV_%ohl>8;MXTlO{|9UYwBrPVt(PCVXyY3Vk;!bN!-O1*{ zBKo*#5v3U}qP~aRC}V{ieQD=L_O-6$J6E(X|5!*F1q&&1!b0+Rxqt@7FQ99~7ts3a z^XcRE`Lv{u@W76_(D&6YWYWP!Q1tVN=FX#m-{;cr+_|*helD$gGKYRg%%L4a=Fs!= z&O{rXX-8LQlGe{A?mCrbv&imlQ&aoYTQ&> zXfc)MU6?|)8>Wzs&J?<+oGj`Flc}p1|0OGB5@}h9@nEh@q^eC5=~0)7q`7B;u*)Y< zyXNuqA$2?*u^LZ7SH_Xqrg3ykZ=4txVJxX5{kP7J&Udh* zhRQLNG<^)sdu2;)qijh&(3Y%D5LGWH>Y_=sx`f_g#H*vsCl0a-I{Ad zm7lE1E6JJ+hFa6^v!jXDjHbFaqp5q@C|Waa6qVl}NjG+kq|XK;>Cav(`r>RQ{K^qj z8#jV{2allsCx_EfkKyF>Zy24;9Y&*UhEc**OS& z{`1;jW-N~1m?CcWr8&NRNvA_!Iw4-G}rf_8*O?Bo7j-%*cj5!iw2as#(;Wh8c=4AK51I%(~`5@ z#d+^eZ+~^8-f7*)&b*s&jk}V|qORoF+=WKQb)k+XUFatCC~b}&jeny{k3)3HuZJ#u zQ|XBRg>*!{r8Ajt?Mz!bccwkEPV{t4Cu)7IBN=#iB%_ucse4Wb(iq->?lrcjs>SWa z|8&}99H&i<{j_PR_%HLVQ#|#|WtU^Vu%&yN+0A>O znRVOGENIv#rds%soeODV|5biqqVp9?{_~E_8u*TVpZS(WZ+XL76}@I_PQ79cO)puK z!Aqt$?gcYi^PF`}e#X8uJY|O-K4E@ZPgvJsk6FR|M@%p9A@h|zVEfPCXCIsIG2LGG zSg#3pnV#1j)|_;k9jU*?w%xzUdbhsGs?2UMQ|Id}aqBhqsNgE=d*TXncypO8*S*YE zSzlr;>u{p&|qz^}thtM6eJGVu_5<9U#ck3Ya7Rr?vPf!+VX*@xaD z#;Mu;l?`lvbUlly-p3|i+RHvQ?_u!bR>aa46|$OL1&kNvvxcL2Oz||A#k9#~i%oNw$@FY?Z*3NfiqB*NYcp8=#dO9# zr7>lfG-fa=mHD}(uwz@2S?la1Mm&+NxRbzwe#f(<-tjEWE{?@6iDjFEV%WUmXg2t0 z6l;1M$tqh$GB=Y5rZFj;WvvvJSwtvP$U<13#$XovB8a_d8^l6p?P3PW0WAB{cGgO7 z8*_Eu!g5pmS>xqR?17#yd*bZFE~l(#)t9}QzusE$8?IrelUFmBODow$9q~-cEDsi! zxRhPEu$cYr=+1i1aASkw7Bb_r^O?4`3wtzmE|W((Gq;nom_}mK63q7P4F zZ~snVc4H>9kR21*UiEl(``cLdVU#`lvS|zxO(5+02MJSI*sz^zM>E^o!O)}9od&b9a#PfZSjY-7W?mB8|K!dHM{T9k}XVa z!7>Z~N!A+tmRKf#mppCvMG_P8QPTI^o-d#!L`J0l% zldehLAGjpZ8GS)wT60D+a$uvxy5N|^vio6)QNn&n%QkAs!<~C2d%vh8!Ru-ylb=;c zTDr?6{A#Jh%dtq(^?077K`6}gcc)95hNMWsOA;jAd&EjglOrYO?ZPB=K|zwWP1_{v z9{5VuURWzxbzp^Lah1DdZmx@DdW@6Ae%n;ZNY8N+v-wP7GTBPfXOy|b$Yg-TxQmfw zu%^Dm`eSE_<3laU>i=3uy6^mAv)=86&27mo8&`v~HXpz4w<)+*W3zHkkS0^@4 zQ$pR{K_msmn)1sT=EK)#q#z)%%X5 zs3Rt4sOfCB`l?gD+WBgcde4F~_0PLfUSW)bHQ!RTufF)gznttIM|> zR{#BZOg(Z}qk4LavugXW3+gUyFRL4)uc;SwxTQXoa97<;_n~@h>J#(tZ}-*EpNs3Z26r z*w5oJh*ox_x};e=U7KJnc8 zS3EDgp1{AT61gNkiLdoc7S9W(@GPTLp86w|2V70#b86GMeoO{GwIY+Rvd`k5470`d zviZdeIlO;)F82t{;|cEhTy9;!t8@!_!J9%JaH5D$E-dE1x0dii=TdHAUM9}Fly`a{ z~^PkJf%oeAaqPOl1n@=FEJyHLp&%d5C{P&F@EP{U1z*Yf0cO8)ARlACcA zpPy34H+b#lKI8Xrw;p@>@K0hq=F|IlPH{aSx~+j%&QfzdQ_h$F<2?U5_~GjP{CwB} ze$4G4FBx%&d$l{vdp>mI9_Z}a8`97Z~ zeZXC}KID@e9`SBQkNKIV$6{>jC;VCZQ$F4E8Bb%+`SA`f_|5w-_(kPQUK8?)`^oeCgZswjJn|bk( zFZ^KgSAJ;OH(oOQJ73e{2iLpwgBKM2`MYsXunz^oPKr?i5`k5^Kr#g5yRTml6 zy0FmG!=BB0FuS9NB>OISR@w!oT3zAh-4y{ByCQyMH^gUk!;as=Y+KqLCda$u!61D^ z#pFr^}$Bad1{3Dllve}(Fe8KeR0^kFAiSli;7{!2u(4DL$fh7T>7D; zz8^*y_DAjZ{^)VHzp$`O&`@B4H~&n~e%SyR936lz{RiS_=s^7UbRd!^4Z>L2Alz+Z ziWRF(al6qJV@wAlE^07Ny&Q~>Q-`2!`4F^gXNK>dX1IFF40)#Jm>p$~PcO_7IK=`# zWENQ3W~k`*J`^914@GYiONr5KEsKWX?B8JsbRUjB`-h{l#|ZS>HUbeh zM&Q~gE9jxif) zju0bH;CSi`9DXwcWfNw?S6Fa^KhMPJ=}wqk;w1Lf3B6~}!cxU7#QvLwBA407ubz#N zR?e91=8U#=&X8-(f#s4pDBL>--`mfH#A7Zz8s@^U(>$zSF%Pr&JoMCY!G)DB@Px48 zbmqfl)qGT7KA!0;fYz!7=z;}kqq7hXS1d%SdLd?Xa>YXrSGd-@3dFz-t(LlB)E+m? z)LMj@ixy$DauHg$5)i_CcPtcr;2!*Shokdi6iFB3&iBRm>#zh`g-h_`;}Tq&xD-j5 zOJV(bDURDNgCubo(jG0t4J!|5M0h~=rU$f!EXVU5%TalLIb8azz$>2>qOaQu9PP3a zS}Rv#l(6Hbwq1qs3s#|j`6|5ru?m^fSHmoKHDqsAqm8X6X2f}7`&~~Yn6E)(z#6PR zw+0ryyl`u+7uLcHPqo)#yz5#-l&^*I`&t~C;*I(YZ=^o+#@vzX@H=E3qA!VQpY@ox zemzq6uSdQ11{_(i0ZQ2hgg0-%*zrDikm!Sz_k8f*kd5fGbtC4T*a#mzU-&HX#XQm9 zvF{IGT%5ECD^oV%!Tn9JGxI~}7C%%S^8@efj~X|BM9BRy@w2ez>^5Uv%x2uWwi!c= zw_vIF7HqHIf^C{x;XY$424ro;<;PpG!eSe4Z`p=XN4LSR!**o3Y)4VicErElj>RK) zpzE$3sA=2*bKL+WxCY=_X#h0d1)%fjozM*2iCc|3k*>1~qZaN$L-8*3eZ327M+72w zdmw6$24YU@AdDL<`jXBF!Y7{~>`e=TS3?l=?gpXqUl2z14@TYOU>JJ^BRD=7SCqlf zzZwk3Z^EPN5rX(JA;?-9BKrJ=AVd}dkJBNrdK-dookCGLJQU7zL-BfZC^lt>;yps) zc0UwqjWD$9ABO3oZ|u(1VJL|XLw#i!4xJa%4`C?Q4aZKaa7>>U4y`TWXvhl3LLQE{ zcf#TGCmhd=BH%DK0;S7@PZtt_L1hteJ`sTp&m*w2Z6tP@Mq=HxNH}>#qF-zzo>xX9 zPxS2_|1J`@J4Rvo&?wxU8HFhuqEMO`g^#sSu)G+B#Z6Jzr4x;$VbMsLCCoaXXsk(! zhP^TxtuIDnzvxrEqH_%X42?nL%ou2{kHPx*7@Vn!fx)>LxV(u$xOOb0gJZF8YAotk z$D$%47V*+pEIS^H0Z(Far$ros`^Le*J`RQManKKlLr_i}Za2ii@1ImW25LN{VX2)H50I?Zvx(rNx%lT1U%ZBfQcCi$lRTPI~Nns z`F#Sc+KWEfriqv_DG?JqL{E#rMEuK5#L0$4;gcnbzT=5F&?yO%%#v_G^yMD7A_;*( zNjR041Wk1k%&#S3@<-9%yJIpO1}9_mq-5wW6aBygl98E}j0t;^abNTm_j;3z=WSBp z+%E++V^Z*QK?Qm{NR1wj=lh&z#j=!e3{`z5~9Jr#Y1r{bdhjIu#RJry;mc8mc8}I6Wr~*Vm=ta%36~7N;Q_!ppms2ICK+&%0JSR`*NC zCrZbX(h*Rcj(t2G53Z!+$J=yhw#mRRqYON?&cOaz83v_AFdY&VpWf7RDaV!lD~lSo1y$D_dt{R#P}oUKB{ohroXTZL$TU5L)Vg(16~JWTV9OwzQvdtQjEIfVrUl^W45vwk%x*=d7&5w?-k?F+hWxIDn`6^30w_J z(A~5IhewxS;iM8goKpf94*?7Ll%P{!37q0f5SUwng7Okn)|Wtbq6A4-O0ecp35I)K`t6XSW4IJA6QodPNwKO#iuP4f z6zr7>%SDRBQ&POUB!%RT6q}w(k@rrD-Cw0>_$NiBmJD&aGA!yLLy!J4oHUbR=|~w~ z+RCtGk_^XZ$e`~c!-B;!M6HrRx?Tp=W*I7X$&eZ$gI9tKLo;M}lrKYwR0iE@84~u$ z@B_kEJSIc#85u5JlHtou8QMM+@j`~L?_{{#EJOY;8C*2w_@gC8JLoJ&x9)O8_LAd8 zKRHGYmcz$Vj+{|)h^M-s9w$fj6gd)S$gxy-E`1itac;33t5?W{aVw@9#CtzE`fitF zS)d%rVZv{WmIDdGfk~AkKTD2H`Epp7$ni=hM@*$021+^7_sF54mSf=oIf{-5|54a6 z-%rcY?t&az!higFO^!>q~A@W z|H&cMR3NLh0^76{m?G@RR-F{6)lpz-7h%|RQ(&Tj0`eXT{OF~CO&?)M8VkFozXCA> z6bKQ{q~~A-Y|VrzX|6!^Pz4-^DR6VR0?t+n@R17Wj8p*p`T{;}q}_!9{!&p+8;$GZ7XddW-la<~5245ivx>VX@34 z5e;G;1|n9A^_7Wr|0lNbN^Gl1Z1b7e_Gz&XIbvU2#Xf0`65kQ~ICO*pGO^DcEEQO0 zp+KoPmaF2JK8s`17$~+Sj`gXr0uaX@+*^T>Jr%ev&dI9o3Oo_#XqK)572=$I66bDk zI|XL6QDA9Hu`Uhq*&jJ9e#-Gfob%nE<#25hzrXk`{9cK4^GuE@kLAd?FURHEB3)gV zqx%&(jQ*3O%UL&R0;o6AxB!NcwHcV`yAnZriGl&^H-^nq(+=B@=#}3}tu3HF;Hr z<>zI>&XeKpK^b<{%g{+FL%c$UpG7jv%a)-qS%w?YGEx7LL2tVZ-F(IM1p865n?z0k7^E!@j6es&o)PAWs9qzri$WymrvLrAwWxU~~Dtgx1DH3>KNX({w> zmLmOZDcT$=#j3he?2(q@Q&uUA;z}V2EX8==Qqam$^jlDh@6$`Me@rQShKc3+m!h;= zDf$bSDdlGgKD;dfJrGXqr4ke!D}j2i@R;N!sLw7zzOb4$?kvH`4JCNKv;>jPCD5N( zf{almXgR0^OASQ+(@x|!Ka0^>8)FyTD; zi9B|B5k5N?36Da2cX$!*_bozuogxhSSBMes3t@h*5Z#3X^_~}EUwI+cWfh`pWFgA^ z3o&#>AxfMJ(Ry4V7FY@&s&^sIwlBn+9|idJq5waI75ws80Zyt4gp*ky@>nr%djZlt z3xt1Kfb0nc&>UU>H(^GVwlBc#@A+u)JRka3^3m&XzQ_;q@ijXirz7$azbPMMm*(TK zV?O*O`S>y*U-%*UIQcgZ-QS3^(v3WX9m_*WZ61`ld8iStRPLrcY+aIvi4J+tu+BqO zzdT`M<>B&=TsS_<#lDNV(Al3We8gO&rsM)Ub8*!(7kB4~sa-Di4;J&g=EC(~4s>4& zYx!!9@Y`~5tvm+~X*t55&OzHXIdGhlgWxeakPphieqB)({FRNp&$5y8Up6+Vg+W!C zjTdp*BF$%`uP9@diL$1FD02pgvgajH2JQAC3)609Vcn4|1XqaiYHAj?1!Tc}Wfn%v z%)-~vS*Ylf1t+a6JZZ{==Pgn0J(7v>6`9CP$;935nb2FF32O)8SXpIaPEX-Zx6H(_ zHyLPiB?ITVC|j3gz$_*M$2MlbVWF6g&49V7nBO@A7rv&W?frBNKamcHs&u%drepT@ zbl5IShr!fzJRK_R>u%|o@jDG~9;ad3=`?(+O~a~;G@J-XL$~E=m^UpA5teCCbV~#O zm5Tk3Qc>HOiqz^Ms|zC->D~)zLriTMl?l0_Fn`#)Czw-Ap$k)BJjpB0*2-h zkhG70W53IBri2M^686IBJHY>0uZm4uzp}K^S5J!tl*C4D%&n zDAx}Yo>?eNu7+YpT_`-0go(dC6k8mHzcnOOv}c84;PVhP9ScEqaR?R#hT!j_5HYG% z2n-Cw^h+@QUJk}0(cV!l+C4ss_K!hRgE4DBFuXN`vHd|1cI*$rhU_4?Yz~6uoFM$N z3Egd3Lw(Kjv-PLl$${O>Nf*YCm@pIy)#ybINjcET=aC-yq;gkJldn0G7yyLJR1 z&ME-GZ+2i&=??UE+kxYHJ23mqcAN;_4kL+Z>uK7CF!?qlFW!dGZriZv+*b4o6=M-d zwqj<}795dnK~MKBaO<)K!KXJPA#gK7Ms0@s8-ExT`{SgGKjwAt$C)F37$n-Hyv+SX zTihndGB%;WVH0+0Y{G=SzM`z^i*O@fXk6Kday!GaolyJ>*P*cEI&3@a4YtV}PX~Cz|K?h}k68<+ zF>8_a!3(E~z3^y`7aq6v!kPLt$X&BWjJL1`U(R`A*Df(Ggrz5@Jz9;}l-1ZfVKq)Q zufj3uD#%<`!B?~g4s2M7W1gaI&~PR8onC$_y&PdN%dwL!$CB3`7?R_G zd(%9y{l_x=Q!K;!1@{5ZxHE=O5TP((; zyY48CamNcAcj&)ZgkkB6Fk-?Y7=3iZ=K?qEc65W=PglH`yTWUpD=uofqOWox7P>D) zfc8Sf)Gt8riUsh{T>y)N^YO%MK0@^8qy2Fg1p2t(UN096I6V*Z{pZ2YcpkQ&p9}A8 zb1`MWTy(rN2L}V@V4>+8+`r-sr$A?v4{^qaYqQZOcs7{%Y}ntJg<&DH(B5JeF5PfK zNQe`RESw;{F%$YBGvQ}G6Z@~vz=t4VfSJvJ{xwH*2z10-Q%BTacEI`o2j~oRK*4|0 zp}%c9cJ!N$vuCHFt^YI(HJXNTjZ$Kb)SUWtta7k^+dFDnTVEuC*YNI0x)9&wtpE9ll<|(#PP6yI}Wv}V!Ra^hq;f( zB0733Du;~)zhRHPyX-}s*B-v->|nLYPMEKD*m-!27|Uafuzkni&Td-_aka%N4O=A2 z2vSFa;uAx57Q<#chH+0N_z^8Zp``>PuGye&yAAsGwZV=P);R8Ejh~&ZVYGKNhPjT0 z<-bwrT{a5erjEklcO$VmWh8o9k3{tyD_8_sAnvW!|cy^&(o8!fK(!cxCpP_38REOPvgj;k)%(*TIUfTt0w7Xz@xgI)B)x(+Ry4V`73j-5fR2tJK^=#PB7H(1h%&$X3Xg*{LK!Sp4b5+EjmEwY$FA z?J>Jd8{fuhBk@5y818I`j2`XKxt?^&F$)cahnf6x#6In{K?`UJT2opx47_)*S7w~4aR)sUVdMA zS!FXn`S>%xWcZmMpY@3sMSkQf4>obVFCTch*#~aw@t!ATz2lEByyd-HzvbiT4WGI3 zHJ>DZ#RuMd$(!_E^0KKf`1oDV`I+6%IK6txGmW0|dvl)fj?s^~>A^?b;`2k^%k&}t zy66E%@_p`g@*Z#f>n@M6yvu(szr$U!Zu7izxA+B(Tf&^W$(ucI@Rxbl`KgQ7cv`D# z+`;B5f4}w$-&uH>|G0dKFKu&)?~z>O&EEg?9nnqqPd@{WYC-_2*6FhOmabCCL7(beElpj8IgjfGO%p=VYbEn0J zcu&U)oD{A=0v}(TRcol!qT*ucc)?@k%K-Y+1_FMwIXt9>sidauKgNT*%*lDB#9@3iza% z`P^-19$#LS%NO0r;ZwD9_&`ZE|GGMhH)Le;btf`-*XDFy(=VOV>@>~;Q@MFf3QxY9 z%wK6I^O2Gy?z=jXm!&80)5qfZqmOa?U7tAqc1A3Jup@?_ERW{JH=?*t>nLtz70F*O zjo|4C;e6EoFn;<~D4(q#%Kw`f!pHgsb9rG9Z=Dm!rOi9}FsA@6E#J;twc5sKF5bdJ z8~k~xo*%FA_T^3TCTM4;^QMd`Jsoa_+Yk@2c<6O$KNjF&6AdL zy~4%Z==&nBKiiG}DPPDhYcAmFZZ3TCp1J&4hdJDDtKNF&rP?I&nfmC6$Lcxv z@2jsz-%&e^x~bmt@Tyuj?vmQW`hr^i_>B5te51Ov0$MZ!~^QZjH_2X+o$$O z+O2jWrF#7HD)qqRa&=2vnfm7Q616P3P`%DJPd)TSmikq4y1KwNMLqLHg8D~tth&fH zNE^EXhxIisuA@7rEI&A*kpRr;@nF#GonU0*+J*qe5x z!PEX^!?4#44V}^}8#KojG<1HG)G#_DwBbXDcSF^!*$vWR)(!U}do|2|(4xU?{e}9` zM%ne%`BUmAY4Cl~M;DHoy}oJm<%=HH@q1*}KmXmao+s6^nK8Y;&7=2YY&xYbu(>>X zlTFum5jN3wX*S0bi)~Iktg(q1zTZYSO>#{|1rhcbn=+F?!;-GNJ=F3qMf0H8TXS9m5RCrnT9UkNfi^ zb2}ADa+j1!8kI81jTRM>v(D9$;!>r=t$DZP`^0+5=5#K(@$7)aaP$$0ZNzcO*z1jw z0RzuUUin{;B%HV;(d%|i;=kgiWZ&*Pk{g;2B-ds?mMDv!NxVM1lxWz!mH5VekQ}-F zN%Ge8tK{?MAChawe@mvd(_medE!cVStfTLrR;+bd8x}fUi+yNn$0ldCXE9?sGWC;A z>}s?QyJM-x&R^@oDt2^ZzQ+1&K%)UW>fM7)*Xzah*Y{?I?tR!2O=FfQ@5jm=O<2{( z0W3RX5L-`!nZ?5)>}r@fTRwOwyK~->+4>G=Vco6R9zK$tTRfVb)wE%CG6@TsPHfbB zTXr$oj?Ec0mf_|&rX4VWjqNjuxgDL%7OkAh#%oPyohlvJ;TbcSOVdntDPN;?AZ_T*4}zEoDs+9?Z~m1v5FlQaq!)nmyKD z!_q6g*kDI*RwyjBZ*d#gaEp!1;k+-Kvd)j0bll7yRc&E`j@#JZH`|$eYyis}vWtm9 z^O*adAa*V^n3>H9VcYtJvigsq?CIe!)*>mKbzBm`+6|3lpMOWPb7!MidQLQRToc1S zS;w--HgQb*S{w@~jc0c^Ca@u66WQucNi5}V60598W_4Rrn0#_7i|Lxi+#aVfLuEQU zu``1$cF1JU46@k5=UI&J&Svd`bJ)b0xolm}JQngYkA>~cXPZI_n3Gc>)9+Qp&b=&R z>-HA2pTQ-}Z)PdG-J^_|zbIpCc1u}mpp2C}$XSKHf@MBYuno24%xXskdpx<4?bNGc zE$>$`zw&B!(XWQ-kF90X+AGq@q+SjCoj*D+h`-K?eN9=7M)9yTj;FT1`>JVR|> z&x*d*vuB4JSeIBeGn>bmc^@!?S72|&SkaXM2blBZgX~G?Lu~P_L+nV&Vb;<62%9kK zC|maTDD!MQ#ug+UXTuhrV4sXnvfS4vnZ@o#Cf{+2X-_=O=5;v3BCnodC3$C=bj3NA zXnvk8Yd+6s8&v$mb&)WA%xdeEr1UH+*J!JDS=5B%OCy6h9Nk zMNz?q(nLWJ5y1vl}v3IeH6?^YpvHyJY zJntX#?Cotfn@n~ylkCnXLmj^ftJ|~+zmK&FWAZth&Gm=ir~OlKJoi)RSpG}c?fF|6 z-~ErU`^q1Vk@+h)`ur!%GWaKW-}oogy0^j4&28Y`MFZv08aR4h1J8%F#qYAVX#1`$ zetNXS<1Ot#T{Mv&tqG^|ns_s~JqkCNTzhazl|LbpxqH$BRb;k>5ee5(t<;Q z7CfG5VXCt>99L_@tZgTJ4C;iPhdXg*RcEwM?~JNDona(&L2*qNyl(9R2j8wp-`y2k zdvwFa*lxIgfy-bWTqxGT))zWRozxwo)!p%;O%LP+^gxdTJy6z57vB?gG2@yp8iwoP zT7@3|ywQWcn?8E4(}zww1AGZI!07`9DDGtlA<+;mR}DGWs3%^O_JsG#p4jGWgdZ!6 zFzl}pX8HBPqP@Kk-=jA|7WIbn+1}8%G{)5|V`SVlhLODqR?19Z^uYw_Q#i+s$DinG zm}0!YDFXMKB2w23p^MDme#Q*u7JczFy)P6zhGo=9a~vr*hw#!It0wfrkA{B0_kM_; zZh?}`7N~09AL79NNKp5Oo1P^)FS3OClqG!o4#5570q|`efW{$K&@Qlo>jNvq+gqbp zVvUN|*2tPT5CIJXF^I?EJf1oTh3f`!Cc_}q%o>b#I|gH})(|WY8iLD>L-4-)Q2dA( ziVsJI;;NAiR>j#M;EWAA^tDBOk}Zrc*`jE`Fg#8l2CM7C;5TGA5_5+mtA%fekHD;= z5j>`91n!R>iM+CrFnBT&Qqd?Lw>Ju2&qtxsVKfd%N2B@WXxwnL!%4XvmcO<`n9~>- zR`GbHH)DYD_SjZskFIa+F^ey^T~@`}Z*N3sbP}*#Awa?(gL&fs13A$65^x#ofWs08 zSUh*YVqq*cSB%Bw$7Aup&Jnju9C7fzBg#gMgG<3UytzFNDMOv`CCdr3t~p_y)p*Va z7>~9W$Mbm43D8VIWt9HerSFUIgCSw?n8;iX+8MQWU*plgn4VT?eVLk-`i>ILH z@hM<>?wAzn4%*|6UhO>)?CSv;AJA|8=7F7)rb4Bdilxt{V&rH~+{yDq^fgbsu<*i^ zC0?jH=7n=Trr}l4G<@7X4G;gD2KChGNNJePW7ei)zi0+V6wN@@jTv~--y23tykU3L z8xA@?7(CAh?Kb=1*bg5>y7=O^%oj@^`SMuEnJ`V8iD_qNVxi$IM1{Tx%gl zdM$);)k3_!yO1-WA|Z;51nr1KzweQV8ykhyxluTHmWvLL)%1-&=ulOFO*;!X=db`LUKRkF zg;;G?$m6&RF?nVo^5P4ztBf=7))(T@u|hn)SBPsr3el)ngmRlA%y270r_dto$|!<+ zZ4qwl=KozR!r_-iFlkqe=sv}q9axNe(~I#hsu;Qj#pt=B7+rXz!-xdM~4#kg)J#!NdN%kLq^pb#d|%=eG-|8MZ)Zz}PijRe|; z5?BnDz{W`eYhMZUA|-gAApw&~kg!1l^Meu`x+1}p=MtR$CBY~iDI^wB+#e%_v4<3H zK~jV-l_H@?iX{zF1n-c->4X&BZb@_xQ zEywVaa!kJ|N6;%Szvb}is(_7|0)K}oaA1N0Q9cTETA)B}k^)A>3KY~S@N}~RBM&MN ze^G(u4|uwd3N&%v!)e_r?6s(ZbW{}rCRM?BW);pXs6uE`6+RYnPDD)=Zf>Z;2z3=Q z&Q_uEb`_qys>0u&Rp{8M8XCQ;@n&E(PKc^e?p6&KziPaXs7ArEYINg#!2IfJyj@p~ ziTkQie6kvcuT|sOlWP3_T#YtuYw)#u4Q`v&V5?0H?{{lp;ZcKAb80YqVGUZ6YT!}8 zkI8HB->Moo?yNz~Va^b|Py^+i8q~k4LCNRStyO)Uh6TAXyNh10BB zYznP~=Hgm-W^#r`SuM8La;C<*T3p=C(;TVgyxCf0x75P*MJ@h(sl|#mbr{vPj{636 z7&xE~r6cNa&#?}s?wr>#s}3)T73v9!jfvNJrEoacn)@CfB2jcRdcxt4B~oJw7h3 zM_hV69v0TaQCg3(hI%xut4Ay6i|A54`kbtX(WQE{y?T>36o$Y9)>F+k5OVwf)Zy_ zm6(#F1S?Xaw^)e?g%a!Pm1th6#E11t{Ng;uZ@ZPauU2CJVI?w8Dq(j{$r*M^#NXh@ z?(qB{DRJ((5`Eq(5%5WgidH4I{#Jt8sGx4I;&woVY#kNc^;Kxkd5+uqsNm91g$n~z zm^fI4jkYTM9jW4OsR~ORR8Tmnu+EvwWd7TO|2K^v^WkY`@w9XKIf4A#`8IAP_Dvfu?mYgpXQcah2hmI zq|~agv!3rORh&D)kFQkW`D&hitqKk6RhYL?g|3@C1b=sxE`Q0jX z*sFr=J{4T|tKiwFg0otMK}?1JxEv!D5)Pmau%bUo{{f3v{lhu-@H@QBfTrUm^ z6|QqV&8y^Ft~ZpbAmMtv!S&fGm#5EC!6}{BBSnP~Nh;_r<%~|=4l8(jOpR3GHE*B9 z5PtnYUJid=p4q$&c{`4p&iALPu-Hw7q)947jaR{ItP1@^oaH%+>t~n>c0*J+Wu?L- z3l(;os?eji3IPV3G1Og!lbuy~&_RV)8Y(>gqeRnpC02gs_wG9-OkXN-{IL?V?kRES zrV^f4mDq7!360a7HF{Ku#iWE}uM#V^bN=W?CFhwb5w28nUbqtPE0w4zQDQ_MzjxF5 ze@RNz$0_l7p%V5XO2qgpA@x;ay{8hJT$NBd@#jIL#PktL=nhumn1vGaO_cbguS8r| z&M$4R1USp6u(bil-#6g>bN(zpXn@{L{ybme{luvTTs*`%NBcMzbz1|zuI2rLvH?1Z z20pgqyrbL(IHWcpb8!Q9Eo{KGpawjj)qoeC4Y)a}0s9?z-XnQGGKinsm-jtA8_>5~ z1C*NlI=|}?_KCAuU)1C6y?Pj4tH-dWdI(22qm{E-O}5nI>&ki@sIJG7@_O{n(S1J=V4KgUPkrk+_fI>HR^G=wGP>D>M-JA9h$Gz zA>?cwo*b-$H|NFfT2}{+`Z_p?dB2@ohq9zP)J4^yCa@0q-kdG#%Gpb(!yB7ARQIdH zNW(fD)~S}|T2!XhaxQf(bm!NC zd}`t2T8q1)TKEpB#X-|r81$&cymqxve5=8M7d5zcy9Rg8)u8!c4cPV?NI1u7wyXv^ z`8C*=Sc9n%JdIxs+}&%i%b^C^+$MT)+gQMD^B6IH=+ za}`?as<6DI3ic^g{QN2iepOgAncMg=RdBVcLbhQQwzRLpsjmuLd7{Ais|xHts(@^V z0)fjFFs@MGbeaO8Q3`zWQy^xt0(b2c5G)la(&NW86lnb*hrxY0EYEXcau{xqqg5ft znOr%Fl?V$Orxx+RD-IqYUBqINP{MhU5EXXyII`M-mxsXUK3Y zN`|`GGK5Z&!E}TSXHEI<&N6)XE=BZHDQ;hu!tS6Hc^joTu8`tOwiJ3XQdrE9!qP>G zo+G6A)rb3R+T6eUCV|T%3ErHSAcym(wAVBqO1wH$3AV8ksq#t;&8)W&f9)yZ<$Wsily%^K_iP5f$80)@O01ql~^h^cD?Bf1%eFc8xRbWC) z1=43#V3Sh?P7kcW4c!V{|6R@*_~qDep`805<#1YFj@H6*G{lu-v|l;5|K+eBRE{;e zoNM*F4AY*JL42+ZM|PLtNqrewbIb5MstljK%Wxaq=eHo4D*~~ghdpi&a)UtM-`)`cQNNn731OaBF?ES!nR$U z5nfY-iF}OoBcuq+`Iu>pZ4r*?b2iqmLTq_Zh%P4!5wNL{v*imp|FjVQ{0d<-t`PnE z7s6b-5Z&Jw;PX{JcH3Wol7<3|&o025umTiJDS)1B0c3gw(EO2)@VogqcqAX~*Ya^- zG3T8x%16=keAJH4M}4n+i2w3&<0C$fJeh~y8}o3pEDwcoc^K%Ehl8A%HPJW^2mZ^2 z)#F^`oy$cijz z#bx2j^emK(%z|K$g+1>wac4&+UM$JPExSzY_{rJw2QoN!Ed$l#Gtgc$1G7)1Lt2!M zom0}Ww@W%!Tueh;Wg4tzq~W+;8YW#&#n!4+{GOEx+g_<~Ye|7yeF}#8r{IrC3bx%# zhN~(Wrvj2O*en@|50+uW@?|&@xD1EPmSOdSB*ZLFf>~e^_M0YQ^!-HCDHHMBpYyj& z5;5#f0&MFNVBnX4M?Dib|7R&|6-%+*dntPAE=AboC8*=%V@_agDP zIuh4rL_*q?&ljCph%-40;W&07l;0!pbY}!~qa*m3Ap+J9!=Y0bjtAc1sOlQdnf?oK zC~E;{O7pp?FJU;#=c_)4g+bFS4F7J1;&Ejtwz`EPxNRu+*FuoHBm|!ZhhXy4`6z6d zkL^D5aiq(9uoJ;(NDD^9s9>194T5@g5XQ|7!gk#tbZiR5+{n3bc{K+eme0Ws&hv8a zGzUiy`@t%~56cGmVb_D%xGA5FXMB$E?timzX!k6XM9hLypILZ#h0i4x%)~umCh)-* zxvPD#Z#u?C@Hv^Nq&p^`g>5wE& zhhpG#Z{N|tqSkDDjPATfRnG)>1Kqsb1>6Ybz&VTa61qp>4( zG%i_<#@*&oxRE&uhX#*={N_l^${h)9+mYDVG6Hr5Be09l^PAiojwMCIp&mIL@9qyn z_mW}gJ9-$*9@?TysV!cNw#CkeHdt6{gYI@VSo?4&29^#*{pg|i^I!ZZnKTa&_j~K)L=y2Eq;&2Oe>~4YB#(p>z)DPXX z`(e^fb42@@BUi&5B^&!9dwO4l|1^W+N;9-~Gvjk0rUdST#BBd}RU+|TZb zt!sLsyL(TBelos9y>0yYT9xgTN zA|yZ;uiEi7h&J}XSvt{&~m zS(aT9(77vgc67lmpDvjEvokI!JHu^4XY7663Hqg-5N6v68=AFoKS>)MOtjJWh!$)@ zwJ=mm3w^hAMEhwSaqmk9tgr5XFm!;ygZ605X%Ei zXX8H$r}94u;-A`mT4b^0Qq~N>E=7Z)cBp?AMjSlTlq$iKYcA!SiKhFBVP$) zx4smx)GY^DA z+7EUNWdZ{e>XX$%)c!_c(6{}< ztr7c$rE&X&e_QtoDR1@&PptO{4hwb*d8>B`^l+!}sLxK}$DAF)-|FqcmuuUETRpZ3 zTRpc5i%Yi%R%bQ~=QTGA!Q(lrEPbQk&o&6hTGtCkBi9Q-vFn8D&1;1t{F{K=7Hfp3 zfvbfF^{a$)H&+T9^;QZ=UMmFq(&fUdQ!1gXtxD+Ys1(*EHwdPC>xH6^b;6Uub;9uQ zS|M&#jj-xowQ$O)TDa?7B|NK82oKN7g$tT;VcR&Fkd-18T=q(Ye;+D^O@k^0w=l7A zXL*GX)KV_o(k~aBy~>2u#ihcx<0S(AD;5&$i-pyTi-eO~3Wb*E1;W$51;XPw`NB1M zp1>~V3UaMnA!I_1V3n3FJlLBh7(K`o=FZ3vicY2p%k5Kz6`PZVGSg*3uq071*Gv%3 zCoU1@zls;0%#9PgF2)G!ofZkNcSQ-kEF*_Sgxx z`;Qhj%SQ^anj-|urNe{^Pi%y6@1eriV}peyBL)f2R$B9K7OaF-S(d`P4;I4Uz<$EK zi+zRMv1WpDOCMpgv5By?q_?p8r;$(*(Nl=IX&_8=(HFYz)fLWL^boS7I>I20ZbDOR z7a{0=C*h5Uwy=mg3eN|25PWMi1=gXR&@(|pxN+*AD0=lD(Z|f6qEP=<(HZ+MB4dM( zqQFmYMY0R8M2#Dti!SCr5nT^{D7rNEo``z2h-$yx5Jg^T7TIjQEP7saK_m%n5)F4c zEjnp@Lge-Ri0H!AgQD@6B}E)xAfzUY->xUev99 zl;|Q06&1w=h{g?=E&6Wb1fbrA_c9YlW&+K7s)zt~%~dtu)k(_$}fxnS?_a?~EX_SoB+Zm=IyQg1)A zwZgt^evW;kGRnR@afW@3m&pEsbzl4WZ9Ce#HQpKH9ldeP#qlv?47O;G(F@SGoA)7o z-?y&)_lJ4q?YFGnw}15gm;2qMT^oDv9ne^Mb6jKH&)JR6#)}&#s`4AR+ejOq9#S7x= z=UVmGF&or1vp1{zCT~-h)$UZ^Rqs)EYuT^1_{G%5y$`9sijJzc`<+mGB%f9{)ikLG zHeOIi+`OzVY;9KO8{AZfj%rbxd*4$ZjDM)MuY97e-1c03`ur>Po!4*G=e0hnYX^Mc z^=VZ%1^-kJ$^4^^Z1|@>>aW4@rY&2QtjStCa$Z_hM;6v!n`Q3m#0s3cu;hzf*=&Cu zX7Rc^Ye~{&Y3=n{Cz%1u?c0;R*lNV=(3{1bF=le#K5X@4Q`QjMmu3DjXH$zUn5Lm6 zTeE5av$3^it7stm&vh_!zBYs{4zgjzZ*5u8vf(UFb0l-B9L0VZ+p+5PW0=`U5ntn0 zU{Bl}nECawY*NrTHtmfQn~*qx_117^w@W9n3`19@y>c>389aqu-s{e~I89|XO`dF& z&otKe{&e;++?%cY(hDg|i3GB3S#FNY<@2iv3Jq#7?%4WlPKBn5MyEme{a_owZ0{e>WvEJ-$Y;wmO+T z9GA+fPo**2sTpitb0+(@C5suyWizXhIjmo64(q1QWiM0n*lx#swn(FZ8J;L$+X@Pq zom&yx+PRqNT`Xo1l_hM;j8b-Azl{C6QO0y?%UQR%73{Z(nBBZDW-C@yGQar}_Rm7f zWY46`aJ`H(<>c(?Km{B2M!_PtR58h-YPQa%hHdyz!)kWavV{0LHf}^cYyDi$>UTG= zAxo8P(~J$qgOJG)|IUDKK^}k;%fGE^cuGN+ZqEKabu4^FTS z4JVoQ>{INk-f4E`(rK1gdWH>jJw*caQl7-e*0G903mfQl{(w@e))I+x&1w^%@2F`0c*GH4yBx=&{ zOPci8x;=f!ZqMV^+tb>SoYz*?flQxupc7*|(wwS}^zeO0n&qlRhn8!R;SVhen8sr; zHfYn~Hl66^>`wG>M<;60>P*LjI#WYqXIjv`3z=fAnz(6R;_dh*tW zFxHkbd92g+d$x3b=rFpLK8%_!45Q6`hEwvQ;WXmlaJtoH1V#FfpqHCR(2U^Pgkj#{RSA^qAh zB)k|y?xXE#a;`lMzhY0CW+FNsEut7EqIOyW<@pNqag{)>9|hiqp#3GF%Qr#S`aAI0 zV+U$D0+&o+8hWrxQIVP^XXyB-%ECynjxhS~(hb*2H# znKo!nB7Lt(6j?ioHa?j|%|l)2MUo3WJL*CgI=j+xUssyD+?CqAa;3@#=)){G(pl+7Mz7sC?_~kfNR zW5=nS4KhQV^+T?!P6*z!!(-p zVH)+Yn@)SvrqlT2(`ldf4AP%AgFnABsQB&-TG`K=Rz-MI={9eg_tl$>1RtVI9*=mE zZ#(%?&uPBoukfXk7GGLnHj`ALGbw-LO!9d@lRA&&T)CuKJf?XTt!guyemT!3p?EfD zM9iioJ^U!z*N;4E{m9^+AD!$whXO+9(Easu$o0(}sTQf~kA|`Lru^K4I;A+VX5ZwHpvZ6BdL}__`2U z`kZeEgwps0q10|&C~bZgN`hq=?FbE{u4}?*+LJI!>9>GNgBMWliUkz>fXAVlhSOF5 za0;ytr+c@D`}5Y9mC^&%`LYwL6NGAERjU&}eE|7){gHMbq}j(e&AL5t+Fv*MT1 z=uJ!M=i{Zc$~b|B`6STlvIP2lB7sDI6Ud*(8HX%Nq-kptsoy=$w9`+b1dk+Y%}pYI zN}~0jlj!EaW%M>^89lFFMkg*VqoVf7G|VBH4lYh6+l|Ro@F1Cv8l=!8_Y``bokExQ zr;zGh3Qf02rI)i)d2DzpojjgOoqnd$NSid85RyitYSO6lg)};?kxt=u>GUQtoqU$3 z)5_*_YVMf9IWQUYBsPPNt3XY|8nWO|N?7(1bypjW;2On&#xtkHtCEt2BoOug)P`$|1|<9P08Whn~01 zrJcQVDP}}2nM}#0gTcAvm7Gh>JXU@3hFsclIG40;=92gOToSj>qk|@SbZ=xHy`Pdt zpMvw~`LaAZFV3Si>+)#P!923QmPglL=g|_4d}?cyPkA=^)asm1bLZyM&iH)#!Q>l9LI|3X?WDx|%hg>)dKkoGJqBxQLaEn8Jc&if0g?Rg&G|FDpzeJiBL z+C>yv=7S`p27SwtiL6j8hG#dOl5 zn3Bg7lc{?#?G7j=VR13-$}c99+G0xFQp}&9VjiPkOhcX*)0CgZG^a}m%{42bsUu2g z*rXEDoLxd^BTFbVy@aePOX%>b5}LfXgpQpqp`k4$RPwfjZvIz720cp2*`ky}N0(Bf zYbh=BE2XHYQu5-wg#O}EdbOgIR_rRJ$(-T$@Omjlz9^-qKT2s@r!v}NTt+{Kl+hT+ zG79r5qx_&UQpA^0bxs)-%gQKvO&K}uEhEiSWyEfjQ4nV~eE(iXnOf!a-Kd=NLCZOZ zqMSNRDd&vJa*By8r_z*isx2v}n!0i-+*Ho_4drCtR8GHcm(!M4<>d9VoStY^P`FVA z-L_akCz zdr?dq?}%yqE6%szyo>Rgm9)7>CAZU+cDj-(nmJeFK_vyft)yK)D(S1Hga-7GkXs)K`E&MQ;AjbX zkC%}BR0(zUlhD;r2^GdkXlR;*ju%R3icCUBRT8q^B%!Rm5;}84!nuAD8hDd)3Li_z z4}uw-%05}tCae*kx{I+jCSa9 z7KyQpG%aP+(?&+U#>l9PlZ-x0meH~4GAfuOBTMx;>Y1Hm!`@zscz89~n*2l+(`6 za?;k5)3n}lDl(VT4r@7`;mnjPcATd;mLGSPQ;EBryl2R%i=UkH_2lHaKu))!G4fDIo^{~F=x1(d?DxTD}J5Nax(hP^Zg^IHW~`L+g?E%Iw?3yQ$gMJ6|}`j zL83ki+H0<$eghPgF-Sq@I1ff^q=H6|;hY%Gcnlb)pt%zjG}%=_1Kbt##Zy5$W+-Uh zOa=Y+Q&7=71$78k(2`IET?to^X_SKeITNxZo?mMzXF?_^XitiQR;4Q_D@#G1xeDr1 zpdiMXk+Vw`^rBorVU-GMmU51yf~Tog(BWDIy{qTxR0=X)p`c!?c$wDlv}<{O>lKu+ zQ9=DTE9f}q+059+ue)7APCFH}e3ybg>{gJ?US7U^3QFIvpt43TY6Yb-UJp`m-6`lb zm%4)r5)LV-iOZD3ygXcbA5l;wmrYz+xcuVM`RM=U5C46a%T_LnxR`P|%+K-Sa+&8b zp35qp=NF#$Xf6x*wF>z)YxuS6co|B0Sr+j!jpJo&vqwR@cv*dTnV<8rNANnd@VboU zbrSQsUEy`qT&LiCRo*_l?hY#yWUEq;Zi9lJaoud-I`Zeb`p0!9zHLJ=swr^7q0v7NeX()+u{mulXbjpqM{VkH$p+Dc$>}TZTDy%=K{@9&;j12 zy50)%^Wx=j=ep)?exA2|^Ej?2elP4Cqo87bZ%ni0?J=0&2mGFy%vqq9`|xcqew^P^ zow_T?yEE5$2Yz2^DCiQu_ipif@G8F-54@98^-DPgKarEkeL0=JC8zn#a(aJ3P7BY- z>H0A_4L>O7Of$|I+9{_Oo8?>&a?)KPC!IPu{guh-PPv>maV}{@ww!vV%4y$HIl08h z=~TF!?1JS~HHV+)Ehnp~a`JPLQ_46wmD$UwVz`{L2FWSJf~PZ)(@%ZQI_=7zy$*7E z_8;#9zRT#r2N_LzDWkfFGJ1H6_a9eeF_lv^*bk}grl61v|mc^w@OKGjg$t~Ny)ZSN|psu>XIg< zr}0wS5-z2%c~a`;Eu{^Ur8Lr!^OZ(QsnXBnfFp^Zq|bLhF1uZ+5bTI*yfac94Vy zSxU&VmxQ`^mC)NZ5>kJyq@1TnMx+RNAFG@^W^ThPQQ%t9w#C&`wCb#}#`f4C1aYr$ka64Q3n)9Bx z-3{mVcmJUZ`mw!&264OW$?fxeZl}Y!y`IPI_N18=)W@}go^yM?(wg(2dR5RX?Fvfz zRZibtms8lCayoUcoQw{X)7&lPByK3DJ!R!|F0GudM)R$IIqmf*r%H!%@*h%8y-dpK zOy_bwo-gBU-7-pPDWmsi%V>tWj5cg2qYu?(WK~#3(-O-lDvUFve9CC)M9z~MQAQKY z%Sf+#8Qu7=luF)}lFi*xI@wf89%{Z_UrNKON~tujlx{69rJlj1=?*b*ujR6>V( zme5O0?zep|rXCN9sr&h2&b}b;iV!nI8a0m8;ZzRUPOUeMV#qhL~gT-I3u@+e%Th$LE|FM5GtZxUkYjG z{X#-hA?@E=NR}%LDZh*}s*(z+7x!sBxo?}mecTG}>(+9gSHXSXyl0$Kb-94-sDOU0 zEubBh+&4}wpwD3ilrgP<{s;vWZCOAUbqdJ*S3ZS5&8OuT^XY6O=T@)Er!Qq(68Y~S z{@)aSY!pvpnos?-^6BCy?#JKBqrWHeC~I3DeXGtR|Li>47nw&IK6zYEc@#S!k0d&I zwDw0XZF!VSYnyVZa(6B*YRILr`MLCOQ7-MCnM;1-a*3}?Na@{k>GzKuihPtq7dV^S zd{+)d)aB619KIi!LvLo}&~JgWulnWC*G@T{7n)7`TC(~4Og3k~Wz$zlHq|6&lTC0o zHFEydsA1W(s%JK}`^ULg&$FoELKa=$lSOSBvdAU7AiWozkgC z*L3Q8JB{?$rqTPjG}`KrM&4R!oQIT3)0U^w`p8szGCGwyXrz+P`4sxEDuu2Fb2j>r z6telAOnZ(dlX)5Erq4{Kt$mZ}{Oe_OWzRA?n6Zp1CNCow-DULjP7*C#n?%hqNz~t- zk5@G~hrKD0&jlt@gnuH5EEDO|y95&NOCY_>1j=wtpvyW5q;-pPv{o#oArVW-XxLJE z^L+`eJ-mb_6)vIko=ZqDTtXH17E{xj#q>66F@57>?dLz^>EMxgN-d11zMk>4MW1uz z@5E8^$~a=-arAg-9DV*0OE1;2bSg8JN+-qAn9i|u?s5!Gs*0fvb7SaJ-x%umd=Uwo zxy14LfYFQS!_R11dnlSF=0?*Q*Jv8uC7OyaN6|@n6dyZB(HD~_dj62lH>`=I+=xgT zIwX<~e^^MO-3zHcaUnewEhNLg5oCKLf`;ctP;ZwAdZQIVYtMy~OGP+co)%6M^unqB z`U1LFy@0glETG;d3&`Mp82wnzIb6YElw=V`dVId5n$MePMugIwf&BOD5IVFugw98Y z(21cTwC4SMirzk-`oztr{ln&y@F|$q?hK}%@xf#_BADiW4x-3iK@_|=h{lfyqE4R! z>A=oFKK~F%cZLPhIjifcAMF(T(cr0mRN2Xo?w_7b zhWWE;%!JuA@!u@6=W|&-lV{Px(X&YQc_t0pK9lxE%_J-9nUwR?mrk$nrB;7m(&^<( zy4QW^U!@P-^zfk?Egy0|;mz%_H_e4NoobyyCc9>k|DqXGU_FECo=m4Y)pW}Bn@+R! zr<38OX>_D`8u>U+qvrp-$U*Hzl}o(n5@&h+eBsHtqn^~&-;=%@c+!PSQ>naoD%nq* zN*Dilkk>vBIuPqYdILSk_pv+W*1J=Kk2|g4^M~S7Q~0_kQ)rm|6nga0jWguksQr95 zO787Ox2{g+Z2ZYId*WnD`Rz)DyIm6D=}aGJB3)cOk!l7`B(H}P=yTNs%APubb6Y1+C>u|WapUR7 zfbrD-o)e9gIne|+CmQu{9O>>INB1Jfk-YCX8pG#g&y+gSr16flt#vGEZW&9i!DA`O za4gBsIgm2Tfn=i{DDgGOWjQ#D6tq$Rr16tS(zjnDsCw%NvJM(S>vTtu?#ba4oiv>G3>;2x?hGTHiec2xX&702 zwk6#)w)DZ*mRLtyTB_#jrbOA$ZW9}_zc`e(WDccn!-rD9;~}J!4WV<+L+Hh~!MtxA zOmAlKby&0p(`NM`ijN#bmd1nV?74w7H*Fx@8#0il-m|7H<<|6jtToxcx1vxL=Y#RN z|I+^kQ2w?76caFjT)GXQZig)CXDqd?bw6x?b~GuE2ZC?9ib-_D$KRQpm=P+v0A=}Q|An$e(WGpg@xMt{zj($pkV zs<1SrBh7v2QFb5tV%vwl-7}$=r6$xQG9l#)V+vLnlfgt|Qh)4Co~qu|?B1K)e)i() zX!N3vKE23GqZbuzGoqbyjp&?~5#89^ldjJ1Nr!cMlJbBdMJ+U>!G?x(_m}~t#~M&~ z69bZ;(I@Q${yxWCpH5%UqwXnsB4>1>&(E|;TB%Kz(56k#wD{UaT2v}%(Tk@Y$xhsnmWevjmM0yk zxx53t9n*n+K59=tO54-x(e3Hd15H|AtV!`BHOcl~J9=2qj&g^!quwoTIjg@dnGfZh zu^SrnEmMO$25L~%)i%_e+J?^^w4vz@|5(=h|5&xte@rg@%aWh|Va|4c*!RNUOnUnl z(;NJYrKkO57cTr@9n5~P0de1%&Cyn7s@uxG&Hu*s?*7W=X?|tze7>--wV(MqTA!GX z%O~bk^^vb>^?~`@ePFHy@0sz9ckGtsJC>2~mUTJ#hUMwMVb4NdGuz#-*!;GySjP01 zEN{gNw)DeuHr4St>t6nh9k}z9%^38QU0wEsIh=mXDh(d9OCgWg_ni-!cAJN+gXaVG zzWzQt{OTS{8*`6YV+oMF?GPqTs(r`SfFQ%pVQBwt_c1Y7a(I7`BD=1_2q zy}x{vRTv*-CJTK%t!8~#3e)}%wML41&1x_y9sv^c=p#1Q+tpRrdOj2(AZvob{^ zoA_Wqdu6?!Wh~yu+8)@;mbTx^u6yob18R1&ut&R?e9$hoYspS__`nWE?RT&Zp4(Y& z^)}}9a4YLHkTc5Sw=gfZnYFat%zWH8vBR>BtoPjw{F{soY-RL%c45yt_UaF3lsT_u zU(438C)ZZ9VmILC?FtR z0!nw6bn_(nAhsw5Vt4+8XUFbNQ0%}CY%x&ZegBxx^Kjg=x4Sd5H@kQ9-9~Ed+(=1n z1GT$cPba9?(_wS#=%Y2YblbBUnl`b9y%!;-C;k)BsNX{RZibNN)ClOyi+mca#-|5D zd32;>HQjWgl8*PSppCc7=>51-I{IBPomNytePjx$dqX~*q>)E|tGX~O`~Hj19hKGXu>^5IxpUV=DxP0ak;kCrQe2*sa>7Al3L5F(O$_2+Bi~$nzkrWs;5X@*DKKDro*V+uA#JT z$`Cq8Do5uy$E>#NcTxFqeGd0slh?~HU^*h%U4*kjTe z>4&A&`Bb{UqC@&Xd_ekV{$8ni%Py(Gy6w{O+qOu@?%yaKd8l3b=hRy1y3pd{w4&L36US zvn^J7Z*REt=ZV=;^)5fD+4EV_so!0szVg$gQCbet3^QwKDVZd#^`0PI7CBbBDQk>W zTBR<%(yT0f*(NU?yl;@ytERuRWy{;nPZu6_&Ut^c^U{cOoq;xoI$zA*)7ezKp>x*C zmQJn1lFmPmc%5H{q<8B31a+1#BAp}d7_#8EGN0S_iv(T{-Mf}J9ML)D@VEAh!}(G*N6ymB(f8R5N4XVq9OwAvI&PE^IcD5# zcKoxy)p2gqX2I$6AKNW7_ z8x8JCw>J0km;v`-yD_(WnK>89x8a^;IC5^GP8@H>Om4|UFOH`Xz`6bn;U2t<;C!#g zaf@jRw`+YCw_1|V#T1ru-=eBH%k=`zXStXQY^>v^S2uE+`SZCO$qTvS@Fkp_-*T?V zc_nw%b~UGB+Q!-FtmmewY~suZZRKRXZs(*gc5$J1_Hwr`9^l|e2PfP^xn1ptIb3p# z+g@{$t1LOgS*4%nPDfng!1pS*(CG$u&a#_(Y|z8qR=daTlzqr0e0j|M=GrWDUiHp!%0bm5=pe@SB}U85NVd`>vYv0w-rcnz=QAvc z^syCL6kdngAkRco$-s|kWi+KnMTpLQ3s?8yX zg>%XIZ{b9m5=rLYiDIm+81nQ`EQy~SPfo8*AWCXU#7>Y*T)w0b>%=r7*PTu}-7<;) z!7OslIERc|o=alo^GJ1ZKB<0LK;puR$oR9x}?~bm#-tgz1xYd%z85Ez3pB$_1!1xtq;gbkB3D5>q8RW_J}O@ zc}({IcuYDsJR$1?o|3|Wr)1KWUUDw@8S(n}jO^R?ocs%UL97S8B%V8768ErI#8mb* z`MBdXSrzt%OqP91Htcvy{)N6H(+9mLiQC_ktdKqu@vo0qZ2dr<1$`vd10Tu1jh{%o z|7Wu8$7gbD-52u0>npkYKn;&`%aYlzLVx<{p6d|4>JAb50cgVlTi>SnhAf&UKn4!U4+8m!K`?XIAec8u z78cBwg|^MI(9Uu+miWp+ahn`?e~|-K_rY+cWiVvD9SlR9hCtJTAt2v71m@Wdg^RUA zVf5Xh5Ns|FyefHEeN7&=8x4c41;e1_%rGd{QUH&11&}|a0G-OiVNT3&c)e#hWXLMQ z{a{6K+NcQ4-xcAyhZ4xGP=X0>l)wR$fs-i1qzB5NJXr-ERjI(bt11v=Fao~hjsVf| z5in$=Dip@6LiavZm>{PHiNR{Hc)c3z{h|g(T}Q&9#Uo*B??@0&QHKDbIw;;$hyRQ; zz&}p|ZXai#YMO8`Ruh!=XhPsWO%VHyf-S2@0lpgrhhQ}9Xc!HRcSgfpQ!N-(tOX}d zYeA&O7fYT{^JMNEgJpy5M(27ltb7 z!H&6lFk`bGocyW>wl4axxLF?_-`5A7iDSX7cq~Mo8Vm7i1`rx;01n#?K>mjToSJC} zxeEej{f^wWG{Ml{_cfXs$24^#fkeI>0 zTV}Apa3ZK=PK45f6XAx;BpBsA31%&w1SyXuL7tg8WaOJez+rPRl(&G#0T$4>(gKX0 zS-@tC$uPQjG87)0%yQu^;aiX;XsxmYljoLTG}#J<7hA!jqgJqXm^JtWTEp`d){y?x z8tzZD0WRMLglGd&xhZhZdkVZ>JOz61O@Z^{Y@s#77Uu4^1=-)W(BfhTV;bzB=DHm` z(z1u~vGx$M*&gQg*+Z$F17ub>fcHtpiW}|-mjWCid$}Y0e&7iC<2ksU&Vk8Z4&wVc zsGCM$rI5g~^8~6#00gldIfhsP`WV39cq&}Ym!MJ5J!MKOJ7gPlvS4)8Y2p>0o6w0}5EaUVG;Zz=0WXWCqLQ6FGzUoHKYT zxxjaS7ieDW0&2Hipjz7%Zbi9*);d>kd*%ueCNm*2eI|J9oC$g#XTk#;H>fRi1D#Gc zSnz!`;SNp)s2R;z2 z=LIe+7e^ z<7`-8I2+#Vn+@6@XM>GJ2uw*20o~0Z(AOIRTMR~6Tf31+%^{OX2ycc##mVRAQsMQ#=$e+ zICw3NgIkB=VC%OyNVJHDp-J)3yeb}Ky5b>BF#(pjB*3B41USDZ0S>=RfED_Q5D}6H zgC&Wu^h6>k{Y->(%Ou#Hlmz!$lc4W<61sVPSqUOy8OeT@RBXfN|{hd#1pj zsuZv|kiy1*6mZs0g$co_jL(z`?T1o@#=Vl&|J;tUvhHUlR9$^bKqOi+%^ggc8eq2V;+-2KRewG*>I zE-DLrnzNwdcor=Bk_Gc8WW&6$Y~bp%;U&$6@^{(rO)m#R81t@`mjh?_=D?k&IdEM) zm+>@nVP0V_=xoY`t+#SPUw$5xI?MxU$~<_qd>*_xI}h&n&x8FYd5{y92Wqu>u;O4I z$iK*gaLs&JG&3LeJO@h ziDuPoysn1wl4|(5wi=?&R>OwAYIrrA2f6w@cw^0jP&dZho5O=4nLLLCyIed595!F)&=%?I;|eCVCZ2Z=u)Oyc=)pnwlkY8i821s~*h@FDUD zAJ$*v!~Li1?{9n3gFlU zcHVsftb8wkPk$NjKvf7ujM>+2BZT9wLbx$o2wh1+I9DWuUA01}X%RxeRv{=-A#`34 zLfAbaym~8y^Z_9}R1(2VJrS(35W(|lA~5h1fp4@3GP6ZcQ6++^`69?$BZ9D9BA9$c z1pSvqu=jxoqTY+(_kai*l*FK@D~75`Vt7i#;OHfW>bYW&ri!7rm~sAU#h|iG49blE z@OQtMG5f^u-*qvRKNiCj#sIwkM+`+uH6W)`13a@D_~=jr0q!-hes&GJf7F2Pyc%$= zu7QZA8c1rbVR^hY;M-9H=BI05fbk~|KdymX#-h*|VBA2)rLZ1d3)>i@Lc^vOau~1T zkWVfAo?8o(Qfk4cpcZ2IwU98s7Us0p!t^bSY4IOp2p+G6)mLi4^Ik2yd|3;{Uu&UX zrVi4S>)`U3IxsY@gH#*F$#ANJb6$1uG_(%-;_KjTb{*U)tAoy(I;da7c!O)|7_+wy zHvCry*0=0J-juphd%3icsjKn&U)0tnxJ|} zj;e>TjNNe|k1;$d>)~^4J>)K8?2c9S;JmpW7VWKvZmfslXX?T7T0OYmtp~qn_2AK0 z57s~GL0Pr|?kG0Ea?J*CAKL&gOdFuYhVcra0kYj1;HF;#n9XT`+_(nVn%)36@*CiN zMFad4H^BG#4e)Gv1DtGQ%#p1P5VEfUhG7HjIN1Qsmm1(~R|7abXn;-68H40~19*LB zT#~;Huy1H1TvKU;M~qwYNS}Q-ZiIc48$oQ}2wqN&@XxIgHu*Nfw2($P6WIte5*uNA zMkC1QH^S_)Mp(pegyVIM@T9pBJ}+y8ud5s3)rLm6w7n75?PF|3X(Nn1)(Gd$G(!C4 zMtFCV9lP5I-H#i==4B)B-?QH{uFB`1jHx0c0pp<(n5ZOyu_GlgL`wqq^(3%ioCKoG zBp`1oVGLCXOePZ8K3xK1+$2!qC4qDP5>N<{0E9~*Iz|F{i4rJIlR#EBV>aeXz`R5P z-zp@qn=gUz8pd~NkbtmR0)v)FAh$&VS64~EV4VcwH%eeBV>(KAO5pNd3Ecco0vDtb z*n3z44aZqorzN0rUIO%z1VXP#;Mq;~o7)n&aaRI14_TQ{B#b*FfuAoWp!b#?>toCq z#)Y){Dgmv234Hn~Veyj$ivCH!P?m9M1~-9^d=p$`+(=Mrf>xC#c(2+7R_aZVpxFd< zqnlv$7{;m5VgJ)>0^!&uh%#&flW|Rq71{*zjhkSSX%k4z7|&)B<8lJ%#UEUWuYuLmoz?fN1^XSVzY%LkJ8O?RYgZ9#-+9(f71mx?*6uXce!gB4 z)ax{XU`!KavHqFG`bm@Z*A3QhJl1~(tRMHV{>(UmvFDy-eToOz-|o|Fz5x_Aq<6 z$n4@4vyYq1PL4BsSz$Iqad2XzJGbF%PSYWuF1PYn`Uo&I%9xs6i zeP)wd64=K4GAGKMHSwzd&Qv@pMBOruZrjc`%W2+PZvj~6t8Y*r(*CozAGZiEA& zjbQ5E2ojG*csjii%p93tTQx$XDH|sY*w~@f2zyi;*?g!Gs%07>;70?fe`Mp&%Ld4N z)Btj~8=&z@0}MXX06B*n;NpP>(Av=eVe1>9c4Y%>S;!K4>Kfo^bpsqIYJk?P2FOor zfN2p8@FTE+akv`5WqJc#w`+hP^9DF&)Bq-98lYlC1DqJb#>(IIFz$0bOnX%io)6jB z+Eows7wTcuv3hvL7)#r?*F(&@dKkLA9#%{0!I<%u))lj{H>(~p;_Df=q8@(x)Psdf zJp?$gG2NVTXARkSK8lUiiuEv&v6%Y5*1>mcc29mwCTgOz9NVCYa6h3Ijx(lii)SswO|1nT z%UU>VSPMxSweW3dEfoE%f!A+q!0%xVY`j(jeJ5(b^gqVw-CP6tD{4U4SOen98Ys!B zf#|pzunVq%e=}=<+SfpeDP#F+*T8bc8qj9<`1yTe`1VK)zU z4eVHqz?F!>DoqSp;bQpAVu&LkhDviWSm=r2Dq{&J{1w6LJ`uz}62Yabj1P581jTzq z(Ag$}Hw#2Cf-eH&c_Ofk6T!ql5sY>g!FMYWoHY`fJ6wt%Y|T@A%xg)Ayjz^p~+DQ3rrYuYLpN%h6us+tAH`Q1#s!Q04k0N zK!3LY_N^AMwHWqUCICIgnkowuzy&t}DBB9a*@&^HR2h@%FCUuTu{eU?Cqms`-qC&j;BEJ}jBVI8^q0m_LpW{i=Kj{>y`PZ+Y;fhX)#G7<+0z4}#iw z5ZT0oxn(@?OyR+#**uVOX7Q&55BSEu+H(z1#vxROY7DI?3JNC5*vd$I3&DJ6qn^OdVE=7>8Sp;dX3c(KxL3@57T#7A( zq$!2)Y)Bz^_7uRM3Y%-m&4bT3b7AC$To_Z33-WAEcAw47 zT6%K;_UFK9K@K_Ea0+HK8pfx81PE84c+x@el3)xFW)w4n3 zIvZxm&xZFGf}wJLF!TooLxg59Z0lkB3A6^m(3l`lHwps9=YjBkb0E<4K$vF{$nI|e zuy$VnXch)Qu|oiy_~{Qn(I2#{{K0sJKj_N(!=ICWa9->OJP$v{;PZo>7kpuY#20FP zeW6Rm7Zk7gz~qHKFg3`Bv73EhOqVyjTH+1uA>QCI${Tuac|q`UwtoU!?^4q8V*cR? zc`cqGp2I}T6LNZHfm_Qgke@RP_K%(gKDRyK+AAr^4GQQ{nRmfEU{V&ZYn?9S0Ebh(P~J z0+LVy$|DI>T;`ysjst_49EARJgi`7V^@Wa5Yvl-eZymsMlLL&1bAaPI4iIntw!J& zXawhm8o{hXhR`|B5VTAT8TZiuHZ3%OZg&It`g<(M?Hvn)lE=bF?Xhs>sy?h1=|cpk z55xQPU~9V`IE3jzhoT-BA7jr43Ur~{R2MWK=z!Zo9Y}W5f#RRqP`XnaGUBwsPg5HV z&yRs;6=Pt9)fkxeObc!<*Mhm;T5#>}XmH#&8WtpthC5oLLF3XWm|i^!!fi%D%5zOf zYSDz*-kMyJR)Ic06&ACqfb2eHC{9p@hZ@S@ za7GFE#Y%9*R0-bSQ3RDnMKGAE2ov592fa1JVW|Ibc=}HP_Uut$^Ku0kH&Ox4ofrl& z`NQD#xM7ggB@bO9d9bsShx+G3;o8!npx{0f?7k0y;7vmyDRc;=4IKip2M2>!@?bC? zH5k61mIG;_9ArH_0UTaJ^Ce4%6mcDFFhwl zCeMk4|BO7o*Gu&5d&$fNPf5s|CnSI|$L!WTCWC)GB8LMXk+|&-$%nxYNlNqsa-ris z8Lf7o_^00^c_;6ZYTdh}xbO}MztTfYO?t?a>f4MRc8h3Q-y+TR-Q?SoF5*tQh;Y$O zvi;2sa@2*%%Ijp?=WB%Tb&bqyze>LRyh7#&ULl%WFOxc%%j9L)B{F6AMUpY}B597g zK-L{NPu3`&Cw1}XNQ{&*$W+gguH-W$@9=3dpnjSZq@N;pj-4cvMxP`ZStrQylgG)v zF~^BC=NQ?2`Y2hXbCe{^J3Pbm+UMJag zwu4aJ4)Wi;gJkWQ|450>e`I>@0rKtCe$vXGOzLg#kkqO_f;#%?25_HQK>@>_{c#1^u3*Jk#db~9NXvWa}( zvXQtCY#_D%8%Sq6+r#WzJ9#&&oqTLvN1pYyk@L=Nq;1JslJb)A$;cXVL9&`8Jz7OR zS+63wqE_ zN#wYC5?@e9B2L$mS)*!+X-WKn7a*r1Bk)e3{B4 zRJ)p#U?tIytRTAw%82P|#x9#yLhd{$B5GBI#74h>I339&cG2^Q=HDFhWOX)anU+Pk z2N~o{MLKcPO(X4?LOz8j6Z2n*BzQ#vNp_4U$+u%kU{MS)(~Ks4`y)wPPz0I&X)d|Y zJcqbW4kOzxg^<7Lv&jsFV3M;rkTkgkkd|IQvWV|X%E$VUpu=8dbc83l^uvSXE^{Yx zwr)gx-IerbyO23b&SdM>>Ew;O6VZ7#m9S-J;-^nY06G%aIS$0+n;jWgXiJVyos}$YQxC%9YaZ$#}KmcsT|o}DN7D%4I;HE|2X050WRz2PtHxDpHrItl{-=J ziA&zr$NhTrmaEi!&3*EE!OiCNa$Ej;%)Ni}fE#CUkMj!Y;Sw6Ux$L7ixQwq?xd^k% zoKy4#PGj*|?%~-}TlrMP3`1vS~Hfa(5+nLZyX!=CYLgSG0&z-`>m_K9X=|>J8jPk6O;ST*T?_ z=5sn{D!FeKCEV$yd0f+s<@R>RS)1D&e-|xvJm%iuIK`sMQSEYyqh3~^;~ZshJiT+g zW3r!$W5vS{4r>igIyfdQb7=Jmc4*rC#r|u~Ap73*#DjqgMs}PSoY^txP2;@Q;sps=NLcKiCyWmk4}uKy+NEHyse zsTFjsv$FDD=awxmI+x%4)amtipfgruu(W)ug0#qKgf!r$hEyR{TiP}-R;syhf;4%; zBq$@3hq=!$0Nu?oC(#BWuQrq%W>3-#GseD_$ z)Y7I@YJRFp`gfv0dhLry+Hj~=I$7KxrM^wl$)grX8y+r_UfHx%`YXFds^rir9rACr z^!b@K>Gt{SrD36)q_6b0N@JdHm*S3H(%<=er3P?7Y9`wu9d%wRebIbKx-#^r)JpG! zbX)H!>5y$_rLMUbqzU$yrHKPqrS2zgNEPb3r8|9lq}J;9q)U4qNPAX4mJY=CO8=U? zkUo0%O1gIMTj{i-KB<&^l8*fMMe2F-yEMA?r_|4TK&m_9pETjM44vRDOK|GJ5=a#EmgX|RE;jWJCa6$2Gv-lNjnBcQMV{9 zdi3xZI$mFg7F6ld-4FF>x6@eqVvPZP`qz-2iylW?j*O>4`o^@s(u9g1n9@H}C(@Wz zljyeJ=JZkcWI7E~h_dhym2+GuA-ZI{^7GoKykj6jaA+fC?O<*8IRa~ie1 z;6&|AXHeZ5XZp6+g|<1*q*K?r(PIPd)GT}!E$#56yEVM&rFlN|$`xOFaFRb2)df(; z=YjOPb1?N^Gn?-F6+(Z7hEbFKb0{|=oLXi?(BWqz>3O4QnpqV?zubwXQFifk$ASd< z@NFXf;+{<3txKWj22yEFSUNS`mqB+ZWl{B%Y#Mnyht}%Mqe~0(sOV}w4K*vI3c@0~ z`hGE0w=bpX&1JOxRXIK6TuBeEtfC9QR8!+kJX#RMr~Cf$>Emqz`ZrWamE=Tp_-+yH z4;Rz!p*3{fz8V@GT}y`#ucI6PtD{zN^>mw316A*ApqUAcbiay(zL7G{T2d1or#hb+ z<9w=>+)RI}E}&;|0Tm}Nq}FPS=tW#aXD2VF7gd)~D_lZ_NlWRe5zFWo=`yOCxSVRM zw6HQ;=+C$n^s?egI{&|wbXrU+y)$eTjo-J5-icUErwv&{=kHoWFNLk8{W5KI#I`o7 z9?ag+9#}_vH?-4TzUyhy_w`g^?FPESVp>o*;vTfC3cRXg{SCS zlhZWt(rLOj_YA$QahCRXo~1HT=jdmd^YrqD^R#)^1q$yj(5uZCsrQsiboZ@GbfA>& z8LoGQ`X0MNgA%T?J;bk3^{vAp!-OS&l0W_ytz>ZY#I zx9B*T+w{%4+jO~W4>f<@L$}o2p~Fq@(%I+lQc?On+NyY;w(Pi1D|{bNkG===$NY!1 z+42!pVw|?z+{cuvKA~^+JfSjyPwBwNr}W{1Ub@lh84bSnjK0WuPGd&Apoe$8po9Eg z(uwb1Qcm)UnooL7hhBJ1Po=)0De`aW$Bl1k)XaBu&(nAGCGS0z8{0<*AMT^C!#~jd zKR(bnmQ(R{$|st6{S!Tx{h1C^`a;dOexbJRU#UUwSNf^?8{Me;ojOUsQ?}tX)&AU1 zqvrphqKQ9g^O>KtGX59!|NDy$Uiq7@wi}>Y*9T~E<{v7R|4SdX|D`Xc{iD}={?V(P z44T%;U|yFD?lc^Pcd`dzKMukn3bHsfR2KW&W%14jS(Yy;hk5mKXmU#quNV!+?+N&yoq6!7&~1&mf7jwhpsqt>?J82xQHE}5Z-*rPw@PW@bj9N4fFWer7#(Lv1Cw@F`+&mu7zZ;MD ztS8{Tq6v5oCotZYF{Zm2qd|i)p15L+!RjV>EzAUAl?g6+Y=U>jo1#*hDVpyzWjU9o zXlrMNx}|3L>5v)jlbMKdGbiGo+KE_uk$tK#E?m$g+_Q8NzU!HUqjb&DBE}r8+Rf46 zxjFtdvB0zG7Fe~@0u4V};9i@_Xi+#Bmv>CYcRweib6nI;sMw2xzzG97kM%du&KpSjXWP@jK+F-8+W5$I{!H3JH;E~%?utCcf zUFO>2ixsw5bk`O?YujOXgdOf`wZp!9b}YZ$9<3wo(RP(Rj=OJV$DPaT$l>yEz=LLGWG>!Ip&tXIvx55aJl*3wWpz zQ0)TyK5QyhxlhHVqN%w2#8ec?Ov6a0X=qR}4X;S2VQT+0d~fT7k$FzovD*m;-Z`Pg z#OXLIWjgwAn2s}^Oh;Y)8Td4O1}<4X1FgDdV27$Rn)y1TxZW8rpLWK-gIpMU&;^ak zTu}X>3x4?If(I>JF(u6vWjDHF-D6k$sWTIU!)D@&MKkf-<(c?&m>a%ub;Ir|mXFDD zGjqSXp`N8X{+H&C_8Z)>{h>Q!3wfYJum{F9d0^pL55|O=#d1++FWx}gys>tu4?c48 zK|{u(^V#i#aW8!^W~?uIg!!UYvoGE}%F*Q=MR35D<({#KEY8!RYic7`-OUMyK%EsM9$> z4qC0Ag9g{;;7{4PNbTlgLh4-nx^gaNU7m|q|INiQHsR>aSawOv!ZGDsI0pU-$MNP7 z_%JF0`OOiG+Y*6QpChnmTqNp*M50?wB+luGWSpx=v>g+Le?6mcPgxXtZI8l>_oC2N zDH_F7qwz>)G(K7tjV~`njc~$ zoq+a|1l%l5K$({bI71^5Q=AjAC_51|S`%^BxkOa_mWT%plW>+_5*{y0Lc`5Tn0hk_ zm;Fn^ZIhC5Q&=+A3zIQ;cQVS|OUBlrDXec&usSLQFV>~t-~A~#`cVpM4Nt{?wyAhI zCKUw@si^;7Dz-gJMTOyMIL9^(o1@ckdtDmt-j{|e?x$h;&~!AkV)^QG(^-CdI_}!R zczL(d(eYn8hMHzzL|_Jblx3jS`V72&F#~hHX5d%dOpJBQ#JyRW_J)YUPKQ|j!Ezib`BiU&9JR1+O{Cg*x z9Nai32ftM1pvlG@oNz9OU4UuF3h)Nw@)-;%#1NB0%=RqA ztc*eoYAQtC-GzARS|P@LF2sB4MF@=3#|tfDoW>%gEk(FnTEtk6MdvVgPL;)2vbq>s4j1F92gO+Prx-)^N^tnJ65J43f<_f3Skqd9S7{0Uxl@8_KTA+S zs}x__m*TdNQVc98#fOVZF<@^gZoXQIz3)qLuu>TgpIC<9Jj(ENQW=&B%TQxo87@9j zhW+=-aQe?O%o1y`9qY4jSt3u5;RTv~!jrqEa7id?F34YaRlTwW@ zs;jZ8r5b5*+@-?D zv@v`fJ)VyplleG{<1;1_V|4g24&fX=4oTo+U=|;ni}`qr&&Q{Yj7zwbkAK&)&#ioX zvY(Gf4)d|;EFb-^^HKI5A2&baqf;Lr&-L@sb&vq}F#dT*GVuE+`h@ES>;A*D==NLILWm6kuyRV;gQ4VD5eaou#8jEn2xd@kAi?GLDgo;x|Xyq(I4|fszdyCLB zK!o-oBGd>M;j?JQX-N>_+*A?%%@pCXc_JKJB*K+tB9yNdVX~01U1~)vPh5l+3q%;a zM1&bFA}m-X!rV3yMr{z`)GZ=Z-XX$kyG1D8FGBMU5uTzV^gANL3&%z1cv^%l=S2AW zA}iyn2;*;vu)bS_?L8vg!B{d|AF{eW5n=H&R=1a|EXIdC@lJ$kA4DkkS%mYyig0+p z2upv8@Xl{m{$F-&88L2>731Z>VthGNjGq~s=EHC?K2#FpQ57*RQWaz9NHHpDi1C1? z82v_z@vfE_!?eYCMn{Y$dSWcoXXlP({7C~b>KlpCahw=uju)fL1je8=7Nfd}7+)~i zZYsujGchVo6yruF)|14zhlzo?82L=PnP^*xF^EYylVwcWnXF^7kV!rh4<^b?PP22f znG9#LoRu+(NewIWH7kD_6A`=Cq5of(U0;^T2v(O7tWGklZoP(L>|}MVW_5OCb$_bM zzO%L{voZPIY!ZYdgpKAd&TjKuOHlA*?Q}k3_7mQdyr(XMHEn`tbN4 z#`9r)s>u4b^}7glSzj;s#JE0vBJ^cCSoT_k*IzK(=w<(7IoU^=f7v3Qf&Mxh7|nN2n_+kBP6?3USTQ8YU~SA>^mv+Mh_ z^Swm)+)acxW{7YPFfI|Zc^7LDexD@5Rm>M`4MliFhm}2w{f_yHf}#i`nD4A*KGgkF zh=0BaaWwO-@yy4Jn6HgwKKHF#i07FPHZxzG#eDKJ^UY@Fqx#HO*D#+|TQ9_-RYJVX ze0fx}5CfTSS1})7&3t_~^Z9+u_qVVypqY&YX<G$kB|RG^3it~8{7Zz z@aShAK6}Z--}iYqMIHBMEpM(1BuIPpmp{y1C3mTargZD|#rEU!Y7_$thqRfVf3SK%IwD%|?35^Ek; zqUV`P{ItCis~1+{=b}pVimb#s=StjeT#5S?8O!%$1r~HypareKi)+|DUs!=1DHS-> zrvf=E#)HzRz@Q)HXn(&PWsa5Op7kt7s4d5%j14u`uN;%C%W z4sB)lP*8@MEDm|Z;t@v{mlU!1q_wXUH(o2nCHqP-eMu=!C@RIXVWsHDl_F}FqVfP^ zMm;FOq$4GmwzdR=c_lbLt_1Homtc`m3I32R!Pwqn+;6PZZ(9bwy~#FT(KHBAhq92y^s{F!&FP+3pwOWm<>{D+=*(aUr^d7NW$q z5OHK7UjJBtm#-Ayo*e~P+E9R|j6HS4tpLfm0$eRqfG-~8qbBC#q?UX%EzC#7pnU9_ zoR1>KeAIcBhb^b_aG)&@-7E93cy1mx+vQ=CS{~-TpU3!u^YG(_d05YzhYFGNFxP>x zsz%OZ?5kW6k&%(M2sC2fa$e%}3JEekq$zWTc^jOB(uVrD1trDmI@=Majxk%*{*b9{hoOvJ9ylcqZP~nT(Ct_}xFr^Y z%VP14cP!4*i^aCS7<_y*1{D^@AbbA`M@@;rUve>crYjoDH%8-_qG)V$k4Dwe(U|r! z3b%Je;jP*zd=nPM?!QrZsXr21&qiYK@<{xa9EsKTk@$H?B>HzVO6i6OJe41T_g&b0 zRxJY0Jr2iJyTdWODjWy-hT}q=a2)=I&4oMJ+_+{gewaNMM~s_`TA$|N@S}6^g=7wH z51)hKrgQMiw=gU`8HP_5grP%p7#2-pbM7CZxbJi*?phRzOJYJX(L5COe}>?R(;*nJ zi1D?eL(pte2p06u#%*j)f1b_lZ$!+-GbXcf{g+_OI2w$)jltL%%GLlFyMEXEARNYs z7rvq(EcXw>CE7u_{COaX_XJ{8c_5B;55!BVftYYF0H19Pz<}HU+{B);z8oBY>R0{I zbcH{fCHSKT<8HnAA46vuS49`ZVM;(jT0**|k=`>j(jg(;-Q5?v1p~W4v0E`=&!A$9 zf{Kb5h>c>muVTFC!~FK_-mSZPckY}yJJ0`n2;;AYU}Sv=zK#gNe9aKNGZc*Gt-)AO z8;ol`gYlqLFdn)cgd3ZKurwyNg&{@B6tF;=a9xU||2@45P+jJO|K_xPgoD#qiA_eE7b zUwrw>2e%yZLEkDLyyxtLQKCM0x{I;78ohB!lsC@Q@WypdC*j83ld!&M5@y;>Li1l< z_~^73PMhb2l7U`0UCs-i^m(GyMo-L5@x(?$Pu%+216vMxU_*rmrg0u<_}3k8pLNIL z1@8Dg&>i#S-0{k7H&j{A@>+>*SfT5N^Iy2)+&!*XRLHnp6J1gAn+vwLyWkX-8++*H z!um}vc>JO>iq<=$Td*@`%Q@rJTTH%t4PXH)S@hKalzl|-{1$>)83eyFhF8fjhj;gJ zXj#NzsWpc!pPlgJF(H5#PL#=EN^Im-xgY6m#+oZi(4SMV2*d^m}91=IX)3GXN+Gn+&0Y&hrtZB zf0?3JyD3IinPRk^Df)gkLBm!P{8DIwhs;bcZg>KI-8liLWw5F41dM-VjIAuE`z_WO zC#V=>;B6yJSZ;)gAx0Q1WrXIJ4e{4pLu~Uf#EicN_>UT3eYF9OvSYd9kNS9dzdp+4 z>Z6~bK9)Su!v)QHxFl8&=Zw?C++JODU80Mk{<_#Eri<~NI{2YZ2g@CGaOkr(1{~DJ z=3H%jY@m&bkG0T#qZax_Xi8#K9mAB>am|hKc(r~!ews8MCH|?Q46lZx%GL0lxf}0M;)j28L zE0Dq?6Q%ILt1-A?^BAm&8iW30$Ds82(Rfxc8gnO(M$uQ2*tkg&Wg;bUhLj{eJ0pQy zjRelJl)#SX;yAoP97l(VqlSby>Yf~hYUQI)%w!Zk85G0AtHiJ(KnzWV#PH^EQ7p(+`sCmAdiw~K&>Nvf4Zo=Q*Pm1^@h5$M;Xk_9@;@4~_6NQ9?>i03 z`A&D<_(oqjeWMCnzEb_sU#Vv47y9?^XL`x~Gp*hIi7Lo_qN}Pu(!YZrXqe9jy7<6* zHrD)}V%h>e>q_J2#mTi;M&l{a+VwAWPi`7oUwFidZ^zM^s}uc+O$m(=sw5G71I zY5buV^tsXtx=!$%+CP3qJG`G!^LtGiO=`TQms*JRQtj*;^iS7ydeQtkox1EA)%@H;_f6@c z25sH6UagxxsJlwX4_={@+^^91tz9%ptc!+ZU8bg&FVU|im*}2`i!|un1v(INfyT6+ zr)TBQQ`PcwG~xDHy2So0-M8ipZTrzlTVp!u8vZoR8-JRb)t#ab9-O2#&L^oza|f;a zgY;=4QioHN)@o6@cREkI2HWW!*LHeyQycC0dxEY`Izbao9j6Lf$LWb_Opoi~QF_(+ zD0OZ+LYqbo(>HO4sR?bRQEIKUtmY7%-hYtRIvk`Ks}E3@uluP)#D3a&cpuG`+ebx; z_tN^FJygVe56!RNP0zjBMWuar(MdaY(n8Ulbbjg%+IV_9t=HU6E9$n<(0f~{y5m-Q zchwd;?{f>)4{f1G4s52jQk&`aoJ~~xVl$1^Z>F1OHqqM;H`3o^BOSMH1J(Yvo~nnh zr=t(8qr+0`D9u?*r(IY>ZS>aAd(&6b@&~KvU&mE+>Z+CW?Z*`~BzOhgwr4qgJ!&~M zNNc2_r4fL*HC_%X%)ASv-fjzMM_dJZDou^DH|5znOG?#7z1+io=Q!o*U>gx0ks;gq02T^)B6!sRCaVFwK!Ey?aRyPgbAf|)Wc%hv%HAT@F}F4 zBl&d4p**UZkxQ#ob7*IG7X3CelPcS1Q2pUFs?nUv#-&qeuUIl&+MdY9;uGjK?RXk? zE0&&_A49cBG|hPz$@Jl-&aJ}~*W9qAgR?BCimf^Ie9qoUS#3g#d?wK1A4W87w;}b5HK00U z^qGp8F5R22L*q5H>A!AGx^|id)w5KmTL#sr;xbh#a8seTKa8V#ElM;qRFO6bDbUNU za&$OFmj0EKp`*`8Q^`^(`bTFBeR)HYUYaREo2m3fBND&|HZ3^|Gwo4|MuS{{&wO8z7@~%Gu1kIuj-Th$Zg8+v}xyk z8;|n??~d@kSa`RmD&e3Y6f-??L?{ekMI_CF0n?Z*Eew8xkAwr_ZGvHe9%N4rb+;r4BA zyV})`HnndyTG8&XVL|&DbwRs}XlDDf*OS|i-z4qFsbTxjR=M_7%0JpJyzFkvPiZT%nu&{N_%FwL9z_cTJn?_-WTc$8EiL9TTSsJFQ=?>@<6anUf0d z?iAS_=|mpoIi3GB!|CU&dZ$NYRy(a;x!FloW3N;0_G3=-%uhSzAM0{bcfRek>fE5y zt$<;td%a(rw#WQ+T3;;2ojo#|>;5Lg9d}aVX4I*16HaMyhlC6`B`*^$dY&a$b;*`1 z8_jV6fv()2#a>*)H9zi)YzSu;7QuzAh~YeLC34bA>D<97Ih^t8LawT>jN3S_hFcvu zjXM%Bi<|R$4(D1wpL=Suh%4@D;D&ORa^8~5xy8FyaveTvxLYsQalLala&7vXxVdLr zILFj&T<^afT-c`FT$}SgPUOJ>&bGFd^H({_c^yB_=|!}2&p%SGVd+Uu*}RjR({+}+ zopphe6uZo6ZMniJyY_G&?_cNkSKs6Ul=`^Kt^J&F@O>_Ocz|0l?-92^_bHcs@;PT5 z`;xoxb(r&Pe9LV%`@r41_=)?J`jvb2`#Xnge{zL3zqyg_zueKILgbE+2zeDON?vUc zBYiJNkybkiQaekMSX~=UZjP5CY1z``(b2IaKuDIf1j&)->*R^j3k705QHeNB8%NB$ zl$pk|D!H4YMjH2zC$|5olQUkL1eR%$&G)s*2SZ(AQmRKnI`m1RgdvFzHzLq%Oh&(& zK+Z5N-SlZ@h2^t!-K>h@FXtZy@-UHH)&tsLqc!(l548|#5Og6Oy3hoT0aGm z%UlS#IBPQ5(-lg}<->_yYy>&cGKE;biX_XdqRH*581m<2ERh-&PyPfZkiHd(r14%7 zvDQf;$Ffq1#(^}(8%rl^xlFQmMi$v}A)C}memtd+%1BcaXHiR_aZBxVKEPPUsx zF89qMxz)4DFV#7uj?N)(!0Z9b8CGM`w^UO-&*7ZT_53yE3gA|feX zPwwojCo6m#i0i8cc6}C;G?OLdLDv%EmA8~^7_*E#+PjP>1vV1LH;u%vVL9^=pZp`W_sG(A)6fZhKo*1+dm(DgaH@=-5|K3h|m-D3GoRUkIDA~er;#q%?j9b@1 z4%(a~);%XlbM`6nMffzaYdTGm96CwqjZRXOcZNiYoh62w&XPxt=g92db3`WpJeebQ zfjn)#KujDjlDHceNk#4@QYCVkq;9-S9PGNt=k6}DF7pa8`g?^mt+`4@EW3%emUI{6)SgEYOrK@8{jlGU0w$-84WiFwd1GUeGVk|wxKV&(gY z+| za|>RO4MIa?&8i_%GvOt1V>KCXCck2Qy;tO0)i4Pk^O~$`eofH&4Y_pg4dEHTZQ1Z! z5;*l8c_Z_llx}%X9@u^$rWZeu#F&qy^7ThjHuV#Ukoip1T0WC=6TgtKb6?2$DPM{D z&{q;w{f$&gekV2SzmsIsAH)=Ykb8muk%EE$$kT$K#QD!pB3SZ^Y}6bfEeA%(LYLoU zO3!a1n)rvTe*1@vnfjNcOZ_98HvA)lN zXtD^ztPz38ha%u*APRc;Aw6tdmKV9b0m*xW4!hKi$LW9%ppZ5ajeL!)4a zxi~y36NfRpI2ipC2U~9mux^k5tzHTEqbv#C36ijQt0b!-mxMtJR@YNL8a}s=hRnaL zw#RD>Xe=57Dc8opDn%*aW2E3(vlQHZDg|A}(r~Ci8s;6AhM@1#AOd4y&y2C)c77~e zl#~INU>VrHTn2vi$$-arS*S^pg-u&!;rNg&ps5@jE|P<_jQdvbT@GxBJgfDVhs9^) zL1&Z#t9w@f)x`=>cU=LlDJX(mlp=VpSA_HdMX1nLf{HXHNZ+9Zp0AWZ&TJf9D;x)c z)^VWxWgKj^R|bt5Wnjw0F!);;jNDWpah3|qIi~{aMyW!RuPQ8Cqza{1Rl#$t8VFBT zgVshh2)U^S_Z7!OWaM}_y=FY9+#L_eYU;2$P96A->d-Tw4%am`;B=A(Y}%{=1&=jg zg03dqOx1*ZRu}f=sV3y=Ye7%C7U*o(g4E|)&}g6y2QsvQ->%J=3)-;JKnF@QbiiS| z4!nA%1B>)o4O+S`tlFvz|DNbVjIJJRPSJx~oAu!PpdN^8>BFc*efYFdAFkflhm~pu z;1^>6Z`T;Wv_1nEQ8a{{a6>rL$ZFuO8-nXtBS;N2g3?7sP<+V<;zk*Rt(P(UoM{XP zP8mbUZ(|tXCO}N}1n4|A0aQLufH*4?Xecm&J$p>x*pLbA*EfX~DW;IoYzhYVO`%uW z4Dut);L|cQ$m}*__tqSgyv-qGmN`_NG>7`1=CIh_0tBTN5P84?G=?pp*T52(9ySOy zS%RS75}qhnfqjS-R4uZCZRf3^OLkB%WDkR! zJ!qBNL%@D}NPl4uSy~Pd73}~vtTyu3Wd}GQ>A`hI+wTR@0i>?gd6~y`V>X5+p}Vf(P>_fd`!gE8b0l zYdYTWHNqRj7I?#7-W#61^@bzbK2Q+u1G4jcpt;Ql#=Z7|8Vz4KAL0umGkrnhs4wFI zvZ;z6jQIJ%d4V6)?DvClgMQE?>kl#>{*YV7n04FyVeqy;{1_DgzZ?Q!C_4a7t_y(a zT>&uRR{(UF1_Fs^HNOpk@C5_G>TMuIXaqr8P!PmTWwpWkgFs>+2u?}`Lp%h-v%Fx4 z+znd3YGIhA^T`3csvP(QLOag;5~0E(-3Rje`1jQDCSV4ZA&~L8&kra@Iz} z4p!HF^-VO~8y5pN++yHRZVXhdi~*yQF>q=q2HfOgVK)~GKht8tc5y639*>2T!B_~F zhyx32#>b0^gQi(=V7)gE_TP*Hxsf59Xl615HzdR5)?_fdlMGdir?*=t1!1=rsIIt`Q zrXNcI$9pNz|0e~K^-|%QPbwJZGp63MRH#3i3TyjQVaZ4;W8tKMg;yHf%SwZS`ZRcX zAPxL`(_qEdG&rY{4i88=+)qr0Gc(hnaa%fgUrdLmuhJn)Dg$m>WPl-K0VJ1Yz|2({ zu;@ev)ZWd2&|euKqmc>6Tr$BunN4SAg6!5z2tStzbB2mixg!rwp3Q^DkMiL4?>u;*mJdf9@}VRmAI6pBL(5{u_S=&W zc^C3w&y#$(_9q|is}(@EeF5wUD}cWmLzUj&yX7ePyI5hTwkf>F&yu>1t$ zN8BiagyACCAW{sc)r;Y(T`_b77sINoVhEp64Byul!_3xV_;|S(e4iA<+@Hm;OTGkJ zO-f+1M+sEMmVk9>3EW&*0&y)RaH*{X)UTI72<=X>0{NWULNRy9$u=tpJg@3dW19fORt}z$mQd_HF^XV!$ zd#wttKCA-%Z54Z#s=#+lH4Ld%L!NOpyN}giFsT}1!>ge@g;`NG#7wOQ{d)GchFyaih;y%jwLvv3POO2> zj2bvlQUf!m)_~)}8t7YD1JRpn;Pl=a7<-}y+|IE1?i$9PssX2`H6Zk^1`htH0S}Q{ z;H4RJMTId~bZcR@SuHf$*TNjPT8Q^&OvZ>>=t!sq@2pyeF{uUd+FEd(T?+{fwUE53 z7W|rPL3w8_bRDdP)V5m2tE~mk%e7E{qZZol*22}twQ%lLEo}K%3mN~_g0zqT)=LOL zT2=rV$^zJ;DS-0^jPGbB0NzFb4V-}Sc?Iy;M*!);0=N<(0F^ia_@@XUHA?`A1p;s@ z6M%RPQVv3t`xw`bplx2EP&}-87p#^0Oa-y;Bcz|9FGfN8!v#b zCk0@7mTh-Y06td)V17*iKY9hQyH5Zv_XN;B!1nc607=gTuy9BK>xKoe^sRug5Ckyc zvjBR&3LyH2051L%fckF%ME(^(g-{*Tiqt`x7~@Zh*TIlP9n2VA2Y<(~Wzu!9Z)_dh zm#KqyvUTuMt`089*TF&swyt6woMvXLR0oThbuoL#>>IOZ%uX;XVkXUO8C&lM+h!88 zYPS6{wx7jpf5mLS4s8F=rRt!H9q+v)<6*MnFBw$_$3^SltZ*G1`^T>99|8D{2;lX9 z0x0{=n3`V%F!2-nUhf4k?~MQ!yb?gs3jx4W0lXVz%N__o_%6E#w*|28h5+t%vu!U6 z;K_Lb;|Q_q+`+C#y8w5NJ$bf?w|nr!vv5QD1c{^1mNk)j_)XdL)PqACIUF3$If3} z00Byj{V6Sg+ED@+{=;i&75i&p za9b_NZL9_36}4cni2a6V*21-_TBs|m1(}RmSP)kWFG6d<#J3j0UD)r~wiY5yYQajo z7CtD|!m2T~petz|-Y55IDaE zHVA6qT2T$WN@Etq+5t7N-j!`*Qv**7*|V(1o=xc*kPxZ?`!ChtKU58#_o_j+oB4}V z)zEmDwYOKp+BMbiWnneg*HuG8A@dQ*)sPrg4Gvz_@Xf9oHW)F^D)TREMpwhzUsYhj z{7xYAKM~9ic`$!8j`^kQEmcs={M5Hu%ug}Db(Hz9H_VSodR2k6Z54ditAYy(RZu5V z#ri0fuae-Dvp&_T0#Xesz*D{g#{6Zz|8+TI z%9O*!bLC*%S`LLx<*;#KIUKAghutaVurR0`COehGZ~byuCR+}pN6H{~s0s|?DoGk&%eI+oslKme}ErBl?CBSqzV4Hmj z^l6sByHU*E6~nE*VrV&83=unu;r-%bD6S}m{`g`r@+yV|(_*NRFNUfA6+zacBF6kE zf)D$PVCl*tP!bfutdt_gLMZ|{iz4O^ih%qq1k*=_AatP+PVFs(^u|JXUs(vL@r8iy zh49<35DcUW!S-VTnDiBZ1TBE8n+l+MP63S0DS$aa1@OYU04&B8K*G;_D1Vp_rDyUX zit(cK7v)2LK|Yj)=EGOpd`MEsheN;e;N`{i&tW1Z8CFw9ZBpvperNcYPbWj~i1M_of zVBC@hQq$7lZfqJXaYzGG#WXndAr&;cQ=xo!Dr2Rj!o3v6qjpY(C#tD%=4%T3pG#qV zrxdueAO&L5Q{bFy3aE@vfrxL(P;(<0=I={pe8yymPfZ4W=VZ90oD2n@lGrnn1Tj04 zVBgFncp1lHdlui1XK}vVa3XwQaesSLBIH&jf=Fm0%ri-ZPa=unGmrptjwit0r3pZ@ z6X2+O0<2O?faK5dpm;SNTDQf6!_;`#F(n@Un8$6m$$m!nk9R5W6T6 z<|jo$vuz}7l8l5!52rxVktv|DU-f-BwBOIbwAMpq4E6&zo(=TBVeJKoDHiW_L!Z7&a9>(%BVeoz^l<_k|Va4K5 zn3Nm}k0-J|s8}dtTulbsJ(HofZZhl%o($);CqvgK)`w;6tW~Q+AT~P$B)JgSHiq?Y z2ZCYkfnfMFJs2E9gCR>d7-oJBf_dkHpmJ3Zgk}c8IENs(C>{i<{ekduS0KdH1i~@D zKp0UC1dHJS2;c)Cd{F>+#|D7DNdUb4&mUSY`-9s$f9T3)Q%5#0?hkMK{6K#P<7-v; zL4+4$Ybp4F^%GwZYV`#=-4{}Wec`jZFBG%9z}IF+Jy`W;m6MQav zg6L{bIFRZIUY4G4{+9>XT=Ia1l^)QW>;WR?9-#A|JD8q#2c1TD5J_-{8^-R?@Wl-# zo_2%t^={x5#duu0ZXo{76$08>Ze@-utPOF6Eo!c?=D7>h9C86)feQ$GyTBe<7jU`n z3@5icgITdN%;lWnD$C*gWw{*9bpWPm0Q%9S@hhz$E7l59w5`DRg(Yb2vxLVbmaxLX5^R23K<60?a9LmhyMru1Siu7P`pscl zlR0cjHHTwH%-)#6_Es~PRcXd@X=Wh#&lC=yGX?*Jrf@yT6eh`=!md6O__^K$NRkQU z>6x(Dbpm4?PJrb_6QIs!0z`f{22E-Vx2G9{z{411S*~*BWg`$@Yy>%zjaV+nh~W3(<9T-AZ^i*=wqL>En@Gesowi&8IzzY?4x?KhG zGF0H1z6u0CQ-)nzmEm)$GFa*=L;T}$P_ua)EJzv$^EJmo^?(v%f-8Y(oD#fKRf4Vk zii{Dd2oI+yLZ+f34E8F3Z=(Wi3sGRPsREc^m52C6@-Wp`p2gtu(0EP`=FXCXJU2P; z_#+ErP!`VD$U=#OER6js15JlzK(kl|mYK`Im*KJCziTWsW{ia{-Ldd>P#WZ$q(LW^ znX)t}-jaeJ%cP(uNQ%XKQV@D^4E&xw1~$5l0khwu;UF7F(61Z~^%FM4;lgFl4p~gI}32Xj=%w@Jk`s zu~i5n6Pad?iV$e+_(vv=|3}Q0{Uy?3f5|Pz51aMwH&IUeO_tvoAzuSVh|B3;q{#Lc znYZgFnXCSj>+&UAlrKanpFK9YivkEEyb15sh)O8z_ElXR8$By-U_5;pRd7!mxi3lH{UPEWI7I&93$oMv1#xU<8bxED6Xog8 zNXGl8WMk4((sAtxx#aqUbR2w4HfTL2=}R9m?$aPSTsTOa9zGD@DCKYMCm-edN%D+4gud$||Kj_I)s@>M(CIb_ z-+7BnQo2QSXWt~RKlGAKiM_=2>J8H6bc49>yiT?$UMHVtUL)r3dq{YE57Q0nCTaHF zBzWspqAz=uyr{cER=w&XR*_w#?aXCjW_g)3Y`8@3ieDlM~_-kwvAXsw~_KQC&+HI6Qq0faq{rrF*2BYjP%?( zO7^)NCDpr*5F7a;U33c>IklM_G1^Sxmu@0ozcrH?iOpo>d=tqrZz300 zZY1MIHjt>a4P;^0da~boJvqB}9qIbJmYmI8OZIoKAq#ESkmwDoiHh)Q(v`i66kS_M z#Ozm+B^y@|Ns$$#GG{sIyVgjI?HftK#${xi@G^2OdntL{vxNMzT|$1ZUrav#YasVC z8<$aRYaBy8n;a{0e`#3pGTS$1wNc`{)xF|(v=WT%nag);7trUek7U<)<%&p?vdoX z#1t}gEu5TN9Y&TWgc2Y9$>iN|FqzdFL`16tNrg)Qxh3jPbguZ4ghn5-Aj+GxXiOq| zo_dlkyFJLlB6pHx=SB>ExsZFOoyqihz}{CNWW5|mWbQbUij5BBN{T&^H?kvsZ)`|u z>qJstX-!rUE7JJSf=oMaPU07t5wj3e@=n2oZ0R>9K21hsFvXDM7#ffl!+K=OL0xj9 zOoxnd)F$C0nq%OeF+uuYy=WXqAK zrm|%5`?19Ah%`A>DMfs_G35MjN#fKgL0aaBlfOQr*jTt2Y3dOn4;qDu{1hQlXZe>q zeQbpLM1FE|XTEcqzF#@jo===m#0Reb?pv-o=`|Pj{3Z7__XW4$!&7cd=adS!a)F;Vb2XLCT=UNj z96xOx*CV`!yE|_sH!ylRcX!EBu3LUFM^`W6wx})OW;M^{;&o?pNdYsskuU+bIJS~g zN-g1*=j3yvO0u|;>QwIL^aRdgel$00NjP_HRWLWM$&ZWL=Ebep>&kT<=D0uYcAR;q z6&HKSl$&$SklWv6hPar{d@`E3Pw%`tQDMYZ~E=nI&jn4JuQ)<6M?z|`V6S&|L9^E2sR{r5_ z^Pe`hz1-a1)}HXVtyWsBJ>a!Ud-o-?_CMR*+8@k{XirbdZeK;}+8r7ew12Hx-aa>L zWBap+9qsZShuUQ<`S$+t=h_P;dfI!w+-d*u=yCh&tFPO)w|#9l-1fKK!B>n&=h3{r zjSQb}tjMp{P~|ttYw`=k_4vsnM*Q~=X1w6JHUIFgJ+IM2c&9UNyw&kZyyzZ({%}(W z&oxHy8|TFE{Z)zlo7^=1ZbCNSG`WCx@+{@|+EwvijOzG>(lhzl^Jeo|f9LXc)eHEy z9~SXTau)L{PnPlxvCH|Fy(@Y1fHi#V*>!vo*~sS|Y34&rTX?mtTluSMJNS&{yZC34 zdwIW^`}vhW4)W)V4)gb49Oe5GPVmQWwez(B$m^at$scs=k#>xNq;)x^to9%yieQ6S{~xRM=68efCu6i38PFaiTK8 z9DOpI(B^ia9`BuLkG?DQh;^gQOWo;{a~@Rsrzh32oJ3XAz3I=jKJ-ktFD()Fr{WF) zbaq}KeX%KsTHOk!NfMK31%%R);xHP%Eu5OBvl_P(h<3E9r-MRW$cRHN7}gLq$~tRNuFb8dOiE z;=88ND|e<-N70$|*M^z&pv^2Ac4ZcQkvf~^{hZDCSaYb?gt>I>>A7?uY95t;Kabka zn@{~U7SQ0M3#doHLTdPAA^lOkh*BBGTia1j$2vFAO*b2;X6|CT1Rm(wk+%W0L*3d#+vpl?c7(!~<1sCx4%y3S@b6}!BeCMB++ zJ3p_X0}IwtA8g_4%2>#BXs)uBUHicC~fRGN`D3)qrs1k(ZwalX`Ao~ z+P&fgy{g~F&ZUhuc(>EQJMHva7EkMc@O1P-O3PG{UfhjTjO(E0T^-ad_9TVjlT@$v z6#XoDn(kkBnrT#b(!sV)8s*Ds2kxAqB3Wmt!?&|^%3M}gpm?4JZ9PwoCSIV!r!UYo zAs4CH!;9=4?Mqbt*Cm>^@G@;u?xLp{tF6oC3O(6*g{}{|N|OezQt7;Iy7fml)t%Qv z7b;w%{hOK2y2W*BNv~4}-y78E_6_4sz<4@>xx2KfrdP?tyKclGw&*-(x z=Tz^*a~fasf(nF(=#2UynydJdlBSpRqrofMaNrdk>o82qPYu)4KCkJgYp?r2;)GmFlOu%#=*D3=x-^4JBmf{OREUld=|lUTTz@_A&P5RUC_qwqS)vt zhE+9U7|e^|xL;y;os7cTx=}c;V-#-rJqop4#Bs?qaeRAH9G(A)<5X7(JUCqfZ=90A z=YJ*erK=G_U~M@JOq4@zqZ}&Vlf!4q^4Ky(9)nlNI^)I;ezW-Y8+G@ilUe<57&&v>9F)kM=_9XbbA7Q>Bh0t?GF3jXKUS(m$E20BxvF%TP++Z)WWa3v~b{w79LjD#>z--oUlwAFJIQi zXb~Ok108g))WHo0b@1s+9aPoTMdvtO3|Xm*le=}%Wt1MOx$5EbDm`pIq=#Ow^zg2Z zKE}l|hTL*}G`XUWl_Cash#26VG6Q_O*8o2}HNeN?4e@liAug^rM4z*U`2MFM&Y5V0 z61hfL-C~4y`i)Re))?b`jB)lfV_bX87}vcq#)WzlFf(=nS~X6qBMQ+(`YiXsA2ly5b~u|uZ#UEK_O!pyL7ff;(7G{Z-q%`kTYtB*`H zN1v7EjAvqwcm9~8h^+;V&#^$AW(!ofX@Q@_E%7898LBL?MD-n(c;KETnzI_rb)HuE zvC0bV_gP`~BP*PzXpN1&*0`|F8Ve3tqsudE{G~h*w+Bo_GJPU;9G-~gFDBvwRU5n> zXoI3NY|!9{4NiPvgJ!C>C>LmpPp8>pORFsgK4a~1c9`jBhqncGXmx(1u(rhk|Lb+Y3{gkyuye$JnT}|+))50PJ7U;R zN1SBpgnIE#_^!bTw{XIA6uj79=ywA|y2dUu^sSi%Ln?Okwoh70PibiqSs zT+sNV3)XA7;@u!ul&^C|`#r3Nx8D`rM!BJ(ts8zzal^w)-7u!Z4POttVYZ4pUZ3QS zdS&jIyxAQWcDrNKPj}p4%2lzLj3Mn$;w`yZW-0;sI zr6&Ync4z<|s0qM_EdluBasdAN7=W)-1M#$bAkNAOMDxZ#Jku74?vDa-w|EeaSOlSC zWDq7!4Z^~0L6~(V2>m|=p|WZ)_P7RPVP-J?Xb8sqBf)t2ZZOLJ3r07?5R45B!Nk%K z3|Je2IwwQ$$hGPW6`iU7LP88MU(xpxbR9W-gp&@ zLK1PPY8Z!VUU4Xr8i%(SyI@IE99q*jr2TPd@huJ)D#T;ARXqL|6pzw*@hG_<9^Y+? zN7@;W#Si0g?5}uSshohqwh0(LIRRJaCt$~d1iZQ}0neOHz?KIIj0Ks1DvF7C&@vG% z0}^pfW+J|rnTVQAiRjXnh~767(f(Z`j+IPeEY>8fa!Eq*m?WHDmV|?glh9~a5=Na# z!r}+az9nI_Y%&^~B;%lGGEPrOM)9g-tX!6iJ-d@p`fM`VK1fE-ugS=bO+i(o6vkvs z!6nfts9%zTTNb9E#Fi9{G+~C9c6c>qYkE{+KqJl`8*xZ{7lCZnGBTB z&%k+(8TckJ1D#Sbu&^Qn7cI=d#Z4Jl-I{^^=QB|BZU%0DlY!>{GO&rUHNF^Tq79dc zF+q&8k(`NfWtr$OFB5;R&BX0{S^H!r9=e{1a!)fc`fDa*Rc2wcY8GxZ&BB?^S8&FU>;DIaxS=RTlQ|$U>R6EVQ_sg?9I{Q1^8fe*cw)N2IbblJP$tnP+3DOE&Ha z&c@-yY?Ld?My=`DsJJv6KQ?FM(F56-bdt5ZvoUud8@t|Qqx?uVx-rh-6tx@-n~;O{ zjyWjAI3q`<Em%WZOTqgyUE1m$9SY%c0$<>KYCT#TH-rVY8Mzb+Rux98&0)?94v z$i-Eca~UI;F;E`o;?p;|jH8i@??v)3L?#bctL5Q&gFL)vm4|(dnbPi^hqFWT&^A5~ zuV&_9KuI1R66E3Uxp`>4jLoml!@zBMXm=nFMceX_?_~VND{T8)dH6p`XB}2W(*>QOaPz=Bp1I2DpQ3TO%p6C1H zJa>2R?#%4$?#!GsbAHG7NiG$?&ZV1Qa_LihF8z?tqvyTys7xb|#_Q!#U$Z>gY@5e9 zn|YMxo<}AAc~ljiN7v%>=$tf<){oAkxUqTEIVF!4&&=a_=2613JleQ6kE%E4QNzwW zy3E-xyN~5j))}7Oxjfo+A&+$H@@Pf_PwQSDeSDlpaxe0z<82;2`pnP$kw?)TdGzLA z9*ycDquO3F>Z>jzul_Ph(veYufs9;DIUCYaMr13aI0qTs9nO!TjFx)HsM1G9j{;=$ zB!qKlB4kt?Bcrec8GT5W(KxA$nnuXTCR0Y4*)p1+C!?aVGRmJIqtMARQk*8E1Jh+R zq(Da7XUV9oP(}{(cpeKlmvWJeqL#?WvPed6mdR-O3K?mylF_o&GJ3s6M&|2e6uw?Y zl42P}Z;+84XW@M1vU!t?tTxMNCzpR*e7Ep&aGA^HKQ1X;jJeeF|1!8V^Ygv9EalfS zo=yW#?h+BDa_^9&gOMB zlh?%z8TseSXyX)~)?Gj zFH?|=s{Qyqc*!W)O-Ay9j8;1G^oPhO&6?lSU>VgJ@jUcobZdZ&j`x$%l-@EjQj*c> zZoCe<@@U1cJi6DKM?F6B=l(j620Y{M%fmdnbUTlx-N+-g+B{lWl}Bx29{HT&#}4Pw z+P(bU+LlMNH{?;osyynsB#-va$s_9-d9-0-9(~Boqrsy%KQtweB4hH%GlZw>lSg+T zkET2DysYvl-zbl656mM?^*nOznMa|2IbWzPmkdAV(#w`yTJ?kJ)27b zr*diP!CYFtJ(r5s=hFD1TymY0OJAnu(h^xNsf^5}$qD@13(ciYuUyi0&LsmIe%vUR zn)~O{=3cqv_AiGnf6pOj&M;cZ8L0IQIn;JBhZMvdYCoJqcXx0$>be~AU7SPr{>!0= zaXEB+WDfm~%OQ)P9P)6@Avb&89vJ7)SIr#S(~}?T$mZO?Y_e_6rdf^IRB<7j9+YL% zv;EmrzbTvc6=hS#%xvm4E}J%_XLBA(Hf8x_Qz>V)-ZjgnH(J^ByeChiJ&TIoWf3-I z(e1h{il!_Q4`q?k)+};cmPIKAS(GlzqR`YVG7Qb4$H*D5)>+g`H;ZQW%A)(fN0auu z(d7MrvtnyUQ^=XoWW(FwA8SX`?zy80c-t(djV43hR*&Uv_8#7L*YGy{3UABHc$>bI zx9tH9ne>6T_4$V~>ElMezc7=ECS_82dM4F{Wzr?cqyy%eG)Xg)%;Ynv>Qe@JH)YV_ z%Ng|VB_~_akZA9nRK0&l$T1MpD+Ak>pS? zl3rzwq{4`iq#%r>amFL5Mr9=Z{V{?}o{k{<+7V=WoO7KvjiAeOM$n|(5u_Y5f_OAf z`fM_STvbQV6FeHP)!c$v}Z_2Ax%Q}eI&HbLc+%$5~^)YCHH%& zRKil}^)@~RnwQEMsj1`?l1fJQsr0j7Drb_UP;yfWy+4;iqjsjyrTHnOmYqUAAt{t@ zmqMAGEfxDCnQZuY?30*G8~FIlYIZX1~C2zCx$-%il)JLqbcxYG{voqrVv>)SqDYaPqSz$ z?G{Zz&76l#QRKTZigr$pqPLMzq-`5TPRdaPuOi8+I+D7VMADV~NSYQKNoqqPX^l!G z=Q&4EVhz_NN+RfTegr+?I>l42TU=F+pzSZiDZMhBR5pjxj>%mAh~T=1WjHk}gp>Z$ zFbb>)3cq-=Q@3b|}~PLaBIRDE&(drC1@9*7ggfb00#e@gkR! z5TdCev??NmA}vCwQ;u&x45q#(gK6f{V7fgrm^3k%yflI-@k0V!c0W*10mih-o{B!HApa~{^x06H-ufJVCnkfK@u zt$yWCN@x8kca1-lXZzDvcYo6C?@y*5{K%l%j}$lf(F2(ut@rjL_kn(N`xDnUFL2#+ zqc3T3URIKiFD)MEOS?Y#(198s+PuMs@?}2c<>f;^`}Y9yll13#(&~6mYPIwvw=T}lYVe?q zyFKW@R1ex4cQUDQr-pUzl#}I7Uj%m=q3TXmPu-~32{-bZ=SG=vZZyT* zjVAndrQ~a_WMAS+tz%tjyQeEbKUb=L!EFI$$e#<+iv*-WmPkGwK=IeOYz6We1El8; z)Y1oNJ-0159T%v&P#}ontSuvfzPGy2uo@RiU*keEM!L`(2N!NHa-q0e&SbL7nVwE? zriEV4q}$h-N}dfT)#Jk{XZCP989toe4H{0pKRJ>9StlA)RRVWMWY<4r-LI+kaMKko5M)8WEi>S4I_y#jB0$lqfKbNy$J=h z8`Ik=W17Cin0`lbj+c%x)wURs)*&N`nPfzB(1=PDjHvXQA?;ghNUKu}NoHb5&L0fu z+eri3I>Ug5dmB)dvH=N=`m}2!w?n4sldrix&HOxw_LdEz^96&b)@Kk^_Tu)+Mm;Lr zs7HZmdL+;7nx!9g$@`Qp*WGo=*Hf2{D(X_t8#)xVR)>m`bg0ZghZf(lwBBFAOB}B?IYB_&}PdIgsR=22kPl0rVwf07Y00pdDYdsO7X4Y0l6hXAdn3 z>8?c)SNoIiivDC3)1TxA_NS|lHEGUHO|l-XNtdiNDe8*`-8iK|n6E*bTs7#OoCaBP z+i=Q~el#nrAAe8!(T2NyX~m|#G)2;v!j1aUz*p*Y=YTrRk*Slx5Oq5CU5$p6tI_Tm zYShzRjZ)?L_QgK*cu^lx4CzD0efrRl#@=MVt~VJb^rmh)z3JX#Roc2;m10M#(qB_m z+Vn<+%u7{x90L^^V6Q?mT6#_oSLeMY3J1NK0cCsi{BbgWc~zQ5$KY-<^V+6-aZ30yU;9P@$0mXYY2S@?G7?V^lX{Cf&&5r9AJ4 z_?$w9JeiouljM~gE!`_erI~Vc&P$bO*xf!>z^zC0+p59j`-SmZl))&^b<}*8} z_L;dY`@}@0PfUNoN0ul5k?olIfmQx~&n{1S&&pcgvE^glvG8|qS$hVb?|Jry^-O)k zWcOb)G5R(8dgB%A8}y3lTztuTd%R@t#24(S;|nG^*1~>Twy^v?&)Ez8=S|hr)2W`#?D(9gY(wW0mNn%GpI>^+YO^1+_?AbkA>|PpcDISm32$Po_91)X`H;t% zdcay79x^h*H)|W%GLHu4R9?@n+10a~EDw7Ml%JyEk!iK{YcItR78)RO~CY4-fXEZLe*Gn$3ZgQ8H%G8TY?&AgaV#Eb@ z@_r2)7goatUZ`frT&kJFQ6A&Tq>6RhRLR2nRI-Kh&a=bq=UCO4bF8}MEIXcXmMyV1G=;eJ;1Z6CXqv5$4$+skx=_A+bQ z!)$E#utD2*bDq?0)-ZP$Tk~Tl^BcXBy}iGK6$I^Id?t-ewb{-dmuzFh)V8tz3QO4O z)~)R6$gS-6?JcZ_-xj8DW;6RXcr&}TVH4Y+g34$KC4*&Su5H5Pb=6d$qF|1 z#&V|Xww%%7Wh_E(8M|9l#KJq5GBI~48`!jj}`HN^N*XxRt%lWDtk|1P46c0XE2f7*g1jiojIOmC5>YmPGi|Y z^)bxqV;(E6&1D~V*(@-JLS z(M!U%y-Z>6&nGkEO-amuQX)$TOJH&4@ytU$j%huLVUJEnv*jzIm`!#htMH0o!*s*h z<{zQ_`wU@@`-9o&!XS>34P@&a0@!L5e^&6)m&Kp+VFtzC?EY9UHZ#DJX&QR4P3>;1 zPopcFco5m;Ily`)3(VcYg^ldx%%-+Du^G&fjaxH}#pXINEAOGKReK0K*lNe3uiCPY zJ8amrd~5b2!itSFw`4Vc&6(!C!7TBJ8CyQzl$E8JuzCk$_E_17J$h!qZj|e@6DtO> zC7F6G##NW~)zD!z?*_8bRRh@HVlB3GOn;{AtH}y#t}W{zsJk z{w?m_^GmFaXcHfFd=u~Q{VHCJ{48$o{2*rUdnX!1y%8^Uz7$jTwTR7;&&1fyCt}6k zN1{sPLou@Bp15Go9kDe0mRQ|hFJ9esL#zqCCLZ~DMO?b$vX~rvQPlfUEjE@^iunQO zM2%J^?%G@-n);p*w|qJ!_SkSj%JTO2lvj~{IiZ_HmWp0Qmk7T;SXj+?zg^t4zeDmN|>uTNhjE;3#q;-H_N$e9eRJ^yzM%?_~Tuea|QD>RHc<-^cxW=}>7&=Rxr==oR8uS#WkMAaC z&+V*uZt|@{dg*P&v(e2J*-Cs(*TL%*D?%<**nJW!9;`TCv3$t>im+QH6}pqxRs8B- zRPnrgPDRD3@fG#IBo)0}Ln?9$T`Im`G^^OFtWhy9T&}{v{84%FiL&wuuB*zkSH_iJ z+SjYR`=427YGyh(tEwhD3@V|Q(f9~=er!bwA{tPaD&Uz89Q7~-#O@V#O{>Kw8dv#`m|hfnTYi+ zyVpH%+5YLd%V_@(E^XU>xP<-cayheKK{yzrB+UA!Dhxl=SE!HI5`wzv3VV(i2+tBt zg-!)aq3x)xa3jeNemZ0%Et%?4jfu`jY8h&&B79KtFS_KyHJp}Q;0gbTj1nKuv!f3xULd=E=!R#Fq9>Fat3q?MbzeXn#@IUU*rkYrG;nFuo>SnRG+g zda+)J?te>opLs{fJabQ|R(vS@i+?2O?|&lb|7sTg`L_sF#V>`CuU`uyFt??1vpmK9VT*q znn|CYP~)fs5h==WbxtpEIG_THZmL4vkKWLsqXq-L)WJBbFK93C2VEyM;N}BODEiwU z98Cv6UC=-X9j6U!oepR+T}W!ygQD*Gu;0=Ej)xn4ccU?co-+Zt7E{=vI2f#~ z&0%|l1^k_434t4}px~@EYQ1{1YBKw0pF#VKC!Wu`Z{@9=@iHNLR=r5_Y42Ebg4 zK!^_x0(Dt1oLC+L!m&`;-w+0WTEoFvBNCDvqaZyl8p5Z>fboV{cvKz-GakglzxD*k z(N2O2AsId;rGVm$ROqo;0&hhr9DkSwlHcj@dEiLMa2W;X6Efh>)JzyuJQ_^OvY_{! zY-swH14VuFz+i|BHiVCXZ?dsqUo;LP4~~b}+6e%!CW3;(WH@R#1zg>y!r_!@@Hamn z9Ezty;Heql+3+7|e=2}G%ClhnV7_+Rs1WuaD}-9NIdK2l9C(m47p}gU3x}r6g93&5 z;J$i3wCXQ_wTBmg87zeTwF^NzZV~*~vIuUBTMT`=_`2<-OCWu~QW(F7%g`c7J6{BD zAPJl?V%7Md5spi{-L+kFEJsN)>AxQ$TvY$GViHi6@>O%OhpuUYTC1wuD& z0eh3JAa`^tRJxQv-h~qA5xxzUJ=g~FeA0j9r|ocp^VmMi?}P!%c7mj}u$-f?y!9wlOg{z<^2g!UlH*X-_XKR-bOO?h zPJ-IOlW=IrDR8Jb1$#VBgM9622o5iUnRm-zOX?Ze^WqF_%q@p$t>xgAUjc1@D`4FM z5%g6VtXae0>p%iwJAusXEG#{A7S;?s2lLC%LAu*{7<}P8+z+gT2{$XDEv5=aJ*)zf zRzuf|YOu(u0k_XJ;5z97n6_Vlwt|arT>cWoExZITdU0mk%FDnsYC&OREezMY0?|9J zK)mTy@I7!9bZqLN=~x}i9d-@+m0yEpa2-CMyAFca4Uk>r@!tb(!m_%XkRMhLVGZ@r zE2aUC-E9E3#6~#T)ClU5TM*ZL3+9cu&0~7shV_|uV8)v}5Rh{hI^W-g4YGTn`}rO$ z9Csfce7z6-CO&{+-yeYM_7D`NHbM2zCKx^K5q$gg2u9~WhN||*AV2*HSpI$j zF4Lca?eC|cJiVF62XBTc`Olz7`!o1&+H-jD^Ev2FZ2`Zw7Kokv0)oH4fWZ@A!rQMe zVb!=-VDR}Btd+fnPw!uYE%%9ue)9&TnQtM2v)u-dcn2*{-@*LU_n^}B9`X}Dz_mLc zpj-4uFsT0sMxmcT>FOuA>-QNJ)_jIR9$#P+eSzQ3U%~zKSI8OC3i*dyAKIp7DZUGoE4dbferk~XmG{u8Wb|Aby0KcRl|FPQe_7j(~Uhbb@H;i~jE zbbI(43}QOK;6?{11a!i+s!o^&e?al{ADC|21@-&7K-usw4Bqq?%=`TVm7;&}PF@Z@ z+~sh=3^_c1Mh@S8lf&-z^4K>|9@X~CVUK6fvVp z5&Lv1;z6gL=s3P7o+#x!xK}-~z(5JFB`KlGIwf?yse}?GWgO?N%>59RG2@If27XmW zJ*!^$d{i&oP|^$C?)Snw>MEELtb(`ZsUVzF!8Jcs@R7YLYUZe-`z}>Xc%+IWG<#!e zSa0-S*c**1d*jDny>b7LJ{XhJ2S4xZgEN}?U|T;m&Ms5KbMw?t`K%iH{op=nHtM)6 zLmfA6RmXLA)N!_IUrhGxi-QaL;`38|vFHQeHtC1Qll!6dntr(MYCrrer@h0~n1@ah;X z?6pS=p-Bsq)CVA6lZ}}L12FpJ0JMKQ06PW^#M3bYQMzOx{yIMpXZ;w6ZI;@YlEyi5 z>$LI5Rc$o?r;S05I+&EhWt$EL+}1%eC0%TF)y2aTbTNLPE`Dy(#i?p~_|ZoXqw@7| z&tW}$&3y|8^dE%7g9f4R%t7dNVi4NA8ib14`gk)`9~Ttrqt$7BJpV=?J#`K6M7RN} z&ow|vnE`HkYk(JY4e>GeYiyZgi1$w$BE2!hWjaO}8fJtYvyHI$q!AjvGQv#*jPYNP zF~$}cWARaAtbJyTult$ccV83yJkYjK-9bt|JoIkhZxH&$1 zW{zfkIe*T}0;f%|zy&)ku&~hrv*j((ZKx&6jj+TMt1L01$`YHtSYot+75CG$LX}xo z7;?l4r$4sBwJO%Qh5MYY&auWx8?Dj1)*An{S>r)d8}x{=!3%S2(DAqpu6b&MPgHHO zKiVSX*kb4gTMW5mi_YI|QQgQ6?}ppq;sQG~FSWzd_wCTOhdr)!u*X+v_Gq@;9;28& z=DxAVahgMLq}LGi8ao74w+z8cwL>uH#}Mo^9E#J!hT_ZVLlO54#o4!p;<3L&@w$}* z-i>$Q>VN|tIqHA~O%CX+I1HZ-<-9t{FwV{xhH0mVVMX&W?CRx+_QM@9Y=k2wEaSiB ze80sJ|EfBn=_Zd&lu=2z{a$dN{)Cu-gvp)8y)qy54wjB-WutH@(X=X=b#T7T=&5~UwrUwUtc`z=!>Zd zzW8&xFV5KNi|@|+qR(?*T&&=SFM{1My#aAa)f7;;S8jSWy*-Q=SE)o?H+fF$h9Sk04wr<*dD#L8x64gl=bpFyv7X z`gR22VC`W1?i`Gz@xd4}B^d9m<-aHSegi-LIT#1`4nZI55DX3qLCgw4tpy?YXjcd> ztqMVtry;nnGXyoXLot`L1xjN=@$UFge78Il-;{=8eQhZ2d>M)o`7l(_55qMOhAIhR zICfGP(n`)MI24Bcu7si9%P>@z3&&5o;dt6P95Z9WQEpr~&R-gi-}Z)MP<1#KJr2h+ zzrwMuUj$yUjlko95jba51iH?Oz~>tyaNMZ~d~+iL1K&pA+HR3ps~3r{hDYMZ$VhyW z8;RxfBk{j&k(~b%iIt6!=7U9MWg4mX!KYajTZZ(vEzI+mfefSLgwnq%64T`}^ z#~4%&jX@k0g9$TYP_jA(Lk`5Cab*m?xEq7ZKgOV;LM(38j>T@AB@yW#i;GiZ@xa7b zJh?a)_ip37z|*mu_Y{jinqzTUTP&)o#NiafIK1K%hYBHaXptU=PE+F0W@#L%Y>&e` zr{ZwIl{hqf5{J86<4|2O9y4{~agSX*UgJ!`NAdA^CpR9?%!!dnVxYm<046oq(PB{8&)}8f{C!)yEU?eN6(|+)cpv zHwl>YI{`CQ5;1sCA`Y}q#G9UpI3_v~+eRf~=9EONT$qUR8xzsyAmTx>g`E5?N}1_uS~+N zHQd4kX zP6{?pNx_wKQ_x~%3Le~&g8dGpV8-bb+*Xx>)z?$-`hyg#dYOV-zouaNpA_t^l#07K zJJHY}6&G2h;$5dyRP{F#mO5|@!rlqg9Im| z1pRy^_%~F7+v6mhZz91hqb2xrtOSK=63mz_!D);5H7g~Uut9>R+a>s5p9H5Im0)L? z1hdac@cc!d_B9Eb+?Jq26Hnv01eH10vEj1>=d?*s`;P=Sb(3N@WhusT2F&vQQaq+B zMbU`!Va%nt&{m2;!=(7bMT(2urKsR5#jGGHo(h-Z+ZZW!Pm-dtREobwO7VJ@6qm}R zoa-mW$|+KGnjyt?v!wWlb0bw2Nzu57%SyhzmLDtT|83^yY?I>ool>;lE5#)TqU6R6TkMclz&fBw0J5-?Pi_^my^$=nEG6bpSWbT@bkE6 zypWQt$C*9ncS+H8yA=0qk>d9aQnX$t#gJ7}j9Df{-^EfKG@qAsHm}S7 zcplTFSUgdRzsKkA2B%y4I$k9;M)`qbXRtD+PxZr{L)&DQGY= z1t*VB!4soW@P2#>z79&kr>-ejX`h0NjZ+Z&r{KMwDVW@mjI|$=QLi}}QyP;wqdFPa zmhpCMe=?5Ul*|p9$@r;&w|QeZ!!4^XCe$TiGfTp#LrHjuvy{FRC81tH5)PGdrc!DW4h-ddB}~HI)=B8En}oM|C1F5E zBJO>ch@T!L;-D*u=v`2>5+ghZ4&UCb^^XrOu)MD z@wkrnO98xpddd5#T;5+b@qTOAY|d@Ui^rV_@mTJ|`!oA^+@>4PIcV`{^*s*jIm1a( z7stPaI2^t+4hxsXVcE1eK6Z=4hhcG8=Msl|P2w=SPaJCfj>RJ{V$tqqEN-lb#gDsU z(Q0`tMor_a-Vw2w8WM}1PO;d>AeM8jV=?Pn41RkQgISk2^XX^|XY|IP=bRW!$&JAg zF)K>2AaT}xYNMSVI&5p)5k(?du5{*|l7iyzY zG)8@m!nXTSIJYtiJN89k%8Dr5Hzf)mr$%9?PZajBj^gie6y9r(#BI%y7;!lgKOBz4 z32P(q`SeJ{^hhl9kHn)keC*RN66@L{u>5HRuDHnA#-$P1xiSJ*Pl>?3DG~UeX9PBw zMWC8W1iE|;$I!ccjK#un==N~zK0h3*v%@hvEF3$AhT~MNaD3bmhPKUNn0+A(SL_eN zZAD?YX!6&;zFmGW9zRV86z>pB!U>kysY9ZLx8jRiV1Y=iOFt%(6#uL+nQI-;n zecgg_hkh{X$_3+`=Rw$56NJ6@1mUm+d>lJE2t5OW(83}JJCuU3{9PcX)dk|W(m)(v z6o?P=0?{rs5XaaA;s(_~Jn}IBk6sVJO@{+;{IURakOkngkO0iL4!}RX0x<8rKVG`( zkG&51BQEyGge-rQ`uk&~nLpZf_s3r?et5Xr4?}nO;r&^D7$)INEA+!IZ9g2|?u*Iy zd@=X5FJ^L{Rp@wM)DQQ?$JV~MK-m{{-uU2_i$2(Mmk*}R_Q74LKG-Pu;72VV{Px`& zUp9DS%@J=bTI!9SS>E{E#~a5QdgJRqUKsq)3pbZ};XSUm{N?&f-(W6-z3`8`7v6s2 ziNzvkfv@-EoF-4q3iZS$b59f$JaPV04PAPaKUT;oKfYzGddr2 z#wf1KCUTuNbeJ>R^m4|IXT!0qd^k#0499O7!}(ZfIKJr1`B`tBaLIWmtXk)UFLRx+ z&C?0LYjK_Vqa&8rIO5EWjyQCzBR2Xta;Co{KKeWieJ>8f&6|edld;3FkMA(F)gFez zX9wQzI-vGO2mCB^z~f#HTsLsQKktX)qROEtw{9qo&K`=Q>rm`eABtA5hM>PV1f!M@ z!JrXC(B5eXDkyUs!DD-zeB2)U&bP;s1bfu7w#S)&?eJEk9cu2iL%)1G%m}f=3Ho-N zy=RMY7j4mo+b3GNonnuxE&8e1;+^L<7=79X&o8vWfk`%)Zf%3bUDinT)_8NLHP%nE z=6$p^mJG1QoOhhnPgZzi8Rzy(t?<3Q6{g8sVa+W|)YxN*F;gsYj=v@Evn{dotp)B8 zEpYi#3(QQhKx-QdeD=p2=iM+zt!?JGVXQeSdYEITnmL|q9*kd(4Mv^9!RQz{7~Kr{ z?^iR_tuo{6dNV9bGs7HvGgSR&iX}HqQGc5$t{7vApIl85x$P+bkqPc8HNmRsJbpo- z30@jtf=6E)K9|^G1lvjc|L45q`Hc;@_GfW?weMrRxlF z%Sc1qI>Zo{|24od*A38ZvjP6eGQdMl1{kbhfDan!a z#~}PQW)ODAK`5^@2tVD?!#d9HDjutcF{p?Cdg|fUJGyAOlk>aA=wd(6#c_(dc=nbK z{^oW&^E@5&b=JXX1s#m6*G7*m+Bhgn8$UW|^EPoHrq&I_KkEnLvJnHZw=K5?whzE( z7Y5+4l>=~U@&G(&HUMvY)xs9i!Z!=G@JW;wUeMFR&2ReS$dmn1cV>UQ7|djUlVUl&_sJzO`N5uiRT(L@Y7}u?31a1M)n$L`kTkaxX=%~cx;S2@%?a%VLyz0 z-xs^MEp+3|zG%uBUpv+NqI#1$j^C}0)iQNd7_N@a|I{$`iW*K_t%fs_)o_xD8cIL* zK`85kO0)W4t$!cPSL=g14|?O#9ldc_PH!w7+8Z@GRB>#LDzc@j*dDEl7P_h!^g;zw z52+&yPJZ;Z#o?Iin{^y?SDpQctw2S48<@MXXI##6lBAw0hqIYmfK9glRqS zp<53O@7@E;>bj%a>h745&>c4q>Wa7fa;RM{{2VjG2tW3`}G0d&-?&F_YW|B>3dkE z{vI|Jzk{WE?;v9rp9`^g3%8EEfziX>z>A945aj+EHeGlHje)P=+l`md75x%g@4tYX zsV`vN^A_+O-2zYFKZo>j&*8@RXJE|dWJdmJhN8k|*w(!nwk&=Mb5);0^r|P&Tk{E= z*zg!UbsvMc?Gfl1KZ2aSO|ZkF32F{KgqwB`;nIl*u+Q-UOent(7H}V~p1lXL9`~TG z`Yzb`-i7?jci>py9cZY#4NrKipu0D3ff#uU7TszD&)7zI#pk1@Bs4(lgL+6zu7^X9 zZo<3No1pRZ23Vxs0Ly3BL2JZy`11T3oEmuzGG5eyTt*!%d3hE7W?Y4|S6AS0<`sDL zsup^Ut_8iLyAMSVN0E!qZ-ire6FVF?6vZiRDG zwu153Es&qP1*%?dhIZ*@Fn+iRTw^vt(2b4YAFvUIS8o6<+yHM+7sFw@ViGWmg^)tjvXb1v#LXn+>4}S&-#B8e~H=L86}lg32h6YaaopUZz7-V;Vd< zCxysT37jlWg@1EXz-3%ANK=wvTtFgc5GFvPK|BmmiGv?MWB5B74L&!c;HDS}0ed6h z$f|IVD+mLxtWX#i9Rfw1TUKll1S>QGVe(&p2zuuSs&{d-)L4PWVM}mYZvjEG%pp8$F!)89ft_H=pSua%>tzhZ-wh$) zu>pLzs1I|G3Z>L!e4qg(RsG<=fxfVR zl{#$BSA#j}eLxb}8*GQDLhAq(IP^~$lHMr6pPM~l-5EtN+SUVhFX#@sV-#RXY&ZCb z^5APC2ZQ_n6^^~=6wFTk78Vx%67Gh#3F?Es3&Mx5LWKBPh+gzj@QHgbn3%j3TED&$ zj+}oXBrba{d`oH;{xg3f{P@u%q}DtT%2wVJx>D~5!>w)!>A&iQ85eH|3s+wg=1H## z6Rm57==O_(*`*rc-Rde~r}VrKVtrP4`%4t^FO~~`R+R~pC8vaD%M*gf&!fWHn#01Q z6{Ui9$^jwNe4jA+`)*-%iRVgC7X!rZt#Ve-e(Lh8Jc z0_aGEJ|~idrhqtM>(fXfVM?gbOEpj^+vOu93m(GndJxu(9xe>-8Y-M#Yb$tISqhh` zOohM%L*dFNUBQ3;0HIn(L%knvGr+nF&_WcMW>|MWkB6M z7wum+T#QXGxeSdu>k>5UluPcRQkV4)cDh{avB{5E*(>&|oun40I})|liH zYZK_QV$pDyPc5b{6Wujjj5f=={P@u9EVt*Zb5`mm=X5KXv$)mF`GUdu;pzq#ojUbg z&U`a|cjmGVmal9qEO+g{r#vgMwp?|~`|@?46)RF!4y<@+Z&lH|0V~?Zg;lIjORKnl zbbQ5|!E-8vpGzvzFRiIaS+}LaYSf;JYeSDzxXGQVn0@nn#hR_P6_ausDvVqnR&4Fj zQt{%}`--;h-zyqre=7LGb+NTuPf;~TMO3a=6W=;&ilv(eis5pD#M_xhqRTZian=wk zanE`?@nDC8xIE2SjJ$~AR|`*Z>~df6YHOeC>6g4juJx; zXNj}aWa83^6C;Q}j~YBmQ*SC$7mnAZo2I6$>vO z78}1G6_rd*h-T5JM9Vp4V!z|%;SejcUs&1+gqiZjUGutkUMJ89p znNioo=-D^KUPtQ1eNBy`snQ*BzSBLicH{%`yX-JTy}dHqk(u(Msv8r&%^kLnUv7yJ{&+j30% zojl9>+l}qf=+5dbda!qHimWxdCwr5n#I6-6vy#=lm}H*{Qz2Ehuf8|4d)bHWX;))C zd-vrGp?++=lLo5{(q#7}{n^6_TI}kA0c_uJis*wZv`7BSw3?Jx9YZ&vv+wVnP<|3m=OtPW(~8iH8)vtTyzYY1!m z7s|$|g|mA72-e>&l6kvDvG~wv7MT*mhUCVww){A@b5T4SR-C{}_aw5Or;=Dubut@Y zpTcH7NoC_cNSOa`DeKlVo$b;b!OV?EveovZShH&e>ld8KEE7gE(~K;pFd>^=o|(gB zOLN)J;yjkITgJ{D8^hkySk~>zIM#K0JbTnUfo=UTk$L`_#A>@uVMF>%W&deUV+T$1 znP@+q9fBEbw%>njcw_;)nLLvPWX@u{$IWJ6T?^U2>O%I{e-8U{Z4PUQoXd9J<*}!e z=du3H^H}+)`7G$|e0E*7fO)hoV7vHQ@V4IznaeC5ySm$AwqoI8wzJm~wtK}Aw!Ys| zHm!Im3)CrM%G-(6;t$C z&AKkFW-kKQu!?JISV8z&X4klu)yJ%3Y4_H#CyDD>(4+Ni59hIcZZ2kKBR8;+mm65x z=#6Z|+l?$bcM}`(aTDtrvze8D+04==Y+-HRwy^1wx3UjyTUqe561Jhegf&jz#(sBf zV|@y?v%X#1nf$CBtoiQ_c5wDiHbRbb+2-tGo8))1fpd4W`Q7%gCv*2O6NSAje%@X- zmB$*NJ8vKRPhmeBF>gN`rf`6Ln|pwjbUVl#=N@Dg@}>_D#6TR8L=JeeCL3$NoBY)94y2+H#Ez?SGwBt+>vdm2R*Nb8fI_ z9XD9t$v2txr<=@nbUho`T+covG_ZXQ4J_JZxY^MXYLy=2eNy=2J_uNd3+iv81h&8$|wX08fv z*sy7DnEHn|?6&kRE4cNRsrbKRv&DDpq0M`yz2iOe(D=ZD7Jgvx`vX&xedJ}}ene59 zSnGvPEOq#2cKE<&)}r%;{aME4?-%xb{8v`m@|7jUwz5x`T3M#^H&%1t8|$v~omm%s zXT$$|XM@N5U>#3>uv6h}EUL1N-Ln75gdIQGJoR7fWZ^G%>FY0cF1?*?Y-neRp1;|j zW52ntO9%V1qJw$-?O+qfaQ~^tooqqKAC|%Xu)&sH?8b&JmZ12TU7XBWa4-I{;HZCW zWaU40OiPZog~`$E`EuOnUXHZB$^AVqjr_{hr_R{xQ$py?gKJxo6JVJD=glx9W7sS%Y?W)1cgC8Wd2i zL66!sXl8&WbsD5eE4WXY+I3ADrmjUN#ag8PpBBL`EgE#6GvYdF(;}%h&6}c4V-ILk z+B0pkwbY@;6dfwa(;=T@I>cV6R99$0*{3b&$_EPybF!o* znU-`j&yutbS(4vVONuqNqWCx~ip;el>+M#YWoJeE|5;J*AZz;B&zcr5wV0 zHC?y2A)7QC%AR3Ev&w8Z6Um0Q=-AR~ku6ObYD;PBY{}??EuCw#r5qPKYRj~vakK5{ z@c}!+hjx^&YfooI_Vi{5_tji$Pde51^yi~JJ#%oNqp1!wX_^ChlseG)I}W5!bL0#p zM-ugQq?Jn?>HY~vGHiCFP*W#Lh;^dG(M}}VS?Nk2pSjYkPHxm8 zcB7oZZp2o&@lowY;ji4NyNNpui*lzS!`w-++MWDPxziW!3%l3UgVLfs=%Gx4N7=t*_lm-f*LE=vCS1wYrxi~bXNk;gzUy1c}TdUI~w!zM3E*7l}d z!QRx$*>$e-y(!^gtH4nNmm?7xqU+E{G3oy+Y?HGmqRJxeJG`x zaNq2RFtY6#M$I$BXv_96ioFm<*IU9UML(R528NSP=Wt4%#Cdod!)Yaj)B4BZRG=C` z!`&k&EHQ%Kj)t{E4DFcG0w7h^GI#N0a@eXga<+n&410m0gP_t#{Fst`kFf9x=348bhW1V`%ft z7@DyuhL_-aYW^D^!sugc{j&VoQi~`b`lDTl#q@>LRUvgXnMYc%y&p= z6G=$-u7n1El2DnRlpeTC>3fWn{`8R2$MI6Sx=c!IOQe)|R!Yr{QX2C`O3w`9Db6#V z3S#5wRF8OS8W+zQ4Ds}6S3I3O8Bh5Q@f7uef7g=Ha3>i(7Re|!OGZnE%Q$C1M$b3O z=))lyHD8iZ%~Khz?vPQkv7Fv{$!SWgoIZAwQ`UcS+PY9qcecps`%yW6zRKz6GdVr# zkkekH1nTdZK&sIRRG6JW8Y2^E=$r&PvOa;{97rI&^9h_4nm`606X?B0A}MVXX>4#J z86_mr=H7{9JT8%P^Am|Sb5`IX{=FuVY#%0);ip7?eG*mLB+*FDn9zw&qE(zXp)op% zayWaUY;6)f+M7f_P9~8GXHtBAnMBt*l4y-VGRd5i=}A~J4Ngp^+r5%0;J;)VH#eEK zuT3UpX)>K;$+YiUGR=LOOz~fm>7!-}EwoM{Ex!~R7oEb{Qv5ULVFXP~q4<2x#MqcZ zzGW%&n>euhS_%z#l0u(3dvLT`D%~K&O%d5Ni1*dvt|j!30p(^DyYX)3+l zoXQz7sbqPIAFuK6O{o<2A(e*yO{MvUX|&Wajb;X>QID83a>z)dYkkvb*qAhW%bA5e zmZj05&1uwD#(!gJ6n2@*eg3&6jXr-%qY905>SmTsuU*nXrX%+r3Pft&xkBq6O%<2iCHu^GmGwVE~C|eERqb*qAs~vq~JUj(VQ&O zS)4`ZR%FqT4O#T1IEzM>WKrEge&6vdNMKaqR6)P36!hFdL5JNGG{Q$g20;qi7_OjBprA3a3aXTG zPE4|bG&2>X-$g+`dno93Uj?nt;Y`S33Thmspq{x3IzLfCmeUlJJxf8;<|?RQp@QZY zC}?P*g2GlQ=Z&Oh7P6hdwD5&o~1?OxjXhwyCh96N->~RIDR4J&8 zDJbTYf=-@MaHffZCSFibMGepUl7gPq@qDi;h+S9E!kY>bZYk*AZ3XpjP|(f03i7+J zpxj0U6+htRf2g3UM+(~2q@byf6`Z}JpeJ0$JylRE7sWFLZRgU+Aich6>$#feOc zKFFD;yD}+lQznJ2$Rv%0nRI4)CJoBvdOakQM)l65>sgs(myk)FF_R_)XYx5UlP22o zbd9)vYh=>Rjtu(meFlAhmO;bsX3&MY4AMK3LHuP*>ROsXy*6i1@`?;@|7B3~_23g57XpA_6%Kb9vzGDWxH{s78jSOmNPp7?a(`jf^IvL(fr|s40bowGsrvsvN%JfO6CfjuCYLHGV;{PGdYb~ho;fM?rC&3F^%-ZX%yqlueauGS)DZM z)saf#*Qum>Kb4Nvrc&n#AgGnVn1*MkUj-9?29dPo_s9$uz_aMCW$KYl4#nfBnskl?G0%X_2P5yO+E*QXeQAtJ|`dJbMsw3 zN543nNDsFp(&oJu@}v`Fd6H7QLyCZ)ecQW`r~N>?~j z$}EH1T;Wn0YAfZOBq6cPY#HZHjfNQa$-pg54OQLA_=qMVL5k<+t+;--ysz+at z7B?U{pFrBP5y^5o(uCefr=pO)I`HrRfIOc9xt;^k+X?h!9?OfO|(N_H31W_2+= zcrGHXY7sf@5Ru0m5n1&YQG2wA&fAM<=C4R{eGo~NRgo0AA(D1Yiljf;kt7R^q^ZV{ zwCMw9TV0KyU1brpba4a?92!CHvIx5E5<$8D!s+Lua2n6T>F$Pb^5$!#VSKH$CMcW^ z81S{zn=mS^38Tfk!l?V4Ff#2MMkj?Z>TDTCciTcK=|(7(?hmCei$ckNa42<&3#H-q zp)|51gnHcxA<>}_Qd<^6Y*+{lh!3GJjv+MhXE42J2&UM>!Bns;n9dFhrdQHn`r*K( zBZyw#4x$U?LA1Oeh~$HV=v_<@&9(`me_sOWzw3c?Wp5x^&JW~!Dx9w_3Zw#)Kw9=L zfM#9{pkCVo$ZJ{vJ?k7m1^%4Jt`)$UR{mtA^rxw-{i$Y@KdH<8DbUfMlG^7iVaNalSiWCu=qP(yCLwq`%&mCj941mlHS--pQBZ+I=YJh7XM|^`YE6 zAL`THhr~fXoL%li%E#U`fb+Dz6?)UOA>Q;Z%A3;6y=e>Q&p)X4BJCnCavSGG0ZCru z>EuO*-#zK&RZrTt%ai&}_aqgCC#~}GB-6hhH201NJt^}b|G6GCyt@aj3GkqU>K;_t z=uQVK+-dDXcN*E-odQGL>A99WEqvrgR!7`u<03cG>FY+rL*1xS+l{_HawV4|t`xn< zm6G~!&VGn11!%dF7T@c*!S_7!7r0PhPZzon;6f>CE_CLuGr8|~rm1<(bTZqSK6*Km z>2D`;zv)DtyPe2tsuOjja?Zb#6D|JYNa9*Yx>w{#L;rK6W{D$ZTR75@*AAp|(t)B^ zIMApZ2U;BAKLQAUYYe_Q#Ey?Ad1)aEI zK`}hmLS?Q6IY}&Ns)+?vKQpJ_hxy*wJadwD=FBcvbINSvu^Xz*$YHe^eHds)6(MGn zqiV+YL`=DTZc0wMrnD~BlztnUQrE{ORD95c8fTi2W||4P+L=)BTVo1Ra(>rhV^ZaN zeRn*JY2#NT$~ezsN~|)X!U0BP8DvDO{ut7qD~8m&$dJm08`8T-LvqkGq`2FisN0TC z)Msob>KfgNV)Q$aZKDCTlo(LSL<8z3HQ;*>2DGe6pG^1bQ^8byYLn|zx|u!|J=LSe zgLy<4ey%hZgev z)3$@!q?oQvyApWJ4O4A$c%nt}{aQ3&iWZHD*P_uzTGa2MCP_;*$$Ek&J&Vz#t$Lc2 zdRK$q?a-jvV>C!Z;QO~48q{(_on)KUY3)#Tx)-8O27lBj;*uI=u2G}D{nV(Rj~Xey zs*>o8Dj6@~?5{4WROF;eX>V2N^Dz}#oTox&DJrzmT!qw5|6`Xs|6@~H{xZFpf7t@# zzwG7iKg>_~!+Ko%%|;LW&4zsY#S#jBu}%)Z7#;e_GG#wm-Mt^of7A~)>2C+yy{dze zdk3pJ(ayG{w6oz&-r;iK{ePH&I5A0R_d$uX(Jq!EN$|~o# zG8gk!HgWemRuTS=-M;XaJ?Zk6-Ff+j9iI4xP0@J6Jl4KuC*5ANsG}`xx3qEK^XTd|CvxQ%uu?zE_u~y?}>`(Di z*5Ut@HL)jbf6^0{bN4aR82p&6_}s)a@|xHngC=%h(%9o3rsQS0)y7`%y`mycKc5?o0nhB9F3}3>4tO6 z!TB7Uv-d2!5qy>zD9^A+3FnGkKFt)0(=5J`$1WOpihX!}l9lG3WEmaAUgQxQqD`z} zIb)%gjLq7rWR>np_Go_<`y5)uz9>(ymvJXpb!{bEp1~Po4aZqq@8hiC`7s^?>lmB+ z@hE#S=_m{PeT0plcZ6-zIl^f9VOC>)n4Kv)#7dnHvDqaREZ)C@bsR2dn?>a;;M74@ zAw9^PE*)Tb=?B>LTl<+okNr$&Dr4Pp%2-azKGtvaK9>A>FLR%~mwotI%J$}!vd$W% z?A_uLHmOqy`><*c>u$M+9V*(*emL%Cp}Tgm-d?-dr2RWtUeHc9?dT3RNVJ1-D~jpH zZf6&(x3O^v+n8ZpG24<}%xvqovVtyK*_(S?81&x4W<1`^$_H*{^)HLqt6@c~_3bA1 zV$3FX<Zg>>3?xoAv zZSQ3)u52mW;kT51J+Op9;1V{WqJV7+E?}n*FJ?DG7qbQ)^XpppB35-gpKXZDXCqE5 zWP##^tfguJTO%xBp=>^@f%z<*N8hQ%c`V}OT(&W4F8gqD4iiPsVeh8rv5XnBS<#GH z?D~wE?Cp#h?Bk5-?9q&A?8uC%Y}||~%x1=9wr~0*<~DsI%bzxZ-I_X{=}aBRyr$%` z;K^f|>!knKzX@a5#qp!r<%6Od~tQ}|= zWsQg(KNra+pNwE$C&JmK!(pt~fl&6aB!s2!2xb+VgP7X-K$fsFfK6ZG&$cb_W0kXg z*{P{Mta7|J+dkTh%^d2-^|(Z4`yt2iz&-_YQj7ljoIURBUVsn$b8Os zVyE~!CJD#%+4%!{EPRhHE8=ndzOB<{^5t5rAYYTmyV787lhv8!STzXTB>|ATU{U8{1x-dp9qJgQ!4<99y5!oc0yv z-*19;N@`=6~==9HgR_SkY-DOqw-X~$o~cr&C*S(aU?>?b*<)C@YJ+-`qJ z8KhUPJkq{j>D#q?{79L7DHf zPPxo-jj}*}m2&o{<;syw%arMLOO!q*7At@6%2!@mxj?yW);wj($T>=t@|nv1i>4|M z516R@F61hM%tkBwwDNbFE)G(zEAFq{IieW_OS$|U!hd_ zb4ZNxd<-b_ts<4uPa(=5mjaagclaoKO!rW#X1gd${2Y`?8aB#TkIa?xj~go;mK!K5 zhw3QPV>Og7tyGlXp0-!HuKrl1h;ONy`}J|v@jZ8|-gmoR<)c$mHA;D^>e$HRRT}mO ztNL8qU3Gf)mMWj%wN=}nEv<50Grww3!Q`qftwXB5WOl6@epFWV*D}1Sa=Kg9>c^&4 zYo%&cGtyt2aIvgD;qYYpiRP@l6R9twPQ3c`wQ_mHfXeD?9uZ5HZHl}ZXe64nULo4} zw}8j%+%I}I=&Go8-Fwm6LE2)~-&SJpwccVKe?h$Me6sjmuU_JJpGS(fES@2rZImz0 z@3mY!XwQ1F<)>m!LMjz^ET|BB+&Ce2w>c~RnsZ6K_P|ZC#`pVTN$fLm+Tu52xBAcG zi#9*SHX*7)L|08AVw$dCv$d1(?5v5f?4^ZZt79uH@pBX&X1EGQ<2?npb-sdCRiM!N zAXM1?CsGJ^MxjI+E3^-e7d#gw3ZeT_1-mPm!n4+FVV+?RK_$44&{Hu$ST=sJP_$;a zFz?uCA-*A3c>Hamps<`KY>AvD4A?(M=u7j2gewaKn}_+r{kMySc|Vs3mU@N4I-3>3 zU++~ymUxX&n7B?j(rtrKJ!F%>CTx@A*%6_W%Q2xguu>QnRVBPnW!h#K7grhsY3Fr2=3l+zI2s6(7 z543fbd)<#>v)i_J|9B&0`iPoT!Vgv8eY~fs{ z9W3Z<58+)M;6`^x=+?^#F7L;hb^hv3pKQRsFjZcSXxf$R&HWNCJ$%4V76wq%(XNVq_4eCR> zKt)bhkPPSs%D&yfs&^0Q-J>Tg=-La`bnXp{GyA~6w7%ey+z&3w`$L9w0Gx~&2u7F# ziK0O;IBYNs2^s<^enY|BYZz3!4u>v|BcRS^B)D6Qf*j+~ut0wd6lnbi<5kB(%s&y!-P>%I*h-QbeA9WI~Q z4!cD=V06U}aP`^=7m9a67t38xU$_fUb2qG>xf||&*$vvG_JGIpJrLZp1iWsRfI(s@ zG@UAiqVT;S-_Ly&T=qf#jr-ubVHx-?EQ1NZ%3$xf{hV*NAMW-&05@+RfaA#rVbPg` zAd4u64`t=Bz_|i6*H^%J{X=kN&LJ@Veh4I^4nyCkhhcEnBhaJn2t>vn1=V9mq0;*p zbl-Z6zvF%!dgmX9(?5@c{@6;8aemtf9t(czl@l;NwhFo*tpYDEB|Ixq!XiTkR`WQ= z?Hhyk;RH#K2dkuVx zu0gZzbyz&@I+(w?4h21Kz^mFD;4iufy-IFEu0=hJT~H6*zSM(9&Mj!Vc?)L7-Uf~G z+c44o4qRPw2Mm7Pf$(7s5Z}-M7=IUR58s97j`v{IvU}k5^B(LOb|3T`?n4i0BNSFN z!an;4aIoM3Y~;MRk%JzB`^|@NG3pVd?|TF%EtbiP$1pzh38WT3 z0e!uvaAeX`h<)}Hj;1{W!>VVH<@Ow=E`JV-emsYngI_@R8!x~HUPATmmyl)D3>T+0 zgY(N~$jNvG1>C1;gKG;cS=IuBzqf$u z@wo7x;obSq5a`ziU01ikz#nbUdB7L&uKfbf1HQt%wO>K=*H`#&Ab+8v_8Ytp_zvo8 zzr)`j-=V30J8Zw$4oQ9;aA#!)$iH{Mrrtl`*4ZEM(c>q4TJjSbKK_K_F25jE`3oL7 z{07Cm-%$4IH?*Yu0qu%Epl|jUzD)iLryu-RfU#iYKfxN5m7UOA(R?VnW9+*J+Tvbii!LyO~T*wL(p*DTd>O`(Bk|`e@?dWtuqZq$Un()xWE5X>%TdHcs`@!Gqm&@b*F-e0xj>+g|A4 zJ5yb3kmzDXt}f2lri-HMy7=O^F3$DSLnH1xxO}l5{;kx*e$9GVVWy9tB>L!@tB>+x z?rV5eAAA4Q$1HCH4DV)udJ7Ej#$f|o_{0GHJ9WbI&{~2P0zY!YuG{Of9jd0x&BaC}ugb($Naj4iBpL5<^`YL1G zd&(HUzA?riOU|5=n&9OBOmJ?I3C^l9!QpKt81HC`hAF0ad6Fqk+`&IzGsR6ErfBAF zhO;uw@ZNMYbmsiIUiD@;|F;=#_AXL=Gf?MfqB`SKR4R~ zi}qTe(QONy@W%pcy*P)ivn58)w8Z`;mN@RFC651Ti8=08D9x}!lc`pCbB7hqzG8)T z->h)2qcyrGS>uXv*7&B#8pAGF{3_s81c;o&w|vdRXRG8^pw!UkOpZ1GOG zEl%odi<3~B69I(2J0~*eBz{Fh+m|N$7i#|JGp|vB{yLmg36=!hLh z9kKL*Bg$2su-?lF(=wc}a-tI&Zg#@1=bUg!ixZZ2a>lb^TzWcVMIQJ2-Q$csuQ;RG zXJ4Mo&E_i<+=h`iD!SVwx_^;jtquX6@q&@d7mbl`Ip{}@SsVj~-=pXKhvE4l}Zn`H1ZuLa{v!2-S+!L2; zdSSS?7uKeDVe%L+tXkoP7Dv2rz#T8#_}vRnTYKXz@W$JHys>(=H*VYRjU%eP(dDH# z)@u4-FE1Z_nB;@WBYkksQXl+qzz039^Y5IC*W1_^dxiL7VrO4;nc$0W*7#!aF<)L+ zU#$P;iy4-FsEqVOlkR@lZHgZjY~Xyn6MlH&o*y1=_v8FOe;h0F$B^#+_-wL2&R*}2 zI+gx7r@6k*NJA5{Frc@MwStTje4&?k7T*$s%-IE<)`R z5k5L4!r}%IroIPai$yI*je1<_C0)`j@zH=i+0&X7+ zs5c$3{|dkzy8*8&0b8yEw!Q#-)B&jMggDO?F;awhm*eAd1|T+0M2s##T(%Xl_Augy zi-;-@5dXeMe61RVr!Aszj!zT@L`Pvw7H0+y=6`}ti9)NTQP{6I3RfSF!owH%xqDG~ z^R8&ru8cABV25;!yu<96sjUkF7=$OmvW7ldlB(iY0hiE9mPfX%b&psZVJ>$_OI37DeJT}M2V`+LkcI_UI9|pwZxRLSr zbV5ABta!}JkH?A?@mRN!Gg5ZMV|7_P79Wkrp(o?f`eHmDzZQ=%cjNKM<9IY~iN{_a z<8eiMJeL29N2Rt5D~x2g(u#8#on&b0CBtKZGR}sQp)y*A_Hxc>Nt5BOY#G+}lHuKf zGQ2rlhR4TpPRnE&#?6x9tNAjVvP6boR&u7x2F`fg%DIlaWN1<*L-#{6bgh)3{z(}= zIVZ#7S{Wu?lVQ^>p5J|*W|IsZUdXWDYZ(^2m*Ms{8SZSC;fmif9I7fuA1yiF)sy2` zBRRI2$#I~y9GSfw|2oStknLtf-edKtizZ@s#$kA+w9E*qX<48G97|qZB$A8b2qvZsC z{UmrReM^Ld&JBuDlE%=E!k8FVnMGaztLnIlQbDyv%izIahO{9M6sC`S3ao z=5@0i&D&=LzmC_rd@xUow?S9l76rUb_V(m;>&DZ~mg6GcW}VaJsKeW^EP-=-c$*%K zm7{T#oa>Ps*N4kd87#+3{&KALmSc^GU>39;wQA1gTy=Y96lkhh5*&s&q%K}C-0 zyl<^|A6xLg{?{tQJ1sI?`&@>xd@MBFlVLYLHqKw=3?M#M`tmWeg!uS7F2m9a8Lr3fqcvlw~}EY*MVYf8E)b_F^B6$XRagv)0HZ&Gih9Ru5cZS(o`QTOC}-j5(XgY!m04u8hYATnD#tUCf*qk8indjvE+{&$+I~WyIrRSv;QPI{c99 z@++>>kGO81GL6S2I`Js|E5&BcGn)8DiXR?JvCADP?zzl)MyI8ydrXS<`=n@BEJe*V zQhcyTikoLjF>#y}pA6y8onBI`&yb=YXCI9dNpYv26i+*G4y&0InYI)+{o>EJj}o+b zA>o1EC74tv!E>iL*Y&UjC+?Qup$(jov_yh$W=XImSAsVONpMd$2@d7lSJNm7mId&}&gYH9SS%97;%Ki}^tFn`J6f?g@_P)vYmUL54KaA+LJYTqW6)<8pLbTr zVCLKyl;y^tNBGtbPkT@T$E`1rx%TijwoE-9EDZ4qVW2eD7<-q&%v8GpEo}W z`%j2M(*bMvkXvVfUk0)DpV_KB8&KR=2wr%{ZR)naVl zFGlxuVvLzBM)@!?inGLMEpXe%h1)%P{M;82-g_v*?iWOO{(uPW*NHG^mI&7k5#h0P z5w{~msB{qFHcb(Zdmo9x4UyP%G7=~6j>O+fBRRj8bCr8VqMbAnyZA)n4C6>#-X4L= zA4lNKixJrEKm zhF=fG)+3>~aziM(&J4w!147YI9*V<#IG?IhC^ml%LG8OCXvIR%yf_5^&JDqPLqc#% zatLN}+xZjcRL$nL^bc-R=TI;zi-YmcT+XT*5{wy1!Pwg`7`qt;W6b9uG`|ys_bP*M z@und3ni+&g`vqa3Bna2L1>rl+#}0ZOhy&^ZG4DViE?pjo`MH7kU*|xSg$JUJWgxQl z0PNKmfGsQl2W<(!tFr>ot$zTHhzr0iE&+H-jh}nrkC!j_mLHyHEd*G-;9=N>F1GkU#z#WMmxYFGN$Etc@)MIz-VD7kk zgFD7dbjR8(cZ>~i#}Zw4{N3z^l4>`cRP2Tur@L`pvm5RYb;B)&ZaCwuD<;>ta;6+# z!_IQWte&p;Fx(Zp8oT0|cP?mE>w^7va<=;{7d+L&1#gG(wXvZKUVY4;7v z9r10vBkpl<#LRXFd~?$QCzLs0>wE|7+SdWgBROBo$N_`i*kkuw_ z=4p=s|Li#TkTdTO*$RyJX1ue-J?Cw)b+awHO|-?7G+Vy6VT&Vv z+we8A4JIA1L8k>a*wWhuw}shYqP`91ty<%7W{uBQS!2owYup`Yjqk0j(d#4U^VeA6 z=&e>bb)pqcNVUTLu2zUYEK!H=o7C|AlL@md(X@*t?(nrlXH`pFdCvkr9kf8n0t=kq z%L0!FTi|^y3v7L4j-QU0WAkEjywcAccZ8ec2t9Ljd1{82kDKA3rJTt%zzj!3nqh;! z8HPSH7e6WkPLf(jiI{P~E-GB|9E z&iTf;rI#`41sUTAbz@ZCGs2(yjWA%25h}VE;ZScQ9P`@{huk#8jNOLl&G)dr^1ZAh zPKG$}OD9yV?SyNJI-%u%op7n76Mp6~7Ls2Z;A%3!Ys(Gr=RgCrj^NBL9Ru`v$QfPb z`lvcrAMa=D<91Jd?DazrwXW*n?qWR*8>ffI*7nMivfkYIK00ut_{(} zqw2bNp+N_0OLh2qQwMjZ>fj6q9ZdMBjq2yL@#t!8>@rvzU-NhpW3;ug`Mwrrm1*Gt zzEAjz?-xcnYT?+Anz-()CLUa+i6?S2@mQE9?$*%6g$)|mvqS@(r)Y4-s|GH#)Ud14j-n;%c(9i`TKMre7r)f-^c6Myw^@xd9o4W$lp5w5aK6_gRh)i66-Uif#mqES z^sraOkMC4)KdE5vr7HNRmkO@-Rl$g_|G;m}KhO^S2X#09!uYX&LDldtOg``j>iM3l z>6_mGi+)3r$8U%_{|l@J{(}2|f5MzCKfwro!h(B0;K{@v;A;8~3uhOiP=2sqrP0nM`=5bw~u4sato=uQ(>JhxmeguQwK7?y? z9)h#gL+E$#0p!O&fDMg}ux4x{Ow(+Hl+E`+Bji5ptGNe4pL=lR^Ifo7bQgx$--T_5 z8=yL&0qP&#fx6r~P_B6gW)WfQ>~Ra4Tk9cZZaoz7|26LJy9s}yZ-UXS z8(=W>27LW-9WE7Khea;eA>{ZqxRi7ak{?}#%CT3$Nc}2gufGEGeXhW^lXXyNC*U?F=LzI}L&I)1Y$q z6r34)3P!h|1g*seBoG|A%-~~B2DWdN5IS86Vm&4J6;*+OZxuXLo`8+X zCm_DD5*`h&gh3t0;ohR-09MCgS;;ZD5^)SVE*u5(E=R%f#SyR?e+2%j9D&;_4#Nh= z!;o_D5WK@fFr%&le)gzVq)O`5+XOAAprn2Oz(0KaA?JAL3q> zfyTr#IH6hwJy-05clP^WblF~L677ZPi=|N5xfHHGDS=<3OThN$9`IST2fWSqfF<8B z`Wmns&a+)GH*psP-PsA(2keBt?{~nXX*(cQYX_9A-VQ$TiL|>o-HL>t@g?FM?G<5$Ips1XHp$!R?0|!DZM+7|^x> zR?gZ0M|3v8#Wm~Uvg3LPdzp(Nq;V1CbZ8m&Un+=s_v!K8G zO!yQ&14hWF!EDoD18&js*>k zvC!GQx*V8w+jNT|<*w@n!^<83WUiI226cLtsgIFnsAA1Zg>euzqv^e^0?5{>xo#1m>ydce{ecOHYy4O$vqVa^K|(0lI;i@rO-w}1S73|&Xq zXX*eS?d-wJ!wxzJ+QL|o4dlgH!@OiGnA+JAa(Y`p%wTgc9AgIclT115%!H2tW2j$Y z1cNpj!kg`#V9-7Ts6VU^VN4H}RO>=Roeo&s)`paaS}@^-Caij=0eilv!@*x_P^PX1 zTlH08p_vNQME(`VB>Wcsb^R&K8qy)Wn)qFaTJTkvy{1h#u=A5pd-#KJ<7}&N;l^8` zc1GTwg2veSA^a-FjY#`gu;M(LO6kEKUm*t|tYfU?vQVt`bU8 zDuu`0j|sX%jtE}k4+%nExe&ALfFRyfCU}5< z2&4ZM32FwLgca5s1QU;S!jh0R!q4bc!oZXj!kKP`g887O!ho>_!k!t6glCHu3KnbU z3)1a#h3h@?1if)H1W~~hq5F;r!bs&rA7m4={$rFz|KUSRW zGC-`z%My=liWBd|5b=*qF5>YWCSs%RYT|99nnnNl)QAdON<=Cpi$rTKXNevpnu=Iq zX{2Gq|B-apVNrBl0Kn<)?rwIMW_RwfuraV(>~2wCy94Y%MMM%i%G#9CL)FDgg0}e6NnbS9Fc!_fn~5!tt;BoTcH)u*CsA{io49O(m-x85pQz?5 z6KxHHMU&rQ;@9Vbn5^t5h8&3y&#dhswoHl?B|ZC#%y*FJWiU*vsTnEmD;g`BU!EY& zKR87^wQPo{96d)o(P4o&(`m7&qq0m~|8b>QbZf2HTC`qVb8DkmnY~$zNQ)IW#cvg} zH*OaT7VQ+DOx`VC8M0U0-z{Do9&$ibb59TtnI($WYDwbS-$%r!e4bbRrzxWJda9_n za6*(MpAxlqoDm6XdX$UaK^5Xshi~Fp?Mm^=pDHo4tXkag;HMaV z>9_bWxmN5HS1<01X%z2_Z5ChkY!M#>wu*=B+C}#bDp>iSDju7yhTSKq!J6-%}q=$di^ij1@9~&zTu=JfFo+~!OS@(>&duD zmle9=<(qE!=8`+sobC_QB8+F1Tt(|avb!TjU+XbgSiona%6|2&_q2A%{Xu6gEZh2Wxd^N2X9vs#iJ9Ll4 zhrxZYvuj^GV%!fuwDv>&AN|p>GzzUA48Vq*fp|4-5YE~=7~9qi!DVxXV#%ms=+bLA z_75F_6J1B*Xroamw2Z>GucPto^D!vg9E+J5(WrlT9QNHZ9v8+;z*XZW;+#H{uuJ%4 z{OdXe4;fBH`{t>*v3wd97EZ@@oPidnW}?B~S@?bBY)qdv2crhf#aA#7yLrvWeI^U= z?%xIYwtOMJcoKuz%0(EHx)?2YEWxBD|DneCr8uDXGF%y8qLk+fL z!J6$j`1f|qpS%MDU+%yyy?0^(?nD*oF7!OM3l*ljxdFBtW%aw!c={gv@OlrX^x2C8 zuI$BX={{U>Y#%n5#N)&b@kq7ts6KT+0yo+w_Bw$7DG%Us--9^&@ImaWpMZ9&67cnp z1l$yT2%VlB!c(0R(J?a-H#i^07rPIml}Zx!T#$s5KP2J2fk$x0jUzZ9Fd02klJP5_ z8$Ds|Q4ITe6mO0@hVbMVrgluh#`7sCI2^~B+mGXxzsGUU%v6kfor-gNrD5k>KJU86 z2~3Yaf!)i>MydeLqs-C%*e)twwG|u=1Vx__a*d-zKrD$F5}M79CS;`!BqWR zG+dgClRxF+$^Lm*tjxnocO_QuQetVd5-&{=acQB5UJUX23FLVdgxSjp4ax}zMqRXOYv}#(8omg*j&r%~_EYNyj$LpAvrBGZZP%OVbp9rWSl+_m zHMh|I>n*Gva2wN=w{ei`9sIcU4vzVA2d|I5iw3vvVmJSLI3@lb&TF}clP2HC&fIy^ z40(V#hacbowR|j^nU5Wd@^PQyAwE6!5F51$P-k8Ns=g?|a(IN9sgH27?qgJ0@EEte ze2n!So?!p9C%99$5Oe1j;{6wecoUxDiQ`XkzIGA1%`L)f#YNanQH&Rpi&0bk8FroV z45vSShD(B<E&{uUojdy6;o-(rfS45#icL$g0+c#2za zu6gfpqwRZqwDLXvD|?UTT|S^m>IbY>|A;rHe#AxhKcc?xC)~d66aKFHgq`|-#)TI? z<96e6+_9h>7ZsIb7w*E;!2DTs=|ePs&LNFD(oBe15Go2;1&I9>^G|#Z#}3+C+`{@ zzqtmte6GR05kGO`v7b1K=cHMV`GvX4U)aIwH=bVf8=Ic~Myc!%_TK&ndwu(Zk{-2K zf4mmc+GQLXJ9{Vq-$3>6oag9#{&fV025g!`xFEnC8LL=JNHsac-Cd@zE zgiRXFs6U|@)u|cZTmHpk3;trag1=bc*@B97Ef`nYf>%TT@jR-3Sp4lDW_NAHrAJ!P zxuF%$4QNCAvu!v}tsPH|X~&zF+wp^z3JnTTq08e{NN0x%4N$63Y`F?$nW)m^4ysf- zLzPPQt5W_ARXYDemDbs)QIGCw^pCr8CzI5u^L;gX_(zR;JE>D{q&itGQKuOx>U6Gv z`*IEHr0J$X4*fOAbD0J?r)iMh6P}ycq(M3EnzT4dlRTDd(!DfI8pWNtvL;O$;;uzv ze=RayrbVMuwP^n%ExO*IMQ>cR>02M37r9uQULMt^+y~ke_eY!hIOtGY4;@OKuft6; z9lCZ)hr)j7P%_W6Z0Mv*U1sRgioLqL*3qR~pLMCwK#v}W>Cu&OdXyBaN3$>TT+I?a zdZ(&S>-_Y|e26|Jtkfs{6Z*8^kv`q6e6 z!VJkc+K}=$8PbyThGg>GkdCw%l8w6&ZSG@4pB5TXK%x=NyYbw=Jce&oF3a-(3LJ0ba<)-&D>@|-kBEk{Fw#CG+9u)gC(uvIlAAbT2l9ImbB*r zH|&ZnsiDD=Ozf@5uCosO}zMl3})zh9<%&@1Xt@bqa zoITy-InRbQ_SDPRfffWhP~0E~+8yISo8uj5)@29k^umEu8XPFw%8>@k9qH2uN1CwA zkscp%Bp=a{7L_>C`DRCYZtFxBf&s&J;v z5zb`0)R`6@bS7nvGu1qICbK$c@-%lLuV5Fl8stLt^IhoHE*Dyz;X>YzTp+oBrPlcUqp{&X3cbB8%L~s>Yp)^*m^$w+ESb_n^cH z9%Q)MgXSlC(2X1qYAfQdUX2I!(DS4yFHh>x)suY3dD6e-o^+efnr};N;VI;?^h-z|5_;>(veZEql{RHjOO>2 z(OzyY9FLJva;%JEkH~0TmW>?Bj28Zs(LeP7T5JYbkwIiXHi&x83!-uBf@t!-AR2Ze zh(dFNsQrEr<&^|cbX5@j{1-&?jDo4eIhcZjf@x{jU^+V_m>zJu;`x$bdbA~&vJ!%6 z)0trEDh5*xHwL$q29thOFs*J0rnmYbxT7(qiGM~rl#;AM>8NKY?Flmug~%2dHnr5e7&MD`cW1}^D4vWO+y%k zsfW`l<8aEf52q*I;Zz#Jox{%Ir0g3`TStUbugT%`dtNxjt_UZ+E!;lb8%{5egp<>m za2j$coEBdTr}g>awDNg4O?n?rp_SoOTNh5p+QUh%CnvIylf+q0TYcqJ93m&3PIB_= zEhoibIfaaslif5q)y$XEh2?S@y-`lJJLI(Npq#!RlT**La@vzEr~AZT-{Gzz_Z4ej z%IVE}Ic0v6)BN9Zvi~cm%W4V|^c9qDt{@!;1r6qIN}NPN=Ry@Ec2H1GcLg2kr=SHx z6%;sDL2oB3Xz^?XHODAu)(QpPU#}q3tqSV3M?o_a6twiHf?`f8Xw-QHNiHdot7 z4Fv_8*3#1k=(3pb)r6lq)k8oe+ zm_W^`+?+YdU!UR2&++#!@b$9z`j`0Ua{1?#0=-6o9Igt~?>gW9O2&@B_lorf*Ha z(6N5}eDo4XyBpunP6D|J0-1*LeUb^3>nqSK4}tWZ1xmCP$jm~Z(bQSbRg>S1#PPsqj^tVDz{_o_}`-Pl_Jd#u7ZGPROoc>*ulk&8j zCLZNx(SA8C-!7-G>*d^Kk<+$$a=Jc6P9H|gsd^w^-cwFbI>;$CSWc6Cj%(b2vHh`f5L~ zx0)t}QzWm)VtIX*&Fi&%UcWu&_1raH-zD*SZz`|<92&!Te`N^T=wmXy?qoEWP6H50dhmveqD6Q|wm&rrvr%x#9 z+J%y-ekf`F3!$$+LMW#!gcd&GZOio#%FGO*;FJ(b-4jCX>q01UVF<087(yoog-~up z2we^ep%m8;?$?A+C)E({aR$@g55eU8G?)^v2a{@MFbzK%Oow&`)BRP!R6d)xaifFj zOJp$Rb6@wccQB2z3MNg>U^-eGM4q35=+M(3YQ7dky)%MnQ&JFRYz?B@OM~eC)F4t0 z38I4$-02PA?XP1H-O}UjZWC|Mzwq|^Ss)$1!Q1nUKypjs?R#7xjakKawb;v`sR4IbTK%qq#@iQ${L5GODzf(M>HGZTT%F z;jNTP?n!BSmXtmxNvS{Y`*iPbY@> zlcIw^p@%>D8TwOPy&t_O^CRPXex$hIM+3MsHFS+1^_u2KK2d(u80JSgj(#*z(~nwy z_|nGbzSK;e|XE}oR>;Yq5xo)l5-K?`_4ei!f0C-HuL0`K3ipXfnjdU%k#uLqSHc+k3E z?qvDgof7lh$soy{=B{z4YZKk6t-Cu(eB8O^%)RXzHyT{TJ*&%ZWS!tfAC|k(A?{jr z?(9Y{T-|82h8sPpaHZgUSK4&WmG13yrN;TL{NB`+yhFM1ZRJYlO)m7S#D%UBcdn9M z$bBt;K7rrsbmjLv?k?n`=|XEOoax?uXKFp;Om5q_CqCPmI`ngB;NiDapo;gzDB}dAOcceRu9O>o|N4gN=NZZXF zX+*69nLl%&>)8%8dLOs27CO)beh*l{?*%5VO26>X^^!Io71vnAc3 zwxkwpOFxWl>0Y%B?J2OKK4v?R@h-+P$QXKrn21e=hRfeG1G7?a@*WBQY5O!cL_Q|dh0hV7e4C*N4x-|coE}1Rm<3droB=ORv6RkRA^g@Sbo!24dMjdJz ztwVmnIy696ho*kern!0AG<}yg4dF;pa0hKtGuNiO-?eDP4J~p_&?216t*-7`blXmg zLVjz~f%}?NnXE~Hi#2IxAO6}!lP)!A(CtSWbT3tdh>wS*MscglLxXz%RVVGI>Li|2 zr?D&5sdk_`t@2W*#uhc2R-{JvPN|XIDmDK7Rii{NHM-NHN}rypQte4qYFwd8)dN)N zrH3kIH>=S4Co0q}O@$hls_;IL3JI<%-0o|~9sAocreiyHs%XPsyV`K8ybZNKwBqcz zR?G=(#fsPe@ZY+B*zEHU-#%@@Q_EU#xJwKExc?Vt&i{*#tp1|awPx%&wHc!gnsM}{ zChRo2iThIA^*Y^%L!uh7xUK;eNe#F;q5;LP_4sUOJs$_J$7>~ZxNB`4_VBF3&kt*H z2DiOlSk@x1W%+pdAB@%fgL~3{$pA!JmHO!!1A2$NwkJFRa1j zMKyTIx(2hT8WYA><5cx(v^)I+m3@9-$C@fUx3>ya!>X|J>q?xuvJw|LRpP9h-!XE^ zcQn!dj@QqA!x8{O7_s*&?hE;fk6u*Z&!rXEV#^=t3qFeef_vNf`0?>_eATra zN0fiY8=F6)x%X#`dhiKjW`4r8dY|yWb02Y7zmMot{Q--1e!w}h5BU4ZdmKOiJ?0s| z$EM78=sxfr%72w%*q$Hxbuk{@R*c3z#W?$J5oS#)!q4qbQ6>2)>aeHS^0E+178PQuNg)o; zc!CX)PjG$3V{F{;7)Loj##8hN-;a2N>U9NZzNY|`gN@DukjuJe67ReBFIm)yfsCigJz++7^r^Ddfxyo1V>cd(z;9ei~0 zHY)nw#=T!|;j6W`P}lAj`dsG!6N$Qs{@-q($%Y&F$^HhW+s ze+?n$D#k@!#amym;P-V`u+{bowq+Am_a)3PM~q*M*oWI;KQHikczTJb@a(M6OFzKHJMGf`(<%7}fm(R+nbrs)ZTYtet^VkDkXH zq32Pr;2d_Fcn;?@rsKw)>A1~39oLCxaq57xD114Ctt-x8mdP0$a_Tfzz-gRbbP7wR zokI5SByQ)fSb^6`{6{CyVbBSbRHUK*$~3e$NyC;CsaPPS;`S%U5hfqUw~Z+{XGaQF zyQJW_oMU(+@)(-EJBmYNj$*9VQ9O4z8L!Kd@%F7FC=Ne@$10QXzcoqN$t(#QP9DY- z;V`ntiFj{9B6h7igcoBEp|SlT9DgAJQz8=Z+4FZV5T?bI#^#Imi+K*3r z?#JYkcpNh)9`)PzVFvfcB0Totz1+RnDRM8KezOPF=k39PDtmCxzTJ4!gPUWyyRfDA zE>wTB6I{Kq zZNQRi>v8&k_4xh$IvlrP9o|=2hrQg^;`gp=FlO><{Je1$!ikl*>dp#0RlXeaG?rtQ z$1;rXz7(UU{D-ESmS9HOVhp~$2va`AV1sH5hPy7r@m&^R%=q~@cg;K;k~|mPuFS#G z(%HDGc^2x}%)+(dGr2oB1AP}w$8me7;i}B3xaIK_Tv0U{N9s;SSMN#qqWeT#JZS>9 ztsRexlE>jQj7F!|V{ush7+hvH2Db!^#@Dqs<-H?u?v&nGzP1-e zCiTRm+#dL*s5|OacSA3oZW!d=6@5EJpy{YCSh1)xrtj*6(Puki`|S?6`yIE+ni;M# zXILr~(7U$+Cry&$u2tc9_Fx!Zx)_QX4?{4aJQx?Y1tHi3VSP{_9_t%`!c-aFStG^H zha`9|%O7Qz!~UAB!gI3dEP^^2MF6?u%jS_rxc%JK~7Z zx5VPjH^k0a*Tm$vSHx;<5(7d+amu(nar@RB@xEF)i$ZxOKvLaq{+b zF);Ux_~*kZ@r?dSad3E=_IC0cE@vzovaq{TpqT_`n zV!mpOIDObWvFXe#an-+RV(oy*;<&W&;?;&RqG_Lz;^^d|;-Oyy#Yf%xi;V{(MeE8Q zVnD~PVy8Ww#2%lS*ezTx!qyPc|80P15g-wp*87Mro_mNH-mc=>6^>&6$F`!CiRx0yyKPjEYzEN&beXguI^+-9o z-(BT{-&d6^Ay;{^L#9&l>9jI4HbtqBCMq8k?^RA(woR$wv{5-JcB!(cc!qL>(`aSG z%)ZKtIUSUnRb|R${hgKD5>1p>zo;rbrc~rvwLZujeDGY}+kjnp^W!JxJ-+Xicd7YR z?wp6+b9c|P4I6PiE<9>LTlk9_K`zT#EFW<-L4MjfN4{}=vHbg|pYp2XS_-$pmI^yH z4@FT{u%i3K2*o0kfr_!$$0=Ip&Q%O^SfvP>x>;d*WryOS*?z^?nMsPf*HaamR_O}6 zIavzLTS~

    l=y@bMGsz+)ol~ZGd9z%x*6N3%aaOIOtmI#Ye1BKc?p~B!= zxv)10gsg6zg^N{Ph28Nzh5pb-`2MNCFnJpvbPF0L{C+)BP+vDz_~SJ}xcYdqFlF&{ zp~7yq(Ea8-Vb$~)VVB{5!ir1Fg)XC33k%k+6Z{8n5T1E#5~eq97QW`k3WJYq70%Av zE>v~dDcG3r76QKP5rXsf2~J!03-zN93b~R)!o;>jp`kEISbRKLcoTC>kaRyTOtnlC zVk=Gvd-F~So8rz0<42_nZhq&5$A2?~@dcT}>!d6}m~%;3-yuiHG{_U~yj2R<&!cdB z)fHi8ziWb(!wunV)lI>bZVPL--4$+)x-V4var4~4Jy9tl?tJQ0>mc`BHN6btdH z&xOXq7eeQwuY_51N`z(XjW9!}On{f~gx_f>&#D1hvlPLbO4JkW}(j5Kny<#6?xY z;V#v}7{i}JTgfkB-Kjr9c}$()-MK;Nqu(U-f7L7mq_qgY=d}v^Si7LRQH3dIsIn1J zYOFj&olUgWV2|50m`}MTi^SABNX+kovbFl3Rx4O#6A zBenyLnb|QDwq>I!`!?N-$@`hJ#eo*=sD&lVX|iPETPv1+!fw5_hz*<{*I{dp1tm0Znra0D#E#lr~T6ebgXb;x5x+j|w-HT;+=*_;{M>4IJNM=ylhczqvvL^}s zxcSzfNry$TypRFR*K8nL|7#$-!RL(rdVVmg+s1#JJ!2@(uNcNQcnoL0Y9mPWWf@F;eB>1g(S=onTPG?slaie^`;qS>+s+M~HJ|f8`wn}9s zTU)Y{P0e1#WZPG>*OS+&-^Pkr7-=nW*S-74hdu?DV_HAIj+BPuF zS$xj#7aQ4-h)wMC`AuxH&1Uv|<7O82b2E$ObA;#L-NIS|W0~U-ZnSZqEhHw6d6mU6 z-QHW-+w86EnBz7!C~h08`?HP3MsH`j54N+F!8=&l5uOX6y^}3ixRd8A>|{54>|#Zk zyVz6P-R$~CK7V=jZZ>Pg9_D>>4}0dfm(AP1mo>HSWiiwDvC^meSTKuc%hKXmhQWST zyo6hA@Ak8=y$-O~7Z0#J+k|y!| zW@vhnby#|mjVe3ICUrZ-Mx8yyIvSs5hD%Pfg3{A$NtZLs;M5tmNB=BSS$LL3zdXxM zLppnxlFn4L&M}kO=a|9MbF41(Jj+i!&$hLlXY$Dz?CJdsHe7OnJ=k-BdDUNF3r1zK z(^oTDzUxKyYV$=_^!*~s>z~E8W@WKnmf7srvTU~bZ8p>Da)~WUyTl5#F7s>lGVApC zG8-9~!^X$wuz?LZOgbu;)l)7z>y*cOug_yepYvF+o=SH5jFSD~IW@j>Mb@WKWW$4y zMa3fv~q%k={Za7^n%F_zhJ5LFIfA)m#o|Qmu$ZFE4FdcE4J?HD>lXEH49ku zntgu!nyv9EVX7NT*qpKwc3ob|n)jA6yC0>@qvsoDk@AN9Xnw=a^Zc+O8E@G~tui)Z zLK(X(ma!(Ycg$nXI~IQT9Sd}N&rFxTXC;O2S)9)Y=Cu9;ODg%m+Jio_KHEOBm7hMc z{p=Hq-}i|vul&S%cKytn6F;-~-=CR9WI0=zQqJ-l%ULVWZ?ie|h1s=!VX8wbSYdhv z+obxHIgR|vj$Qc5v^2l5p<}+W*sO2txb}B;Jo-D^a_Ku8tXs)6##gceP1UCpdv?dm_7_sE|t^!!ie zrSgll4f)0B^e-0O@{4_m`ppKX{$?lYf3vr}|FEW{KkRSKANDb#mYv^U%c8&5vRa{z z&D~MQ9>1$&raXTTHrBJq7xk=zcLOtD-oTzdY+wr=8d>AqMmF(!BfDtQ#6C}KVlCNC ztVz9@l?-iWM^84h-VM#{WzWB?cfwzG?CW1vDsN%Uu`R6iRSPTk{>LsZ{l_NU|HtaA zTG{Mrt?YgdH|I3lnE%i=7LwM+od2}3nlA0^`0jQlylZEptyExZM-@n)q5@ZWPUWp^ z6%b2Q;JAt^tn^leUQw!`xkME%C#k})TdMHwn<~sPR)bGrYS3q_8l2dm20zcJfq$VI zjH*|I<@V~ZErR=V)74?aPIZ`ZNgXrtOZuLv_P!Tf+&4$ zcpjh)eTHg7_A>6&C2PZQp0m35i#A-<)qyus9r!+o#}XYVNz?(nsslSe>cBuvUC{K^ zh4g;9&}D%x+>hsvdAe|>R2S6RbfLei9yc<0-t2TeDBh+AA2Rgd{Zl=7Qp@c+D}7ie z=tIObUuzR36ESYZ(eRi3HafUhEEii{!mFCc{V*wkvgV)r<0>)0U zfUFG`P@iG}KG!XvUzr6=Xt99Fww5qlZV8HEmY~1L5+3idgf$l|!R3)9WPP`UU~MZ% z^{@i9u2wL3ycO)_KHiN)D|nx41=Y{2pz@a$yf(Ck%YN3dzLzz0oMH{%)>*^GWNR=) zYlwYm4Zr?aL!_|{?De;S{9ZQjYqAY!ud@NeBQ~I>w1KbBY=HkT4c73S^B`|qc-GYx zri`;$1-oWP{j2}&)T zVZX!~I&^o2XJedUB)0(`Z*zvgRA<;AI>W7}&hVT2e8%n0;9%tf)>0Qx?d}34qg^0n zp$iO;bAi7{x!0HD0>+PAVC^Rtc-Q0t{>H8_-P0BJfh(LFFn7YG8FL%%dcUU#R9o|oNhk#}7FmH!DB&E1R-eq^V`M@2-x9)K4mpd%h z@Bq1u2YmPUfVj>cU^T=8_D%DE*5w{BY^MhtN%4T9OCC^v&jYkdc~pBqUAqT7HS>hS zo}Ms7;R%2HaOWY~6HFI)!p04r@M*s%1f1sngXjqd3OwO_nI~lb^n_EYUJz&Q1*1H@ zz*_DFw|jfRxY1rvG208GS9`&&U0z_3;swL9ykOHUFF5|p3(l2$!HIe=*sjIBKx=Ps z_wj~j3U7#s^oI6P-mqepH+){<4Z?PBSd-)pS?9c=h`ixLfj7K;;|=$!yx~}jH%!&{ z0b6??AV2P1aBJ{Eqz{CS@_}75eBi}WAJB{S0og$x=zP)#I$rkSZl(`t7W=?sZe(oy z=>y(vJ|G(Sf?)3pr+s}vP2mfDd-}qLq5SnEUl14YSmO(4cKE`^!@kh}j4x>9`oh`U zzR;n_7p}hZ1^*wu5ZCMrMOuEKYvBhnSMC(b{GcoNL11q`FdXIwuO|Azu6ceCveFOk z#d6nhzaQkJ_rwMu`8tn=pvoIf1XkwB)I1kO81Ai;}!iGdObV-on*O#)l{OTe1jiSZL8&^nVF zCW|C+Xq5yWZk9mhE(tUyNZ?P31WM2HZDdOzh9uz5&6AstB+#E5i}%VTAgSQqVvPiD zHAvuhn*@xsrC?($1!HR|)HzAvo|hE1$fOV&E`=u@r7)rgw^RB_Az-K!){T+EwMkN_ zoGAr$?lbBxlS1nnDZJY(g^V3im>Dkx^TSd|PmzM`v=mY@q@Z$H3jMgt5_>}m7w$>9 zRmICFmO}1pDa5~%!nkrNSXD}Sy(fjJdMOnCl|n}q8647-!3RAVSeeLxS<0ZVoeUzK zWf1BiTw5UnlQl9JxLyXUH_0F&RtCqm$zcCZ87$o+gI@76 z&^RcA3x{OTGf4)Il4a02g|Cw;gCE?V^gbypL13&-PGKeta-yK64yw>L512q|VwMw}` zDh0nkQrPoD3gs12@cbx+p>L$H;Dr=c7D^!|pMT$P^L4IDp(a17Clo6jm(epP$ROGmUSLn?vOzq_B6O6#OHla4A9xzDx=`f~DM2 zl!Cpx6nfc9VWK&|R`mIIUtJ0jEfO%RmB7Jt;Y#Abfe~}Ux-$eo!!zJ)jA^`_? z3CL|F(Ak*RBbpMhZSjYyU;dC@;SVF<`a^AzKdidXAFuG&+5T|uG=KkyKiKW#by%!F zbXmpgwuS!SG|eCWjP{4i1N>ofcYjb7{9%XGAGF;3VJ>%HZ|U*p?S3Gy^@HJGxr_A1 z55^VpI`y_6IOX}lXYM8)Jj&nS$Lre7e$Z{XA6%H@2ig<38#}}gHum&`Qv$DVC4P|W z><4LPey~>44|+HGf=U&)Xv=te@YEORmM{3_@VfmpHkUXx@f2^0s6RZ&T`c+cNT_51iv|O%-o*>~efSe#!^BCHO#xI3Ms> z?gM{k`oOi(KCrN_4|m;s;JCyGoE&{%o1qVsw|ax5#v3NT^M<%5-jH<78;%?s{edDtDyx4469 zj60M?yTh4CZWxETgTAXfq#3w_Z<8Aw`|Jklg>Enc-5~L#8x-tugQ}Ho@OPRUG!1ft ziVkjY%i9fhnz=!*R#)DqbA_$Nu3&Q26=F}j!jHYK5V6V?HcfMdyn(Jz!d#)!g9mq| zN_c-x$@_JidH=3!t_##~Uux@CZZj|9{l2j-(9pvLqPR14z{Uj%R9)bAr88(fcLu$y z&d_$!89wfEhD%GGVetfK@QieZyFuK2wsVH(+@9)MhtELiLW zE5|y)lI~70PT~X#3nx(d=LpKrjxeEs`%~GDu==ng)U9`fQ8OJObD$&C${oSS*%A6_ zIl}mA2blca0fvzSC{i6jZ>s}5n(qLshdY2%M+eAscYr`W2T0+*wF1gVK57RJo9y85OgqpXUG_q^MWmOi?`+dQCl#GwuO=iTR7-t3*Gs>#YcXRG4HtzH}h;@RI&}^ zuD1b=X*Lki#|GxhZ1~^D29g@A;c%%n#9gz7>8aKbzQr2qXIjI_{?^bV$QoW)Si`U; zZd|>w0`Kcquq@RI#LZSvHNy%F`*G_kzzW>WtiY`Yst_$9KG_m_ud{@jNtUpw z2fxqa2Kfd(OZfi70wM}6U|W_2+>W<^>LnJSJ<JX zV7l2HE>1ItF1^j+rms0Soz3CE4>S12Ep$ny8BE+`23r=I!I8mckQQPFNfu_XsooT# zUz&nXo+*4zFooUAOhG!z6i6@yW@ifNe@#IDjR{1P38W;Mz_XPm&@{#bj5?Trl>>kL zXAF&RjCp_87?P9tJ?%mw9r}*q3;daK5*K7oSB}TAQX#}4VxSO@q2qp|Sg19gv zNVPD6j9NoTFE)fjS%$n%VFAzYOh!bE*TX#8#fYabXu(7=tp_Iy^q}WiJ$SuEkKg0! zK~aPrD4g|R?>}95TcQiLd<>!2eqETpP#2a*>B4G%U5L@qh0$MhAmo+~v>nv}TB!rG zM(Timm<}8@)dBY!Z8-dpTU)2KVcbS-I5%D!DnT3UZM30NofZsvss*FZYr)VsE$BQ& z3mm&>LA5nJWEc9VW)AgKUyI{OF(#N3GQ%;*T1&?X1^0?sJ*8vxeJk?9_j4tfOxm6W_El`(3SUa+g-N_s>6e>cl^mGW;J~uk(-f z!WLFHyM@I%wlLMgzii^VzwC6-U-s-%GpmT_R#*3CcD=rdZ9dh+f=4v5d)iH`i?Wd& zpV7#^*)%e%{08RF$JD%i8<=iMJu8l@XB!pu%Ehtw)o7gfdLTlkpcnM$^8XeIlk zQpsF1zO%?t-`OZlJ}$|}DMO;av41+>SjOeAtk;CE?4kZw7M54R;wDwFJBAhPyYdTb znEZwPF#5tCisfwIlycV9xSZQjpV?SGuf~0&&&*!@#70d1#8w-AV%zgRvW*izvMKr> znJni6`#A0cTdnhfsb{}uF=O7dhZ^sh!G(8BKH?qgtMZOTo-JcRgUgs&3!md7?Jb|9 z=PmnL_l8YNe#0L0c*D$VN?GrNrR;wsopo4L-_yY9?%JSt!R})392G_E0>wtf?)uuD z*rEucpa_bBU;!fRoe?BN5EKz9TMR%^FaS}E_xzssk9p4S-LofW&aE?_S0sb6%eJYfHwu@VDVo$w3C%X$ILR2EGUBp(=td( zDTV3NN}*A+6xLpP3{_(ugQ}?nHl8klivvsGR?Q>GIPwS*dOm_(Pl~~Ndog@E46?;`3qJXwC!sngrJ@zFa^%8NP*?%DbVTq4X7M*1OBT|hF?dLVO8g3D8HWs?UyFO65}K|osbCP z@I<&VSqGA8xXsBx! z&ADVzuwzyf-1u`AD#Fh~UGKBd@F)`A@%Lf(3?m`x;u)Af@C-PJ|cv3XVhi+~c7AFPQ6FFwE&04BH+YgM$l>!2!)oC-uJ_G}MAA-Y02cdAmLHMn4 z5S$|pK%brm!1MlofO-3&{oj3HbaEemXT1+%^Y=o)ti53RD-f<74}^go10g?W4-E9* z1J@gOgZYu&Fx!1M#Ha6qcN2DjRsBxrxpyZFbJ_{MsXJiwm>sb3{&pDfdmA)#+y;Tu zwu1JdEwBhTL+Xc3@JYG}jD~Fli}f4e@5S{{%427RXs-k4u@(vf*1({ntKmZWe^6hy z3Ka5H(0|xU7_@E$^tiAb3`>?l;lHJ@w)0XjoVEn^?OzNHHy6Qxw+ms5#X>mOZviAN zo(~Bp=Rwe&xiJ0f9I$no1L6oC^K1PqxE&J!%Ho-@iu1@4+RcE6e$(OQ4u5!ZWg6VB zoC?7@Q(;WEDe!~G5<9eS5*Xi@2pe8bfMUZ5VAI$5}J)i!ni&o;B>%nC^>-m4*?Yd8eH^%xBI{kQfuPxW0IZnk3HP`62Wfmi7+2C4Hn%c3?#3W|G(gZg0sf0p!H|3p zF#OsFNY)4Zy?Vpv#l2uzNKbe{J)qya?tFhkcevlH8~pa~3ig3rpySof(6Ou&IQ;1d zf807k(Wnj(yrw;PpJ@j*Ic;G}T^rD{ZUY;^9ja!z0US_5V4?!DDqNxAuM3#9aRKMi z&Y)Q11d`K^@Hfi=Dr)WFytzFD^pS(bbQvV?mcq~k2^1CE!SElpkm_g)cHTCyXt6b1 zKV}8Bsg_{-!UB40Tfp%4=HN5d3`VRq1>v*_*k>8Tw`wD}Wnu)IdKg0I$p%omRUcNw z=)u2yUD#c(1HY|xV6mVL_h)E<+a66=8Lt6zBmW5{HGhN-J$?(zw)_%K-)#|6EPe>$ z)FvVR!gnFC{;M!b^+nLwRWC#reiAy_)(ID9d=QK;)d(}bz8B8IJE3s*8=?CCYoWpR zmGFMX3!xzHnQ-RI6Jdr>DVXgl7p@eP@_2%eg|ump1m%T?!uC%Ogu-6;1--2WLXX^h zVYF$UFm*z%Fex%e82mmgro_bp4}AU6e)u3;$&fM zQlfCL<(gnV;Hofe-(_KKQM?dldr3&}j}?+*E(q5?o)@CJpA+_Mh!SSpjublUoe{o{ ziVzY)P6?Brh6#UMP6#I#ga~b}1q)Xjj|%NskZ@+_VL>ndps>K~fRN$0PcS_lDEL+F z7LK>wCFC#LA$(e}RZul<6xQxoC&ZYn7IIFl5X#(^3QrOj3J?3v6U6*k!U?|_!u;1$ zg$_$632%Rl7lL>D2))cl3lBI*ds>?z!s{e2!M~rUP?XOEm7hw8c-2ezzPP(ExVf_s zyt9K)X3|!$KBW{!DqV!F*BpcdK_-;ku@#!fS_!t#%!F?9jfG)f^@ZtMbcB`qn!-P~ zR+T+#RQ2-xtQxVPS~X+qE7huyN>yO|Bh{(f1*)rMIjTE#w^T1QQ&qnt*H!jiE~y51 zpHnTJ8lgJ7GDKCr_pnM58K}yfzg0CaWQEEpbC&A!r}3)CvLUKRLsY5{t2?M1&N--- z7MZD@wQ8tJ##MXtxK`j%VR+r+&b$zhpSxFh81z$lsGBuB6thG6Z=}k zbcEVq`egOa4)fJ1KUS-K-t17H%ipJda4ksvIP`@2#-=msB>^$&*1-wt*&UPAQ5I@- za#M!-^wV7Rq}%t^H8GFX!}mW`Z(CZW-s4lNp4zKHtto9*uWS9Sp5CA-RtM;c6G{xk zgh3|a`xJ9gw~e)Ee9}&A(wB=l8yv;8A6!J^scz!#g0|u-=qNf~?jrWH?;&~~>Mbf- zRbutxzT%;$o}$HwLE>6*h$yxjA-*^{T70GFD`u|s6Su#cBsz?rCWd9r5I=XFExMeY zCw4PgBsy$bD!#2*AqGxZEo$Yg6Q_3DBp!;~Dvk`?A!hKmIga0UiwiFWicvH6iP<&> z#78{7>-`;v#pFIg;_gpJMbGoWV)djDaf9gzu`xSLoVMYVc%^fMSo7wzXnZPCl#PxO zEw#>xUsKPEwB&-g+$B~tEQ=G59EcZx_PZ>O{&qz?7<)~;HZ@U1vt;pV_6>30x|`zg z4r$`o7iw`wFpACIw?yBTbTRbuZSmHOEU~~cM@+wSM+{qkSM=+UFSb1A47H<$;^%=6 zM9;<|acyj|cyw}!c*LkwTyd*R?7h4~eChl|T>R*%_;lBEu~V;?;_UaY#7$vU;+mmv zMW2>;qIrC^czsH(*qz7SJ%M%N)5V`f4f_UBzwnFLu<4tq?$9XCdfFs@Jn%ytFZ>iE zYk!G%PyQB*hWr&%oBoNOB^r1ySPc%`(6P zDnsmHZiEHzjnMa&G3FjO!FG#GaigahiniuhU1yG(*%oMY$`Un~TjBdb)|e)Ww`i@3@_%&@j-+=zFFab@4OwcMCOE7>YZ?Pjx)A7<$}3O zUD0Qt0`qK@*x{oRH)gnD%5ismI=>Bmg0}d3HL; zGH)ChI~a}D4?!9_6#b;bu(Wm<_7jI=(18({H)SN&v>%1_KS$xqd!sQWd<^$T8H*CZ z2QL`-qNLIn|BD-kH`a~EXM_Flqs;_-{dNN0N}h<@c22^!K9e!cX$p4wJO%gDR4h0! z4ZlwE$A9kA@!R+5SeP{f4<4O~U8V=1y2C7N+cFEcA9$V1e z`8Y6S0angjh<=?GVM@y){CQ_FDuS0_x9LmKwf!>u(YOqgGMD4n!z-|O(n{>3T!q`~ zSK$@$KfJYPH71T-gZt!b(d+$Me0_Z#25ef7cf2>CvH3>q{bVB!jM;?Umu*HZk1d#{ zu@%P@Y{k5gZK#~S9lKfYz|8eKaNzSDcw@j$w7a+y7aQ)v>&tfGyGOgwxX*4>MC``) ze|b844;tUygYVi0;`Jkexaeyj+DzDsiR!)B*MY|{-@Xss-tNPlL-u1){C+exJ%GZ> z132;V0i4t4AkN~vwlTjCVyBsh@MqQ`9+Uns&e?YuH9j83!=sL%!Sy4!#xe*Wt`0(Z zc@X-kj^eh6qj>7~Q9L)}7=~x^nCpsQoU|tx9jk+}Wax2RAAcN;j6?7U_nY|pAOvT2 z4aMunLha(#Q;2u z*|I3K-WY}BDx+|lM>L)ai^iy?XguL}4ma?a^~0>rqu#3XnDp>Gj_4ADj}FJ6cU=r# z9DV^C<1S!Vy^A<`?nPXleGyl=#Nw=NvDp7Prz}AnW}b}0xlM7{H0~0vPP~LKP2;i8 zl6c&dACH&a6Y$=y1T1}(fQ5Z8b{jUU(H3=U&BJ*K269 z?HYPMy@oUTT*t-7uj8!x>o|BsBHG3#;v>x@+%P=}O~fQTY?F*XRwUz?!ek6?a|1JX z-oR(iZ(x;23O+ubf{C9~aO1F>*d^vB7X7)2QzoZkadIm5G)==D3(`=`O2ZfSocp#` zjkOQe_@KRrXLpM@?S;s75Ha)^qUA@#je`j9pCL4AChR%(77n>|3%xbdvGde))Vz_7 znZ_BoXl@4nzLkNSY;WV+Ww)`<-P^dvDHG4E%fxF%nRvNP79QW0g>%ZY(78)C-U-Y` zzZcn9)GG&j9L~X=Z*x$DJNPX44%XD(!55ynm>!mk`#$F)c;Cg!h`TuR>s>4!nui_E z=Hc?jJUlZZA8$nGV@h*Ao*i|Ma}V!f*Oq%&KDq$s#}weJmICw|Q;0z^g_zS)h*hJx zM*`==J^67TlSe(kwdWq7Yx4uVIid)AMipVi_agi-^dY*Qd5B(L9^xqPV(z<9jPg&# z_|o$c9twGcE;WzvER>*5PzjE&D#3%j9%I73$C&)|G3Q>E;+7qy*za*ER=bzsh7D!- zt)LA39Lq6kML9m=zHD{Y6<9y70-vN+;AO)~oHwl!4X#$=@xPU*?B{wb#Pd4^l|J;P3w&oHOmbM)HCed;(vu37d1J1%~K!|(-;GU9%BQ(vNC z!b{Bg`4Z<2e}$h=1^Jt7JK!1haLBD;(y6IeBk^ZH!gdRM%-6$w?Q>lO{m7UG1WNkOEu2z zSA)|J)?nX?8q{>F#j7i8v446krW$@g+le1=%J~ntr~U(m!bd!`_aiRkoVkupby&Kn z4rkx2!wQX0*kjZu{O{x^JoV-iUhK^M95;N%ior!;eXMb`=_ob`HMH~{^7H! z|FGulKdgB34<}e_Q1{*%^lzdD-QJ)`j!U8ztEs=|9I-6N!DJPv~rFnW$e+U zzuZ5zTb?HQ)oRirLoHg_L5miR)FQv7TGZ``7X7`dMHxj}+!tJntSq!CwwpF}^3|pb ztF+1VIOo_UYtzjV?vMLTn-tbMG^nQzO&qU7Q&;QI*bp7+b3=#BAM4PQZ#ooerAq^Q z=+Y}+U0Sh9m%bd+rP+y`ZTC=@>>K!JGd&9LtVh|S^ytMBJ*qvZNAKhHs5D=XZq(?} z9zA^;;;v6W2kBGfY<=pvlRNW7=~MR%eTsOlPmRCyX@Jatws;s&!UO}#Uu{5@!3Ol? zx&akFFraI72DHo2kcPH3q(9!=pLw<+_1$4exsitCNrseAX-K-whBVIFh>mqLqT8c6 z^KP*bHS9B@FBgpHO_mYmzBHonRwJ4r{e-ETs#FPKnfrU?ZEL>GMsg`z})o zi!`M=HUG>xc?%m%>8Ozz#k!l(HSPxZr7!DiI!iW$}4HKXt&`=Xws#Dm~Ho=y(d~9j$d|RsAVoM!EY-w4%Ek)n9rR*|WDy_4n zGEFa|=#7P}?%?4*Rku1IKL7XMr(p?RF)_wp~#V=bkqwoCIXTSmjp<@DWE&KX{EvKuO=peb@{S|X=W+vIfon4I#@ z%jr`J=Q8BUN&AVMnm@{^^0%Dg&FpEBi#^GD*pqsYJq?*)PdW4LsoMs7I()#MDkAL3 z@`^pNbbA`l`47`x+0(c$_N3BuATuimDp5Gl-kuKB-rIr5&w={RbD*nh9mr&_17|)t z(5YAl%1w2ks=E&Ksoa68s~zZJvjbhybEFlVCFtJ9kqUcrmf&DVdh6#%6X!aTdbJ}N z>~^GK#~o??IY&B?=t$>pJ92KKBOQ3*NOL|pQpZ-F-_VH;N}b51trK1B?L;zfC)&)J z7Y_oQ$ZUlZ_2245{)e1sakvxBk8`4NH#r9*$BCMXo#^UIC-VE`L?3@T(F%QMdTZlM zLln+*va2&y_H`!x5u8QH8HGLOI#ZWboK?8ZnZ9xE2Ay=K|1LO_G|8E+raM#j0%y8V z?o7IGooQl&Go5I4rW}12dc`@0bQTtqJX0R)nopz-w7hFlW z=1M7PuH=;EO6v<;DdVv#H9mJGDQA>)Y;dK{E&Ml41^qEpP@$EA_Sq|_hns@#cT$jF zZ+@(wg1QY+(4H}zu{cpdEi)7(U7(=0D-`6mUO^Vy74&hhf^GyUXi1oYEYB+F;zb3u z=lsRfoRQK>3L254p#7Z1n8LX!4=WW^`AR{>)e1`c%$bdi3L4w0AT2E=oi|WY4|63Y z+A7JxK}qWsO3LEgm7iUd&ME0YtdhE3R??m8N*c;p zkfK^i@^mFF%2HBnE@wjCQ_`mgN@{wfq|aqadi+F5aW8m1RlI%gm2|6?Ghsd{DX&3E zJ-;jINVAg4esXrqAKniQHyWbtM#J>nNHBCG8RyH?n7PpfOE(&8<3_c1oJS+$$L!r` zl#?4pxwui4!i}ul-Kaa~Q1)-{M$plX+&gprWEVHe?Z)|(J>1BpmmA&a?MA&kcv&hp z(grv3VQzG&uN&R$=SD^S-KfmdjS2?1(Y1k`apUDiUW44|E0?33ZRs$Wvv0U)3~{5$ zT%x#?a%tgWH1z-FC;wc*C5FokF8W-e_VS$$_`+HgBUZZ|fu8W>4PsNZyB9-WO$8HyX+NHi!3d5%24C-sb`Cy#Go! z&Z*<==40aI;6@32jNBw{bcB!DJ3e+D&E04wAIn{QOhfhD=!CW#?a^?fS$xbp|58#d zpMzjN7wtLA=Q^Jo_YX?i&*$nXpELWHN*ei;&u=+rfR-pZ(@IIx3i#aJRnjj$=ZSpo zCy2ZZt_zD2`G2@>sN$5g_q>v_Be@Q6-O&$KlKD|3=^a#39oMbf+m*Cy6E9;e*N+vP zFS?lP;#?(-n#px#ijuyJS8|?`lEw~G(mXF-ZeJz&_fb;+Zb~xipri+!OS;)nNfL>Y zVl0&8Xr!b-Z6&?34ntwl~pz31^>TrPP+o_;!oKF0d0r<4J+f7hwW)%hq%%c=1RxAyAp7o>mvtO znq=il_w`+=+aDL&{mq4PYh0-LIcLF^xR84uUpsHPkVTRUeZJ^I>IfJ5@2Cse?{T4& z4KBo%xlr;f7m`eLp`|1ETG`))-t=%GowhDyYtPFtcOhME7kb<5Oi3S|Y1vD@rk6NV zO0F~Y7o92XiZi)HJJb3QXUf>?OpP1)@5}hwAHdi6@y_Hn#F_L2XR7GP&k;_}G}Mwa zm$aQ}O*3cR);iIQXHJ9dDWOMc$4ynV&ZwxjPc@^JoY^pFZQ~RjV2Y5-J>MY@P#6NOPc(aSqh&qyy>hbD(?c z9B9jY2XdLnIlhA(sCRD%igR-y0~-gLqU}Ht-|VTdinD=>?djKTF4yd-HqxH*IPdAi zW`6!(Y)_g~?CI=Kd+ON7o-VoBlZ~}Kt<as^p z2LH*aWTu=BkLHXh?tSyHot!4y$?1`{oZzdBj=z-AvqBl!a6VMuSQ+_+$jE;OPnYrU zQ~B|sGJ4)qMxib;Vx}^B{8LKPs-;v?A|<#jrQpj_dU8@qmV2b6S}7$Te|~K>OiE*W zNy)=SO6Dd~s`$Yf%Woy*@lZk!Q9_eqB~%>DIZ|6C6ueMEPsdBh+EYS(J4k3E=Q7XK zkkFJmI~r7OM~+!`RCC#m&WG92=$&>{yTp!GPqd?k0d_R4qaCH$+L4Zi9S!_wOUp}b z=}?9(gQqDbEqCz)4Wt`GK;dNIL@c;zS5d5Pv+Oh zoK3Z=J!e&0T2t#!D{A+~iiQ+e(S&3!5mq#Kmld^HY(*`;R)m5TEpxRZOG7J){bEU- zDlPf7l_eR*S<Z!1gc@za7_UR%(=yB75Dss$YlwV;8U zIm2p}1+5=uL9JaZXqBx6RkWH@*Ei<0KHr>@u9?%bP;<^(GAHd>=A=2)oW682r(!E} zI@e-Gb6%Q}-5oRH7og;G)Ql?Dn9QJdqp2+WE&*)SCZTi$cK%exy^r=j#PhqqTle&+YOdlK}>^spZ7=e(?@F?!_JO^;$N_2|PlU2-nfrJ*-9b3exH3yhdd*7=*3nYT0TREzVz3jdCod?|DQIsd96+VWolDWv^G`k z;OzNX+9V&y@7-Os$x&0AjHBGXZjc8?)||od;j2R&f~BD`y1QRZydb-H;(A}8+$jj zqTXfB?VsO@Qx&cF;st+h68;Or{C?qm^Iuq7@Du9-e`4u?pBU51pSz^CVB^XbT;H(; zU%&r>U88^Cys1BMm(33hENaFT`OS*yWjEWw(oe;<2z3J@(rsleZz6HzF`7?X7u6FSF||z6&=04qSdc2*pT!ElNWu# z>8|{9Wdklc#@Sp$8_?=sJ$j|qrgVd4vkwsVr}9_yfXhIPImanxjr9o(Y_B@)b|6*zt!T{xLRE5UyG|O zYjNh?8tlEf2ETW$!H9R&*gm`(qeoYxhE_EWOXbhw7Qe^iPVX_4KcCya_Z^OdcW74s z7H^z;ivuUT#WaJrXm{%k&RFpVk1F2arLro#yuS)hvMO9!{~Ft$dyU28Ut@sYYkZ=9 zg?*R2!hMdf@YchZ_;lw>eADwKmb`y~S5LmcmBU}4W9xHFx$+!)&3KNHoaOa3^BH#e z?-}|jpW)onr#K_Fz@6OTsZ6res8J7h4DNt#*|95Fsj5sSb+hHD{z6l z0w))gW3Nr+_^W+6COj!a?*nC+uPQ^2+EP5mV{ViVDMhX3$7p}?F*^A@MiU;F<6Tk- z#s!q1pLq#>N`HhamOjE4@<-U`UNLT5UyO0?#hCf{A>P^f5N~vSh(}%&;rK&Es4W!X zSBSLfeCTZ>z`L?pa6oA9ME zVQUJa-VDUQdWdhYi#XAG8qD9RW9ChRhuIqUP zk3PA~I|;lbp~&{pTXAr)7Wk)j~!%w8vT+Z&~HKndbfn5+v#v@?iY^g*Qapl?o(*d<`l-} zpTtf}PT~dAlW39{hV#dTVN&A>tPeYZ_QDB-XQ4Q9YbcI#4#fdkA?P+I1b^v-V0P?r z+%oJqw*454IfsIATxb3ct>_qfuRMmAERS*i+ff|scNDib1>xneAiU=hgq4*?@ae`Q z_)vZXZ_;5r;(r(?|KV)0vxhLZ{~=uP>LC8!eh_!N@HF!PE}V4$^E3~j^!$GG_u7vk zZ}wsOu6_7Ku@7sr_u|Ldd-0XlUd%fmi08cman+kW*kjiotajalL0P-8-K^c1s<9hY z(Yx@9=PtB;wG&rv+ljXwccNzc4pjN?!0hJj_@~!)bY8s;+a+y9S;H3m+Gz_WE#8b% zE^WdO?>AzAawBF2Y(V|9>(S%cIvguqhdvY5qU!h>GV0(iJxOJc(W^5XdbvMSL&SzgVYU7KoGkoyL z$+38$cnnT69E1M`j>e;#Mxn`#k+`mI1Qsbrpq2k{927bXXWt)+%XNn0g1$p=%$mWd zyyA`T-wwhP_Jgp;crVO2I1oLu2Vm4sPi*SuiNeDExFo6{9xm^TXH5HIxHrSSn*nDf z3)ty{3g0`c@W@0DbUV@qFX!||mtVawuv;(w?!PBGMfO17$K7$QVRz0g?1l%|cEzpy zU4KATXY48IjLoAuVZyGCI7Zz8-+XS53zY5g`Q&!!71S2PbJ}24i#y7@xTE(RH=KD& ziAx?RaG{n0CwaJ{$5IzGJm-uL%A9bQkrTG}bj0k{4mkRfJr+EdqhKk=(}QK$uu+P= zuSsy(8#@fQ4UaT`hOJ^foHO>(41{$E5sE;E)>EUK)Jv=u~7co!=^VQl|Sf_LtVH}&TrB$adMI8#`9S>ot59q^qd**$l`qbA%M%yu%N1vQ%n`juXN&fU znc_RE+hXL}ba7}U@txTyu8dTR4gXTbfY~?2oI5u}Y1?FR=7B^pqVAe_cl1@U`ub(@ zr)7fpZ}lbdXIZRR?Qv1e3y%@cw4M{^O^+58x6g{DE|KEqU8hC6cj02};8S9!xG*u! z;Djhy93pNl3>KesIwp1u3KCa0@I5|0hs2ts1ERI{ezEtOz2exiJz_wg-QuE?JHM;yH^R;<86w#2&{x ziuL2#i5INh#qp)CVr!_Acy@xl2zFAjq})cFd(u+;I>}7j#JOkxD)q&k;X2~KDVkzq zuixtTH=ERt`ZTC9tyUeSdZXSYK2y(uGW8%TQY-uBtF_Xz)NlKd`ff&wI>Gar`gmrX zdfUKr>gCxH>N$f#)idrKQO_K_PrdN&4)vFyHELz>0`-EBsp`xVqt#tb4NxaX^i+?H zY@^nVmZ{6mo2Uav{!5GSeV_JuQeoQ88A)lA=bcQetK5{Pt{IZ%@WUz%%ra87XLd^M zy~4D2t@Y|Yr{`An`Eb_FBlqBBj|SN5A?X(FQR#*rU1g;nGShmG;Tk%s2R|)TlJAZx zw@)2Zjqf~EdtZ2~D$0CSH4kQ}QgWB5`lWAB4S2dsl`-LfO8V%iYV@cu)%3hGsv%x6 zD#P@6Rg6cX$}Txo70@YNwLLaRwbrFT+$op~yM-gAdxVx1dxf#a`-S7N2ZXGFhlJ%7$>TnVq-rN%Y z+ms<(v&s~T6S9OSUO7Vk(>ubM|LzJCjq-)2bN7UeLZR@s_`cA6VUaNR-$P+b*dt*> z=f}d7JEel-v~nT$YlYyu|A~<0^h~h1`CJ$=@})4h>Xi_%zDn>keJg0hyb~^{s)Y_k zHNx>ZAA}bz9|eP;PlBDYUeHlD2&JRG3V~JM1j)Ka;h<5o@Z#(b!J_9+!7cBXAf5JG z_*DN#h}!i}kR8&15%c~DT_`fu1M3Ps7#gh)ixwGhj+G(b zqihI^?-;?bBgSAe(F7hknZkw|Q!r07gA*If!C;^TEH<q&1VpQ$Ft%(cJUBTFdQKeu2RYrw!{e{x;a;*I#I2qHOL|QN zyQYZ{cXJXrubT{8`%HoC<|*(wbt?Q@Hw~Km_(N&4KSw%Fhk@&6KymMxFt}+ZM5hG6 z>(#SBujg#A{5BgjljcChin(yS%RK1uc^;@Q&j-cg1+c2!LbzDH5YjI!0{);IB3+ii zoR>?$?95V#oU#loB+Fr8>2kObyaIB@tb{z{Rd79j6>JLp588XJhFgDELl0U5hu8DH z{yo>h$A)!Ke|bHWE!e<)c{al6R~z9)#3t~WxEW$Cx4_H$Tj1Bet*Xn_*yQei9}uJPEt9PQqFFDTrTv3eMj@ z1qa>3Az)iLxL1U8+lhcp`y;@pDgq7&r=cnMH28cx4G~^v;8DaG`0?!w7>|qu)0jy3 z^D7dbjXMjM63)VGttc>>8U@iwQJ^%8h7$qN(3BR<{lCt^*7@h)V){8CoAYpc$$3c1 zJ`cxaG2p*42JG@;Al>l-j9YU7N(;EZjq61?$60T64=#ejEf$7siiOF=u`sDk91PkL z2M#51P}TMlgl@eAy&hkJtakChw#CD_$MMkEE&+ONOMqFA6JT?@%dm6nWmr>k8OFE0 z0?u2mKxOe2*y?^2%r;%+J}p<_hvFKHUVjaa6<&i(=j-rn^>uigcO5G1IrnWvBJ9aY zguap_c)d6YR%Il?XUk-mI4>Cz)XDJC_y$O3-heL2H=u`Z3MeM0z@LN^xbr6k*7@87 z+nAehw&^C=3`>PI5vh>%DHVS9PXmYGH0ba)4cvOG!Dycvo>rClU1z`;WqQ1~nZ znmgVG(=A-?--Z_ZOek8C2|<(z0{8nWnwkY;60$)3GYd?HXTyk7*|54M8}|0ef!%>Q zu(&h_I4A^uthxhdGVeeq^IV9Xo(qOoa$(Z1TnHL=7p{lh1$@WT9(fS7BM&AP<$<9? zK3rIo4;|9-AzbGkeDl2ry`t_xz^8k#Rw#fqdket-aRGF3DTEJ83*m@Z2=;pS;rO`w z@a^n<=*#(W%RL^z!QBtw=)(uF)xHS)78HTajUq_@TLeBM9zx-XhtRd^A#CYX3`y&Y zp*Xu3Doh_i{^Umx9rFlg*FORip#-9KmwhWoQ0gXY!8;QZq;xDPA^>qDhb zS6T`QPGvA|VHvzhDub!5WkBBLpc7OMy(`LLj7tUhEUEw@xdMz^Dex5 z@pm0`@Bax-ZvO=DGCzTx)@SH4=reTM^BF92Kf_bqdN??w9$fa-!|A+w_^sangN8N0 ziv10+Grs{g8hn9?!@huQ{};&4`vN}tUm<76S8&+-6{h8Wh3z`uVE>?RuzuG!7@74A zbTz(1O#koDcI$Ttrtk3T=XbDHHA1I#jnE;b5zM|dLV4FF*t4t&>@GJ!P;C=@bZ>@E zbDCj%bTiC&(F|kdKfrC$4|o~!1GW|a08P^tSUkK1)PXJVF{=eM|F*y%;U~OU`xDM5 z{e)4Uf5NkNzhKPVUvM$%7gRm{1zL8kpzqrXUk|my?Yph8O7k}u^!*LH*ZqdKiNB$3 z-ESD{{s;VL{(;fqe?am04?HvZ3mb?0gS(f6E}E=&UrqLDk|qmXt;xC` z)nt^Q$y9eW*`+E?X7opsO_yr1^F6iLlQCLMYq1t{2-ITjqP18X(qeYyTCC-Z7ArK? zW=Gp-vmu;`S3iyWU9Zz-Ho@8~__8+BxU08+&*I|q2=&&_g zb=b<2I&6B94r7Hn%;dce;~ZVKL#oT%d+0J6smlh<(`C1|>9V$`blL7CT~=J6%go>D zGS5G{Y?hrKThmpKZ5*b@me0~-6F2FxE+KlX<+2{TaYv5@ywGERoAlTbGks>(R-f(g z)Msxe=`)X&`fTfdeU=if&z`IGS#z;I)A*pzers@!p45Qlbu(ZmhZ(TR0S25+WWcT* zHDCkc4A|Wa1J<|PfL-`(z<%o(vLOzJY-dkHc6EdyE0|@-DmNIiilc@sKh}`NryH`( zrH0J2&X9fAG-BaWBi6O65lbD+Q-33N>OUj)ZNCxgA7#Wg-85ox-0wcO%7~Tz;9_db za+Ss`jx+c+jWuTd<{7hZn>dH>m@(@dYs^x}n00z&%uZArvxZh z|HoMZdrjGj2vfHInkhS;ZORUpbH>0&Q#SsuDRZ_mW6#~q*g=6a2}W~BUx&5VU-nX$rBGge4h zgUwlU3{O+dSw%iS{*3?r*__?@$MaiSu%Ai`rqjoQX$-SqpQc!_{3RCb#8wM7{wP0o z&VrpywqTv_Sg*rHpY@IpJ~YgR$4NzotDhz zxFxGNZ^;hc;LL_QmMp8(l6k+kznqnkH_n#rm}$$}FSTXa8*JIgKwEYv*p_uZ zYs&%?Y*|sNEz`@fWnCWHvZ2px+1MJMez#>^|MBC-cC5(Gjs+_0Sm!Qw?2cf^Mh>=P z**|+lJ`_os#G&lqCn~#K*PL;4&&O%(UT*71< zBn)>-*oZ?CRv0Q_9PGeO$4OXSqJ(uo37eWDVH@sqR$`fi?R_a>YifAeUnI==r-VJ% zl(GXxQr5;=%98D+tc#nJMRby~re0Dupr4d&9xUZ-5-H1^z}bq^r7UNjlwDaSWr1s@ zZ1h$s(+!kzMwyhesif@wX(<~NBW3XkQuZ&29}}f)Q>K(f=Sf*gk(7yLJnwTUJN8z} z=6vLJewDH(KX@H~Ijd1u#)3FQ<)5XD1xRHq(MiU>xXGAvM;YtiUB*Ux$k@n!oWU|k z#w5dK?A;g{JLkubPnEF`Gi7Y;Jf45Cj7?j~d5&v&Ih$lmwL`|4A2PP-pp5N4%F|H( zJ)Dm}9WGppK#{93y*jLVfTz6B(>O>hEn;~Q8vt_LMu8heFWsE)Kbv)+BD`afI zGZ}Mv#q+)T_$Iz9ptR1vz+mbt*nQeoQ1dHteJLl*1MyeE$+;DG+pH^raLdA zC(qkk&bE2TnXkb4lT6NX`^wq;{&M!iQ_eOFl(SkdIUDLNXJLcotZay!X%CY#*Wq&3 zb%dOC8YySeQF7MEC3Cc#Z5|_MZ8+a1lgkJnIlIH9v#*>5a(Tc-cO3r@mqA=ca2deG zol7hK?KYP+T%=qs^Z#|>a*mgy&1C{FH;k8`$Lp!(b++)jTX-94cw6ocm9tRZu5rA5 z8oZs6yuBTGyW@EKt$9C|^Zp?4HgfK!Gw-Ls`#XsDyKi@1cUL+4(}|bSf%7-{__*_N zx}}seFFtOf6VK1baSb0&(N50lt>w(hlJ}2~cLzT1jt0CwJ`ayIU0_N z<9hNsh3gL2o4m_1rr>(C?7WO!ij=XEQ!@66^MRUzWUS$Uj8*R8y0V??2G_^#TrZ!j zkg-)2N{dtb}-XP#;mzr zq;dNg$?fE!j*NM6yNTuY^Ye?8_2u@og4fxm#`#%341+`=Nl$rCY}<`%K1Nv&N8fu zuL%{g;s&iqD;9iYtDvPpD*np*5BB`sE6LW_;*(_~k+QATW?COfZ8lXc3~ zWUEp&*>NIGc1xrtdm%uRHFMWw?>K0(=PfkZO*b^zF&8x1ildsW{ccTm=0;7HEY)O} z=xMSM(==J$SWWgQUz7Eh)MN|$G}x|I4OaTQ1}pnjgB{G&V80O!Hac2^H4UVFhPwuv zWv{^=zOTX7UeREUPHC{*J`I+)MT6b7T!V5GHQ1=BwEq~T!DcIJupj=Zv#&bU+4~LZ z?7C8Q_HULt8y>r#rc@x!GDS;ZBC8oxjcdD|}>Qvd}LREHM8ePV!veSc9S&QeY zY|ca4uU}VX^-ig>+l*A%gKJgUeT(UOQ)%C?q0071sj~6iD(tBS6?%PCSkE+SCs5nr z3AG`*o~f`Ks7>KSZHshjW3*CRLvoo4t29T2l^&X4+DzHd`bz9&Z6)@Kk`jBePm$eFr^t@aRb(3y6j`4DMRuK|B3pY?k-d0a zk!{_g$R0FMWD~U&S)P(2yR%n;wfU~VMrA9o8F32i7heVTGqsmR)NXd8_Vej=3asvY z1-5du0&6a*z-qS1v%V$rtkws4*6Ou9TjMOx&b=$oUOFYu`cqC-ngO-XC(+;K>GF>p zn_5ZPROxc8aiknO%T120x-Z9?pOIrVcF3{bLOE7lTaLX?`PvnovaD`}EPFOpmh}vy z%xz~`w(yQDTX9^LE!rf@ChN(v-eY9h^AfV`te-M$b%6}cPM2Xvzm#DEY$?m?vJ7jt zSB7m_Cc`q*WZ1jPGVI%KX|}9Vn(a)LW`|!(vjb11*&jEh+3X|ItnXUNyqYb|j#ZOp zKMqK-$0<9!BSVV45-G(txJa=Z??|!!$E4UF>!jGJbEMc^YIGbmAjw+SNV1PVQXV-S za~adI*M^&ttma`!wq%tgYo{y8&f`h4nOzdBVYvjGn=HXD36fxa?IhUFOA@Sbw*-5I zkzjo$NU$g=!Ddtbd2X&a<)n+VVeaDWqr2kl&i}+&m3885+DviwEMJ@z>lS0}%fwij zBr*2JOEI?Wkr+GYycpH%Vr-P27+Xo1>peXqFgkezCR>ky+O`pB(HMcis(-LL_#b2$ z|AWPg{(<$-Ur0**3l(;Mp=!rp_^9<4T&gJ_D|i@cFHp|A-Y{hJ4}r@2Az1xr2o7u> zg1st3z?Kez)QdrgJ3a`T=(zeL9bZq69e~TXC_{ef0K`fRKxAe=JaOoUJ%;@trP&W2 z6@8%Q*9X^5^Z}XP2R~YS;cs*=^k40zjQL&&80vu??|UfIrw5L&>w$Fn9^mD6!?LH{ zuzOcG?9}WA{qio5@aclMBVDjny9;vb|G>hKKVWh854@ZC2MT|6LUB|lyuaKDPxU%s zLw5(X#CO1@n;q~?*Z~U$f5Rp68=l?$4L(bM!;^pQaQ1yW%rI|7BKuolMM4XZ>n$*GQ45^^(+s|EngK60L-Ooq2>aOt4?>$@$>}Dj zo!kT_wT;l|+X!n8HNxZ3jesT8ALP;iMLQZGQMmyev+H4lO+B=(u7?|9beUKO8*bNu z)8aZv?5u^akyOsrLh{sFcv|}%Hd8;;?|t9luKIWQlV1ZnAJ>4_x*Et4uYsn-YWR7x z8cOx5A+oIsE{0Zt=7}l@9bW}g%D#b}^EW7^j4r*DoeE+4 zxm0D8*4K=_j{uw~sBC>zd)ZL#_A=3G7uPt1pfC3#@vkO#+C z<-vjeTv!^F3yLRmA$@c%oXgLF{)ahm6>^~b_h*;qlyT zI98tp+8$YypOXcr#k1gN{3qCd{u9Ja_yj|RnJ~vD6E?G%VDvi!HV0G zmHL)l!V;nVU?S)%Q|?zX0Vfke<23|43lJyCxR zL9uXSS1bfe#6s%Z7|1&o1DX67h@yV?hZo<%hH-CUAo~q?-F^eQx^E!3BpL*dqT$@a zXn0#21eDFVz4BVgJ{IDCi*hm8lqAw@PErpJfD zz2jk!!ViP)#Mhv8{x#@oQArPlQCC8tZ+s|x%zg!yH($ZrDX$=##vqLDg+Ts{5MWAz z!PznxD(41+T4fNhHbJm!VGtas34|Sw13}+_)~~4#fI_DLu!R7a)ASP3p1p((OJ71# zi$CZ*_lKLy{UPb6AN+Ck1Fe;QFz1&q=(+oX?kZp4x4nQy_ZJYc>IIx=qwy9G9|)xJ zm)ULJ5bW*^yj9+C?w1$D(fT{TS9rnLR!;S86LDAY4 zw#~7HhhJ?V(#!_3bZnqB%NoiqTSJbPHGL-@f#a!1a6su1jEQ{+x%(f2sn|nMdSwM3 zTdhE=+Y;=(Ea|>2VPmrexH?)u@j?rbuP}%C=H{?znmI&!Jb;*n``|PGK3uwc52k&( z3z=$nVcStNNDjLL8ojq^&8FLM$Ke*(mfnO1Iyd3)#Tzh1bRCK$uEY7Q*Wjo7RoGc) z3IVfCq4LHR`1|29$SPijq1`4>>U#-%S}ww7y^Bz1W(+4jUVvQQ1(>w&JRE*`4y=Bj z1($_q!Qt*1F!^{Imhw(R_nuSW>UR<*wVVLg`6r(3rz~U>1DQoc%*oqwjl??~M`pE%kD%lTu6ZXT|Q~SU^VlQ}f?SW^o2d-NfQSR4n zkl^ozFr!_t)MqCo)fvK!8HQkCvV+D2w?psHHc(r&4aVDU1+}~_(5touKJMQP7Ji#x zX5&WqFmofUzPthA;@5-9&^kD@VjZ|VS_>SFN9XXV>|PD%xeDB>SHiK$D?#h*3P_4r z4m&z&JbUpnSaoM9_$M!cUlL1T`g#@&9|P5$3|v-Y;M86rZ1gsO@iqETqoWT`PcMcA zVT<5H+d^2rU?D_Z(*q^Z0@yz^AKaGBr~T$U_?|u&e#y>-ADiYtvEyub`(+l~SDOXw z9$FjCV+L4P>VoV2@pxf!{NW<;NP-w@XUNHXr_(PT8{$XOf9IE(*nUJO<4R` z1GeUK7Fl5~x6$p#UB@^I>ig55B1J;M8tqXn(E*7m5{WtVj`- z?@<6ZH+iTlkppclIWXEQ3wPaRz@t7WkAOXoK;_GKGmGw~Pm z{l!ma%D5klkykTgI;x2=b8BF(sMj+_&b7=`!FQ(4v6^vItYW6xRWji+70kqkWsHS* zDN}I2nBfl>F-vY2GW&YJFvqXvGlx2InKc)4m~lU|nflXNj8}aov+`I5Q~E8PIkG>E zDK1W7mhSw(xaK7@RhyC+txUqKT8)%RCSr`)1m;3QJacGa9J4GshEbdKmZ=DdW?Xcl zXwAO}rh0TZW8(Un=@x`C#ttD&scbN_*eZ~*{r8f|yY0`&_4qRSmtQdZTj^Yz(_YNo zS`X&lA$P{K)Rj5B^EtCL*O^h<@QkTWeZu%Hbz=6292m)kkC~82J7$HhE%PP7n%O)4 z5mW4L#cWcwWD*?AnZ>;O%r6Nu#<}k%qx=HTOTOu+roO#Ky2X5uL|#%P~_ zvEHoA#4J-_Di+8x|E5SW<41`zS2c%)!NWbmg1X+CPwe#=XE^~iIf&l)FT_DoyhKY^vt zwEd>A7cU6yZH@}(@7^VBp0r*_%Ss7daIVnKMn~wrTT_^67-8(6XeE7h?Z^SiI(0PBNBf#P2^ClC#sNKE^1w{S(JQq zugK8xgeVYAM6u0gqU8z?MRZQFC{X{Y$bXBQ=+=u=aLN?Th+z&O14qk2*{jus49dPdxJrDaU%C8pZmb6H5 z&pKtf+(8AdQz}{@GmU zfAcu&b9&tRD~q|-TSD%NIW0+Lvy9VuvXa~CwuamHVm-GeXcMOrzLiUQyMx;(+Qr2s z@8L$$_j9_R4{`Gfj&kay$GOsPr?^{nXStr{3*3&jOPuweE1YNFHO_YUCbv`EjO&xW z&n=L7du@5Y8az z6}N86Yi?;!7&mT81lJfC$+=CA=H>;y;oj=RaAN{uxeMB~_O1Ur?&Cxem+Q-MiQ@_9 z?32iCADhf|dA{fFjY{F#-BP)=8tI&s%SSFmC6kMO@`>|R&gM)Xf97V%=W^NBdE7Rs zFWfte0#0(IkXwBBE4O)|m|J_Jl$+93#xE%Xi z^>gQ+4RGFyLtMn8VeZAqU+&WF5$@@2G2Evwj)E?66h%wm4r56y)s@1njZ!qfMH=Of z$l%s7vS?l+i-FE^7*A^$$15mcaE1a}St{a=WlE?xsD$zH%DD9k55Lal=Zn;TmY1qJhiqYT`eAEe!9}!gUd&Fz@teT&+C@Ln_B$ zkLy^}+c6FgDvZY~>ErR*{RwzdI1yL;nTYZclQ8*|HXfU(gY9K>PPFr6%-cK#wWX)x z(d4OUe{&l8&!3I~Kc?f;09`zHa0bp*pNZ8uGx5%&St!12HeT(WjRjG2aP*nExOL(@ zyiht1uRocO=hiR44I>LsB|#5AURsDJr!B&^szrFrbulJy(MK660~AsQ+b&Zf?w`Tn z#_tSHb_Z!;L4_qY34)-OJrT^B*?iPJ>N2`qw7>u4{+TW!hmBl^w=(`y=>n$x(D{KZ=|Ek72vv ze|S^!I5x%|N9ObiysC8)oj;vKx7(-i!OYXRt@1QVIGjPRC1-I|+gUVwagNpqKacHy z&*Mns1?-`$wtVG_=$Ld7=U=>p6aa}jIVNaob{RuvUcsdDE6CZJqNl-CJk)d*C0(zf z)9ULu+<6_h`QJdRZ8ytmb_@ zl6D`3mmlCAo;hZnG)H-2j;x9W9yw!ySCTC7hMFZBpR>eW?=5kbh81?5x5CH|R=8L5 zA$DDOh!0X8()=3AZ!>;`nJJG@Q_C8SjA;${6l)C8w84Z6HpqRj!7vS5bUbg1$KKoG zWOX|%IctZvlk8Ag)gGUnwx^6fdpys7jL9b+qon9D8Yns7!D9}1InDvE$vNWLLyoxR zjU!Hya>9naPUs%)gfQZSxjUcWj*usqI`9N1Z+(i_{GVcc*Hdg<_Y9@Io}qf%GgMvS zjAAa%Sk>r^uW9de>ahz7s$DQ_{&QSt^&G>CpQEa-E1tdMicvYPSU159rLVZ5R+<}* z(r`z)Gw#?da>qCY54?QH1II>rVEl*&E;aPTxByQa-R+4N*LvX_H!rMh_Chhn8+rEL zs8H#R-Lrf!_pT2<&-KBL6JB83r5E_%{RKwUU}(9*-L(C zv(g`LKJ!PTT7R6h;3Za=zeI~KFHv(+0D71Np#1v)Ji`mbn8ShC8WD)9!+|($a}ZAV z3PQ~vLD*#wjEUC4c&#`XM@BT;zG~2 z*wpZr=6%GV%H0^W&5XfTRhq+fBo=SHj>Q+1<`Qq;h0Psl`*;Y@tF@)NzspD^|FCwwEwLOY`@-0YQwebrg$I5``Y z&SvAah-}R4$VQ39pKxlaHQ@zMwMAV?57&!8b#cIk&U`dmm6qDZm=Z zLVUZn5RGjLQIJ)LJ_<#svZV+wITm4DUJ=&wzvAEyD$l-RUEx=ZRVzm0-NndrEk=*x zVpP;D!P9$6@U>eBel01%7R^#@*i(vGZl&m2Qi_{2%dpv~42@mOu>5No?Vrl=!me_B z=3I`x1?A`>sKCqHD^TC50_$@s@RnjF_H3-g{kD}Dl2M5jQj|xx>KhK4f5XP)Zzvl6 zhF75qHE&g+e|#0Hc2(hp`PCS4u^PWpMqNX5HC9fkLHw@<&3$WdPGt?IYJJCLyT4<= z)9=`p^BpJ3*CMl)ibXAIC)Hv{e=UYAs-t;ub@(Z~4i`4pp|wsuemGo@-#zNFrKlcD zc?}q`u>sFfcAe7u26P)}K-oo&c=S>u`i3@QdR-%a8P|kqdz$dY(#nJ4~WulpZV%=v?KULH0q?84V)x^S0w z7uMy`+-Heyj9J``ooBmI)2ACJ<#(e%q6Zrn^`P&W9$eDr4QGkY;~pcgOC>cjDe`!L$652t^ie7w#+OxNkhpS$|8=V3oK#`h!F)KB~80aV#A zfUdU&@NXz(=9LeinfxF+GlS@OZV)ee4&s8WL9FN>#Iw3XSh;ry^=yXl;=3VqY8*lr z^LNisSl z$tfu*(xW9sZqAY-t;?jyj-68E)hWscxFtnqI#6z(pA@+kBSow}N|A?UbiGz7a`2xN znXe*E`X)=0H~N${u#tW~C`}$-k|vTC(&U6a}{LcU3pymo2QA|^w+ zRAorV6d6*jFGG?x$dD%oWQd`$43WMsL&BfPkX0{bNOp`2S(7e9qKjpS66GHp=$9d0 z^0Fj*j4WxJB}>GX$`a{qvSj#(ENL*2B}wM8#O9eSSsfrtI$~tWlQdb%M35!^4YEYF zN0!`>rmQ~=Iifm^@)z{wi0L{x;?j}bThRBhgcsUYEnGIWt z-mgeTou>SXtBR!Jfg%ZVP$Wk^6^UYqA_rWLlXbv2LJz z!VbFKUq!NAUWr`OP$G8PO62JrC1S%U5tFq_WTT-HQ9GM>g2=$a`lVneNRa=7Btt70x4)aXd0Nkw-RCCW%oF zkL>))Bg?<>$oK{x`PIrJ;azl}Lp(Ap!6!}%d?KJ66RXjD(lm)rK$lM*%;S@Ieabvp z$|rx;@W}w>E_UwZlZyR(5_gPG?w{ck;Uzw4xW*^uW_+S#$tU)Mkt>cP7laYR7A92by;)0F#iUO@I;5)gr@fZ%lj z*?n6;YVHci0doP#pxj6u8v!w~7mx@?y4_O&8E_F0Id>{v0@Ck8+xHWY@Bjh17%U(Y zLj@!?OhEQfo=iowfNYNukoY(OQA`jJLry?!iGcFA1mx3u0VzlkP<C7;S56^(kjEtPRpY#fZYB>x24>jjC27hPNnzcgMfTY7Lbrc%HBZ%VMO%&Ts zM8c51gPZt7ZZ)5DvwTvxh)?|I@X66>e8QW^C(&AbvQoe&X>xp`FU}|413c2v$s_td zdBnJmN1j*kNMs?8yvyd1x2ZhhgFJF8hDX+h@rYCakHmUX9YVRR^|m~6%A7~aZt};cL^T0sBT<&jYnd8A2$M}m}iWS1n5bPp(#M;*#U zj_N+MDrHhrq)Zl5ooGgNW9&O+@-0G{^aLmqF{(R_>Qq;%TaBoWl|7_P zUQ?aBgzDZDs)O|@H|fQ6WztP`^HNo+mt~bn0A(n>?^Gf=O-dxYlIrv?O2nJ;lrEwY znIBDgN`Xqm-b0B@a#SLr7D`0>h7xf&uSA-UD3L|Gl!)niCGwK8mQv;^k)p{||7+3x zC@PWY5k>N-i*lEmXTNZ#ftk}au3Yhn6Uy;Iif&RcPLP9-mj7)s3%8W z>Bx~ss&d3gLXK$tq4rI!EHNpd{HGLZ!@Q9t3jWk~c_K@`QZCe#OS0tjVOiq2MV2J9 zln*simQ;_HCFOFmB%@D;1U1Q!>(pK{pmtL$wV$3*J8H&L%1EYm)jZ0K@;N9&hBwNP zZ9@9rG#QeiE<@TSWQc61G*PXQCW2gPGD5vP-$SKI9OX#eeke`mn@W?4qtfL1R%+L= z(!^3%nsjSOlYNrXB(j6rja5=)-e+nLiloS$U@59gq=>@w&?~*a$}JsF`pz! z?kP#q{!D^wYmgw?UnEE~ks$uBB*-Qg3DR<3g4{eWK?aN@$iX*9El#wp#R>0CaGCB1 zMi2c%nf!maD&QZUy#5a_Z1{)!#{R>Z?SHY3GP)nQ{6&e=e`z%4FLDZhvF+P1%0>^P zjKwgv?i{A|5r*+}?-2gY9Kze4bPRKT2z8bW;SS{?JXt-6hoc8^srevE7!G2j_8>0* zGl1_>2T$}9l!n8gAwz3(Eo2Y-u>K-%RIZW z>2x>VSk#TJ;@!9*zY8DxPzKhyF3iyH!eq%V^!f4!|9kNVmCye{fBio=M)D7u<#%GL zcPDn9>7-+5I>r?1#OBYGiRIpbCr)(W@Z1i(JNO&xKmJC&XTR~xq2Ks$IvuP2X~(Nc z?YPdi9Y=PyY) ze|T48{ZZ-riPZL*)#cl>dj)zG$_W?{a>*|^c7Fs{)#Eg zSCk(t!X;RQ`|cFsQ7A&g!9tvkh4|-oAqFyqxNM*R(?tci=vDzb85H2x-Y+Qm?h8)1 z{skvf-Pn>i&Zr_ zh%a)`>R=A)kIup3lFxYb`DgrU_!$@RKcjh0HYV6*WBIylY^J=f?;o--{azNWHIRkd z`#xcB>?gFn{0U{|e8S5=GVx<@CQ2XAM7;@_xTzuox4LEE(w!MNikE>kSs&5)(MMdc z@*^e=r{h9VI=Ws>$A-D-IN@g+t_@DZeaF&p@7Oe4Rg#LMpQYlr&8g@hlZv`2Dfq@L z1*ht#pmoOwEDHO8N~fsra^eSETmBx`xV*>tTi>Ic?0d}lkc{{5B;&Y6$@r=*2`9Wt zLd#=GSTs5bRf-akbx6crYZGzrKY|+)2u{09uv3>{SS{jqFQhCi#AAwxxoI3uzf1kE zi#QDUCBn2I5f&a2VV*k0pX4N<)58SZxg-IlDB~+I{2k6a@eaeryhD}3csyelk6|m~ zv7#>y2cqIo`g9!r8yAO7MX^ZiWAVYtSe)MIOy8_a_RM@uM&*Jrb4gMB>4Dk?7tK zfhnF5Sh+0%>m(y6cP<>0FNUMDPBIzPspD<5OlZ+l$mYmZO2*kkpe9Zr00 zhdcM$;Vo%9d=_hqKL6RGC*KzBl5EhJ#-&z{wn6z!YfQgpjaPK6QT59s48HdWXU%$q zL1hn7VEqtH7Cyw3?^Y<|WQEIED?Ha?i8ij5bjp$?`u?^+Hy;bM*l2;rdd*QU&>Z`= zo8z&82PoS40Q20jazJ=2#-@^T7 zH_^1{240(W0}oqW$9a|4uto10+S^}6^*U3uVN9{^=@p#Xav66nzl^8dOz>peCET>; z5{~x1hy|U-Xu81||N36Q%RT2Yck_8v4LFCZ`p@ElZD;Xt&>7q?cp4|{IE_`or_g%n zB#t&biLN0haCqoAZZ$lPwjuvvXehp^z~ zL0sH>03U5SfFFGKW82Y{_)z2743U4a@8KZ;AVsxKX+r;(%m@w*)H^G*omD6 zJ5m3!A&u|uK&u5i(Ba{Bv?$$%$7gQC`S-Ts&-^X;RA&oLzP=d)GdCfB%qBc*yb+_4 zH(;$`1B%l)FE4%_)lciNW8Yd#4_kxQ!>dt$+iEQGTZM-^SJIg7N?h`M1wLt9js^P5 zQQUSJPAFfBGiNTvDP~JhDTl?naV);N2zVfw!C@YQjz@)*duM=m#0;=>hd%1OTuk@1 zh{oU+q2IHG_^MV9{TAq;bMg7nIVc}J8!!Hwg(+KS zq4bNHw7BgIJj%|%YxcT$yL>vD=uXEyG`>D3V=8v5PsK>eCfgG;89T)$I96uIv&$f#^GoFI7~l07Nf(*pu@muJh*-|j&mJ_`E^=& zeZCg0#iWUDpEXc*v<6z7R>%5SH8c=c!+YCQF~M5}>stgUsV_hcD?X0-!b3I6DjT8o z-KyUy;TuUMys<+O=f6n-W23UT{~|Lv!&MpF{L*wz%s7qvAePFRxPIUSGv9Om$w{2{u0+nInb!0( zd}Fo09v_L8%x_2cTU`EvSlFSrNZ-dxgLFRnesgVQi_=jOM#a?8!0b8C1m z+_IO?xH*fSa;lk5T-$y}F6q}}&gy|Zw_MeZ>kP8tybP>4$bQIuIb_8h{%yg1w=m}t zbnkOMTg^BV(_5UL`*p67m~uAXO}Nq07df99=Q;kiGu$=PlU%mjf1Ca!v`GxJ#Amxm6=;IK|1UxU6-{xx2Jp<5VYxOM9!&?JHi$ zHT2KtPLG?*eP2F{Gd!Woq4iX5OqdRLEq5aKv11%3P#?qXHqhdn52$n5_f)tce;%is zuE=d~mgBA{$Z${QNOGYl9&L6PsA9uc|vTU5aP5Y>;=i+-=I7WF+Y6Acv=;!q}qDB%XsuK?u)vosw)j4{Knu=UR?W3JUgGX&e3L%!F zRb{tDcTQdsrF0w@Y2Mo_x+A|u)Zw~9bW3NkNG*DXD4m@kvj3ziI%6a&;?nyPN~^yo z%o@l_c&8SdaBr?pg89Zr2@kUlB{+!9OBgQ{Pq_X)x=DW6U;)~xt*{ff;GgE)X zB^85d})w@;sj!_>tBI^L3N8keA0-)scnivOwtsV&DIgV_nsp( zR$zoRx7G+Xo3{%EMhAsCsi%dT=9>zwU)&R}c=S-{!`cf=I-dyJU%3kF4ton@)LsgY zWQ7PD?nemME{YMF|40zJ_)<37t~B8qxh!E#VxG|O%2%Q1)Cyrjd5!S3W25l$%2uI5 zPlxbkXsMzQI>`j@JHtrL zJvZZU^vnK9`j_ZZ3Z=8WoB3x>DMis^gxkjYcAW}cbZ zFe@8vnd)t{uB_-WQ>E?5EPw38IMSN48Hb-SzcQSezw@3m10JqSt++cAciw|BE%Ic> zF7alfgM64d%D#;2bw8%1%Ac9KE`Zq*704XY3}*J;4`JA*SB%`Y*GzJJ7;|KN1k>~| zlG*z!ig~;14bz2hnF%_v%mTYOW>!Z$!`qv{lqHFn$5W7*@|ZBeor#R{zGUWL@_Xjl zloTe)K9zafk;ZuK`N*74%wQ(!d}4@A7PGW1n+e*P!*nL(GLy&CiOQB=82#n~X4IA< zruxlS#!jPz8Fi({#(x4zO z1LB+vG@X?NGD;2}e3ApbTk`OAx&oXkRe(loMcA#c1aBLa;NNpvM|lkoj(73kP5>Xw z4FzyrOa=BvtAOqiRcKaH16QI3^UtdTH%bHMWop3l>zdFsSqr8WYQZk^QE+MQXt?oh zG#J~Dq0FqYFtKSYd~+EG)+@)u_}}BEn+u>)M-RmF^g!kILQtBr2s-l?LF(3Vxqm4PRB(Kme|R{U_GKfZ{r^h@*A753PqS(i^}jas!Br zHp1t>8zCcj6TIHK8Lszi2Hh81AbrhNSpRD)#JFq&X?8oTsM`+5?RJ3id_y==Y6u4R zcS7HkUEue57tA%?4MC%fK>WQCtUa{{t|;yWtG9dM?%sWH@b5m*3EU6)8xFvU_5)Dm zauAj>hu~rLAzEAeFnpx7%HQW60YB5Da8m0S2ojG$z_I^ewDfVf@%lJ$TTeh;=LzU= zJxQxtpMs>SQ($Is8YWIX1EHVJfTr^0s~5yK`Qz(bnmzVnSZXpgXg9&M*k{!m0pE^x30n3G1uWTxegBw z-GD29Z@>oMn;^dY7WmfOf{Et0!E(|a$og;xx{jHFxcFV@^uG(~EAGLa@Ap96{60LH z_yF3IAHb-2<`8z@9OmSi!^`m&AbZgQjwD(@h@vIb9IyoWFiV&+Ug z1w)G-LblaIcwG1pmTEtO8k0w0O7ls2m8{{yL2LN(+8Uoy}udR{R+3bR6KLi34;d zI)Ji*BaGVX2DFJ%KR!r<8&C6fOolg?H^w zp`B)LXxcoZ`2){j@kD2sb-@`_5}ct)!Ue*%xxf)G7Z7i90ha~OLF3+Yc=YKxG^)A6 zqNA>08s-XqJ+6?r!VNMXyFp5c8-!_7?wheYY)qiJK;j+{w8aAq+&zG+^?;ePJ;DA4 zWxsv!1Pw(mSZU-12mQR@ zN;v?AjRHW&HvkNp0)Uwt2)Z`{K_)p63Z#R;Zfg+CcMXEHZXo)>j~<7Yf0*LSf7PI`CVIHgR%2#h$?#x zRTIKs@MIWBhKIpGM;Lt54~K}m;czxJ98~2ZAarX4%yNkU@3IJ*2Nnq{PDH|u&`9uT zi-ZupC}VwZ(!Nfw{ZL%WyeLn zg^QhU!Dw*|%(zY2afvbDCPvwDYhoeRCKe`tj)e!jILI`NgW>0KFs>{PbjQZS#3S(_ z`7#~~>*K+3+B;Zu?j2-?zk{{y?;v`90!Up=fVJ@nVA_`e_KXM|%|vi7Nd$XGL@<6O z<;huca3P(8ZfS%w>k%?+5d_%?YiVfY^cDi9js(u;5!lR6gi$*Z;mgxRxLS}15~@jH zwlfL7J15aRup~IAmJCk2lEK#{89a-U;epzF*s<$9D7w6dw}tOvmFfpbHv9lno_&Dp zUp~NFehQRsOMw>06sXThfh@&T@Z6LNyX{h8Ff$eGWYR!tZ5o`lN`r)yH0T&f1NCL; zpmR4J#$Y-O_oYMD;*Vf{m5!#~euRkjkDxs}1I*85KvqZw{H@P`G1{4+eIygqyfdM_ zG!tUgKf!TBnosHY3GQcqf>xO?>g0jrp**N@ z%Y)Gcd9YM5A2zMchZPU? z6pJBfRWZ!CQw;8Ji=nNh7-ml@fn9q`;5g;i9r#!RFkAwX3riu6GVHecmqLCCW!Wj0 z!Q<6ska4>Vengi+cVihek1dB(!*Z~;DF?lza`^bC99HU9K=9!T=ya}tsh=uf<=+Ze zt5*pN&QyZ5PbH*$sf3f#-=Kr}1}83kgZBa7K%(>;%u%d@<;$x8u2#XgS5?qdQ3dY2 zYFMzU8e*Hu)AX6Slzb(=D*cwFMrhwLolV3#3l` z0SW&j>Ab_5c$zp)OJe<5P{H1NFGy}yu~+Qad+)t>MG!G+Xi>giBS?q7?kUv)8E>|a8k3^_aRTnSabETMv^5(;fD zp_{`wL(iy`aFz4)JWJ_Td?`h!l~LK~GHO~|MkU5&6z)|(#4 zxSZa|3$?Zlpt@5mz0QjyBw?qe|~OIvQI?e;VpYr(ZqInN!bsrS)WJRZqkH>Z#ywJ>6}tr(OdZ==R(O zO5fi=y{sBY@NM9Jw}D19Hc(xkM)I85NON{KQiypY4SwB7hkiGbU1cMAbZa6f{U*A& zv5DwP6Qy&G-+?bpl$g`R*DW{G?vc%8Y}iaDN1ExNbu;PtHdAg)GhM7{rkd_bGSXL) z?Rq5zT~N{w2PN?rt>}J=l9se6skm(TuGsdV57hQb!fd{G_67$tv2_q@u+=Td9YcF zEo&tssTwovuEz8@7qIhWHI_b0jXAC0jKFPbtnP>!v%IXvy5CV__w3bJi<=tT{DE@= z!_-)1j2au3sm7L-tFe78YV1^d&JFCT&bAL%XS4OxS&upDEM*1f2X0koGY+e>TK%|b@n(xorUM9v+PQBR;^NJb?r4+5$6m38LGkDCuy)# zGc?%vB^oSsy#~9oM}srzG?>j*4c7J!=Tq2mF2zgE9DJ+6R)5l9CJ`FUHBN&mGBj9V zi3WS$zLZ%$?Rib6GSOty ztu@&(2Tk_CRg<~B)nsq@473~P72c25WJgmp*|dC3rmW=qm6~j&OpE1r(PBsY@a-_p zFr28xe3%w%nWx33uh3%0Hfk}O-CE53s1`rJ7W25F#U5I6zM-uaGkC7WR33c4zZP2^ z$k`oV`TjqA`;ULm=KD+d@3s6qt^7P~B=kE$SnEmHAp;4MFOaZ? z3B<$fQ3A+;} zVW%P`Y)PDi>840ne71y{7E9QWY6<($Bw?f>Wj<}CtVb8lQq+|)vA>kna9+uvaZ)x* zPs&zJld{!wq-^10DQ9O%nbvwK`?Xcd%=bvyxWMM8-O_m$9LpWo%q`85_yDD?R$lSj}J=3mYM0W@BYc;5?Sp zsWNto$yhVzJ)WK`V`&Rzj4hS1TPtNOVvUS7Y>=_uTV-rKXSht+%egHFWla01jFp~{ zG4YIyoxQ-zxFTcW*JW(2sf_(Im$7AcI4|-pFQ4;Y);yB2dyi%8(-Y2tc_w2;&N5c) z!pn7&vCo_lW9uzrTi)`z`O8?ydl}or8IuK&v3-FumJlpsa?X;u6DDJSzRH;NJ8#QR z8C&p6##Tk~a-wByS}d<$yo{Cnm9aO8GPW~G#$+in_AFJ#hNa8c^9&hlpT(Ip*)sMa zhx03QIin_D#ugXI*f!3w+*2fDn~P;^UWtqiDCOtj;!!4J>&s=Vk;|P58S7LjW2Rh+ zxy-4OF-tBHTxz&zSIgKSEYFfOkAT-~{x=jZ*&%jm*o z0Wa@3FZ(vH!y{go2fR+#dEK`2I!?-yv07edPhR&GybT4sEhl)JN_g8g@HPhUwo3oW z*un%EyU2Cm6wCD<&2`On^PcO-iRz<^_mYd z=Ht)n&98y*hU@9Ij9IvIPLC@;{)LP^bds^lPi1Viy^Qs@m9gXp+%~LbY`CS2DQ?La z-Q;>Vma%SEW$e&JUjA7bD?iDv$uWNI4)MC};&mL#>o7pZ(3|VKhm3ve!rRa0`;>Esem;@1dyk}SzO|HS;`)q;rH1wDciN5-;bP^+O$#1Ca#vU z4NIl$)O;zsHbcs;$ffM?M1KE`lClAVr7X9%ls)YxW%D?{Q2@n!rnzlSX2mq9w{U&`K^RSx=Yxb=Mr|~v4kz+j3f11688FAP$u{O{vZqO! z>`xSD*M@1bPS9jMeKc8j7w%u|HCe8eCR5zdWLG$AY06^xgY7I$@IB@+Rgox3HMhIx!-!s{nuUY$Ifzpwvzj`zMRRF!u^~T_jePo zX>gXN23xjQgMHti!St5$V`gfwT+ZShIb4Hn>!rcWJ8CdzH4XNrTAg|4sk3MQ)Y*+l zb+$fOoekvdrW6--X2JPQBX4uAFK0N-IHu08yE^N?TAf|uET`{sb=G#YI-Ay4o$cgI zr;F<9%(PmK8Rx38;|aWP@SXeqk7}&MOO3fcGF$K+GN^F{r2*{$%0l|JF=C&w`-+AC7fUU zOGPGcRCLFhGmVd{Xz5B7NhYc2Wmgpqt8O9dSk8p$i6C|Udotqy9U5l@>a>p~OVSl2`{y(T)@wTVK@8>uO>k#sy8sTc19YVy8dH189d z^=+g9O%3$?Zv)Bv8_3AIfy@py(6a>%^mK3o8MoHclH__)eyAs#2ldqXXg!@;R8OCV z)Kf`o9jPaC-qia#O21b}?uY7V?fg0(cdVnm&9xK}UrU|e){?>PT3WTcmX;dS(m35( zs;jIam!CBxxYp3St2NYpeGP4ySVNZWYREaenjAk>)3ry{wD4#()z7actNzv0uAz#K z{Hfw&q$(=7UPZ0zt4KAWin7~O(VL7)+M(cmbn8mGxUZ5j4Jv7Tk4nyo;r;rs3cB&6 zf)1VJefvcfRNcRV?$?!5k6-0v^0J)%UMQ!|E6RDiuAG>%j7G(jk-B>s1z#zn-9}|p zIf8Fhr4$@nO6ne^G@6e)7$1L39#Kl#EhY3Xx`fPMl~CVHC1k(6gj9n|Xi-BkU5+d! zyXVDZf4Z1V78cX$KE>3bqKLdhi%8F|h+Ga9QSD^Qok5K3z!8qf)Ot zKAy-UtL1ql4#=b5mAUluOD_4?Hm!c%Ow1)GqLSN-j&vQAnZb1%R)ybi| z`PpSUTm z7gwgy?|y02z9f|IksFgm<9j1(iosG=m4y1xyjp{GJ=;M7oR*Z76fK7Jvmt6#`) z))&gr{6Yu5ex{^bpGj``nT$Jrrhupr`p4sD1x6v1-93bUBm|SAeK2j=^nXs*%d{XG z@jQqeb_8)<2hrS|K)UQ2NYD2MlHc$^@+tU44j!NA#KBLbH~JIh6@MgCuaDH}2!Abk z>_;jt1xpS|`=N)xR z_NPtu{&a60k8O7Mr?6N*`f{Ihyq5dXt&V=Q;-@c3EquvyzAsJF@}*Co-_q!7Z^?Yx zTZ(S

    _d2G~u)l&70^$3(MXRy?#SI_jA72kT>L#=}pU@c~ikgZ#t&qO}VjNwD_JE zIWF;{bRM_u6#kmV8Na4!(_fRk(US&q#+UNACxwskq{{^!G|0t+0=9V&>+M0_f8D9m z19#fK)SaB#xYO@YHy-DAqXxl^YHD6ly3Z>T556Lkp|6N#xKg%*D_vaUO6r|m=^W2f zl49yY6KA;4nZ}po?*Ed09(hS=!(UQHCg*-Vc|ra>rfu5k1KGKzy1lg)h9G}{}VDB@Px!f2THleSzrqts7B3!3KaJA`?x*1jIgJJ z8IL)8?lFB|{+M>k9#ct>9qm19N6};LXl$-6U3_Xw3L{&}Z)Z!gFONv~!XxT6;SqJr ze@K;%59#abhh)|MA20oO&XJKO8?oI zQqFu+@@g`neQ!*t$4(Op=x#!W-)~UteKtX~6F5 zG+XC7c|W{HK}}cb{r0P5^YsdC7;}Xr4=$5^{Uz$Q_`qmTjT=-kb-)T8JOIW9Xx?fp;FPMy=_eCZTLq@Se3IVUN~jpsgUe}c{(J5D2F zkI|Q@$7rs@QF_yIgfw;>A%if^6dQh+PTW33`%4ef!W9RptN#HC>wbW?pWjcpN&9H^ z^nK*zw3o`%_fpT@duZI(-86Q@Zt8w}7ZnumB$uT-X|c}^O76Ua)|}iBG>Lj8%_$Or_vBdJ=)edg)G)gA!pyoVK&ZRmb%v#kk&d{8lgOnbnitv7R*ZkuC+7>G1hZ z9kOxmK?O~GzJ7IgI^f-n9!a~A|2Az3S9GO_E?p`3U>9-^?M$Y9I@78%ov7RI|LFU$ z|LDZEj?^Ks1366SKz%IQ)BVhL)F`y0H4oa7Yf&32nB9i@KatVmYANkEl+vY_5;AVq zqRU2Fbm+AvEz{Jbp_??Q(oday+o{vuoodwYbgQs&uu8ZVqZIBMHw$JHnuG)C4T9d? zdZBn)onTp9Bj`9(3swuOgtEE{L2xY>jv18+_ti^`(_FzKhlMWb7?~JkW`^pOtLWS8h;;S%s)Z;FF{DY`B!k96fZ1I zj}?mV#0cl)(L!ZTl(6ysZ^3u^FQLBhr!dC$hp=MycVTDQH(|E}*T+puy71})e zB1A0uEL^A!7J51d37$&=h0zTk1;>{VT9=7}QB#0m=lVg2T=8D0ZuS@2yZH&-R{08@ zT6_eh+Z!QymABy4!dYhSp2AQg58+pfo3P*gl~A|JRXE%7QYdnJA*@{GEWB1a35~Cw z32ddKaJ>16VDIW61T41~A{y<4-!E;2?@J#Eih3L2sq+KjjNyG@POY^dbGj=8FSHVl zR^1W0JiRTvo@XJja&zJHV>4m;?3;p5v5BDj=!S6Kz*u-1bxqJ8bVUd`eNoW=c202Y zc}A!{bW+d{Iwlhp?h&4?-znVm+$L;MZWe|w+bCo?trPB5t`;WD zStW!%TrMoiTOx$&FBT?PED-J|%@y)S&lV5Wx6!Vj}D3;soSM)JFrSQc9^a)tDBjbca7CWZBhRz<{a4biu=L^Sy% z6Akva6En0siU)%`i75xWic@=Z7temy5giZr5>GDkgmyF77@u zN{rDND-QWGUfgtel6bag`%A&hM~P zl)qmtw%@u+43e%9SNW_HzpmRT_Eg&<8oF;2x2)JHE^F8=_IWE#k9g1Ktr(H*D;7-l7b{HOiJ7tQMGOuQFP&0|LqbLIeb%XIDHni%f5(p)564%JK^H-q_3iMWQ1sP?z@;5{zDwsEmGXF^Otzy?Qijr zDoR|uBwGB>Aw~?yj}_LV6RB`mmG%?jNT|8No zAr?)|5*L_ci)K+dqDSvM(Pv-2_}ITd+|^nrb~P*(U)Yw2-Lp!?Lu1Ru7w0R)Pob4! zz<<@^!wof}kxQ*uT~;Ta78=CACXHgR-%X-{u2P({vqc=~r4q|)Tg9JFYPdUB9kUD7 zk!z)a^OH28{Huv$m$VSwUxLA5671pcDcg3CA>geH-&VK5w+7B!d)gK@GuvT%PCN9u z)gIqQcfj_j4k$d?5!-wGhp*y)=)I*AwyJf;J`P3mu%DtBasKT~y!di5{bSVfe3J7;>yPI(6xT0>3`+Ufq|k z3FwPfyMC|~`a_c3ABQe;23y~OPz4RdsO^I=M}06Bz8DOeGX%OhLy&Dc6!t@hVcOSW z__=pD=F3LF+ie8Y7LLS>f{{3IYZR`H7!Biy(Kxz)3>LH*iw^E%@o~X8tj!;XRI~9| zHf#c3hfhG&?ui(xH3_p{PJ-d=$uP*Aj6T<=Ag7-m>;maz7de9e|a10J0Sau_x~!+%F%(pRR|I>dski21no; zcLduH9)+6PF_=C&hSE{TK_SO+c+CmiC^~`5*G^(%w^Qir!Sl&aKaFKErxCdK3_3NR z!944;*f#hawgjBR48!x#NN?ayS!~QMJq%f9#Cmlwpi*BX6Md$s6#;4b0ax!B0aI z%zS79w-gh!4l%{TBc?EZZwjv#Q+%6u6R}n|@hAQ!w`DUp?lHq*Z!?UkHACt&b6hnw zN9Ra$*l6E^bki*yd~u84Q@5Zo(E{@G7T6MOfm71kxUlp#jz7GOb;-9eZqOan?!N+hk^@g9z4a|Yaq`&fMRKAimTBd6g$bPXP0n#lt!k9dGp9c?gol?{g4 z*`O}j1|J4I#2&tGNz3yg9+W*qr^%0S`P?HUe0+pKYPQ(S*E-$2Wy_cP*}|o>9UNBM z;o4(67^T>8F56?yGJ1^tZjaGW^cZKy*(3XeJ!ZVOhed-uLYV`KuR1{eivwhmCum;q z1gV@4_vY6V9PRuReT<$$@#rb$BtFHbUXB>D#Ss^s91)!9h|0mw&~@)K403;l{zcEw zevA`xk2rB%Ibj!P#mOc=hyCg2JP-YI+^T<$9Jw>bUv$R4kIt}CI>UMT3%tDg0ydl( zcUgZK74&1U#F*Q_XbDf-oUqu4>FedKzWC+=lkx1M#)Y6Ym3_to?vp_dh@<@&f{-0hm220OF+p^!X5gLlpsV z9mRQbyA?=zrog{M1wMBb@o0&NHD)5zLPXB_5}`X8xOo^za|H&abF`lBM;u=H5hrec z#4gUEo1y#&ncgSh$S16S^$D42pRh(J5bu`%4hV{ z{(=XKzM%Hn7tHza1(!>{z-dq@yw``q^=>F`g@s~GQz$x42!qd_Ft8_K@cR=6ZD}~R zvT!^+9u9xka0DfV!>`j<+?)Fq8!miBhc{p0k@Xc5biUz*;WxBg`-a)?zTsrSH{9tH z0qYeJxNI7M)rtsoFNr`%|L<61^c`_#-!UEEaj*0{ehv76YNH>}H2;AXk*}RC`GGh6 ze{#OxPe^b6#Jzx@&?@?g9epC>7=TMWGFVh}Pk7J;i{@xmk) zC;VbDA~O~doPW2{AP%929Cmz`F$PyZo~v8Qrs!alT^;LiJNnyCVgiEmNTVAq6ezDfrVi6}Km+V(gYw1em2_eGjS>`6Gp|E=-o97Kjm52u`LVf zH?uI$D+>=|vhcMb3z_}0kux_NzYk`^>0UP0f5=8dayG81=b&_04(2S$!L<`Pcxju1 zHy?B0oRNczl3Z|TJ+hYN;>4+3sTr8xAX6n8ie;eoUaSBI2gW9{c(I>c?Ej5uf*bEmDo9}65BRcV$Qirbl}XuPhOQ+ z`K=O>nUxr;tilW@Y-F4+gGcw>~R$ue5-KlXBAXARoI}a!V{fpe3?*< z-;1j8d1p23FL9>e!)i2pRpVxOHEL3;v8b*ZrvKHzWmpY74QgP!wg&r-)}WtR4L&;7 zVEX$SxJK5XI=cqLnrkqlYb~aati`~YwJ2U&3x^}M7;jn&56&WN>syQE-)eC&wHCLl zYjM489X9u`Ltni*gf6b*>zeEE`Ai*j@6=)S^E%##sl$~YbvT$_hiNr+sA*G=`+e)t zZBjih&#%Y#jrC9-<=;)}(Z#MFHJueduBCZ#mXl1 z-_eA)<4riq86qXtO<3vF1cx_GhzM*#awPvPxe2~SO*q}ygg$MW;nAZRy@od9#N=jp z&uT{0@@B+uX-3GQX572bjCq`|nDMX~+g>yy)TbF81DnBqG-G)}GZy4DV`ybF@>`l= z-A;+#I!ewwRU&)568)zsF=L^UGboi9zg-E{Atn6JDY3*vi63{B80VnGSyv@qzE$G= zM;v1$oC?PTMK@XydWZk_VGD*jw!qu91-;&ICJSdjz6feT&{rpl@Cad`nv}vbF{0$`<_4RH3q+3N2k!DAQFTtiKA^hN;khtO_qDtI&~D*u>e9 zcjv3{YKaOjR;ggRUIoLgD%9;#!R&wv&73Q_=Clen7gPwis^Wb$6})b#aMel$y$32p z+p4hg3IEMW1$7q{Cb+9G*Gq-zZ&m2^PKA^Je$J07bPiVG`WF@chO5x!JO5v#3R9v~ z=o_O#ahwXz68QO&RPaktK|5WA4VnD7Y+i1z3b*oA*ip#qU93WAi3*F$czNZVd0DCA zTp1NMR`Yh$@Xxh;U!4jHE{65Iy<7%1sIZI6Z7#N4%(!gk(u2!;{=2~C1^<5qKXxz| z;^&#l&!@}Jn^vKM1uv&3FVBjXn_r~DFkX*Eygn;=y=L(Gb>a1lNaJPjdguJ(bxTm; z5pPdev2jtwN9+FXJWW@o+sR zJMcDfy$0S_LBjPsnd^HV*ZVZCe_ehZl1_15^6S!`U!P06RQR(+g?8&XyJwXO?!V3>6*=T+fqLcr%9UpI`TN{Z%m0<@MwCaEIH)K1~&db36G}(}H!}ZocKVpbxjB zwcMW0aJ#y|?Q18uvkBbZvb|eyncH9E(-v&z_UOXxGMd|GHn-CxZm%D>-Jajtf_~hN zJ-I#i=5~F8+qW0D^IzQFW4PT1a{IU9_rYwX5~=*Y*qpD#XMUfwk5PiYDY5($zi)h% z81YJp5`JIVS}QTcREfvum8d$b#DpD6tX`wU)AHaoB5cn8S=T!=sL9- zF~gg2wr4Zc+wHo1mWFgn@sWF#K~9y81OC`$ZG%ZJMBG+Jq0Mo6vVp6ArFv z!qa(8@Ymzdq@hi)>E49Rk|wmPZG>Y^BYMO&;!J2G;Ma&8=SEcDYeeC-MuZ)0#LX>@ z7`>zs0n~_*BRLm|vtxrKjmWI#T-nS9Bt|vBE3g53UpGK%-vCQ9{@gv)fQ366aBW!w zp0Wl!8_@vs?hRO@(SWw)^>~?FkHHc3uy|LGxaakdT5)deg?jYfQxDaOdVHH!k8>mH z(V<&C%vtI=2 zizo55xF1}LBObMwU{j04%eC0Mw-(9EYcW-*#koP8$<&@RnQChAJhcWFzt(_!YLH=9 zgCp1ZmNR&1WeqL}HERb$GwYMh$S{q5Ll zxOS_?qAEP*EMV8}Rj_Za#3}CM^|-H3;XeNm z_x%~X55PD(`0DIRxDBtwhYpqSuB^cAzr6qOu>uWF{Ih8VG!9f?$I=SCnplC@?iI*u zEJsFaIX-_bhlOi7^exKq>u@<1ttf~0!s+(nawZDvW zTgnhNwhUuCbLMeXDc;4EBKAWm5+9c$>|!Y%Z!U$AK`Cncm*T2=Dax`+Fh8sWrmiLM zG%G>Cz7lvXEWxdjC0N|91hqxQF#E~-XRnK~&9WG7hl}xdNij;s6r-p^F``O}@FcPb z%e{(Fe5VLU4izDBaS`WM6k%7}BA9ZHv*ou!Tz*xE)i(>Fy_++oW*1`Nz(NGI7NB=p z0d{;Uz+Hy|yf|L~r?mwznNomdT??R5kq^gT`55pzA9rr$BW+JUdd|rQ8<3BAEqRb9 z@qTPT9^!2BaE144J1xzF#mGDqOY)${In;ZDa&g@u7dOu4;_#|m7>vtBL)%<9si8FDT==dfR*5;XL*q({Sl!=?#nQ$-3z`O7acs$F1*|`iD zuE;>shz!n>&p?-?bX@RD$B*0T(At%b;Vd1KIJ;_CaT+v3)9~FP4d+g#q0{0tSP$gm zk%m+l{z-+ITPi%S@^QOL zwo1lYJ~k4BWJo(D<5Nx&Hi5Iot&^~3PZHiz5^6dnVNmWr2;gGP`BuCCp-%n}{vH4E zcw-{xKqq47okWChOGK9`i9CjzhV|@Z7V-k3NfxlQ5`xnu#{=(qm zUp!j+7x4rBLainq-M(@Dl|ww54#(r?jCh!LjmMbWID86-gWl~p*l&(Q-ncmQQ;)-p z*jO04#$x8VSPWPci=tk!cvcdFX+bdvw~m4Sju7JtFO;uj9D|Am{wf5DwXZ}ED#~*l<{2fy~z9Z=Dcg{NEEUhlzk&zYw z9j^!o7b37=egtM}M__2iH`IE4gYSiJSU3M0in@No{`9Yie*G20&VR)|9;>kF{1u)l z;dtX74#(5sI5#sK1|7mtkr0NvFTR zFW6=C1w*!e!JiRdaG?4#$^vTJ;%{zMnz)A=u;_f&-UAuxnlj7Ig|ipMSwf zdJ)WHLBZ%dH5kuZgLpqH2uB_S;lrjNlne>Ne`SH_6A%cU>pb?ekn^{?1ma=RCmz%P zgp@;{uxrXE{N?eYso@`CYV{F;Yd#{U??=?<0uA0k?inC>I$$ON=$DA(hawJa7LhYp z#FAnKoc$EMKcIm2ECt5%ya_^704CT5pxc%J*-WWE|8wqW^aW2vel6yQqg^?FZdU#=8(rZ{b zzDC&g*C-tPn&&g{gv!Gc<%c~HHQp1BRUX**-UHI}9(YbXR@vf?7s2jmd&3>u=DNd0 z>W;(+H#FULLx-hq=-9~(Eq`7i_vCL|6FOyF%FH3jaQ?yg%lGGfplD z-0p&!fiCEk&Eu>tFEMq`ON<)!5}op2Aj|Cq_cJfBVdM)m7xFl*r!zVoa>n)1&d4l& zj!9n6aq94Myd3kK_n(~*>&4};6GF#0agN$Eob-BzNr#^ybM!M97dxW!Ye(EW=m@n@ zj@VxK6mQ+1qGI1u9`}5T*?CW3L9T2$90Vn!7pnIx4Jf7HN z+(vu6)U`+3gvUH@&tte5Jw|$$$B_N8!@#?CywAhAU+wJBCBhbEH*N88jx8>z+hRoU zBSc(&gpK^o%9Q$tSpNPY{7*ha8=hNbd8rM|JZ<2!&j#Oz*dQ+R0ivHhK+vWKaMXQ( zqw)7K;lX`mFS`%(_V>{*;vQU0@1ftUd$4G+My_a$$!D!`YLYcv%I@Nu=UpW4y^E|t zcafB4g)j#z?(3{@q${5r_-%DAnn^Ngxt7=htqFiQ-e9W`I{r;h&i^7Fh_Zo8BRKypEa-=OJUH4>88_wCnJ<lkEy4JM6O5qan;np3Z!%Ze-L_~kMx zCtt=VSI!L6xr8L)MIJ@jT9tNL-{e*Kcb3V&ioM)kHat5EOPh-(; zK7SN<3O(nY!j|_ZaeL@VJbQEkPb4RB{mgNmr|K9q*Bpa$*ij6haujwikD$Ek5sbfa z7#k`N;n4O&*c){aiwzD!$NK<&^*(?jxA&vAVITJG+lMdldm)><7kYksuw=jr;Nh|*XfGP# z*kD71SS^OKei4T4Tm%-m5C&5hV(jw;XxnZ9VouG+t<-rKwO}6bb}saL&4shc95j^7 z#f_1vsn}DX$JuOp2oIRTV@6YuX*L;a$|gavW)h#Xn+U@p z6LI;@1U#u4kJlTAPbwt9A@jo5sNN%V;bZIU2Fnqp-YgB(QlTdW4SP z%)AkBvL23~wZl-bX&7oh4@K4Rp~$crg5c`GxVvF6mIV*ubA5yG{PsXhsu+L|YXW7^pg;0%_QSa1zSy^-FYdqRbKAZ80M~j$%;^P>MZIw6O;2po?ujAib&;H+gPXH- zFyK`Wc(?1p=NkCjd2Bam$h%>~Q*9p4)kezhu4wnY3r3CYg6a1=V|HyPunnCsEbu>Q z4g3%BrX68l&;cu!bU>3&dpy=|kCErv!8@rfh8VQPJ?Azk(`tiR`#GQNrxYRMq$s;D z;mk)Z3|+5b#` zp^65v!iyDrESkF?7W{ePv2`S(&q+3FNgTPIoUnDkGqd73Cj zY)cR=2K^P~xp88=TdcV4V2qeBCR&_c9wpxQ{Vm3w`Xx%HMv6lkeu$IsT^xToLhNnu zO{{AT7ehXWi5E>m#liEwh#cZ9&W#8bKUoBcLkt7OD;++G;e47ybypNetWb!vy99_! zW8RC4Y~G1eSNn_IyZebb@oz;}TOV=#x;J8rj<;x&_*(33?tA#2)tdMZ5L)#Q$`y#R~~mVv?<;IAQG_@pAXuVqn}YvBt)n^VZD7IbCmx zo1;y{!}o58CzczFNB_Gnes;JbKGMA;uC+ZcO1qsEUGAR}Cw4j^dRrb9b=w^lPnsVP z1GV;v^~Sr!L9IJPgUj2*#f_WAg=aU4`qk@1o#Si7qLNkOn*%Gvy?IN;PP+_6uk?lD z^v(0d&xvzH`I=dxOSFNgwQQQW;fEl;n6EEpewiY6pD{_C@o~JkO@FL-#($J}WBds5 z=If#2_2GlXlP?E|oBHJ>WzZAF+n%1Pxvu~vHu>$7UxZhdDbfx!j%OIc4)f7aKmK9p#>uqPxbmM(gt@| zOzGNQ;i#srn3`4^u32P-?1-qNwgkXt|5OuSs@Kw@B zczLs*uun2j=yG$g@Iq^tpldopIHfsScz0v0@K1e$kbQlU5YswEaJi~4Y-$mN+Dp@f zlT8Lf%=uYDkNP{}z$Sav`t`*BFnU2s$w7n9`Z_1-|i-~ec~=O$9o6~onH%24ZVcLX5K4MFl3_&T) z5*AI*7A~C15v)9Ng`4Sl!uIY3LSMr|A?SLMF#AKX;9guJR1PQ;`mQY(M%}3pdWBR9 zr8QN8^T--Oe`~Gq=0Tm%=3BimySYKwI=)HRysKFtJEhS0qeZY+sf3O_)hNhMjkYaO zr;1#4{*JT;W$9|t96wEZXsAW;Ia(yWDxu*zQqq4brKyW#G%QO-T9?{Ttae+v=hc>` z&ud5jQrpq)v+XJEzYes(tph!u(UI~KI#S=`|Iw^AooLPTPP9(mnHK)(OvCqgq1x6i zGzo2$Hj; zk?!t$>E_!0Y~S;|f9z-Co|!pQ=j^lRuFpodtPwCgG!kilN22S)QJ6D!G&YBh#*TGk zpj|TtlP-UeD2Hv#-U0qxBuV)4*PIOabIMp~0`xp*=To|uA} zE!FVbMh(sr{=>}h{}8fnD#lh%#gz-w5Ycfu8lO)`^J(g68LN(uIvR*=(7>%LnwZ*6 zLi|e!S{i_FJpTVb{EJjGaMWlfjJnOj#h0_NM}0Qb;%1{>XAbVw&k=m7xv=Oo4!9_>Uc3PnSsReQXCwSSY{dD?n=qooW(3%7#^ljDxbLTf zoOxT&B6SP;Zrh3;wOjG+^frVw6IzV>+tFgc4j8%aK>4(tm=LiOTUYLae*P}#?ca@6 zA9thIr9Fshvlp8l?nV0GeVF3D52w}l<9Wn>_^dbpm)rxmxL)QP>?F*VoI*tEDHLovjU44^1n8cD;rlZfe)cS0|2>PrH_qW? z$Mbmg@I0dXUqIB03ve21h{N87=&o@Q_8}M1Y2hX8PPhbX?aO$ba~ba2uHa7D6^xo@ zgzsmJ5G)(v#BU??nPUuZV`E6~jN#kL1cS9qgs#E_3CSjC*X1g(_A0hLyozHvS7FfS z8g#c@!^$VuFhX$+4TG=4Y4>%ka=eb(it9Kv>IOdO-oOsG8+coH1MMcgFyA_hPtzdXhXuguH;MCR{ zLzh_N?lo&vMOb6Ta6bD_A^xPFLd9Kj!;)YR6-4K7p4LX5t$Wggr-l$iw z-Tn&24_~2k(ko1A?hYYt#MBe+=;!K=Muj^(dwO7t&@z5D@xTSy1FH8PST)KMPquj? z$I=sj;ylsypRnm(_UyyqpyiK z)B?RRy}=u!hWeoSMjyee^MOg24@P|Pf$x|%n6&*3tb|6hHu??5{CtD;lYF7K#}_B8 zeZ_m|i`jpD(fU6>1n>95c3VHxCHY}r6Mw`{^+!Kle{8bzhjFsMVA=)X(bNE3I}jks z1z=cG05bmu;J8{K{TNPqPIvo^A- z&n_5d3Bic^8H~ztA^5l@1hscUkjxM~t_#8XenLyD6^h&EL($wV6o>Lc!Pa5;rXGfY z2f{GfDhw0eg`xZBFjNf<$4l*Sthf@663=k#C<;exy9o4`BCtg_0#~gfU=tM~_)-xt z8XSoYDlyCk)PgS&fsXcERV*Iv(Zq08IA2ibA0@FG!Bo6f%f_s3^j^Dp}Sz=<;I|M^H|)P z6pIF(Sm1gr47_9UurLmg%8}ZoZ z9goWe@wnO|0VgIUVAk%-Eg7CjhH_6be%?vOzcMR9pigu;1)8Fx-$cRuVtXus|@r>%|Np+ z8OZ6A3CmfT(A<-Wm>Zdx?Vbty)J)WT&P4w{Sx}#u1?3zT%2&q#gy1w-&@k zyYBg-ugS;n_4&AcIv@Y6^07T2AC5Ws$oQ6z+Fk{yRWCsL#sWB;DZm!%0{rqXz_siG zeEm{@)jbMfF|`nH*A^oAL?PnL3*r8{5NA>fF}AS~(d~<{bX*bqmKLFnZV?tAXuEXJ~p#fUvwjPVx5IOkOikHlic*AyeAr2-tL!2LN2EZ?TU zhjR*Cv=UPv1y-aeU|y#{a4RL!hAELWTZz|OlrTJ_#3V~4;ysmE5ifXv6-u;iQi28j zOR!(P1jpBuV7FcgaI*xz97^yqxCGO3OW^Ub1RXk*V*RL6T%B7AyDg=#IaP`)_e!zC zwG_=FOJQGFiV6{E{AcwQOiZz;pdlVzB5w+wxq%1{tehO0Sc=>EP8rmf3S zH@F;Xn&sH3U5?WS%VA(tj*T|u80KA$oY-=lP?qEKw{mRnBv^tYD^NYN0(HK;T zLn)O=F0VxIAC=JRRE536g=q>F;mRuX6I{ZyGgUZhT7^&cRoL!V1@E{j)D=~s{l_YF zZ&{7zeXEf_p&F0oR%6EcYQ*YR1BTUjc&{4S4%PVUSB;KwqFiA$N*k-;)T9P$y4Rq5 zWDT|po?*zc8noPAgK5WWpk-Wx#SdyQ&Z!1p0&3tKSA*FFH3+S*!N@-~Fz8eZ=fSmz z6wHoy^J?L>wicK7)?)gpT4Y|U#bzt9-l-P718SiiQ;QQhwK!K*3*B$EnAxfh-+R{K z@yI%ioL&d(g>`6LSBD9E>#)Y44%?0Eplx1ak!`J%abuV}L#X%VNP`T+;x9?G4B~*np9z z8nF3_SiU37O8ox30b|@7P~_i$v*BXfga+)%Zh()n0oAn)X#S-Et^PLPL+eIFbZx}B z{*CB4vJtkE8qq?t5gX?<;@+}GcnYq{n{ADFw!abj#~Ly2Y@_fO8liow5h3P{=wjO_ z*r1I#A~-AtK8@HVH)483BR<46!ZNK9{qh=dTiFOjm6%sGV%FD2EdDLZG*_WRI~C%( zsG!$dg>M5@I50wmkZ~&fnxevB4Z(exr9%G&Dtun5g3l@yHm+BpOh<+FJ5})9C%BS_ zROotKCA7OL;iIZhC-^Y0OjOXmsY0=-3Tw<&aDS*my^RXpo~kg!L4_VpD!g}9!P`TH z&E6_h`>L=lP=!FM@FPTpVG$~*y;EUStP0H&1h+Cth2yCz{7qNkbe0MkIV$wbS7A<} z3ag7%SfW&6M5zijWhy+V5c5?kJgHXUXN@RRr^1nX6)rW1Z5u_sRVws*uR@G4oeyGP z!v6cH!Z~41!en8-!X60QDy)sLr=m{Y0+yGVsa1>*YTiS4t+aWhrOOH*N1iVC+ARS1q#Av;=ytVk8! zhN*BXScMs~3OW8NY^l)bKk ztC0#yLlypj# zt6&U0Z9sr!1K!?jfb+!$oIB9~wF3=E-y+^g!5@lQ(0~D&Vtzsc42K9_YL5n-Y14pJ zzw6QIgLucwMLUsOkAQ@FbPW|;BAgW!dgSd9?aGFF)GVpT za@6DDgnC2|sz-5`dK5LQN7R=(m{-+dQC^+k&DUYy+d8Cpi1z7O9dz#3;k;2Dj84?y z*q%Bp6m42l(Y85FtAmt2dB?{CXG%n@ziLD3eT6K&#g(KfCMs6`LwT11F8bK~_| zWQaC&`o3Bit*gbG`L#$=t3~n1R?;r38eF?t z1M?F#xVlrc=PPS4ct#E4$JAg;uNq`Fuff!h)i6|4<5glcB7&+B<|O(6%W9mwQjIZs z)rj6)E%?RN2vDm=yFt}h)UFx_zg6L6SrrbXRADZw(9F3C9)gcM>rxd04pyP}`YP<2 zQw8&JRdDMmtcjSfuf(n#(T_z`BGA1Ov#l%PX(al*BbAuHLG*KTDsgsfC60Bk6ui_5 zbgQmFcv=NEvI1F-6@Xa=*|ihEv-PAS_RVjRlvD<1@<+Rqg{46Y(fO%*SQ== z@0G*%OgYK~_xJnaa{OlOoixknP`J^ zF#lNzBCeKT%%KvTT~&hDQ%jK6rv&+bl!6tn#LHMEbUl>lW}$@hX(fgUKj)_Kcd~`w z)4sJ5`;Kw`#PK{I`zl{Q;1RrW!YB4UnDTawvF$~TX zWBJx%bevs`K*5Sy-dy-#m4dk(R|LaXMR;?!2pNLKT&P`yqnca7ZDvn-*eGSph~w6`;Yf08g$JKz)A!H97}B zTjbz!SvDHNva#T4Hm+UB#_LVlh?#58Nrz>>baWTos>`Wq$aG6XcfqcjwIdB{G}ExUTN*SQQqdtM z74i0|FgTxz7VA=BJRudeEmJW=nS!%HDR^d)0`J2q@K}(72Ln>D?`txKq$DH8IT@R- zBqMWEGNdWVFl{5&l_UwDFbRLnlkoGP;9Jd2f^VNB=zmB=@3=&`*(YMu*+kr1m59=j zi5UDR0ZXzHuvLuLwuo`t0-Xf(nUa9KRtdOT9FM+!@nS3;kCwaRv0Wn`_8sGqR33*) zIS#e=UMbZ{(ISjLLJB^Co`#X`4Rtmt!N5F8wXIExsB9f*O$ zj2Im65`(do(MXY_vGZOu3im`~frj8=wU0)&@*SG^y+f~C@6c!4JG7ee4$9{5@G>_F z8{DJt>2eeL}2v32!yIf zV1C;O_!NetqgOaK7=`23+Hkmz2#5c-FnGp=!O|`ad-TFEWOf+hJBMLsX(&qGgktrz zP`GUf#fMR$81X#>3*tkdZ5M*2M?x@ZW(fXu2oX6if^pC*82>H@I^!H6Px> zF8nRh&EMk7uD58e_7+W=zJ>TJ9m1XyCi;ZhTq312u}LW-*-OTh%QB2s$_N=Cqq;r_ ze;9 z;B1yZcD?Y2hQ7aG=lR2U^MrgTXcXxN(Eq(=OmsfawLQH48f@#ZF z*p=#r;kItb+T(`P6Wq|^n=6dNT%o$<3az!Sc+lS!$rXaj<>`XBt_xbVbwO>q zGlK1$#TdjHlO{ML<%<)xhd80|x)YYJa>C1API#|)iE%D3vHti=9MurKu78d=8taJl z_Z=~AlOsM1a)eXW3oP?`0mbPT*gfk7vRa5-6iE)a{lEbUTO9Cfr~?MnKF36FVP~IX z!0hMv-QqbC6YX)wQslSLu}9uudmN~Gh6;~oSaq|hq^6V|FS`Sm<__N+2ER%4Wv#sP-Z;B=|_+7XRDYFd4%E$YiPJx!}zE* zg4G1y>#G%7&!_Ua&yxSr+*D&m4+KbNF31hv8ClOlvQelSRDR{61Q* zyN??^@8f^D_n>2U51!lZ;nSdd7+Y$FwT@;uy59`vN1NeX?Ohynzl&u@?_$v8yD0x) zipOtEvFMa3N~fFR*#GW8C1UEkF5JPp8F$d{&u#1py^W_=ZX;ptZPYZqjh~UX@aO6+ zd|r49g)MI(Am%2n-n@zVOK;*!o13tSzk$hjZXjsc4N=D%a7?_87I&{>^NQ;bOc3NI zT|;xTYZ$ij8m4x<2F>KFm~3_xeOF!;xnZt~v5E<9-8I4N6(*<_`DIKJjnUQA7!L#& ztW7(?2a7jC;w>ZeTWTbH1|tkLy8?suSKxO0GGba^M&k8L2xxu@w~Q}h-akW>UNpqP zpBIpG_5#L#Jr7-j^DupX4%T|-aI5w#b{{y4VdZC#xbqCQ7M(`M=F?EiK815@PQfMl zBto@LA~@Orj`Iv~BIE?dNGA~Er!Sag`UrMEjvk|rW8I5mFdTRccWsX1diSHyy{8AY zwtA?zdIVSg9!87vhjHTbA;ca%gw{0&F?r8H%q`NzjE%Y&ly(61S_j||wIB0l?MFhu zKFpl54>oRlp%}Io9iQwG&&wW+y|)`ZTkl50m0j@oz7rcy>_mO-4jkIE0~rO|F>>8@ z>`B~)I}5hq$=j{4nYtBM+_yk`_!e}0tOMU}I#_gPGa{O9#+dV)U?{$c1?g@?iDCmj zZ`gp3N$XL#U_HDkzM-kD!vNQ{@Ex=k)2-IPvHcnmchScD@2he0*lL(ptb*;9RWM6i ziDQdbVn*-^d{$cl8<*u6J8(H%1Xrv}n`Jm~NegbDmLgAgDLxl1!LKz-@F8X~(q}Bj zbMHmiI&u-3+bx7mr-kTubpdYwZ$2uI%*W)CdDy>x9&X3Y#p9WCVdp&uH%83CE}PjH z(_uD>ugrqc=b7lDI}`T{X5iP#8Q2&BJevk&yGZ!iPeR9gn&{M26Ms%>h5LkO7mvoGu+3PsxG)9->qleMw$T`zJPK`R zk3yN(NO%k$30-sXoww--c%B#zscabh*ABz5sG%^LIuxmnL(r+m5X`wY7`wgkH$xebF?s4^FD}LC$mWZMsWuG0x~E z^0)Lv?)IJ{2GavAX7)fU_wM-Fw>wI1bwkkqy5j1Au9%nI1s@l5!NWJ5F?MKY_}uS= z34c4nPOl?=6?DKVtq!mXY>(8D?eY6TI}B*n4pa2oLS4}YYAXbnjIGgROlxFYwZhZp zt+3^U$c3hC0k0J;u!zl(KDs&9STz%I=w_Ix-xRlto1kD>6U^5CCwVXXD|Hz8N7DW$ za;@e6l&pMzNY-ZGB_rMcN$ci)le+f*Dg}M{EGkPNrHmjb4$q{0r3 zQbT3ER2^C;B|oZ_p6S;}TeYgC=EJHa>z@@;&&+bk$h}O;y;>^u+g2iJO;bwyIw+(g z6-Cm{;6iEc!vd+3UcMB!AWu5pKUZq;Ia|7skR^R}$duNc&yb#Ir%PF*)1;q&Q>0Eg z$x;{3B&o@@L`k_NLGnB5r64_bN!_Iy?mv<4L;I?2yf}1^=oOH zo|oi4&r_=J# z_7b~3la^IIky7|rT72J5^4V)Ebnb<7*a*UC* zZt4|Dz2KtM()fZDIr^M*H089^>hwv;tp5qAS>!QE_n@A{PKTvGf^9Z=>walX)4kGO zmtE5Sl{=)(pSMagZFQtBb2dpi73(FlJ8LD4DcVv-_DX4|;c`hiL`zy5vsel`vQX;U zb-uJCV2)(Jb(WObWQO$HNmJ^#TwR**VX8FMN==%A$71r|*fGu2)%!K|OSWqEKe1Lby{VR_rR5yWUBlHi zXZTIf9IkbGm&WetH5wf^XKR#Sh}5Wh`dXuJ#1oB+6}L4; zbvdRHx@oCKl>IP`Gig86*Y5FBUsSh9{o<0D(|_Me^^dZ-9B|w}A;7y+`@mk2Qv$0_ zZ44YR`eNXg2J^tIcaDL-p9BP^oQe(4wUoLA`$F1ckX52F=@E67;xJWl&;RZBVAZD#&N(=b(KV{|jm~`5okB+e8li z*i4SlYAJg&ycN-&XNa3 z&5=#}%$Ey~E|fb(EtW_0(UJ!oT`qr%SSi2hr7de8Su3Z7t(T|t*d!Yq)R7+sZZjGuhV5UN+8tE^-Gu$lZoJ%0e_Guh4grW()N{HHrZYN zxWPlNGxU^`9K2+k*w^yPMsK;k+Z)+H(^oFr?kD4_zkJa(Kz2?Jl!HD6$-ccQThDwe z@7^6O_qY)vzkU@e|CbsjKlvOkH};N{N6n0qm+X2cueug3&vcEEyC%iT$?xN2{q70! z5A{U(;Fcsg^is0?^LdIq;9aUbqB>3P+Ac$`oRBF$Tb(7(G{~02ALhto0(0dv`FXP2 zuY5UTV4)l`r$~ObyI9_LRUvnBQp!(aO5{#8rSiVE{+MN;y=oN_I4>mXCPV z$h}i*W#{*Ga-S{@^3f@cvXiz-4%2@x2b+J8pLl4zO zHm60q7Mx|{>|vSn3Qb~@ROEyaJv z>+g1Fc;6m0aqhvXQ+qNatS5J_=*7akUR=1pHy?lO&C*MK*rQ!vPPgvM1;hGrj#od9 zMSnJp>Cc!o19+}@0Q(#oNT)9YImBp?(3}irk@a8>8a9M0J%{j+=1>|$4duaA!?-Me z82jxT&K%WnUO7L4Jz9*U^}Ug7*>@CoI*y{t#L+AW9L=Be#;{e=82;TbmSxJZ^gT3= z$3Kr_?@Qz9-f9BJn@`}Qz7wf>F_CH$CUK|#B%Yr=nO9;bQ(t=uSL9D&k3DLPtyAOv zlmAim>p$+fHkFYbrm=(7G|n41ox7c;Q*WX=_xP)G{wxi4jMiY(3Qg|K(q!XSiF?W= zMji&+e*)*6pTX@-X7a$zncUoI7N=Rw;;;U*>HcCi7mc06_}6o&p+1-Qg6A@I{yhGS zo5xP8=L_xMe16`tfKeq2cBJB zO=sUQV45#^1(iK>%O0lEcdfnw*y>f zae%kG=+f!FE}c6aq?y@4Zs~A{9ZV0=vF%|FxpkN(t&T9^+7W(hrpGqMdi?iSkA)YH z^2yJmoOkXRlfE9~%#+7y{^2;|kLn99fj(<>PcXgW1fT3S;0lESOShclmfVvJTz85; zQcrQviqjkucbdHxo?&g+8QRY{OG)tG0{=TFm=fo>YwUU6etDjc1`AD)-34y%X~>@D zhV*H7k!sg3^1;80ED#*H=3g$c%dyLBT639MyRYz0;T2krGorSx5u3a;;)@a^P8(=U zS;v@@tc_`vVa&!(Ce&DNLW7$^yA)-@;D07eoFTYyXRk8Y_bQ*gzel>WA;07;U7Mdyf1{1&BVBzGOEINFX$xb)vU2>CG z``;2=n_K*4ev8i&Z&AI~ZHCOf&1r_W`Plz9Kfk}tnd9#8^u9Z^e|Cp*-W^7DGiB%s zQ@Y(S<@In=uK8)oj??Z6Ue;Z1bh*p&lDpj9&x|SS%s9c!Oz7Cn82HbOm74e1!r&ge zx!)6-#e4ia;695s+~=!%_jxe(K6^DWr=O-d=btcVxSKgAmYMTTKMUrrwO|iZ3(kwO z;Pzh@JT%pk`;J&r+tHHa3oZGzo6xr{dq5qN2mB;Ipy9^{{5<9%x9oaIpGOb*J>?-M zwX)*6SynuF%8GjKR@_-;#rb`$*+bi!**64NF2tH6zgW|E+#{;(e#B>w9`R@LBQ9=X zLnGMGP2Yx*&NhrMvSD~PTRJVZ<@w9DoaJZB_qDb(A8f}V8|-L*$BrGs?RfC39sR~V zX5-Gs>}BOZ0VoAyL7D4wwR=@UN7c*2#fpR#_&Q=Zj-%17Z(wS#m^XeJ*D1>#hr}kodPP||*bfxz6DYfV3p3kXT`kV$A1#|B8b1p1@&Ii35 zn5yN#pBEk2-P=KEABC>5*9(4H`hro0FKFWRf|E;MFrm96*DZEr!Z}Ayc6X#nu_L28 zzvRbxFWK?bOZIkt$vGiUC1=6!2tro}q* z?{{bR8|T8|TV2@it_%MKyD+WMh311?IdioubFa8^hqo&;OI$gAcH3zo!rk%PsoA2|cj)h>@g?clg-kVi@e5hLF!*ap1duQ)M z%OoGJ_~FA(Bj51)+Ba-@Jii=QuNmiV$=2R}w@ z`0>bIKmNVv$4m5MZKWUQcJ=4Anf~uet~DjL`c|IuyW+2LXa9 z5w02g-;q}{AQ7U%}DrDY%o1_yFTRUkWe31XcTM4!Du+-DZVW`RMxTOy|IWbT_P z(`TE^`s*?~zm_>9Pv(H8WQ%bW?-proNQ&Fe+$3`IS2AYcTMk+*Sa`?Y@`3eRdWF8F zf7M&MbPDD*^G(UCEk}fK?eY+s8iWWfZU{reLl{&Y!e^aA zd3<^($8QT|hDj**yM?kWHI&Q0h0=aN7!~uw*yd0e2i+IuAI5ftVJvA9&KIM?xoSl? zt4@RqwnjK}g2OqvESv_dBj_+8LO}Z>g!Vjwo{uAVGdzMTDkJ#2Z6qH}iWDrzNSd9E zWX}dI z{*DWM-*H)v(3}5w$6f=XSu{JEcXvl~^tEVuI7f3pd^FG0N0S|6SUWj}&DX}T^{E(s zwTfX%U<@ttV>tU)408s=a`Wt1!5WAaJk(fje-X=DQL%hhA*^K_Z;guM_9b!be=v^k zZpCqvTO70F<2bV}j`!NdGhtjjKP-!9lOyp$107Grt9W`Q#B+aLJlnKO;KQ*AY_F9- zy@Lr1xS7Cu=LEKkNnrQN1h#CED0I4sbeoq*on1oDe>suoo+h&DZ6fCsB+~eMB0YO0 zF>;!)wMq2QPvVt(Nu22+H~{fUJXM_}G=9lkH!PVBbCQ|AEtx;hC$r@vG4&P8X<~h2 zve3?^@cpP1o?ei`ik&H(DcA#7Y*Og%m%{M06oxgV(6vn}4M(I>eQqj?wx;sP*;JNW zrgE`YDlOtu8B>wU%723Y*DsBV>1mX;(|Gwv8YkRHW7P9BE_|Ctuk19z(n#Z+cIn(d zBAusar}Nn6bZQ%1S~2?F_bj zA=rS-;Qq`EeyY#lp%$5pACSrJ(=)kfWhQs;&*XtinOtv`$?=||T*gs~_2H(m99gM&!_3%3;8&97gZWVeq*eJ~hkX zffqUK6PQEa#2jjr2qxi|9R6sNOO1iK+^Lq!n|}_p)5pea&UJws{;jAddqk=kf2nJjSih<3-&(_PLP9CwKGM&OVR3eDY`?mB-lZ zJmyyCG3`elecI>Ka9}xSU{hN1ys!{V7FBT9I~T;y^aZ1$E5~yU7=tx z7xK4%A+w_jX`NokxynLjG!$~h&qBU#UBsU~iUjMnh|4Ayan;Ns&d?G(#f?Qw-c!Vr z$BWqXViC{XDq`-#A`WsW5@V7g?w5;rAX=19FXG_hBIeZ;@xqrPwrEn!Gwq9+-m941 zhZS@7#A2@1Eas{O#r$toG5>BZrtjWju0B@G>~qDOf3=u4X2r~TRLtKF#cc0U%%%aw zED0;7YkV;`Wft>&Q8ABK6*KpJF~|HU=I&++nzUEYw1 zX-gISZ;kj(M?s(63ML&A>rN;bd|p9wV+B{-R`8>_f|qR+{A{nFwu^#RUJ6F}E0`Co zU`~`Mn;`a|uHd{pgq1#uo__~stOvH7* zEZ94SN@|`}a@|QKHy&4V{t+d6=_;AIN8Ft`OTVQF8ZuC3nqI za*3uWJ5|Y)iQ>MD5%+7Dk_QHg>)KnKUpH|*J19A`m8fGACHwqTu>7-v){WxXt5z_e zM8RPNg7K57pkI=L`OykihbmYcD4s2E1+Th^axWB25FDUo4;1t@Rj|c11!rAUaOWun z59ukmZJ&Y~+Z6n{PC@783eH%d5PUBM2mYtvk+BLo3{fz=w}P>q#QK(kBlKImSD%ad zqgL=wON!Ydx0t%g#e5T0%qqE<&Af}*+PRot9~U#hqL{aD7IVs_Vul$MQ}dvB54RVy zY^`{2mlkuW>pb`%8J+|w@9!gM7t4I#1+0p zRCg(2yT?V0xmU!)CPn;yx`@XPiFRaLkr-1HanXVz?oclhTyL?>fFcg;T*UmQMZEl_ zknO7rX`ElklEgxe2`!|KcOea46!P@LLhiaz$Z6*a`QeagzqS@~#L7ZGo?XaalMA_U zXd%yZE2Ks9LRx((pmAk^;LZt-Y;1wx4i#{PYXPHe3OM?90S(R<(D{(y%IXv_UaNpX zQUT4!7Erry0e`kBpxO6)wynwMvD|zH$K>;~e?GfA<#WKpe0I8;&)O6D^x7rb^3|gK zo|VrN6Y^QmFP{_I=2Q27c{HueqfKTW??>eE`0G4sJQZA}J9)f*E{|;wxtu*H zmt))I^554ShLq-Te{v4L1?BL>OTl2epTpsXIoxs}hZol52>&^U=SJsnL$@6E|08%z z)!E#akauSve;cei&J#Oy7^fgJwA&~dt@>CcP0%gGubvJlXn6#`Sn>Qm)*?dt>c;W*_6qs zIhhO_oynJ-GkNNN8Jwid5bZ?FCB|8!b4O&3i4G@2x*akFn4d)uZl;&K`{>`P;o zRvKqcPUHO^X-pE_c3G8c`K%7kA;`IrfH9diYdI_KQTRa_e1F0&K9^o2O)>csJ~6vr-o4oT zIvvZH^|6ed8p}6=M|JySjNp;Q@Q0W1+s$IwQ!j?sm&H&yMlh;c$8b|+G*3lE^P)pE z^{+&8_4a7?n-R^lKG8h!?H&JSzT;V+cPza3j^oAn;eZ%Nn2GU(ee-vGS`x*ZAyM3B z7sY{RqnNNRN^rxYSk)nl8*3x!6CKI#4v`#xIg-n^L~?_AB$s!Kl6 zE&7Ep^>Z+PCIz#rb1-{e5#zkgf`>jOSg;3!xvT6go4tKYiwAGnLGLY3Eqp8d=(mF5 zNNOgNYn@1)OXSK8f3MlLX1?L3*P=gEF^Jh`r`CohzH(A?jH4{wUNhmHpijQ8NQKkodP z;?5_}-KlQi&d>$!oYvEwwpFj#5crCdZolG=Ew6ZK{43u1?Zz9)Zq$F~My=y+>^j$t zv0dD#SL(`tKCUz|apkAAu3S6ZmCrxBP$BXPw0r2n5&K*?X_^a1wQymlEN50YI@9f> zGq*2rW|QvDv@COC_cu<0neN1LZ6~S?apJM}FGbwsB?HV}GGg0Hz8(LPFMm4nV!R_4 z*f{d%0Y^TcE?8VG9LbCqoaFF=md9VPV%7_e?(l+}3mkaf)q!`;2wN!TyE#y&i?7nO`dYt>ZgLC^pv_aPx#623H6MhFn8q>{@3pbFA7Fi;G4%RyZo4cmOW;h-jCU$ z+>Rf-?3i@Hjy8+!xW1bmn<{Mi%*~b)PTTU;TwC_(V9T?D*A?@^hOLg-2#%)>H;I_x z!PG}QZ1;%U_CMmBDUaCwmo;;vt$Eknn*VLJX52_?uKr-fSXyz)bt~RkZN;p0&_P_vr_Hy4`o&`Wdb9X01Jb#pHMcb@~}1k=m>KJ9hxbNR6Qf@3Q3c=+Dq zH^X~8xbPkmJKW=tY%}UU6owZEy+#+~Ykalj8tpq??K^U#D#y-iqp+Jt&DOjzHZAg*P7^{e6~iuAOB~hqG*Db%yN+ zp5gyqo@U~N)4b_-isNRUqJPv$j$VF}CK(2Nr(-}>$qD`w-y(jf^jUaXpH9DzbJNx1 z{Mhz5PnsX2qSrC1Jv~aj;YVrirpG6f^#lXz2#?J;!f6qQS-$u%FC-n}uQi9bFZUn= zwjJb$QeF1Y)#cEJ1MGd`0RQ)OKf^BU=ZSy&*x}kfnzz}(`1}bXTi+m&Nxw~;4 zn;&0Ciw|qr&R{K%eO|+mQ)~GBt2PIp)u!6_)tr2OwHR-#V&jEX^!l}uTQ9EU=ie)M z_RYtuR^)GWpeyX{`FPOvL`g24sn%RQ$ zIh)$`v-t4PEJjz)WX1lO{8&DN^}A;cU4;XS>+xoV0K{=S588{Mpl}_I4_}XijCZ-+#1K`;QB~)L1-DjR#z&uz2_sE_^1Pnq4<4|Jju^;=6Lg8yza%tt0lC=|acNy3llWXZpIRGhJ46qS+ANq_aDc+31ec zaJd7qz8xsgzrC=X1dGh69c}%iO>WlO6#up@%2;FjsHu%$_HM$!Y4Rr__%{= z-g|um|2Vgv^RadOpk6KS(yE3>zpLT{ZdGzGRRw>QR?a71D&vRjOL@?K70+0!a3) z?cQf{_nR5qL6Oc6Ca3WweyLpVObWlbE1A13P2vVq61k#(0$^!5lIWE{@pCxr0?y-*(BJcK*Fyu^2Cg7^d;$iGAd@HAI{zW%Tu z|891XUzq93dkpvC7dv_LR$njhefK+6`BM5V}vDd zzke_9#>{y;t=+uo$_`#0xs7}7-@@mxP5edc4gCBSGp-f6hM%`IRy zSBEX;&G#P+a_}L=<)pE zw=ulAYBYEA8p+#k7|zcO9m=0I4dM$62k;1&{`}3VzI;Oe-u&Q8T^^I$gEyS-#y>6A z;hlSS=0hHJ;1g5Zadx6DXLGdpq>iolu$#^Kum%5QU+(;r$&P%L9clAXHX!`1tZd>- z+4jmOvd?1e)45M~WX;_gWoPjnf~W^nT1=7ETeyf>`P9t48{Sn^Y?vZrN=yF?X+EGDcHsF~*@~{iWV5IDlg+Z|E?ef;UUopt~JR-abZi3}cLr-^?*uf2Pdn zg?^*aVATtwHhX>=8Mo4sY`@+~vLs$t()z>ziO<53l9##@B|0x4X)T*8DR(iEtTbCA zNf@?8Qt@SvB)#;IWQ(7T=0qO0MgLN|izNlbRC#J*RSWaha%$!$^1R~pMDap_9QwQd!X2R1d5(t8aO$2r#|{S$6VeB0lX z+&}b4(&E}v$v>l4l53&wBFQM#f)#aWk=h$ zXU@|)GKT}5nMH&SGivC@-u>&rE{yNRx^M5z9DVz;+lu~7@8bYAW6)r>c-2rg-F`UJ z%^t}bAB|>bbjGr_v&XZOhbOXzNJG}HVG0}lSHi}PnacDwO=r*CXR;tZn;E>A%VK*j zV9n+)Vl$5|X4|4o*sg|UZ1JBJtm|k~R=92rTjXrU@^aR*R*yEaNu9Q^xl^~XNftX; z%Ya=hSFwl9duPFNdt0)W3lFe~#}2WXkw@65nq%zqS8EnN$c7DGc8a;2Ji{tu&#_PD zw(Q7RJ9h7)J(DClFuNj0CcWas?ml;B?|!?m_d0Iu?l5;Io9e-AS9r21yDzX?C%xES zFK_lN#)qwt`m*?%i|pkCKc@HDpG|HX$foxVViU$+VmkAJ**&um7GN35B(o zTkO}Hz$4lB+9+oDFq&=r6vGZ^#j?G6acreQJR3AKfjwB6$eea1v7RTAnXg+4`x2VU z=B1~xGlH!aaV3K#J;`JdU$fYmwmEEW?_BnIbRN4fJ)d=6E@h{-$ynVH&a@qfjqxvF zh%02{@{3se3OQ3Z7PB)iN|??M1@qKau_nDzhEZi~KgyZY;tJ-pp_1+2SH*Cun!R_c zVeY}TtV2>Avy#;_Wkmz~dPB{0o@toQmn-aB%WF*4^*XZ}c!RYc-^g5M++;6JZn5zj zZ?lbi@38$R?y~Jp_t;dw`|M}b0~VhCkPR(-#C)s%V-IgUX5F7WVFn+bvJrouu{P~r zuxj0x?8uN;?AQ3$%wqZ*CNmamqu0D+Eq1(TzYa99#*-gdfYV1d#rG5AVV{|P;umI~ z^OgC?zp=2Y@67$$54QfnPuA|$FBbOsH|z5658JK%kJW28!!567xY4aSl$V+#vR@1A zk78yk9 z7j^KVdsoN>m+fTlZWt8a4W!>4vtqgBI231B71;V5~J2SM8@_(Z8ukI6Vzb-=<-( z)pX2invO;LXMnw!fgZbN;`W1?aN9TwgBoWcZq;n))X#>6@f;+S&Vgp;T!>x3@Nn`x zlxNOE!07o{8b2TJ2Q0v;P_b8hkA+y`vk({CErP;v5pMlmgxfa8DE(-Rp#6(s`fM@2 zZCwJ#TTAeBl?m3>njmuiQq;?r;+fGhJj+~$`jN{K8M7Sg`mDeYzZJ0Wuo9mfS7Pa( zmGH7&1?k&WsN8J|#XVERtXYkHb*s^5{u*Q#uE9jZwFpjGi|2#P&@aRcQ+3v1rt3P4 z{AnTA?pv_9*;d@N z-ijr!w<3PqHax$+4V{*3N8gg|=rVZ+UM1}izN|a3%5NtgwAqDKXLcc_X%}AY+Kn!^ zcB9YIJ?Nm=BiM1~h)gucoW2&Q_O^hev#Zl=MSLg#{-zR>mbZ-9K`ZPhhRX5@NV>B_=g|HfX+wYV|xToKOBMn&ZC%q z?I>o=KZfD?$M9*G6=H*|z}i|P+r}E5Us_}3`r|lJbsTo=1P&#gz#Kgre0Q~h-*+46 zSe(SM#*^R+PT_IhDSQ}m8jt->L)PL9jvP6Ijt|e^!m_hyDm)9L(dV!u_#6(kIgjnu z=P~*5c^n^Mi+NjZ(K65$IkmP})6xzvnH>%uw!@QnJDA+FLwq-Td=R|2F}C*DkZ+HZ zZ|vbV$N?Vf9B|Id0Xs?^VD!@gf5tf?Z?_}1ggWB8+7S*~PWU&~3Hy&Yp(fr5z3)0< zgN`#i7dRvRv@;Z$&M12-7;?Q`5WU<5CmdZcle^&iTk(64E2f&cqTIt3b4mnH?z1b} zk95QO&29+tbwhcX8=n1e!`CtH_`2O4F9O_AUFD9jKknE%!2?})dm#Uk2Nu_Qpy8ij z%T4k`(jHIz3--kPI!~N#b^+0oED0*Zq#Kw5hN5&tgW_(U(v*zJX{L0*Wc_QI4u zUXYLThS3ghMEZNzBp;-i`j0z_)flvdgBYD z{ud!%ei4Rt7ZH+u5lxRTVoDD`ST68`&j~-oCHf)hmLI~~`NMXqKTP-gqi483D(n2Q z_pd*Gjt#)6tpRxD9RTB!09NWcXt^>F1MC7}kQIpGj{>2i6NJ~Zf{=SS2>YXg z&|NJ!bpL`de%vL*ZMg((uS?iebP17fE&9SIYK6dWatN00 z3c=TlA@EX!phr^(Jo<;C$s`nWPlv)eDHPJiP~2!8hNqLl@Za_@)O&{^sVEG`UJE{* zUO28S2#2{|0N1{gkR~~rO|kIG8*^dqCpzLt@{%#Ser3; zzB&eHZDY_pHAd8h7+h^}83V^&#^&{x;o^81kr~2o_4Z|iw2sA@@v$)37z=IZSmb5K zV)>m|k)Al1jE_UchB!2Hio?u|I9T3_gLBJxc#VmNgIPSx?cyOxiO08V@reB!j~OEp zP`)w&Q%@%#A~pf<>k=^LTLRV(NW@X&M4UXDhy$UCSYDcl{%;d;r$-W;W+b7nc@m<% zlh9q3gkukrP|`M8ux64mczrS?cFCf_PsS)sGPHgqLo*-+u8UHH4_1okM^gkdG6hM` zQqZzfDvT$m;_RkWggc}nB{>!GnpAjwPsL9CGz?vkhHLxNa9H>p|KMpj^e_!qw9+wX zOggrjro;85VBtlkBc?1Jey`JUSSJH8%D{(B83?e?z|h1D#MEV=!>0`F?3Iax>6vKU zk%`YPnfRM3jvDd%tGM1L3p;0Jp~LPhM7w2SaC#OlUdh7SuUVMfCmZ`_X2WA=HZHkj z<6=rSY#Oq$E<9GIaszO2UqQKFfT3#(Um!P{W=E&g`f7^iMd#{CKpR>a$y*n zi?;GyR6fjwRm(hd9F_;)MR{mpDSW;!}>wr}J?> zJRc*A#rea0%xNJ-)?g_*%$H)-9x0q$q=-$FBE3qAxK~oRwwGb8feboJWsn|_VX>DC zmFY4}Y>>hAy$sczIlhnM=(>VK_b`XH5680%!QE@%*!iBLRcC_FSVG%n1j_@20#Cx% z6hhw`!njw2G1>*t9Z`Tc3ks07y8s&;3-B?f0LK*tc=n(Gv;P*rrEeh!g=kz?h)2f@ zal^k5`PqfAR~Lf4E5zOQMc6m82u~Ii!FX2@g6)cMJ)#JI3W`L(RfJAoi}0fb7m*G37~flADusuce2O4uG$;;)Mmd!m&fQsT!|B?iA$!bnR6 zBYhPHN>uo|LWTUjDr~n`;ai9bCvsGHT%!VeBA5ujRfz9iib8`@$mf+JS+EoAtV%K0 zvlQAZ9e6FSvox z&%}Ly%CNgzITA*eIwi z3N~XUBHSynA)*q^vnz42tWxmsDsk*hB~u+R3X5z z3X-5IlqFSRT45C;>Z|bbVHNa0Rbggp!6?+N7VTp-`cJLKbCYU>Y!QsY!__FZtHuPs zYIwy~<62&|UTh9YlV$ji+a=w+d*(T*45&Rc`X`` z*CNKLR&aM~@hzqnwpq3KR9uUd^|iQkw-(ici}>_=EnaEW;db{rWgVW@*TMZx9eTZ}gU{zWd}>yY znH}q4tyhnLp@K6qpv7n)UNCIx@nTy&9QN0vt&QN2IMhS!RgbPA;+eR5tjQEo zAkNF{(M?ki&7FF|X{(3!hk7{vs{em}i2$|ZNbd&t4QW8+*aieh8ely~uo+Dn@NrE8 zytg)>=iUam9Bsg((+wEv)Bsbj23Q6);6PLZ)+IGyOm+j_ka$+rfDyF~h`rW;cJ~^v z{;3G}ZG-3o8=(5r0BWs9NJlkx_fSKxpBni?)Rh~gG*|>i4eTVST&T%YItU?`?Q9LE&(nzZP6I1r4c;x$VAV1WB3Fp8S84EVwFb@2H2AVka4k1z5V}bNlPwxN z->QM-c8y?1YcOG#2FC=WCSs2UIp!KOL~=j_MsJ ztQGk(L*!3qkx$iQH8?a{gTKQyI3e=!)&LELihSKD^7pjJXGa|kY&wefX=~6|ltW!J z4a`Nky#A)f22oDg@6`D8QVo4keuknP4MlnO6Xn{ZRwJ!O4O3CxPfFC-BFbNxr$!f{ z4~v9e>=XKNTqKc^l*aE z$2LMQD08jeD5-}DuXAfd-6g+52N7CJ2SJ5lJlr_lEeLhp5i{^y8#FjLfr zTv0E&7c^kAs3*RnzGR4clP~H|qNqoXqCOd)X}}Lrzx+f!)7{npr?m~ZC+eU6+y*RR z4cITtno?Ng7q&h1>QMNq z4s-9E@gFCE31QZN*$sj>JaB!2Y<&p96V8n3Ht;Cc9Uqwme=9u>^hhm)q}bNBT!SZ1YOv&b4Z_Q6a4W9{&EjjI6Ig=|&NcXCU4zoy zH8{Vf21DnI_T8`s6Nc0vs9O!5x2VCOkJVW8s2c0k)i5mn(ib`_RYRzW+z3YnLyFx$5ZMdw7{w!aG2 z>#LBppb9r9RpHfuDm)kbrG}rCh1E{;y7D{tP$dRXBDP= zQ)0t?CH9pmu{%`>6F(*TpHkxPHYJ=FD$!@G65-vI(Eg>sjz! zz?-cK)XY~PaI^v@Itsl1T7t8J)%;CSg3SpfNcSwknifm#dy`J7@a@KF`!Y7eg$%9Maps4UXJiRax7Ua z$I~%#?9&m~J{Mu?%_2AnyR}f*ulI!=`&QVqFBcX;J*o(?9gDE5sSsVR79uIH5MwVD zBJxxr{%k75!kL9QJFpN@EenzHv;Zj;f@_^r0CSH5j5tt$>&psoXnX;_>J-4@6A4xs zp?f|-Z0Cj}HiAX9o?s`eY|B1`xxYEu+~bfIajc2pcyLY}w{q~A!oDBCv7i|jV<#D$ zOJs11k_mR93~RQ@pg&87>-sX-{F9>X12LA6OYuHjiUnt-aN8sWO_idtw-o>V$j7al z`H)NV;T@QdW!CxlVVW=a^!d=$$%p&T9AkIA$bUEkp~+w z=9w+VKHtR{DD-4549s$oY?zClU2}2heGc+!bMQj&th8Nnpt~yvU1#UuSHB!w`6(FX zjoDb3n~kSF**J0_TQF*}v1(X05?Tm$`TZ>D6=Y#bP!?t%%L0~XVZi7teAdcB-hY|c zCC^0jkW6@5XQI{0OzbnrguG2A{{5GMaqx476{Zfw~9jI7{j1 z6OfLCL+Kc}I2~?7((&ML8V27=! zmlCk_Vgge4Cg7*wWf}EK5M#P{oGp)sOL#oaTg7Adl6XuV6pv;<;*ir2hqdu>czz}h z7N&7%92tkn&Ef;P+K4%a_hRm$Jo7RllZ4+bQ(=pBLcN`5y*~?fQxkmmKsN(MZX9n zG=*boX*f!P!eM9`j!QGb@kS>cnNk0E{0V0M$2tEUffL!6knT-0P1M%pY=Xe|!^jX#+5@w% zx}zw{9itDr!(*yD?zeTvpc`(2f9(d_!)^$f?uPhwZis7iMPRI}V7$6w=?qtNZ|{ow zMzQ}!tP6CHxFB)53r4kb5&IoDL+i3LwjFXt>QraEYU7MP*PJjT$_cCYJ7JT=31+RF zFkj5o4h<7?w&so~n&c?BZw}C}aS(g9IAG}x2Q-Xv!2BQfNGr8RTOWI@-Dr=XVfLu` zV22Ndc4+Tv2VGM;^z3g3?U%NAmt%{HbGEo>Y>SoMZP8kO9?MM6N9ZMeFiOlp2i-p)5sij8vo^=!q3I0@Z+e8h!giQW*)G_i+i=`;8=gJdidl!Z!tw7G zWO;5uRqrjRPTY*VDVyO@x(SO{ZNldV8{v9jBeZ^Pz(LmyDCw~Qe`3~S==k+8Dq4q0 zi`SudqZ!`pG(%$3S}Z@i7LT;oVsqdclnq(~-Hg>(J#{tCR+z%a)D&J1R>8({6_$Qm ziH;5{A?vgf%R^Q`Gjs)JW-Z61Y0Gi1Vi`J`F2l(COEF>ZQn43?30j>uL4&ploc#qe zOn(VvNsBSba4|yU#(2BP7-Oz3!n)0iaQOK`SRYx4J--%UuG0d+VO#*!rTL;AnU60i z^KevrkGdnDiwTS7;+SR*E^nBFlE<@AwSP8BzRW`GxmmDoGYgY^X5xOYnK%(W1Aj)& zz~Sua5Tip3P))<8CDY(^bt=L)PDRXPAixr^{=_ivG()qN3@Pps%cRj?6e3^YP? z;uL%wH%09AF&SHDOvdRlLpYfj;@s6q*t200rahX7<`xr?`)&f(T2H|9U*lnJKOWcH zj>jbLaj@+%4h5lO#eNrK(JXNcw8xG?i(CWo-NXPT#iQXee>A4ojKY5_M&ZPbk@&rF zBo03sfopq4V8ol@;(N$&M1CCx<>_I#(QFuQISoZ!yP<;PH3W{`hrl>^F#hx#jF^}~ zFd9BcaOwtP()fW0&K-az$pA=-^l@aiK0?a+BhR=$O6vNdaAiLvUGEE*^?kASULW+_ z-UpRWdSjnOZ~T3&2Zuv?`1!FHb{y}8!XLV5b5WNsl9!Tua0}qN#_M_7h$wH1xr^H3ZdDstENO%1wSqskObaCq ztJI(N8V>5*Ce{592Uv|0h z4{Ig=&6XAaVzwneS*YR%i&B1P7gXQauF|h;aM>4DSN550E&s&smVab(Dn2mZiY8W5 z@t(b}c*p)!yk%c1-mu1s*DSW;728ztlKm}z!92)S|H`aFW|{V$v~yBEeh8bg`( zl@NBaR;>Rhzr-dhg4p?jKqk)%U`-kRtY@+x8y|a-&4}=2vo86tDHpxj08cO0%=rSl zdftIL1{$tgOl_pr_^ zr$Ir)>}Jex-XF>LK|dr}&A&*tJZzFQD}Eyh3V$IP zdgh5FX~RRwV0Kp$pnFsD@5@!m_G=B2g6tYeC*KOm#zQJe%+g}XoF%u&sBDkL)%VC za{3;X{JyzYVjQqt61sA|_016-G;^k288R zsgu#;HMgfI=Utle-NIl>@rZ$wJ>#T#ci(Q!w{Mx9uiN=^{Y{mU?xLk~;fjO2_Lcr0%{NslU#D(j~qhrDm?pW%nwyWmDR8mF-;6Tej0_kZe-v zDA~0ZlVtN}Pn9{IpDXh%S|Z#3%T(5tZIU@0-z6)~*)Jq{uKL|>gLLN8OmfSD+*eWkLCah0+lMXk){o?2%3+*s)JszIbhg%f&D(#&+ENL}I&jAw(|GRw8NA~7EM8(ehljb(BJ0@0wSYd(1634U+;Np59vn!h@DmQS}n&!t7STwY?w zb5-^{xZHtTRylHmS|@&|-kIBITzE^dx9*u6Zv630cW!jYgP#;@RTCdv;AM}zc>QB< zUiQ?7Cq4J&CtqIVMz8(&qc{Hi#Jd3g>wO^K_aTUvf4syyeh%idzl8AZUqktUZ()4b z_i(=OM+EQjGmtd9{(qad;Ur0 zoBpJ5-9M?k;CC7~{+-ShzcTpXUzz;i&n$lVM>bb}&*4?yayfm?7jE-iu6MYb!(Hxw?jCnMd7rPddcbuKJ>(gCAMpvh z{^OUnJm!zrJ>gwVpYowgpYgs6pY!jtUT`U1^7V$V_=7R8x$*EfJaE8UUZMAn-|qUJ zYuY#QlvW?O`JWG5>+47E`tB2d`|L9}eDH;DZv4vkHhkk|72o;r;vf80{!hL?{TKf) z?l)&*P52T2zueQ~AD=h78D$qXBOOU|+LqItqQ# zr8Omav?fa}EwN5ti;90~(aPg(=t@%?nrGRT;-0ppuUoar=(aYQuWm;!_3bEVQF{td zwio`a9cX)g2O2xRBfU=QNP&Yp3IC5yRM4|C8TxdlFzqh%(Y^~wes`e*);i?#PKPd= zccs{eUCD2KH#&Ny8_itOoqnpiQ|z=JG%c?OsmAmqNqkQV?XOF319fRk=U%kYr5By} z*Nf~<=+VjddbHKNH%)xdn?A4YL$URJX!e4>R9n=S=1uM={O0=6-@*N9R%m}Z*j1n0 z-So-7*#Po5F@O%e8$h#m52U|$22%2>K{Tgo5LM0`OvoQhAqGR}SYyyq2nn06ZOrSBFCX$YN zB0Zcti9)24Xx3;$(nJ^v2H9lFb(&0CKPJ=M{Zq*D!4x{b%80~rVcIQ`5KEEJw|9$F1Z7);`n&)g+%T0=YsFsjGp5n=OyL7EXgbySPp2@g8Ny#{2K{|GgSQ^U>`RHs=%xieRiecDQ5eOA#; z*HyIj>nf_>X-Y#irnGCuYI09mO~Jj^khjwsI`DA~P1?Fv_^PiZYl)d)RGHCQopls* zb{$=RxsKiof1eME^>lm821*IuKs#G+q~=F93g3{8^m*YXGS1mVj{P@NyxV5V_`I1S zw{9Wp>Mb;B@>Xh$+)6vzZKG>e+sNR-HnKF{PChx?DXiZP@^aZh<{x&@u#G#Zwsa?% zjon36LAz*R^WC&<-)?fex|_VG?Vcne|zmEiQQf@ zd%2f3uG~ip_&(}6(2{CgEoo1aB|SIWPfLsU)1_etsPe)Ay8rnA-P(ANxbh&K8+k}D zfDV!D>meGm`7k-F4pZ64BlN=i2sM2^dh z8e~leU94%>8*9PYJ5K-dj#EtU6Ey1l2?~0Af}St5p+2cLWZ2~-O|UviU2mSG#;K>s zHu4m8Xn9(2|4x&p>NK?*bB2cb2>En|wAY>`wd^dN?sJZ`&z+;w56_W$&Uw;~J5PQs zZOPBjmK=o-n|YuuO{=h_7T;}&M%d9V!IS&vW=9@mN7}FL=wu&zx-FP;W6s#qkyLw% zziUr*9USQCGzWUO-+^9+Inec52g>>FK=uZXG-s0|ee!Um0O4yl^0gzS_jaNoi=D{h zq!T?(6r8!6PGl|^bAD5tDRZ|o75O_;p-QmkK01@xoWnZLEcP~;(8$Vh-(U0D2@*^u3am?}~)4P6@tmRK1#{1LojsCRM z$)9#+_>;vgf7;wKfM$;gpdMxcbkjC~Jdy)w%(Vb2{u4m6h6hsSia_deDv-8a4y4H1 zK&tx^NU!<_(YJ*`^!acQJqQjG%UFWQ@pTYQ?|zA%O}j+rc3+~_UYF=}{w2YAxkQuO z2!`FbU`jCyrn>XNbUz`O9yA0~{kLFB)eoVQ3qxqip%8i$7(%DzA=K(w2%YU1N>2d+M)v+;G@~GlUOW=#ZNsVExNx#v6Hd=g zhZADL>1<^^1X*5*puyiGsH$HiZJ8TMk1Qg|)GLy5 zaw4h4tw@^nHVZQ=0lZ52l?gW?1; zD30>(#L=feail*Wo+NYPY1XcIn(Q1;y%OW;WmP;SypAW+jtTU3Yyw%YNTAn85@?xU z0!8K~(7o#kr2S3s^m--IXqHF=HY8HZ(}JHDnn=Edf~j{ek*@zqq)q*kNIfHoCT>k4 zyYopTk4&N$#YxocVUl3BCewHQWV$&snc}tzrr!Bv(vD1~2zfFMyq`=L|0GjW-xQiU zErpJ46u#r9QYbYzh0)U7pBq3+i6t#Esaciq?2M|It^ZtPDc-pA2%5WYCN?8T8+g3_9kOK_8McXk$eN?a3+oQ%%pz_nN%eF?kyf6_R zENXW>i$1^4qMCNu(MIPyvWm!~llggMS)WJ7&+@3--#n`B zkxvK45UPmQWH)t+c_B>=XBMb(}qY+bvc~IRC3Y2bINGq zbVV>89`z!+Ye1x$CD?+ig}Gxv^zXDd_a^Ek-2R>Oi5^xF4ZBBV)P^DHO<@YKipHYRh zW?CV&Syo7~TMNnHNFhbr7gBS7!77Xs%)(+C$i{R)s1kCoHT969|^$mx_?PS5VkX~tVQ z+5eJLmUc1K=oXV^XfY`#6;tHwVlrP|Ono*N6YVRec{bwcB!2q|en(U>MWq!}DHYRI z!S|@UR!ljMiplX^G0px}OfTA$(3$Qf^m9N7?H*G?#7gMb{1O_zs)S~2DWTc>1V8b3 z32EDxQ2m7xIu~3*z2izKDzk*T3AW zr%fsf-ln3?y9IA@uZoHesOZZP73m%qVVn}roKsN?dlhM%ROIQVq6rsNr1VkI41X2H z2C3+)V8s|l2xd&QiVnq!FcVZ{maHO!G!?zcP*G5}ipJ!rC_}2EKBS^!g(}LEtLSlw zihe6qf=8yJ_vL~$Q>h~FY8B0@RneU~!JTPP(KWSr-xU>|ysDzKYbvU_uA=KV#J!Cw zO1`Ng>su-seOpDfLe}3=ky^;4yDGt85a|h_Aih78+1lOy?cu7UuYg80prJ@@ZD*7Pe|6Qe` zmkJe?7puri@N?!AsOX_gMf>ta9CAcnWvR$LT}34+D*7)`#3@dcSBywUq>3(usc2QO zioOL1_Rd8SH*Xc~^-xiPiwM_2CAi}vf6u6BqK%6BTB+#cAr)m?s%VS3D5o7N!AcWM z(DmXSYgA;vLPc3iM1Cw#(UsYP89GfxQAR2TWDdCfnPP|ppgy%}S`A|uFZ!789RV6K}Q&LR1k{%T+sXZ6^o2{fl zDN5=TEB+s*q@)0$vtCO2=q#Q;FL&`@zCuZN7b&T5mXcg0 zN}4rZ=>2d}5A>Dvx~Gy>c2ZJwYbD+Pt)SMQ71ZmssK@^)sQE1gH8v;&-%dgEixhM( zM?u??6{L<5e4!u(9l4;O7zYKFoK#TdAq5rfR#5mx1z8C0s{TR+DW@rD#Y6>F4_DB* zehRYfD%y!Q3VQmxguZ_e@~ng&-w|z!x`a-bmC#5kAys+_ExIhO37%^Y&l1{fTSC58 zC6sAVLWP?I%V`)#L>t&s zw1urjoA@ZQm=Z1)(+1I2{y0%g4x;V+v8hg3q@2q431;m^IaQm;DSf(}&W@E6)0fku z&T_J9Ca2F$MYQ!%5lJ;g^h+W7iR>a;5K~0UE*8;j`yv{6w20nrFQT}WMPxj?h;EH9 zqBR4GsHk%hb^TXJtKJpT`Fn+QN${1z3JU2$av@m;7m}fCA-z0aNFKWjNpE!_`OPV$ zAA-4LqF+ev9SbS%R{_<&EFg7b0Tq`OP-sp8?TjuEeU@x(Kf{qPZbNPo0U59wU0QmB>^~CB#d_wIM`0Iz*%X za2oegFoUmi`dh-OGL;LqE2lw@oU#vz|83-gjl=2f1Wx1oaoW6bk;48d6L!!|VGrFDc2Sv?xVAZ;_AJOJy>Y_8 z(9NfX&GJe4B9BID^5`tjqvGg1dh3=)+DG$9XG0!o&B>#eBlAe6lSkG+a!LPDF6C9` z63fh`ajJ8`p(Out|PPPOUEoK`o!xwxn2eh`;$%~57X(lDqXOx z(#ciW;yJ=5uNAiW)k*18*)yGze+c{iZW^)TG>OLMJFvT3{MpGn@B997KD+nsjoG>P&dfP;pYMsOps1}CG;47M zy`C(%RedU`{Zlz@y;@Ee8_H=&VmYn!D5n6ca>~#zr~JO8)NZ{er8j}(0K_F|g&pqREED5m_3Vmh{~n69oUrYlp5>5ytMWwsTO!^I*R zSye=5!;5I6V-dZXT|^r+is(dpAq~7=NH$a`cwmK8zoU?jE)k|vNVVMyDf*T0H%}DM zfPwqqg~UV|qT_8JJHOzvfZhl{^u< z6Rh{}Jo;*vN6E%{VjP=C#ou$O@3mZVugRsu;koqJE|(@4=aSjrTw3}qN3d&ihzZ|X zEi{K7*yd20Q4X07$f0|mvV|{~O%F=4$=pAia@SlSS)WvdAGPi`MPR zqB%>mXvoAYdfF+AG9G4<3D2Zk37NEhvxouA$t0uUnUwe=gYI0(pgxruBniq8th@|b zX^=sSdWl%Vt8`L1noh0h=@jjrP6i7^tYK6-t^AWlm#?Q0t4^cD;552#lSTs!(#W)D z8ri%^C8tBFWS5dki``O5+borS4NawH5$~|SkU|}cQz+3Vh59Z_p+Kz^de$L@rrt>w zJicVA2ur35>yzoRK{CBiNv6BclIZCEBuYz2q7BYTq;4#h`zO(w_lfl4cp`1gNTiF~ z5^17&BJCcUNc?kx@Y55hTV4VU-I+imED}gfBY}Q?j~DF3cuFaZCrj^m`mrdU5=Y0= z@LzG1c`1&%6$|dx?l|I>arAq19O?XurKOidj)S6D+A3m8j*DVx@u*nR`Vm7v&c~26 zKZfjf#!#mPF(Q{l3=R4cO|hp%>?$jo7HyBF)H%^~ZD2IDzmK9}$D%}zh$x!m5=EnC zL{S&jD0=Wbl1h0b*+z>z47QO}F(p!nz9MP=-3ZdDji97}2zs+Tg7n8nklP=T*Wpq) z@q%zV>lsex=Z4eK!QoW)L2$W_hS7qgF!8L1QL~8Ct?Cg*Zy$ux_WDqI9T-YWSAv|bX1w5DnBZFy$O|W202UDv;Fzve>$ zsM<4#CJA0wk$MpIcoRqt`$eoVDvQAPt{OPHPZF>FmqrYeT$ScE-p1JtZtZ9Cf(%p~b&4S^zYM)@6`_kbw zUwSI>rT4e?(t}-lNvgh=Jmfw!V3iN$f8Rr@se8!9U=NkG?xqVncGIoCyXkC$Hx(}N zrcG_Ts9WqVO4Z&)JP=5o|Bh?bPsa8!h$OMt9V=(R}Gvah|R8hpi*Tbs zW86sf*cMS2TZn#cCfDT6q@=rg7m{g*^`Q@J-w;4qq;eEf_J}(zVF&3xO$uD zS>;BO%-KjgABdQ{mn~KIwx!Z?!TvJcKr8RAr=C03Q%#TcBq?4;mDATz*BdtC8MGmP zWgE)MSxfl_YbpNX8gg-1L)!nW=}xjWxr=##FDL2|Vfw5f7A{V-Wh-nW*~Gq+{LIxVB!nO0PyYeff7Eu}*?OR4hn5(*4o zLT1C4(ATEL6f=J@^?hVXL7tZMsGB8?&09p)Qy0;$vkNIe%zb!$v7lAq7Nj}Mf*v$1 zpaAm))c4+eirqG!zIU8Y7U}aSN_!s3kItnl%jXLJ&zw%~HK(FJ=Cq~Qj7BjtI&ppu zE!!|hurFtmVd!j%8Z?_ORL`Q{#R$ z34tk<|CvFZVrPiB_6!PXoKBTYwV7>JE{!sG}a`C+X6~(Yo}eX)=A8J(=ELpF}t8CQb+DbiPoV*6VB2 zlVcOfYUxC3daOkqw`b(fQ7!=vJ}@T_2@EN9#vY_RNvwdSL{O zTQh=gyc$lPJBN$h1j8vfei(flHjGw^xy1@Ll-{2lLL-+AA+yJW$;NFk+5H|wYr_VS zS-(LvvS6TylMbYc{pz%Ot~&j^K7b-@2T;!s{V8B~e|n|dpNtdxQN-|mbfQvC@aoj4 zPfK6YSlpL1@2S!tCsk7X(uZ#E>qEue`_RVJ-qdGQZ)&XRMds*57fquqB9qHRyC6X*xBDaSfD9yP8Nk1!!`%Y2Rl_H&p zSD^aA3Z%K9onKn_kK4Nc<@bXB@R{kqd1Tcuept*$-@E#QKY9M0U-|Kkmvt9&)x*AW zHQg_~bk=7+dc}V{(&-bwySt6|i~h(ZxgWS${d+#+_&Ywl^(}w*;tenO@tV)-_L^TD z{EE-ke#whxyx?t?&-qx}XMCRfQ@%X#3167>m`^T##M`A0IY0S;ufKVpe|mY3Z~bwX z-|BLg>kPcZw~oKfv)L`)JntqywE70GcW&kJ-q-oM@N0ZP`c;0Y>!72uOA)c${!DK)xZ0B&+hyAPj%wg$8erAMb1~7Hgl!LGM;TC zs&{B$uyB$l-xG**w1@i`UCCx%5~D zue_MflkTMP?Jop1>Aw`-@n16E-!+-r_e@a@5ER!2H-bagYo{=$Vj{&wOodpYtI zqwRTVW`Z$zFDh}bV`VQhoW7K)5 zq(47BUyUo;sB+z{y+sH;nmDey{$6+_UwKyyMRo^3Wkq<%-4+<=ZyhmEQ=tDc7&KCJ(!CNq)WUoLpV) zw0yZ?i#*a=fQI)TkUz_l%R9F;$u(cr$!Bz{mRo6;%k35y%eQ&t%Xg<_%l&z}JosL+ zJhVMt9;Oi^51kVs4|WQX2Sx_Sm2CFP6$(A&?XR}T6(%{zJ9@5@tL$GPAEan0*ETno zn@7)-J6$uBCk&h{Z&^Q1u2?ccKKGrvJX5ca{MW9oa)-l;@*~~9G+#-3)~qz9wRw5t ziRLrLvgVB!OPWWnO>OS{CbW5C+qUMs9!s0IjMr~YF;iQG1udZl3j$9VROKle8tfZkIMZgP;R&oWJTYLe;m}{vhJBo}4G*+d84jCu zz;H_4Im5q0?izZ9zcI}J`qS`0T}O$pLk~&6A!-u;D}yCRLPklhPScXe+Vmuwiy`@M zwW-9s=X{Clu_Y3lovS57CfG{K?mJ1^ zhb2mW_DPkLyvdMEIi4da$}Et4@hFjKT2x33M%PHj{;8LIzb2KGRC0-a;6X`_^-;+S z-4l`?UC&5*JvuM>AiFFnkG?LMX?IIfk9(58y&p+NzkDhgeek8^U&32SgVRUJj2WLL z1%1Cu9=!S``S0LAiQ7Cyc1d4}4Ib8sE$PykdHmOf?Yq~Fd7kXSR@C)mBQkok>w&7w zeTy3VxuQRFHdbfH#t&jjeTOieKSP=E^WkjT#gS}i^CHKzOryp)%CM{c8M%i|DHOhm%+2+X}FY{tDi8pf@vWNX` z_hD{Nec8HAe(dWqf418!fPF9wWJ|^ev4TOt>~Z%H*6VKwoA@D=89WSQI+w$l+R+I1 zx;~Os6htxW#Axh-E+RL|)(J@vLr60&AO^$cBs&T($nmY?^Wk)Bcvidb~(w zw_4L!+=+BHMVi4{iZVqmRI>>SYM2tMWhckfF%PwR*0nW~y_ItyjO!Hg;%b3*NP|K{sx&ONVbV zm-1WeO~P%q*yj$*w7<*FFS^H`7~W_1M?7E$yFO$A|2=Jtk3VLUs-CdWq^GRK z=NWr$_nf`4c)_kudCBsJykb@zU$fV5U$c$Z-mt^;mMIjxW18XbnfA61Onv1?_F{S) zOB?-(X?OpR6@U7Vwcq^ArXTvkY>K|J4H4hioNeEk%8DPXdD>4lYveChul$>Jc=wx4 zx$=k2mHlNiGXJsue(lUjPXW>*1$^$W2#s(>nEY16k}VyuXhh<4X8Cr6Zb4 zI>K4K6M95+LhkQQ7`a6mNe`6q-Lf<0AMK22y)HOX*ac721fMOqE53j0ir0?aaPC$& zWX;a=5D%kI%g7NRg`}sCKaqU7+^qSENsOg1e!+OIerZ<-V>y7Dd zebDzoAKY4~il~FC(9!OTBUyc6+(Qkud(_b5tr}KY_e0{DemEfMkL#uVai{+PTnrw7 zx-SFZzeyd&SJm;scp$=S2SRn&AVfqB!pC2OFw1!`f^H5*`>6( zp@?=J2Fu&S@Xt)>8JdP;w8jWz#*To(-w{~qG7|AOM+(M=25#1C;K8s_xEeVMjXy@g z-+nZVu8zjD8JgHtsfk|$#=t3P434*rL3f+6Fg`ODwo}K!Eq@%GRK~;7dptCrkN-bS zM)ZLR7&A@_6^U9H+^z*L7opo|ortf-+UQ@UjZp)1g#K3titlxBb>$?)9-9P1?a4To zIvEQ(=%RVEE_&Y7#S#-e?5os6T0ec{?9)fgYkjy_O@Z#gDR?$!D*WT7qT8>j@ZDs9 z`{xZX&cF~hxrW%=MS`&H68PScVErtCB&=e1tOf+^1$w>!f)-7~bJ;ZL4mW~hs1ZUx z8X;ljbfKk~4#%-Gpc^{_&%ez;;JTUUadIYnwT*E%NpRo(7{h9l3AUUyfxE6LY|~7^ z+D-A>eilm4&%$*5**K6s8=4Ap;N>t!@V@5Yww@VYrJ3Q;KQkP&Ge`7UbC^z^i-*Z` zg=S|iZfux`NhjyQU28tFwLjUT7cxk3t%_e0z<+raPYka%$6<$mo0?a;6+%u zZxI5YE<&2QB~mIav8UH!%=cIfg`10!izOJ7vji!MOYy;ODRfRR#R@Geq5ZPL`cGDv zxojD_G%tgE;BqYXS&l0YmV=qBKv>}l9O<+Y4;@$H#hI08)mnwh=v8q3xC*_NtVU+T zYV=mKhO4JFYHnELw&5DQOi-3)*|R;XhY5oIT}+uu)r~ zwQnmL?`*{ggKcn+--dFbX*+4Y9j6Mmqx$c5c&~ED_(pdeQt^Pq$pfj!JaBi&4k&r; zK<_I%&_T-+w}L#8_`nnTlAUOd--+RGcVhEwFXUuA zc%!Y`Zp_-W8+-QeMoQm3NO9eR-N*O9WUvq3yZgZBtPehp+zT`Bz3{)h7kOiSQQ+%~ zuvT9zowyI}0s9bldmlQe`$1=xA1vJbuqNFPYg_za`Oy#hgZ$BLjz6w!^+#leKMYRz zE;Ntfw!wH75e(g?V7T26Mz(SY4onKcg;gQA>>q;T z6(K0S76P9?A(*8ZieC#uQLr-Aw50}XLuOiJPyO} zuHpEn8;<{0hvSBSI4T9ear>2UjQtsoOCuuSI5z@qTO;6{8i8wvBB1jk0=rcNt8Pjp zp00_6LSQ6%RzyPON+kY#kHo!UQK*^|g)N(-Ff1_&M|c#LK8nJ1XmzVoNbUePz6->J=@n8w@I4+Ba(cO3y zx5uM>R08JCO@ROA1XRQ&;CNF4&fiMFi9ZRb9+8NU*@;->lnCXhMAXy@UGB9+T=LmPk@D!#Wj%d{XfuI~DndQ?cN2DxP;p zgWKpdyquE;OUE>ngr(tKc^Wj%rNR7N8rG*^Uh8Bxk@;nt{0143vJ&Kuy0)6i&@V*z!!Q@yx`qIR`eaIhgS|2fg~_;-XG2_E_XX z-6a==p}81RoQt4ixw!i<7bE`WV%eZP>@>_n=(0S7Y|q1vm^>`5%){W*dAR;84?c?d zq7To9s5x|7nUBpLLX#ewk6)Gf7<)P&rqA-RK%oG$h7@4DqyYb{3UG950o)@C(5JKj zxyK4H_(1_eeiq5k4O&!VtmfoAR{?tXDC##}}j5tYSP^Ta2uo#h4pcj3?#Aa5-L# zNB4>`>sv9BdzGMdTnUs+OE7Fr3C8Ux!SLu3bSf#qtwSY9zgdELZ6$cor4-vnmJ01= zDHbm+MUhJ>UIdh)e`YDBG?v2nTq*Fh6eE9^;+tw2_=GYzo0g%Abs3Vjm!W5P89ejK zaJIP&DwoPI<3$os-y;|_(s_`hT z8uu%!ar#g-@~(*Oo>gPO_i8kEt-6q{NcbgRYXeYLm}SBt~>wSu2n z3)|zh=zqNy@@KU$|5}TdPIb`kUx&akbvS8Ihi_(e=)1BGLmlg&=2eHEA$2&LQirgT zI_S&laPCAM7Pr>n*t0r}{8A@aJ@qJ7t;e~M^>{G39`|R~C6?y1MY z@OsQot4B*oJtj!&;d{Iuhp*J*-NSk)f2fDbpL!^EYrvBM4XD!;+(Z2a^f75b$)W~~ zUE6>p=LUS-*#Lu}2DrvIAS$N;8I@waya7HZ8nF1P*#2Py4!v!_>K_ew)UgrE`Ut*< zV0kD_XvB1bM%bA)V%MTZcw0BZ!J!ex?v3c|+XxD8gmrQwUgkBzwyF`Qnj10bxL9|w z5uvvmk@u_-C4v=__Nx(IodjF4cN6{$Y7(r{CZQ>ALOq%=bWRgIEt|ksH{s1D!CQ1| zLSMmN>=w|350Oncl-z_pxlPb4Z^HhDCd@d{gqjoL_e)K%y48fR$AU}pM(qE&2~B^R zkkv`>OnOS8H$aL0gP6|a`DRwX^uA4{&8$=50rBe7=OOdcq@El#F*y}FE^4(Gl z43OenxD-zDQhZL6!X;0N3#C#Ftrh#oqzF7HMS6=AndhX4xGIJHZ7H-LN%8oF6anw0 z=>0{k|0PA6f()}d%Mhp{Lv3FfP7jpf!f+W5Ys!$VC4-Z$48sj&IBq0^m8lGu&1Db{ zGGdp?#F$?OMH?B0Y?NWNqYUbs1-E6J45tLY#ecU9WB18GfifUWhLR{5{>6!NCClKM zE<<9rIDWniNyRekDwknywG18WWvFfv+sI`&v0ny#!K92iCc}*rGITp5!-VrP7+#WL z@>Lo7x61JPrVM3wM7i$E@b;k$Tc61A=$Q;NUdj;mTJU7v%JBHT3~e7}c=t($*3UAO zf0e=Yy9@(=3bN)eQMNzgoPT9dX_sNOLNgK+n*|fN8E2K6ak^tO8ap*3Lb(}>Iyd8= zu*@#a(Cpfb3}JtTS#)bgsIXdL$Az^BYY-MCY^ktL!ivRqy28rEzCDF)5XZ?8$2=pB z{YaeSsW{hlan3q%?%kpclSNssiZa=XvfUG9oGr?lF3NmIl)dv8ncz#wFs@C8!5?J! zE&k(a@n8MLe;)H(2DzvM!$&d{h&uTt>Sl)E>TDHt6(#B{MburisKafdE{#vh@JG~b zv8dx|2V^)X>U^S9hEQ=0F8%MdsE|RkLze8Y@8*-?ddX1mxybt zC-#{r!`Cq~^cX2aufa03tBL>IQs*ms8%Z#PTv%T9`~ zYXuK=nG}r{Qh3gmVziMIhxMhHt0l!j4Jn2XlESTz6ct^hxZ2)?SKq`l|Go*gpEW^x zw+X&i1#|UG6K)=Ef`hCHPpg_>QP_mS^d`KB73`r9(Qf!OVY<86&Z!CN>%=jvnou&Y z2}@=+;kDosZJE%7hr`7-{hAQotqDilMf>!n5kFrGd(epI*BWtH@Lq!tHi9)Y;&w?R z95Wm7B(@Rrf*O&ts}YYjH=>tqBea$`V#>TmOqkvX72QVMAKi!y^+wF;A-=aa!1i+k zuDxi0-kk>cUT8q`kp?_yY`~|I2EnHhZD~{k_U~&zpnC(DeFN^U6m9VQ2Eh(*fYqc1 zRE!jDbKeGxRBnLrk9t_VsfXFUdT3u1ZTgXV9Ivm3dtp6#Cf6f1M11ZN%g$oGbv-&* z)I(=_JQOI&=~J)sLxlXw|GkUcWl5>LeJuUuqFA`Zrb4&-sb|?w;uPGz&z(7%!InYLT#2 z*t%NmTUd+LMzt8JRg0SgYq7hFU@?8KLB#VKe7jbI#m8!pR#$@yIW=gDs)53u8vJt- z{qc$#w9KwSq+Sh-N7Ue{N)0@ISL4&GYS`Qm{rK@}wAWQ*N=`LaMpnaVS2Y~$t6{aY z8rn0f@l~rDmFm@4)Jcp5K2-@eN);}gt-`qGDr_&TLRqX>-cyA~j>4>}aA{^0snag2uM#0sD&al664u=+G5%|X zVB}UH{;XglODoWjTY<3=6^PtXf&1$!Fmzr87U);NX=nx9J6FK^Mwg;bk5aUJ zE`h^c!HYgtf}Is5!VfKhiFXO2Hk1foy#yb0#8|X{3A+Ck%;{&vczU)N()wa}rWIrK zzG57+FNUQ>G0y1;w$#94#IzUT#`7YmoG*f2LlMl=iZI`|2u5~A7&^ZQ?*(hBvR@Ha z|1QMWM}_b|S%}}2g|Le+#KE0~=qR{TFe$|PF@@OCy%1h)1#oUHzycEE^xOj64J<&o zQvt> zP6}3cMIQPHKO$cE6N=08utAcCn!$N^`%m~GPjWH!L@tcWa$yvii!pAwP*{?Sv--IR z?4Jv*pE)>wHwW_%<=|*u4#oxMz}H@^Gta?~@i`dUBL})4gg6$`(AwEOdF01@FUIxRWP%YGYjXGvvBrhCiv-0!3E5O zQ$!}lx(c58f=uj~mk?oToq&_h2{18BK$S)Ux(fe(h4Ax} zo8!@v7?0;$MI2y3JbsRi$9tuCTzMFW(*1F8OO3-A!OXg}C=SjO;_$Uo9NZtr;^Bc< z%uI_#tVb*^FNzi8*;tJ26pQJPVlZoe45p>TKy!Nx+84y&{FoSoE5<-_FB-RG(Qt{6 z#(URjY&46;=@HQwAy`_@tx+hdjl$*dD16uyg@4lp(|TY{#H+zDuL#Bm|6qiy4n`l{V8nC@#=nO_*w8HUCd35c zk9`mfrUzl8h+p}=4MhC0KqRM&JPX?bvBNwNi-!eb*w+9&I2V9~f&fUo18~_g0BZ${ z>&_p4EV$;6+H!w%^7F@{6(WWa`oW+#BmQd5h=A8!@t7P~5N!)?IfAf6WU=*LdMlM=!Kg??m2;o!Hdw36(NW zW2M}ZkX584M&=`2!DSI>=m~lv2-)a7j8z`XII3gyJFo; zSM+=C0%?Q`j3$e?YpXLl?Qw>gV0mpj;RJsdC;0So!ulphXsvd{!@myjDR4jsa|djH zYmd{h_UJOj9=f;eFx$rtGe_8ARLdr`Ic`Ep_f0UX-H3}zH^TUvEi%(>@zBUtef=^?^+6b^`#;g!4lN0Tmt>?i&2!a z80}LR!>rX3yLMP2xvwR18Wtg8$s%lTTL`1rh4`$!5J@8ci-xNOGP_y`2G#;BHd}zG zXY;*!>Re=8Gsnp7=1A^oF4*{HFr8!oB>Yb!96de_U)N28`Y%A>12K9s(CZw- zOM8ZD1qRzp36u;ZNVse$IQE9v)5#Fma}6*U23UN3Dt5R{MQ|5k1ykT*GzFG7^f7Ro zKCX7vhj*bKdQI08?0j8x+NKMKuDXyFOvaaKlQFV&l9*eYgt?t3!6Z)y6PTD+x~h#+ zF52)>(#D9aiD;TK5e65uP-d@%uKy-rb;<;!=}f?>ljHGx-FSTdHV$nu<8W`xIPgPb z5wt?gZ+#epx4~l&GIR|3NHq~@p^0x#M~isiXk@C6Mr-*fD42}Gpj#Ty+^T^Q${OgN zJrXbUN21~E2)Nmfz~CRlA&(i3Ihw=KvVR!#mJUP0tD$(}I}{rIhGJRe5bQJ=f^ac+ z7qewB0+j~CIeid}Ck;ZE69aM7dLTBpsiRAXx)=+nqi_8H1ey)Nv%CFaxV=C2DECKQ zWa$X zFKAo!68>LLoZizDioJV6yGR8KBq~^Qz6aKA=z(Qly2B`}I|dBtj_0-AP&}&}R^9B1 zc9*V5`_~1d6S|;KvkUt1&e(0y8CM@FW2lER)+#F_CcP6HCw9X5!yR#JX-C|Au7tC@ zlu+MY36VJ+uv)hR2Dd2U@(M+Gzg9qh9|e^3RKN<;c4qGQPw=b$vL|(aSY+#OHuTpo zmOAVg`(^r*&2jv}yd%G}l-h4B>)KZq@%;UZpm&s)}-`-bHod(Bonf5pCae#QJJyky_RT=nv;&skplGuGPp zlznY|!W4cyX5R)rW;drjVnsF&+1h;%SbN@m7IW+#>-y|2+t%qWJ2vJHQn-& zOd@WwS(P`K-uYIh^8Pw&Rk_Y0#JswecuY zw})9}x5KPr{2`V)_aNKhcz_v)>}P+9h?N}Y%=n3%omG&tS;L!ImB{1Pajlds+}*^2 z(;8Wgtbv`nUe7N7SI5ruu49clwJgS>hOKs~X8ppd*suIrd=W!UAzOB?fNgk{&(?R!XOC$odeN$g8~A{%~DaLeArv&G8sY=wr%e>WqR z&9IJPBX)}SH{zq%(Q1(=?@R=n@?7N2QwV3fhJ>+hl28_B6~el24Q6{Hg4mc)0f(PJB1W$MPh zcx`5Tt6kWaCr)gYx+AMtXwTjTY+?iDw#?xDdS=mW_?FW(r4FvD05yFuw`Q z*|_yq>`3AgHutn8JNjoKo1kmKg6!wBOX+i2_lsss(qRr;X)ud9xtK85oSAIH)#=P! z*@%q<*!wLKR+VqS*0)Y!ox19?93x$(wQUlsEYxNrZfddcZWGwc>EjsNK1MLnMzaGq zHQ4)ZBbnNa;cW8uq0F>sFq?mKAe-Awof%E<&&F<3V_geX*^}1Ztf5OU<~>b?8M<|6 zAM(12XQVTmrL4>zOFFV$t{qsH90jJ4|5u`^{7W*}^_!&Q<^Lp)r+k#urN5Qz`1ewx zz3G|c&Z$QdpNaP+YVo%v1z%ewW2~=A@(*2<^c{6h;uCsG^5E@piQ(cSl8B}Ql2&yt z8MId_S@pPH5btt3$G+$st~H_H4A|flh>^ zEg?jr_&q=}O6Dsu_4Sf$G}|T#=;@VX9&1O?5-3U*8S9%?=sNO$;)S9qngu#JlU% z&B_JRNtQk|7oC|Pclx6% zZ`WaRXIo==VWPRb=ENd-`1j><{qZ*PN^3j$r$|@1(m{9mllR_ovsgd5-`F5|?%_~* z!OBQ^#K#!<^3Vji((n{{vMgQRby2o_{qsC|s!x%;u5X#VvZ7KRVp1zNxz!-Q=O&Y{ z>_qbV%!Bebx<}=Tr(5LTY);Ehe?BMQ6@E$HY4|m{Thk4B)4V(K)(7|HS3Dle%ep+5 zTW7zLztDXrw>bGx9%cPmUi9IcJUQT(e0~3aa)nj}ejuj?cL%G(Z;oSZE2wrel zgYOR=&G%c5;e`XnagT@N`Gis}e%ei&FEp6M>F;E&azc-rMNQ!jRt9|YAPHafnDOyt z)A%E|>3r|hnf%{xV{U)Ul-GsL=8qPc@vmxg`G-66_}RP#JkntypES{uH-B2pHJX?5 zZ9dC*zR3zMRbIub&aLLbacj8oavOes;CjC1!3KVyU?czMV8=&lIdIL7B6n`1Grzpk zmG8tB{`apNw>!FxR|L89E9N`+&2BsSfeT*TKhB$vw%Wr>`|agjZu#=j3;nphjz8D! z6~KqK1@NDj19?k*5Z{{+%r!ki_!nmwXflPQ)>jzmqzmQ$x-~dXEcAe zJcd7>8q1IO6FGvv#&OHmc>b#?fyXB$^8P!Lc&Jq}f1#JcbyZWjvtX>nTu$S;wdq{= z(L8iZCSPZf#Ybpm^GjWGxXY^?-gYvVZz|5?M+5VD_l*VI*tn3}4lCkY1Z&OiPBAx^ zm+*cmrTn5t8Q;F7oGVPK;NCqd`Tf_GTh)YWX1wi6 z1COm~(0d5rln9;y)UgC!DF7etEm$^#r6~1)WRqngw8jqWBorfv4a>skE ze4_LQzZrd#J38Fr4`$pJiKXuFy&v!JqEmNyL+(9ZSU%tw`;g!J_mJD&c*L(% zKjs?2Pxz{}Pq~NwGw#vtIbZqsIUgZ^!7s$TET@$1uGa~;(;eDkX}Jo?aEo|yEG z`?$R4^Nc_6U;RGvn71E!r=x9rg8%Mb*4K- zooS^?7dr0Qg+@H+LR-wbQh7~RYVF^R{`2ide_wQ?pNqQFGg)^!Jgf&rg!G`@2hcMub*hb5 zC#Ub~)Z1ntl^h#L6UGgqtmr}X_rF23VAWs>J2;pcG=|W*&>?i?-4HslWGI!&hLYFd zVKl{W7(IG6jCRc%PVLnq@4M;Cn*@9Woy?iFoKF>i>EYZJ0lqk}D?*u8OYEcIwiBi@KCINsqS0>58Yw39iwBtAXq}6XBR-N6Q@yqrgxt=V(1~%T)G5T2COtK!*+N@nnmvmq z{1Q5&6|7rorMJ@CR>nMn*}|dzmV*T7t)pX zg*4WB5!p8_qNtvhl;vbeNyjY7bI4+vv2!uCU0O^LrRCaZ8Ab?87!t-u(@NJ7h~| zLv4xQv!z(wjbstBkv`tpD7aUf=uO}zGP$*h_D!^-LO(mIxo$_fp z9B7l516@DsKw85b$$7gYMYT9m$^a({adDzG2c2j@Z)f5goykP%Otqa|NXgoTjH+B{ z?LQZ?UF=F01+FyYiz{85vzfN0Zl+JKHq$C>q2kCbbnD(0YSVV3_r7j)`H~x@kJw7) z+qcr4qg!dI>Ncv|xQ#wHY@;Dc+iASjb{bN+oj(7!o$5^8X=#Ex-G1y&bA;9~#m|Gz zU-F=r!*y_oP|Yo^+$klNNpVq>4E^>22ap>hokL4W8^p-F&_1{y8tf zH`ztHj=QL#X&0$?@FrVJZ;H+Gru^65lxDD-JOX!<-sRoYI%E&oIPam;(mi53AF^2F zLv|THwBdyh&D7gVO1^uk^2}Z`?B`1*8+_?kr7!7z_azI#sap`ePq5}-!G7!vOxN46G&YG0;yw((374Cq^s`(si02~*-s53_0>Ui z$R~)Foaxh)7I zhb>{WC^n47)rZmNt6?Pa#nPJo;q=omoI+QJlk%Q$^2!RQTL;5w!ozUdtPnwYBO|EA zG=lC3?%kuH2)a=mL5EI8P|C{)S}!!c1II^F%RIrrbBUz45s~Cn8A+|@B1!+9p#1fS zqN5X|sLdjZ`fQ0Jjp!&ET^&XJFGSIgcTse{htL&IjHcNZ(e&CintUUpsbgg{?LHe# zk6%ZVq-zZA8y7>(<}vihA%=bi$54l2!NxltL(iYY&|$?`iWm_~b7sa;n@uc5`NWcX zW-KM~SW>tZOE%wPsX{G|Uh2h>+LAcZ-5N(TqvL40VCHF^iKDJBMj z8RYJhLEDouXnj=%O>fDduJQoDLC?b6PrM<%&sup*cC zxa3l;Z!TR)$fc(xx%7m@_lvny^CXvcf6Jw*-SX(+&^+?e&7;4w^T=aW9^G`!6D-a= za!tsi%;G%a@;o|qE{~2q$fN2{c@)wypB4_tr;Zcysmv&!j4bo%kYF(A?8v9+kbJtE zmQMpJ^U363K3QMNr;U#VWAJl6P484dy$2M~m2m|WfC9k^D4=Sa0vf-yfD-)*=xuxf z=@k}`V^aY|3idJHCR-GebZsGx-%?1Cdkg7q zbRiAODJ1inLfUkwkTzc|B>M-2wBSP_jrdncPgRO2X=o8m(Jm5Po+6rQQAFiyil~EY z5zX6OMEeAvq9Cn^no5gEDl4MG6Gh~Ay@(b(EuxP96;Y)^F`4u#rV~Sp$#7yZiP=DU zF}IjBRu?BO?mX^L z$+MH&vAZ!4TkMWk?DpM1=5u=N?LN;wJM+xW^UQZ@D0Em2#f`3^4X!n`)U$>h{Ax&b zbqy(_YRD_ShF%xf2qr=eHSZJ*jzcxH?pzIRZ?2(hk80@IJ0U-6=(<`h?b52H^?ho| z#=Ms9+SF2zV=aAhtra>Um>!F2sas$zxrWzLNJ1^8XV+3rSuMp^*V5vhwKV)dE&X?@ zmddWwlJ(tM0k)~7As=cf?`JJNQLQ86u5~m;zmEJ(>O}5(9WApLJdrVVWawH)4`WR$jY5%Z#s$}&PHm06NxztnZw0g?( ztS93I^(0?fPaRg()8e)DRKKB~S`q};F{7Te^6RNph zr-I@Q6x7;JL2hOWDz;S6B3X)G%(Cirs`s1mf-1!R9 zUL=0IL_rUiE674HTzuCk1Q%MgTd$yv(V|Vf7$aFhBhp2GSqhToDQH-cg7%ausDFim z;wr^ho5dKl3L2_VkdxrSxa?FA_9#eyzk;4C6;ydZe0Nwu4~{Bm(Ft)Jrxav;RzWf6 z6?8x_WS%xE=+_m&jJYPx;ktsZ-Vo#8Qjpgj1+}}UptAc4GJGJImk$;6@sWZYpC~Bu zse)>rDd^C1!Jm1dp#3k!dB0MS-)jXKzfsUdA--=F^je7bI|UsP(&fEE=$(Sr3dt5y zC?r+L3Lzte{19!bgp3w)O8gE&q@tg9qE8DUvqk^GVw`X>-YPM!hZx^P9LM9wqCat5 zgT(ReZc&iAINr>=;(Tw5;}+*JS)9)@abCgV{QSjvPH7Yj&x;CrbWTAzXB1>9=A+@b zf`*9sDLf42=`lC`v&)A{11zRzX3l6=WMIcs>3KO7j!fW}$+L<|(MHrx<6t zxJFYH)a)YG$#`)s9mTpCA+EQrf*Oa4d9@Jh%2dp~k%AI>D@avWL2J5+>)t{1qbA1x zS1*_z^_20cUU0tZDe6T%&3jZ&1Mk+;}IuF}hPp7xllZsgX zgM}VUC>85Gubv#!h3*JF`4m|%xZU;S9av94mWZ|QBR*$~{|o)vZw74~jUE!j>HOrx>2>=A1Lf`?;1MV zrH0bl*3j6`)%5ClHAUU7CY6iT6mqy)*zsx_uvy$E3Izu@xtg|wSJU1V;{GtdnhK^? zlmD1%8f;xn5BpbBoNhIB*QlnPA64}CwczRAtD>q)Rn&60iqv;jk-^3)GR~_a-S{f{ zzD6*Xe5)vJrg&K6R7E%J1c%p5wC!0%&Kgxz`F%6Je7TwW-rh{(&TXbyd^63d-%OKA zH`Ach&GaK|Gc_#ROun9*>EFc7lxn}3+L>*p6}p@0xY}lF|78=6e7cDiG;N~Q$2ZZM zU7N_aaubcq-b7l0&(s*Oi6Z81BHc-ws8X_t^vyO=tj;F7)ov5@`M8lh9&V&{jTA9SyHOWbOL{7K12p)2Y zoD34=WEv!=zVqay?kuPK)^e&cl#^FS;WG*LQ^8{y={3qIoy+Kbm5dy7WE8hvMthdX zM2tj6PXr6(UCE=21aqBP-~- zX$Af1RzW(yq}2DBlyomk>5o!M*EdP2JVQzzYo+wvM@m^PQqr~-zN3MZ-U)8h*#F8Y z=~g+>v2torl+(xja{3Y}*wKFFbYV(4$?VH%fl)bWYnIc#)-sxSr;N@WFC%OzBWZpa zy<1;KLxg|3K=`?_!r#p^D5HGUGD>(`N`BV`Q|e$TecN10b?K$#yrz_HdzF&c*iyP+ zF8pV$QrhsngbqI_5q!)N(%N1^#)Tzh5?Mkzi%aO6O9`DDT0-ePOK8+z!O(tMOsg*x z)0bU>K~+*r7ov)(uU|1OaxJE!Va0+mS4@}x6j9TYB06`jh_>%2qJ+XCnzX)%+AJ)h zTBjl!ZCOO8wZ!MQLaM!2NdJx%l1r`FYh)DCw%|fKGpmrUjVPo>qe3FJLMnb;K)#m? z$arr7T`4J`RT~QE-@*clb}A75VF9^!EuhVx^6A;le9}LdPopaH$zAMyW{Ew}_QqZRXuMknImF4Vjt(2LuMv9v{WsJ zN?r)C@40Mh+#*=%nc0FDnN2&~vnknHaISQ+slzwHTfdb>(HeVEIO}}MQxsDlG&+Da;V89mt?U=U6x71Tr#QapiFA%kV*148RUL3gT8Fdpfs_s z)e6j@)F~PC$tpvz#WJY;zjV4SSn!%V)5#(yokjQ8J=q3pO6n!GTDemkU)tZxbp`;$x!cazDAlBuL5nLe*grm-`VDb6~X_Gl&3 zt^Y*qK=87@Zb_mKsY!Hyso>;KNTN)WB(b+lBDDvJwC!LbO)N{Krge$rF*A`)3{ND} zZi%%1T>_mrpFn?V1%p2^ft(j5ke5RO%{NG(=|AFWD^PkkSVxXFPy>QE9#0U>d8Y+4*?4349*nsF5PES9p4#ZqNOELDZal5}P)B@K(E z#hqhm_^TNDax#V#l`(=>6+`c4$IyD~82Z&EhFY#i)0XsT@)mKOuiv96bVn53_KTwa z22nKQ+6G#YvVoS4-awN+N0PQ8l8*aC(rlebx^{lOh%>LJNZa*-8y-PNIS5=83Ft7t>gD!OOCii}?c(zLQbTH+c=zQ0$J%eIxI>%EdL zbXiHujs(!VRRQE>6hJ$!tf03sD@beD3hMi4IceuEr&h=1)bPPy+&}#3*HnKB|F?`D zZeK=2yqD3^&dVtI;8Mz7v6NzZEhVpWOUNK>37s)rLUWt_1gqSSMh^F*w1>WQG|QJB zjP#|KuNTwplEt*gX)&$+yoii9Eux00i^%TJLaI_XqN$obwBqOt#WOj81>93zbU;EFXLygmERhWnq8&9YF3m&8v>LJ*l9;7(q zPWOV`>8HLswL3A5zOI-?%{``({LoaIv1BTJ7V+rlhAE;>&J^<0m_pS%-KfRWja1sY ziTL1T>f}C|K7Mzlla+$=IhD{V4*NK8N>_mkDPSju9NifwXkfvaM%~zj5vaRFkg2#Az_I(_^k&UDKI6wB zqd-D75(%BZYfn?6?dgcIJ@q{;>ecw$QB5a1y1c`do_pAeSeFg8l-SUb5jK?FVoj4{ zt?9doHRYWiPQCnxQ*OuM^mW@Xa+x-a(mxKRg9StBuH8_2d20wgjTl0g4TeztVJiw= zAoyS^R@5l?V2dXV7PV$9X-PYkxl~p4pGOd@-Vs0wcO$ZA9Ih3C*H!I;4`SLz_)?$nInh5>7M?{ijXE zQf>Ocv}wf6?i3c%oockY)0yppC+4a}_g{9Sro?V^z_=R~9qCGo=5?ihKf2J>!Y&jt zybE=>+?jG$bf%6PohhuU6Ww&|L<8@4q=4{_v{|PkUEI}yUb=Oludg)eTcRet>8DB8 z4r$QVIT{rHr9DY<+tVA%_LO^8od)@;)4qRdWLvIAwRURMNdWi#R;to&4OMF0+>ZJ? zv?JF$D&!ZcLaV!}P{@|HI^?K|1_VS zd5Sk5JjutrJ;BR+pWsg>9p}9wj&Xr4 zH}hh{%{*}OCN2rz$UlpB7B*g!^D+Nq{F;S~&+@F`7Zar1W>-1SzF)@gYnJgocBOpU zq7ojOCEkOeB3}Buke75Xr=WxEnC5)HL#5*CMLikzdHT+mbFt7c%iib}OS@9z7`(^>pcJSf#`Sbbi7jt?22rr(U?a6(g%;E#> zXYzY#(|L4@JJ%jQjTa?O;hMK6^Ocsa{8+RLS8tjqcw+!Z0J^AHG9iG>y&E1T;^S{B} zc=d@ce7sI)erHKXzEr8n-)d^`WpmZ}{jI9p<*y3gK2_9M9Q#js?CCG1ck*}TJM%Bf zz>BTQM}hB^&RTDjoA$g=ewg`GIsE%W<+8H-%KVXclzUokD9^<-DVvS2C~uy;sJy)7 zobs^7X=SzIxH5k75vAAr14{E8rSikDeac-;yOb+Jw<`^MZc$!R)+$52s+9V_1q`jC zLh0d9rhNIZNVz^PU)iC5jG<9Mdw`WfC}G<9o3`VCowu6J(3$!GBmgYE`2 z=)Q4pnEK1E;Z{e3hCK#t8&1!?xc^pE(SC;sWAR5ke)^Rnd$;jb_NvNV_UkN;*jLFe+NWvV zu{TY4VIThWv%RBDTS=dH?IlgsT_g*=btI>C4J0a;jU_#j%_YA^50x~0wUan)A0?^x z8!u@waFsl5a+e%T^OP(e<0HBI%}>&Adw|5&ca221SA^v8(in;Sc)Vn6pJd7Tb!ig& zYnhT1%UsFfqyov!hsBcXD3|OlkV)3P-ze$hTrH{ESSRWHYm3Bl#tupRw%w9!_5G4a zA1-lL9+Z6Uc2pAWe?s!=*lEe|UgsrqR$r3LKYvByV0>NjH~glg?CKp!ck>p>(wIk* z;+sz;o2*_+QWM`uCf$24c{co`#4GiSr2fHo$yM9ml56SzB+Wr>+4kP;*qYO-%p_Qy z9qFyXCZ5)0Jg6h<*}F6IIn{;bt?I^h>UU=iC$w4pN*$KivnO*srpJCQ@5SJ}_xhb8OhX~inq3}tQWhcQ=oYqsHs z4J#1ubLP89SXe7#V@pS{PmZHl+RM>QJ;#wP6&$tgE#uhj#0l)ReUB8bHWm{gZWur2} z*p49)tWDE;HgxR<=BOXddV0sO4MSpCQ=2%ZcP);&ZjNVxAqgyILL!UNO=7EFBr!K- zGV7I^!miIrWl@9Dn9i>>R(>I!b(LnY;DAhabYvF$+bNrw-_K@ax8*RG4Y_QTTOKp) zlh5A2&1Z^(1#Ct}A$vWyhy_{{vzDL5Y~=Y8mQ-5G4lXNW5ADm@f9g{9wpq%qS5>h3 zH8Qq*teo}Ks$@GKR5IJ`8(DSaCZ^)LnN8BKVjEsmv5I}wtTw)eRk+u(D8o87>0KRb zd!U|ePEoL-v$n80ldY^{>sID@cpJ+}-_CY>?qEj->}31JJI}>OcCkenyIIdUdsxGO zz0C3BUbg4(KGrpTKbt9PIwzVane0C$+jxMp%w%GVrXOHNh6mZ%*9V#B{zL3)>|ti@ zc7#Rg9c8~zUF zc4yIfcEj=l<6keZ_@ft@ZQ3Pvd3qz8+UGLc|NJsj-Fbzv@T+X**lWzQV-p*5y@_d6 zTxVzfnwhWF4ff*e4dyPmY?aBk*o~>TS!>Tb?9+og>`v`nR=esRns*UX2^+29eI`{WUuu6Qio9e%<-+COC_f1k4cqV9G<`g8Wu{RK1Dd&wMHUa~P& zuh_ului3{TZ`j5!ZJQsP%TWWJDmC!!p9Y$IL|ybFnwVqQ z0jkj*AaCh_L8CjOx}qbx{^J3N1c)NJ2H=K+OuszBEs&@_GY~KeF`F&9KUmw)E_QmGfzQ|~2h{ZmJ z7V0v}{%8gC&C(;y?Z<-=ym>G7Zo8ineGn{uA2r3-k>*rLgB z+%p+NRNbI4(+%gU-LU4X8`@8tg81Soc==)q>?BhWkTMnNx27V0;4~zJO@sH@X)w}r z$N8o1nBU-z+v*+|HOm8O)gCzV*#q~+O~>QB>A3P}I%Ew!;Sg#psAP#Sq zG%doNK8tZ#W^2F+k=S+N3rpRT~SK>^qo8~{&c03QDhfcu1%s7YUmM^{%0wp$=HyaVxRb0AK= z3dH&$tDqOU3T3nkZQBH4%7h@qqy?e)au5o71Y_NtV2qXpY%mk~o-0ROC;u#mq%(1?Orl z&b?TRIfF#rX}~%R+OZD)t?Q6s9frctFvK;4Vfv3SXpRU+Rb)6!4u>P@UpN{aBk(IW z0v%68ppEK!+!?3@a1^ie;bdv9TITfECCi15)id00mq{g z@Lej{c$5J9n+X{6IRT@z5@BwY2o2Xn++3Q7l7vJ|+9>jt4<#c0P9ikFB_dWk39kh& zZ~WvWorJ+(l3=8j4AsHOxZ|9RjlRj46O#-TX)>e@$uMh5 zM%DXdbnlRY-~lN(>X?GI^HN|V@~mg)rC`Oj6a<|WdDl-;Fy(Iw%=A<7!8#R+DXEy{ zFW7qVsfdvY&Ym(AE1Oc$_%0QO8fjQ)oQ8stX;98e!=)g>*Go&oxvDhmI-G{oTWRq4 zn1)UwAG~2eI;K0MXnJ_!!zOGnhDwBOx#|d3H5?Zm~73&(36?4 zx|fMQpEL2hV-_x$WFccj7Di6bLd)_jtcuG*YiSmIcV*$s*(~&am<6A2S;+5_4dsAr zG>**1_37C-zdRc|W3!Pga_Oh;$cFmqY;3=mjftN`UcF`xT#RzC+b##4+;T8$aSn3B zb8sL#2REv7@L1&M-@lq8^dbknSM(3g3^gLW!nupxTJUHg&;bCr`Iu^yk7%2G$er`CW1f&8@$UrjU5WVH)_in5nvWw*`S5v>kNLQC;8z7$4zrLe6m1>0VV!3Rr)e^832H%n3TtQ4Mt zWB8*@8Pd84wuM0%!p+NY%dQNj1|C+1y@_Rz<&_~!UWPGS%kWcK zhK;Anz^;|yNJ|-P-;|;3TN(aqSB~M`%Hd}q*oOnlQD#$)a>sI!mt2k&p5!g8(PD#l3RktT&}fmHBor07&9Mbj>+ zV1PRy1@wI?kiE15pI24DIjjQdF%>wRBG`;M75Gphq*8E6>MC$(XNBOrR>0|~ z=<7@cGA>s@=Vk@6S}O4Mncz6S6a9Uzz?okac%vf2Uria>XbG-kPZ_TDl?gtZ3_g}J zbhehEp2=YAD8mjX8T8#`SUp_^nj^yp9~pF)$Y2p5!;sZ77>CKA8YM$>ybMLDGEB&p z;YooEL1i+$lgr>)EyHew48M2CV6#t#xg`2JBE!0qG6bBHVQQo3qe&*#i3|nzM4Lx4 z9DgQ*<7*kVy_Z4blMK_p$&mR=hW-C!xYSOL>+J=@rK21>y2=r!EyskOa(wG0M@e5f z1{%vzGeC|W=5hpE%5i9jT-ZrD`q{|=Cdb&3axe!u49CjxdAuCTiE=ETBo{VJj*6*r z^zo1*V}@MtisZ1LBgdM#;`{k>H2BDIbfIX!SPr?L9HC1^fBtg3UoJ;(fE>nwf_b@0 z4((t$R<9Oq*U0fFL=N+{a*SUm$CNNRCWgx~Btj1L^>SPk5*sPUfDNKgA&8P=i;#}d za(D?T5pqh%BOz~vJQs3VNS%;XLIwyqFWP$xc`SZEL&!eSpSq9((_IO3RE#PKDFKl0|YXULeOb zZ^6o$C&yPYA3J7?zs;26KQT{hr-@?|^XBdi=69Fq;iyy=PG_7HQgCC8Y~a!l8hW2TyzueNfS{gL78 zcNzA5mSNEc8UDSIA^n96>QBTPYmwpnZ5g@?2I-_LG6Y|cA^Efn8OLOZJt%{3gADe& zW%#jG21TuCvq^^AQn4nBWjLKHgGq)AtCD2c5+l}cgbe?M2<}gySmVoNxV1>E{dqEk z&XQr!G#MIQ#Q5W6cs5do*>*DUAu?#1%iv-xLs)MaihIaV-C2fB>N3Gis(}CZ3fQy? zuIekH&yOoG>}~~kQw4@ztU&R}3cNj7f#Lfquw06*w;#t)^ouu$on1+t3Q!G^;>sUtueBgwA)Wz@2s#*!@$A zuvRICyp-a)U=#T_OY#1K6pM~aaY`v{*bXVYs-?&%7j`IDio?l5Hb}93jTD*wQq1#_ zqSs6*&P(H*6rHc~wKQjR~b%SCLV9DfCC_Qkn!96nr* zq&?*rSyzrH(sG373I=VWU>!x2<91*<1}`p0@N8j|1^?)rLpknQm!rk399MgnV^7y| zBnX@CBy9V)*JUUcwtk?n`E|nf>+v$I6ZeAC;+~+EUk00`GI)fSVL?C{ynV_r*+cM> zCWznJmtoH!@qM2%{1NP=R29+wODTe1l;YCuQs`YQ#f-zHh~8O>vQ4F^E+~aOsT65p zrSM%|iXrn#@ye|f`3~Y9Hmnp4#-$kAL$p;Z#pkaj81=FQ>u#5z@_Y&SffAh9T7rWW zC8*9SK~!`JoP$aPTet)Y_Y#a7TY`(jOWRb`{!b$KP|@I>&0k1S&W-| zi*dE87zYZ(y*r^8-XX=%_btYW>BX2ot{5+d7h{oeF)nEp!>nyF)_f?!_6J3{-B^S# zhlSj7vWV}5l)2{A#Yg`rpy-KO(;UCjo=fT2%kc$2-60^UQ>YP zeBl?x6hKS(OM1d@>MH!FZ#Ke*68=<)@T=T^<>Qy|vkI^0!{}H(q}%eLQI-$iqaPq4ioG_8!i|Qbis*7UiKbHV>vN^C0yUzTo&g zcnuNUs9t%vr`QBl zF6MsB5p$3OoijO@w<`zv<-%u8%)#|lIcS-agWKbBaB6T4HucOwP}>{~c_VmI*Rv6G zI2+yTvQe0u4bAo02=vXyNw;itw9m$Pqin3y%tp#b;X~ieLe9x7L~YB${Gu!jj?TjS zrCHcGEeqpW7H;6i?h8JGe6ZW)*-*xk7;=}?|Z$K|c* zxSgMlrigTL-%3Y?b2?TINr#ngIv)NOY^o<|=yg5~8+VFN!39s)kcNkg1si-)8deTX zgG@IK$9|`x`Ee@lo=rv5_Ea1!NJVi(Dts5D!o*2@XOW6ftyHl;OF{O%6tq7s_E5Dc zxR@cBRjX6rIXeZZBU7-YpV)7yr{MIPWE{DYjQV}aNGeOljOb+a5c{;#V!yUR?AzLQ zPe$rj!LPcTgrFlyXxy9x!;~Z}3`j!Jv?Ls|NkX$;k~scE+<%yeOD7Yty)F@P8G>^a zl!$-R6QQtAgj4TCH2+P&tj7sBcPar^^$AGINWhg<3FtgM0VC`ZFi$@LLBHb>`XC;G zf_ddx9WS`o@lah6kJE1Ph!`4=e%kR6MP1=^D-I_`)`x9HoVYK?;r+rm*o}`vuxT7* z8gYXEF8J{mV{v19EE;oSp1uN^tdMv724-NnIC@^1-_OB!0qlkcPc?3=jiooU9;W(-YN6GSV z%pMeu-><@uTpxxX%fjG3Fbp{_)?r_bU}yOW7Jq*cyLhq|lQ*r!#|3Le9APa!-4DeS zX()2MLZQ?P#hDu+I8+dVGLH~=cME}L;~JEwuR#x&H3(5(g99g4<5kRR!Ae_=Uq1y) zt05TmA;Fk8EEr$j1qnW35L%W5!OA2Eeh*e5zI+u@XRpFK?Nyk3S;TYF1F_X95E2#f zd1xithp&W-%}Rv)7l0&10AlM|EW^oTOVM?`h)vln#e#QB;8(K*9zILNHCuug zSNxEb>W98#{ZRDN7vFaK!f}N!)|mJr>+WLYtf7kw;0_IECQ`wBz&7iIPqv9 z1_%yU@U(@fZod%64==#E&;{U@3y}B32Q$ii@Nb$A3flXi`(bZ{hj`=sAaAHXnva3S z^I_{YAC~Pz?2gYvbKpFr_MZpSJ0i}PJy$T3=VIMYFC5t6g_piwXw%CJZ7*0h1%G}vKCPJztAVpI@>uEo{HL9mT@VuEf)_(w;3VR?Il0a_J;oU?TLr^w z<3xOLpNJc6C!%(j6Z{rB3HH1bs*g^9SmYbcqwyhl zGV{=f0{>PLHtPU8afj1?~j0fx~QEZ83DUzfCyVa!vVPQh9Ref zflXj&Y?Z)WCJ~H%35>qkBVe;VYNp!b(l0wauC>Fn>2_%TXN$dCY!Nft7HDUSC);fh z?q!2NYBpH4%NkeaS);FpHRkRajwJ8lkZTS{&E8><`V2!%hhgy8Hx$|nhT?dKp;)kQ z2;TY(!O{*xaCNU0%zdm7q-llfJ%e$6zIfiyelS{gS&Ep4C3dJ;B5H>PM$ECmOBD;m zZykg#vj!pMpE+9V%;Dl;j+|cug}oVwcWwir^34qGE6woB*$fX_O|iSo6d~hGVfuCe z&K3-S*Qf!w`>a1)v-)GJU4Q&;F%hv569fz~LB>sENTY?A8H@dCKLo7nhmnT;@cXn8 zwgwu(O+25uf5;HteulW*$xzhG=!^KdeQ{c)FMibbfq{D;4E=5Z8@T}nIT@hqyWV)7 z-y7S|8-9;^p-W0H)LHey@Me8%U$2i|#`*|5tB2EpdQjKVgWZ9i@LbpvE86$Os%^UP zo31Njp*rX<*TK8-I;eZy12b}Z;G=C1#NE|~N~|_QO|^0RLU#-a?v8c3-Ldn47Va+4 z!gn<-wBOPV8q>Pr*XOQySlSg0qq`#dNf*KC?t+(=U66dWGxXMWhEzO9>wcsY)-Uda z8|^!ZI9*39p4JhCpF4m`I^gQa4!HYJQ`AV&6!&vY)L+y^Z;MIIZJ-t=YC`pDgPjroSj&;W?33zW_QB;3YtH)3HZ}cXv-EzkPxF4Vu#G>& zt6bk18}yy63;f2UyT3BU*Dp*ET3JlgXXbqT6Z@g|Nj&5K$aFGWS?rY$?1uIS)z*@5{)|oh z^^{3QJ!RU_PuQKKk6D_^V`e)35!;&hko7t9fQ4&3V8>iq*r&AntlPzVOuzFz)_KZZ z_BQJdYq)%y1$Mj5y1CzCvfP{E+5HW+p}VNr5uQL6n zE9_DCE3C-lGPBQXWT&oPVvd48RyXY;`;&cvIb1%^0=t}NX>R9OLB?5@ap4RL?r?^U zb2-i0rJQ2BPM>6MYA4yvaVOZ+xZ`Z!(PK>W-%;i|>L`m`e}t9u!>s<>Ay#dBh~=y~ z$ozL5V8j0-_R5l2&T`HM)G3+bSp(~9(!gRD>}S_2_A%YNdzrJ|Ugke@4~xj#&DLMu z#R59*Vs0)wS)ZgG?7{KvEa%@gHf-cJb|P#mbK19s@m2*huu`z#<@IcTO&xptxRz-f z)-sE^HO!{Cnhj~HV!gUnvG0>Mv(rhNSkm#0O!Bvq-DQ<5I8@HQ@079Nw-xN3Sp{Q@ zr7Tre&Mw?8WB+=Tu>sRc+355VHtBRRb7@=5FtUjCU02Ay>?&YK#Cr^pX8COJqC9p* zn#-2n%wZq3a#+yhZ1yNAi%mS1$tr(kuy?i@%ql3IEmowljHjurzHcfc&lGkvFPR;< zn8Xz7Ni5Sbk@-a=u;F{-+2?n0Y>QbOo3${OeJhJ$z3QXcFoP&IJUfyZs;p;UL&BNz z#X7dcYb|SYDTF0DtYKew1+(e>gP61^kX_SQ$v#J{VC~-dv%lWU*o!Mm*rBn0EOxJW zKg4tqyHdP>&DZo{HzVdV$G3A?@q90KztNLvInHLbyJoV9#xs~pz6WEf?yOhnRQCFr z8&k}h%)HJ_V!!M~t-rd7th2roi%uQS9{m{0Yz50K;*JB`HEA@vO(WT-K_l4TGRA&) zkg&HAcC7KW4cqKx%~qTr#s*+0YpS|3&iR{6|T8 z?SGPf32!C!3tmYEjCwA~*MB1U^5ucV_1Zm2;r82-rnDQ9_Dh>2L&jZ^xEWrOEc|s& zvf}1xNx+^HlEv9aB_1mdNhA|VqHEG1dHZ*dgzoH=#O>cE8JDM!{8?Em+2v9tSukLu zM5C=tvh`k>#8p`=d7fV&iCmQ{>FSy#k(s7T2C1Y-_S{d9fX7NUm~W88KU^zGEDn++ zO<68URP&X@ADl0VT{Bw}Gss;M{b-UTwq(2{aq4JEhPp&jbZD5QCd5KQ76T;LANQ4f zDby_3^4``)JZ_DsF6ebsYS`-53G?V6`m+YL5bV%K$hTf0-cU)eNA zXYJd$*JA%S?Uel&C)56>gtzV?w}y)!+KPASG?XhNx+qnT^iYPh>#aOE zv7ho@x|#CY<-tmswvBSkY$zMb9F^@_oRt0gxhb`Mrz>yN%u%j*<)gf6u|(NEFhJRP zr{JTthA9)Qqm>a9r_{fjsFeLmQEC`uC_P7JD>LWiDQhDOmDSP`W%9vt<&=9e<+ooO zl?lD8m7h?joZz)Z842sq&ssDwPyR{E1Er%adCQUo3JQ8?Dc`M_* z^0MNRvij^5<(%hD%Gd2~D!uyMQPzyUue?0>p|UybiL#;axiWP3D`l6{rRu;rd-i}Aa~3+=STWla8rdP54E-8TaOOm=Us>KD>sJog9~kV&RbjVy3U@z zZOeE_2KZy$k=%acD8Aalf#>aWdkymWmr! z&zQpXb*AxdGI##QbUIh;n87DYX7OuBXY&y*b9nMqFTQ`yJbw1ke16E^hZnRi;8VgE z@z-s9`LYy0en!;r)hu4dE&DDPwV79N9m|#c-tIsi&w_ZTqrp7XX$?PoF@(SHSj$^) zt>bsR!+F)y2=2B#k~jaifsYD}=3_U+@MectK3gS@pF0`H&6DGKxJv@(9TWMBONm@H zCy96SNah`Sr0~zpq84#+D$kpf#wYep=Wp(%^GI0+|Lv2>m-ox!rypnWZdKXb*)N9& zn&$G@7r8vHE{_NM=X19~1-$2*0^Yc#kgpCX;_U_(^SF1#{N1(^?i5(c)2+(*q4#C{ z-u80-B2da7SXJ!3vFOS;KQ${rK?C%XccAt{ZTg|!A z5aNw*i2KzY;Lm&y@~Qm}@lE#+@s`rVTxHe~-mUvluHJZ*KTkczw@*0Ez1yDP-wp~c zTi8kd*!mQ=`R^1DRGj9yeuB$pbe3n{JNhe ziSOUh$S?U{<`+z^@SXRs@W|q;e2Dusey&3kcRAU_cWt=N|JgNjn-9%=YW)rFzUU@r zy>D@i>$mv9jN5$ngggA!pF7-P|6QIDc#j`8z0Ys9+~>_jEu2qzz~j^(@?nP`@>8LY z_~^lpdBxMm{89N6-eLMvt|xeH9gjWZPu4x>l~ynKm}f8enevx>xW_9VtMQueJN%ko z40*%P4SLJ#AHL;*Men%oaAdC*OH`@ee-5^(X)I_a~3o{fj^I`^|^x|KSTS{^6^m z|MDfn|M8K}{_&r#ZD?Y38%p}yhW5>FD{_q6(sNA}dbvo2?i^5|!#&zj-pY0~`*b_% zWT;Ae)~V8@E2@ISAy{s)YP9RN8g&@1E^^w{Df6*9HK09R%WF^fUbm;4V>Re_nFh%| zYLNdVO&YLCldk;GqyYC0^u4YFt!dMd9?b4Y*wK*^)jQGA`JL#^-cF?6NpRg3ccu>1 znLc;xLYJ0yp`ycGXsS+Ek;BxLvIOHzN531Tuj)o0PIaRR23nN5T8j>y)uM-eyHl&k zANhE`J3TSdrsHe1Dd(cL;H>nZAM1Kh;iVpAXresF_93SOedueKzErTNFB$IdOQo8I)MmaR&D?27CGCvp+$Y;B&Tb7I5po3;4?>vzHcn_qBI|ou!TXWj%VNQED zo71k(<|Lgkh}IMhBKsGE=!LxnC8StTm)qh~458H0A*3xhajBA_^d@;Iv719F#B>;yg$|>wCx?+jd$>6F;k10$ zaI$P;O}D35)9MOq`u4_}mcfQjrr1!Yn>OS)z?OX0*pmM-TUyZ7j>gQlqb^(Q=*)MK zi{)fbKlAM=^pQQ?wUUr!q=c58lTeN>qs@yMRqkYz`iGJC{|udVTog?h$5lX7Y!L$x z2>}HK72)Ow2ufoB0@5WQ-3Zcs+#SuG-Q9)3?PCXacXzk1UHHx)&u8~`=VoSSo_(hF z`Hm+@cOL(2?g=Q=(w6QP+LGHTTUyfJj_yaATufk7j#%a?hUD3?ENE zv&PelL*psFy8~SfaG(*Z95`#jf#xzt+FZ%yf+NivJb{v8C(wxP6X@!%2^8nTebgEz z(v;g1X}OUT-A#2O6~T%6sW?;5DbDnHt}`8e=uG(|TsV8pg*NPWAw6|hD)DxuQwv<_ z?_*ceHg_X~S#H$tfE&H<>`pCS?i4xSoxVSGr`f|j=t+hL*^mcick-k~o}RS1*^}1Z z_T&t=N#vh6i8NX!(Z-*XXv~Dkv|2Km+AmC|i36rkTKE*I;@r8)w^Jy2>{PPPpGw~k zO{InEUSvGgixw%o=;v)Oa@6;xv^a07-r`M?&)$^De8{=PhdQ+R(5i0J$kKZnt(h~8 zI^CH@?n8YkH!AbQ*-nAS`R zCa?NndUP?ELi&Z!KK~F>n;$~fw?k;EPAE+c4<+m6oLBcal=d2iQBZ6cJy;t?lV66> z^5NlhH!+<4Z3?Gu@51TN$OyWY8bNcmMUef+2s&#SNfR?7Y1xiQdh#ifdX0%9{mdxR zZi%8lpQ7j}=htOs%pmn0GpO?840>r1O=HrcDSB%(_Y;n$eDfHJOo}1%jof$iWenw+ z#L}Q= zbKk*uQm7A3>3?pR1B;|l3-d?6_p7t-{Lg>*}$h$h$+QEg%o?ORermo663DHYDrvo7XCk7CkT zTuh4d#oYI`gnY-AkTkZ0R?aJ-<)=!h>~{&R*5W)pi&AoMFQp%mrL-!qlpLE&>HNl0 z@;X{dhwqe<@t0C6>|RD~MrHKRu8hq5%g7_8jDo7lD0oR3P2F8aW6zb52KNoW`iJ|6 zYnGF(c{$y7DyPH{&fUu_r$|{jwXG;89ig0NUM#2OFUsj$dpW(~9KPS?oWti-K_7!F z=vqbvZI)C}_Oc2ZwWoq^ovonUCl%EBR|ScCSJDsTN(!~Fq#eHeJfV_CmsV29+)B#X zTuBv2DyjTtC1t+n%s$mBG8tS&Z!M~5rArlghE&nh^eRdfSJCT5RTQ|Ridv6XQJ1^? z-lr-m>MW*}+G0{#is=ydu@{2Hv^q^prIliuvOr84Tg9~Zh?v4|i0Q){F>m9m>6K!-`el=y+b07YdT=rB`*6C{Uzh6zJ|5bC2g@jfOl91;}2|ad{ zP_mzdUc^brw?IPM>m}5_LPGYtIRo&dgc|SguZD&o)?;cY#Hofd{Ay@+Yz?L7 z)KFk`4UL&!Lx0xSkW#3jnA0`X@lFjjys4p{e`=_>doA79sU^#iwUlXJOKYaoa=qr) zQflc*Q7zr7hy9|P)X znsGfXwyLL_6YELUr=EsJ)YGVxdNMDlr@>OrDV$qRr&iaKw56VKsGjbgtEbdE^_;a? zPch%>>7+^n>Go;hKIaWI->iWSh#KgcO9S1V)<9Py8fbrV1I^8Apa^jT4U#v|v1R;x za|69mHc(t!16{e)K%?(BQ1R;q+Q%7(Z#p$nw_c4jSeuJUBWa9nq_^W6X}@P9l}vA> zF*6$JT1q3u=ke>6jTG6~NNtOF*meB8rIF_DZ{#e4M!IsPk#65_q|2`wiM}+F{9hx5 zc59;k{W%L!uZe<2a7Ln46NNi8(J9X480ObR8R1Q|CBBJnXExFI!X{FyZX%T?&QM&~ zL>E^#(bBCvyt0XU9O2>4G|~8LO?2RX6Ir}$qDIbEeEh44j8vOxdJoQ1)Z&Z~y=H1K zZKm?k%`_9u1gB>DH>sI+`ZZHvSTntkZKkZ$W_p#=OkO3;w6?mL-ZnIo;rwRuT;5DG z);Ck)c79ay--r11lg;$zLNl$o(M(exG}DXc&6M$;U;E0_{M$_1Rps$At&v>a=PD9K~0?%WTl~?lf4u)SyMrW1}ex% zSHXEa3fezRL7#?mjwI(xnvGGArL}^FK|vbhIcIW$g4VhyDAa>gvYA(~cXmL5t!^Uy>&i_A~%S#@Y2bYCB z?z=pV9$YMVniF{1PCO6ecwPqZJiXq?)8~1N;Cb!D^E{X5eGq?!I{qx5mh*h_XOr@0 zJiwpz$pT(Z^Az-Vj)L=qc)2uj&L=OMEM7(nwxU-EUt7mDc?!!30N1vA!*O`4>cP44_w0bGXRzpFHxNg1a z$m8d_7RGh1nCo5x*TE*PizB=Z z{LoBBoW+`ZshRekYNii|n@N+JX?ROBS!`@3zfH9JOB2Pt zX`*hAn`p_+CK`I7iRQF5(XYKtFSiGC(G(UloZ zv@EcRLZ&uR7w0Bg!0f*!C51K8NuNg2a&07kG*acLMp|RgNPDyz zN!hKDHnlfU{eKM<{k(xpZ#U3`a}6Xu+(1KiH_*EE4Wz%gfpaSx=tX%0jm>GGjD!YS z7RuWxuLim>v4Jj*YoH^h4YWqPf%1Ab(D;rG^yPCsEqu-yO1J81@0ofUcc7k+HS6im z%6jsc!?{Y;^|U*$o~|X;)AO);dg)b9cP7-+p|SNeXIMRj@OHH?Z(sNRsv|$%-ag>% zZU}FGPx5xyxTTI}t*WElynTMo+v%>kb$pCeNBTi^G|-c`*{Gu%W_7eer;b8<)KQmq z-amL>OJg6@(#{KrTG(TscLjB&Csu< z(S2&^Q-@kw^|6NY&}!&5XE;S3tf3oQYsg_~4K1jvp{IqM;gnoMULiG<>RCf2jI)kS zYiQPh8Vc@QL!-aS=*JTowOr;br^7P($r(@8OJ$^9C!^c~8Qo5h(WpQfWx2{|qm_)V z7|7^dZyv5)O5ff}>Dg^5wVjl5PPvpqR!gaOvy@s(q~w(%rCY&L@^_cg(Q&-bW+>%M z4JqyZ%UMvbCDiMtgpAuHWYHp_5z8brpjJZPW=rUJtb`=fBxLI#p+{yCnmtfL9eJOz z@DuNA-m4}z-j|%u`;@nN-?C>zHCYu@)1)}wzx3t&XoqSVZ&ppZoH6~OQ#G}`7gOAA zG4(tyrgb~SG-ipIwn@aKn=Pi|2r*sq6qA-U@7wB&DW|)bn!Z=j(#KV_@y+RMO>76(qk?L9T5T^k!=XRm`uT9_1AzORAuseialvzJj)x zRM6+%6=e3SoTfi1r>wK(RKA<@x|fzyUUfM|q?eN@sGL+MmeY|D{C>Z3(&FQdO;5|n zijP0G@^Ogv(lRO#m(jV@GU^*pMxG93lxfqh;oJ&(bIQ@B-&d@8InS3^e?1228C4mp@4k$6;Kyx0j=@p z<2i!@YI@Jdd6ZB6tMkdyH=jo9<3j8vJZF&D=hl78G#a zx+@nxrksB_mtxlC(tyld+HRLimg>1Q_fif$UX(*xGjqs-v#uBvESeuM zi^l5DqFt}ENq1K^B^PDWO4n>U&?}n`-^`-TE3&94F^k5H&7!NnGb#93CLOQMq{04~ zGIbb`OtQO4 z^m|1T`NbvC9P=dF|0$8q?MbBL1&OqlbFxy^5^2ck1lm)dK-Rtqv~)lMy}uJrCd=c= zEhe74OykM%Z5$2S9!Iyc;;6zVj*kmwQvHFM^s#Iv*}BZ6)GjkgdM1|Y>SHO-Czhsa z#*)U37}~xdh8#j;X!np9>i;O3!d697eQY$XGl`}RuV#>9(+rAFnL$PtGwAfkC<<(e zq6=A3WHBy^W`B#MjjfT?Han6|u}IqUD}rkGM$n`}&egJupvu2|4rhNjMHh$D_VMBL zygiIM9}J^jC1KRjA&l;|htkReq2yB>O0Vqsz6F0n==#188c`TR@wOq<_$!!J3c<8w zb}*IO1e5nSKEJd(h&E*f@v&MEZT=WY-M0mje@Y-p%>rrds{q=vE`XNB22j3X069FG zP9K&|CrRjZ>OPq7v2eqmE-U=0|1^KjarURcvwjpT^&=NoKhjq5qq_%vsk+dYbG&_N z@z-gj-ZG6sQm1hq)--B+?!)bn58Vp)p<{!6Xu)-F3T*Z!m8sq|zpFP5Z1bXuQZKq? z>qUdVPbJrusT7tnl_E^1(&Q&o$Y|*ldcm1obNfvpi}RCd7oY1ha+*vfe<#uL)=Bgu zV-oc@pF~5Rds5%!p7bfmllJxVq^xru{C)ADRgNB{^UIyecDmE0WOwRm>`vAX+{j}- z7aupW>gGn>kGj%@0#_=wa-~7b}zdMn^HYe&9 z=S261IMLGU6KPWYM0(2SLlgf_pgX%J5RxZQmEi>1ciWL3HaXHqcSm~n&w;M*aiA?J z4wP=>Kzet^)4rzh6I~leeP!b)VEj0e{bxm+*ILouU@L0v$@ecgGL{N*#?r(Qe2)6w7+ToG z_c?JHLmPjLrh%JBQ&z-i+TV9HeQmQOojgmjG`A$H2NpD}*@DzuEa>X@QPjle$L+#K z(e+-VDB{RSx}H6f>`X>d(=BtlT4PR~$D5PMM>DcnX-3w5W@Oaaj5;Vs(Ak6$B-S25 zmgk1k$zr~Ti{)@S@yL`$%1x=<*_2LvHKE^YO=w7<30ZbEp)q7khDpYxs$)!7&kiGb z(J*ovHH;qJH=^_gBYN*(L?IsyNmy=3oqY_+siPsK?=Ya+C<9v1$AIP>)~B)zeG1pt zrxBOlVYDH^+?pDoB^72=~zD+ zlG%?!_4-lG*}k+nuP+@m?n}q6^dTzkLn}x2p@Q4J$*sCKsao}>oez7FUtKSH!Fo~h z^PcpixhG9_=t=9|@HM4*J;=(r2gQEuPSVBQX_TK7eRRxa0|hRGU~`lA~;uI@&v z-rZ>L@2(WPt}Au)?Me;pU8v8-E>z{;h2C`NLN1#*Gb})zE_PCqsua9chVb zM|!oj1DOVOpb(V~q!RK^5N&H0{8ZY7fPlZk#7%z$&40gz3)6lJ8EbzDzkdD{lBfI> zjxYZqbougK7~}R`a9;RL82|38pzruqc-Q93y(+O|)H9W_scF?Syei_ISk{}nzGMxT2qgz7#NGEyE08T;=G zp*`*kW5VtUpEutXmi@USSWmtqC>PxpjNjZ6N^na!D!nOuzIj9FWqL!<%DpahJ$_Ai zsd-J<8GThqY`G%z=y*j~>~&cfxb%`x!g*s?a8c+dy&yQ=I4=YbJ1<0LofCWypB2XT zIxGAOJtGJkPYaPhP6?k~P6^ralfvVNCxr2wJ62tAT-blIO?cG5P53=o*oNtnZz zduv7rLVAu;a5>T{bm`eDP|zMBbj@zz-N#)*irp^ZUiD7F{z{8bJETQ8ov=grxof*H zpu=`y*raWO;oPl4-$z@7k7iqhgE^ap;=`MSk$iu%bJI5pVJkKW_us4+ysg&@Ev4%O zwKIGzzW-XGBw~%QX2WXE@>(Ud*{>1~RId~^URoiDwO0s!vC9R`ZOeq?Kb8s!6PF6@ zHA{r5Ym0^UA&Z5C_(j6;9Sep2zZVDr&iwm;y7|J6>+^)udh>+q@pFZ%JLU*&zZAj- zCxuW_D;GSjH4B}GGz)uXHVHx78ifzv8-zT^2H~5eUWmI?C!85nCm7DC71B1=2;2UX z36CKYx>ZPpVP_=5xPB6Wg;WcpSBVAPH&sIWm@46Fex4NrWKjCqSuQ0FsG{J6xw{UTom*CejML02jvM~INr%)K+Asl?- zCVWbB75e{i7EC2h!br`Dg28e}p^LeL@SxRRSm$IXL|uT;BZLVXpW6s5)0*!KXeEr4 zjuqsZoMpDmQm{6&5VH4-6xK{I7fziWAv_EiF1&thBD_j57Vi8o;(Om23X6Ig2nh>@ z3T8%n!jrAKLOs(FERGEp+NKT?yl)K4`|1Byp0xU*Om+XN zR15u2S(o-fsb29`nKk#7^5TZ)%Axz8D5EbvR4#aOPkH3qZRLZmH^y_***x2&G0RBKfzgHAOm*WamE{`am%$vQ}tMSaD} z{YDkaU)H6{gywwZtv%UFmpiG-t^eYc{f(lPdG2A#yU77c`z9advfY!E9dElRW7-{* zCk>#qaI;b_NE)T=+-R!I-DRMBcT-0h|5r=-O23aX!&O7sAxTYXq4%#fCH`~k!5uGJ z4S(NhUF>|Z)vW$l>*X8D)<*p;tqDmhT0?iwX-)noZ5=HyY&~fb+q!JulvbsWb*t8k zA+380)m#0BJ=}A~XUCog#pQcO1exqPlO*3gHgcJj-k>MrHk)}_Z-|*|y?0ETb=MAG ztX*gJu^D>S)TVK?qm6uSfQ`xTRGT#x6*h&B>TL$f7uw8rUTd@P>kgZuwfk-K0#4bK zs$a8N*80#UFYc{PuK_=7ES_`}wUD}~Z*vdPT_y}sAj3J=tfqM=(~G_=#_4)Xv=?zqKPNcMe7#ji0-Bp ziazR>iEe3BiZ*-|iy|LLMeQeRMP)4wqSuR>MWU)XqU6;1qRN0pqB6&&q8YbXL@|?t-YM{<6qv)-}5q5>5Xqa<}~<8Z-2_=(}pW=uCD8rv9QMvkX#Uu4h!4yM1S7y-l6<*6+%0 zGdh)o_hA=o`!TgGnrzq*EoRv;fEjlf#5!jTW)~l6vx;fD zO#kQ*wtnnTHfXgz%hohxt(8XX>6c;bXN(E^e$|xScOJpE>@s7qMkAS;Vic=Yv1ETT zM>F5YV_36~6;mD>$BtXrFj^{Nb9;aV7TU6oZ|qo85a+3#bYL^AC$QD4C$h7Bo!RYD z7k2KwD_a}t&Z19yFm=%+*05$W``vdcn^Nk!(D?87C@ ze@-cT=uyT(+RIp5OF7evt6=fkm2CNiN_MiMiaoFqv!`#w?AEesw%=F68q}rCd#{vr zNRzQ;1~tt5dJS7Atz~`e>sZ3aI<|dPJ$pL6fvI2TCMJ)8`B4#;vG5h4U zgf0EKgo!pSWd}l+vC%!3v&MtV+1>ONOw(W`|E_!`bE{m%oW`wYX3tl%_PJ}=0k^d* z;m2C`Z~Zz}9<-i)=(>Tq(*{5G1Z&I%=w~793<}T@SJGUkfW!jqeSn~dR zZ1v3h>~OCK?3nTa+Y(`LRmxgTe@{e8-8);wdDQ=YS) zU!Su}i(jxj=a)?F?Ms#;f5pz?HB*25ni)&qu;G?(S)Utk*}bB7tj_2?GdS~}Ez0=7 zehm1?LfgXy2y_1~Xa%8D=SrR!Jb`t~c6G<{=RtiQ9}cfPab zr9W8Ou%B$`>7Q(O>Mv&A?>7^-{$@u*{;((i{;=n({<1S}?X3AtJF{!}$6^L`fOb*` z9NX6cVLdzIWkg5LVc~necj|;uew|RbrW5vk>x8#%D(JC51$wVlpl_>+{pHNB_v~NZ-~Sd)vF?>y#cCx}*p2wg;ST zd%|AU6UMiC;-5(`oXFumE^WPFqS+ed!+z+K(GMRF^uxjKnkWp`#PIc+X#1)OFQ@)E)z}}S@Arq)ObZugYeDt67EJpM zfNkUe*l!ttk-r9@yW2qS&pHru9}a}$$U(TBHwZJ158_Ow!LW}QjK)oaarygTbaK|l z&_->HysHgUQyuil*1@ZTI{XtqUCap3h3YC@DBkO$ABLc$Y6xy!90GkEJp{z*p`b+% zb$_|I4@H4|D5l>Z3cca_xSpktf&=>K(bWKTz6SWc!~oM@8erKNLtHB~#Lwe~=+?&w zT|ov_&EaW25-+kwB4aN33-pfTveg2AzgXa!ttA$gTVm2F zOT6ke8ky5a)2Dw%F`#i;)UjEVyBdkAv+nCfp7YE9{W- z)DC$j_L!My4~H%G==9MZ+sBND$E@)<+d3ZjH6C(12iz!jfZAaP3{i1}zKbJzRXgIv zNk?q#HUWW?C*Wh<1Y};AfCs%N!g|_7-RD zwm^4$pXZK#H{7{Ty$96&J@8QOft8m%Ftv{-o_cvAy519K&w65r#v}xJOhR$>B-FJ{ z;yi@Oh@CJQmL-$%bl+r@{hADQ(G=v)nu3chQ_%P06xffP3ZKNO+@F6c#yy=1HGMDa z5A#CALNC0&?uD>^-XJe;bg1>lsFU7sQT2hVqYo?!eYkI#5B7fcL4?ILyh)sf$hFh3 z|Isw4==x$zpf5b-T+aJqY*#<1I{V>3u^%D@KfL+uhwxGUpm=|@uk^==d;V}3FdcS2 z(_v6E9UqTP$J+Mka25sNOhy2(DF97R18`9{5Z}3fs(ND}+D``Je#aoJMG*Y6g79ur z5K^87ai&->jQoQUS{IChwqR8J4Myg;5O}17pv#&N&Y%i`y=EwOP6|bzickblC@MdN zVu5KG=0t=ce{L9D&V}KpN;nh7O4o(s^1X0qXhy)yGXi5vBVe#60zcnGpjAH- zp#hP2RU3)0Bau*kkHjzYC>YI%!nk=+7+$DB@PGF;?ZOikI4z~c(*Vf*=OVN_-{O{ zEfSCsnE-iH0u~-gfaG%m!i*9zz&{bnszf;MNyOIYiQHWx33hHt2+ifb(d&}neIp5m z>dClkos5E+$>=yY87XbaIPfJI-wacr>6?Oq<(#RvBL$Zqq@cQIDh%yYu_h@MJr<@S z_+%>TzolZGQ5x1wOG9mG8UnVaLH%wTmUd0YV4HLl#-!s|Q#w8!NQc_nbo?Edfx9jl zSe}^y&t)07btVH|Ke#`*5%&@I&P1=GObp(T35{!+c+?>aOU$z{J}?Vy6^AkIe3j%?W7&Bm3^v*0~?7IuWp!jGz1Fxox~<8IG_xoQs7N9EvT zKn_yNa`1Cw4ic{B;J{ygZk&sO-nr1t%SGpvxwv*Zm$SWcc{?y0%baJUW6ErJ%$bc@ z`?-(&v)L%>k%z!>c^DX$hy9g#aNC@RJy-J3^>-d77~~_|BOj6J`EZ+;&waY{apY+} z0yGM6adZJJ0t=8)T!00u3$W&N0p@-zK$2D=hS?S3SX3e0std7gb0L0TDuns>LQK#p zg6)JN44PSlyRsrwY%4;qt3@dJQG_d;1JHd!F-F7|!%SL?K3j@$_hK<>z7%7~z!J={ zEy1Vo5{xb{f&ZEk&Z#WHq&Fq#sa}fsfu-0zycAzhieZyW;T~3su+&n-l<;FCX9KP% zg>g$Mz8xt=>y=U@J}pJ>uccV8R)*19W!Pd|#_P5W`EF%66Hta;@nvwHUB=m%WvH58 zhNksps8^Pu_$22C-YmnImu2|=y$svb%Mm!B9G{KLQDR+=c9(Lb`IqBTOgU!}l_R;L z9IKnlabZO{-fS<&kAqy!m*e%la-4h1ciQ}2j)ZO%Fc?&Ub0!r?u&%%l=L*iStibE2 z3QSF}z^YWMn7#aXG@52XtWp|?ZvQi7bDPDjFfOO zvJ?0*Ta17bF~-Qm=rBi&1Ixrn-6%%y-D0ddD2C~2F_vBxqw@nXB3_BH@v|7u|MGad zRAUThY&hvu!^OB7BFk#%q8eYEso$Ds+?+wnj>@DxR}K(j|zTEy3_o37%AQrbvSX=JO<= zr4sM~95!x|p!;qfW}gIWj!JOnv;-=bCD6Ggf$>8L^j}EO^SuObzeup}w**Cigoj)c(p_d-BnUdTrWl77AYcI__3A$-Y3P7 z!&1C%lVbg8DFQA?@%@UFb0K+J_c%}T5l`ot6t=IWsCdu$D*s9G;+qtmeoN8opA<6njphhCmGJTa#p2>3{xh{@O`QbavvFn`pK|tx(q#oWJn9)%$G13R3l}a zjVnWVj1048%1{)~<4)vhCd*)-Dnqw)&bZ8wVRn`bgJ#LFDMtp2*)puklW{hV43UL0 ztS^$`Q88y$h8!lgzcgQir5IxauB_{lh% zhRZ`Py=!C`&Bcj}D;HZX`dohUdxyCca53g`g#XW*%LN{n1DEAI-p@P@Yc9z=y=I>F zMxKWjo|i2=PxE=+W|i=Gc|JSw{O;s=_sf^z1%H<0T%LdaZ0^}SADO(Y`7;kolffrN zhSVfpCJ9{P_<1b97A=EO6b}>5(+uVR3FiL|kRi#R$2E<|>CMxeB16YXGE8*mX}a*V zC-OWv@HFjs`7vG>);zAUyxc8i_+~D{>ftgt8_RIbK!yN48BS~SG9D;Hl_uwm_LiY@ z4;d`G$}m|?hMG&)G3{!0Se&l1ddD?$D<2`cVOP<%sz#ETNRpORqU5eaUQ1hqRQu-wd9 zLaQa1vV$nS#hg2oD}iU41j%s{ltxG(4&ZjcOM;nh5;!_=`(Y!&=}{8o z8A~vj+ojF@`Tx0{TC2)!2e(^spR2LsHMe(mQ@EY;=Jw8o+dVUG|5Ugg zJjd;!gxf`HZXd64I~mLE*-_5*wdY;?2!U3^`i~r-PLUZmC4{no5Mvuf*gU&iXB`#Gmv^9Ez?)&h$#?dQ_s- zmWLfxiNixHF{WQ76l%PE{ayi!*AwpD$PX7wHs8?Xck8*r`RSwHL<%l_34(a}Ktk_zPP0Px$ zuCW|*%gT|PSq{(Wa`g5q$4Sm^${bgYUc67TRI40Ac^^f=`zpU)aON@ZyDa5>m^-{L zqp_h3qZX85qO=U2d1Y`)D1${%8G3q@;en_Ot4zxfG_VXEyOd$^_fm{_QHqV%OQCzb z6y>{1aeH+sj1;AaswhQcW+_^tIFH$zvz{FIaa1XG>6Sv?y%Za zcqW%1&Z7j0#wD1hQi7omi*aRNF_IP(UK9==ZDuiw+i`>%szrX7hgO z)B@}_Er8Ie0ITojW7eL0m^J3(L_$71o$}G5!x`1z@?do#4^!83DdXqCdFU`U4=oyb z@O(NOr}oX}+}zp7<^AXNF0*k^cQ*EY&Bd~FxrkrG``ksj*y_jm*yfxsrNaB&w{xJ{ zl7m6g96tAygYVWkIMjpp*PqUU>fTu>ZJLG0akF4Heini?XCeJ{Hj)oz!)tCf1}10Y ztGI05RIxbB)ER&M^|feNt&GOtv}nAvjmGjW(Qv#r11DF^085<#IcDH`=NagDC5n%YqtGWQiq~Zn z+B!v{@O&h67Di%CY$UWsMQz>SaP`-I`oolv}76N&?Ap(tXZ7^V`6*0UiPGdBeDB0})YGz2>T z1;c)CFx)DGVLK%lgS3M2@O}`Q)&;>VJqX)5Crg*lIm|j0h&@e#d~PQY-}D3V^;H1w z?Fhj3ya4_QQ2_dO4ZzBa)1fneI?5uZ@xC$=^I~&clhFbt}i-{_r(xZUkp1v4Fejd;j{lVkoGhrJ@SG2Iv>;}`=EWa z4}!jXW7$4$TrBg(8&_|9((uOPi(WV|#|xFgUKpq6g-cJSB5*zDX(dmE@#v{Y`8oy5 zg(=uyG=;OVra(}eg88Q=BdTsPw0tIGkLF}dxH$=}izab?@FdJMn1rRzJaKrvCoUv; z;?yWlZ2RPa(p?^~%k{t$=7HQl?)ZAZo$I4Jc02JoD>Zi*opghp%ngo{-C)_%4c#xg z;%bvCs(oEy+}{;DuDif=z6)eQF1R(=1^w+a8;5b1v5cJ9G@RLxYwbx?QtH zrrZ`MeE8lKy=`H09`LIL!aM=rE`ZH(2K7pYwh0Uw|3v7zUxbEy5ju%Pi2iDW9W6F^ zn`VRlBW+;z+8P$?tT8mk8vlk`>&|PMLUlR;)^QS)6?9fMaftpN9p|EWn3c+nCjQ{DOa*rM^ zrRbs8Fg-q>GX%l%A&B=Jg1C-D_`WN;uu9W~im@(^-qk^tTnGI;b+EdF4u-XAV_u3j zei~|H@@+o<-#8e@TnFRTpFwDE83eV2LHILd5T0Hgh<&nw5Igd9gKq=yX43#jq6VP< zfB}%7)q+a77NTvmu={O)d|%NYW&!=--Mv5J4r?McM-y>onwa*mA8*(C;g?5028>?6L#-r)I(MzK@ED!d=#H?O$f8nK-__B7qdInns>8jPI?nO+AeZdU*lx_% zhHj}LyhaTx`QAV`Kd7S9N>vQ;Q^lyxsu-qdURsNk`mQ zbVPw`M`--$fcg!b85Yt3>D@bEalt?4c)y*UcI4|>d~Iuv+Fy1(?hk7}^_%rD|IJkE zf3YVYezJ`|KUv_;AMAtX50;Yion5){jp?&*EO6mhmh<}yD+>L>*Y`d%=OLe&YRP|W z%Y#pByyGXPT>g=1cl^lWqCT)ihu zZ8O`TyO}+nwTWq*-^h%NH?mR18<^?!^{n5h_3VAsI!5=_vfOcN*|54b?C8_gY?|F_ zc16C5Ilo!S)=gZ=elJ+T96v2*Iqu8Z(q+q-^4n5&bjnh8i0^r}_4i^{KW#CK+^~oZ z>#&I3nZA%!Y+1l`RTr?0!Sk8vj(KdM`aJeGY%cTLHHR(kHizAeRItvia%R#)&TONb z*#x19+4gE;rm>Bz%iacdr*{KeIkTRH?yF;6`_{3IakXsx{u*|?Zw;FmFJmqHrL2EH zDNBi$Fy;Pg_M>k#Gm959-~ClAy)WPYEv}MP?WZxqs zwq({RFo{`pNMye2<5`$@9P|4T%S6j#SQqzbcKkyWOXuHUba9Aab*o7a;U&)*dGA!;%!=`xA^-Ri-T{oUE= z->z)nN*6ZW-I-OrpU74zCa|4wWIG>@XRF2bOl)q)0xyH<&Svbgu88FywPt-2#<3+m zt=QmQW0*8(G<)4{!R%L$Vig`E*}nH??4^7J>&%9;f%i?AZiO+^G9AV`oik*QGYr^n zEqzwBSC6sCA?%f^F00$1%}k~aX1o6z$ZX~fVB2i9n9f5@R#MrIT{rE^jL!9DaT&eX z^8P*91))3p8m7T|ck0Fr)^=fLp6bl(y&BVRR%N}cRoLfS9odDV4$Rf5U36FWTQuYH z57Es*-$di1K8xn8|0ufq;hjj+=8b54@k>!q+cVM3?oULqz7ItK3-5{S9^Dpcn%)#W zNWCUnviq{g`_Bc@_lf63&C=5%gNr9b>$KWL24P1;&8rTIe!ki#^0y?>hMZQ>=Y6|G zRw^x`WRGp4B@LTJZPzx4o@uWW{fk;H>a%`@Nay`hk-pVpkzW1+(ZEA1KrSoMQv7}%ItsEFMHw_|r8KNAe>Koq;%ci%te^W1Z> zw>!7Hw>!7rNnG?P9d5|lkc-)9#;qA| z!_fvuZr@vHt}exs)4A-&tznUJUTury#wy2i(z8;y8y_>d()4`pc`u(cb}Hpuw^eeJ z73;aTCmK2HX*0Pb^VuB#>0B;%^?c4ZY!N3rVkyVrGA^)WC3i}{mD3zp%cU>gz|HpA z#4Y{V&Nc4c%0*@G;6|(N<~H~4<+P_C;2In{xs$KDx##PVdlh+$}8FpVQ0jcDl-SzrD`2ZS3Rnqi=KLqzAZV^gj2k=n+RWpK@_mpL0>uhd494 zVeZNEH(c4u_uLczPn_A$FI>dV?_6Z^FV2FktNfTMMxDCFX~{TA+L9+lHys~A*DFiY zCgCWWbY6z4YmK27Dr9NKe{ytCe;kdi8&411oIrn=Dp0c-6KTL*MH*qPOnv64P~C^B zbl6^Ayi28tUXm zXD)K58=iX5O^#l4Ub8oif9ONyZ2f3QlRq`M8$g@QgJ_>9n2xv^LRAgJs6ur({ct&g z9@2`UNmHZg;F%a2s~ksn6vWdfhZE=@xg^FfOQsL^r_e2uX*4t@oep$l(7^ARbZtO3 zz1EsThlX?M6X$$-Y(W97eNadzSr*gv4SXtoRX}~UODMmDvDQvZrHo}wjnd2MjlC5# z_1`qw6Iw-;*H=^TH#IcExsJLu*HhWM4K#U~h;DXjq<5Y)(!X=3(}~tIsOs$*RIXtr z{h&XKp1C}WHkCF}p4x1B`^0RTpErl`$>!4NLv!i=#Ci0$STl9l+Dy|z=F^H#^J(qs z1+>I%A&q*zkWOx1M4wtMri=SojON-Uv{Pp(H9xTRDSxr|wSWT^Fw9;I;j7y4w@9Ul_q}N zN`01Zqw2iv^#0xLbY9&Ks;j+|cAVNtm2!5`66xKvYx{2cB4`hlc)N$nEZ$3hS?{B_ zZtSD$%lFf8YqPCgY%Bk6zO9$ZtF1$e#fcwi{tcY(+QevaFRYddy=h5 zKSlRQou(f)pQajKXQ=g)Gt{E-ELG4xM;{+MM^~ksr;fkR(_^g{s5!YvXWhEUxM`Q@ z8-*VFXMYd<5_XyPy}3-+HTTkBbN|uI>?`!5_*JU3;VKPwzDD!!T%*Mm*J-@M z4QjIQ27MNMlg@m3lgc*r(Hh-;di7X8l})-uEx$32Tgz=~YHKPX=>~W$^wX8T9@mgKK<7 zB*R#)IRJN8>}|@z2lkc*0`>md=@gidQD!Rz-O< zN|wh}o8Q(nZBW4(&r~qUSQYgIs(9ysD%O8f z#R<-8*us3GB+sg0rVQi7g{b535_MGUS4RuANob!s2~9Rl!m)#s@R6|ww(&JEbiW1; zf7ZZqo+iGn(ZrbJnz%zk3*Y)^q1Ie2biJ&FLF2U1H&Podmuut5+uGQpri1kCWQWDKdCjPf`c&-|K-Pw3+{aRW5)GQj+q2Ds|10d|fw#N&R3*fqxxTQ3@7@n|D74Kl+1W+N0{Ho`Bm z#+V<%eAgBjqvC(Y7&g`fD?&|h-a->>{?7y}$C_ePs41!~G{ygVO;IRkhQEW&aN2w` zyx(Jn)?>_ZN}xHepKFfY7tHafv<2?-wZKKQESQh216wME6X zw&-!k788{0FgeN&gBRPOVXqy&ld)&MzV_%o!=7>c?9ubLJ+|{47*EgvP4_eZ!8Z<= zVeE)0In1YUqa&)^cf?yNJe(fQLzTrmT;0RNkfQ%XFOEtjC}{3@$qYCylvouG~ET8T3yifrVBoj zb47ulD-McWF%VsG)hAcHX6A;UbKFpJgB$+7<%W;OyW`#fcg&yej*;S3*Kiau!h!3VnxebFe@7iTQ<#S52w@w=EGPH^-?MZOMur7o<;(z_Lj$n!Z2)HL1)_C)AP&tB z#5pIKFYDJpY%&SLr>Q|`(h`J;=Yz29R}fCK494uNV1$*y`14XQZvGpL_BJ87KPLp0 zR)=8D(e6t){xgWc1Mv|UIxhlm9F9QGH_UHWGZOEFF&*eVX~)8cS&K^%&X#G%A6+ou}O+Fv~WERRQx z_INb99*>j667aiu0v<_9!2G!h_@^rYtDYs`g9(Xf>XwLU#fezEIuRSsC8FR{B6?{j zp;$-~ZmCK_n~o&hdOZoH{v~06X)>0_CF8sq$=I})`BM)hqoZ^R4%?()Q)&v1o|l5< zohf+XQ3^`RrlP)MDq3cyqRxU;{Mns~ho7Wkwp<#1aZJPFOvc%ppN0zEY3TVl4dch8 zW2}8TI;Ewf^xSkjav&Y!?xo}15gF)XnSm?gGw^C-2EN~sf!}Xr;Lz_3Jf@$CwV|1) zJ1rCUY+%0^GO>>F_>QY&;Y;@{{F$GH9~Wn__LYSzA7!EUsBFArnT^qL+1Op5jp7~I zXw#dGfuFN6Ks^U7J#+APeh%(il!HNCIoNwI2OT7HvB@|WkA&so-SS*~xF#1boy^6x zFLE(PE)T!h+`2tiLF2KWM3(?=E5D&)`;>4;#j9y!a)yE5Q_LD-a z8Nqz`jfzk)s0a`9i_m{@5z|u}MR#(-zV zcw_`06%F}}p~1)M0zNj)<74GcK89cBp#Z%WF~-1N#s<71 z!1Q+lv>zvA=559U3>Bi9K!|e|2=U%7Au3%KqQkHdoky3Tp>YZR@GHUnxg{7js|2ra zEnSKRdMfe^r(&r0 zR1Clsqf~+882^C;RG@!m1-jH!pz^W`?B7*^HD@bu z#DfYf`&xk)$4)~@!)d7JHVuv9rlCCJ7Cvrb9EtUeC($(x_x4Uhh3C^S<@Yq4uTY6? zCY9LgQHhoDmFO(2#OJdr84t4(UmU1J_luQS|F9A_eyPOmW2$h4P8Ak7R-sNv6&}s3 zLbu8)>{w8RA2(IuWUdOKw+ii_RH4$hDjXP7jZNCssAOM_%>mW;jByb4rdFe0Q#FRS zR-@~lYMgM2@e%u~G52LPYfIG_I=%*5^=h!kp#~oZ)Zo438ayJbLDBRYG+ADQ+}0X2 z!y24_g#cc+)n98fg9|5&knN*ASi)+!Kz80ew)nZ;-EvD_S zW%Yn@7O&T0`_o#q{9KD0r0VeV#5y$BXRHtVIt=rvL&umpl**~Yt}?c7W*weysYAof zby$3$j`^Y2VLM|nu6$UBg12>O`lk*rkEzEuO6LO)#LsxjNN#!9s^F)V{vaimffw#^cVGL{ka}rh&AAJxds$hYrt%S2Hb7a zfOlORa5%65pTssWeK%mOpaFHN8*uxq22@_sfCXzA^Kokf9zMY2XajDz(17_j8c^v$ z18y5?K&?*=So5a=?@NmC{U{NBmJ{Kyya@Z0MYwO02lpiZHx_T~o!b ztrMYDqlhutL})sPaafu~_->&HotHA^F5qkECP~#R$|F#IX-DT{Tdm{XEUxZ5^icsw_%g+-Lia!%!+HdC&HrU^1PFBa;X0x=JRJOd45QA6UB4Ot!Q8yl3|_W)j2h zU&`_^gXL!y%U3naUk1x33z&r?heUXW<-d%TLz$IlCo7jNE8i|wPL&5DtYGCn$I35r zhdpPekDNaC%$a`XF+I&;`l@1jOJ@4BW_tY2^m%~kHI?c257YAkrtk5GMcBmj|F%FWA$rO9Lr~v2t&d|I5tRx zr+h`2@5$10W%YxIaFjjMn-$Z$sR%6$*|XARbwz{yS7GH)VC5ah@-mt|;}NW${cFJ4 zUm8$*n6-~b4JgsyfI&SCSb2i6fI1m3bw>lHY-m8uWes?C4r2q=HQ@0n4LC8k0YeiT zkRRHBQ#>0m(V+p2Od4=NqXA1NG~j!w28{e(kE@64@$7?o?7vozm(SGW*6w=D-%*cp z>*{gUqI#5`UeCr%^|&Ip9y{Y1TPUy|H#yhi6pMPCtj+q33H9hCS&!>K*WuvvI#jq- zhXxnwP?Of-ukCesw6zX%n(OdGO&w+x*C8g?;kV#ARB@?8E%Q2*)u_Y!vURxZcP*PY z)#8DHT2$?+#T=}~729iZ_o`alKD!p1D{3(^rxyQ4F@BL}ElOM0VzyQ-Zjr0S-d{C% z_hk)UzEy+mXKOIyU=2!btikyUYw$-+4Tcod;H=mh-0W3@TN%H0u|^H1jjq9o->PxX z(`q!oT8&GORO9_^)hM@|_4AF@sKu{Fv4m(s_?#M6{^Wpq4TFo^toS&w&yDu>$nn6wpL=s zO!j`_S7KybCAPa);(&1_ewVMrU%#f|^JmlW5PQcJuy>u*hG{r!_B4FW-hm{38Wy{= z|3=er=6H7edj;A*s=&eX6^t8IfxlK%U|M|zZp*2_+rbt1*0utN)he)8yaHDYm818S za=g=7&c;IJ*fqTz|K^vYX;?YB+m|D#m!rCPIX)RI!$p_NQ13t)u3K4#e{0LoJF^U@ z`Z3&tEyZ(xrsCGeQ&D(! zDr#<@iU%39$)aQ`E{U3ocO0gojM`Mx`ZEP5J(_}Ir>C%S-4v{uGX>>~*qA0{3VyYm zf}ZkIum33}BshH^>?E^{kEC7lu!NtEE#r$UrID@6ScA)3q=PYC_r=H0<6+4z}!9W#WcvCXtyq$0QRIBr;LqZU%Pl&p`LN8F(-~1IP0+FnU}DP9IFi zRY%it<+60FFG|NyPc~0cO~>u;($Mx?8g{HrLy6Kf^b1JCaxKQG`jU#xJ*il>F%^BL zF-}!*DsI+g^P%r4*xsAM=DjHxSeb&=At|^_Hw9OGOUCJ!lQC{%GAdRi+?jxy zY@X+xoPg1m2^b=gfL49+_g4m{xLe zX!bA`CHKeTndywp9vzEP25jE>Ee3}##Gq?y3|1G#;6~>d+%Fe{yB|6Y7G*`@M%ySnDH(-5HzHYGjKuY&k(lQdiE0Xw$UTWb_XBJm z-59~_a}g|tLIlov7mizwh2zcz;kYh29IH&j(T&Z)-?O>+{FPxSpUYTSc47EXg3ZgX zg<|Z6P@KvS#Y(48ERtV>TCY zFZAj0#O`IDsF>=B>4u)T;=KoBMtk7-=^l70$OE@e^uW6N?&#d%jza=>Y;<(T5n}E* z?E;Hgu-FYX6WlOH#|j3U&S>M~j0v*ND7fK-!d53t$#6oRkrRr&1MKVsjH?A4^aN(J1njv&P-g|f>}0~~ zHNpKuJUp_8hlk3T-HUw^EfQm4pw2ns?Pf=u8sUgPl^juc&jGJ(bU>Xv2TV0{z_}mn zabuS~ZmqG$R(E?g@3qIkOLjPNksa=1b~t|(J2p4BMfZ)ixG~2T-y7Sa*;^ZoJz#^v z3L7j38!Y&1je)1EQLV`uZwFZ8OgU@Ryk>nJ!mC+E_;s=o zju|w>v0DvMJl_zX8X4lDmj+nA!vH528Q^JC1B`gBkN@q`M<>2Mt~A%jCvPUB#-7RO zCzy=s7L&2ytsZ9X(ZfIii~YguwlCl4V%u(A^yTZ~eKTgueXWDHcj};Pkq)+)u4o5#9i$-l@ktB^pC#A7y zc})%#=gZ+6Uped+m&4K{vZymn7EfBsGDhndyxlPd!!pJor#=Q1*f)vv#iMaU;Ap%i zH5$JjlR?=k8C0~D!3l3h;lB>{JtKV-9#k8Jl{cl)YN0d^_(@}xxHQTf9*OhIMxwX{ z`!4cg1Y@0zKn2DFi&hwcb1t)QDYK;Tf~yqveUrqS`y}yv0sGd%zPB_DNMPhL37ilj z!MOAiSa3`nC8mkvLQ8QRJ0ymUZDNcCD2DD6#8AEEA6+Z?k4lv>KG?HAbYAoyy7kO& zy36i2UDf`J7Ek;|4QKwO7eD==QCUCe+3Vk_rssE>w*MQQ!@eP{TJ)7J`TK=&y1r1j z_n8g{ex@_&CpyCD6N^9ek)DwHNPkZKKs6q}r$%A#>7=8K6=w2|9$WR67LR;OCClE> z8INDn*P*Ye%aLJPX*^8Vt$0OuNWP*QOITc^`$IG^aESitdO=s~y`b8Q2kD~U&*{tj z=hUq48BOqbMoV@-rBhU&(&SlBsLhAR^h5Gv+Iry;wXl0ccW-z|6~{cJ`4tan$K(6- zO7MO9r28IysC$oISTI1>e7{Q*v+h#K|L)M0ygO8R^KCj^?l!$O?G{yi(ocPY`)Nv7 zAI;G2qv7*zQq#{j=!cXWwEg^b>S=wQ_OxE39#YrnX8u+Bq5ldsb-zL*w*N=7<^Q8u zHN7exsM(V9H1@|iD#$oTOD~?K zIo4;X&+0Q&Ui=KboPU~@T|Gr*c&F(64JYZJktb=A-~`>;cbq!zpfcG1u7T~u*vC)Jnh zq?1bz(Fu1B(s!;0>EZSRv|{uDs#CI`9_iaheVz8v<86DX(a62Dv1kvybagkCaM(>v z*6gC5V!LQy&Q9ueX$Lj6+(D(5ZKu88x6!7QZPe=2R(i=`D~)OHpjY2*q0Z4;=xUCA zi=Na@CpT`U(a$&0vVcvriNz3`GhrjGEpMY4cQ#N*mksn^+j`1Lt*2S}>*&9pwRC~y zS}NDFhSq;=rH>O@spHYrv|f8P?VhoUJ{ep|#R6B-@w-=0`SB~Lbm?;Xwr?3d&s#=Y z*0j*bze}lP#!|ZN^b+dE;-FoevzYo0FQQ!`i>T_pg;XfNkkYaR^lSfoYCz`Gz%|V@ zP2Xne^1s8Pw(T zbh;~MIvwBLNb^-1X;+nqzUyS`3o7gBL8zmje%DaVOfSU-QE{a}YS`ybU6%P#uP9&2llP$-*SzS*MV_=f)PwTn z+^PI!SGs+k3$+Sxrdy?*==gJl7S80+PESYrLCk?_9k-*db+$Cj$%aP$u%dq5meiu$ zf{wB^r#Ii5(xrP$s8_KuePL`w>t7g9=`H$nX69u2MN5w++}EM|TD9r#I4$a=s7VFa zC(-4L)am|UHF{D;m7Y7NOpnh{qI=vG>5@MRv;gI)<21Gw#+I##c|Vq>@0O!dg|c+L z!5C`(RE8efFp63wOViCNBdKhk6fIsNNl%AJ&F)XeID-*?xCM1Txo2O#aVCN< zT>9WgZdU4hZcYCiZe!>$x9Z#wCvqL+61tvpdKQnlM_V3n3pMU>mdo#Or(|z&{xffK zr+!`IEK9F&i(Xyko@QL)%ZRPv zaf>;A(*o}G?|EEq=^Sq0E8|di zhtrPkPQ|wFyYH5FD_v^tE^Ke?-up+;ef&UT_sD$T?j{YJZqFMU-A;35x?j}4>KYh6 z*%gpHFWFSI-I>a2aFf}O+PmD3%z>hE;eeBg$|ucW_~-cNsua)ekqj^3-B_OUUj^P6IaOYlx+c%XM31+g zXT%%uHRpYdw&6X=bmZ+Uapncrd+^RR`|^}l2k~4x!g#MAF@=cOfX<<&pf&TGuv#mgVu!?P{i&wKplAaClF zF5cj0j^|Q&m{;-ZC~ryq3Eo2S(>(snvpjR@3%vi>ddD!?Uf%wNS9qVsU*{>c+~lb! z-s1gOaff|WzQ;>weZae={+MUG?kP{8Imm0;FvP3X9_EE@e8Usdea~C4=_Bu}?iZf( z=5M@Iy`Q|K&A)kedjEK3*TjhP1PSsXT#~dbmLj@WN09a7q=|IcD3ZKThHU5^O?qWz z$xx6Sc{gt?d2(?aIXP+qY4(#R9!(15>6wY7L{f4Wk|&?F$X**Al3SunM(xofEyI(^C}RVXn`=n+Y&Ief9~qM$8m8oTq8S-lX-??JtcZ4~HQ6)IhD<(hOJ+#glZ$Q+hw|%x6O0TRM>=Mb1RH)rE|H>Pnh5 z-N~l}58}DplT=>yA}wQl$Z}s_Qs3xDf{*wUv2OvS)jEi%76+61ju3L;Q7HMY7EWYi zBFM-^k>vS>D6&l=hJ-uEl6&QGBzSK;**KIy?&>6wZ;8p|TT2SLcR7``k4PtBt{LP( zMJ5T`n?>4RWRrVZx#U}19{Ic|pWHZKKvw)KB;Z&~P73(MxI;k7?h8rV#3^J?&{VQ+ zdMOdmGNS#yoE$WmMvPJ_NnJ}7Ie4*}T>Mu+M` z!;J%EWd1=i?e{@)WAP!Prr$||XeY@H=_19CyGU|*H*t{R$gi~=*=|LN=NU?vnS@vm zGxJmZVRC-L5%Qt^2pPdUN+f!Yl9y~fKfXUk%4QrV%1S55=4~g4s?$kQ*?W?lOglwB zemF&BXPzeGmClggThEYd{jol6vVrvSvjeS+Czu<{s)NNnW>z!u4C^VES!B-rXi0b$7^* zF?Wd_^P`A18X(DC10>M<9?`shkK9hXPpaPBCt@`Zh~WQm-IqTkzjPlFwSA9>w##EO z=F($wFZKy(dHRG{l{_T}em^B@bDxns#pk4T<8yM*e30y;gJhY{3zB^81(8V^B5Q|+ z$i%XjWXivnj7!dHD@#ihWDoK6*=_=p8Bg@{Wia z-jgbs4q;PNEiJ?MtOZEu9rWPxR@^_=D`=@koT4RdiRyISAHW_ z;@?Tz-0$SmgdfDD^#}3R{YgA_{3NvL^*I?!+ef^vIX&n4(9S3{vj)M@j@o+C;JS43i4;OEb2SXLcjf3`MySIyPj&cHuMSfWt3%&6buh4-1i2-X zVA-xouzzS09GR>Eo#`5|ZmkBC-qrxeiJI^#OcR=$H9_sXCajdu0!ddbNUqX?_Cs25 z_nj8}HPMFgxlA@{!`}gIxT~ZC?GZYVG+zhA&+EW)aa~Yy)`g}DU3j`r7c7Q#Ax~cq z7NqIH#?^YT`Gy{}$W4Y4zsca#I2k_UWN7_787wUHVQ-#3Xl`Wuxx4zzKhXew1si}? zlL1&CXY$o-^Bd=1`I)Iq7iHfHUiyQM$mlJ2%dZ~0s{+Uh|4vG^7Y2h z*l!F~V@)8<*95HVP2fYP39Nf#0*?Boa5UKztd^O=;vQ3YAYlf|UsLIoN(MhvSA8KvFGW{W1&qaLEF!#4RDo(Gp7emQcCb5(@5Eg5NkR znBZdt=c}!taGw?Ycy0w{>eg^C+#0N!tQqgl8rHwJhHiZuIFe`syBFC&^BEh6`C$X2 zEo@;|rY$(Fw1v(dTTmCX1A(0#?8>);{Mi*l~qkJB0*uVqr>pbSG zP2hzC0n-8kNoxpH^b)B1$MC7v03lh7ZMPiY(m8;_?*LznouD|$33}%{f!Z-AhC&#S-q97#=efebN>{jh z-WAS#bA{E0Zjcb?22!)#V0D)ps13ToEJb%1@OFnuW$xg=*&WiZyFx%e@`f`@Pys%o^a>7C%hN)f)5s6a4*>l4$Sj{QqBuB2fg5+ zf;ZTDc*8n@H+)><4b~UEA?d3(2=siQINS$f>X>iv4j*{Ve1zvq`htd)FRW&)ynl0i zA*|CE=05g?J#v0~xCGS9(E(nC%s{%p!bRc-V3500nAc*h?0$x!N zj9MN9r;agS=%FC^G$9xYor0k!I~Wuf217u1FyuZ82EI%Pq}qf4FDV3m%?N?*yF$RN zF9eSN2?1k+P^b+J1+F3#9;^?AH|IiO@NFnuPzr+<*D&zQ4TI+k!hqiy2KVoUfumG7 zRGWrFM`So0sR{>d3x`eT!=dag)!W;goqaOpj!~ z=+mO%=$dHYors1t&!S;yR19dC$AD8r40x2sfc5Ga=I0y(7azqysZ=bCFp33HP%JzZ z#DeA0Sjg^VKJT|#W*H@dYd|7A zC`g37d5LgmMi1p7>rU}sPgEGSBX_~s-Sy)%h1)RMsHRT348D2E5YdzjK8y{ZeI^;6JxPW|;whk~odO$NQ$Qjm1ww05pmB8ytm{sJw!RdY z|0xC1CZvLzWhxvEP6hwMR5(046%@CmLj0*znEsHl1AnK&Le(@VaY$p%;%P7}OoN&8 z(_qB*G!UFkgX53W;M<=xP*zI^O^0+C8<`Hz`RTBEZaM^RNr&4f(jnwtI_zXT!T0hR zFv%hVtOGK@EIR|nH)O!T>I_(LC<6?yWWe^986Yo}30az%u!ffjha)rLRB# z2kn4BpZo%duP%Vd`2}FJz5ssiEr4w&3&7<@0nld!p#HT0 za-<7kxk@4IGA@K2PzZ~H3Lz=E5ajrU&{0h0r>-2plwv0L_bFvP%(^2N%Kaq$21kEP|_5jO#I{i23UmfnP@vyf{<@g40DX zaIFX|9~D92TgCwST?8$oi=k1a7-9{ILEf$yIz5WPHLMu+Bo~8JVKI12D~6nz#UNZ# z4C(8O!Et9XeCaNR)-%PRf2|l+-Y;ehoMN#2S`5(=d`KV5hbT2Zm^1#!8*4taxbQ(c zfDg-}`S3Q450*uIh^^p5b|W9+=kvjKB_Fev$x8vjxy!EP&i{ z#!9IZfK!tI8Wsv*2Vc0+{tz09GS}aB7SYoaBYjsv?AkjKwlWUkDneLQu38!WRc2utkrM>nViq zenOZMB7|#^LQskqf@g{lVlssgnkNK{Vj+Ag5kgzJ5NxW2u&bV>GeZawvxQLKEQBSC zgskrsLg7jwSgjGl{q;g9*(8LQTZ9m>T?mVJ3E}8oA!D!#;Zmm%c5v+YVU~|$LfC&o z2qve6(0rEN`@9hTU1aQ-%R-R-PY7?W2;tB*A!IP7%$J)&5cab)ZZXEp9U*w%6+--g z5Tfo0!S22gelgkpKnN}mg}^aUeI$f*CJUKtX0o110~0?cU)k|_Ohz)vW7q6s*FIqB zd}8UnW9eRF>9^iyd1v=}*e8S}cJHIt+4(Fl4lGZ>y+ZKs5rQep>z8vv*m8#H_!PVE zaUo1P%JhjsSlKOvJ%@y_bH5N4G3ICDPNuVMEHCYhkF!w-P3wekeYFrISFmfA3PF9L z5X9yQp?4O`XCuphoe)-4GJTY?`w7{;LLscqVfjiILSqtR>ck2`DnbYwf>?UKLYV6= zgxeqlIeQ@(TMEI$86g-+3Zd$^0QP?oz}2?`=zAf6laB<@ zaz_9m*9GwAk^o8>tLO1y0oWfBfN&S9YwZG9y;cBomI)wbz5rBb3gAeM0DMaY&|N5i zv6%u0P7uJ9Z~@f%2|(Z~06%*HNSiU5+BYTXKkyK4_9}v_SVMES1tW6g1At{x$C&pae=*I_5XFg1~ z;zRFbKKxT*+#oq7;%u9-S$l_A|8TDuG_Dpy+v#E$&DwtAj$&B4t{C<$E{3id#jv@e z7%B>i!J73MH$sacne`!;ZHqyd^(pDBZ<)pVn5C?*nZ^2?G}iZMUoV1-tS?IFEP^Yn zZ!%w1#88Jtu)ewo4ipu^u4LA4g%m-YYY|9Wvi({`Fll@dOc!J4zb^#I$AzGItq`x==8RUZ7_*|I$GY8&3&4Kpb9B}W>firD6U^OoXW|ro_@#GwM>XQR+ zEpp(Aat<67%Ynw1*jjW2G$%7C`384%Hx0k76%KyhOR^yg-PQE&!iS!Y0#QU)yjl@3jh z(joI~IvDOqhrWgBP*lqJ$Z_cq;hYX_+H7nil@33K(m_nL1od~?i ziO?^Z2&qpK;L524FxiyAc)S8~U|$&vDKW7i zw26hnaj_8oItH{Z#=z|@F;G1{2Bgzspw1}bVtlE}UC|(#6Ae?dqanmS z8ssOjvHrIxNV*XP5B5Ys@VqG4oD&7l-J=-GB?=6_MS}kINEo*}l5tccVPj?_1h_=P zJ>^J<{}=(sFGs-mtq~C17y(m~BB0Se0&2!ZK>EvYusj_OLux+3;~5V!O(ez@u}7Z11${(^`KzL*A0fYA3<>XY7kuA8Uz>X zgJ5?|5Y(6jfxTo9+_@771^XB)y(tg^QUamXHW2z{0^!fY02tpD0CMvK;7djTTy$jf zLb(92dFl@rIDZIO$mWb${vb>IA#AKa)IIfs6`UWeS>OlFnSPMx=m!?Ee(>m#FVwR+ z>8N>(;hyTt7=ylyqv#7613oZwuMf1$@PUPKK2T=r1HS*fLGp$-?C$Ue&uVWt72*w+ zI^Hn*vlm=G@5MN8UZ5=S0xb_OP?+ciAK4$t(R zkFK!rv@0xK<_gnuTp`uL6%3hO;2yIN)Nf;Uf+`o76W{{xR9(R9l{3slXV^c_8F~_( z;kt=4oc-y<=2MK1)#?Ohg-*=E>jXJ6PVoFTFuM)o@lONz=nITF3*h^lK-3`up)&~B zM-q_HA<*-V2UW*-ptyhs>ymh&V8Vln?~ZWpoFhmscLeh+NAR(Bgus6e;N0r~lh!!E zP`(3fc5r||DF=9X%^or~*uynud$9m}sFJpa{WtAc8@7X20y`LXvV%LL?4YyH78*9$ zf`iZ&2AphxKgt%~-n4<_jW)nBo|ZV+02yh+Vp=eJ(0UfnpwJpJ9IU}r!Wv}$vx1YW ztspL;|}N|QEB4bg@X6SZOXT`l<8rUfZ1HpX6aE%@+B6DFf3_=+?k-j}huWHs6N zN&_rcX@Eqk2At8;fN3u$f!f|lu)Ay$SOa5q{ZofgXVoEPo;qv{Q-}VE>hSxH8cf)r z1}fQVFxFTNzPwR|UdHTNK1~%uomJtRm@1nKsK6w~?OGYC0+I?UkakNMcCTUlt~6y( zo2(2lqy&Mxlpwf730&=z;C~dIbzBtB8^=+)L{d6LkOmRBeIB~=j*yPS&aaK#-GN=G z*kX&q&SQY0B8Uo#s92bYVxyv<{^s|`^V+-Jy_sj`c6MfW=JS4R+70phIYT@*#}LQ! zcfrQ0hIq2t0CBYeo=G%7YeOD)`=yA=ali|3}x)%r;I9{O8EDj61L1x!b)Ey+|r?lS?3f{ zZ-yeCM@3Bk-4)-mt~hF1S9~sX#hCUkc%ZZkexKY0B|cp^XHWq*ol(Hk6BY2Xrvff} z`41)!_y^I?{(@r8U)b092VBzs!1jBc@Fl4e+-f@@N!kJO>fewU`5T`411%o! zN99Zlw79mw*@JIkl+9bv*xn5544OHk><#3qzJYynU&EbWui)K;SJ3+YB|I4X5{^B2 z0srxNC!^cX;c(=0urF_d)j|_IJNXRE9G^i*;ZsO5c?#0}C(u{@2`F-2*oF2-FlgK( z_}1JAqjMYKZo@;cl|6*qs}Eq2-viiOd>__3-G>>44Inda0IfCmphWo|#LldTny+_3 z7;zWYJi7yTQ|>_5nmRBKsRLWF77X2Lp>6MNxM*@4Cat*zJ(O?3f$2BF=5q}!9a002 z8gGDE!VQSJS`7oR8it;zf{b2OAZ)!3irucm`T3PF;O8~?HtHHoY`O~1lCOeLbp_`5 zUxDIN6;N+i0WY>*hNs$>;rhHwur}mhEK}iY(g1?UbzStB^SZr$OV{Vc>%8E zpNF4H=fPy^IdJ52miBT2{W=C8LK&2lh%m-c1cM!=aHv};xXdeoo!`#F-yvr~_TUVx zia7&xz8LPi6~l|&r{Rg-X{cOy3U>cE2_uG|1nb5Va6R?}uuy4UK$osMsB)LoBQ_T|ChD$&=v>0v}E`}r?8?EN^ zLhzL@gq=4Qz;|H*1Ra_-Fq8wCybM}qw1 z2)MI!IP@7X3}(SlIIBAZ9<&UCx0eROtE~gz=J@`wCps4f+sHxxS2moe&Eo!M!ihN< zpqG{ogWS?!k8 ew+*~#r@#R@+5dWAQ5T=&MMQ1hXHS-pnD+>POgsy|B*33LD68} zBMRnyh=3av;h?-N4BWNgK>xzOfj;As(0qlz03?^)|-Zi1#Q3FQ&QG>QxRhYC-1wKqs zhOAg6D6>=q)306NzpDx`qR&6!?fp(6b@p%Jbgy=yv--Q>Gya>9+vAHc^}u7Q(g;-9WR87yPJfO5l;oR)dP9nE;BkV$dc_IV|3wP-&x8msJN<>$Fc8{SdI_EN?t-F)v!F4=UeG&cBba?R z7wr9wg}#gQh0vSbgj7Qf;lCVZVaa|4LHg*YWb>$xlGct_64}Z}k_+Z{BzWw)q|(1k zGWgb6iGJ=;N&TlilEZViO4jMFmE`YPEQuR7U2hN~hEEQaig1rQ6pOls^7- zp!Ch4lcnq?EA1z#C_S^grnFJLq4es6XQdM#y)Ati`nA;XXh*5i@~+|&e^qhg7fsP+ ze|NDk-B4`PG!^a2EJe==wxXGxgV=Q6MV!05kJ#boBPM)8aZX{NxU^rGI6^sE>{%)m zi-#wP=B8<4){QK2+|2%*gEmAoe>y@uwR((b7C2E%|1?D$v1_Jy;NVJVyD>71MrhzJK>M&JSu||z`l&Ul9CJpAPro}uww3%soH}++Y4m)$O zI~#Ocm;L>r#}-){u=a36mO9#q?cUIX-8*N@e!MVYT{O&CyN5Y@m}bHD&$i_8nXTBL z8`f;;R~z=%*p|ryd$B`9?AYTK_U!j5&Q^Qiz`p)*WHq+VY;Cj)^B?QV?rv~niR8}t zSRPDW*^}|O@N7`L7aN`D&2qQ;Fy1+{-!BBVPZgPui!VEo;Ky_(`LndG0c`PwKvwWP zh;362VY3}WS+q2ab&LyV>o-I&T``hPeiX$n{f%Z{ZDN^vcpOt1E@f|*%h<_d@l0Nu zz&?LXWWx>nv1^iKrpDI+yU$EzxHFA8m#4FT&oh{)n8i}+VJDk=tUXePJjeEPKs1rewCAZ9A}?S$OjG>KAsf_fZAR zyS{*p&fUq@z1zw5PTIxxDC}mdR_ta&j0%}kVIh0$yoXIM*~65B_p+Hc_Ohmweaxe2 zANz0Qezvh~KP#GjfE`gg$hNFI$i|x=Vv+-g*jx9*jITUr-9n4lf|?@sGUW(!e|Cfo z8-A26|8kUVnSP9|S3J(9t~}0TexG2ip!EPR@U_O1Wuq7o|*k#|V>`nPq_BH$(ds}^tU5l?|tLiJ6U&eKI@5yzR zIIv&n^@J5g zKV`kDpR$E9&scT!Gxj5sTwBwfL5@>V-r z75$6(T=~T+0)Df;>^ED|w}V|g*1;b1?qm&xovg&{51X;^59_J(mmOXDmzi|^$41Wh z#|qm1u|^*SN}Z@cS57F9ZL0$1Idq|t!Ck0jH`gLP=|Z+9UCB9x^WyTmlGe?x)U2jR zr^6I!>|8~%IIl?Oxwa{;uM*uHqeOv4O0?&-68*4NCf{sj8oybYHs4XE6WS_N8l^%f z7pTy-iz<}&OND~GRH<`}DjhnkN)fMAsoqkJk}}lj@_IG0xur%E)YPdsM4evER40{E zbu#{d*Q5!aTJ&I)7P;-$qP(YC zRMbP8Y7?~S%`&bByR1zwJG80Fs~cypb)%sNx{>*_ZdB2O>&X&y=-E;oO1`8+^h<}j zdv>Rkk=<$ep6+y_u{%}h=~88kE}fgNOS?#yCVbT;Zznx!9-v3dw(5~-ogQsh(TKAk(RPrqO5lY@l;MI;+gzZC`)&-HJpsLaQ}RsV>NrlqQ>!-4Ro+(>JBQhGt|PV@92`&8V{2jOM;I<9?ab#YA%oU2IMz z#I=B*%xSo-1szPYpnEGU=yRC`{r+Y_-+Eh8W0obISYt^OD=f+GrzKr=vZ8)+E2_=6 zBHyc4w4vRK9ywc6_gri8TE}&XSFI_$-J1G3+mMdjh90i9q5KLPlKilt8xB25n$?po ztm;W-`e;>^(LbYy=n86-lX!q zHx00JprRB9dcMeklu8`9zTScKjU4G;xFbE7EC`l0DU#ppsgBV4F$vkOhV=0YuPE);3&O8JSd zR5izyJ{)tUzmHt0Q{9c4C2n+ah#Spc??!zuxl!#$&b>2tr@Cl&@}A;Oi}tzGr8;+d z|JR)qTs%lI!-Kvq@}QfiJ!s=I4~o(1L+^w>G<8TH`kLQ|(l7R*qIZ3$#mJKkLp{l5 ztS5PF_avK2Px|xKldf6zr5Q1O$zpO}D&l(EUN`&F^7g*;*w%|o+CFEHpA@Qq(9L)t<94^r9F#;)V5vbQCfjr&`iKQ*cbkh5C=4NVT9 zRnr4#*X{r+xE8?qFaeaV7f3yXKq}ASI_m{obA2d~0&fM1O!o!K|y4) zlGegOGb|}RchSKmWp)|TVl(IC!$lEoH+T+9M;Dj&= z+89O^rD4>kF^raXhS5!~JMRbzC;dU;WVk4tx*iOthu6bt`@3+8)QX^|t`U?QA3@dQ zBFK7O1obbDpcVBI+@}cIX%tCIIlnI}J(5hOMbf3Mk;GO1RNELyk`8{%EQ+r9Mo~*v z6la)3(bw%!)Nn3}_C1QCoQ^2^$GLthFq*n%M$@2a(VUYKO)pBLsmuLn()bZgodz-V zux||QPKu$#@iEl8CWgixkD+HZF(kZ?q3PgKaZm$f8$7QCZ!IElye!S^lhA! zq^qQqf0%Ovu1cxlxs>kzknn2aH36%1VZxs`%w?!h2^+}{%@rlHSC(?P&MmV%Bk!BYsl7CGi=d2{sls}2| z)i8-t-I8c;L=rX1ljzrE&K+EnMBfi2QSHSf+Srgpp&$7%<$jcD(T^&;`jJswKT70G zhRM_W(Zc+GG~-Y|$|~zey*QJwp_MZV6_e?QNiq%gNTzcU$@DurnQSK}llQV@^4OJ3 z`e&1=sXCc9HSv8vlIenG3c1;&&{Cfis*X*eAN^BEb8-r)tw^CyyHcp^ObSh@N+FY{ zDYW-%3K^-U(gd?qDs@k#*P*G@nU+c&qf+VBoK!lyp7SOSrjp*dRN8qfmGobv()jQE zTs6)(G)tquZfW!{IE~&Wr_s4#X}k<+WXjox2X>{A`RO#8&P5uR8q(11#-o&G*a=l9ceTK+Gc zT)Srwv(6y5J{hzkID_gEGw9!d3^JO)ZGHy*&Cj6Qg&DN;R0cU+%HZs|40347poO0@ z==$Fb`mUWx8Wx$P=8{PtF_SJtXVRqfOfnpnNd=QQvtwZ<4PTc@MY}WU-tkO&dp?t1 zR%cS>gG}1+CX=GuGU-j1Ec#C;iyoPC4x>{RjhAH6*03x(oR~#>> zX-jA}F~*OwPw2-16nLZzE^CY?YI9ft+e~%PD!EoUR^}lf@A^$&btV^}+KyBd7J8 zf61wW6nH^SU(4jQ>av`=UzO90N;%!Gl9NV_oZN2732Qkc=8l}S>g7~-PfoM%%Sr#C zobnsx^z#vC$vlzM%%^hN_DoKNO>$cMTu#GZ$jRX)_mx}!S8{s54PMJ>KDT0SH@V&B z#<;EE7QwBBpOeR}ng1q~+Y+8eF;D9{PxC5IyNKs8h3Dn^SWY*1-ih3Ya_&oy241J! zx7pmsRovG_+~=X(clT;JHSw}cyUOdHmu*P7oJx6Fzwj~}h;p(%%gb?EPM>(4oZ)rT z|B#%%?~~KSLhf&Yob0#pdfvqAV;%Q4}P*hAGIY@mCIcf6Jk%t^8VhokQ$t4wc-`q3yLfG@>eptS{$K8Rbw!G2eeA zhjjMkP{Iy=-EGLB6)QRWbRj=)CQl=eU*n_r_dz+NnZ=JM(k*SZ30&8E-SviUtBo35YEru;+M6uL8; zb7XjXU6xHZW@nRiUN#>yX48B*Ki)5!mPTdMaQ|%b@XV&?_SrPUjJHpnY#O1IO&8m< zsG~KDte9kZcoeuv>qvGZ?I(RRQ7FMKD z?5Q;Ry)%v0uS_E&-mlE#{YwMyXADEq$lpDUWaeoUrOw$%KT_#8@0U*APNjtNsnmEV zm82U}sc2p*eIA`kR+*_JM5GdWrjorS@88r@>D>1e8uUDczSpGCcrk?<_NI{CniR^J zo!#3yj%3PvlT5#AlWF+5WV*CJnH1M1^RaU>g%3`qFj+FW z3dy9<^Z)%X@2kJ}qqe90Xw3C~bmvq*vfAE{(iZlksiXVRf>gc@^87D}Vv>_6&M%2iFmP_MRubL%mPk_{C6ZP}A}ufCR;mRKxktcs!2Q=f_b)UK}Z>$C0IP9NAdLQTHx!)bcWxj$VtUti!R?wj!1@mtv_o zA(n#s#?oTLSUUSNhHgKMq55+%bfqAMcFl>QAp>Ig^HL0Fm+>*FN(>!tjwY3=Xp$C1 z)0`F2RPbLk?UzQ=RyWSC)`_Oz&r$TFHi|Z#iXxkJQM7qN6tyQsQCQz7nyDW}yS_!z zvAdCUpg5A2uaBh6iJXt!FOtr2j#QjpBvpNhpgwgGwCH36Rji4i4`U)oQ5Hc;e4PGS zlXJECxP3)cIPrjsOKR?=M=trME z`f{$LFU1u4Qr2`|&WQD;P#0e^RraMPPmorXAUUl;Ix~!KgZOu2q$i(&OsjxG3xP7H z0p%nDNgaWlx&XC35a`HBf#R16)RZf5j<>+szXI93kE7N{`p1ik?t0Pk z!(Nm=$BXn+yy%>h7bPlq(YChE-8nnfowElCay@BrhdE1?~zi}fTC4ypCxzW=8ZdBaYjc%&AQT;<#sy^yU$N4*o zxk;`RZ0Aa!e!9@gY8NstaH0IMF7zwdh2jld_)I8)gj z&dA#5L?M%%s3nrKvrL?LpWsN7&O7oL3y#z~*O7*LIMVtqj&$OV1JPaw&JuH=f^Y}Q zGjbqo?oFRcd((OzZ-B4IqC<|o$@sTDO|7=4YuoHeX_P&A_}WvPrah%SvZDn4-Unvb zk#4LVJutPSHScD}!~ z3VS$LYg|t%3gqvey7eTzCp?A%=W7YmZKycPhAev6(B#+FR90+F?enb3Cc&D((wc%> ztq919te0}mR*Dss*;>)$FP3CpX2}_omIRrWbh5W48GW~)(U&c#c#Q?MWLuDqlLguT zG$)rU=KLM1Icdmw><1@vI{4F!J$lb$Y+QS$OY08nQv5_+`s1fd z1uDAaR@Ch1VZgnk>-*L=Tht9w3Mi-8DqZ5;OY>$9$ zG+ebCdDLoC%NA|gFhH9;oV2Ozs}=>G)1p%gw8$_{i$)n}QSoC<&O6p5lhK+a@z$h> zKN=KuRfGIiX^?G-26dS8_rkB#Y5q}l>XWBVcYM`ph@v{ZuU4Z$>(uCGh8j89sL`~y zszfJL>EmQoG6+y5S7lWaYE;N)y$ac9s*t*k3O#F9rh~_oX}~09((&W(u)8W#NR<** zu2G_(R3$oMu0-lD6)E$uA{C6~d@pZB`rFZ!OfPpO$E97#Mb?#U47!p=V;6e8s|%eO z(uF2FcOmC53Us$bfyT^Kpw3_gnysopZ?^tprM>>KF(>{qE&R*!ul!-1vOi4ru#+tr z)X5Hh=wK(Nbg+Uh9c;pi-^|VMH@ma*7t3+@#crQ!XAZvYY{ZqHEMNMQ6*l}}TXTP~ zDQ~~Cfbrj1>#sI8e|{TN&}?Hv*MDPY%)YUfyZ0^p-gVzh&W-&3q2Dnfcs(!?ZHqu$rf@+2p~mnfkj|Y|+?P?0wryhCIGb-oF=Y z^THQwulftNZS`|DUH>@?+tS2-nK!Y`h0mC^{WG?%=qdZ;_LTV)KVicpPuPNUkJ+-o z$837VBbE~Rh?(AKWYw}pHssDj_CDny%X;{Lm1aL+f1cfEZiDW#m^Te9aYO?PZN0~A z#@=HsU+P&wUOn^sd6!+Ac9;2e-eEgu-(l|+?l9X0bu3c3j-@TBWl8F_3|HJ{+I+66 zX7w#LrTZ<`ZQV_luYZ#%Y^-5fMm22j<{Rw3@eTHKYc*3et7e_stJn+kDt4yeI-6j5 zomuXxWF=OW40m5+M|nIXjl!!e)#fT&U3i5R+gxGS3M<%En+kTikaNRqF0v^qm)3xy41+wuAG-%r7vz?dMrf)ALMw>pAwO$2oR<6R|;t z#8fvhwpEWYlYEga(Gl6JRi(^BtCWpgUc%O?m9WE$&$1IrXW8EQXV_weGc0{}F*E5r z&8nuIX2XA;Vn6auv58+#vZk>oneT@aZ1Knwti1U+YZ=UAOuab9G;@zJ#m7h4`}Cvi z^1UN$S<(>}bi0VXi7jHYt{-NK;fLAuONUsKKc5GsgKW0XL3Z}^0ruGK0BbAS&pPe* zv$j3^*i*}WtaRI6HqU4;^INxvz17~s7A`Afy2^!Y?cCk$U&k(%J7pI;`E@7zI(jFw zZz*6gg9}*yXFJ&N%pI)%z3nU}VLP+Gv5kET-^NatZ)Jmgw=(6DEo`gD7G`y1Guv#( z=YV%_VmYRp*pUqz+52uAnZ>dVEJSewOP{r#4g9%|<&0m)V&CU8mm&G=-_y11YWi9> z>&_bH7`KL1UR}-7d5o~f;wqNpxr&`XvXYtDtz;v2u3*P{tYEL!E@#>r%b7Eu)As9J z%7P{>Wx~fL%y!rk*0pIdyO+M0?WkMCxnYZ#QpG}c(03v8KeK>Ux-4K3`{y%eF`rp& zn#X2zo5!jb&t>L+=de{DXS3#~vzXKEnJl$z2K(>CbT(?&G?u((Dzl$6g}odznJtq~ zVkWXYw!wcQ`{go$MVXK1^Y`P}!QW$8Ny}(<^1**>W929|q+}$s**}6^Uq75>&L74e zj2p^=bBC}^(!uP$?;xh^G>};u4`97i`ZJ?8Ics~K!^&=Fvndy{nE8=Rc5F)qb6K3u zwoFW8U;3vqi7bVU@=a!|9Qv^xhDmH&*F?7H6JNjZSjOzDr0nt8I5u}rEYn{T!#2){ zX3E2(*pTE%RvZ+;zPNBsnMoJ}C71<031ZGwflTFW0IS>W&sMJVW0I-9?9L!$ z@_1m4D6mL-3EQvh!~;J~iFvuAPl?AW!kUd*$|maW^+lf9a4!yHFgvw{7r*lK@EcC5DrE7vt= z*E%@6?6nCyaod>XvmR{tUL)qY%8-4TY{2&S*JsigJ@&4zE}LP|opn{!VY5DKvyTt8 zSaO9XJ9$)tb=joOqUNZvg~L@@X`%{yhRW=ZtrFAIR%8}Gx-hF}3e0WoKT&hwAMt+Q z4sosWFHv&;hj{Z)o0vHLt9T{$vuJPeQJnJey;xe-BEDVQEUFEBEt>RwDVi!h7q#v^ z6+iBOEMA`6C@zV7AO;vWh;QEB73Z-!vD@<7;;PJ>;yW=*) z-qz z^Dm#6EjHMMvhDzeKf^!w^hX1qq~YWJvvKe{l1khSo5y*(v9b(nraVAbHi#&FU_qi zb-%#*XTQ#t3O>h5?@icOI{(D>(va45r3Q}6OFM?lD{T!QU)rraw^WX@(#L1~N>{o& zmyRtmDP3ZxR(d4(LkSbAOZ+?zmIw|DOLBulN_GxyKWn-*{j6)&Y%k~MN4&FsoB90i zI?zX=yul|`t<>kfMx#%u)*qi=D%~X^OKc=ws(mH57l%o7R8l4177mk4SDYrP4O%2A z{`IyBcHU)4sOJsI>`!+kbB{ijM2&bYX|Ve!>HXq| z#CPXEiMp$jaBsPqFz>CFpdFzrOxtTHR4AAV?{h4Luhdhx*Q2+vDbHExTjwqubM+Fs zE*AvPH-3U&NU&hDGhAr;6)j9nkqK{4CJBAC(uAa8SwhU^T*1_0uuwK-xZr!|KVg;2 zc%gXlB;k0|G+{Q*7P`mG6KWcU-M3~gMOsIEQDVV45wTJW83WJZW69zxr zAjBze7R>r=73#9L3uBfR2w#eK30cnyg(DjKgcsfigg^Zc3IA3U39n0z3a6eQ7Y1sb z5`Ov=3*!cy6>hC46?AxQdo`UC{538L4qoNLPaYHY@RBQn|EX(2apQGCQ|X2f?s`)g zka}Clol__HAG#}a*4`6#{JJk#^lTJn#XJ@+PIxLj+twsJyUf>VzI!Fi(rXq>u|?Q4 z;Jxs9=?B5_BM{ujaP?>9lk?uT$Twp|FG@LMR_(kXnt_*YmqK>?O7>H?FtbcKW? ziePe432t+q+QgSCp!7o(=Bug0M^g=mbk*eCE-ffa)P|>nx^X6#4!l^>9V)l#!sa7- zka9sE{@yZx^-YFg@YM+BDjLHB0~0W}H-%V<84QUshfx_8kTud0d}dfd=L%~$w!;RZ zkM)Gx7i=N$RxjB4)DE70v4MFucl}Gr)Yny;%YuzYDNQ3Bg|97k1kC!C!ZO2oDH=ytqJEo*4v7 zhX?bx;UNGEL!mW43>NPS2i0Q{Foq)Gd}S1Tu8#)I7crpqDHgtU#Bp|<4Dt-)LAz%H ztZ++&PnZM{*$;;IONN=bDKL3dDkM)y1LFnhP`)|?q}wv#;{Gf!IF${u^EoiOQV!$p z{$$g-4Y(JdkLIzS_&D*mcmE(Wia9NGI;H^9HL5>!&bhgyz$%$&2w4T*S5|>d#A@iQTn$&F*TC!>Yrsyr7UC90G_B;lwPaK15oaOfJ@NxKUe*(Vm zJpqrbPr|W+lQ7cs6zFX}1^e|+gYDYWuu7{Ko-Zv18|5<)JMRqi|HEw>=em7A3)bUH zpsBS4Rtzr%>sO_)J68nFM3>KGzy22%Bo^}b2f4c;^qc6knH2K@K<1_;SD@Zm-cEDya2-Ot^GS)RAx?%`XYYjYcfEw>>;rxyGc*MjMvT4U<~Y3t-0>D3X}3WCIW1g2(E{cJ-$BydcQ88a zJ&Zp49{Sn0g2m=mxT*R922A|`kKTR&$oL4esy@Pg_yng9e}a7`pJDp4&*1&*Gu#{g z1u`CdfyL6Z|8o%NFl;2?Y`Zt6mbwFrY2ROKN!sjiWutWI|I8XQk z1yBFL*O2LxZT~^Unt$Nf@eii-RlwL03S3vGfY<94aJ)tr)C}r^n39IDxa}+;f!hNxl-! zyrzU&9ZI;$T^aukQpSN>l(Do%89NnJ(9>H5Ge)T3xB?ZNR;Pj!lsQ|DYtn?#s;E?` ziskjHI7Uqkwfxj@`&czJ-K&Pn8`SWUe6eI@UL+<6CtNZ1vN?Ca#0K zx<>=IbMD*#HBIc{tBDs!Yhuc7O?+~PZ+S|? zb^ixYW`JH%N_e?Mx$_al{By8;#IPy$3#!a9-We9@t}J4=kwYf%;#2;1p|P zyume*+Ov!?@Q5+?e`t(jRZVb=w+UtsGC?8V1eMB6@M5b84mUMLg(y>8GRYMG>@mfG zwWe6|#}wP0%+N9245JsBVftw^OnGL8AzJ2~tZI&LhM42db>T%~5V_fpuXP z=sDg3=NDLDd6flz_-=t}JuOjBW{DcpE%D2KOT1QRiOc?2qOYSBK1#O2k#nuE`G^%J z-M7M{U9GXr)f$~LtWmbm8V8)P#(|C2n5b-nZXP!HJJSY>7jfp@NgMpqXoHiKdt$SD zPmIj$i5nO8#5>1(V&{XNXrO3|rmnWAlV*!w=Gx+=B3qnOZ;Q@HaaLUbISn{J6zO=H#zfpFmGQp1PvhA>`!VXWj+TnOZ&c6$=M>f>oiX;BGe)*LbM}!7stGQ5BgX}2E^tB9!!Ef0mJ3?6x!`;gSF8_kMg769 z7`V(8(~rBN{H`k|w7a5*g&TGTyJ5*tH_YZ*=1(WwaBRIBK5pmgY72Lq5$w)&`0jXX znL9o@=8pAs?s)FIJFYVEK&d}x>-G1*bqhVP#~}|~cEbbTe)K>uy*@a~yAQ5S?}LRi z`rt0EuU>Yk5B7i62W?e7@vfsMj*aug_A#C~I^Pp-7ki>bgD0l7d*W=9N?)vb-4{oydf_(*FB}=;g*BtR&}@|#rXKggS+~7#?PqSf-Z<0K8Q@P{{682Mm#i4R7n`QX?oJ~(%?56&v}!D08g*8Har{xy=| z5g)EUPnBTxBnkR$l;GAg5`1}Ag2vw@2zmlW^bs&HLBL*P1^mu6?5B?koV6j~rxpRn zssTQ>2lNUDoH7XT;5@*~y8x>$0G@vYxcwL4kRFI;-iQ~H5M#z6R;)sFID$CsI^x;a zh)=ru;%6&g{N(40jTydpax&N2ulGf(lfEd{_@aM{FCJ6&L-n41m=NHH3o`w%aIzmB zS?7nlkNe@gYCn{|@k6Dq{&>j3AAP_dPbT}L;W&RBy22m#a28csg0ayh7@fj7zaS?VS4;}V9h@n+Wq&Zvxe$zr_kyw8hhQw>%!6q25UlJQf*!FU zxNu+yR!j@Q*0mwnGS3ZX1T_5QdLrVHh?r)bItusfibAiGQFyXE3VYN=;qd2Cxc5sGR&|NS zhq}>t*CrapKGC=&I2wZ!qw!V$Xq+%E8sE?1+{87}xNT=N-Z>VH-_A$lzZ;yN(HM>Q zTB31xdo-q~#$cOa49@NqgI_#jFg`d2H^;|dHD_-$kBY$$(_--1k{G0oF*s*$47#6+ z!K#ZfD6NUX^ABUtpg9K9+G22Fmss51Ef#l}#o|(jSj_Q`MT?MFtdzxKRu<=a42#8( zyja{YHx}zw#$x-HSXAF1i%O?rvE_U$vg@%pp*|LknqqP9`&cyl8H=;J#$lCq9R4$o zL#tkK=;R)UmKcYfVR3jhJ`Sg5#-YKGI6mfxL#^p?IBa1Y9_5V3M_b~sZBHEjJQ|0u zO5*T*c^uBFjzfp~IK22I4*i?s@WAId{QWBqC5lqa)so^kLn;1eDaEATQnc}q;v+$d zbAqLuKP$zBNm6{1DaAg6q&RGp6qiiojFTCBKj%gcTp>lL_5A#8Qk=3!ik*jfI;W&~ zO_ZW~xfCUpQk312V!}Ns`aYJT?n^1wwn%aMXDMp`l;Vm%Qv9kY!%z(w&h9S5eMT}Y zHkaYio-$nHAj51o8R~n<@C?W>FpzJ<`1csTKVF8bIfLa$h73>3Ww>XM3}+3OVen`f zejYEwrITf-F++w^=E(5o0vT#Am7!#%3}e^IFnR-LxNMQ3;tm;>?ULb;y)tY&Aj2_5 zGORl$L#tCVOg$sRsiiVpKzw^ahUw)pw5gC`{Z$!`zb?b}Y8j5WDZ?wbIS1wrPrF`* z2@Nvr_kjD^C_|&iGHiGv!+FnSX!u-)8(zpbzfy*>*D_rGMusPwWq9eW49~U5aMwE- zj(#u0Uac~`#x3asXKiwG_{j6(wx3%Cw`y+Zxozf_!%d6Z0e+q%x6S-_A9)(?+_HFj z<9NDbdHU%*9~Yiq%PSeK<@wuiKMI;;*p>U0$o*UXNQTEBazF0#db}sY^><~MTPH&U zUasOA8T#>Zo~-2c$IG2^S%!wie=dMqzs=QmEp9*GW@+?hC}yo zKX>x-Zj+(?W*Opo847D;XuU#)Ul+^p#C)FCY#F|uCd2-dWO#KP|4;vuVcan8^FYoX z&5_~6bQ$jx`EO)0ycZ?INue_Q>o3Czf(&atWoYaw!N~&wK1p%STPfB(m*SsB&g7|=qQOlm{=F*2yBDRnu2hPCC#87%kQAkb zQarm=imL0R7`9xBBj-zT#&ju8p1^rNBcQcJq_{j$ipJ4W%ny=cn?#Di?oym) zFU9Q^QaorN#R5$!&h9G3Xx_g5eTu`KZ+P3|?XKW1Z@X1-7|z?{RNgK(@%Fisx6^#y zUPtqG>&@Hmn`v=4pSNdq-ma(f_I;1HbF=XOQFPXERW(fNE3I?bs2o@ru@4kP`=iYlb%{jBPv-|r_UlzmP z`*?58a^-&DKeN8fU#Bno#r?w(?k8lQIZufD4c})mY~$S+R(3gt{pNnf;7ANJ%8FqM z>D>RMaNo2bhD9dCu)0w(Z2UmJUe6fjAc5-^kt}alBr{wa$!0EyWM?Nuve&VZ ztg}ZXllO~cZMKo@fo>$*{&c83_GEv@_GA@NJ=u2uo=j@hlRZ=E$wsvH zV5L<(nC*=oEdE3fwrgh(c7Ayec5zA%c6wkBwgq~yIQt$D{v1htr?D0<-6JN?Wt6IjQj?38hZTx!@kHyBy*s|U-R_QKdHU=^__?MK; zeI;efZc15Vfs_s3${9}!rR?oUDccw>W!BD8mZK$QnqNcNM9zIWb}5uq9SmhZ*M>5= z8KLaQz)h>c0BGJ%;V45JPu7(;h#;x zY|z7CW_vD})$R;tsma02baXJw3=3u|4#Au~9n6k2F;-Q^*sn8;DP=I$wUDtl|1owU zgt2)xj9Dr082BA9b{p97d|+y6oF6p{*v5gtPWb`5+KtE2KLvKAQeewS;4CnKeO)H7 zEn@{{7A~-@_5%B^D6rlQ5|+w&Qm2ke*sb+EmQRqdi_sF6#v1@XQ^ z5a-kdu^zL7SoVM*_QpGi8S4cxNoyeMT^`87&IB^ot%2_B#XKp>mz9msTa16gKE z0MmOIz!Faeu+p>urZOXd`NssXer^G5h&Cd2%gd4M0&H1K0hUwm0nnJ=4j+?Sbb@MR|^`!erd zybopP%ewyhu&7!emWn={hw8(w&gYz}fj;bv1>fo=y4uwXs`zhG4^2kZSL&peRsC@h&yviac37s z@_uNLJImH{XFrB~8@j7le_de(_e-N5_i~s+{n6{rD&O0)yesx> z>`r^8KEs~n_ONH}W_;NfJEmD`$0qExWBK#!SY4zYQ?jvRW8hBL5im{Er{8~V_itvO`P@{+9Cg?`rTJkOWp zwp+232Ucw0K`W-a(28A-wqm1ftXR`GOO|lQlD*h#$pYtEvemsUS&5k?YiqV(dLK@LCBbEP1;L)8if4OrC4f)8M~rjd{Ms zm|3P6v*EGEY?Y%i%V{@aC+-@t{A?qZIn#(Ok{Pi+`bJFcZ8tu-k>|G7c4Mu>dA`fF z8~gOzkPYHB8uIrUvbI@<%stGI4b?YfbKe-S<>w99lGO%m+E4=)?PS0#+x6M2+xl#K zraqG-=(94=XG1mkXSE&^j_a`al*Gb=j;-x-2D4m*-h@*b8+$Dep8+gZB$`5 z&a1HS6cu)^zX~(5RAJLTDzkG%%B(q6nVAn#<{VFD*7uVV8zd_6yqpsAAFRamY?N62 zCq;HhBFnZ`WUikSSV6G@vs$gdRu5EQFD(_A>qmK(P$sTe)6o! zOrE`KkYjJp%CV=*HQtP-1r82MtlRe=C6>K@)eYgze4|lHdrBTgUlzb zuxD~Btor>0V$;9y@w+c@y08U=s1`V0+YHKcnjuoL84`DWhV`zWVfCd?Fm1pmki2Pv zmc%C5tl9)dSs!7o$498Y@&W7zeSrRN-^0WO?_r$kd+4*L5lq}0;qj#gnBTtv{?)yM z#JTU_iNZTD&v*-c9pA!~BF_Bk^9JH7UxQ!5Yxvet4>=p_A;6*@&L6J>%aA&l{ooax z81)J&KEH&9r7xjg>m`)#t%Y44wJ?w;guchrKx$1jbWN*<@xQC!^oA<X)s$BamYtV*NwNpZO4~f0x0pb!8xLR0iz_A3&wo12}x~ zK8%gL56aK(!S3<*z^LUetXO;(o~zsiGd?yHWpfAOkKcw_lG`xxMk(|jPzr`Mx8Tv_ zTd?TsP0(6?6VlahLRZEO7-4$@4jwOo7eRa+>iTui>~|g1DzCw}3D@9$^HtcEbQO9j zUWIp?ufROhE6|dA8HV%mty9I9;9K}5aC&eNB8FXrA@u|Urx65yM=)HDP^F5HzD)!l z3lXm86+@U;G2f;LG{TEu$h|_?99sw%YA?XO_zUo;5N?%oZ#mb>Bk z!Clbhv;xO%onTRv0UE&>&~$YNT<*04R^8nW(0@C;eX!G9kqX`JtpbOB ztH7l^1?*x|K>PVhXc@5*))ub-v&+k2XUQ`7eS0ZHmMwwhPZq=e7s+s}HVLv`FM>sl z3nApw0{HwT5!QU459%HBU}4u>cql&?^i<|Rh{kM))tLoD3}!-@@eD9ApAJ=4(_oEV z0$4dtg##{AK-Xh3O!bb3Q+|`6E^s1r3KKvnWIS|8$3a#2SUA#a42Z;k@3EH@_FGO6&;(7xVzFh2bDB41?H3 zGI+H}3jZaA!p)=*uucw!smTluB?CN67T{yD1b!q3L0fVlyh;v$i^=}5G1(8Il6~QK zk`L@n@&@lDFSxMC6WkVg!1jgi@M(b?NEWz4VxkKin(qv^<~c#tTt}#z;{cVjyTgrH z_K-W%4(89Wg`nv+(41fmyQf+~;1o-^70&-0Wkd9#daxeU4%CGw{dM4SUv1bItp)QVH6b)Y1G;*u!?|!Z7%fwUt`HU2 z!IZ&9P=bSjd~S-r0<80qhfkhzkT&eE;63P%a5d()5EAiAI2!g-_{Y8r5rJQYCEl$< zj%$l>w)!P^H_C*Om+lJ*g?EL7Q@4fDM{fx|58M!}_FNa5wp|sDZ@eswOT8$l zFGb-*(SH=AY%ZB^?3y9M zxWs|NsEK`rL4zZO9^t(NFP|{M*d|2ytt|*OfBXgfZYdiLh_Jp)h}ft`I#)Q|KP1Ds*`%3KxR^N)pX}N}#=2qVlXkQhn~FMBMsJa$r`O zWP9IRk}YnRC41BgC1)E?NS@!!lV}{;D;bcIA;}w?Cee_tmZ(6I#OCJ|$++{wCHLp_ zk&O3}NSr=9Nz4k2CDN%X61RSzgL>S%A5_}sco5#&7!SVwm*vFY_msqsFVy&CV=Zx7o1WO&)lHnCVJ2QS zwi27|?Zi$mNAUx570*R@igAN|#k$dfVpsx*%M(Mz-7CVyO&fcQaXX_##RL7swFQI3 zw-<(rW>^0cUG9z+bt=Y-Wwr6*#Kr`%{L4(yuw$<1sjyJA)Lbmq8!i_^byCFn2B~6( z@ftD5e4V(%dV@H}ev=sFv{`I)-6Agc+$R3>*&$8|*eQyV-C`TtBkD`DMYHgIqFS#U z@m0h@F+1vzDD8V#ywm@vC=ALM(_@c|cZZ%7n}(kjTmL&N){Z#QhMDjA$3f4C@fT#deC52X%=>{r`z=hvjf#o;-fcRlw+jinu37 z37_v%M!CHzXqKgl)|qN(z~`ra+o6Hiw`t!;> z)MbX4x40XgU1Wp>iN?5Pt_hBxWs26*d0pQr<~VYa1y+x<#E8*Wxc5J6d^OYtH3!?G zeSbT2jJ8LEi0=3)+yPI9I$|6+;nx6XO!RTVdUsb0a(2Uo_U@Qt<$>o-J@Jg87w*>a z#wqGPXs6_hH~#wKfDS*r`OP2gTLN(Ehd|7H6NG1KC3xn!fP2b$4dZ(Z9c~8Wt;-=e zpg0t-ospthfehmgg<Yi087>^#IH$RAAC9TKg*7X=Ubpxu@Z@}}zH{!rY8}VhtCLD2P6W$0+L#vZ%IK^Qz=45Zi zQeK<;<%V>8Bew;gFWQ3CvIRHAZ^gc~Tk+4}ZJ2d;8#;w;$K0arsO7l>Cmq^>$IUXZ zeoF=_s_aCgrQE*mM8&DQu?RyB{91(>xrUmWR#%@^HcY!}ziBFh<86!QEv?@Nw8tY(IY# z)t!%_TGlcArj?KPR^;R6ulX1fUx1Y_3UF-najdv>9R0jc;Ie}!@Pgq2AJ>tQEgafY; ze)PVGGjlFtjm{SpV3O%ol&rgobw94+yh+!v<;gW1 z5`G;IoxYB>RwejvQweJRELUzk}0%+(A3eg1h$cE=C65Lp*v94ZGdPp)2p>%Fp+4$A|~G<>mwK z8_F}&L@O^>vvtMANQYD7Xs>GBR zl~@o~g_vK3XAG(_eMvROzN^N6eQR(>VGU|q*W#?TwOG_riw(nG;_oXj@u$-(tWJN0 zhkm}oA!F+B)2%w3>RFEuGV0OfPd!FXe2rr{H*U1=8w}5UgPL5=bTR%d4u0?!ANjpQ zzdi48@xOPNAK!pi?l&O%He%N9MjY4Gh}sk1W6quTXyWw&6L)+-@z)1@J^CYlDfx(R zxu)t;S`#j5YeJi0pD>?3p{dPhoRRt&kG%hkH)ERd&go`6YuJJ-7PX*%O$*+ae!9lxsn zz-I|RaPR#e80q;FE7N~sOzTg~8`O^V=h{)O+b>jJ@C%!t{Xz=rz-hZX@NatuE*!x% zXyR`)FzdviO>d#gYB7rF#p#dl#S>@vA7G3O#b4~g?};m*{wIJbCgtC{L>8^7QbpJgxUsAiq%x^l+mB zjY0*gey>2$#)@=;bLjrgQ=}dT6=~5UMcUt`NQLf7bmc!K64xowp+Y5E`BsVg=_`|# zOqnjuP^M8?%G7e3v*~^)Q-i$E!+RcUgXD#fBI z`82B1UjsF|EK{QyGt@|Xj~ea2rA9Vi)o8o5I{k=Nr>I5hlzvE^Zah+_kDcoD&sl?O zsWs^D3Jq#Ju0dB{a9*9FCiU><8pb$HTEAA4^E5PR%S%n_RMVp20a}zdR*T+j)FRy? zE%JP=MIl<+#3b6}IzgM%HfvL5u{LGC(WXAyI`l!JLrD{K=vSH!B^2w>z1KQqp`}Zs zf^=!~I9)omQJ1rObm{slT{@?xM>{yrZqg_{a$2iLFHY-GQk5R5E9%om4}Iz!s!yX< z=+lW~`qcbbpR79dDb&G$`t{?s(11d649Mb+0X4N6P`;TV4ewz{Kc*Q{>JCGayJSc+ z-x<<9EzY$I>_&q}ccW!%x>4pyt|NWcjrMhQqqUAkG`61+IWI7xy1hoU?xqo0e>S2# zLt`=vHm2nhjHzOSF&UpVrl?9|n(>b>b26b7{Y+?fq6ziSHX*AL6RP=OLhE%+$uY>3 z&Wti8_f%8bnQuxhk4!1(rzy>{G^30jW>hfMj83JSQSJpZT3u~M!{p4##L1j)$Cy+6 zTyy%i%bez1GN+o?oR6n!K`T5gsCbYCy;^8N-?J^Kk<^dsGdx}CEj`)4*}#W{Lv7PeF$YD-7Q+0y7# zTar6sOFQn^lHn&?TBU7Ab>4R5HrS3PCE8KiE<4H`x~)4!890!ZzXM&0 zb)b=n4)h_zfhH6>(EVo)WcSm7CL23aW{@L^!yKt}p(B;-a-T z+8^jdo0_jgro}QOqMZ()#R1sOC;X9Np<< zxI1SUx>M0&cT(ByPQA{%)9gp?wC426>Vp*Umf4^d$TBo}_)qlNv62QbDCBjrzu!f7)Dg@8U)BJ-uk^ zXfL|Bh->k;d6DZ0FX~mwHTm^kB>U~fwZh)?#nYP#`gqge@!s@du{TZ2@TRJh-V|`# zo0ipk)AdS>85@7#T;zLyW(9qmIo3w>z979Y|-=0m5h`H-Z_hfcKlkgkR=jj{Ko zZ01Wh2K!RgG+(M&sQfY@T4bk_bau+`m!u%+0xF2VE`cdZ^ zKQi9uM^+d7NbkNMwY~PE%fI|+kuGNmI{DL?5P$NH^{1=^fBLq#W(Jb-?A2hf4u0TeVcfQsh?a32&vE3*UW_L%_cycIweH38(@8bG$n zfuw96NYA|jDWhi~Nk;_Ivl)RjA|;S+?+m2w1%WjEN+9Jt38ZU{fmHT8kVGc+YM$XY`7z7neM zDWMI+BxI8yp@T~#q?<0GgaZ;feNIAeZc0e*g@iOeN=TtoLJe91U9c8tj*mblJp?L< z704}K;EW4_TGk1~7PKabb(gc0vY-OZ3zcz=RAtO z6M)j@0pTj3$J>FPlsYJgM#VZm|$8wBbYjqgK6rzV7i_WOe(p-Bsm>Sv6nb=<8CkwcpgmNZ-eRgmtZ>g zCzyt+htNCD<``oiLbtp^$Rs#~hV}`e6|o_dF*byDO%I{eMIkgYHH2)pgiv`_2+cSW zLf_AZ(3Hy|RC*_b^q+=MWL*eNYYL&HA0aePE|i9AhLWpsC^guIQo4I6*$0JEZdfSk z#BgrN&`>%yHk6(xgi_o5P-` zP^x$tN*#@%q}duu>K&o1)EX&g4oImeLrRu=r8M)9lnM%@oZTa(Mv>c9DLpRb z+m%Ua+EXc+)=25>YbgbNkkZi>DJlMtQgo-3mdnd%ud0lWYRhP!p^URLWE5i~BPB-} z9dnbBzbvkl@ZO5QP^A= zon0U!9nNGKzFbC|R`KoD%BXOoj83G>xF3_zs9iEL%Hr$q%jo@U84Y+VqeJgx^rk^Z+V5r5{ez4gKg!6UNk*Tz zo&F@Fv7cp}btR)!%`*DVEw+WcVe zx1M~TaeV)y`Eg?S@f;iZarp7~^7DW2e{z?sGEQcv?n-Psm6) zUq*R{`FgoBI9c9>4Fi zWHdWLMt3L4NOv4Rmy!G$hRG;?5Wk+jGGcvXq|$>QGekz?Br^KqE2C*1GJ5R9@2Q=P z##`|7Fp|*$T^Suz=l^p>8BOlu+|za`)wD`!Q4?qLyp__tm;5<>&Y$6O&g;1=rG+I@ zT78i}mlvco=_G$%k4WkJe$GeTEhYc0{9RZtCA$~`Kt)QSU7-~FJ(Pxh3Z>p}Ldm8olo}s} zQf6r=1zirM>*qsBQo!Ha1NQi-Vsvypqfg0=AFjt_U>yq(Ia53N&~VZ@U%?^nR*98N&tgju5CYKp@xd z0&UP2==ne1UbaXmuvS8m_qd4?3OFJmZO%`sNRiN**%ERXEuk~foChpOXp5tSUK>cr zR!%~Fn}aC6I*6uouF~iWK@@s0h}6@AsD$%{r%nl?&e$MY9LC#ok01&&3!-((K}2nV zRP!>BKHLqYH-&+8_h2CH+Z;$^k^@OQK9G)aZm~~DARXomCRM{g8umAUc6tNs+8?@t4E z_*2X>e+ro5Pa1>#=^^u{X~9|^o6Yhix#7O#CiA6mXJ3lY^(CR* zhfF!^xuMjD4xI9#s9io(x6Fqo#{1CIzCPq1;6p1de25f$=*>rOYA^Su&SK7t-tSHK z)_Bvd8QwH7)|-BTH>KNplfJ4q_orU;y26V*$&02O@S?42z39jcFUlY6McINEEwT2Z zNF^^)Z1SX&k36YYA!k=-c~ZzqPtFtcq)*YFF=n=|=x8b)#Ej-N?458znfoasTB;rJr4?`jIQWJm*Rece>KaBv)E8 z(v>7qS9)#hN{ba;Nukk&7Ts~7+5#8OFLa?fvt8)GAQ!so??MlZT<4D2V9O?dCM~WHjNaW{8CWekQ>6-)PR5;MR^A7ZOhXZ|{&p%^1o64Ur zH*}zh-@21=MR&q;-6>{!cfNgh9)ESGET8W5LAN_OezB*)5AA8@Nqb64v!{8}?P+AR zJq5VhQ>QBL(>2=Bh+B5la>$P6ud<`}D^f_Zq76f=NY2-arfBp2??+2gDz&8GT;5M!Zb^&c zENNMgCCxXmr2kqhI9JqyejK)-<0%$2XtV{r7c6LIHw$|E#hjwD7h$)>cQ^RGU5 zno@T)Q|kZ5gr;3Gp@q9lXx4Y+4S+YcF0=~5&5G}MUXyp2dz&4{|{yHNvnqs!a7(Yoo~D7;rU`fSO+|1hL( z4-IMC5uX28VMt?#8`5cSLuyqur0(?w6u~)Jaa#>&>{J698piV{rUqoxs!x0l7VXK= zr(TQn>2-g7n(d@dEnRvv_L&}CJE2F0tMzF3NIlxjb2aDH_2_=REITZi;#>Co<8I;3NvLyOw9>B((vvfi&vqY|}gQ?xdnu+^q3 zKegz_11-W_Ejo~-MaliOsF#Bl|G#T;4yGmzJj`n-EY_sS12w7EQIqrDHE3VC27NfJ zK~76FXy`x~(Dtb+v@k@4V)RtV@SQR} zELNr^o0Q3XtTLVOQzjo3&f%(3BK?y}G;^gAU5r(tE+-}O{jEsD%M@wO0YzFmUy+tX zDAEiwMH=*3ft;@@P}?>IIyFgwMoSdvpSl8N)XJ0PX?fb6B2UUgVtZE?CLHX->%F>A?!zB+-1G;1 zz5ZbL$DR0RekWcs?!*ba_D1W--#F=S2VOnUf$}{&(6!+g!n$ARhaOLywJg3V!U8dhL0KZ|=f8TK3Z_eq;{))-LU$LyF z4b_*np{HdV!lhR97}bhuf4<=T>@T<|_zPPd}m7{7-mJ{}YCvY2pQAn$WEIBaYwn5qG$L#FMu_;OY1en63B$XCHizp0f8? zQQL?U7B^zGNh5|7HsIR94M<pCazBz-~eXj(q$C)22Pae8netcJE_69QYVlKP<=o zQ_4|Mt{e|%K0;sLN0@*2A!<)}h@*d(@!CFRc-5^8pOien^0)_h@#}ruw(&j=vA@qV z(f4rgpnKT;<6Ydf@-BWixrO9Q#@Ad!uesOooys*_zxOJd z`CY}#+gDI=^c5Wa^)en>cNt%BCRoSWOQ_c85-QhT#MU_%@s9FEOwZyqfV>Ic-9Stn zf%x^ah@(?PEH)DHUw$zLN{jKoCq+18GPmD_I5NEu!M>1lv@YP)s0%pt<$3%!=RB@a zI*-41pTp7a=kWBEv)DT5EZR1lL21$%?5lYOBYFLz0N>N7d-D`l4m*Y0KAuEadJ@ZZ zPU3JrCRXNu0{u#lWAk73=1qj+%fQH<3( zia+)p!L{B;Q0@9*Ts-(N*1pX{uLXHHS0xYgb|1pqE{CuhbMaMlEg?Q*ou<|Z$;(TTQGC>7PR`Cjyu!R zQO+VA$K-FuQ~|Ae_AB!e`$KZi(W3Ze1 zXj~9J3QLBM#6L6R&~EjA7?3pr{m%?X>(XJ^UNaOgwGF}9e4Jj#Di*W-2BT5rAY3+j zAU>Hl0K2X4kG=Qx!-?nm;_TZom{1#ygWICeMI{QG%_H%EcOUH0D*~U4=#7JB_QI)o>_hNqP%zGlX6QHuuxze?lh#P^b7l}u zIuVEut_GlEg+I<}^uuEvzF48NJhY_B5XSxSwEqBM!+uYC~&lSZY z7aVlg8Ea~saCnO&-jZ`fCqoBJa_o+mCHD9u$_{Nt*<#2n8;n_Ljs3SF7+M-f)3w|zMi+d{eS^Px2wx?Wl z!-wM9$_HXa`#sUnfeJgu}z+-Sc+922%qbRWZO zGA>CK&+bVPpU+w$h88RlvlnwvSL$d{lh0!^ z_&rqA4;(D2&FL?86hw>f8Y0BIwmrpTBW2>MUBTjr#}d(1D?t1i;Uiv4@etQtauH+N z9YifZJMqB`D{0;$ivKmd zFWx$`zS#M3WpQc5E9Q ze!Zsn`KhJFy|QN(KVLVdcyr=_;_2hVis$zCEzS+LFaGOdSiIg?sd$xIQ_;|O_lwf5 zoh)+Sx1}iI`-Gwqr=5z1JbzlaJx3_CIXXVzaB)VUWUoq4R!xtfZ)Pika*po{!n+rP zBHmX8g)99E8ltBu3AQ$uJa>1M*nuFii0C7^Ie3`FbZorDbb6v>+{F}$TKEP@YUx(V zqnJ!dOL>l@cIZ(_cJ(QV%h)2x>bI9AC#Kwz2D zmHheJA;D{MLS>4QP}M_CxTL5hth%Wyxbj-1XL_3mW-1oKgi>o^(^`9BM}(8GSj9~U zEAW(%VV}-Q;oj#I;my5Nq2bsX;qlsa z!m&vkgsD9?2?n;Cg(F?*f_=?aVZFFrc(F4>(3!tW@En*a1bSu(jv9M~KaKl@OE+?a z2?q`etxFFH@&6qbt_L0!lnn9(kCp-< zmGaPXLjlxID}rv85-6`xhL5vVfZ|kPac?zn_ECot&R2_3)`aU{G{K=-3l`kehV!R% z;8mtB{9L66oip^Ina`bl5M~Iw-MT^lZbtC6%Lr268^gbH6PQY-aQToK{7o|lw}lqa zbF3xwiL`~>vzEEZB$Ju56aJ|JJwm%DiewPBF zEjI|3ZIHmX*#Zn229O!T;I@4*)TxC)T}ueuei{myB!z(oWYD%I43ejZ!^eR=AUvoi zthDF_N9B4$VMA{?elG&no$doM8IkZaDGJt)jt2Q2F)+@lFC5Y62Nf;-pz%q6s4E%( zSF;Af>g9vLXTo48=^YEqbqHi?4TYL7LqVxx7#I`{2bDb|pnl1JuzyS(^avjb_qvY) zL1i>-`Y;+w?u~(0C&ofu`Z%~bXFQ}2o&doC6XBuJBA%Ks~}c8749!d1^=d0NE@*lo|Uc!oxn99IkW}_>aT_WR`43$ z&1)fez>~O*Al%sq>4BTzY3?Ra(@O)7WoZ!B zlmc0jy!2K3sP0R}%a;L-Sz$!@sSxEquQXM+Fb zOc?002jX_@fx&?0y(rG7f`67uR3JAAzNu^=2tK3i&xl!CvhctebNTsw$6xNq9bl=jX!+{Q?-7 zTmaFp3&1JrI5eL*4hKz7K-kI?@ZkLk=sDmd94$HtKdnxI@0wFE;`1q(9(x)R=rqLI zodMVNXP~L&4D1?u7Q8Q=g>&}jz>aH8mVP-0*N2{mZx_#luKfitUVj19TQ0zRu1`6Q zg)q^k2o%;7L0VH0$PX-rafQWj++2kE6(Yzra2{MVg4}6@dP9POB!Y1-3I2s&gbhb7 z!e5O`FnabSI8t#5sw9`8J)1M({#}N)iC5s^?JJPseieFexe9e(ufn8Z*Wd|W19z+I zFmvT~*z@)}oQ^1gQ~4$QeYyeDX5RqkCpVxh;3kaTeG{H{+yoeP3)XN(9NCsa)v8i> z{jL-$B5uRUW4B?h#vQPp!8vhdcfjBKE@W@L3(akJ!8!IGL|?cE!;J1j^uqh#^5QRPRp+@oq^mac1&!11ge`p2RUZ{Yd22bJq+@~<2{3$eeJ%hN-&!FhjGw6(Z4o=6O z15sGRbafU3MPN6f_($4;o`|^xTaA9C#KZE%9}M1 zY*z~}m({}L>RNaf^b$OFyo70AUc#1`SCD;_v*i@)VDi{HaJpCrWybXoH?JNZmDPi* z>uZ>{`Za8?dkqKK8`!z?4a{wQ1AZ}Yq5AM!m@4-UUdFuxfs2}xbsOM7LIa$<(Etan z8e#FGMqrN{q0a3+Oke#TYG1yG0LcfKyY&NPeEb0WdVGXU*_=D~{Uez5YXUsn1k%4v zkU#7bbe#GG-m0G=dhBP2DgF$;y3NovxfxDfX@*|LEpT;a3)tRjfq2U=uyy_yIB@R^ z?6PZxIZ3VH{iqcx9NS>j(l)sFqz$ZGzrxTJUt!*}uQ1>J8~m5@4IEy4g9?xDFm=^; zsDJStq@F)u#i}20+ur~r2K@$=Rd*2y&dkXXosk$?QqKF7ql<^1rCpYL6Bny zcqDg#a#;u5u>B43iJVb)`!@`==!8SFI^o&%PH5`(2i{Hj1J~&ftkUiR=W$(d`dk-S zDF21&!~a4~{$D8S{0nFL{e$$Je=xA^A1t<$W3p&D_G6wL+nX)N0&mK(YoFy1*Y$8Q-?>y_Dk6%{tgQ-ytrRbkT?tFRXbR9N6`6}Gxrh21n%Wj{cb8IMzCu4`49 z=LuD2|3sCk{!(SHtkl@yo@#7Nf*MoZqQ(whP-7m|YV6oQHD=_f&gMm{vum@}*}n{R z=1uBsV4XS}ucW~yx@xeY{kg_;z6R6I)L@S%s zrC!oxW%Zg&RauMqx@xh${j}KdxmqlCrxpw2gnp}+TC7Pt+pf*~~y)<}*T#@*uJvRP~9$WB4k0pKAV>68P*+4;`ImGF+ z4@>mf-hKK^c2%EM)a$e13I^=n{}{UOcq+dz0O0oCd%Me?_m_Cjqte!%+ItVBp*Qc3!qKhB4Hz4smGp7XwEINwKZ0scKKxM^Vl*Ap$^ zSGEN>-nIb0&lV79WC?OV?&l4#gr|JX@a_~#=zH1{>K<6a>aUj2W^M&h|5?HPAy(iT zZ3W}ES;3aGR*+Y21x4Ta8e~grIM&V@)(^FYA<@=gy3HDj@~vUSLu;u1Y7OJeZJ;F3 z2Bd>*Aab4!9NuCBck^uE?OhxA{MiPo`MT$uUfkI0WebyM*n&-hEuX}+h5p>!dr)Ny zUDWL0kc%CB?_dY*#@NB+<#yZ~vx6-KcCfMB4winkgCVB&;N)iyPx{!ynwj=sn_v(7 z58H$F6?<4&X%7$n*n^e51B3@Vz^tJTuwuRgtmNyrXCHTf-X#uT`_=)<)f{1svm-cw zBV-MC1gB_6SeN1mFHbmv^d@)u-a5i^H77`Ra)Ql*6U0O~!MOQO;FIhGAC5Ue`ZXsA zc+A#su`EL`ad{kFS;)hSoFbCa)s zuXY9PR#!-}mcVa+35@C`f$T{Vs9hlevvltMAju>`zcOThG(1ZvEraKuXr!@El1 z2e<#?qowd~lN4rUN#W{wDd<0zLf986OyLgTVrLmFX)l9m{bkT~nhZ=<%eVz6g9W)V z(7i5$IQ?7>6C35w#%+L& z&I-^9Qo!6k3b-~=0eVXn5V~0bV-G9%y+8r8?kgaoRssHh6!62$4Nkaof1m^R0|&do z#2Ic-y2=f_)7)UuF*nFP?*80Zdfr?|uNW$y4d z*&XH`bcg!|?%;IW9Y$8V!`g4|uv^Ci_BnV!s=o&;?CJqshI_!@SsswR+5soX4F>;>}^y})3%7o;BN@16I8 znfJJ1Sm_1L4PGEq_l8glZ|ExbhTtG?u3d4_I@y| zs~U;HOAP&C7PmKg%l*MNz#q!MAC~v@2h$<`kUGvE)Mxp__(lGZv&J9ZZ1e~19elfk zJmva>rpg~)UGaykyWI15>JKed{*YAX4_ZI{VXk@rTr&&+U7G+1kp#dn?*Nz>6aXVT z1wf}>0bn*H03M79fYsb|w4E0K`<4ZOMO*+Z+QdJX9sq5b0pNLzZ+kibx?lh(uLgkW zod9@I9sp?-e4n)eaO(?qMVbSkpe+DQbOT|SDYqYOxk=(02%<+IoDB$sy&-`xKP(X1 zg$F|QfIwI?JP`E92SV($KzKVR5ZW&agy@xlurDqUR2u@}{MJA?wKEX5>codIzI#9c55K4)KG%G zo)WT*mEdHlgtc}`D0fzZgaWll=2%l(6Hh622BF zfunmcpOmoeyb=yyRKkJF{P4d)w1gk?mJ-zOC}H_sCA_|;1m%4tEO?-V z%rYgY9x8d+SHhV`N=SRmt<5J&aD1xd7NHVGKI7-jQ}5^exIESKqYr zC9G2NeD+nsI1gSvWc+(~Qo$aMOtY)a9?$`TKtYLD?J#;~E2D$)`YA^)?XZ zRr2!sED)S|8GX(z)U`Lbi^|LH9x)IMcv+rtf?GXVf$%9a5X^X4m-8|&=VjlF*MZL~ zc)j7C&rDu740#>dJC2ugUT5NY-FewF5G1@V4drzzn%AvZUdL9t2Er8EK<=~!LaR<7 z_+G39rLxye{wMbvl*T?Zx{7AbfiOXeS3iKCk@bj=@ri~b-z=?@`?{Q-9QgU@Dv(2w(n$4mSnCDI>)C;G#k2!H6` z+aE4;^ascP{9(GgKkRq#hhh_dc%i}V*=9fPO#4Ajr5`MM=m&nq+$Tamn33lP9}jT9 zHr)>j68%7Jr5~^;KbXM1qUZ=eSRC#L)4&h9`uTye#1D!s{9vxOAE^KGg>|2Np{c?b zhH%R$^NKG#J?jf?M|{C*moM0E+?hg0ozLL{bPk3?46B07{Gk=pO9ACzNPUo+O^7lJ? zg0ny0&XI4g=Lsu*c)*fs514r01K4>FP|NXv!tEX~I?e;?qC6mKj0e05=WUH34@i=D zz%?V@-uUGX+O_UrSmqAu7u=yXn_J20?yxM@9X#i_L-7cA7~0JpO8wnIaBzoIZFhLq z=msVgZqTm84SMFgL9a|VU`cLZAMFP3$GJgPFW#1F=LVmg-5^@e4L*NUz>rr8I98&7 z&u0|inxTL$2?`iIpQq6Z2Nypea&tT`Gn8@lwd^DTUGgQut{tg>`==@b9ezX5W=?*GB@z zdnM2#P6BghNw~+uZKx0l#JWgenzjU>&K24oy22TBg@^;L@Gij>X3TYkXG2{<0N!Sn zxWY{xS7@$t0qb%Xkf94m_Pc=5dKdUOo7+)?Tws2%3phHtK!Lgobbjv)$PFoZzB8=a z=?phkIm6#c&fpgA3>|%)p}V;=gf=^Y?4=X@y5t0xvYcS?1}AWga)Q%CoFF*F2~IdV zff?^dOym8D9Nw>}%yk5fR7bE`>xN(GF17(E;3~yf35W0GaRY;mU1$c${Ys&$rq`X|z4$54VQ|W)FRx>_P3H9UQ5$ z1GsJnmyg;(`we!mH_{Hi^|u2dko)BpcCe$#7V@6h!a30va`)Im`YKzPJKh$8JKI8o z)E0JY+CsZp8@Nzx146b9WNokkwMZN2*Uttv_}M_Ai48pBmU{IAYp6P74P|N8aEA8< z*G5=F*Y?)jvbBbt%~s(3)Cx|jtU$KQ3KExD!K;y0AZJ!E+TIG{ep|xc=az5;En)v| zOW3&F5~h!`g#VZ&G}>9hzF!v5@tFmbsw`mOP7AoQ!~*2QEnsPT3pj6O0pGrxgI&2f z1m>FqOEri8=9`1_Ky&!*XAZ?i=CJOw8MM1?2IbjiFg4K(-cK`w(cR79lFSUO)y-h+ zYg5>M!4xj;vrU?Z1G=Yn96A;u* z;Bcie{43(t)ox?hyu=tT4mE~1fqV?W*ce(q8Nt^QBY2)=1n1To!J6?#&@t2q>THc* zbCV&smKnm~JVUVGXvn>JLwMfR5EQP4FzJs0q&zi%(`OCfY6^GxBMqP^+yD;C4Pezj zeF%T4585hyIG3gm!=kw1-&-H%^0AJ$YWmQ>LJy9q^q?tC586fP!PMS*kfhLq%zwI& z^@6)t1-h_dt1fqQbs?muF8r40Lf#)8h#PGM4m#lYgU24Y zuMK;1w4s=rS#QT_b7NE+n$5L&A6^R{-q3>F{aUbmxfTdR`8ba+k6ECj1@bqVkc*n& zxlI#x%+Z9OJv5=Ot0tuW(tz7#8t~&dA5Y?rmfJWD@C?=fS5pnp`@rq2%j$4;w>m6Z zs19Cyq00lgIz+ar!LLVZ+<8`m&+FA-@OU*i9?ZwEOw?dj=|6Ti<{z^O;4v9qx3RG) zZERFn8w+jt%e40YWoNms)vK+QUC(P}?&Dfnlu;|oEc(OpXa8X*?fl>SD{f*C8d}SGP zzp`}uuWZqcMi#oDk$rM%WU)6J*grnbIL)k#c^YsG}YKD}YH)A$%Jd&8WoUbA6Iui27-*DUTy zC0nw(k_}T-GUq$5*nAHL|IWN*ej{J99&ImJc-9NnuFngm z-}s!}-u|2|4t>rHs-Ce83D4MfpJ%LB*;AId^70{DfVd_Jo}<;Fi~^$E;Jt zWA^^nBepX05o_u4h)sD{&cu!7?5BS@la)VY!cv|bA2P+IGWKV38M~lU#%6QROJl$T zmhkmH`;mU14HE9N9WP5+NlYnwD=lSp*YB}6Gw$)R?R#uf-d)yp&|Oyh?GB6HeusSt zxx&*N4HKw!T8Y^|U#?}>G~kq z`d62kGUhUy=yI8@zIcfxj=#iW+Agxm`!2F}oi4I(uP(5Ct1qw+=L_uO`SW}Z?L15W zQ^aca6fp@Du|Cg6ycfu4l6!6S7(9pJQyt&SPvqyJM`G&qZyS zeUw@29A%pi9$`%#j<9~uve-6mgxxX8V&8KPGs7N-ndO^9%xL8y*2JB#($fdo&b|lP z;CBaDYwQ8G)A0b474B#I2kmD@pZBp@>v=pR*M00KW-^b6Ocq|B!A2!zu(7fX?#u0E z?T7DW2HXrQ+pvdil<(p5a=TgSa6T{BxQjjAu#5GS?_x*K?_|G*?d12I9c+Hm4n9w? zgPo-9OdPtMovlk}2iK>wSU&eRShbB=4cf+TeMn>T)~4~f&NQ|yKb4vHO=Yn)TUqtW ztt{ATD_fPD!p?P1VXrH;u)mA8Fk|B_%=E}+rqyvXt9z8pisvM=ZCc4}XvQX{9khv^ zxU-RUo3fGJZ`r{5r)^*ty*4n}l_a)eWD>jHkjOL=6InZ#L^iS@fz9iez*f|(XUkWt zXOZT7UNn0h^9ozXnjgor!a4D5wq`uD*b~R{_?&9TlC|vexV0>#DV81D7|Yb9u`D}k z4GZ2I!}3a2Goz+eY^a3C((1R8n^`MZX4Z0+_+S|u-MW<7crIl{Lzl2VYZkLB#}_f# zlV~(RG0gV*X!fpd6gy-+iuLI*oW!8>&?a+_htu!da?2`;p}@{ zPo{pn2WxxKoqhb-ja_r;#*%wiRIsCNFEC$1P9Ij4miB2c>+_xk18QOu(SsuzV z_XFcogsk+lz)H;pb}=M`?Hd=&qT<^#|C}IJS=x@RY5I?uIsC`c!jw#VS|FRbF@T*v z<#1;ouZMJKh7MoqD$&}AESp6S$cF;wg_3om^9+b2R zzl{D0#zX!HraONNtuKEHPbJO5zG+RukmKKkrus%9zFmW$w(N@#dHyqxb@)jz=z)Yt0gnY`bh&V_uuRZs zxi3U?EERUf-WBd#yDfaxxh3fLDG@9;-w;e5ToYO?t_l^yE(@o2T@)6-JTLgW6bUaT zqOjtyN-%y`Af$Vq6HFrWh1Gedg{p>=Jg{P(uzt}Ap|~(dX#I6e@C-dF^j@7MOuTeR zn4^ABnAdH;FmrvTFrs9y&_REXVBdF_P?x+zP?e?&%gnY3{|!kMs<)*Gn;vf#d~K73 z8zVOg!}lZ!RWB2SDbDMK*W=@bhy!bd_1D%2!+Nd~>~1X+?)P0RtSnt1I1G*wPL)U>@Jd9%_(Orkc2tX`N9()1-J#OUYzkZx*ILNfG+ zh1gn#hp3!b$SQZAkePwbA*;bOq^P@kNZ)<$f|sAY9jtZhWN<@eTJVZbbAzjGgM)*U zTicKLl-z#b;MqY#vK0kq8?O|cx?xvnmNuxc$bVho7s~^M8NZ4OuU9-RoO1blVNsc` zs`aY1>c?5R>Ts4)rL{dwWw*Y+>eZq#sv%QnsTK`gs*)XyQ%%^lK{Y>Rt7>?{PL=8E zeX70DM^wLN<*Ga;o>jRICskA5E2^|EH&uUw@2i4+pQu8muT;i1Z&f)4pH*i6zN)%> z|D_6j|4$V&S5xfvUPt^q(Lh}C!dQGe)Laa@XC+SWX(ukfMyJnBi-MNCtrLJ%eH(H%e&Tzh0R~YWyc#t2X3qFHUBRDx!xp( zE^8J?`TP=xRsI$OQ~!t`yZsf{Hn)i@Bh)aCk^n$UhA{eVr zhhW7z0WXbYxXBkVOf3{E%0qGTu?|?aq9b|^=!7$*VYsC!4EL3E#vOaQ;NrPmv18|M zSZC24*VT4M4Y3E#+SrrFW)H_Y|6ZuC-W!d}d*iRHK6racUySe759JR1G3RrCw7oC@ zBex91BNGN;ao}JqRUd*y4~JmN;i1@jQ3QVMJ`Cqs5673a!_lvB1WrvDiED?C!g%-5 z7}-1;h2k;zdHYz5n>G&r1&zl^S`+YC`2;LKG!bhSOu}cKCu6?p6r5i<1ugQX;_j8x zP^-^$9BMZM6W-0hedlK4?zmaFY|v~Bb&15P&yg63bMSe>T=b5J!tv61xVU~E&M%se z1Ckb?$*_f(FO5c4AB~4-5!NRxMyH`m(9d-#NMA26K;hc(bv8mWroyyNA4X++cLj!|t*k#T(oKd?8P3w8Tc?c0|$J`Kvn-tG&z}xLrnJJx~P4aRk{z) z`0vNuE&DOOem~A0Z~*;I9>7<|2XW=xgQ#=wAjbF}!kSHoF!=K!T+-(-9?m(8=k>Di z+6*3#zBmhaxgEi2>yDtL<_MN_If`Qr@YwZjN3qYiW0+NR3_sgvqsy{v?DQlX`vm1+ zx3nDeYRtiw{>M=~aU7@UpTL&sCvf%k6IdtB#qc$`m{O68S6Lob@5sY1-}A6`&`G?N zcM^9QoWh71r|{3UQ@BNP8jV(;#--0sDCdvF%( z@GS1PK8GC^oWmP;&mnjg;O_VWd|O$7JlY_JZZE{}#zO4WSA~+JD*U1*;*l{T_9_(d zi5cR+NW}abi0TqTSV1`c5#b#FBAk{~guSba(6+;QyubZCMmL;CwcZzS*`W*g;?D*2 z7dJ%iXS`eauzt_2eo} z_P>VH6RzRV%4_Hyd>ub+zK+{#ucKGT8+bJR1{&Ah!13LRao3(=Ec#lEH+z-frTrzi zuek(g^uLJ?SvRqu&o$g_2-aRzaEJYYuiUaaWc^=+J{}K1G^~8NV!`FEY9QFX8~C|c0Izdx<|My>@n_1dyI!` zA7i@k1m|vgg8r3H@M+*voEiU=n|V*Mv*$BRTJa23cb{RY%X7Rt|2gJgeU59aUSQDl z7x+N+0weTa;-%3q(IWRH_Wk=3=M1R8#rrF8YGVb4c6o)rQeR5jFE~}F9`_8c$HI(yRK2gqeg8G!tkn(Zc(Vb| zSa7#)TqABd)`*Y3HsZg~uV|X^6}2CH#n<-VaQ~EV*e#E*gKYkWp`E{D%7*V)^6)#p zb!@_SQ=9N!UK8$WZo=MSKd>_K2ab5~0}Jh%@%O}Ll;kv{-`8ez<~{%Ku|F~Q=1=Tn z_6zTg_=Q3He_`yqUwF#zH(p!x8_yU0#$6gMII4FGwxzUS(vuea;q(W?r~JWHIe&0R z!yim<--=6Cwql1Xtyrt`7o+?A#oE-r2v7O%PHmVvsSVSPw&9Y`Z5S5#4?i#Zhb!?P zHvIjEa;X}1?xseArm4~3L^bM`qeh;59co*h8uyIUDK=1@e1@pg&1iKRv0a^>6{=I8 zXX=#qTb(o=xqa6`gW|?%P;QI{-Q2H1k1uP`qbd!$p`l4f<(jmDyLe&KH0j5BP0Bo~ zNx>zWbmhG!b=1?M6P{XR&|8Z}&(fld4O(Po(_?R4*7@c(6;G1^l`loDUayTtn2)BjSijE&?S=UlB%;V z9hsm@>tb{%B2$-a&g;_67u?kQtxIZldbB=Rk6I)2XiBsmoln&x?bCYHxm1rL>+~qm zK%de*^=VsAeTti^Pm|*G>AwT|)O10gj=tn;j(_V@rHuhi2{NGPgAFKbo&oJlHlWuz z24q)aKwaJ%&{%atn&DzdQ$qRL=8=Zvx0oAysfL6n4QbXLL(>0XNV~O+$WdxU$sLWT zVU!VdU1CHDX+}gRjp+4lBWikQL@gS|)aYVNPr;Z@4L7Ex3ympY3wQW(jA_9QWBT*P zn3l8}(;Hh8>d?-F5(k*jwOJ|b;gXk+%Y4~ zS~DtaGow*<-0D-B)BL{XR5R6_!eh*7?@qqP{Ioe)+%~7+8guH?YEA>JEvT!%1-XY? zP|E}hy12}OqEju%_P7O|xN1QGFD>ZscMH-rvZOHzOWNPTlFB12>E|3vGFWd(CYhF` zUSLVJcP&Ze&fm&bOY*m}qB0*Vn$pdR-i@}RkqfPeHdv9-K`R;{T2btMD?0ejit@Sr zch-tKe?Hckl9BY%HeDJ|Fg2C6JEAt8D>k75w?^+%a%UI z*pgYgExG5|lFvn3l9bz$7Iy=mwc1jKxg8C3x1+CMNAUygNNcJcEna3vkCW|4anO#Y z6xdPPEp7|GvZD)M?TEDP>4?2Ot@X2~eqHQIXP7;m;b?j$=0uEJ3)AFI6dUA38+$lW{BS3lGsB6xEpsCM4Ni1vw-Ze{?nFPyiB{ZkqR%g# zs9&8EWwbicOCx8}b9N>-KW9>QE?o0zeI#bFoXS$&4LN9Dw=)Ic@RR?kBu$v1V8R9~7C%KS(z6;%oaiMXWU8riW z3k^N)Lgz#m(kkJu#A6p)P~$>dzPixve=fAm*p*f}x>AIfD>;U^QdxIbT0F#+^e4K~ zrn#>4XN4<`Nphv*+g<7XAy=|I?MnU^Tq)$XD+NAvCEK^I^rg|2mpNCOW*{M5TM6xw zOSm~Gp@a?+dfQ7v0mCFTdlL5)=SnDdxrFl9ODH>4LdlsDnvf$QX@P{wE=y?sT?w^4 zmC%YB3Dwq1D6B<7N!n7nWG1CrM=AYwmr|>eI~*OPR2nX&Ozts`87C#ZnNm8uP)fe5 zrF0}wN``4tnv}tRKPshXr}^hdN(S8T(7P|CAJ3#zRxPEBIw=inmeSvUQrf03BRfkO zZE}*)7dIJo3XsuiK}ILK$f$%nAPZeyVvqCf@@1r5BqP6TGU|SZ8<6EP>iAMdt~D}h{3N4O-()ndMMl5X<+P65kblkO zG|f&<=UwHb?jffje>n|rFQ*wDcx%r`_x2^mLP)w9@1x*(E3MeR7gz$w~jXoGQ6Bd8j~65k+$PahV^pSWX&uxkXtf zr&~|tWKqHQQ6;B&@A%(7%PFx@&P_Nujck!~KTl3InhM&Yryx&b1)VlmkcW+ek{uNE z#zjFgxq^mxC}@F?f?@&`w1RspQ$rNgF;qcXVG5$I3L4*2L5;onHvJV;HAq2W5enKg zLP5o&71S_JLAsL^WIRN6Ddc9wz)=O}2&JOwEhD(DLLF#9d#+b&m-|0)H4u5r^P zRzZK`6y&;IK>>;U{S69o+@zqN$$a}Q{2aD&H#3dzXPbgxyMl6e@cr*n(74?S+OtPN zC42dKWGLuUrh=;XDfn|-K^X@WG~u9v%nvE(3{PQ)xyQ+qN0x%t@^p(QwId30<4NEN zc=F-NfTySYZ`*k4$kP-4nejZ8^L+?BZRGpB%lG|KdvD^ehojD{6a~%Nte`Z0ZO8dFp61tjWW9ot;uSP{E#Kc7eqKCJ zrms-YH=ajx7Axp6&ojUI3R*Z-WfMNjk3w+)8yz;$?8HoKjZG$!jsM15tAF znJK5VNxb}zmXmLUoEx`tTH8}jsbM?`a*9#PX^gj=Jmhk!a^%Oel9SX}PTAUWa&D8+ z+GZI&s+W=Vdl~h7Eu(2qWfXm1M)OLz`*TS~JjesJo#gfUD6gygWb|#jjFxPc(WiCX zc3mZ-jA$8E%$9M3O-7!hxDzx;Mgie6vhT#V4U!T0$Y{PyMmF{`I&RAE1v)Z1&?+VM z?@}84QA#PVrF7x3lwRDC(z`3%5K>9$b{;onxi2((x0Jh$QYv02rO_*-^lF}z22PXG znbG|7gQV2Chm__4H)sQ-v`fM7UG`FnF_F>;O)0tllF-vS39YW;ZtW8Z?Yu1^!%Gs1 zIxC^e$0VelAtB{f2@P5&q4CQkG-i&3!Y4{d9wDLnaBkm*^1lU0=z~l`^K2yaPG3TO z`F;HWzrVk&;rDuezi0fu--qA-`|{^N=wVlK*uiZh{(LyP(v^lpxl%oUZY&?_N=-dn zX`J9nh2F08k6TB(3v#T zoM}ZI|NBB`3ZCLjE4dSVx|=gSYUfPv<<9ik(wSaqI@9IvPLx*TL_^EDqjb%QvhtlM zh+9hMQk_V?)`{ZgJ5kvLCo&!AL>)Uh(P%#>n&IR`Qw^PHP>Un^esrW?PaWxOu_KKy z;CAt0M~Y8#q_$W`nmNyru5fe7u%9FGh}<;S(~;KOIMNm^M@snSKv8cTsAs7I8J~Bc z8#xX%XQu;cu6Lk~3mr&(q65w7&)X&7Kw6#-6l%>~CJhH#+F(zsE9@zn`%I&F+b4jx zftq+*=s0f^4Vq<7wY-fK+0~w^{OzfyqdoU6?Wy{^9ofFIqmFm&XsBpMqq2BAY^xo$ zUu8#zGwrC18%~K~cI5A4N7rrasIP_{UHxK9Ue9eQ_PQ;VoU)~Vdu+)g!InBLu%+;^ zwiFi5U;k%IYRmJQ9Wx2BQLtSR`aHEHMaHtBY2ie6()7PGAB@DOW~cd({(?p8OOSW~ZGR=*lI)r-NWYT1+BYode4YixY`38QR$I`MsTLI3&w{?T zv!I!d7Ia_3f}2m~w1C^(Cq#34!VRf!3Fg!`*PQpG%;|HeIo+1=_P;)Nyc^BP^r;!; zUofNaEHk>h(Tut+Fr(umc;BIu8TC_`@je#!r5a7?!4p%eJa0;`4w=%uByNUBnbO(_ zQ(jg~>9?yX?bkM?;Lj#>>46Ceg(h@(uL=E&HKG2~O=weJ6DkTcp$cmgYG^U0@2`#N z!*ydS<$a^0ypJ?5+L*jY8q<>w#uP0zCJh~9iu=U-Ri)fIKWjv}JB{euN+a@`XhcK1 z8}YKqT`D6ZTH44Rsz-(tE*f%E+mK$ZF{Eu%47qt}NDsXYX`G26J^yMz;g1dIsAxbx z_ZkpzV?AoJ0d4PLKzW`9RA^{G`Stp=zf7NE&gpYYQJ*YU=u`1neVQAlPuenlO3~6M z!}of${FWX)Kf&#)EqXL>z8+-_(WARTdQ@wpM_+&GQUmX|R`UMq<$b!89;-{EChL+p zcdUxsbZLaHF4ca}p=q~u=-CM!Zo=|@aFh;J4Adc8r4Dts(BUSWHZ6IiO)CntY5or0 zpI)j>?M7;o8q=oB_S&?tMT=}+YEf>H7PZgNqBEg##mt$l zJVr<>+P?XNC-?qApAmm>i^U&&dang_H?*L0_ZD>c_Z$D>Z!F>CElUG_qsgaVn4I+s z8^`~`Q2SpvxBMrr-~1ETh5y9a>OV20s2M*kYR2{c&8YL?2luId;Kk8Du*vcVTHI?w zn}jCR2y4Q}KfmLa)88?0)^`-8-_i5MH$E2q4KMWhhSeJ1u#xA)+l628viDbvuWm&D zJ&kx}a3hB5H)6)+27I@)0c`^sFyLK124>cyT|_;8FsR1^SH589WnZww{|koH*5Q`D zbyzyM4u9y@q4vek_&549_pm-=*6U9=Z2Kqt(&rOKseQty1s~Bfk{er+j~M^>18&*) z0oR6oz_Cs5`IyvuygTkaPO^B9uZ!PdkCpE*J>VVQt*OPjoweB9w-!I}7!p^{zQu$Y zZ?T=@TfA9XgW+*Cc&dF3{`*jkETbC74y?wR8r3+ipbA50R-vY26`s5IhR61KgAf0E zgJHF=ar@5K__+6LZ2MD*<|ixBcw!}fH?PEN*IwbO#jnuS;}xEGR)MmO6&M#Tg!QsQ6pt|-G+D5PQyYLZql|JHQbmcf=O*wY; zFGssq5Ape?hqw+NqT|Oh%-C6m`aR2VV$%aWeCPo_81w)?w%x}sx%aVR^nFz6-N#jh zrRYDk6mOfC;*d-C@Wz~bsBpN4Q6+aVYtdc2A-#(aOYh+Am3Q!@=N*iBd>bL|Hdg!J z#>FqW*_C(;Cj{NX!Z$bZck)dh!{R1(t1ZDksU_I4V+lHaEXEJ%#kjw7F?Qo)){l1H zz(L*kKzjXkG}&_<2lcp)F^$)7_ugxGpyxGA|9TY{XI#au;a9Qs>lJR4UBTe+D_HpT zGRiafczMsuc&+gg{@im3?Rs27_lAoo*?kf9x?RLqbrYer3eP_|i8EH8M0LeU+;}?=)feR9 zOxrxXa3L2prsiU>K`xFweFA3>KY?>vkK@=w$FW1N<7il)gSWQj;8K=@)~~bi;5t6H z;+>5f?;pe3MaMAE;TT3vr8N0Ck*!E-~8VCJtZT$-7MUAksr%R3&wXVYQq z6v#cWM~AS>@v7Qab$niU z9Xe~R!>@jgRA>kHb+{*JAagwK!3IEtVaK#o*4d=zM7ns{Y2H&>;p7 ztyqms;wtq2xe^DpUx{O)SKxp%%h9`G8P@wQ!;INW@xSaPc)E5m+Q}E=tci>8aAq_X zzgURnwhQrA!~)DtosSDj=b^%I9$pTQ!k+8qV&UaEX!bV}BUmKHEuM{g&dkD$FEeq2 z*G!x=Z3fB@PRIKd({P5}H2gSpDh^ATf_b+mW25$Dbm=k)g;f)=gK7f$ejAUve&exp z#yDJiXe_$E8iP5uW6*WTXk42-3QLPeqMrIl38T^0}LmftY+`51wk@(8>+b|^02 zF$8TN48}wHgVDa*AdFcx5FZo_K+}f)*uk?u4xiKy$L;BhL(2PLkWnAh?$H~st?q?U zh2f~z&=a?M^hBMBJ#hA}?s(xrH*C}EhJIbTV&COmaO9cJIP_x}cI0#EHlsRW<<^e4 z{bmR3pvLFfLqc)*JiyyW8J}wsaILj~*ZYNFb9^w`7qv&9Z$aqi6@-$B?NDRqfB5*G z5_j>~YW+e3v2j5FuFLjEgV%l-Ywd^c`ubw0I3G;p;?|XVFRW8|q23rzv`O_q>k@a= z`Rj%s{&U0gGZh%OPmb)73~Tgd7!xK%qs00Qnj}7)3XU*p|t?+iSB`*JCfsTO|cxI|OhVC{)@t!Gq zYnbBJU=#c_+ZcuYM!2Hf5YOluVnwI{w$9T>^DI4dc&3Z?M!IO!SqGb5{pNogZr(&D)6R}VHBXRwQhvMn}W#ZlZ`{HxkQt`>EyW;h#+v4G#x5Py! zO2qbN#p1_B*TpT*uZnJ+u81cOT@t-?FN!-O&x^nAlh`*1#nfFY@lI=j_;Vs(m2o3q z^zk|)w%dG4^#7VCx(v$|HSoCj(kVyGjy)#MetSfe_R13Poj4@UGd(EkMDG{3J;@Yp zAVW;a+#|NB?G~p_-6>u!*)Cf8q>E#>q=}hdw~CJ=QbcWWv*_!XEcT7rC{C_Q5*Kt& z6qg-aFD^4!C(fT6Cr)}0EAE^gBaZi7DcXKpDqdGD5~r+QApY#i|CdNFQf#?5LyX)u zReUgVlIZI)UR+f(TD+D$LR6265ZkvKEKdB@UyQ%dN8A?|E}jnWE}l2)B3>@*C|=kB z;<+&);t@%ZxV1J=Tyoq`95K&Z{4dBuH25tSUtN%hd2!C-@^A;Sn~|+(P-ZEXZZ{KC zM;nWST@6I@w>sj3Y)x^?Ts3j$)E1RR{dZN$(l07w_4lgH8{eqRtzM{hWtOYt9`{sd zPZz6t!)4XGYpB}L|EwzLX|C$S#G|SspZ2RF7wuMcXiHPsCnc-YEfQ3pL)NGo`Yu$N zPMoIdw`im)JE^Zqk=aRg<&09bwpgK>_R>}r)o7sVWY}8R(7w8`Y2wYo0m&x|HN^Bn z>CMH3ejT2$uXA9XzssV(<~CgTYHb zQ}8W(6udjJK6s(GR>&hW^N?@N&LKA|yhBD@4GGCS);(lb^5Bs01>-|uHx7kl1m}bdJ$5Rj!nQCZBnjMa3)H4ShGOrX0upG?zK!fxniY|of{)`Y={-ilj4Lj$vR;bt`{tZBnsO;B?=NP^?h#t_GlbCxGlj## ze&O-`148}uLqg-z9~%7 zyDdD)xFZBA?+J5nlnR?iJrGjAlnG1MmJ4019}D%_PlVMSo(c8$p9@{5ycCu;R|qK^ zDupDcH^P)tRf42zjd1bNTcN{@cS6SR_rj}9AB8sO&%(b`bwX8_df{++gV1BzSE0E1 zo8Xz$B+RsL7Ltzt6cR&!3)Akl2(odl!i6t?g^-wkLa#(MHf5kXn`^7VroYx;1CD7j z#XK$cDOj6jwrR7@#X9W4W?eRLm>xUtq|fZ$>a$5F4A}04hU_9UVr6Q^j2qJI$`%ur zIn0#Ja57^qHD>Hujya2%Z^6ogEm`NkmTdPmEB1PWHRJPiOlf1wI#$@S;6rxIX{J4^ z_j6#m-yPTpbYx#*oY?&C&g`|m3xoSEY;C$LJ2y(g9=b?bMU9k|Wy@IpTyC)ar(hvJ z73@Wk8=D#H&Z@e5upauJEd8D*D^2xc|C4my@l=0r05>mp*yH-PwbJxI~_BEgwxfZOhtb>~Q>p{13JsgbM z09UVWgi8xH!LH6t46VBva<3S|`T1L*v3(0{|F9K&E^ULHIoqMJg-O^B$TissKC^bg z_J&>1@OC$xJ+lWgwfDk*fA_*VzkP7%s1fWNw;xF9erBI>07CX2ghj$b@ILntC^#L4 zO@>FnRB#k-ryYeemd9Yx%Hz;6d>kA;o&c4bC*j(HQ;^Vl3K~OC!|<6i&^h@mWLBI7 zyO-xccds!-s-K53KhMKCTN8M(`T~SWUSzfo7vbS`Q&>9p5|lSwg5z&4L&lLSpfTzy ztjNC#+Z?XJs`b}lgv<@din{^E*Kb1Y>|3y=?iN_Tz6~M!@4$PFyWsKTE*!JE2a3z? zgJ;iuu-Nke-bFruFUk)g%lIK=e0>Nplgz;Rff*bsHiJ|M~hya4p~w zR7+aGssk3_Dz<=pHA~=JumtUNOAt-A0(f8rGk#lvfHB@m93F#L{bSg&+8SDYtii0` z8l-pGz~yio$mQ9>q!YGqJl+k3ZH79 z!rm43Q1!wd_IKJt@@5AZ73cuRBptzhpChyJafB>^6Xc$7g49n=@J8qi*DpGQUYavh zjdy|jx0oOK92a;r!xb9LU14RhD_GBe260cGLHVC&(7MPCT3y_rticUp4cx)f(;b#| zxI@hb54ii<10?%B;PSTTkQ4MA#!J3{gL_`U;(GP}G{9y7(f6%|kB*h;ljtGDOlK}YqIRLI{y#dYh zZ{T&}8yKY-2xeykA@5TlXs9tx+^Hbg7aIhJmEOYEV{c(Lv-j!e1;hJ;!LaLnF#MGb zfunmvAR{CM#z}<2k?o=IG$0fLdqW{~<2&&7eg}8k-octxVKCqp23~bxFmrJ@_}hmA zzcL*5&yN5P%Lqs+h=Ba*?;-!rdr1269-fc;00%C80DkfZ@Yjfh8K)w_QydAs+$d(} z76n&AqQH4D3SMrG1}E=mxYQC2OP0q#r(+DbRmQ-id1CN17sGIl7&cF0*!C+3!O0A3 ztWF{FI0cVLW?Ll_3ln$5!q?Zau%|s1vR8ZreW#CLRq+v$X2(Iz{WxZ~6bCJ%KS7@H zC-95?1P6HWAh|al?BB$Ld{;c2HAsLMrvzv!PXJ}zL>PHD5mYh~p;aph=*c87iA(~4 z)Ms!pWcFe&Kf{r_&+tZ{vF08nLvvO#w2euDvU4dAElz=JvZ*j`TPl3;N`=|=so0p_X&U7#XT8uJ4 z`b`E5w`M@qqHhpk^$kvEe*^i^-@)2(2$uA+l9a2^}%0^6ZZ@H z8h(M~`~qmXRRF1p1z;gx2r~=|0bL70x400VOelh^(?u}&t_V~*i$G!FZ)kb&8)8#` z!+Ak5aJChLm0K~i6c@wN2_#8EQTtgKdOTB zU#egp?+=u1`~#-;f1p0=53E5KI$*LJ@^+)eg49j%D)gXu?D7} zr~#XR8u(dL1A|j*LFsHQ$OqR#O?@qd%=`zt&;Nsep^SOg^bg{6>Ok^B9ZV0a17@%Z zy1MniyHF1qjD2^hsUC)BHGt{)21pNS0QrUn#-eKky|axlIjE7@0X9O^lqT4Dq6vP# zZi3a7P2e`J8GamWhC0t?s4r@UY^@gX+SLMETw0(es|AiLwLT#T|X%V%GQY3YBSpAtrAY4)DN=Ns@%LP% zh-sJ<(N2>hKPsij=>aLyt|3h>=t`5)wbEqqQE6g-Tbg9MNE5kt(qz^bX=1=^vN!ii zlXa>xWWfv>qGljND)-Bf*H>l8&Zjb@H$aBi$1`?cfed-tB15|6Wy!Yjvcwx?Ny%1O zA~-8cW|_&7rO#!_%J;HFlrBrgR5DxeURe^a!XY=OameK59Fnw$L$+MxkW4EMS?0|l zucA4m>pO=mtmY8Y0S<9jlOy5Nd&E*lpe?0PKkVkY?`NVn(pX3leQDlrja*R)QUFVbI zwtRBbn@_fW;FCFD_(bYApCmW&$u%hf`A<_oLK!!3&SC+1vqeA@jtj`~>jDyNBOp~T z1w;@bAXAbBWcDusnaP*|!a)J)P*Na?6BNk(1qx&qV+wxTr$F|fS0Kgr8Ee2vfrR-f z5Xl$?VvwdluK!jbFB%m{_^<+rQc)zqj7{LQK#`nTqey1&RV1}%6^Y{=MKb*O z5}gP|;+~{PI&u`r(rQI=r%RCp$|;dlEhUmOjd2f%5=q#gM7;MakqhUQi0(ZlQvOtl zJoHu~s^Ln+g|P`aSxV$gg%bJLszinvLt&n(GTF^|3dVDliRlVua&nt8*?3f$Ot_>> z{ykJCK90&{jju8(W$eO}3Cg4_ll@)Bt~as&4=R(13MypdC>3&Qh6*tyD#Uml;}`B> zEQeDnWaz32!AC0OgtH2fdZj|1hN}>Myb8JTU4`WTRv{DXRLGGY6=Kg(C83N5@o|DG zp|e#<&=OVhc%v%Wvrm->PpgtIS5?VLb5+viz}OL9s-z}Zm8?Nk;-0EX3UgEmuR@i~ zXi_DM`c=sic{QS|p+;0DsF5liHR88Wjj7%{%$Npg0)&I=T2#ovaL0CvuFtNaI+Xuj-^VTb*1jQ75%E z>SSY^I`JM*CsiB`qN$=mV5A1wI9Y>i(bXU;L4!6Hda4%Q%lBQ;1*oCfJj)gTR-8stZT2JxxTAV=#oh+4Y_ ziR#xNt7RD1QJ_gcLz6rotx4)8Ymyl{nqtyl!HHnIpkeJ8|2`UOnr@D}gA1Ne@7_(%Jwvh3Qgk;t{ zA&~LPYi@)!FnOdG!&A(JB1{BpO7p(%y=g!grwxGkZ4>KlEqhrWalj*IdGr- zK4NKE3yJzuA^GhjB#v%EBJvcHA3j2|!(T|!gM?)EJ0Y=n&%)6{GE9YJQoN7=V^=Qz zA|!J%Selta@-LflRTy98P?3;Gl?sU~<5~)f; zBvnH~k|U`_KFDYhb2%-tlE;`W0xjaCq(#OvW{bDF7Eu&x5##@~2py?KdPZxJDdSkY z30h>!BrURO3S+)Z)gqeHwMgX*E#fsxi>%kxBGrufVmeogG|bZ?yB27X2t6&*ug|zJ zphXT5Epl_A7BOS2&D)E$$nhmwWbslh!da$8J~27DT#F1bu~?x+2ALdRsYPO$NEtAe z43mRQt}wa9{z-#Ssv0%rm*~g<-3UGufxir z%*suA)U+6}5;VYtNTlmJUaYaAjEjl3HXwYxg;<{l~E9 z(9gIyUt5LbQ4_nyp3{#SA=&pwNb<{B-zpIjuR=qDrs)_< zeN#xRuL#Mp3#|XLep!25NSqD{$&7tM6177}bXouPSSKXyD_P%JA|%&ELgG7DNMdIS zN%9mS`7};Q0!Ijm8PkW2iY#BIAK{WhvYzQnZign>%=Aah^hlNI(|)E`&zOECFg+_` z`c}>Ku8iqlI@3cxrjHkxUQT2BnalL_0@K$%rngs_{+2U6UTC68te9RWG5v00dd@Y} zBpPd&PA+A-%f^919ZeE2MUxyIqe+xBHA#p98!u!TFK9r6OzdEMpn5j8RB8}Gkp>}I z8f4E`4RR`8gPe%gAUi@e$UHv{BK1OpBsppj)5jV_<-P{-y{bVb7_+hJs0L}@qd^P| zHHhUZ4HC0ZgA~ruAobcBq-iwc5UH`TjLWz~!|KGSQ=KT)tCJ7q>SS%cI{B8NPF5tU zlQ+@oWH6YGt-k8y)-!eDYpYJg57bG*RrY&Uo%kG5CpUMnxa-u(z+yIT&s8VOwAD$* zNOiJWS)II>Q74MMYGhxd8gZ*oBPn@o%uiDzt#OQ56ro1S{MAUjhZ?cBV`KkAH6nRc zjl4RoM&|EVBQb_*Wco@q@>Gw_AJf!`_GmS-Us;WqNizm-mn!l3r%K$4Rmp=)Hg_ed zk_l0&j+b&T)3P?bc?QYBeqRY|3aDyfoI zC3&4H>{+XjCxwg=oS{Nw<5WoSI~B6RM}?#@PSSF76%uqsg-D-NA)9uqkjHCPNF=C` zpVL)H$w(Da%-BikY;Jzb=IGmOu3q$0nKZGv+c83!On$|#J1LW~=E}tKvN9<-#;)y9 zX5)Y|c|2d4yq=^?!qk;Xu#7VC=ujfp|0t0)xk`*3t3>dF5;1zMM4FtG$YnDnQfsP2 zHXl(U0bAI$rAkCwSBY#J!5ffhgK4klY&z z#P*~DnY)9nt(G%xvo7N_k5V8@c?#rZw}3SM5fGhh0XZBmAm$+g;_e|JUX}v#>@wpx z9Tt$ii~&8F2uS4=0dY`cYc~l2No?Q~gF-$Lr|`+>_k422i%;Sh+o}5+pG;uu#HDP# zxM?91Z9Z9|#wX*4d8D(Bv7PeS8Z?PVM!n;aXb&D)X~8227kOm%ejagT+^4F!Jfb~@ zM-Fg##G->syvn#FFr7>MqqxM`hf6Noa*4q;E|ELJB_B6%$uT`H=^w`>mV7Re?2;!J z%H>IBx;z;dB~Old%M*8NdGhJ9Jo$A%o>Z)nCna;_S-)oMYgu`6w^@!XFO(x)NsJX0 z!WdD{BZsoE+*uIWpVzoR6`Iw=XVBy$*kdJMywL94i_P0%&f0bmD6~UnRvX-S)&^XoHh4I; z4a%!pnNNXM*kRlXr)Rgq@s1W)D{cX`J1vm1v;_`Iw?J8HGpw~~2KPg zUk{x?Q~yG{#b3x+^%rbq|HAx~YDj%l4a*Ix!B4sxnv?#(Bs0d!TK)&t zF#iM#;;TU6UKM;_R0Y@iD?y%Cf;l_$snKKXtWM_N;6nvin^u6MZUvY%mcxPIau|1} z9KKH}hhu-rpwhRD`5`C+&rxOYtFRRMpOpf4M=40CltRV#5(u^_fkSIbU_iPA%oB>C z{Z27#f?{y&{0*NNODpgEZ^)na8xpIFz}2@1wjU^h0j(lNS_z5lpnZS+8gtO-}A!>3aG?e@R#b-ZYUVfB>pM)Y z{sz&W-(c>JZ}6P|4H}a&V8*Qs*f}Qy&ef)av3EM`-IWe=71E*Wa~cHPN`n=1(jcwo zD=hN*3NLnig}=<##^}T^uoy%9FJ6xF-(QeGO1ufQ$Y4&3Rq80fu5pd z*x`^2FIOc)R^Ml63;PTbCq6^(f1jcJM-sd@Pl8LLBpBV82+_WYuy9u*gzyr9AD;lb zE+@cK?F4xLJ06nl;~{BfJcM?C0*l~J?74n|0o70NA~g=QZ^g0qIdQ;YXT$qkKEm@g zAK_~s<8_6`LjB=bs8EZAXEQ3s`vBhB zA0V*cJ@_y`E0&B3Zd4xuqdg-ab7KUU42Hu%XgJ(F7!H3F!(nlJ7+78igSfF_P?`A- zy6(S&Ufp+4Uls}(_Mz}%X(;S%4grpL2)x=H0<(sK;Z0~TC?5!h(}G|Ki+u}!&%Ooz zh_^5Ke^~v- zAFk~52S;gt@QUz*7l-`7O2H3~$G(QyXI?{t=4_1ou?;^ zU*`#yoiCus_XUjG`~r6OJ%@V%&*2$+_u|8R@jQR)0Tzq_c0|epblJ*V~$X%;0Qa!4uD4;KuN&?cE{L*(-C`!=i5U`)Kh3W^c32- zPod_69b_J`gCIFOxEApQ78pH&8pa2+eP;_3_Aow}q%CL%+kop18|WIehV^f(!EuW< zr1w6C?pKdNbK_%}+Gz!|ysTjI8Y@t4v4kdfONd`?36JV5V4<@G{9R}PkN!LY4ZBD1 ze8D47Ej5R`mgZ2bV-7mM%;3s>#thRogQCob(0BbID2{swnqMD)>P5y4(|W*soZN?N znfE|2_8wT9+=b@2JFrOM4qV!Q8|;H`fotDQFkg2Q_PO7H|7xy7!h-9t<a+^h--YC3Xp{kzNAlHY|qw&WqsT?}cz_;zHPVjvYUJ z0I28_f&B^*%(T%5%+dqB|McM1;RP`CWan*6U1xqgN)w zIXVeWN=$<7t0%&oClf$2dptWT84uSEjDu0H**5^SV_=ES7@(I&!&Dpv)^lV~C2-4E1euYFaN>{x(ANTxuI0nBnS3z4$OE@XE=2UmL&73?`20W)Vv{-WMxF!K z8)e~;gAB~bm4W&Mb~FO6)A^35&6!s6-|q@76s`&7L7wok^MpoQFolVX!kNR zQCQLg(XjPBk>k_bB2DKTq9<-wMV&7$iMIM&5c&8Siz)-ph_pgaik3$l6CH{=EV_gT zM7QGhiLNE?7M)4iA=;X@RW$qiW|3^x22ob-T9He^Dv@FF3Xx>_Qc+0NB9UPYi0bR~ zL=T$gi4@yri=K7P5^42L7r6{*i};Lnc29bOsGc)cw1YQFgbM$OMyP0tZm6q?a)ipF z86y=$5619Bx#Q(TlPAlFu1%E`S??aupM0=OKjCg(Ju(Eo0c zt#9(=o4&eps(zeDg8n%lsz2sUr2enaclysF1N9HYzS5tOYe#>OK-*G4SL^Cj?|m9?bm|M;TIO%A6zm2qK;ye)sujz z|0JZNwQz1UF+Cc+MBO^txY;LqQo1<$gx}BT>Gx`*afU?97%f4}av80d2`v+2;(zPL zXnk22GyVOVm=4eFG1sjQ#e|uji}5tN9^>`uVaysgtC%!fyO@a&oMU#dZ|RIqd&j_j z|CoBi;F!xRBVvB&#l#Fwi;Ec^^*JU-DJ|xvRAx+bM{bN>O;OCo!t$888GmD{KQ_di zde;^c?cEcT0NzxH7!a3sPu=(Oy0s7)=ox_c$xUgy_Mo^ zS5}KV&#V()KeSQ&Ylop&ef>7E&eEOYDf9P;d#4(SgGL_|FHk)q_T(HFm-U?#4>p|< zcUBsUzvN#KUrE0t?u)xB-WPF0?Cf`2?C*9@ye8#=IB1EPxGTn7tTV?#y#1}E_}Ik9 z;)9;nVgn6ZvF6h!;%v@S@y+}8VqTAf*z%&2xS`fryy%Fl_*&sJvBy?-aX^}f_~r5! z;=AZ6UOmT4+!M&Y-yG*F7P`L@n=AQ=e_8sA)rSJaqN{=8RSiL6I2J6{C<+l5Y!Z?H*MmdS{>qvHl5;K{axZS#yw)Al3wx5 z&Hdt%PXl6O-68RB?_sg}V+owTOcHf_BynQ66mm{WW8qjCX4@cx>+NN+b~OjD4RNq7 zN)Gp*m&d3{Tpaw(#ktNr+_j#MrzHh=Ml8VH7Zh;b6h#~?R>UZ0CET}OnemWR&?H6$ zi_fbvj*c2WC{n{{2X!o5t$}p|jKlU`6SGbWF=&hyp3l|7(Ki2K?9vgqs&fR!z8#5U z4v#_;jnNpCJ{q&`kHPBsW3l?*Sj_Sohe6xN<9YcBI67_uicKft(kYWLqG%E-*-yqj zE2p4c_Y@2b)<*H6srXK98rpxEhWl?%M>X9U7*#m~mp_|{;&rod#NaGE6|RF`$8<4X zb2g@@&BlZ~bC}=ixp=m6E{<`XhacC>M}xlk7!|SrRSxOlE){)z^jRN0uZqx18}Kpv z1Y*A}!4ZoWVnWkG+~TtcziwTO)1;T+mB=Od=EPD=(p-jL7^^Mv#&Y%z{R&)Dv;rG# zR^si22G~|_fLlFRq5Ho^#ZA9(q zoA5~CCNyWhx1Z=6;+?;SxZQONsu*m==(er6+;{f!DKdVD7D(s5g=eo> zq4QTO3?A_qBaI(p=%>f{OxYSQ9JNMKq&2q6+Mvg78=M9i;EqCGK6`Xz4O`V#ZJUgG+O zmlz6OIK=FK7Ug>3nepCeZsLu$vEKMl-UpBG^uYzMd{}$ z?@_Sm19qB!z_g4HXss5B^Nk`g<5eVXu8YKvbD~i5W)vDFMBx*;XbjvOjbV&C_o_G= zA5M(H^=D&nI6MZuyJK+15;4AdBu42BF>X;owBC&v@)D6&Ax2K4=zf9XsVIsQ`YC={ z7K^(rV=+4;7DXx_(R$ZMOnLDU>&rjlz~ngWIU9#%VR0DV5r@X`303cX!q-Wka4cie zS!{^MJo|W5&W%Sstpr@XKLMBdB;e#f3D}{Xi0{rN;?}T4ENe@|-Fit#ZzdrpE(sS) zd}jQ)&v?d?{ic1!#e!ty7$ze+CgZN$WGvB4!OeS9Fz7`JHkPE|sBx({|7a@e`K987 zzp2=*{RLyre8I!PU$Cv=3trIqin$lQ;-rYLc%bbo-k+C-wpY^dVN@C(?n=X{`srA7 zo!K0U)3L879Zx|9e!7{#h+r8wwJ!q~l5ePg>l==y->|;-8@__?xbo(A{4V~EOMAZK z3;iEhe(eV;ME}4^olNFuqTq5SmPBNtTT3Pq-Jh6x{wFRB`HAjzKe2Rb7Al;|!b$#2 zs#th@HkKaDMt9F_Tv(KislptDojK_0l!JwtIml7S#Zl{X@jt6v9R8e(KP2+-(c(Ou zcq%fT#2e@xrA-JQP}p`n84FJ)sD_4-}z}dl3d?7om&-$-zs6y$BRp=E^h2u)9m>&GW!gYU8>A@ey9Q}iH8vfv@3DwxRyBhuN zs?p$cHKzAeqn^%Rv_AG1lidGe<@di>D^-Je`ZXA2T!Y7aYfw7B25oq?*t4V-H(aho z%Qv+c@Vgd6mHy%LmH*J>`ajeT{)b-}TW_;!9nw{GsBp6mSBKQ$31(M(R<#~?uBu1v z8}(TFwjS@4)Z?&H1D;vYfOw?=n*th;SJ;4jej~OoYQzMSM!e$Fhzi+__(Zx1Tjw|7 z!jnyC?AC;4Uz_k=ZxbG#-i%X?nlaC|8Bc#~#`1<{Tspc1%{H}Q$lVr<4Q;{jk`}a4 zXvOu5Td~==6>oXAVqHcnF6(c_+tb_7b8j2IdfbL~F>QG8ZyTy>v}5?ncARsm9o>A| zvGPYdstvZ|v>6>ZX>SM0T6JK0WCvcYWMSn_ytTL!^Uijnx_c)=N++&p>%=)@yHIvx z7slP_LL>h!EY0e|)k9tAJiQx}cXi`$vu@0P*Nrhn-FS!7gHz`AVAO#goMzpFW|2J@ zU)F<_yk7jbpciuw_oBaTFYb%(#g6h`yv*;z`~`h%P1lDTZ2EA2WFKxT?ZcV!{a8Pz zAMK6$QE1VR=I{D3?^i$aBnNQP^Z}f>eE>Ok2Jna90N(mOfV{2&ygz0T3sw)J#)U!D zcN@gT@q;+EW{`1shw!c55H3GB#PneZM~4pKk=!A)?jJ(e3Bzc)ZWxU&4x_r;Fh;}; z5^(m z+SMgVz2&9o!V!!iI75oASu91xo2BT;!&3BusT7SilcG(|QdG-diq4OgqAR{g(d7kF zbnZVXs?jG!>v+;MVx%-ZGgF$XEtaNXn;2h^aS1+}NYh#OrKy9xH2vc(O=pBl(_;zJ z^vO?Y`lei(Mz%=P4-zuePg#aqj+3E#XUovB%VcQ2A!8mKlA-@ykfHwfWaxyaGK^;+ zL)$`R=&Fx0)H*|k#uv%ZzyDE0KzG?_6BCx{t;Ayt+}Fcw2)CA+tk#T}MqJRT0!8p)xO(-^lwk3$0u zI4m6w)i}(d(dRjI?QIUtc+8>8o^j}#*Bm+=&aQppQ1c894J+W#Z`B<7yN%sD%%ML7 zax~&UIchmYj&7VMN2M7DF=V40UA*Q%9<0lFZ zvuo$%sr@y1N*~J8Ur!jf!cCt3c_mNtLggu=ZBv`iEIwl^$`s1ew^j0VMHAy&^vKiI z(p>spflHONxby(yVZ5Blr9bqzv}GBWN^js&xt&}(c#uo~oaWMxm$=m84wo*qKejW8qr*OGM-EED~r!~8*>?>anBzvz1Ya5H@dj=(lAS3o<~82M>!*S zGWtqQu!u*eF=ofhO*|^Ki%0hyuv1jq! zc(mP%M?VMfsKq-T)sN=U-*G&8F@;CFzVYb!TprE)&7(S1JbI&!M?Ww|NO=#Ban*QK zAjhYC#tj)z=hM=Wd>S!npsqh+~{&$C^W5(iI@oBOhpV~O{>2eP~{pZD}W`2Asc+00&VSL&i$+(l0 zPrc$;Wj0JSe z1p!Sr70^>x7^j8tFfZQ}&??4gF}Nq7t`7vXz)U~|76LlQN$f0EudR`SRH%?H24+E`?Y{E%>*>b zpYdP<1k~z{fNl#EP^BONjbpO^t$;Q#IUmgG!DK~={jS{+Q2s3eb-XU1@>d1);w4sh*52ypSsl&_=$%t6o#O%;c!bG87B*sK z+#{fycM7QLHul^$3#iEk_I%e0sJ(%Ja+eF}mBj-36IlPy6HueM0&1(n+HpE-yD6+c zOc2n>G3?onV0me>wo(<)76tYM8kM;jQeA->c z`tol+V|TIsp2epfjG3C5%BRm0`E>V3K9!B(Q@;p4ogczyY%)Hb=F6vcFZi_5m4zMn z^so(|T0dfO?(u2Z4L%LI#O^ib)0-#xblqW=<~~0Cw4G0nZsOCP)qHw?8Osycee?J< zb|#<7O<{U4mQOEf@u`yvpT6etX@E3iwhr*<{Z1a;*~G?%8XnCrKaNLt2zk^|kw@cY8Dn;UOIzC+i?)tSYb)4zS-_?K znOtg;%B52opEmacmzuuiQVCx!eZZJQt#(|x^AVQ@G4@c)MK0Ao#id&haH;WjHa4!~ z(rZh(^uz)#T|I+K{~OPxC7O(TE8tS*IFsgd%hQ96^0cT@o~|j7r*FQ?)1D-GO4yig z!p3$NHpU0Du|ATG`C)AAf5GN}n`|yv$L0jyPI(%~=7^(9*gb5{c%Us$``8?ELRp?B z$;eZcUOBq0k@0ye(kCnL}MpaH!HA4!ymeLyH!1=yY8UJwKj9ebqShi!6thb<5I!|72

    z_ zqoif2s6&RXsg|K@^JOS=vPj2@WoTER3{CKmp|@>h=+xUX^y@jsLf$V!OE=2U9gMm3 zah41fj*+3q6lLhEA!(Y^Bu%?YrKuoOnySZ3Q^hc8+UF%r3!X~TpnKBPn5}olAC#tP zZ2fbLt%I7`dg%NpX- zOp4CgCPjyqNzpi6w)Pq$Mb#Cg=v&5ZnqMc$))%oj;|FG`YTy_TdxCrN7fK$6}v zk)&?>C27EVNg5=Qq%Wtib)UKq$dI5*QG(_NNYFzr67=^&3A+A* z1P$IVL5J5#&{g^p^!_9X`c_4PIt>nE)v=`dz#4dafsA^eyz zggpNtTyk#+ckdp;owJ7!xI-viIf(D+Ag*y9#H4eBIKf~LPmdZzmyQAS|2BZ0Y^{8g zt(h0?7{EU>2Jo`<0M-=s@!l4^N)y!@Q+^ zI75?#8+!3^QZG8V_u@U1UfgETi-Hlo7}DH>^HO@y=XnpdU+BS^t9o$bh#uV5+>J|; zyHVMr8`I8rvbQkg#bz!$s7p7NrqIpawPPFaBw+A~> zIJXne$#$ZDK?kM=ci@kE9T>N@1Dz&y;AX~`YE5frd!Tl#H)+Qe%iHmRT08nzw_ya^ z|M*$A;XR`^Tr#T-{|>d{)t_vyQq5R&t{D{;HKVqm8K)IDp-M;-R^D!6=Yvh`af6uG29 z_=A6r|G^yHKN#Fsh38VLP~D*l{r6Sj*vVCB)?A6-u@WU8RpQvql{iVO64fdzur9a) zgRfTLj-?g&SH1#|WS6ruqHgR#C-B?iORdK{4(ZF!ogrV_v=Zji-+O zMwe;7F{q^ogJO!%>0S{YUsZ(T1x1WIUx>Rs3Nh9hS z=4-$?7a#4(Mb7A4yi}2cY5qCLJDYYe{Irg8i zW7B8M6nw^K8A-U_CJF1-CgC-?By3Je#2t?k(SJoER!JnHVmvzoyqkd27AD|`UdG#s zj>p6+@pyf1JdSAjgl|JXq4v2?=s5Kg)>OygjMs5!beQ?Q7#)XZMIZ5&+ebXO<0I;_ z^T?*}vFKqFi*wh+GB-f6I3t0g?H!7RB8m(@hl?T*x1LAbF%8k6T8tBX#n`xCi~(9= z+?X4K<@Panl=6&rq-eZxHyXo5(U{*Jh5z0~Vf~pXESeOBF=dfx_B;|7?u^7r zrAWM%{sDU*eZaFz*?Da5d(@14k6TUNESqN9*%Dp zhvVw*F#H)FhU?CTVfe%_lr4FO>z=*CJBIJjOa2{(CWd0jtx)us7mC*!LU5UX2=*Na z!PlB0NHT-jyOm&Euq+rodfs9~_*>LH^A-<}e~S+agV5eF2%oMC!rPKTxCaAql4&4g zjxlyu`5T<%{s!L}zQHMSZ}91-0Q`G30B6k#z~g`X(dLCe`fT$@f3811Pw>Ng*Zpw2 zjvorEUt`7#c9zc0)TOwu(IWm8_FR31Ml)aGyGmbdb@#BFY)rymqY$GEK93ZDjAVdh>dl;T@4j-w^6IB$uY z$1usXz-13CaLODD9IAMP=}wQ(dgUWr)M1Vle&%>VD*BjT!JdlCC|Y(Ik9b|e%LAr( zexE6B6<@?Lninzm@&&w{WrF=WCV2kIdHnj%7!}qS<3hi4xLuO5!w#OsrLkvFL+cFY zTse(*vQD9r&MACia}qoLo?tx76Zp{kIKJsWhB3R3;rkCq(Ou~%o;h~}Cw)1LX%i0P zzI%r-zwjU~T5u4bIvl`^`u*6xdOym&GD6wGeb};lAEvzDii;9@tmC5izCO+xn3!N-Vj*HH?0nV)F|Y&uVqmu-wqk%{k_rf-h#+8~ zD50=(XatlF>F$Q5yMFh1J%60n+}WMEbMM)EZta}+*-966w~)b~&2(?tW;%OYlhl$n z(cpQTD8OhV9nRiBwaYfpd9(GDQldc%R%y^Rn|1WLR-K~Pt5cSP8fCVur9a!&(ua?0 z=t9qGnz?s1MY*q{!vj`P(ZQ9p_vZ@Mudkp%$3?V(K-WistXO!#_d!B>D<`BU7ggzK zm5~{$@-gFV<_|i^taU-C_yf?@%q@)K|^_bE)DTHdgZc zs>}HM7U&NAyFlJ(bpSuUz>jx)Nc_Z^JpUxzmoGWx!>bJX#ozwo&3kBi z@flSfe2eK1e&B-d{NVU+eBY(7eC0?t{;%g}{_U<${Lw~Nev-8dAHB?(zm(#{OW$Dc z!N|Sm$N9eF&G*^!ovm;9L$B@lU&7aXzYH6G{q0x0;RI{mgSX^UwO{fL?H2riH|G2Z znDHYsP543j#(dj^=X@^zl=s(u!dtdK;*Z!F@w2#x?EN4^eo@^$-fZC=K1=r&Kk@r@ zUbE&3e^FVFe|Y{PZ|ruCe^harzoK}O-+lTRKj-6NzOMKn?>=KcfB4uwexTDH-YIV< zzjVrWo(^u|Ro`ynzh6YJal6042z5Rb5M6BiC~75hDTFMca{BYtq-TCCS$E%_CabK<;@3&cL}XNcWij~55L94@Xi7Kooo*ZN-X zNb_~83Gr1d`0Cq`{K|LC%lp2?w|Ds-I6m9A&92es^`*ByYfK0DtQfgydBw;>D);CA zQ3+HWsjA1VP~E-hjH>51W7QaMN7Y;8qv{nLqk21{P&F#LO*N@pS}0XDT3BB_S@@w= zQ8>D8sc=pGD&f3_O~S;6J;Ei8hlN`j&k3hCUKf6DFce<9{X|&XW+GI(^-_4L)kb*z zhP`lCvy)Kz+9#n^!#82Go|kaG#8-%m0YdqzP+`KEze4TOSmDp(|AdA4>B53TxkAs( zBH_+`6~fSewL-y;CgI4Kc45tiUg4HP0VnM^fctW25Vu%pif7J3MYR=a{sX3o%>A1#jHIIrh`!bON_H0^jwe6jrYw5Gg_}I({wsUNrKuTnY7Qpc>vmHvV~;sEz{7%@JoF_u^^_$y zEX0Z{mVd>4ykW!bO0?xF=Gn2>wQsoO{I{H<=pA?Jl>=ucdCxg)a^h^AKXCfp&YZ?R zSFXe3BWFA0GdJnP7tT1qjmww&#!c39=hPz^S53i#TYtxsQ%LsWN|k?dFCYKnX5{*C z_9|ko%be%b%80wP+Mj!98^GO_1ab#91as5ghj7s?q1?f3VO)}HI5)pLg45mem$UvF z$vFt3IWz4T?x;sBH&HsC^F5Tn34bPX?}q&2N{=LSV|-J%8N<`KamUlST5$&VMJ9_| z&sb}J_#94YL>{MiBA>J43pf{x{;97=Zps~Q1=S0a2-U4ej%6`(sS;W&8}^nzAF@#tzq3D!W%Wexsnti{Z-wK)4s z4YqUD;U1-qZ|B#+dYA@IxNBh2w)F_8T@MY54e(jG5hD{eVyE6F=#SKdiH9a0?bwWy zb(=B&#TMrCuoc(ix1vdR8xF{9#~1hQ$lbC7omD%~YrGScb9cf2?=DuazsdU$=C=>t+W+BM>wj4HN*kq1_Cq&eKe8_#z~Z3?asKl`m}(q? zW#J(h80cW<#3&-@x(pHxZkA z6BBOU!ln_oaq!b^>{_jld1?A6)4hYo1Mgy>!(E(Peh;28_mFw~K1w_8Bl)EPToetl zFUSx#<~@MdjR(jJd4R5A4>9yVCeF;Cq~;-Vghu#bWP~emMwmT;vEYtB!qM-KP}cSc zI_i%RVfGkP(jVir!V@@Mc!Fr3Cn)WEf_lxTsJ4EJjNGUArT7dFuROzQ|7WNk@Epe5 zpJTk;bJ!L>#{gwxoVacbuRvqeOPgTYP7|ztV}fl(CfKTMiWS#QAs=Xp%7JG1vfT{( zUYnsg-wcoDnnUV}IWCboVgweLu-O88tt{{`%K{EFUf|357jW@@0gKKTIII2=OH5v( zD(NMxCR#%2m?b>FSYl4SB}|1@C@`?XtUp%xPsSShTGlYJXHsO1J4&yhefbsUFyEn~ zo>wr}u)$nY8+awzKxu+4ULLkZnX4`4Rog;m$!i$idX1NXukoV49qwz|;lK+!%ucmK zzWf_JJNgDwKfQrV^&5;|@)r6x-y+)oErtl}p}N5yyG`wJFwq`+*WF<4;|9Lf4bj4{h`jw3zvwH>IvI~{#W(c3_YF<~-=N&{4bH2W zFPnio{tI%)t6p~muKtb`gYQTS`i_X+?{HfE17{6>U~|(sSN2b2`5b2Ar1I2Ju z7sJp{j4c6T^y?7ARfWgWt32F)@EBFiKC-!Rd!^ux>F>I(jozwDBM{Wg^&7C@bicQUm69cNzu5nD;o2kMI$L78b=zVk){{}p-v1Q zTE)QUZw&r*#~^b_ETT@w!r49+rxIf^dSDzrf%&dpii5dx9P-lQFkx6cR;-D~rfcz7 z^*J7sv*VdxC1d2NCt%Ud1bDk8U|Mbhu8&HD_qs%6-ekNyw?q`>BqDrd67$hYg8Gdl z@Uy2k#U*WzCIJPuVCDDGT?@vv5x?8z6@*%kxt(uF}WztWwK^o^BqVzsZAfL>{g->B+&)BtgUS-@*d~FJo&*&yC9v?8Kt4qRvla8V5elzN<6T@N~3j|PK!jB>1pTyQ=5^6HV;TaTwx z8!%&a16*_(FzkKUtwaS~uddS0j8A8c|f+ zh^Apps8VXe-;GT$KE?P2jA0Pu#Ey(-V3OU0$o3}G$Tg#7X)}s?p0%LIxdm21Es)7-fo@9+yhpVnSGg6n8(L9( ztQCRxT5rj)nhs-O+uC$%9~r430t+Tee#4W^IUu*RVcnZ9k%PHaO! zWg7sfn=u+aC`@h5<1{j)`5tg4g|?ECZcjDj;MEH(0;~9)a!)w(@yBT>x7+m zCn&NL!Fiop&@L>P-i1FZUC`Llh0jO3PWq_({D`ThNO) zt9y~UqZh45d(m~J7o|qM_+{OTGp@aCebS425xvMw?PY6%UTkaa#UbfF>>SsJxpVqZ zqSA*a>-#WlZy#=)>_hmqKC~P4VU$%LhJWZ|Z00_A2le4lTpy~l`*66b55Dbv(C;rL zG9D@=G8-)=dN4ssbY_~ANNtXkX!rstQS>q?(H)VLXtJ7=$aABVNVuIHwWLIo4oZn` zACnSAo{TVSR#GA@J1NoJ_fn!-7b($4H!0B$ z4=GX2FP5jDl&CA1u}31LM9I-oqIro@qU(%H;*ljK%FUM&^^{17Mpa3PWErnyShJL< zsa;AG-ypcR|*8c>ewgUputHT1(%;N%)>nVX~ z!a0HH{zZW(RZk$Ac8xuc@hy$@1){I_1fl>#fhg2SAmX10L?50DME6VuqRkcp(GW|4 z$lqEZI$|pjwb-%y?ODDKtSn9f(QjwQ%VbQJeV+v)Q#XOgn{hH@zY9d^9_$%j0#U?I zR$d>0=&qPCG)W-p^kd}+VCf)%D3S48c7?KQehWnN!UZCu2!SZ(k3cjiQXo=^VtGaj zL}z0JBHdVl=tLZ=PduwFiAt(K zbco3fCJ&hyFuBBJCzIJss@XNJOtv$rX7}G^(#`VIW0K19U%=!Rd)80(%p&&ueoW+8 zS>#!n#;~$=v2v!f^1A+I`e0=r&+6bGCJ^mrb;=H5bzpT23lxZEusUC7b?14;6ZI8{ z#`y>spGP2C&2+Si>1rX<*=VM_@-G6B$0vd4oGW_{)9o)ufoMI`b>v%i9n<|s8-b|T ziv2E(Nos5^5RnOM3(pw)=CMH3{!k!lG!TgL?y}$Vwm@WdLm=95m9-N+f#}->fk@*l z)A>nO*JA=vkd8p4z}m*meN0!o1)|pNtc+U(qO}{DZq^Azd)Baaw}P>CgiOcFm@XEw zHZ@NmS~o`^DpO#3nj#SOXKnMItUy#TQXtwmOdzt8W_1<_M59<+=2)BF-6SPCB9Rgu zu4J~s+Wb=1_6IW?NJ^0snI^Dnm~CW)ONq`iTagg6F=jh)KcqxT%$9C4oAPy#5>>vI z5{+QCHk;YpB4&Ha%m(F|Ep}aFHlr&gdc|yXE3?(M11zm2C7Q)-_!F~bd1liOMN*<{ zX5)&?)=x2;x1A;>BGv~au)ZLj^$Gu2-(b+uhgH>mD9q`@h4?;X2KQlsS07F}_rb`T z^*N9GaPdYTaJmmw`}**3V;_2itbduy*g+He5I?vN`R%<(sp!Rzj9y%d?8O+q7wvpTU)rW0nZ z9r%*p0k_Bwy!7gT&f5-*dc@8zbU;z71EwoGkT$CW(lQ;G+``7k+;((?wU)qi>6WgI9)ef!lHY|y6L(8u=yti+|LZddgoNYtj_BN=o@%bDZ zr*EGxkR{W6Aes)V*wGbCzaI({6_4ie^+!ZH8jMW^5~M zf_7vRHh*ivOp7KIF^2Ndg_Khgp&sf%MCcSs{tBI8!%*S1ALkopDCptzkk(ZrcFK0->Ao% zz4iE^Qjc$P^{{BE!~WDd4E3pl%d0xfxLyb2J#|Q5T8Cj{>Y&&l!MsEXWIZG(HJ9N1 zMG01Iksw@2f~A8ccve=6Fg8alXLH3yHfJn3T#LY!wJ?xp^TzfX_@puh_0JlZysSYY z<2&_iuEFTJZ0(6&U7J!T3QHP}*C8 zSBn@+dq@QoO3I-TRE`~X%igkw3efaihyHIkOC}z01&PS_X|%Ww^b%4A$ez zU|U}bqo`8sbuPu|yQT2iQwsI@rSKh4im_}xpv~3=Pucq5-Ki41T~&eyawXVNTZ};w z#rXWL7>lkK!*NS7I%X6@)LDd+NkzEzr3hCIi?DAWTZ=3xLPmeKHpwbPwSDL`mZJ{I%&FgDL;`)2uQ7UpA+Og{P- z<)P9y4`S0iTsoSE5h{6jJtPl9^Kx;@I~QM{<|5-jF6tIC>BrJ(Ir#Q92d52kFl=`Y z-pjR7@T$PLPZlVujRp3Fj#Y8H+S$wG8?CZ_zz z#Qq1FFxZ_5i&>d?+M0oLkr_~Vn}O;J88BUy0ojomcwUf>Qm=H(f0T|xTIskoI~|ON zf%AXUpl+9j0q4@-i8O2&%GRw}saWzY6;JM_B5X@4swbtQw>kx#{wXLlO@a5p6zD3a zU~E@1oTC}P>TNO}oJ&RmmyAJ!lcAjc58S7JSbXCj#%TOQ{+NGkUoZ)rXA;5<4|iHw8G+``Z5j!bm9=G6o+H2v8ewYi}NpHk#H~;)8@wFKywTpgv7wgECw&M zV{mI$3^vzCV=&u`@Me1w8}~#ba%wb|S4F|pCkk;7qR_P^3UcG4AYT-Tq2C$%>Q*Fv zs7Er+P$c@&|FZSjUr6cx#WCSu7RTc+Dq{X%xa}WIIr;|^=ly}8IRdGH5wLj{0kvHb z$dHe~p^|XKd=JN*Tj990HXI*@gd_A{7-H?i5PmWYUlxSnR_kvp5B`muXTNco?c@Ak z%!0#(p%A-;qUTB|7KuVxEPzmGM~7gCRS1?I2tmIYAqcJv##ygm^xO`H;o4xfP6&o( zLJ%x%gAkz;gz{NIXsHfFop&J8^#k#3Z6GcV3WR)o0DN8rVCBI8cqs&6Oocy={qV=T z>x`Wx@<*1GKXU%~A=bFOk7GtTl7(=Fr5nt$w2cLW~?Se1d7x_Z5*#|FpAC%tnfs&dJ4h-~xe$+2!&%f|+ z*Dsut`-L@`KQX}JCw!0o#J*WSQC#kgBj3Ccb;%nFOTBTX#S8Yl7Xt5kA#Sx7+b{M4 zAMOdOXP!8?*%M=BJi#Y;V5^k};j{s-n9{()W7f8bovcU*S;j?<^V zW6Rv{m|EqI{BQ1fsq2n~i`)@V{|)f|2G?uf(7XH_Hne_)f%q#vvOP~fd__>F8@yR8 zj#u~GaB7ts=Jfu5oQ~^;Um#ff1qM=IP!;kS>mPo`OSR947JNoy=qC&_`h+p+jLFsS z6Y4`h;?Kj6Fjf1AwStc*330{k2d?N^9LYC&*lJg2f^y^wv7!u)8BX&O4%Rt|O+GzlYjK7RTho zduS=V$A)|d%yn=;=K%)9igEX4qkK{%ge8zs5@K*Km}5jiy9f zaOSqSq-hJAfwuS&Y6J0o8+gM8?^|Bsp4TgE)@3nW*#3M#i8YQmS)=KoHQWETM*Tl4 zXj@p}r=}Hp2UuZch$SxEwS<|fCEho@gtPlg*qwQa2Qyw`f9?y+wtIo1-7jD%^8!mF zEf8U3fz7Kd5ZY#rdEVxDa?u>gbIdWO&<$(Pq3=^F>8a5VW#yM(`6pxbHpPk7(9Z7>Lb)ijIi#r z5loI4A!57{ni3vD_W467t$m0k?GG^D^8qHEeSqF+58&ouh?Ua}A+|7pd@qatqkA7V zIrs2=3lqP)uu-~;Q+9VSdC(pB-_VD8$!&P;zKy}5x3F>1E$BJiWbtio;->x$>?^;H zse7*@;rBJhmb`{4hpW&Ub`@W4UqMOfWenbPnZ@hSgUkXw)V#R_AL&atb4?fh3NGU5 z){AK7FJQ~;3ox}j51*cMh-C4P{-mCTyV_aY|9%F-iD!`W_%zPfpF+{WQ&|7^BrKPn zM5MzBR1Q9Y=4;1Mm3Iu$n#W-C>nJu)JIeTSM{uM0Fscq8#^xv;*eugQtivJH4myO6 zD+f`ZeE`Yp58#8xejJ#%AALsJcv15ohVA=bV|F0_&UQ>L-iGyCw&BpvtvE7iD|S5Eg89{( z(Ykvx)2k+S&Co=V@g^K?*oau|jhG#>0T&cEz|mqoLRvJCa7Y8OVe8;KZyhWw)uGkS zSYk)i@HJvBMDy2zw_1Z)9jjq@WHllqR-sRM6=qwl1lm_%<>3`r5H5nuJP~qU0B>73 zY&^)JC`8Eq_YtDpR24fLRPbe=3hMlqV~)adY<;>6$E%m(4EwM5kk1mR$uEJN;bLSK zFM|1|MQk3t5D}vnV)M-f2+Ep|8EfX_mWwh11}UTQ!aPh!RKmjLN>H(ziv`_^7tCR0J$z z%rV<3aO;>1lS7lC6FdnsXG}uYV|hF-pNQ$3C*p_u1S}jm0Uxf6$DovPIHEcZU+v^j z(J6}wIl;krzkear_7@UpxXCmNL+58jen_ z;kfNP3{~TYVVC|;e9Ibwjuk_&!eKD3^bW$iBZJ@(A)$*q0U!Sz4T&UwkVahtPS zxOn?!Zq=bC&Teuem!DJ5jdrNx7U@Vh2DIcB=T>uL9ICj&LzSGv6_yd@gQ$9+#h%!xh+MbMabP+_$lr+>L+f+#<^~E`3KTr#m8r zYl{8HoiR<~Vl)%Ese==^qkrN!%g3?YPxTlsTq>H22#Vx<@BQUoi~exu+QT_z-!Lxs z+HdaRl2A^rE|`1k9>k44AIRNS4B(PV{J6=^#AzSlxu=uG+^0+*j<@~A1@8ID{T$`Z zy^HhYZku>;8#n&o1`qho1%`a%PTv2@^}&s^X#LEM{P~G{qW6)jQ+DOHRycF-T|aQe zN1eE-QyjUinGW1#n|IvvUG|)f%vH`4;JL z*R&6Ev*We7=ym(J6SRkGSh$P3=DMA$p176Mexb?v4cN$yxud}ytyAM%Pp;weGgoq> zcZfJqxR5&l74GVfrJT{s#hi)V0?t%MnR{Y1m%G(An>%rFCby|@IyZOUR89~xiA!BG zk#qSqj?-0=<(9l3%{7i0$uVC=?o{^>PX5XuF1mC8cl$s;ZvFc{q0O^SVc})=M$>_M z;l*{;LihP)!fLrfp<-XQ@K{Bf&^{?inCcfR9O3#`sA>LN`1od^@b?j3DA4>V)L8mM zXfnx7m@>dsI8*Xocr*QtFfrtnaM9NnLK|xnVZZxNgtt#W5LP+f6t-TyC>*!pxKMMV zw$QR>o3Ji;o$#bJgbk+`3GGC)h5JWL5~>!B5-#$U7MjX-sI~-@s5+iXR5cwDpz1IF zth(fwwQ8=MfvV)(Ue(t@^HuZ44p22u_EpgmY*ER%t+4#R$IZVA^(=f=2j=@&J)Ynj zp`_-!JpP<-Eoba|z{J7#aJH9koAMvuS@*Jh3u7d{ugwMG{yxLRDmiju<^I#fB}((e zM|Lh3+uvL*wtcrryzBRFaa8#saqsXmV#$&#;y3&5iVXve#O4Xl#J38~#4DRD#W@3B zi}#LuC;p=NL7c*U5@%|D6Z;(S6ra1`BW}9uC)P3x7Mr{a7u&i=iEjqPi|55Ai@mcm z#4^>nVzv$xi-uH)hfb&!yU%G9PgQ9XA6?firY};w+oJyb1K)xCs#SyeqOhU7?q(T2 zFL5Nl{J$~$cn{7u5u#(NN+N~yJadbeOG~ZkebC$d^(4}HB5=8m&$yu+(N$O z?P5M|+A{tP`{Q_n633^07x5ZPSMfH!Yxut+bv`plgO5?)$UFSe$7g0~^I~*S+_E4+(h4OZ6D>3sybmH{O53Zw-9PukLxqPhMrr zm)$er-vyZRtGmtkm=zYh#@!eEXTO(xTZbjT1lIgM_AcmYu?>H$)t29&V#mu}f5Rtu zzvZtr*z0 z@_)v=^U8a_^S7*i@a_p7eB^L1K33D4=b!%MO~Zci8>D>sij`viiayU5`LIPqqaS~B zVE}J`K9K+PiN*0P3g-2uhVt_d{N@vF!ub73;Vh3o{FF_9`Trh8^0$Jb_ zjHJ7^qv++L(TrO)njRk;Lnk`N&?4)xRHZCSR^hUws3S*TTjXex#W=b>XFP=mji>H? z6KF==1X6i6kyNJ1lY&^Dy0%ZE-({2Nrom(yH*N~Ke4j#7)=#BJIa4X^+BA|IHl5U* zr_+8YkWQikZ9g-ElzV4T)2o^EMR^u!{+>l?+OuhU-E8{#WDfP8tVpZ973uV*xul;r zmu_8GqGLnnk*X7We_chHoMV&;$L5oN>wKDP#$szLETk~sh19TR5e+F^L^3xQQ`gWX zl9Pos`T-KkY4l&>4Y^$(;3I@ zuOCQzyNHqtMI^kjf}RXsNdfjNDQDp-DhpjjSz4>fw|q6-yR(LrW!6%d<66>KszyJ; z)kx|;by``ePDk&qBV8E{I^n26>Pyzs;IQ??Yi*#NWg95*)<)unY$D^gjP0hZNyUuq zRqZBU%f4KOKK}kv)oFa3fpL|_cnU2zMT^OZKvMjJ4mi+2aSESliJ7ZqHyP3 zbbIM;8vA=U+3eawz09{^$7L;g+NVXX7JJEU%07DKzK_nV_>ZPX|3|^v+O(luo4jxA zr-1_)>&@x_9hrWRPW?DYyH*~enbC(R=RY0h3#vnXR}a&9sUzfPeuV1fkJ9ijM@dHI z7`22RqtNZg>3a5Y8g}*s88@Gx>IWxjnan9V`sNf}oqd|ld7Y*WtIp7%s5A6K>nx$* zEV*4cN4>4*h%-7*`(!TAe!B~_cIHJI{^KGAa=NrTOqXJ|U81=em+1U)J$hNAM{jRl zrsq;u=zz%;8YO#`+#IfwqT)3&_Pj>%xK3@quT%f6H>fG)2L08!Nd{#%X@cG@vTeIX zZHBjL#bA9p@lv03C)}ZfPIpLo?p?;Rx=S~O_oy!D9&OohpG@NJ(>E;x^2|0M+vA3G zw9=5IneWWDyAS9|&;#-iJftX%hm`v4AtgmWq+l5%dcV_%E?FDV!Zaf)nDB@m9ehON z-ajJyf=4uJ=3}~f>M_NBeoV4ek7?`tCv@Y|6MEtKgx)khp;ybFlHtv#bdZ0_*i%ob zbj35Wy8nz82R~yzqt9uzI%CH@dQLJC&q+txm>f15Q`~c7l0+F(-%t~h+G;|LW+s#z zXF?xGn9}JTrZnNDDfuOu($>*t6u--i)>@g-hks_&G{&4%_L$RYYjb**Y)*D#E$Gc2 z3o@~`p!3NVBpUmII(NSyH>(%4>E8=VAN`W{?s`dKFJIF1#FwNy(vsY^TT-gICDq4T zQr9pmYT0Z>dB#>Gj z&5q2*zM(fe-;j;@8+s7^hV~D7OVc&pQu>3pbT{xVjp%&K;@8`g)HQoL;$ctj)%H}b z_>M-Od`C)7?`ToZJDN4Yfd*+gP{s=fdL83H8iU?bf%0HTVOaTK9nl8hjut{sYN0eW05QoGJEuXrr%!-sr8H0 zru$Im9v^ai=0l79eaKznL$Wh`>Fi#{zkBXW$^O1nCGn+N1uP^l=g~KP;kTL!wybH|oK7c!qL*gpGcbf7_2PfAyo9Y(LVH z@u$zL{i#&XpGJJ}rf0HopH;rNb zxM>KZr)R=wnoSsE^M%ov`Y<{_C7gb24yWu};nd_BPAy5{RM;C%ymAETYe&$mClN$m z5ya(1kn_+#)T+uDdnf+Tp%;JXlK&q%U;c-7jr~gsYyML9`M>nQ_Aib2{giJ|zc{KgWIoeh;^L-6;z@B-0(lA( zXy%awGI*Lm;olReF(rY9bSKcznTgb_nMi*xC(@(WiKG;iNaB)2S~M()UMxwX%>R;T zxIq%lbxorA(MimAIf)wN{*l*;e{|s3KdO29k50S)qv)i6G`@}bhEGnW^J>X-^>i{F zH%+D$p2^gcl1!gFSbAy-iPahB?@S7vGfg2Uj}!_{PNBbTDa21oCCfFbwC6-B<72Y) z*Hp%|Or@(0sT3@mMlHfLl0BG4lMK>m=m*CB3ri!HvNYN{B%ShA2a0WemkU=AzGw5kp29=d$&;sd9(oxK0{*Re-^BiLY znq<=AZ<$mXlS!sEnItEZMb8#wQQ@{Mnsq6Qwp(P;u^(A=16scy=rrzi6%_(4A9zssizKA+N4^2wt4Hnep*P&KNOO#e<7Kt z7LpBP7Cs(QL{3KW1B%ErwTK)fMf7@5G2NbCOluj> zuzpuDJwIPe(vOPiqJ1&>{VXO)Ofd~DDW(zK#ne8wgrb#8=<&J|nsu;*+^?3c+@dnDNrnsCAx0Msmn2H@!Do9~T z1ufF3pxOUbP`~pP6mhSD^j=huz`26-e^pS%p9-3q$=Hk46?CMhf)0$Vq!kL4G+h=S(Hd)32l(CYAKbzLJ97D=8?jl3e2}=}LYj&8lagNik-|=qmc6P(^J^ zs%U|F6>09SqOHfPNcCzJ4Kk{tV9P4f`A|hgo>jCxgmE?!swgwBiaKhmNUEobYKK)* zs61mhDpk`|u9`k=V0@0f)pY(uHGRHPP0@zclx$v2;r5K*;Z{xi#nsdkUQN&cRa0kv zHSMmgCdubq!M=ho8uO-3BS{lpvlEZJ;QuV`H@-(d_9h+LJdtXcEzSL5rS1pb7ucZ~?wX`Fy zmNe5?KKYDOQeI0A^|iF5qn6wS5|SAzA+0ftM=39%*E1w!HBUmk^7&OcYBa39U7jP}&O#?Y5PW&pQeAIZJ4fn}pVT zNJ!mBLbLrPR2L#4$3GHMjg`>PBngdAm(Z~sc7LISzLZJmQ?-PRAFM1b5*pYkA%|WG zP3m9A=9hI8J*naDDE&93cZ_iShKnC0Qb@^WE$nz6hOv1g3csUuJJ%w-4a$bprimX&4J-a1m> zQ%4(i)zOk2b<}TL9r>}cYqL7!uCF7_b#-LV>Xyvv*vRVI&gxvs>MmwFxU#U0Ml08m z9n;OgS#`93dL3C$uA^T}cL7X?Uq`Vz4rlrr%<}5b>fI-yRHk#~RtcSHkg&dALa)jt z^rVRW?zs|@&tS}(e-hdpCn5j85|aHbp*;Z-()VT8c(UVHcJ3;nvF|11$JnNuEF~0Z zBB2S7C3NttMJ=s+QcJh*){^y=TCzRE>_~^%!Jb-@)~qGh)yx)_*OHA=EmcfqdCS(4`jA@M z+*?CjQw@!%V78i5Lzj}64M#BB^sAxYKWa$eQbUTbYe>bkhLj9zXyCOP`g^*DE+1gu zZLcAHwHiuaUPDvn*3jlj%*IF5khY+PM9tOIzr31$W>(Xd*lLOjVhkX!YP#!E&G^l% zuX$EYvHI2Id!d@1>QvL}9o3YxwwjJFt)|48)ig`4nvP0WlTlk0nO9ViL1q>0i>{(^ z{#6wCjrDu)swmW~il*MLqT{+%WT8_>=}$m9%J2CGl#NG%Q#6%|yK zRzZ>B6=d#RL2#;|IP(h9yjwx;XDg_6Zw1X=S3&BFD@cQl2MgG^(9>E@zHFS>%f^db zHg0TX>>?L7juf%+WbmbO8h3z=F&oOMa!EP;m{Lv$hLlrXa~WMID5Hd!GMXeVqaDs= zbl$v-bZ?iD_K7l5-d;v!Tp2x|Sw>? zQc6EJmD0AQr4&DjeKxR^j3p)XJDqWmLQ1ICt%UNeN{H^3&>hA_nzgNjd{s(l@zfHs zk}jbf2^*i&i%BWCn3O*k)3_JKRC%+QTn`u1rVYiEyr7si$`zAKcM+8r7m;jC5!hzl|^L*ndBFeNw=LcY1)HK@??Ccd22Gsd}=0T^<>bf z+zeVAkii_RGD!JO1`XbyL2<$ix<4+17-GKD2>)nNTU}msr36_DiwI7QiWM6Wu8l=UmH?Me`YGp zWi0N{oD|Za6!Nl3p}|*EXw&u-x;8I`p8t=evyO}MiPkuZfh~4p2NGhi^C*g4pxB6k z*orN7A_xc~-O}9+JBRM>hQ;n~)Sq?d-uuV-%)a}^zAW#anR8~I@9EY+R*&oHL{>d5 z_Nu3UXT?~5eLXSNdP-8Lr{PcQ=umbY1$qhQ_t`pXSSOfK)9Wa{TOD0}R7vyu|} zR#MvY3X03B5ba)XTyW#dDOawXsJV>1 zW6Q|cqKqc)D5KJuWr7z|M)eO$X>O|EuG^MU$(~aB$Vy4RUnzBZRzh#mN+`#ngl-%t zAyussDo`w;6)%b@C8L=7ITh2UgT-W_RZIbj#bP{AMBXC)yyQ?s%k~$MP(P4&-y%|e zBH~nOA$7McBz>boa-LmC=?a2Z)m}hV@dcu0LIF8!Euf7m1=LxtfV}JTX+l^&xn9br zFKhB?!MJ=n^EHp$it{MgE06q+<&nk0JlZ-ikA^(YrCgp%TW{x*Y-cX5o*`IPopb43 zLk^7#%b`UVb7-xO;MYfd&@6S4h!5#z6p%p#}DSyZf> zMK4EZQOEmC`jjp50}h!Ky<70}XJ*oH`AkZx&mgf_o?_03oWimUG8mje&d<_`Qqrly zLfB^UdQv($e@i2S!ZhmRnnp4E(rDi7G*MF_jYiiKoeCsMIz{w&A<>_HMBN^6`W?gR z;T2BtI-HJ=;56)&RB-X6q-iOo2$3J@A?gHd`IJhI*{MW#QmJ}-D%DO)rM&McC4PSI`=Puo|h-kQjY|3*q1gDdtBU z9TvHyK@M>gvptSxPl=<5&#}}eE0%Uy$CBTsSgKNrr8lo*s3RqYKAOge-$@L`4T+&M zkD_TxbTpNni>7UhqN%l4G_7cgqG10h`d}PIQ|Cm{`hSshs5DaKY9ndS&PZB5C6b1H zilElC2(rEzK~vX8P|DB)P=xIqX^>+-W=?1}~c11AFcojq= z5`yUKg&@jY7({0kf@pM2Af>nmlGd(3N}e1@Bi;wlsgwYcUJ0OgBF8weR{%||^CvY= zf0|(APd%pi)BSgT6qM{oTQB?3pGAJ;q~J$Gt9=F6&6hrJ_oWr%eZ}~|M~qc`=;aw7 z`a9Q$x_0uRUq#;Z*w&lUHh9yGVcud<-d%bebeAq2zDr%y@6y$;Ui6Z@Xz_I~vJ-jL z(jH#aQRPVkT|8-=fhQ@A@ua>_Jm`Ix2W21iAX5zwn%Ut_jcM+5__{m2U*b-C72K(; z!i~l`x{>i_Hwqf=MpgG*1$)tzI`+HL*J-ZwB>72>^z(%SJ&JUov||orIm3aL ze6gobDfZ-a!Ja10v#0Psb~HN2jx5aV=)qDuQtoa?2TMgAmD_iSuen3z{q9grtu2)} z+fu@2Te>sUmbSItrV)2i*D%90F{p*IpaCFwuruo>`M}m^Ga^WKE&d ztf}VpEqWVui~c)$i+-uzq7Uz_s4>opVozGpMGY%rpDpQSq9xgySkeTM>yQ3wK~qyK z$o;GZ{SftI)^yw?*VLO-eeNdx(Y#5cznhbW)SM*eMJq9ky9o--qNO*2~G zafAM*+#uhxH%McSfc|_nrJ2d5?PqC-@+@DL46KS*ol z9HgUh2k6{1F>e&KU-;Pl)W>}vW%l1kTW$7=7-cW%Ufn|>9lPn(iQP2xl@Y1$F(M7w zE*i6G7j;w^5?^LW`?7Y@Z_S-_Ep7+BnX-eH_-`kRVcRLmVH;H_Y@-@e1Iqrfl{`;w zrCl%eslSmvMK^Du*?LPZK)U zQRUHfwD*Y~Ju?t>mTJ~g%<{GLHDe7;nYD&iMCj5+C0){W)uEZabg0XX)l|^2icTI~ zMLiy`Bs=|;)Twd>?Owcs;-t&zmCAB4Z?KFe4_zkaFqhJ>PD|En@5M2&!Z`6V$M=^ zE*%R1bqoR>zs0EWmxPp0Na*-uO$ykoN%XOY^anIwCw zLFadAkbK4^E>#Ee}vkDE}r$UNN)9KfW>C{BZ6fj+x zcKA%A?)|1wkm*!X|2&1F_fDY^jg#rZ^2t;zokZQHO(KccMB3VGA|1IhfsVf$PkRi< z)5_{`q_l7xy@(%60prG!u9K3e-JwM1Ovcc+C!^`WrqNVdFp9>^8Aba<0^fV^NGh@z zL65%;r%(HZH4dYv%Z5=&%24u~G?Wgz4xve1hX~HxU^?@35GiaLM0WWDsr#&fbUJVV z)hZ642{#n!;K%;tx2r#uR`sJ7^ZU_{=)UxOWMBGf(}y1X>`j@6dXs%~FWS7k7xhi) zN$C@M(hjE{^hvGx_707u3hPcNf+w>Sf13^$e^KHNRgE_zWWX1ou{@Wk?bn$n7AyCw4 zyZVhU+xnIFn)QWe_W8`WiFE{z^FHt`KJR(z`FFh2hPRxlyy4rsz2?RbU-JEFFZddl z=X~7pXZ-Psr`&$r6F%+NBc9OkkWY$zz%8xr^G2h4e85~$M{b~uZ+zRz4GLShuCHK| zop0iQ^cs2k)CPX2Q$3e&tL1kRYk1e&)%@7rDxN>DlJ^)?!56$O<9iEA`FZaWe)&u> zKcQR1H%u(#lYi&)*Y$baH!7DeHqYTL+p@Xg%q-r}Ba>@AO6RUTjo-H?KH?zf%NI!b zzQL(n%qM0*`J5C`0}J!AD(p6n}=%_znw08^eksi3Qk<-z5}mIvghlp?RdW79j-FlmfQBY%^%;l=4#2e_$g~E9%*RF z+h$qt&OL7OvG>jRoTM9k@hwwsn|6(x@4Lc{`(EM;`FY-L&sm<)%Y^SuIm!PsJkHG& zj`Cj#hxvi+2YFtX{k(td9==ZBh?~h7^00{QJbQxyFa5QJmjrL(v}ObM>(JvD{nqdm zD|L9!Pb+z@=W>30@lxLZ%_1J=tj*_W&FB2-Tt4#-<3V#YdC&W^_#sOTo~5SFdo`=@ z_1BfT-IS@kpn4Mje0~BSK6V@zVg)? z&DX~F;F7J~`AE60{C8Mq-l`|Z4}SP19i;tTnr`=5YIy&h^q1-@sms-;Qsv4A(u`3u zsm{?RX-j&obZ@Up>AP(u(sPmd(!W2mq*klaq>7#?Qty}X(y1(3Dzyreu51pJ-kaJGQm)N?ICsWl@U zQ(M!nq*+(x%v%Xu7=B%tb&FN>KY4YhmG~b=*oMn55ct zoa9fNvgE_;*^*GZ`4Xj<%O%?ut&?o=GLQ`TvPW`9=cuG8=&U5;*ENZB+D*x^##<7( z8+RlpRh%Rl&2Ew>W_KmeRQ)A+Ey0qD<`I$}YO#{jEs2t3GpVFXB}0Hr#?u=4gV_Xmit4JdFYR1yh0~d zxm}*^j_bEo3W4pbM~e9CR2NF!L|&tV#afCF=HcZrf+G(G@@^_j#^t5_Wcf9I@+F9 zE_Psx4mq-bJ5KCfqBEP&;=-2w5p1>b?rhZx4>tX%C;Q>x#o|-$vJGwC?EYULwrPSN zOIhL1{v8Qmvm651`s5&H&=Sm6{SILh$A+;NOTwAU!3Z|(b|ednjbeT4qM6~h80I!C zj!Eamvuwiz7Jnm=SqCSv)y2u|^Q#nQ-doE4Q{!ygdSd=2X{^dMojsOju=}lHCg- znf{(lU-f}4JMfWdn}1@X{6DkSj4$j$>sR*U+c#z~;5)mk_Jd`v{>gF<{KtaKezAkT zzge%eKg_=IFZ=TG9~)&UhnRt#pdQc(0cxGmIioW+u9AmylRWbGcEOX6UGVv8SA6W* zP3R}OA#GxJSSEDGq6G?gTc!XD{T}G^vKhof>pnVV6fFtR4ER_S?^)!F=aSx5{8R);v=xRXas!MjYLD+NPOQn3JM=aq3gxb zLZdeZMYdyLJwyrcS3=XYu`o&+izY3x?!9Ontn|hsuVp-5@1B6auZ5XR6!$+7c@~pk z)ps%^?vqikGzHtkr=WVqRH)HZTv{{@38m9ezg`)ST9qN&Jsml(ro-Ws3Uq&}2py*? zEELqx*+J9=AF7T_Uv>PRGy{`jW&pD_z|u7^e(_9nl*~km-Yo2DnuRYrX5;je*^nKc z1GSHHgce8>F26MqY9>LD0)w?3!?r=dU@w4_=3-^YT;wRv!}$1lI6g-UL1|jZ)1Hs= zg89f?wE&(~3t+fW8@*e!5xip|COujR`~8dX_|+neIldT6KQG3Hb4#%5za>z1$=&x5GYsgAG@mz^dqeR_xzf~w4zZ$ngR%7l|9n?nZKu=W{ zsd2jKI&%%Qk_G!sb1ioBwa}ZZhe;WFcszd{tg_c((4zIYmA4*GmTbV}!VOrzd?WT0 zZ^ZVMn=r3b)P!HX8S!PCv0P^h^2)bhlCC~ZROrKBcPn_sR;210;BJKh4(M*f@QQ6n z(Aka|<=f%5dIuht?!cf`JE2;#6Vq21qJNPgWJ`C!Heb}KUu*>b93#kU?}kq1Zd{tT z2X?dvwFd@jge|=j4nNnKw@zOdYz6!=ju_Y{5%Q~Q^DusF{m6p4!;-2@qNz;%)WmDn+#6E zpy4DI>zzXXvQt90a2opAr%?+Ns3)7?q}my{g`a`n__MI}K8u}0&S8MVIYjn2kICle zVfp(!O3z*px}ppCc~G$99$tjh;1Z71T|#G_%eaz%8LjiKU_|m2%vZUJrNLLBI_esJ zI$uM0uj`m=ejRcDU58Lg!2gUX)Z$GM`^FSXQ*PkKo*QWJxq)G=H?Ve)8P4jN!PdqM zu7zf>mopdNmpQhaGslDkb3A%u4u{D%F=O{l2HByIuG4Z%1RKi93*b;q4S>eTIDK1N|w?@-; zYYcX^#?mUmo$GD`lZC=A+F);@4VJ#K!Jvt^(YWI_EM0G7YSnE}H(SAxvPJZHTl9^$ zh0#k}1dJ7$u&sCS&EXEZm)?OwCp-Md>>xX7hnR3X9DisBrD68S(X+=oD|?~Kv&W(i zdjzOD;Nw0A%VB#XQWG?V};DW1zU9nEb6$5U#B0tp?d*8a^^Efx0 z)OW)@TQ|(jbA!cqH{__e1vbcX93UU5pswjgVE| z7<1Jdmhs-WCm43)hWcRBY9E}t>H~{-AKZK*^n*iup|i>tgRc0ZJk}Q{ANiuoAU{|x z_d~}8KWvKfL%=;h$olz1ez8ABobiWJs6P~2{PDR*0CMLA;F<_-r}~N4H33-BIZ$Yd z0x@QPAdb5QBDz>G?tTQ~)3hM`+!loQw}n13BM1TSf?zZz7`^p^5pq2ks`0@Hd>D)_ ziXqq}bd^r01nVv!1WmOeXzvt?8jVmS><)#gV<@z8L-G7$D6WnTL#K6NFu5Lvy4Wx% z-4BC7pKzFJg~R1YINZF#akDfWMnA%#JS74TH%H*+%?J!mih$Fj2>j_6iOmZlarbB> zD!n4{wj>fiIwJ9TVia07L?OyF3P)n2FswZaNj;(gNi<^iMWe4%G`43)!|ko$;|-5N z?eZAZnZzL5KL(zaF);cs27{)=B6(vh7MaE(JvtWST4QmhYaEg_;_z^1oZyhg;ZI5& zK0Jy;rO>^42qm}P{&;+Gh=+MbJmg-+fA)My-9@rkR;?ROv2zJLVxR;gqzt(@OhPlpn=J7nV*c)2a}=Ym@Jm; zi|wb$7~eNVXyjASd3Opn*`&ZJNwD_XQ&87674>SV$kk7UmuV`DB2uAPmx|c`QX!cj zMU;*dz0XJmcS;I}0x6Q;N|8T^BTI`TWFN-`TMo@+j)yXiv+{%vWswfsKuEtx_~%bh zD=$cgkx?g~;{|fL(sSukM79!E85Wh?dp&C#Ko!mlfcvOg`or*AaT#?{P z7Qw@)2(wL#AQpRIT6Pi4?-!xuPZ7S4Dn@^;Vhr3a_<)y+(dto*yV7E;Xe!3Nuf@Wr zl%Q0j1Y_2fVCV4?SlX7rGqMEkB_+7_yaemIl%n_eQY31ZV$sf0q+cq9l1C|yr3jW_ zT`7t`l%l?O8A_*>A!2zMO!k&xifI`Nz006WWyoqQ!wA6@+|^fT{FTcEBext;d&&hL zwj3wC%AuZGj<(uz9Di4iw+a>5G_eAq+7)=TtpeT8RbYr?1^Pu-;8RfrG9OjI{~eu;6eNLd*oG z;BFPvQ>w6`stUVaRAGx;H8h7;Qj(3$@9$=r+F=r5kH; z#<&(eZq&lcy%z6dYO$c878lxTara{_!n@VMXH*@o%&f!Gm38RYSqBG`It;R|!wug$ zG$++zXlWg^@7H1dmpbSw)MLizdi>F-NAmJ|Y}{Ut_7nA3d$S%99`$$^U5^pD;+RHZ zuj(=EPd#4uZ$R+G2CQTaXw+$d&aMVTo^HTriw2DMY=BmD1GKXnpiPR|;U{k;JP zdN!hCR3lEPH==e?BSvj%#JU5GICh~Cr)?Us+q)5nZNz`sjR>l3gyxe*Bz$eekZw)b zJG2R&Q=7mAw<2eC6B4!y?&8rVti9TVpLd#Y$F~W+;+k+OTkNlH!jA_{81}IVz$ zsDCp)C^aKVy%|Q@&G@#q8D|WeAv@NL=~tVv*R~lJg4Jjr*$gvkhG9uFCNwvr=2&MjD@*a9D=77?ek2>EUc#ahQ+lq1S;&{P^oF&*Fp45t$1+7r3X@$0|6)T>%0-stj;CCw;yS2eou?+)9wZVRJ z8@|qH!=ia@IKQk7u6k|oHfV$G-Ztzz)`m&v+fZfN1|yp`v^lq7zE2yhL)*kSOKkHt zJjiWBWmy}7>f5lVy$wB{wZZdU8wPZ=!Q^inGP=pcctVCALj{9UNroSjWvEb-!CF%W zwFNR{ER$j88W|in$ydXpSH5uG3WSDC!L!pxl@RY&TPlmP- zacr~hqc+hOfU9@UP*vF*s3*be`x?J!np$LJaD;IrDHC22?a z+;;q#-;TM9+F`V`9miL+W8dm_ELkI%E$iBmF1Rh5Hn*cuza0yJ4O5r z6ND*=>yH%24rxc^0P)@TZAWvDcC7B&j!-#q-Cr^c|1N|2XYri8lVR{n8J<0s!S|jF z+AT7a*2$n%DT7C`ct&!?^OYfUA78Gerv&&?ni9`}|Z zsf!Fpf48CUSMi*`X+xhUZ7^U2&{a8}8m}L;ve- zIDWPbDM#AyYbF5|Z5!S!X%i!ZHe6P3!?;P}yb*1f(!UM2y0!@(Y%AnHir?|G zR!nGXg<^FpUgWnTl(#}JrWFqZTCvTo6M*0Z;tbGe4X5yGL!iODb zfu`Wm?$l|)@%b${s4o1~xE2f@*n)~K;+&3Ve16f4eXY&NDr*+Go@S`WG-H{sF#Bex znl=l5cQev=3!l278SfVhUpcE8MH8B#IH(y*yEJ3>*Crf%+64WECd?>k!k45b_ysj# zwsRAb%$hLrbQ6y4ZbJCFCRA!SL8jJ(y3t}^?s$l6sI&|d~hT7 zJ2k@Dv=NcVh3#mB%j!lPVvU$IS@3uVHVQ6SBbwhgU~YQ@Zk39DC$#|&gBtMKp#k@= zHXy^e0XOvX7PH2UCkW%sN?z+HG~%x~vXm>UEej zq7KGg>frUh7D+9&kml7QIJy>B+-fo3v=*-p*W$Y9)BkDJ;;`uBGeuwjOZ52@AJ;&$ zyauz9YcRs625&5C5PDqjlk{sK)2_khsWl+MKkojs8Ves)V{d7-;I&rckY_bk-KfTp z!_}x*SB+z=8b6do+r1i<@2fDZsS3K8RX7q{CHj~u96nuz6$Vx4zpx7VldA;#s0y#X zRANV4B`Bv7ox&K zD$r|v1*U3NKz(Ed#>rLS@6&P=m6qc|Y&ixym&50LIr{G?$FYTi3q7%1utCbv{aqRQ z)s{g%r3{Zf$`E~}3`Ry}kXu>?n<-_23n8}Omm;dR6pxZiAuq;_{VtcHyJ0C_Ei8p} zLMcvkE5*Q9B?v4p!Km00+;AvC?dcNq*<6BIk`gQ%UV_EHilKb37=N>hk?CKIgJ#9} zy|)-wmI=Po$8+9DXK7hynuvF~FcP+KUt?uEh^ z6vE(iAsjapB57tJ@&*(l{j=ac)fM1$Vgb~g3ebG20LJSJ@Onl8Huo<;^oM+WsLB^i zuY5@E{6Du_O(!3{l=IP`kPqt@c~CCOLuzmy)XnqYygLt1wDX`OVuKaGbFsZm7|+ED zw_J=llZ(gebK#_(3)MckNO_%uX(c(Z4#^Q5j2z+XbD%L_#2zDZu;6<(rZi;ZS9~@y z?qtK*I2-aSvIWywy!S5)2JKl0;#p{O$-0 zBomwTGEt$r!#PWO$JJ)X24HA1AFhMW02sZCpf2L?s3ts z6x$QhvF}eB{F~EID&n^Xx6|-=e;Vqv(-1d24Hv$Mc(0OB8!F_%redj!0b%7Vf^Toa z<7XTLvpHsXaLhZ!F>5u)unB@o^-GHI1}QehNb%l6D#mzHywH?lWj`t0UZkQnI~70O zQ_=UNh)Y+dqSM$^-2a|}i0TyV4og9|>nZTul7iuCDX{FCB6yR@P)<(9uG`5l-;)ey zB*UqHGOoQy5}f-aj1jSNorsywEEfE#;Yl$2kcfAMiCE^H2;0+%$XS_)$72%l>1zT$ zlqI0eKLJVS5^za30qWxuQ2RX|dnyI@J}@4-7vd4NCLSNg$79luIIOCS!}dU7=i{(i zH%{tCvtZ<= z2E)!O7&=>n(J?g`jz5DivMdO$UP1V49E2_Ng5cXL2u-p;{D}(0z$<|mt{aHHqXO~e zO#n*L17LeQ01LMV;E8eo&i&_)pQZjd>gkWFL;e`c{6*~re=%?2hm;UM6rJ%y@e)7q z0eN^mls0 zV7fPSe%^&@@m+Swg zx?#gCH=O(D3Y&6Q*t@&Ja<40nsk>s?FBkMJc0s9=i})S5KvCI6u(zBsI@cL@Y@P95 z-x-T0IK$$-6Np3&jhjyRuIB`~kxuyUnIoRZJ0f3jw;Y!{V!fgx{Io+;z8zlOu@l#~!_#qgsC;t=VJUY+uI&yqR^7p) z0e4{DZi^wIw(ve-i$So()y}qPEx(N^B4>NR@HRZA+!j1G8`P5xWM(!ZzO+H!ARCcS zw1!EjH8f8ME|JZ(wn|DZT}o!uzl(G-sH? z^4)b=^_`nxOX_ z6Bvql1CLdwkyd|7Fab}2zc>l!QzxPS>jdO2PQat@2@Li)j?3eYqb%|mI?Xl;``v>G5py5jQ3r5!)&ZUAwF7^a?!fP|?RdU!JJOoA;nI$6Vk~3;I%ojA+lt`RTk+p_ zeP~_P$Dz*pFtyqO^WIx<%5gJvhHOUvyPJ@!B!)dHGJ_Rhmf(Z+7A$UFlCd~&A)k4M;EyRV- zgTu6WFp8XuG1KRwEDG4CBEE)bhW)Bca3&=ft0uv|SWUR8X+j!12gPc0P!u~`%#+TB zW9%&KRGWoiu``jUD!5@W8hEOrft}GaP%wQ4Mn>jc*$BMUAA#tG;n=f&IC@qML-6Whm{B|wu}g+xOwJJ8 z&>Dh9J{Y6s491p(K`>Jt1pkPENSHKG%r6f>)aU_l@l?dg!HQVm*dKCz`Xl*PKkVqz z4;|P0;^wbD=z6{nE`Am@!;baFyjQ(oy|0(3G1e3Rw)Mo+rXEqEHM*v=D+3e^_(2e zKK{qvHT`94%KtEr?BA>+=@)w)_8~u!u?{7Mojw@NHgAby)0aiEFS8<8 z?D%lDLotl~{uja=-UqXx_kx&Xc_8~o0n8}epQX6@u|GF`*<2GJX1v>*+3DS7Ve`FM z@^nv@GTehjb$4fO-(1<*CoXJNtuq^#?Zj%M9hrrf15>+Y&nnK^F(bh)d%ez<885ia z9!$4kI>W75bhlfq%U4Ub@sR~{ue!OmQH00117We7bh}<_2b#L zX=B;OPGi`z){$&R!f-aodMNv3G?jcr0H&q9lvtcLljtwGB1s4^kqnVLBC$5yBk7rGAn_WxUNZO6O39lR zZAq*|A~APUlN|dtNpfVmjQUHv{2nH?avvwHpQ$W;UO7{mb7-D)m;6#`fsd~Aon*7LwRWe}>c|0UN0$@Q z$-d{MHX}`?j}G3H4o$u#oi2ArI$GCJ`p(@|>iNV|I$qsZYIP}4T2dG)ecC@t+O|DT z8Wox(-SSB)ZJU=Nm00FTkJc1OFODdc8t$uTz_~ko~qS{|Jl`# ztC%bDMWF-v{L;aE?AxLIRo@ZZLt_+I-86=Wog2#)Jje4j=@a?+dy~24zp4DvxaoYu z5>?)JzdDZ*>mN13XK|0xIsEZ!3Gdf?E>}|3;)-h*@Mp&ta&P;^e0Ka&9$T~g|JGD4 zSJdJAG}iDv>-G4eQ|q~$<3{cmznPDz(dSn_81S^dJ9x9IA+Ogp;xR||@B=pc_@D3t z+@$yrFM4LoJLHe?F5^$|kJ_g=-)X{kTt3V1dz|OV`6Q&dd3~@U24ZWn(VpO zQwM(hlOwnN>%?7qxp13duH1N%8=o`Noxfe+!R>TB`N*wa+g|tmIOX+cOv&WlEnWzo6NOMQ}_{^RBq}bAsP z3p4oNs!V>cC5uZRW%CcOb9kSxxqQH%JpQL^0k7^`$ZriT;#0;J^XRE1e5gh#KZG*w zx2T+Ftg7Hy>nnMvK@~r2b=>!QJ%47|z!mKp`8d}mKE%73e++El zu@S9&U3?pFPL=URneE&@{~pgPz0X^!AMo17hdfsHh@W`$m=AdIgnPby%H=;lpPFp{=x4r{>eWq`;R|b`HLs({N{(&{^7sZ{pBY&{^L)S<>*h894V-F zqRz3M=$%?;Dvs++jx*#*H$k4hX>=j`#4a>!R#$RN>PkOnb))sk-N<8hcdAP6PG4s$ zP>&P^>N}?gbxP?$PiOa})a0IYZgwx4oZO2FXZ5BHNxi9RW*vh@J!vqGjU-ldIogsvkXs z{@xuz!$u4xC6A#rXvi??a2`fQio?m=emJT189~K1BWR7nNXoGoNn_#?jJk&3BzP8SkC{yY?z8D#|2Z_#W)3Zv*Q5NM6 z6t#iO`JK87Dmn!x+*Q9ThO8b1Ljkc^?Wk#w17rlTtMC* z7f|;@+O++FHhFGYC{msasb=XSDoYm}xS5OTQp94KF?I=6yDcGo!GS9=UrOWuTT1&+ zE+fb1%P4fmatf+jPBtr7kU`c8Qk=b#5+YX8T%}bM?Xrrx^;}IWudgPPudB)Ounw8s z*P#O&b!ldaEFu|zg7IcRifsn;S7#g5W^SX~>f1>rU^^ub*g@lO?x6GEc2MGhomAhvlVmFmsf-NC zS9up1+}$O3VMb(j#fUz>HKHXuchl9%-Q+WW4+X~TA-mCgY1f^-G~~}-N;E>m>DWm=(jg$muT z(Bw{6>4>q=X4PLMU#)9o8*)u>0;MJnbr)X1E+Ih&JRkvS#(G^bLP zn^d#wCY3nd6sV`0bo<9m+A`gO1{hjUwu1%j%(tL7-z@0JR7;X=vm~uMmSmT0NwuFW zsmnwwn!3e`=HIfSC23ZKw^lTE%q{w%cZ+gv+@cFfw`lycTa+=xnwGD$rre9xq#9*S z*6r5R*vEzjXxotXNgJWZx1l3-Hgs72Hf^1KnhQ#ZHUR8(}E&V9d4L#EnN*j8Jb zVr@%;_C`Nn+0yC}cgS}29m>3Phwew-p^t5M=yOjydNS9J3XSc^-OG-)mf2Cy|LiDg znmx@ou&1nB_B4arlj93}dOXB|CM48x3bl-Q`R*cbrLZseZhMrYr-(c%&A z^mn=7+?lx3Qh#@THq&~2V%Vd+U5 z6FsT_eNW2h;YC~Kc+o>6FWPGBMcGm>8vMkIw)MSBcW{^D_T8l%`@58#c9&wF-6fm; z-n3<&H}yZ@P29no^wPbl@tHTR>hD9*bA?uPpARh%Y`ml7L)K4x$fb`j*-3oq+-_ge zz3oeiDZW&A-gFFN1R&D^jdKExyKp>r)8%P0r0x8`lkn$1(iMIvP-OfRD zR5^%LHUv@Y#UMHp5JZ1UMEg-}4;8vv?O-}`Aeg-F1dBd1n6hQTB<&nR-qQq2Z(Rt@ zI3GgyeM0C`K?rqu6GB%ML+Ozulx7=-(wUo~6c`ywnKhwQ+#%XgVHB`9j7$!N(M-EA zdXN-G7hA)q)4wn}H!+-ASB2BG6XA5gC7c{7oFeXrQ=EJR1x}41vo#U4?sNq8a*v>- z^axt@FoG(&M3UCDNb+10Nl#8i(nz;RT9_6|8}1A197PKzN71m=QS{(g6gfFY(X5mx z%4>Z>u9u+hQo_Y7EWwkD;u* z7*c;0LwCBzQp>bh>Zcn^vyaEpGKW}Nk{C;B4YAakCVv1Q?lUGB-6hI$>g{*nfhHxri)(5RKt^LU~@7p{+3LJ z15;?fMhY3|rI1+gMO|;FP-b`v?I}v3&ree5M5k109+OHcTB&r*AXP9!Qz^+gm3VwA zMO3De)$3GR*Ig=DI8q8-D5Y6Dr4)TpN{Vh$+LI_HzbdKFQA+7vH%|A*b1GlJDQFv~ zL+3aRbK;a7!%3@@Q~Xm-{pEC6d2qhvq@!CHXWatO?OvjQ<7merJl*A5F5ch z@Xw|tsoC_kJe%wvWz&%F*<{r_hn|khAr(mu8R_QGwcR;%>s$_9xt&8h{BvkZN)FvC z74P5ApXVX3fr9rizAcYz-{$=f zOJ^Mx)${#vR1|D16h%ZuL2Lwe-l$lp*kU3E3Lg^@#a0lIk`(Fg?%bWTbi>+;-QC^& zoA2}d{y5Lvxp#N&+_`hloT=BLhkwO!uXgm6^^|W+NJ?Yxj(+j713J+5NMTRq91)YFr%_4HSzf!b*_(7RC$)MC;={tFst^123U+u1;t&JENY z&>-xK2HKL}Kw(u4RB*0=O7AvM%G(Ay_P2p%^=PC|gBvMeY$NrV+DPsT8|lv4MjCF{ zNXw5j(k`Dy+85bK|7A4NG-)F#H#Sn)K#Q z@Mdb?&`i6}H&e^aX6o`(T>H>WOMW-gGL;rG?cGBC2Di{P-4=2;XrX~qTPS933#lw? zq4n!pD1J)|weD`Adq;$Lh~q$UF0zF-B)5=iZVSbhwa}pI7V>Oqq3ai0sQ;}Nn)bLw zFxOgW>DLxw|5~W4YAZFXwUUE|;EN0stV#V=dSuW_Mw44<_pDY5U(ibF%UdaFZ7X@% zw$duQR#MyBN~K3yY1Z*ps_N|Hydbo@mt$=-?hmsWc4OI&ZKpi&hDId@mkggy#7H$XwFv;-4nxPnHG zQqZn(3QCxypbDm-x~U2(nW><_xe8jbP(jKT3W{H;py5^u3f`cg*ES-Jt-^Y?Q_w*N z1s&O|psfcLH0`K@+PNqw@3?}@ycE>vqo9ca3i1w8P;-caK87nuC0aH>&Xgo zPgBsCOa;|sD`;w-g3<~U^u0(yhNTKxCsmL=R|u|^;BZzbNV`fwx2hH7R;wVjdIkA4 zDCk|If=rtgbf`r^F|7*9QYZv-TS1;@6twKDg1VejP_7VmUO@#y)Gmm0g#-&J7E<~D z;s4_QJKsyl|9%G{|NGzn{=ZzL<0aBd5$WcL^y9>Rj)?os5cmBk?jI=f(O2ZhQ{?Nu z$lpkj&s8G7yG6eDi~MgE&tWQ_r$e!ViV768Ks@I;@w`*SbBBrNzb?w5Q=)>jM7d~- z^64I-pvR)T(u2gk0~GW^l%t&}&ugMw$BOdZCCWKUly`wB_W}n6MT_^aTfC16whFo_ z-j9Qog5HYvWhvfUo_K$+=PF2jmV)$66+(w9sJEelo{m#c>L>**(oxU@Ed^O?hHZm*!w->r1&Ybzaj-%1N#wh9JhD;3{qC9`X-RCl43Mk!j!slJt{Le#Oc zR{E4LSUMT4bUm?^vZGpQYj7*|^b>X4y_K|_ME%|;uI+54ew$lq>iSk%vQnhGNYvli zt)w!wl^P6NY3G<$`ZrvpJE)Z&_ZD@zODpYf*Gh5UTd43|3*|o*4A(m?w4<$s^iH?X z#o89y%vssHk3x;>|v0!*4|)VOBBLvN;G{hH~RYBM$cYN8)+g)V&9 zMA}!HsBeqVaq=dr%xj{(i9!#CG*P@~6ZJdPL>QT;l>5?b6uS~Hqx%%mn7F+%9b z{!Mg4wTVK0Hj4gDBPs3(J$t^9@@pDNsko6$QyOV&Xd@l<6mp=EHg9dD$(D`u+q{v) z$_ARQ-$?ZX8wKy7k^Fu&(1lkGq$GGmgU&S2u!;uio7+GiV;V^A*C6Uw1NE?LpeU;b z>M6Lqd(c2tdJXioe*+B^ZObUp#^{K)ri*BEZq?OOq-cX?h_>j8Xp>er*Hg7KoFhA{I-z&! zDBiG+qK4LyYmYiw_N$h9J+Gzmwpv?tf-hx^hFR7*B z!)vL%U=pAGSwkLAMf-iJhRP~yXhK#Eg@@MAbC((#X;(u_R@Knv88x(JObxB*UqfTt z*U+ce)s%Xznr75hlOng8rbSd!qFXh+v8$$$tEy?i^lDnCUrlTJR@2PCRn-4^72UX4 zMPB7qG$gHx(gLeU{ZJL{+f+rB^Q-97q$<(ARFO`nD$;saNy^tN=~_)Cg=baLjNnST zaio&g*;dk-1(l>{SV_AzD=AI6lA2yu(B-xYI$Kde#lmj#6!z1seHHX}tvH@lL7hie z(Ba+{bmd1mX+0>XWG%84x~r|%Pm%{HK%O#jKL{)wE7&d4dW zSn#7G<<#FrFq$?CJ8yxU=1-K9VSl;c+z_3AC^*wCM4I_TX(1vM_!XB8MCWD^bsa@y z*n?>PCxHaGE^N(8P8!La9(r+#wBuy5l#{}c(_9TD?+R>6u7r@n9)!Qj(I5u$`9( z8(Ke0*wMnK&e&B(^DWBg#-uV@rCvrg-%CZ?TS{vyODP~hFreH@iEK-$cy=j8>6Vgx zXTgJdRYG^ql+e-q5>gH-A*Vehbbnb185ow3W4{tg_$s(i*NUl@3;uUhF-0FKrX6dG zNpDIqwP_ZU{huQGe5Z)ER~6Ce_#ztUQbd;4MdUuMh+>BnQS!e+3cpuKhpG$7JfV;} zx)f63hC-TWT1XcL7n0eZ0!qJKK;Oy>$S9_OHXbRUBWnuiI4ht-qTjPt^nb=)$*0#P z`4knLPeyz4scK0+8IQ}Sm~Q#>PH?3rwC2&qj66E#nMc01dE_x8k9H2pqnUqlN##~9 z$+_T5h3C@Cy}7j2B9|_Y%cU{ha%umI9Li}DeD#zZdgPizkJsl=n@J9p^v@xe&)H;h zF`FLeWz$jLY-+zXn-0#(rkg{uY0PiIY`>mGF{N3eFP=pWJF^5UJc}}QvdC2_i{{+U zq+ha3N(jj$1JU;^nV(6+M`n^+yG+44%b>12gN#EmXvwY&vYaPEoeVPimrh-7rVINe zo!m~Q)9@YXRBDz^lZJ@??vFJ3cR7s~=BLq#6KPazlSXHzq|p_15x!5Q5=AQcq^8o6 zW2w}^GL_ONrV_fQQu$-i2d_#Y|A-X2y*q^l%}=3u!&3yCFq!sVNhXKq; zDUKc-kE5bBapX85j)tiS_SKzOT2>lMmwaPs)}~lWk;Kxc?y+R}IEFThu@JAI7>d{u zLy=Qr$ftJ<**%Y@sa4T}JswR(+oNg4v}k(PH=1_5jH0{MQ8Y6wiXwJI(XDAw)T>_< z8NZCAMb(kCJT#IPY!@6X(@5&tCz38di=cpt2$GzNpo^O$XuU}U-RKcPvmb>EW?eYF z_Y0@-8^g)kFq~Xe!zt)?7zG!Gk*63h+GZI>Q^te|W?dNZ%b{eQ5lY{Vgp%vxQ2IGE zls10}q1u)Z>Jb}43mrnpX=aFE;Dk{A^I&1C1`9tQ!Q`_kSfm|HBUOUw-i=e_lY5GE zTuxD;g&5z`IYn__gXnKd5G{=fq7cE(YMB;9Z+it%$HynBhxDXq*H6+HF@|<|^hrt< z3@zL9fnt0skjOERmY4<7)qWy;7C^)UNZmJp{#zSBsbd1@>K`#)cg~-BB>I#39)IdN z)1Q9!_NS|l{3xwd_@?mmBaKylR5{X*R($iNJI%hdI?|UKw)xU<_|m@4z9hThBRHHs z)c1%FjhpX7CIfwl3C5P5`~-FNJwf-^oS=+RCuq|TZ|dIaO}UZYG-aDN31S8rsd!WT zRWJIU=0$V%dy%J^7x6w`bo-$veJ=8(zpkG2Yl$bl)bgY=Z#*ce!h^Q?c?g?ZjEm}d zki$23!Kim9?@)JAvUMlBiDJz3-*Fmv?l^6TJx*aej#D)|PPaOV@zypsdYkMZoIsS?^5aH#k%5 zcPDxu>_nr-I?FgUvl6yK*&|pVe zT(*ZkE!;zHVyyey(cQGF&u)s%cA(QU9O&WoUG&gl7b!aJqL?^)(Fe4rFN&Syx@jkU z`erA1?{*ZTV@Eae9dvc+4!ZJmJ5@Sur@-FZ$vkr#y`H*_4qe_#Z?u{QWt-{Zv;Qd5=|9@u>p$v~Zc7;^wxo03hWu=8==L|k@$%n9Q?xhH{8BMD zV7`$?+_t8V4%U>}!J6hpY!KYe4K%N6J!M&}r%#X9k?x^&G^gu2S`xpOW=&j6LmR9_ zpWlk&UaX-hPHU*K#~RT`wWNqimh_-;HTAPxO-3(Q(KM%3WYl97sVA{=yu3W<7_#znx8AooCa-ZnH@qV@59eW;Bsz(S^CQX#LfhbnU;H zWcq0a1-s3lww^OcIet26kC{%R<dGs)({OC#4JaQ79FE*eiQv=FXOeD8e6KVFt3G~B$0>%CqPvbntQ-Rue z(vBTRuDavsLh)GYX*!lnTgTA)6=TTm-e}ssV>GS)qECjd`qaLwK2?W}B75yo)Fnrc zB8~J&y+)Tj=IheKwvjZ^dZh5xF+%X|Mo`rs9XjtVq?ZoW#tf&F5yOQ|HjIE_^rmho z1uq;*dRMinz*?JhUksrj$079cmlhd$YLR0PElP+OOjX*0>3o)$$28EShVns_X*P&l z&JLtGs|J$NJq^m)szK)O2hg=c1IV)708;q$r}4e}lV`L#og1c3syY40Xi`5~QQnuf z%<4qa@JyHf44uB5opg_<{ZA=$Ie6uql6?fIfA>ar^RY_CeWJ}P9P zra~{nJJG?xo#=Z?N3z%NNLLG$$v~n^?v)*=WmX4jr)W>(mbRxQSKHC%b?wOEp%U%d zrbKnO|M64L|MGdC|L|A;e)9uefAg2>zqt9ZpZw(5AH0Tr=eK5k&p348#%YwPCVCv^Y8m*+{j7FZH||5w-crORA31Y4lU-M z(M5cFVj(w8FW?<>^LbTK9^Wp@<((>XcvxLF@86Qeea~j{_m?vGyzA*a^iCST^e~lo zc%H&XzDed&KPK_H-x9gm?*wktE`e)wis$dU#PN!rvHWP?7(PxTnqL_l#di;jDYSS z=&_bdeb?~Fpw-+yd?lY0yPUsHvfvRJOSnGE) zx|gSM+v`(B8BG?Q8}PPg68`wL5r6Sv5`Xe_BER};Jg-z5$74E<;SOE&xk*nw{=3ge zE*+r5w+tS}dk)j)1tYci+|io+`uKr-li>jVh^g}pQ~UCZGkWuBbJTd+{2sj1l5TwC z@-Dn=wJKL$*NHFQsLX@^YtJujQ{oyof6F`{ewV#?`B^sm(|cLuuh+6C9bU-vyFHO@ z@B2WOta(RvMdyaB{n#tA(MA_#OQ)Wd?VjB#3s}@BOJ7+lt6X0xyR=yh3EP*+zV0uQ zbvl+OQ}@b}jR;JW8HOjxX2-|LR;5SDw&#b*oTaB^p;ZC0{3ajS>2sd4S6AI++Eqto zj_3Bu&fc|?8NRcXrTtqg8?LrOman}~Hg}?#?A?qhvh-z!vR$@gWaj&HWRpBKWfQ~u z%FHsl$?UkYY;njB>F2T+($?!Yq-TG%N;?dZOYLW7OS^4}mOk|Hl|Ed%U%D@KrS#Yv zBWZhyy0lySH)Z`J^2*j)tt(s6tGv`|P)9?JzS>4798MZtyL`^*@E{fA9cM-wmpjcd z-Zo~7vFy!p<0lQl#^o`|#wL!%#v9D*j7Mr+G7kFmz&NJmgK^3^B}p?^mGERW$wB`C zl6D8QC6?BDl0)VbBsLS7q~E~llA!kHl1nd_NN!zPEyI zu|(&sR1$PgF1d1{O7gk3PV%O>Nm8Ankn9LOCwb#>Nn*bLs^rM#n-cexcO|y7A4)Wg zo=VbmUP?OkeJh#T;iF{k$1jqR4}M5)oc|*ke@}_6z1p7bIjhWeH*{jF%T<|faTj(k zvm0|w=)qLO)z~5b-t5BhzO3hAb!O}^fX&)GkV)2RvR)Qi?9v=_p;J792W_xty56 z7CX&iO1o#X5Zk$|^XhqQ)BFW2dg>xpI$;Sb9B#n^)R(jQomaBwzgDp=Z!KBleJj@C z@;WxOaRbwmZDhYPZI~?jKeo(&3p?Yyjp;b-U{)J~?^USO@FNx;gnVmA(G#-Sz<1urZK%u0F{oEe>L5%ucaolZDUTiGs7H7s~9l!dPlHgG{EOP`j-G!3(vlU@#M)XZhy)$&-Mj`?iBk9^kYO#!=e zzmUbX6|p%j#q3&n39~3DWhKdF>~ENqP4tnmg-)C;bs#p`M$USyEN88AE0~>0CHp$2 ziftWI&1!npuy)F|Oz&$glRU3uV{X>7&Sx6fnaW0XprDC$N@`}#!7c2Tdn?o0uVCg| zPBY8ZXV_x%vrHf7*y~Z}S;)W(OuOqv7V_&Nd->`T)4P3{%|Fw|mQ`F~rny&{TI@B} z%K6Ui?!i~-`D`{@9bvRAI$mN57zF{PqyXUFEO+Ho3*9> zVYg5IWsOJvv1S7$49--7&ER&32yTZ;u@?QZQ+wR_&>rWubU^8?4)9&7j3tfA=xEXr z+4&vCK7>xF7yLF!Hx%wb z>C_FA-giT#ZFd-7>yEhjJ@Bcr2iU}(*qPcBC;O`*(O1YHH3aVNg&mK2!FW|~yld%= zh{=60Hop&wwfjORq%S->_Cwpje(3eGAEvBR$I5f+SU0^tEQ8gW+M|B{1rGv*-BjBtUf%YaN zu`g>RE)CFy<_TRa`=*QiTlC;@MGwc!MqzWwD6nDr_!gv(q<{KgyGBEPdo=VGjDZ`C zL9^~yd=DFozRKgE={OE*_s8MgqVb^e@o*S50csHw5UV^9eH|y_z`coRSZIJhWPqW% zlQ1E467<^{qUSC{+`VatsJTWkEj7Y9ZDY&}Fh>3lWBlDL0WL|f!IZ&1n_;Uuu<$rA z@GWq8jR_7mnm~EtWH`l6#$A;u7`1l_tnW^N%e<-ZDV+-EA*QhMHN~(mrnqc94Z9T6 z@X2sGHYH34b)JD=duL$e-5D@3p9xkx6WW@y@ZNJ4vfs_Z;x%TtS!X8pS)bBILjyvY~F?$~NyTrz9yamo(XRalcx~Q*4=o!oYm7CVPFf@8qcsv&ZiGMIhz)}_LH*b!l-=J1lUX)M zO|!vQ6~UO>VT<`^Y_VwEe=rXE51l^#hw|l{v9fG4uBvar)I(d~b7Kq2O}65a*nf55 z_f{0I--e@Af;%^4J1ShZ!|48YgiPOotBGRYmXaO1Z?Z$XT07j(-iZj;oiMq-Q}F-n zF+RZ_Zh!5;*Y84Gg^)oGkRNe?=MBN4W4qB3z8f>X>_+_ZJ-A=A2P$fg=)KDk?aw$0 zHsW5K^xlgxPxc~j=05aE+=uml_QBt3KLjNfVSNu^_nre7f9?P-=^w-z?}KQ3bP#=~ zAHv+&L)h^B5Z0_X3`yZ({Oo!JiCd3Azy1g!wT|M&;iJ&HaukvYPMGB9gx*h`aAmqP zoMN2O@vAfTE|^+*?1CQFE>I;G?CtD|<;JcUVe5+LCtVR&;R>@CuDI3D4V!1W z;r=c+ER1nOcC#CPd~yS{kHb!U41tG^BRTarGA|rQ!tdiaq34cGE8H>0)g8}s+!1!o z9fln|P(RKCW>y}MdU`;k$OHDbJy4?Ji5CW*P}|^%Q9hn9DD}kHdxCM-#S5Pey-;WE z1y^4$!3FZd`Fmd2*u@(U4ZX3_+8f-*8{JF2vFxrlPN<$hzQGAJtvi8pUMJ98cmhQ? zPry&v2dl>UpqHf&s@#0AHpd6g+kCL)uMe*1`ohq{7am7^(U9VcFK2wA{?!+HL;Rp` z?uWs9{Gb%=hs$+-ho+GKuG5X;+R9AU|R;_UR59tJ`IFYkCQlTbP^BNorHLoe{%8lGqj?bi?h3-wupm@d1i|}J5T*%6-m?j(;IjG@RE~)-RqQQQoWj%(r{K{) z80Axg@z6F{aLt18w;&jwuLR@9uVCa44Z+^IA<(rC!Rg=-So07(yc2?z9YP_~3q|L} zp;#dJc}|g`h^-7o-osGjs)QkCOc;(>gu(nk7&^v;p}0B>iyw#KrfN7=jtxh(ML0AL zgu^B}9MM(bsCyWW8=WF>Pd@@}iz7geVt;LT1eVGp(BW?w&?; zG`3bmBkgW9E-A&}&9E4JGmF88Eit%pA_fK7G1z}52KsMfaJFYGtS83e{<2ss-4~1e zuvq+(#zJyE7Mp&=;^@FQxKED5;dODa7F<4q_&9v2ibMLnILuLsN1Jv$EM~-`a#K9| zACJezdc;gt*Woj4eq*?!_c%yidZu9?7U2 zlZ-F(lQC#}ve;{$jEQN<7+RlJnej?5(W#HkU z4E!_BK$m41=wP3L7v34DO3r{wWd_Dy&%l|F8Ccyt6X$g^VKg%nKI<}}IFN}SL7C{6 zlZhdXndpBn6TiQU-}KJH$uU`&IwuR)t+TM{a2BowXJK+~7W~D2`qOu_#J84(UcIt0 zKtCJZW@Y2;+H6$r%f^v_Z0MwCqoOJsGp=Q$#Qy)*To~Wa zMYnIcxX?WhZaR6;nw*C$i#!b5mIv=+dAJdp2aTLO%&yIY^|d@~d6NgL4*8g@kuUgj z`Dif9hrLxk+V9SXhi5)MMGG!LVLqZ7^Ks#(h`-B62f;0DH?RP&#ucD`Rsp;%3&89P zaMi5SDk#6X=wbYq2hwV)8(x)6Kz7NWm*A+n{%ssz1FO3*sL1UuK3;J08w9C9kb1OE~j$BE;-5@b}C zpzdr56n9Ec{iXy7e@bBAy%f5GOL2BgDKi zg1aa!g?3{p-d`?7?!!{7`cR5j|4L!sqYSq-%ODwDhGQs0@m#@QTv>*Dwq>}!rwmmt zWe5r=!;+XX{LC!FDQOw{HI%{gqTpKGErb5+GFbm8gIgylPWF+)SFkYljFrO7L@Ib7 zQWPwg!hE9?XLd?4^{^B%o>DwMCB?va5zm%lfmDh)byAEwCq?_4Qq(<>V%G;LI{lHt zPgRCLePpm2B15XaOz@&ae7X!>7s}9SwP15>lA(5|3~mQy7<*hM_DahzKSGA`BpC+e z%3vdvA)-bGQpnKUCPUp_!S#49!_kj2nEaOEX-5v{o*eBoIQ9(VI5(O@-H40&&arbY z$Kjp70* zt6cC7ImSHYsCmPMEyPjqn?qHZu&67+r8gl?gOH&uLR}FbM_6n`P@O_3m`Rv9j|3x- zFlH4&Y^y-C4dL51LT?Ac!2N_CM+xs-1=rGxu+N_`AefL9K^PfFIGId%oFR_$2+NDb zGFchHv4Zeltw^_t(Csv#{ybrG8{yM+!mc|6;m#I%PYGLJ5`y1~v_2B@z7k@8ily*> z3Derk@u{O6A)V#W?k-29njF9T$g!xu96kf(C>|_Fv$o)84ws{Bq#S{x;BHd@Ltbd4P6glx5vJv z{$u61pf5)|J#qgLBF$kUPebJRH%N}N1LQc-PmXcD<*4l;$MmjpV7HU7aEnNDBcV+&bdD@1 z!So^c&mnxDCYB3>5NbeZ94)vyI%4V6V8R1+LPJlHS5;B3+Y!F};PCy((d8A#!ABey zZi(-$jl=v5$JPe%tyOUBDCJn3%P}OC<8};(R|touA4mLgj_yY|w(sF6+Q#wJnnPtZ zN8iQbyPM7NWwLN{VZd=>6o-+v_?FcoZHBZcrkgrv#;HC3yC)7%GBk z)bDOF)Xo;;dwDU=W)~wUO0J7hzZ5Gs#Of-?#0mhRfLf* ziZJL}5&kw5;aqVM`~?5VI8YoPEy9ZJMQC1C1YNTt?4MYKBCR6a=vsvL-wW~iNg_Rs7eJ;e_{pF0(eGY9Mk(^4UzQJz#C&}9%}4G2 zd>r1G5A6kl!)%lfW9@vTbrH7Ampm-KmnWEVc_=8!Lql91n!WSD_v9gBZ65xcEo`Xq z;@p5dY-pc{hp%$6@`_+DRpmlCGZ!;X<-+brE<9{=;kPgsu12}A(aOanm0Wy$mxF}s zIhb6VgN7^-2InB@NDjW(p165-GH&`O zW1T}X&RQgkb}bps>d7eoo`e@SlhCO$34Ich(9=!yX>5{k#ViT&Ba>jMnj~0SiHJNc z*im_jhzLx?ABRLNw-DzH5^=UqqF{U_prhbPsmc=YDE`5u_(SBi*XgPh>nTH*CVl*X%#DMzgT1sh(+VK7+kz6`i*5V;Gr=H-5Vpgj4{xh z7=xCcF|d6bjrV7wu`?$c*L|X4xGfrPbD{+gH5xD5M?>{N6#7+1p?6#ql#WK>u4NSR z1eeOLZHlm^tl_tu{kLmzn#P3VI@Li5$_|;zY7x#`!JYghGDly82mSeA!y zvE@QAY;%HP;T0_W5D2E#lwj1V2VD#^(o$ zF|j~A*cb>MlR&KL69|{r0f=Y}KvH}FVh;wuXK4VojtYRJeE@#k6#fWG{ISg6A20s% z$DXPFc-_w*mT&zaZSq5>1V79@=!c_A{E(>Y2ma3&wby)6QQ(U#Z(p3S_Qe{BFEo4l z;^I>u9I6syMd3b(wfBL>Y#;b&`rzfK6EHn}0v^dHP=5G?U@4tId%Y7-`{#{bSG}Q} z=ZzQc-l(pMM=Khpz;26({mtvepoyTc>O9RnQPkznQyje+j)dUqU8 z8jeE}eH=~>$5Co_9QQPiA&uP8UDi1E4)V%+X*e>cRvc7=7VEBb}IqH2dL ztfq-EzCNzFa=``Fhg}df%ms5#9}_IRW7w{F43`_6p=0lib^V-iq|ym4o1L(uyA!6A z9mSV*M-irc6q>n5;IsS)?)*FqjpW0aJnt~f-XDTd#36JuJ%rPb4`PqsLHwO~5RTUm z;M}nT=r!U1CZFDqMSJ#RPXGPTt=xzAHo_N&>OM&F_d>dSF9!c`gk8KNl4m)h=J_5p z1?)ko!5;Wt+l{$SyYWVQH;y(s;KOzYEa~BZu;N{4ShWi`f7;_lygh1X+9T-cPR#S& zi5Fvc!ttUV9`Cb*=>R*pmG40Ah8?JBw*!@_+mSqXJNCTX2EBl7Xc@l^7MHe)@${|G z>c15>v;`;EZbAB=%}7hwjKCS2vGLJ=807gMYDWHt#VxjI+-{4JU2U-^SByU|vO(S3 zO=vy23GxY>5PET=U|DX2N}r90FR_O93gIK=^9DQ!-GHG+8?fNYdTiLgUX<~An3b)A z`pR{<{CTa=&uh`ua4ozpTj8~%6{hsI!oi|7h!x}Kx$i8I5ojrFXG^R*vl{Alt5MN; zH5O*BLi3ze82e-;j=8UdeCSF%s9u3j>sR3YujRNAwH&#U<*>W5OmMfBAxCW)M(0}~ za)AZjJzt7RUQ4lQ_)<94EWz>hOR)FnVpv2h#z4cxIDcUgcH1w)@6L;`KYbx?&J=SA z_ZDF5(FF+VzW`|^^O3$}K0;p2gT41WOd389PpZs?elkbTuXEvbYA#-lnTyFSb8y&p z4pPKC21U(ArQvMkoi~H;4l}IiXeMm%Stu}>h3QvjqRL?=Ms=A9x6~PEGM#}R*QY~c z?{tjpE;wHq)6jXwG%;smillv}u;^imcNtT0bjDPCzBxrOp{Jm*`xJakpN!$tCu7D9 z6D)Ex!Q8GUn2-v=eFqd*7@T)8XsIydCP<*qBnZ1;jCb3N!P*&PSCkP#CmJE6)eza6 z3=#8V5{{mlgn6STL8aCJC6)$Q{C*;?dr!pDArrx+6VP+<1gv~A9==ZFk>6)L>axe7 zVa7N}ua8Bf!&q$ZG!~=c#^Cy-F*u|c4V6u!g&z`qdL)`Gx9V~i19Jy}8@mqbkV8suE z{fuEad37j~#5`Q8(ojT(X~Rih8_TMPV8DtYIR9J=2c5N`)>{iP>4Tv@c`)41YvO^e zCMJ9zgx&swkgPojjim!|!+ap_-PXXh-5RJ-)<8_;0BjvI03&MpIQUE*U5~0G zsE0aKllx(hQ9qn*>5GBu`oij6ANU{dgTj7&(3II5=O_1u;#@DtHuXZpXEp5bR>Sy# zYIvI46Q`#2#MnzcQ2AdEO#jv$Wj@_8ShKre+;&6L^lnhO+!d2IcZJQjE^zkg0^dPh z;Fs4KF4H<=>qS+}uvLZH7ZqIeQi1mXF~^$S31=pE!n(5^aeqTcSiVVWS}?V)Sg9`j$c!=@wcVBb|ptP(bjRYHi#oCB(>~!l_mh|!q+tl?7>pJE$OIY}c4YvQtJOe(kYkBWk-*fNS zRps@A`}xj(*Da&ws)aw?Ah5 z#3NRo@sMRVJz$2Q&49(sW_n4V{9>&~(HhtD#{@H5P( z7 z>8!g|8auErm0b)>VMDT#nRR^<3%QfX=vxB2)GI+S#p2n$*>UWWbu8nDV^~N?G~1XL z#fCLUvTOGvnCs7QrX|*56pRgHMsq`1!Nw3a_((8w4LQZG-*U-%h?;5+5QboJ8d0%(`LnTl-DpT!`1Ak?Mmh!vYe^aTQJX$ zOW2#Ci`iU@g)G!{KD%6C&N|+k!}NR1X0xWwVoP?;U`t}Av6+ggO#jDZ)=AHVU0uak zjHfYMS!&3X9~rRBUK802!85zKYb;w8H=12MJ&MizsmrqTMl#jaI&8h?FqT!K&0asy zVk6ZCGfUG!?D$R%mKxokRkieE7rypkw{&{5d&|_=E!Q6GVtzMPbGr-6?9!R}G8MLE zOGh>}v;*s2*Nzq5`zM(^`M0DZ{JUh*$Ip_aMIR&`v))KHDZiAIT0fO2l|Pi2so#^h z?YSk9ow+7?rrRb_bH5-lyn9BpUagW{p^XyvceRqR`BjpXG`S>SNhXo5Es>N<3nW#& zawRo8GbJ_6sgmkpNs=n(I7#L8C`rYna7lTf@HzP+P*P>)C#g;FmNfr#mt0usDv@qF zEVA(5PLognEW870YkGgPuV zb)cm8+CGxIy}C&%Ta+d1|NS)HX8+na_SPNaU-Qlzd-EFO>AJHC)7(WgAYP5QJg;AyYaU)Y{Por_FHz%3>S6n(SWl@=G=cF?0 zX}8Me%ezRIwdqRh-RTW&esJ zWM0c+WN$vi%M4B>%T`TDm#sdZB{SZYC;QN?NamAMD*HQ+%N9Q`mmTq{mbvNF%WUhK zWJ5M8WMzNO%5-8b%Iw({S>ToHvJ;NCWmY}!%an5;$vn-U$?iOUDeLO?R@QUyN7+mM zMHaQs}}GR~x4CQKP2u`Jblq#g#L; zk+&IFvY5m32AT_2**u<~w}7`lxQMgqOZd{x7JS~NWn3p_1;1~*iaU?7J;cF__ z@<`A1T(-!XOZ#o&VRvl!3gNKn)6Ok?x8XK^_Sbgax!#WJ_}cTq77qMN|2;hCt|On8 zwvQLu9pFj^hxpjxkcRFx0p+}mGDb*O8GUNGTzu;%46?K`PwQO zZy(Ef@L}RzR?E4aVL319Rly&>t>C{;SMuMPRs6AMH7~WP;daw%c^Az(9`wDA|81-1 z%ZeI!U_c`;+TO&=XE*blp)K6~PYa)Mqm@4?Rq#DQr};y>Gu&kES$=5PIUf7xobaoB zo=22i;P!zR`KaxexMJ32zD%o)SAB2eYL~BY^SrD4KksXN%ckpm(c~Lkqu))gczcs? zY`Mj6Cf(*ZdWSo$xXV+=-s6Rx?(?L3_xS<-fR8)%ke}ZEh%cP^m=_Hc>&6AMZN%xP z+%V-C*FE~2|6TTi%k*FJ742W~wi~awr06wwKJkX9TfgPS#_xDy_xF6yLZ`D?Gq0${md18zwj3?h17iIXTrbnpq<~jL@?Z{`v2s5Z+`N?HHJUoU7hMkTMV5bi(do^-Y24Y~bj+|1RmSw8SMB?Xz1V%J*Tufnh4rHk@%^Z& zqdNKQR40?m>U0zRX=`GCdemtEEwUd#sh0=POK8yGL=7_SB$#hI2h#jY1IdsLqHghn z=wb&=^4zXTBhG75iQ!-xA3c~N{|%d?YM9opD;1Z_Mtf)?H$K_jM*q*o~; zDNaR~rr7CH^Eq8IHPEA^Fg^P4U601D8%3+CN70U9`ef&+PphBn(}V@1>2uy_N>dv{ zGxv@m#g#E+%EnTB^jLcNdn^sL9!Ill$IL-Mi;-?V}T5C*x<;H?f zA|ZVz39Y#;p?y;r9gbzR?Kh)Y>mb-9AlV=jT6)xkuG}=CStgSyHfl26`#zbvTTb~u zhR!-JiYAQXC?;5_SSVr#q9DS}Pf!FzkrWF-kW%STQbfAD>yFMlJK*-QySv5i77G<$ zv?a+@CI zd9>Pl9wnZhM+Fm%DJ#L4f}R-D93vC@DlwtLUnVqar77jMn9_%V^GP>oK6zZ6Pf=6N zC_2TAe4d+;k?{ihQ?Y>Re=VR{_6uqIo`p1EfH^t&nN!{wbJ{+B5w*lFqWb%bXfv~* zxrN+bsojD$Sz6NfMoV(+YDG=XR&-ymqF;losY{?WwV$=7)8lO@CB}wkwAs+%S+>M- zxJ}d>TY6@?mboR-kFflFz=-%_eP$=P%2%Sb6= z8L3@eMuVp=r;hmLbnxDC@}ISWx@WDR#1|{*-5h&Du{{NTw5QAkD=DvXC2jt`k`~)I zkW!-qZT;gwddnTDVXGtkQCvj^t5%WQ?p53t*@@g-oybt`M1T4^Q^Oi((%bJ$TU1t4 zFR#^Pb!at(4R)av9~X)_;zG_tTxp!2D_uJ3O0GlQ=&qj|v14u&J=C3Ke(rSOs5`X` z@t{Iq4{|u-LETi>P_g$K>UU@j`3+o4JJ+qHHqNPg+mGA3xv!%Gt?MXS$&)6o_N2YL zJZW-wFN#~~MMt)H(Tl%c^vTYf9@l$Q>kn^QZ{b6ODtxG{-G{oH_>z60FJ-^-{SyMIt#=TWI|h-_mLNL& zUl577onMAzJsp3)o*o-+pr@G|=Lutaw zP*QCQr8ga+R69S6j0(c&$dfRds2xs0(cx5iA)I!Nh@d8~2#RlwAmeTu>ABrT@~zrP zx885039}<qFOy>lTVpBuYAo&j9!vMt z;;3U@94V}eqd)1Kg|{P)&fkb5NoO3nsK?VF(|97!cv_qpPj`04(~_I(+s!1ee zNu=hKM4Mxh=xS{e4LOxWR&SChxKA?YASP4c63)xxcBdOllW7J2FhA~LGCfsDp}cV^ zq_ZG}j&nOzvy2oHwx!U>D=D<$3qK#6O6~foG=$r=&e)X7KgOn#?%`C<97yGMUunFp zrBTv?G}84-qibnt9oHkosQm0CxP47 zRt?LbaAc5?V+Q?<%%ECv1{og6pwss=xIKFYZ6B3MN^>*Gesv}lMrYEo%1nBED3jVB zX41#Mne;%NGxz3ZQP%1#vX0K8zZF?jeK3o39%Rv;-&r(aWHzN5WOG(vHmOHulU-Rh zXR%~c+U;!0`kqa3syVc7Rt^~~%^`&iIn1rW)eki1&y^BabzK9mi zE22}YibyZKhzjzH=*hMsQa@Wnmd}gG^Is8#j3}l+y<&1)Tuget#q=+!n5ep#-1isL zubagb|A`-!O2}YWLY0*A zyppUtE2(S0Dry{CMNCvhWLZU1T&sAWSw%Net7t$)6&dWRqNOLRXw}^+vind)`dz9? zNwu0TOs=LV!)j7nTuoAsYMKyUO}XjS^tPg!X6~vcuM^djb-S8s-d0oHAI>uzP(#7v zYRFi>hW?n>P}3@Y9#BJPVryt_K@HV4)X;Z%4T;XxkmvmxO8QvC`7E`RHL#Y#$Jdgr zel4k**U~wMTJra;rGHVi6q8*`AF67}VplB{9jm2F*K6tf^IGcjy_QsZ)={@%b@XC# z9qmOOZQu+B^;LBw_|}ne6hCIx(Wr_#TEDH1_8hFEXBX?J%fmYA_py$8{jH-fee3D$ zsCvrLswa~<_4M4To8o!&xo+Z&hxB^tR$fmA(t2_e>M7)OJ%!z>r*$vt$?RJ_ zsVH(rgh~U2Xf%-Wj0Vb`(?E(=4Yby=f%bYe(C4rQ8kN*QqJjo8s%ap-9St=6U<187 z*FanEG?3%V2KxTBfwL0a~T)=Hu6nJjWi&s zk#6NRQd(srP2JK+ByS|q3C^&%(n$Z^ZzR(oyuyWf2B<{vA&56cJQ$KnrOz!ChB*kiQ3wl zsOUu#&H2NyM@y(pS*-VdEGyO1WraxBA^l3#iU2|=w8lPrb z9nwrn(alts(o9qHnz}&|J#7#8TS7QcBsbQnK}u(%(SN z4hfgi#26`6CQGSXwv-%-q*N}E(z!Y*y_QKiS4m3m1u0!WETyJXQu4Vdr4cvybK9ge z|A~|iy^_*|k5Y>KCZ&VFr1ViiMtytAXn0>44H_h)|Axuvs=ADd#>;5IR2jXPA)^g? zGI~E-M$6~PXp5PQ+AUWT79FD<>J+wvtPJqDQ%%pE;23`xjf)< zpUW98wOo9-jOKEjhh4_yI=|P5OF4hmQ~umxTnza;Z1}ru_&W{wyNB>NJo+c2Vjid2 zJZ=~N z0~uNIJd)m#QO8XgP3L*Hoadnr&r5%vr_MZY4S62-;(2}ipp1NZ-gn_;khDieKX%B- zo|jF1vyAJqJP&!9X;kpCUA*q5^EzzE>+(Hbr@eXIe!=UwEwAfMyw1PpbzkF%luSrUOLlW! z>lPliUP?nNr1XflnIhhHW~Xp&D{o8I5xkuRNokn3lsw#|Byo_^aXTs9S;U`h%)>xR zTXlGwnIa{4TJYo={Sc{>+4 zLv}|qO>S(aJCbG!=WL&D>CF@q+f1*+n#st&nUXx3i5!~go^3O|Gi#=|2E6akX{Ozi znrYLhX3`zRd9=Nn$^UN?efru&Zf~0C$V1+T-Du+6@+Jy7)I^zkny8?;iBc&YoxmNMv8vM z`{vt?)a865H63cCIlCL_NCW2yl{Hd9W+Od~X(Wx{MzUJh$lWV7Qjk?6c^Ng5%}mZ7 zn$Souhc;5F67SRhG|-v$2F{CUpj|f_sL$yJT0sqzwS|u#6%BMYr-3fUHPGSU2CC+p z6NBsIPz8>S^<{dj6bxx_*+6WvyJA_<3nP?M$nu zsK|N}@p0|Rs(RYU$GI+iybI^!-aS74&FEK8>-l(C%g4pze0;omsg5oms-pwj>!_r% zj@+{AXhd`!9rLdv2j@C^WK~DY4Egw~S;yxHb!4SfM^T-eP5io+WVdU1pIS==EwvO- z&o|x{)Y6x@S}G5!?Mt!E8sbX3!_r_~g3xtcN#a9u=NP0_{G zMLms*R_^#oohYUy<)iz z7Gua+Oq{=DIk1w3{i&dvuPP|+S_O?dSV7XJ3L2kZLD^9i^k!WJ>DqCYv_SDNf;L%M_tLnJhHwS;yp9MclvC90a%w+ZPD`81sVTRd-bR#@ zx?4FJFXBum9nQ!e&UM}{87W>ZqfSTWYVeCfx_h>evbPt~ ztb#&17hXtqPK9)KULnn#P)HfQ3+d*E0_uOQfDBsse5bsC)K zhekGVN#Wcn?;QGUk;A$5Ih4^ahfF?Y)4QwLl(;9G`WIzWMp!m=+H=l3vPn9E|My=O zsq=ZL>7gugsLCR@*er5%%OW$AEE+Q|i`o^lX#4X_aygkvT^cj_d_I%ZJTobOVJ7`I zDU(+8%B0%Y8T9x}2KAR_kak)InR;iC`JxP(J0*iA_Rb)MH|ccYOgg1CrxQ}ssm(K; z{1>Lvmx<}*)gzs*zDT2KC(|gRp3lV-(&&|Y8ud0wqfukhXq-YCjeL|!Jr1SPQ%NfA z+>}b|9aCu>Qt8alR9gK#g(^9BYDTT(oNhX8S$zzEVG=W}^=G?2_@ihEyJXN&B zlWKlE#RPEHl|?*hPKqag#dxZF#MfB%$I*+DIQkmQ#Ws#!X>$Hm&p2v)7E2or$C8dX zmY#*hQtFae(wH7gTYAUR(sMDS7Z*c+L@~7GV>Hcch^Bq3qDgIFG`XMIOu5mUseTss zf$%np^P{84Y(*4(RgR*RqnkJ@dlR`&+eES_k#wgxl0H~Q(i??HI^VL93Vk-x{Lve! z?Ro^QOpTxeh7r{3b2!az2&bhE;k2x8I2jxbBc;$VIy^ayobHFx^S_GfJ%?Rgt0>&tpRCtXi}R;(wL-s`FF{vi6~ z7exEjgDBuiAoY$9q)gpF`tdw~EQ$jtabW;8{q(2ZQh#c2^ru*5e=!|0Xb#(gXS_(>BOI>x>(&i^?=t<5Rnm%_8t$pvoc|{(SZSFy_ z-`#0dy*p_vai>fF+-Ti4H+tphMoW6RQDciMJ#%*@YIEk{bY z>p));9mrDKfwJ$dqyxz->88#~&P=walPUI8G1H!09;~3gseI(0xq>D=SWZPL%jtv8 za?-xPj8-Qvqj2qIw5e?=`6MnS)9Fj8*PSIK#4VwvnoFqdh8atB5QXm3RkkC%-xoh z?Py6+T`g(3%!1UGSkT4JMdVYnh`yQg<0o^vSYpoGoH?y{xsWzzEu`F8T<$HPsQ3l6 ze98hEam9=-gz>fZQD)R}d_MX4%%`gZxL+5!DY-bCQo5ok)ksaK(bj}YI*ch)Y)tcv zjj8kHJgUr`N7^&z(azgOG-|UEg^x9&L#OA`SHHQWI&dzHm(QUwPIE}P%N%;vU`SF6 zLvm_2px*@sl+FyO$Aj4v6gQjBOqfl5&w=IzfZPUxf?65*J2L)lNJKidBI+~~(e^jo z&rOy-J=4}Fj~jY)EnJWLxzMAHhi1_pw^?+r+bsIrq)Xo|bm{GfnRFp{CROOpB&Sh@)*)@$?y6106t!u6!weD@&Y<=;(@8aRI%n}tC#@@5q_IJZ6bEb3jh1Ot zWIv6}IyLDQYVqi zlu0!8+(dfeGm-L?C(^X76G(0~fpkBNr^>AH^h;|zEx0s};seIfj(+3l!uGM$W;2#< ze;h-nvd2)v^f452NrU@7(4ZH6H7I%8Xc}fcn#Awbseh(A1#7C)*>j_)zt1RI*n1QO zHjkvVg(Iopr5fdMUq?~n)yVPq2%6$Pg5D~OAW7A5GMYP_ZrmS6t2PazYr}_;p)iy) zR)^B_Z$oHo!4O)aGlW7et5T}JDrG6FQlfM)1uPs)i(U+(Aqj)%mc}4TIW&+ood(j; zP8H6xQ=#LtR7m^U0Llp*K#%(jpz*T)2{40xy@Cghi$#dHoQ0O8PuDUcJ|^t@m`eox+fh=>`5;* zdeYwmJ*c-s59-;`ojP;7)1ztKNjTGulGb!1Glg#SORPw>B1M{ey(?V`=t_1eT=PpPy4@)(?b|8* zGWjWFMEnrCZ~rcMJ?ju!hII(`Os|bHxs5zYt8w?;$Yr@0!t3vjetAggzD?)4HWno6^ zC87A$Md9tRi^4RE3*6t^c_DJ^IU)JMSs||9S;5DMe>V?0E%dD6-_oz16jpaVDSVoF zLJ0CWE<7$cCK#PKDr9~;BAgw6MCe#{SWrniB#dl1C=7XVKu}OUAhgZjFVu(Z6IR#r zC4?J-P@^aan!0kK!M#=JpWh<*9NjCleA**?9=%6Ux7{rmMDG$Tw(S%a-QOWVd554j zd%N(#Yn!mEWUJtLYKzdfLnbtilL^{Oq{7zNW?}e_CSl`)M&X=tqtI`5gD~H#Uhpff z6OvEV3I&`;R-jQMB-vC8K2cSIv8+<)bEiT$+r2`F)RhS8ZepP&yIe3jP$nFFQz}d! zS}GLGFA?6YFBVu;kq~jAP}tg8Al#T(AbeVyFLa5^6MAgV75=s52p@Xp2$yGN3yp4B z!iMZjVdj3m_u^H$P%t=Mm}#6Qoc2!@?8;MwtEZBM1z(edouiY40al5^x`+f}cYVC@ z^-7$e`6pIzm=Y^=%Ay4=#m$1vs!f8^o{fUNa)e;y5he`YA0pft7%ZgvtQRI73l#Pa z4-mB1`w3-de1tEfy}6;8rx18)txz;!jUbJ37q(w_6>6ut2+48Ig5#Z4g8B?c;d;_a zA>#fDp}+2Op*U@+(C@LG5TUDHOgLA#9#ITv%N&RM3B| zD)i(`v&(q{g`AfIgoOtEg`YWnh1%!J!h9$RkF$CSAy0bK8a|YTD zNo&cHoL0NHk?DuD@|Wntr2av3~NQI{l%l zyYyH39@1ZM^t}F)A$RpB`MuO1di1OQopc4!&sjZ1Zy)v*?MNLgGMlL;+H!A<=xO3) z(QB<4q64?|M5|*AMVBU-ih5sJBvOf3EP6KDUKD%US@bGkjcCXaUs1n<>qQqmB1B7+ zVnnug;zcVplSQV{X`%sFGew8S<%(>=3Pgv`6pIF^m5WULD@4lP4y^O`;Qf zWg@#C+eHWMcZqsP_lmTB$wfMr`$Z~}L!wLXkBU6!oD|*9IwP9)@Vv-=`el(*^fi&; zrJJITQFldY{`W;42Of!L_jx8-x$33JM)pQDvh%&@=)zB;ImKT^dC$L#_Rahy+86sr zWbUcJM)m8;9_&?QDXY3OwXQu`d2=t;)mDiu?NDYp;=XK;aesF7)c_`B4P+&{gPF@+ zRn|XdC~F=+oJ~15g5?E{WKRaGv*G(jGq{XlM%~7-Y0~kmi_JuK;L9ZDTr!2dFwkU6 zA5UXViPPDW$=a;TMIF{-y)OGSSdSeR^jU}#V|^87v-COx_F=&sru%j-bIzK_{IpHj z>g%R#R+t(4Fl-@9+i%W#ueM;m3RY}qtu?zd-=QWcTcx*q1NP>}`PyJ2uOWMc#C0gTmHu7TY@ZvelD~w)bYDA3khGi684B3SbAh zPu?YA>)9#QU^cuZgjp;LV-8=#*~0vdY@p62w*PVzGYN=hOMAq!kejhAp+1hq1;;ag zlLWR&DPet1Rj`2kO16J>75g@|nhpO^%_j3b#$$78S+7-f?9Rk` zR`8{s;ZOrRm)6M4mN&628qMs#cg;*+E@h7KGUjc)g}D#g%FLc^WdpZwV`n3_GjG!! z>}%hh%=6ApcA|C{Q}*A@3`Bd_vMzg>{rSDjq^N}rb!lZcCd*mm7dcZpAh5V3Voz=M zG0kE7nbVW~EL3)Yg$EyG?uLihtnP=|$BTzqZt)Q|!sRH-oOF!6Y(K^(3CEdj>khLEzst57 zwz2nJ?lG0q_n2DdeWqmhfIU=w$coz@vRPG+SS$CHJ#z9B=K1~!E8fZXw1+%nwd^^I z{{5WIJ@SG*P2e22g|FBxrPplYrPs_M?+puD_Llh$eaFn(-Z7<$_iVe%2c|#vBdg&& zw~vkOY_#_$rmOjxP5JPdDem~f4h4N>&NIKUhhM)ji^+4l>9`L@}1EaKi z;%IhHEc?(Cw=H|YLe>l0diBP?b-iJHvNwXqDWNb<2@TvQdgB~r6p57)+Nlgv`#$K> z(g)iI_Jw6oU);Xf7fUqz;XrCXsJ`rn)u#PXRNWs3{`ALH#{sw{AAqxiRj_5f3Zl4e zg`ws^yh|B~)aL^+*mw}KD+b|b=OEaw7>wfGgK@5(Dn9zC;@>GQV~5~l^bnkH8-il} zp|H&#ititWB6HC&^luo3IECSOvT8VH$cMvs;0P4?kHFS5Bd~j%8XBV2kbGAS%V&+m zz?_jd@Ma{I%^!uf%2BZH9EI&mxexkn>JarB4LA4E2tP0yn}%q>FGvFx=QJ>6{1{x` zJO-h+$Do(aSfr(o#rJ1pVK-+SN{h$gLi;#;G#`)OHRJK)*LZFhJpp^SPC#h)i5Rzf zA`Z1qgjxSd*ylM3BaTdh=dj7B37U-4XC|XfV+!s@Ou>mOQy`f<6)v$;G2qTrY@MMA zy%bGIA8JBLe;VwwrXlzFG_)9K;Z(jBj=#~u)_KzrTQVKSAE)EP{253R&p_`lGr(D% zxL&D^5gppFw$y=7jSfP7=)l{0CKlDrglgwZT(HqaV7)H>a9g1;+gWIPERpZe%$EkbLJ2#dapaN2@FyNZFM32|&8@JC&BLR>d6;%=9y|scBXONEas+lKGqsGar^PgGIU-bnls=`?Li(8npoHE-paFsD<7GhX`b6C2V!)u2* z0{)r9*>(~1sutnL$3>`_YXQA%3+#GefgxI!SQBLl$$3j07-5AI-d1Q8tdQH&8cSDL z<6pfs3cp%I#l!~Txi&cY&<4M!*+OlTEykU-#o(cf@qW!>Y~Q^Y_6l}*V{Hcyu^mpm zw&OOaOJJI?1gozs;he^$u=ZIB4f#^sS6qge#mk^v!H;j2agNGzjEY~5MVFStX~YWH zuUi4^UV(0ZSDacm`?_jSO#l@4gDbHJ{T4hV!J1}8eA z`Vv15Uxgr#RoK0474H97g%8F~c$wjZlQ*4^IocWUcII~b&an9HjBRGC@gsXRCf`|& zd1G8K*T)6pxqaZL|6EW%-xYJSTyf~8D<-PDA!MB!q}$za^1B;O&vnPnWOu|~a)3S&Qor)*^8HI(+e22ghCOApNlp z59fH|XM!g>&wAob-+lKq%(rsU8jr7BMS3k}`@Pq8NAF8JLV`Gp%u-6|CfB3`OAOLrx12Fwq0KB^g zBF#Jy*%^V@cqtHzRD$q#X%KJgK^S&72%FW`InhFC6V5;mF+^jv?Q|5vLo0%Nrt~xH|$PK1X1P_D1{&*oghxHe${Djrcq@ z67JrS5Sk+KS(L zr+6HTh(};iJo@d9N9Cn>XuOL@LC*yI9G3vwc?l?SO2Czf1pHUX?TL3KV8TT%ZxS%1 zdm?^nB;vebBJx%yVqr)k+H(?-x+M{VPA4MgX(E3ANyMt*N!T(g3GZ!_Fxoc>Cdo-y zS(Aj-+@^WO?Iaj|Ny6~H$#^j-88s%!uyszx$M9st=j15Cl zAk|L6HH#FyTf=Rpqf_vuGzAZLr{KT^ZcF_#1(ph__&q!oRl2E|X`PDJb*a#dO+{W= zDqinSh0cXk_`FC(;ons37@CIt+G!9LrJ>P14T+o5u&gi*s@u|V>SP+c9;V^<_cX+E zTknoZ>2REvj$JF$(HWEuoizTtCLJM^j_9lDhb^@Xg6h`_D}}r6l7rKhYZdb&BRr;Onjf2iM|$@803}-<%mpt&CbO6hD;P5$b`-H zO#FP4i2{Wzj2_B8(rRU)*ZeH3bUGqyYzN!TJTT39K5==T(f?n54aOV-{NxUxs_o<8*-AfTXuoR!wOW~qfiUXoj zUJpw#e{m^-oJx`5Rf^(}Qsl;#A~LfS%SuZzs=gFAca&oD{!*x(E`{V;DF!|)MZ}v@ zT>4guK?-FsS1yC!kTS%KDMS3UGK7lCU~f`}$<}3fV_$}H_cF}(FT>ez9yY!Vt(lzh zSW*V}nle;wDZ{yzGQ8y6jL&Dw@a}pUZayf(j#p&}|6B&`|H^Q?TR8&ym7`;5Ief>I zb9PiYCd?{__ndM_7L?<#Z8@&4EXQ@Xa-8ttY{=kpghp{bM^ZVSWtAhYxE%ee%8}7j zjvqV9u~aBWA;E`r5+wUbI3JlG*Gup* zM1uJd5~OdE;Bd4A&*CKbk;vbdBEh?K2`*+yP?0NvbAbeXizV1n%Ht-MptXX>tD5sw zYWX|sB~WaVV473{vn>)>Z{yG0A;HvL5-9B9?3KL|Y;2Walpw)Q;_=?kJuATLQ+h^Lg3K<8d>T zU@+tC8(j&sXGqXERRX1noS8aCg4&The}_u&b0ELgk3Xk3&sRmBuD@bz>lDN9n;2^C zygt4W!~D6J>*`|6yemfbburp5iZSGj7{*wXI^f?BwA%n^mJ;jMo)nRG092 zo+rk`bTQT>@_ROmF)v(!JkEP%Vre$P>$Ej`O%91HsyW7>~gHtDaXjk zJiI!;PnF-V%%9VhKksK52DEdA?Ta#`-z&rRt7SNTx(ufemSO*%GE_;+5L{ITQBfJ* zrk5crwhS6!WvKHl!w|PJY+O->^Oj}kYg~qT`n+${EJKJ!8NyV{;HgxGMgK~n#{1j* zuS=2rpcFHBKYZj=DNK03yodMCgLyx_miO0kMM#c)+GMq~eCJWwb`_b){l`K$=z zZxmtFNzNf|EyBabA~cm0!7a52${UN&;9Uf5$0BU8DB>)OB5cqs!XdRH{HI)m$-fI> z_P&twq6)F(LLq1G6hdQbA=<@U56CEl>!w0<@hwDwVMFGCtC_v}&0<`buyrh}}?8q%Z1lK)uxDIlU>mp%XC+RY~0GlTl;LVT%Ea=X8 zN?-GF{YgH$UdhMUL;0AwH6Oa=`IwNJk6vN+mZ^YBo!wTQgPKM6<6$1ag?Q^esn4#dZfbWLkfOgPeI+j z6d2W{;8IEoYy(noY*`8>8l+(Jm=v7qnS!n#IqUpJGHmuG!=*Zzv-6YT;Fk>JCCN}@ z$#^v?84ZfbSn(zaotKi3y*CM}pv^4-`U^OBYH9*b z_T%%%FY!>n9S{Be@i4B6hfzX2W_ZS9pk+K>PmjmWft&^ZJr2X#;vgK1gJn$|t|rD| zkyjk{TE=1Ej5xRtj6-8bEbiZlMfU@-7*iFC8S$~uS<9L8=CSCb8H<;FW3lc@3|=Y%~s=MI%)y8luaaaj{@C%vWxPbR?f|KaPTWLlkCuM`4;) z6#9JLgzI}ZAvR(Y1{rQb=D$e1KNiV3N0D$@6p0OeBH?#=Bdqc_V$kx9I5Ko2mbFFT z66fmAaEUSz1cYIVb{MihhoWtFDEjhshe>*& znEX8i1LPri6dr;i76RSQV8|&L<069*Hai$Qe{I0EeH(Buas$rK=4%_j*28_@di081 z53cb;xibh}LJ+ow2jPx>5Z-qL;?>?joD1fRtC@jV_&ESib_Bp9AOIJp1wj3sKkTLc zi16e-2qySr!!tjg?|$gx;)hngHnXtJ7e`8bF=n|hU%&N*4yVqn z#n{BP+(*b-6#QBPY0DZk2dzP_CSQYk=>fGGzAm+j`(fbgREMv)V^oGa=Q_Hh=${+5 zlN)vgyP-nM4Z*KmF|)=MZH}&-kLQY)7hPbP;)2q7F1XUkeLw78jsJXCb9VV^Tzue+ zqGD$(uyw|hp3Yc%#0fVdoG?wt2?1|bp}b}lb~xdsYQ>$(%@*S2!um4gUKd}UJBA1|M#u9vbZilJmcCfXzgG)C% ztfIv*4p@vq;}+w}ZCgZS+Ctgb7U>-}_$IZ1#cCU*543^&lr=6zTI1SuYaDrM1#z(z z+$^jx@UJCy?6L$~Yl&^cEYa_R1sr26kU!G`tuGegROuodwOj=0Uvq5UWsW&(%<+1N zIbzQ)ME9tL2%Wx=uVpU4h=K*MHCuq7A7+S_njvD98CLf-gU;dk_!KlBlCkqK>xL<~ zksUNerbv5jf*WNfP_{II_HSbtZ!?C`YGX|8Z;UQS=HXP(Jl;;`VaPQj)WjQMgsu@{ zp3TLzg1Hzte=dx^&4FY69PSHZ4pwxV1Gd)?z1A4wH`U zjUC#v@%9lgI0w+23uu2}7$;#+v}Cx}DMEI$2+UrDE8Rs{u~#4G-SwfRqL0mo^>Dyn z53kkqpm=T;`b5k^w~4dx_PQ?j`Jju~8M@GUFcVkOXJR#*iMAIyFe}hO)jS=%`k)PU zu{KQk`o4X~3^>-#fR*hGX#Jj!-_6spfBAHHb)AmxJG79yN()N8v=Fj)8ZNp{gKFPt zup&)tSgVOt6-{IvoQgQ_saUJZ{nQ+tf?s}9uyxoJ*qoTm*WM??Rc$h^oSFpf4U-T% zY7!2gnTYn_iRd?aB1WB?fRUjSprkPYZ_bT}5Xyb!XpG0i^W$(bbR3pxjKlSFV__OP z7ImY?;_KNl&I80Y^e?VP^|i18Oxusv7>Q`J;Zc5DDTy$8TbWdQPo{y6K>A76U(NB`~p zFlu=}sQ>QE*{pr>b5UPh{nQ7Nl0I;p+Xu=ol(9WSnd=V9xOhhii(-@@Oi;q`3%wDr zp*LEF^~R?|y`a9f7mSp9Vd<`(aJ1*&l?uPS8 z-QcR(4R5a~VqKUbZmTK6;AmGAtn144`>s&m)dfpdbiu~|6i`^LfI2e;Sl#@`W{>{I zRJ{MPE4%-&@ZY~#j|IP3bk2Y5;hkS>(%4_j!MBqI@BPWb|NLMc3w|(`^PT;;-N7m~ zI@k>FZ%n%DE9?8~3v)F2!gA9;bI#T$wr|8Iw%xs*Wy(IXrC+!otJxn|b=-S4@$5TR zJm4MsZ2y+&RlQ+rU%qBBTCZ6`$SW4S|0T2T`jQP?^nxABdCr_~J!8*CK4Z%~p0Zui zC#voGBTXd7jvv07n>(`mrub|+#%L_;vnS^)Bv8Y8N~0yOTL@ z+rgfF+|E{MZ)eBXZ)2nOY-OI`wy-+AE$m8|jD6(a^8fy9X8+L4zC<>$Tl*W?*53^* zWKIK{9$nAc4%M-Ue|%5CyjqqKTf_bxsb=fCRI?+-Rjf~ZC9^nI!8UcRVAUoPCXW}h zqsPkG!LH?OyGa?#i!WuK$4Zz^*AmulT+FKCirD<4e2;=cA@iD7z+T1VvsH)l*zv!) zOnq)H3)q~)b|1)Qe6K$nW{}1Bq8ziO4Ce4NopE+4v*uhf{gzZV_*)8lH8X|nSf9-N zb|$gW?TPHPRw7&Dm%x6=;#usQIQDl^9NVximeHaZw(-*`}2%n8WpDY_iQ#_WFz+D>GfpW*@R)7nn6$ zyvLHA)UsgHn$20#*oEw}#EkVBI-eQjnJ_11V-}QT#KQi~VL=-WnbX(V%+MdK|0@x@ z<*Lte+h#GNWxDJM-v<-1P@8oq>!K^qu834_TohTJ zI49b?_q0e_e?oMr@Tlm0;vrG@(EXxeYyYR{tmC43x-brkf}$c~pn!seC@P@9-XkE0 z2r5$2AdP@@cWltHYj^%c>=t$&ySv4}?(S~idH;Am%U$lyoI5?Ud%lN>%mP|OmJ@b} zM%!)`jW*pRvh1^7WZtP+Wboxbk=BzHqQ7lRMX!!75?$LhUv!{pj%e-NnId^bqbMh* zP81qfEpqm+5Sh73MEw&>M9Q7GYE(}W#XpM`jpx6&GFclW>Q?P5`Wf#bdgnGl z^xDix^nr)1`}cH|sNadE2qk&b0ND-q_X~^1xOb)$~>=WUYfgDq4$%Ep4rdS=Z{ZcvtJ;O9xwDYMg65;?&+c zCGSaV#ikFfi4Xs@{?_cITx6!H)EuX+^bPB$oRMpw3{V&=b=D76t~zX~RK0DhwEAMN zwCv%c{9`szxyZ>&*&*0pDP)8y$J9hAHCDzeS1D7J9WP`lt)3PrP5+cBKh#Qxd%9t-Jm4*LSD>J*SRZi5|p!}!5 zSvk*an^Mzir!taSm9t!+T;;J>sqjCb3=2Q3>==JcS(|o}|Az34(!Bh<(xv*6Qlw~8 zsxP>%+_C(oQfR)TT(J4R^3twH%Ex=2DlZ;>p`3r}wQ}^ucghXdJ}ST8{-QK^^j$gN z#V_UCw||wMKUG-w(hdy&Ix=r*Cw5UyojFu%u-RR@vdi_F?05I>tmn)gtVge&?CTtD zcA}3ClPu`XO#1g_+ZOj@X8Qe^Y}o*IYM?&*zQTa@FdD?V|7XZP4Ia!6uQq1+CZ??S z8Z)-g)SRg`4`qR77EIARoNX~1$#ykcvXy4mEUS4GvoNz^r`FiADW)RU(j>5sCS#ar zwLSA5?8rPA5a~Rv0%g8LBEnHc^ zt`8_;pXL^`w>?VPiJCIzq$*}z_lwz)A_+?tNm+-_QdYf9#(t$#u<)UkY|E2M_GVQT z8xT>=YzNe^vDa#t-RxSX=T*nvcByAukJYnqNdx=g(8y%p8`;mDau$)UVB3bxWbdBL zWO}P+F`H?#*_eKF*oez>ShvQxtlfPco85s=cKhbD)11dPY1Bft>-9p`ZS5lF9le;9 z>n&kRt}bD#6-(KINy}JX$K}jr-*WaNZv|UowUP~cxst73y^3js|Hnf5u4Z#DtY&*^ zn%KEss5`%oE$#=<@CCfZYye`*sJLw`M21J8c)!?%l#hoM~aBq^-<|loY?PWo4_Ojg7`&etLfTQm%e`AnI_oyG8GnbJ`Fw{> zY`)9Z2i;@uH10FK-S?SA@&jh5|B(GS`;aM1AFw;TbyFg8?EA)fA!gy0x=&5L;gTE%) z*J@(LFHHn^cf-&BxLzU+aEj#{`kQww(=Y2mD0 zPpq%)iQL;gVP&a}n-Xngw`t>-SubQ2_QH)by)a^+4l*-zu==nLj`r@2w)oz-%zEQs z*FIP>tqbv#RKl+;^)>6EerZV?L|MhjL}6}y)J5R>tgnZ{-`bM zkF*Q@G0t!RI%E#Ojza_B-AfO*V)Wp@QxAJO>O`vSmE^!D-8Q<1;0twNSw=c&l>*2MqzmFD7-%~3M;yf1_g}9!4;!n{c<$qHa56k zW&_PrHn7mKg>ASkEY{kh`v+UJkFmq73Om@Gx5JTsA~-~guyTWl^8iG!a1`KEB_R5O zfN))cYcz4+Wy0l;ghKl<(5x7PnzLi@zPCMG!tGJM#vW_m*kiY?1C*r>SaHk&ncW>R zGQbg6mpUThG515W7>mi-W3goSSX@_i;>;T-bf4)24erDC+Q1omw-Zhe&P_yb?Mdhy zFbVe;PQn__w3}+kd3Ldrk+^m;F1?%#U?aoQ96yLsW4mlp=l@`CjhFAVGBjjlo7Xj|xws+-<0()Yoda35%|@Im~2 zAFMX=#ir^N)S8*>oy$40^$QvvnCL$9|xk@I0&<1f)KYV2!rki;qbs< zObHLh{w2ZCy%~&9-4MtELojbH_q)6tg0!BYu=5JV)A~@9o#K4F&S8jk4a0Ux7@qA9 zgWB&fXwWo#&Ygx6JElSUZW>I6hhuYMI0mi>N8W>Qv~d5=+aVEnF)splFGXN?_ehjZ ziiCM(Bycbi*1sb$OB99cSyAY;B?<#xM4^vKG`>YdBI0K`1W#GcI49?!m#BQ%ls7o_>kgiPlKF@@g9``x+%EEVX z7MgZu!R~1mw&-S~t4B7blx8DqYc|RrWFuWC2NNdbKqWs1E7#?~^kxobYUbjeLoRgE zaxr{GE{0vqMR(Oa?t7aDX-pn;ILoi@NFJVi%7dv%J|_Ef|LBT*xa`VDpU3$)r&EBW z@dbF5RRG`r3b5o-0nVrt;;v;Ou16GNS7RY^_ZC9$RUw-D7jbS?5oY8SVO3KR_FXQ* zewAW0jVwmmv|{Mj6=RFC7^Y8(A?{UzgH9!QoKk|U;j>T-&&~Y*hsDspF2=i8V(e6raPF!E+QTH+I939Y zp9C!l5}1@oP&HG6_9h7iLV|#E67Eke!NM;RG7gqiUFa;w;1tHSpK2L4aWm+%0QhF}4Q(rqtkASPe>&YG6`WgZ(F?+ z4h7Ha;QyI_MujsbH0z=0#~BmG^*A(=b0)^rqjf?(2Kd$^eOf(lgY|fwRgd0f^%zlG z57FFuSg)vu!G?PL+{Jl~2kKFIx*oPy>v8p7J>p;1fi4Z`-MaxH0~;{Y zyaCEl4Y=UYfOfYAT=8kZzR(6Nifcf8S_6y=8gNGB4AUdve++Z(W9 zH)lQ`;rE4QdIREmo9Lt}}(esTQSs&y$_C*ejpK>_-l_R=?0{NX4DDA314riN8>!pBA zUj_d3S3qf?K(vtpzfBaVF;_s1^G`A@6}T`;fq`}kgp&e|4hn2`Qs97#0tY83uydjU z^F0(u@>0OkSAoZzuUQwUfKiA7>%;hK1iy|_aJGX2Bc>~mn4rL1&R5x%tiZlh1$L+N z`!acc*$M>ZDxjOMz^MYBUJ8MF^$Nr_DA1u%ftg%das|q`?r~Wu_%m@eah>40#dVMCD%T#aSzIAp z+FZN&{eE0`c^V;HM|qk?TxmT0O+25QJkOsz@2*^$+>YPern}s>?J~|3{lA^u-V5al zOy~B$E>R$sKhK#$1x)z!rR6EGE=PeYoJIOBgMT)Sr^CWIpq5=!zd3nSs(1n-V z#z+Mm!xcCbs(@Xv0!soopJu88A|D0PJ^8(pd3m~XdtEu#besaK#`5~LS75TBfQBtE z4{HSiM=J1a7%%@J+-_r@o*^$Aeg53K-2OhiT(lK%@2-G%7X>DEQovf3KhqyMu6>td z_GdYqI0NU-E8Z5Lao){CIl}JBv9F!;aIVTZA5)IXGjeP=F2}(`a?S{nW4}_4<{fgB zZYB`2VZAT@K4gIm|-j z=)wEVvng_HcatO8S&n|ZU+o&r`_>4amzf+^yx-00FUP}Pysz;77{dEy>EA}o`PPWV z?;A1eMI(xM|Mlnncp&f3H_tYrn)h#0-p_aP{yv)b`zGH1JM(cMgpUWy`M7X}j}Jfi zIMK7P5&bh8(Q8H{{zNsRJ-88Td>Rouk-z86#|A#$jJM?Dg;^tLApdNiMtthlh%st> z?D*AyB_A8m`l11c?l)ln^#*J@-++3~01DgN0R5c}IKRFDSt}c$zMuh(jSWz%Xh3RF z15RW#Ks%uUUf~TW_G`f6Nex)<)PRk)4OnK;0Etlp0{ZbZy7O_hLjy{_*Q4*-daQa> zkAdy=s6StiS4Zk$k9w4DsmHd}^?a{TkC%=0_#ox4`TRPi9$Ta9Q5;wg^5A2*Q$1>J z>Y+EZ9xDv$q0_4#MV;$$>1Q1VysJaNqdG{g*J1gYI&40`wUaY_*VaM0qz-|KI_S&l z(3V$+(xf`{i{NvUZyk&#)M2JjhxZnBa2ZsGs$P69>r{sa-)r&XRV_N+tHs|-wRm;3 zmWM{J#o`UM2wPT*9y4pPQ(B8jxwW{IPz#Sx&NP}*3mvCgL|fNlm2oYu^x^ZPdMz~h zoZE}fyl(}% zT!SMzHF&DV`Nm(Wq4KO6->z5V!O3duMKx+SRAb^2zDB68#?lhbO-`+bGQ1j=oQsyI&&XssIvJy20ocr9ZlC$6|(Dg+H(yv$WxvK(NyDH%EUj+(hR$vilE^SQVYq!t} zG*7I6g0JV2__|K$Re|q(owwnQ3|_Z5gXyFUsjV`+SS>@~EE!tMWY9?AYrzm1D%|+` zakLDl4EegSJJ(MsPCt`kYnzmFk)-h5B1MlSQtYjka_*=UAETrw@RZ^MNioe#iru~V zI`y9fp06a3UFYlFBN80jD#7I?T-6dB<@~1gkrIeKB$zCcK;2k^)*ccB{}ki(6EU(c ziScHym?H?qz#K8UmW$z?Bt}($7~7o1IA_5b+;f!=sL6n0ccV#+ysAR8opx0i|#nR*Iy*B`CUFf{f-8 zOercs53drm8kNBHOEG7a6!ZOCF{Y*$qrjyY6@7}4_q+(+dy3FqUW6S{MQ|8hgw36b zpmw7WE*lCly`&K7UWJG>EQH<10(?4Bfcf(ZV3<(A`$qwub}4}It$es`%7;&BKE`?F zqu-!>Tz!{^!h?C}I4cji(Rnz__fMJ~@;Iv{7Y_gB!ZIrt8ZNmwshx}T2RZn&EeDz6 z9Gvscf!3fL&REXIqmS zjP|soOxO#Ve0{^OuVg@TRR(g>GH}d31HUygpnokL#;enzoso{G4(V9kB^?v5rJ?P= zG)zoS!)p69JW)?W&$d(yUYQC#zDNBdO2zSxsmQyK0<9$}P{gO;n{^7@|0JXQWHOe| zNk(%-GUg3UM#|?TSR6>gmD(i4_$Q%#U=rxX42XBmz}C_kIN{Ev&HuiY$j^xqAxclg z4Iz=QYZ7t!Oag|_OF&vg0u~NQz=rqnXhuA0rSS;xh)0*+{QCBE3|})Hi&LlLgY9%! z{f$E~-{;Se#~~z2^^p!GBshd0L}GB*~F9bz$6Ef(v~#Nhet7-)yaz}P4T2G66R zx-}Z-bE6@1h{oWK(b#Z`v#VxCAvZ7zOg{=w9&(1&x=8#;i^Kz)NbLL>fwY4W=v5Vg zl^zl3ryYU(YvDMwBpjck!l7*z4&7JNpuTMy9^_0z6F(F2{Tqhohr^Iq9fr#uVKD8< z&raGxQMWLZpOJ=QzF{beABXTcHUu3~La@d%1lFH|v92{38b!hIa|}j}N-)+Q3BtCj zAgrDg1aY?@OuP_?pR)on-#-ur{Q}Y09)K510x&WnfbWL`Q25XvrA_`wjrWJUxj!^t z`eFA*epZy~hZ`gP;QoFpR&Ae(Cs|X`$7U)lzxZNwt1pc6eR+NR;s}qskPRR7DDuJF zF+S+@%Nx;qys^I68@KGe@%@(VaOl9{4fZ17|-@M*a55u+5l^Gb1O%^UWk~-z4ZHO+v8wB-A{e zh^D5A*c>wvs|+VXa@QT6OWmOs>W+2&+#y_b!>-wG(D!jeMt3)CKRp3=swd#9>jeB# zoq*T-U2&?|6>|hvOycK)ueXm!aoTu%9X1{j&s?x$HIID}=>kK27mT?v4&&yIgN@HP z^zJqe_fI%uvCJ9HPR_Xe(+N{sop2!23A!Vk5b=C0X00BJ9T8)3p#NCD=X1nLg(Gq& zJHoD$Bc2>^fTYL)UHRFkm@~E>ueXP7oISD!+GF{RF;LDPgZ)#+U`OXMm~)U2Q$!eO zLpb?HK-5|RPog+)Yk&ZDMFjOm5yrcTkn+zC70eEGnRX~0W`~GJoVm5s7O(tmF~7Sl zERWkj$0fvVIIa5EXf$Kv6b zGix{uCl1HbzZOt$u|RaP1vVO4;L&x?W%KNbWpWa2Om6j;PtN;mTl{W zJJG$+Q>Pbfj%vdrR~vq2+VH&Ild~gxLYI2t`3o&|6=WKU}?uBlcTHXz1mff)Io+h>`G_li36C2)j#hevgk>TAHPXD?A+k{C-;;F4k=oAqB6Nn{^G>i`&b%ZpsBkX!~#NE9eP?X#OT?TYO{Yh1H$X7**sVYuiQGuRR1<_V2 zu-W&I$@~9fmvaBIUzh%{?j!#&jk@3L<&$5mW!x{8xa=qE_~Qqw_W!{?ZT-$BYJO*x z@!#0SLtoi${jY3C{uegq@@E!4;xp5#`NTFp{K%{v`FDB?KCrJJ-ZRmZ_bjIQ9m`XB z$8tj7vanrm*zg{2*t3M!tl`irrlQP zK7PWy9G@_?`H$I}w~v^$`y;k)#Y5Kh`vVs2^MK7A^SRWK7EaiHoC@i3a+yI=iAsK z(>6A?S zwmi)K$PTd;Hx4q(5eL~;$pL0?Z9gj-wx1m<+s9O{>}A7->}BJN_pm7!cC+!uyVO&(i0vV+WqDWhy+z z+35Oa7JO$7OSN3XawSbH?aFEvV!E2y<^RVzom$0?4_L(tQdTm9{VQ0D)(SQ@dO82D zc^NZTTgGYwma;p|OPKNZ#Vl;nVphF)5o><6kSQG&vb~K9*v`B2*>cPIyuRl#&r5Sz zufcQK>8v>{@5pS{xA$zeK5iDXYMIG4behTf2P#-evz%T2+Q`HYVdwji?y%Qdzq=$BrvgQJbQgOj=4p}GR2>0c6@OZdo7A&s#n9ATGll7 ztw$JZ-x$I+P7G!#PXZZdH?VyJ{h8OEsqB1^FLV0r%~s9yVxNY4GP_eAENS{=CRd%r znwGhoS+)0nMujtQw$LO*HZGD+>dLLHSr8m2{x)vu<$spPA$V@7|K#R0#RCbi#{ z2ljqZdcFUsylDJh=@#@xxwY=4vitsL%BT;ImFr9%DxU=1Q}(OBt#sPou8jC_O_^=d zrYsA(q?FX1R~GF%qfB{!QW;=;Tqz1XqSUTE$bUz)Pr2>wZe^|!Q`-2qDBo1=P_D#Q zrPu3C%5MWVD3|!IRoYiHDX+DzQl`CFuI!+{R5{ygkEkuyXBGKP3-{ zs63}XQTa^bqEvt8pd2|xq@1?hS~;ulaOH(!GiBcghROstJ>{W|eUxU}J(Uacx+-;U zt0@K9-_|&>mttadHwyrl-X+1Bw(xSmhu$m9ETju)>XvuAq?D}GSe01NX zk8K`a^|1Z3dA6-d#sS+H>({pJ1>NjwZVa~DBO<%>`QCO-pQqaeOf9iH6jW=cQ#IGl zXx9q6=MOg6C2Fo#p)Nc2$QT+9}??v70>Lhuy8g9Yl#tU3Av7yGZ>} zFHye&UD5Au14YVJ#-a&!Lq%&(j}+aCun|4{NTNMePNKL06GV46PZpVv^AU|}3lI%W z2ov4=5haRkh!^b|m?FBkEmH)Sd{Js!iRkMniD>aJnaKEPm1t%|t>~eDgQ%Z@LS*%1 zmT36qxgyQn1){SKi$xh~%S2z#tPn-a`A@VqbdBh;(K^wc=Nm+)wr&>9%iAV$aoj07 z*RfSZrNEeIC^z(>XzRcyq9YHViFP!<6cs1E5gCkpFIxEFqv*}9FQNej-$jG$ ze~JG5`6CL6QV~`hQWY)@?kK#IsR`d7cM@JtP#4ZLYY6kyy9$#NHH8-^y9wDtdkD{J zwS);TdkT${dkF_N@c6S``v~`w`U)3L_Y>9*>o3fx8zAVs)DxN~83=>d4-~33423HR zMnabpg9S4)6Tza=RM35FCcJSm7dEUKDtM|`2sa{z3m*GM2u*sH!s9|KLGy;Spldf; z=r-3zc=EwkX!aHfQ#K32^{!)tNs0Et%3}_~oxx*;zvWIsr#sHV2XYY(&mS-3e{vPH zecS}aCU@bZ#w3BJPZnYic?eksoKlX66im zy+{&t$EOHEOH+mXFKI%)SB4O@HdE-Qk}W8Ma|FBXxx&0I`NEax0^vOhh1c4}!tog; zg7{FWpxeJ(m?(&akB`JcgF+(owwDSGPo=`gS)9e@SRvFuuMqansTA&wtrFh7s1n}H ztrpsyYJ^=cYlPBywStXvopAGIosc@OUU=)&AVj=u5cbS%6goM{g|RQ>LfjmMP~bRI zD10_kNSHNC7;isY==Nl`a6~>wh!^Gx-yX~ra_Z*^_iW}1c6a9sMb!(0jaCbVlkE$I z%hE-{DT~FzrnbdGap@94WVTeedw!{qmA_2*G-$aHd2+d+%vd4((p@Q799k*3%~&OP zYX2uV<3C|g^lIU`Mw767Taz$0n6ujctr5npZ5Eom)(RiKtQCeXTPI9$T`z>aS}*v` z-oT^3ZxlM+-ze;_+9bq`*etxevROzh+9I4b+$!`tu~qO&-6o{#Y!`~KUC4;sA$WJ% zDd=w8DV+A%B_w>^CA?YEB1{|CDzrXr6~5Oi1ruu~&^0Cq#Sjb)cMI>2?iM!8*duuM z*ekT}*eiGj?GrZs+9!Niv0pHBJs^mlb2S_k23Z{v-d{N+tjj+vOx8OhT-kp_aE&=C zEbnxT#~VK;beVEo81U}6pfme~@Y&|1u=n~&A*JY)pk{DdkRCWKyof#{*r}ZrlAF&8 z)f3MNbuZ5exeez9w~-fwzZWhD%Q7zt#yXb-#jZ=jqkzkT{de?-Az1M`t)2<6Xf36GvExRGya%>lV+-Vp7l-?Ac8r%|E_uUeb!fy+m{@fNS zm);Rx+TRsyZ`~E97u^$z``;IG*?l1(=z-Ax>jUA)+=qhi=tsh_OOFJDjK@M~k0(O$ zrYC}Q@>3z@`BTB6>Y4D)__(M#cy-7DeFl~=;~jMu{I?r(&! z4R3^RZf}MBM{k9jZ@@2%vV7f|4pb?{Vveb@4^MUAA;MZAHu5SpTgZvzl1+4ehGi+xA5@FZ(&{P zAHhfcuW)PSU%`FMKVjaLe?qLC3ilUPq4*0bbWu;0h9|00!7f#5QRzUBrgWeVi#m|@ z6E5qHq*~gM9-iz-yLzipUX&UQ-K0imzj5D^@tx?AoX4WS*@^a=b|&r2&J?t_Gc~BI z(~ha?baI(Goqw)QM@MVWhB6J3oYElo-d*TVL>FpW--X6}?m`F0b|t&ouC(+@SNdq6 zNkXC~rS8zA*}pYuty?$RG_xD6yxEN^OuAE0T6Y@2y3<+J9+c+MgH-1AAj#bx^kIk= z`DSX-%H3LYw_{K0=Gl{m&hJUK_j;0*xi;x>mfRO;)BX;VdTK+(5F@ z8AO|d2a)dbL6q@m5Gl|*OsS*Hlnx&^rL?YQq~T>o@>yo2 zdew|#bcfK^up#tf`4G~6ID|}1&B-*;oOCvt)7v-Z)M7Q1W@HbgF0Dgp!S|u0Z9k0i zONY^!1H(wOg9V9PEy$A>&YcC8Z5A6|jYw8FJnmd9HULCK;9s*01FLa`#7b-(?%>7->UZ%WbIQjtw>I z+tRKuTiU$XmiuViQnaoe=?B@-k$H9$&}K(hdWp!vS41-vBD!!+L_akJ>N!~;?HYmp z924kjN1_Geh;ws@?(QXu`AKw1G=?m4$56(OF|_jC7}_)3o(|2hr|r$$H}H`?_j_}o zPT>x;YLNq(U*pWXUXJwD%aI)G9Vz{UBh_~tOLLsYa@NyWidK%LA)m%l`$*2cOLC%L zYn&+MffJq7ccvb}&NOz8GliUYrid=%$kTNk4JjW-uP}}leI7^FmM*kwh6@=rxlqAf z7lQ71dNOr9{cPYmKAs+_xRP>=E9K_6lED^N+Vaemh8azunV}Qt-kb@fdu{?bbataj zPHyB};6{eq-RRW|H(D{+ogBm5>DU~1vODWev(zTiHHV3$mOGL3H&3L2PbN|qgGqGP ze-bTim_*}`PNJ*7CUI8SWZIcDnND-UWKJcS%W zrqDjc6wdjXLdCzQ5F6!5cM?76^>R;o+~!Hgx_Xhq*^9>KdC|R%UYslDMVI?})6gm2 zG(+M|vs=BX>6JGvH}oNCfDd`q`B29LKD6qS51E_$a$cA(y_@MvR>yoP^oK8{jF?IZ z(Nk&iys6ap)Koh2dnzSb`O({0Kbp3{k9MB+qmO_5Xn?gp4U6+9;|2cQKi{9u{pQ>~ z%K+*h6Tn##0i=E+fTtHg^DF`h;em8a!Cwyr(!5WB6k-}gor8jCNlg&-+Z{wDuY%~5 zelY#@3?}{ZU^3bkOg$b1(e(~2-!w=;}-Jqn}gy{6HMantBf#xy#;VjAr^KaJ-8nMVG@!|8Wu zI5pIUQ%4rg{h7mQZSM$bbBUlA84>h!c?6w48$t7aMv%LCBs~a-q*z%bo!J&idUqqq zPcw=#g(%9O9z}7pqlgYf@%oCQ1-jAPUox8JWJc4gWzl4DI+}dHMpNYA81nauA*-So z`m`p7mR*XWk$+;S**umy`Nxt+c`Oxdh^2DvO^{Bu&dLWLYf{k(XM@7F83>UN}@gSNwlVs`7>$4A(h(0Q)$06m1@_f(wMWU z+y^w3y!xckc1oik;b~+pO(VzVG!mUoBi*-YbXPl_>TT1>AcXtOm!#9j73pMmB%LCk zrc-*C42m6|L1Vo$=wD_At(lua*2)Z8-JU@|e`SzpU?yk6ai9E{O!BG7B$MV$x^p6v zN?v4=s%91?56_}Ko>}xhEsHc~W>L58S@iKz7VZ0(MQJ+O)X65BB>vg-FejUa&da92 zmTXG6noW^kvdO+r4*j*sp*8+FG%6>Dn&#xt?;SZrmvboWLk`9E%q1VoTpH}fnF1-f zlwY4qKi20`)X7}h{4|&DspZkv!Flx2Igi>R@@Pp(9=R{hqZ`UR^17Nw8$RaIORaqB zIU=9*Cg+nTXBOO-<E%I{S`8%7q;k;w&gFus6ROA9D@c>(F} zE}->S3&@bO5KFoh(%vD3^w6b{UWXUb?SewuHm8u1wiJ@asY0rMR7jux6q2(p=O~OS zqM9j1oF`gDapEExy10n0?Bwjkb47IRX%UT7DW>H9#nd>enC5zL9z$F)`IHt@r}@RS zVoNa%JW))Nd&P9>TQPmrDj{|A68hs*LN|g+XhC`jIaHU>(dC@$&{{$j=SpbL;}W{| zi>p^D?HO8170#tJDyWo>rk0X@MJX*DrXh zf=OlcJEDvxr@^m|~*D6gopp6SBlKxL8adWn$XdAf|+QoPV)g%+nUr$gN`9pcGU8gJLQ? zDW)?Q#niK1OzxZsnejqQ^&iBv@Q0WdsB#8m7YU_kOK4nw33V}&&=GS9rCCX+o4~n| zP7)gAE}=PI68aG!A>VNRUYvw(BulvOy@bq*BxEm=gXo`4alIR6-|LOQ?E- zgoN!9x~-H@=6(r%Kgzk2XC!p@693E%3Dw_~(7DGFQh6mIvkwv)`%OX<|47KSqm)K< z;am_cDLw8jrF8?O6k#YObu%fgvXIgUYbkBClajuJl*-0Q>9U)Y`cILPudkF!0;RMt zOiF8`xTZ^KaT32LT}lBtQZgu%(v4CnRY;{|TrH(t^_)dAlczP8=e0;mNz0_vvPw!H z*Kp?L2F@tiA|?MFQVMRBlJ{;Y3Hzm_b686Ej&UyLDgNF$DSfyorK&b5b-y8{%3D%; ze^*ML52dv9iInq|q@?v)N;dDLH2I^H{Ju!Z>${Z3{NnchmC{QU8Ext)qv*~u(&!?i zm6|fL;GC3oJvmELM@IR5WOS;ZjCu@^(FA=Nr4E!)jiHR@4wlgz6V6pJlTp06jO;mI zMRmB0c8`$JbW8rXwTxztl2K0^8OdyA^vq61V+9#ik&F(Fk%+_-&QKe^o9d0JepTc{Qr!|hVz_C4Wtg4&J)JQ#`M)G+u9s zy#D-oJ&xk_+2Mthj`I2~Y(yOcuylu+r@5~{jTLV2u&Ca)?XwYm~&$||9uVI?$o zdYB5C+pFa(YX_b00EqPl+ z#aD|s$Bgrg{wt!=+9LXtUPL~DMKs5ui1rLFqEi}0wC`;pEodvGpxuS^dqpADR2I^Y zq(bubDI~dVA#EQ}NW1^>wZP*7DnC`g*=z-LYjy#}<`>Y#umUo1E}(Fe0xH!gAnEIT zO1qd(&YYe6eL+4gDCTR7$b71D$*1e4`P8FJK3TlZqmdW#NOwmbJ)fILEAsQmJ~WT^ zJLJ)jL3xy~nn#--<3*?Z>F^^v(0%GWLbo!K$&iDQ4q-K#$&(+gu z$Ky1LJCsI$mZec?Q5ro7Oe34oX_TauM%A3t)Nq1xnpUUMl=4(k4@;%>cBwSFS1L8V zNufU{Q^=7swByQCC_6NTl5A6GV$T%n@hX}297`sjmC2kTnoL#!$y8#QOk2Ao)9FV^ zbZ%b~DHkMBU1k!wdL+>klO#(2JA>|DpFy;J1{KxKpw+Q6Xs5#r+SF$THM~uvfD?(- zX=NfUD@Y^*-$be!nn>4F6Zx2tK$bfaNK}_VLpbwEWlRDc(oUeH7xDD#U_9k4jHj#V z@q9fIPrd`=Df!EEN%!`i=yfD)Mq-?4Vg}T|He^$TO2*#5Jw{%cR zo1-aK8cnYQqbb57n%KW6`h6ve%-3;FdPx*H_(YMhNfdqh7D=1VM3VQ4NV=I7NnUP| zw6T9AeRv%~Mh7E^=0uQvd<2>C-t<#5f|Pf|DSUf4y^)1ed|)`8G!G}8U(;yfxoH&7 z_kwAe(|D|fX+(Xd(eI~Ww1I_@b6pr63=5-SBf_ZkZz%1)5K8w~hSK{?zUOoarL#Jr zwCHgNAAdsVePsw01%}WYvk>z57EH5G1k;fP!E`qvm>!CP>5_Udt-l^b$!mj1H$RBB zxCPP3zCpC`Ng%!16-X8pf#l~GNb!RMDdq#`)E^9>0g3>+8qS$i!vmk>VCBJ>QpjcJ(ZScOr?L0eDAI~mBcrE zY1JBE+LYx>|2g@RteY=+wfm4-vkxDme8|elhnh8gNd1O4`89D?Rfacha_}am;Z57x zylD1HFN#d@B3;3Y_H^{3Nf$in$YM`2kN2c}Yfsw2&mwM|m_jdRPobybQ|O%e6k7So zgCh2Oka{g=|ND86{y-1TFrQ5Kc1$Lt(#hoQKA94=CsWF;Nff?j5((*(NQEZR&JL5v z_v}QvHE$yM^7sNf%qP;n5AG!Fai{PKcS`kir=-5_H1(bvnXPl9CmC)ui`-~v2RGVu zdIIV5^O=0kx;kJyfj+%*rCz&SX<&&f^>uaSZNZgJUl~u;OU9FB?07mlY&=c)=t4W; zLfs`UDoBjwrm`&jT=V|7UO8zM`z-{s-Yw0&J^nAOn16D)08Vtw0@Bj zeT;PCyk{qx{CX^f>=;V{1!Ku^>{!xK8%tMDIZ~yGz4+nusiUH!m1LwB-Zm zW3>qMs8FDXjsl%m6=>Zt5vA9P$i!1b$9r;K7C)bBTVO{{VRp1|pdHWjhDTyK<3cMs6Y@WX&N?oNCXD0KNK1Dk-Ecb(jdXXNN_U;; zD|R<3wkRqJHX@?L&SPVN*rFKN-Kf|Y@BH!m?A`6`>}<{L#P9n!L9U(?yuIfLS#^$Z zHp3CLOdKKgi32R&?f|=T9iY|10h(Xf!-n1VP*KPZ!rC4NUfaRiMmw-7v4ciiJJ5e; z3)7oy;bJL^*J024M&H{&!hRb_FSCI(dm9+_-WqiGTf-B^+1hAl4ZiQJ;0EhwO)as4 zi#Ar^_{I|E?6ri`g_iKe(h}5Pj%00m7C$6!B&eE?gilW_;6%LzOwY6cYa4+KfPTyb(k@8o|_ehETKD5O(AnLW7whtaxMqcjm=eaIND57*A>f!ka?Sj76jFaFX6FVVH~9k9&N z0dXT8xO7(=maNwXE?ygMDr!UCc`bN8Ukg(FwBYcNCMfZmkT6~os_Zr4&?^nNuw4WC z(iy8uM}xihszcohbr6NCgR_)6JUgKVOQx!UvAY`V8Bhh&Mpamz%VNqHs)EOz5ioVl z2-qJrg4JIm;8mvze4M5NZ`@fNngL~K+p7%obCe<2KpB4ZDM9^8C4g`xI3uA1{>K!d zrBV?_I4MHjYXxX*P=KeS6+lr#0c{8X*IL=cOTUjxK>NhgU>l-<<=PUWC{*`FX`9cid4-$p6 zLGtX(XR_1jGl|*!i9C_{L^39PBxfEB5Vi0D64CyFlp3>fuchxv$+veTEbARnx%ifJ zvhlGo^>4^y`8OoCl8u=?dPUxbzam=gFNuTEOX9fX1<@URPCkx#PFl{faW|)DWMJb{ zB9eGY?vy?u4tjG)?zCZ@I z_YiBj9uhU~Jjv+mCS$$2Nq9pSF_-NkZ_Cb+`rfl75YCdmx-%q6@(ejubeb4kIYkQG zPLaBeo#f2lljKg$Nz&haf?TpcLH4gcPNsc7M#z|BtOojPYzEid$Prvv@1<$v;F+oIgmM z><^MvD_h8u!2`rBq+67 zZN%;CR`NM{D`}v0Bv7}G+@7|Dq~G66Zux8`qqc1#Tg5h!f$Uo1d}brbx7bLk7j7VX zUe=KIP^P`>$sW1&q`G7sDY&?nxZ1BJgUi>DogY?{$e7jS`GHkryvi!_c^n(7zqW#0 zc3wejR#%fLpO=$k@yp4VL(7Pf+A`uZVJV64ts+9#Dw4Ej2?-utOl%Vt6Uo*^-L|#W#lH2kV$)WQT$dpCniCs_yxgb7{B%drNS7wwEH_uYC z@JBH@+g?OIjV~l}P6cGd`#d7um`h&e=MZX^O)4K{64NaiP_DhzeXVFMAmHYUQShQwrx0lA;7PpVb)ha``w&THbNzDkU& z3m8TufBxaF77uaD?)~6AqrY+eCkDB4=TF?1h7Vk+`aACSg4Z1P{RLN5_>8-H=P@TA z@sRU8dXLMnzspUjyTvV5zR4|{eVtqM=?XU~`x2MY+rxPUc5@@z&vN%IPIL9^PjX{q zj&mxLk8np{Q7$vBgZq2Fm0Ra=kh9p=%pK5c;#`;Q4c8uc3P!!uEP_!)32krZaH$VxQ3_mlq#IYk z;!_$c*>HUy%(>N9jJT8*UCwNk2KTc-ZC2ZzJtNxpOv!04-cj3b zv-EVkO2xZ&g?(}zh6Y9*$EsaBUi=H`*f4HP$CXFpI)e7h?RffdS%<$?O-FikeFs^v zuj9&*_70QJCpsLgdO8Nj-sq@U^Ppo__p6Roe?E6Ox%}xE)hfXUU6SQZUMli8hpF*d zy4w61R|EcUq$#hIZ^?g|X~#F$IP=~u0)AV!Cx7daAOGk_5Pwu9f-ka)O&^G??)ehb$4f(vsNBE^h$N80?PV)avIn8ro=lDB|yZJPg3p}m4#D6io$}8=< z&P&_h-H@ePnsT&0 zMV@MHRG^dZD$+B0%JkP56{=S^f?7UQrTWI|^mnEPJy)+ur#{i5+GaX*YmP2e*`Y^^ zpXt;6=7#ict`YsX!ihj?wrm+n+bme1PN{#Jl zcZLH!QRhhO?mN*OeHW@S+LdnK=td21yVIGP96gsv=$F;3`F72NiYt53Cz0NCPn8c% z==P=0r2OgV02a%4b^!fxERY%v1yLIkLUkvG(hmp2=$;SZG{`oRb`?ZX`yJ7A(xVu< zQ$LRKsqwUFZ310zHIa@|NT!cNQfThHRC@k+8dd!zq~7jhXvDa&)N@}tReF&@Pa9`Z z;plAIyDo>?U(Kb(a`|*|U;$k;vyc|jB5L!wm|n6irEz&>w4<(^4&4$_lMxlvDttUu znm2*oWO0tCf0;-n>?g7Ly_0FnmMOIF=2Y6RIGvsdnnCBym`N?#XVHYp*;G<>4&A6woC^l#h(YWaQv^;x`-2AM6Q9>*6^!?eZpwVQ zEp7f@O9NMKqFq*-Dc8A~u1VWM`#)`=%2jpL$#g6AKD?C*;9SRa z=*c+a0I(P8_G12`A{K7bmFc)RQzzv6C*^)=6tzPtg_U zPSJ5`rzyNUP2bEsL+6h;OQm<5rQ-zW=&9~=^pCKM8olqL*0Z{)-iY(`Yr}aqVY!E9 zp6j8XQ!dcr*B9u8sTZlL!X@gz3T z9@Ci#Pw2fzPpDD(QyMz-lqM~HMng58Q=^9GwBO+coqps66%Tz$%Wk}+M>Aj1kMCYl z*(tB7l++vgV&xm!r2m#C?|Dm~xxQn^^^Wcje@|cCe9!y}AL#IRALz%*0eV>MBQ09? zkq&8oqT}j6(H`5+RHoxIwPLI|yPiR+miUD}xX*ZT1z)M*r>}JN)Nk~S#CK}3{5uWM z{6Pb^{-9P?Kk0{-pL7HKqUNW5(KX>i^!fE6sx$gGb$a@n+LZjE(u05KnW=wiuJ}Lt za>+lsOLiEBM-IaWD~4e%^U3sUis2}s7;f4khR+{~G3J#xh8Kuqexo=}crT6>P7;_o zK>~d{BvARM1YY%pr1(X3Mv+a;us1=7H##ZstpK??H}rLi$a8Xv8aM(G>UsIMu5 zW~nl$TPuTN_hj%6^Ze9j$YNSO>XqG=5H}4*fQm=<&x{Vy}E|J4WO>#K= zgB+SV%A@T#c{D#LkBXn=@r8>5HcwE%f;I(I{;Ghx-4)TXQW1A`D5BzbMa<=tuyK+S zKH`;7`iBzg5oN}AQD%N=W&HkK882`uxO|cd`tmCH_?rq=2u9#1=6}j+AAu*nj6g*< zRmKfd#Yu-$arGzWm2y(U8j%{#ZdSw8_iAWlr;ay^)p6=xbyRw#j;ls$phTVq=5E)( zw#ORy*+>(O(>2j+vnGbz)kJ@7EwoP7LNVsq>bjENGH zIv6%v2j?Ht!TrB<@GPf`J^$(AiG#XW|3MeW+v=f9p&mZmp@-8R>!GxvKF$>C4RQS>Lmb^|h{^+o*kWUZzWGLYwB86U?;GK4 zZDZ_8Fvg*3V>IkBMh7VqwDmJVt!XCsvE2muk0w}RYl@2brnqIBDeCr{;sOmbydPtR zW>sdGe8vnX{WZe{#2n|0H^<^8bM$**j*`X}*q&yA32Q9y;YABfl^%)5eMjPmDI+od z&`6y1b|kyzme?@X5^L65;*=|v7%FRplKxh>e~J|b9xK#*7#tJHL72< zMj~m0pb#rjih`HOvbw!@x6JH~6ULx)>-7^q~= z_*3@iHr*bTTJ5p#wLLB|c0lVC2kcnxfR1MzaP2P#eD36kW(AHIy@h!cdmXW0xDzJ( zI-&DKC;ZXqg!>*jVT7hL-imO>m^sdj4dILu@0`)s#03kIU2xh`rjzXRR~P0HcSVT| zS3I=F6{EXdvG2DlhB>?8o;)`k+~|fjm)$T@+#Q7icT6mHM~^ypl)vtd-BJRq00Bys z32?zS0ed7xy}Rs>+(Q{pB~t2n)04~)IM7`iZTt6WY zhqeV`_~k&HHx!7wt%9&EDF~b924VGqAQavULY3jc*y0|H9@)XzTpf&xM}jfwWiT#M z3&HKaA-K0B1UJ@%;Dpm5$PI+xGu=>}9vq5)DnhYnODG=i4#nStp=eI9x9gkB6+|k&lVTofG46`lfjF z>Ws%{FBlt8Apt)+Ct!R^0@h7Wz}|ZH{agZmdz*mIRTA;2dm>I3CZffxMC7+8vU)8M z*S<@{hbl>^=AML3X-VilBMHswlkn%6B&4sBFjFBJKRPC3VL~#VuS`a@+GGqmmW&yX zk}+E%1*1o%pb7J$KPXATxz#DCd@uzU^rqmGuPJDyor)d|O;h_MK-jYiu~qp@0L4Bl}Zg9P=(tMb8+le?0~RWXIyAkz>&}Xe@5b8H@dM#-il5v8Z``EGpj{iywcEMFv2@ zBKLF@OGwAL=Vy$N;&Pd6`kO`UiqdF5;HD;pfxlEk;I1_t*XQG&P78<)|p=ERy zsuyM9n|WEdt1b&8FpJeCSs3;q3wOw7;|tSlRQAqBdun&qj&c z**N=CHa?fjK_~MZ%<;~_naMdgTa<%Ei*pd_bMPbP;EL-xsPQ%j=Sk$^ZM|GnbIV08 zG8g@GbJ2BrF3PXX#S8m#*|V05V*R;T`8gMRhv%V|Ngj?Od6*cJhtc_Y=rDtE6xZb8 zj>bIn=*&a@Rvzko$isX|##7YI$3sp`!TGpxOg8^(tCTY%E4 zh1g|Lh$1M&KaqtvA+r##OejRPMTO{HTZqy73o-a)A)5CV;+yA%xc&!YH_8{`4uc|; zaw@{eQAIc{u?Sb@7vZwWMJTE&LfBk{Z}u1AoD)U(?`jd|K4E-{!6JMjS&Ty(Oe2dK z!=M0&P%X3sT~bPrlN#1i~IuLN6Gmtb6d3EnzTf7s+Qt(<5DzoD8=2LrKlBFie<^A*qBp_m&TRitr?}*RaJ_0HKjOuM=Abm zDaEQ|r8soH6chSNan+MjZ2!RW`BjRo(q*_*wG6`z%W%ND45zu5F$QfJ21l0R!jv*> z$}VI7Wo5W;av9E_SB8PrW%zbO8M1MAe7nC4gD6XPilw_)hKKvgu=!CLE`C#nVPDGd z}YYMz-!?IgY?`EInC{2fE7f*5z`1akCuz@0BC}v>d0r zDM!;!<#_OWIgb2Wj&mhNct%cy?^Q(jTT_Ie^+kBuRK$38A_NB!cDstu2SixwBf@(D zB9safp?b6k?S|iqf{FIMIM@qg;w|;-%=w__UrcO3?9k2@dZm!3#%9aKio)l-OE=(^i(?ojI%y zn^1xgxh0s9RD#0b67=RuP}-^ldF>L$n=8S~Ka0`*O)=v`6eH~^#+!$W@pfY|o~|v% z^{kGJomz~aSe-eA)t#?d9qLDlai%3>qYqKWD(9gP=tTB z6k+VF2omoh3Ijn5GNii#0_d;I|7k=4&iKt3L@)E%`Oe4GWBI7RC!f_*`6!%`k2eeQk;LaS zhEP6sjLgTYD*4#^D-Vx7%fpqI^Dvy|;k)`gtX!Ihum8)#fb=}}&Yp({obs?!Cl8N` z=V9I3Tr9kii+aa$v3+MQlImRCUYUzu({s@&Bo`ALb1_3J7vulspu@`?#$C<9Egd=N zT$h8*3vy7kjIoXqb8xL^4jwYiL4J4+?);dI({E*?2YWww%-$2mEoJ;8_TCVhnvE-c zva!=V8}G_xdrBkzGw{g6^=nc_!yjJI|dIajKRzAM`Q2h z(b#!lG;UZq8dEDqqd0qKT<0+sjzitwJ`C zimsBWIQ>ZqHlIwv^K~hBWqJx87pCBPl7eZPDJb>{w~LZdBP1EU z%#$%nEEz){Fn0HmBpj+q!q)$iFexqxpV%j1svLVaf02k1rxTIenutl$5-~j`5o28w z(Ox+b2N~mO2Yc`LZAic~GZN4>EdiIgCE!)%1pNCZ9yQO!qjr5fN==W)d&%**#W@~B z72@&1i#Sa0WX$nRacEc>hht;oaFIXkH%uk>R8k$jm2X@u^49*ipLaXPI`08jRu2~z2R;7`+Hy{!<^dhn3a|G@`AAxtbMd0U2 z5%@Ja0-st$;L+dVIHxxpog2d$6E>W+eZujyeK;CRhGW6qFx=D%hhh zvSFC}AQbi6SetQ4C`M(3;yJfa#_(qC$%i3G+d}Zsk`NqB55do_A$VUl1Y7S1<9~;O z(R5KT9vK~seom~dDjAFlcY-i+e-LZC1>tVio^7=b!p1*=xcpimj@cQAT2lfU<0%kh zjRWz@U;uh_1>nls0PHObKr#OS)K?EcGsd9OJUj}&E*r)0=c90v3yUHrH469L^2d>l z{-8+`Cskq@3_eF2B%8E5~VHx}*pM)R58cp=&wGmO0P(SR35pY*~#E4^?a z(+ka%V3z>z z|0lqnQ3BklBEYf-?ks+VJD!{3jwvDTcvIaSM?G=F%?I4@>2x>L33o#;EjNsM=86#q zU6IUmMYRZ5?ALO|RnJ_|{h$kW&2Yhxa2IUXbiol%opJO5XIwkY84rgz<7G8xy!Oxu zJNG%^wnRiO*1zQKi05P-QR{{SrfhY<1;q|n@9uz2!yMTA zl|3$7Z;v@y_GoEmkNw~5aC)a5DlW6bWyyB<%b3M;cx#Id?Y4MtmMuz#+p_Czi>423 zP-~A34prFTWltMiDP@CxSFBll0c$MJw#Ik1)|mFy3fqob;lD*z2ys@Jt!sr-pIYLa zCQF<&(Gth{SfY!JCF4_$#Jw9vVr14xd|*8iGe2A4)x#F(G|z%D7%lLGngxF7H%EmX z=BQI@j#_T!DDm42ADuSCeM`--Ai)e(^~`Yp6H_FOrg*5r6b-->Ck->j&Mp)DRc(Ui z$tLJ+V1gmfj2Xkq7_G+}qXZb^#eYV);G7XUE;qvN1S5>sHNuOJ3{kM#5LcEN;$2rm z)c9q9ekToZ^g;tHh%~?)RRfH%W{i+go-@zO&b_TQz0FN$>Vo`Vja8q~&Gs*Tw*v{7%AHlCH%#>@*^_-=(3 z7A0!oE!LMSxUY!|>ou_}PZNJxYofsi4RkrAfn22qI(lfJ)?an}*r|?37O3N-Fm<$0 zRL3({)i80b8uq2AVVIs8Ha}2B$p%%7%u~e$R;t+Yb_8B(9)bN8Ol~9a;&&B1a9D+L zpH(ozPX#3bkf?;0G?h^1jv~5lQpC8iikM}@ z`oSM7VCr@S^vzR1ZA%4w`br+_8|7I{0C^m=m&e77&!v1&4i}G?!!NFK82^>UdFdFA zFDDIW*J?Nh{gTDZBeGaNoyl7kv;N9p$O#!Vo-KoK{bX>jm<$R}N#ozS(zq@_8Vx0- zanl(olv^N$WkFJSN=gdl&q-qNLP?w$EQvMJlGt=k0^1f!U`wzB)=5j?>~rFnv``!k zgT?W#lsGOqD~7fU#PC$07)D5nVfX1_2=j*FmQlkP_iGr=n){Fb8TOB6&-%;8?f%dw z)BeyuKY!CJ$H!-nsmRj*0j}ySfIcUf>{2J^7i=@cK-b(ob}*+b5dU@{!uueWd-n z2k1nz0s6D<1I^R@K##0@Pk*Vrr>4u^Q8$@))N$@xs`lp%eLU$6-T3)6<5j(;XI{Qy zW09|D&ApfOVe(6=dhG>uhIAyPiZw{e*M;dLK9a% zrZw`9>6!VD=)FG=>BGv0^wPisy0h>BEqZ*PY6Cl}UG%D@}t?KTjt-ihV ze8+X#V}G5}9oOh;y=yde^;IfA{3_iy>k1WoV=S=J%T)d8C7PFZiSD>^kzNV9NM9bg zK;JoEpbvKU(BlR@v}(2FGrx4ve??ui{NXv;lX#A*^_->QzGtbZ?F^l3 z%~W@qj#E2LBNv~dntwX!<%&-F-;0w}cJxVFb>##d3OGT9^f=wk#vq?;J4O{Wj!}yx zN2%SPBh<9w2$g<*nBGY}OgCLb8tI4hT`Q&2EGhk2%hP-%o}QZ1L6yF?)3CyJI-$Rf zE{krX>pNR%wOcE#+mH(-%Ma2^|61t8@hw#0`2o5nGe)p zFWgBbF7BYo-aBY*^LBdGXgmG3vVkg#H&E>f^;G@YHY%31jXpfPl^zgmr4_sDsD*YN zy|8!-&H1^RzAM^H3-4~Cec_v^;7Bc9Vp~fuZQ4ks6gE#2LwI;y04@X;t`Ys&RM~U2DCHN^e|AOJ!Hmvy)cP5ihH0 zTyiyCaCSLua$8QjwlAYMRhQA*bC%M}AFC*4RMDEtOK7q866)Nvn7(B((KanvM16iN zq<#4dY0k|B^l88Xns#VDn=3G%ny#2fEC0-8W7%`reKm(VgwCN!9kXeL`D`j>F^j5+ z&7|`8r_=Xz8a=XhDxENH3e}99Om|pLqJ|Qcbl!vi=nb4eRo0ECWLyP}h!{sBMv5pW zR!)`gmC_p>C3OC(Vrp7iM4N&Oskuo3T|AUW@7&C#S}i#=pemb=&CQ~@KAALCJA-pPZ<|c}H5Y&4I;* zv!@y{b~KU2;9K~|nl|0AqG$J6((7|a(%v)+dfv&L9+EMmD<7E9>~>>nz08O{%QmEI z!GMB_KJ9&>OLLCt(3fkpX;!foz2>J$1zH+(^?Nn?^t39qsU1NJ#;MRv!OHZkz7l=@ zS%LoUmZx%C<*4$+;Z#0Cmd!7ap|8J5(F+$P>5c{oI&rc%^@$dv|ICKbaf5&O>vcoC zMfgv?@as2z%eF84>4?vK|F;4DS^azdQRG|x()U+|Gk&bY`DgEM_%DAzF*`g*Z1(95#9W-Z)bV;ZKwIH@J@c-m*f1F zx}$t^=wY7!%=7%_cD^OJmEZQUg|Dh@=1T*c_|Ok~dHoH$`8WPM`9p6T_=)Sb@y@<= z{Hs@+_}bMQ`4F!fe&G39e$9&2ybG-4FF#q%=Pz5z54kVlmpxp_>n)kj?{b;TXVO`G zx%@PKa(X2{>tF>xPqK_(kW$DmXw2c~|4HZP#0vRY+mra|-(vZxVUhfl%_02Mfl>U7 zQ9k_Kb-*uu<;K@|I`O-!ZTX{*NAi7cru^4M2E1OsHXq`k&QG1A%(vf=<9}F6^8wSu zc*iY2JKhC+>^S=7MMuM``yE@zjgFRwJstfEJ3EXVXvd73%^lyS@9bD=zPZEu;_42i z|CV(8(VN|&v$(8d>TO|%k#%T?+*J1tp9`iPNAy)XhTs3y&ds^mEdJnLRm^TvJfi;SRai>|;i*j`}s z!B^0}E?#iiD^Kv>(@BEsfeQr9HPwRXH#LF-UiE_O)s2GoN3DWXmtz7t@0_6T#uY(} z#T`L#wgi?wJ%NKvYp0ok8WggPE+!@ zID=wtRA)ISkvD-`BRiSYR1l>uWV!hG{K_<2Q5PPt|eSYW199&UQ|^m9f*r_i(f08@Uk;P2BuX&D>qT zgWQOft(?uncFx>^a{s0u=8jxA%BAR@;BFLla?bo|u3YLIw=|)fTUg)2We;5B^t`Wd zZB^Ge+uOa|Y>Pgwb^L9P&AH|dDct8~rak0F?t0Aa`}~ws^nJmFFMY-3-g?6c&E9ji zq5z zG+BO1h9td|CBqfu$X+LT;+CX9_DxYFigijvcuJY9d7(l&^|=SRE#*b#kMt&5AwFb9fiL;6$d9=0@h4-uN0IVZ0VJ2r&Goek zCc{EQ$gYA=;<6}=H0%l|-_J%6=jV|mRx+9-n#B;$QL#iOD~`}v@g%Y?ft)>>NKE>Z zNY>9}GG8l|EOSpIl?g%;STUM>tsX;`G>s+0deVvTWd>O^6ye1iF{K;rc0NQ<))=%mQNW;5SA0!N)f4BHI8WPuOOw}A9pKW**VKH;>FKoKNn4nNN)8EFj5>3(2&N3rV%bBC_h>A~M%|G08r^m^ddb zAp?(=kWHmkMDU}EoSe6m5ang0u67w2v{=qKamz`8S2bDKRZZ5$uOKV#uOL$jSCZJl zl|*yqDsosCZ z<>cMu)W6*%bkQDiSZOcOUcZ-Q8Z?r%I~qx=En~YK+DBTUiL5=@L^4D66V1!}2~BJ! zf&IjGWY2b(pPYlsJ%N% zVB9eh_T?BEHTgI(|9zYc%sN4~OPnNri%ya*xlSUe?j+SCPLV5XPmv#5r-}Tg(?r_v z40*ln3~4tzONw`$B{J6M$nt&X$dG*(iEHU1D_pusM;nW+E;vt)(DS6$qlaW2?IFrO z7s##?7l^t4MN)O@BDo!Ki71`DL~MgE6UVO0L_hQj8R))38pE!VsGh5&FZ>z_xp0ka zjkr!8Ubs%AB72GI#a<#4d4oK;aD(iKxJjZe+$8tI`$%F>A2}Fyi+p7s5TnrB#Hs5x zu?oIJq|e?VJpp&g#8Y>Plz%^&aiX8x^}a_8j^1NDwfiKQ-Y1cQ2gI`N0eR*8kgPcH zkm%b#A}bmnk(ZW_iN(&xB-E5KmlNi`J05?`b`AUe~9eaKjfI_Uy^j_FRM%c5xcGbNW0uH zI2SYwx@QlABS(h8wr|5=qO%xym5RZaU1G5Lu^0&S#i27<9K2VFL*oT;kdc;vWIqX5 zKUISH&X~XHg9QAtl7!#clJIe}B;4$ighmx97#A)Dmh+|H@-gO(`Yr_nPSQ|VEY0{y z(qMOA8YXEn7F~=CJXkCPL!B}pGbF>fHnQ-!R2Hu8l!dJiWMQnhiUru~r*)Ue<;c;yO?u z&;f^H9eB1y2bNsZ0evZ5*g|wcu~ZjIx9Y;->$>nwN{_h)^#Drsz;CM_2(Igau9QB! z=k%euSRcl2(TAZc`mjjc0L0u4pt!&QIyV}C^hE=JzXmYc$q-7i4WVeQAtaqM1jiqS z@ZH)7nnxQ!{Bk3Be%uK1J{rLd6Ju~rFotRKjiIgG81B9>h5;=T_!MdakEfWxiAEDx z+HV3u3a0Sh%M|98nSxZEDO6rIg&TiO!Nk!FMrWA8+!bc9;e;8~4w%7GBXcNU9f;(zbwGWW+XVLF)bbmhWtqQ`FtdFs#`*3 zfF=tl zw1a|LJGgp|arOr7*u7^D8zStXZIV44-EI#Duh_$yA$!QSbO3_{2RJj+0n!>B;Lc44 z2oZCHdOJsWnc@h#^BkE8*Aas5ID)sN6PP+W!65U%9-Qw4qYpU2r#ntCLDCtXI5>k( znlmhz=M1>t8SdP2hUa1~@W9puPA9p*+F8tByVnJNU1zO~-!3p>q$|vdafLgRUBRfq z72+9?gB#pE=?1f3yMd~zJFN6@hhN$55WCbJR=2vtiGFvu zBOze>5WtlL0W?h$z{KqWu)ZLGp3eeE*5%-mKL^f59L!$H!4aN=Cl5IIB1Pb{9fAG? z0tcrOsHi7k*iE4017V(cfIXf764?M@ivgxK18lefuXt`oYtq ze(?T*A3Pc651ppW=N;$|{`vm!c#%Jp?q$m!_Wd3EU2zngau@|qVn)IHacsGYeLpk` zmiLZ=fG?xqsd@mExd*_LqyQLI834=I2f(S00C?ON0B^qqz(dVII4%f;#mRx-RT&6( z*9AgOdm!}P2n4q;fiPVy2oAUe!Ns^B=p7ft*myxu-y8%5j4`PFE(luXf|*}B81{q& zgLr;0gv<|yi4DO}eUka!9|Xg!-@)vZ=3!v$9|ohwhC%d{FbG^1 z2IdFD;KRi*Xm}L{ev;wPZ4?e3p5d@AIUM>c!a;s{IGFDV2g}pppz$Ca-u(!N{b~`A z>JS0%LL;CgCjxqBM1aKx#xy(>0gEn1K+TH?SUD^bCg?_jpIan+kBWqvf=Do(6A9~T zBVn*L5&6mVywV9EU`IP*0M zUMoh!cZ+Bk@Q#LSNzt&mEE-}LM8k*8(NNhI4KFW5!>Fgxu<%zjw2g>?3sy03(KiM< zk{R=$EQX!i82C^d12YfCz>lsN82umyc7KV1`*N}Hn=uomxLEie84K65W1(hpECf}@ z!u{>BkdCp?eK{8NpT$Dj&sdnH6bCEJ;$Sg}gW{+-5M;-}+sZgtvNR4{X z0RO}iVVzncs9Pk$3_&7X4oQUJX^CK0oCq*25geB#g5s7$xVb+O79LLoqbrHf@GudS zJ|;rWuq3EgNrEopB)H|21Xul%;81K5%*advr*TPeX;u;>Fm6R>9b-Q>Cqde=B$#)R zaUc7WVC9=6_>VCl{biHkhh{R=SR{j?TQaN|l?<RZz zXEO91N`}gl$uR74GK}v}hRd&#LG@cQ_)4Tel1d6B8l*6;RthL^DR4F*1qxzQ;PaRi z$SX>LQxj7_W^M|&SEoQ^Ez>Uc`4Hnx9#4Uj=Tji(W(o{EV#{|a(D|LEl}H75rBsO0 zVKPqz&M_5+doY$qU@8>Eq_TQG6$*1x;aqttC`?HO&v~hkusjtK8SBHlJ{6Srr9w|z zDwH2jgy{Q9Y&{wx&&-lxLoZ%qGEAxJijdDt1pQYQ^2nx=ucZ5mX%roj!* zG|&x9gRsan$VyCu>@kcdlA8twrD<@BaWAJ%O9Sb7X)vuS4Q{VW1H+AJ5Vb80a(6Q| zv(Jo0VtACTJH^tRXKAmpZTi@@_tHTBX&QvTX88^z5tz|+;s1U;a|AY`TSqP2Ogz$c*5On4W!C?VQw^#@xmNKTwav{{L z6au$~<+qOIwLu6=YlU!mvk-pP2|=-*F+I04?#d1!9N#5`|Msx*H40(#KDKVZ5b~Ra zu;&0fjus)jJSc>xhlJ4GDui`yLWpb^!ds^C9qe}|FJ1^Unf5RpVd9xKGZirzF&$@V zf|%ObHcCt}ERU%yujMSy#VqeKwhs@sua9iME1HC$$;z;BuMi&Y7J>;YTLdd(dV>&z zj1%L-%C5kU;nYSUWYq{6CrJottA%iAg%G|h6M|ut5L_0qb1`2CYIB6}c!m%*Ol9X` zk`PWz5VGe<2vwy*xKt?opQW<^tKxeeK3&qFba(gNIdon?1QA5S?(Y2B9VjR&79xl! zCMd_wJrOIdjgL&#<4P_`440`7k(xwWslP z_RnB*68ZD{WUzv0o{te3Y*KIrD`y$(u`e$l51vNn49;uHU?r9rY?w&~lk1hiHfZy5 z?vcR;DQ2*u?sRtNS2}z9jmt-V{x+TMeV)z+JxXUX_tM#hTj@;pYC0QsA)PbPcpW;K z&b}N@=giV{_GC{wJFz{TP2H5vdamOf)@8hY%}-|wXQZ>53F++D2!4Gaugl5lOeHRz zJq=H11^($Q#yg!obV_F_R_WZqfY(p$bQY+b&IbNVVbs96_ZEDh?GdZ@H(|KF8;%)LYZ=1oqjh6AYD#P1s z2yeS%Y}43Wqck>yx9Jq#wyl1qvL@cv=R8kk|9IPgNC!_+bF+ZW+K1 z-QoSxr2(wEasaa{<^9&K0qppO0jzQH0QO?q0M!^nZgDa^S(4Ug`HiM!s6$ouq$Iym_up`n-QJD zN`w?vUn{>-VWKij&$KWp9EpE<7V&-%^eefWs} zY-qp!EGo1=>*>M!f3yB1_jfXz)tby2o06G%O)^WWNM=)uI9q5_G8?xznMH8M zkV-}}X9*^=zJAHZe?Z-?{_T!x0er#7}KPK>T^4#!#%!`kk zS$zC#;Nz&g79T5rCo=2TiA?8CB71)-ksaBe$TBu1axPdRn>jj>J?WdseEk#IY}-Uu zpqa=je)eT2U-V_W>-w^3RehOzVPAHC9p@m=?91K^>dWG#eOZA=U(Ooq%Vg#HGTjde zOrtS@eLa)FF78iYi?S1#_1pw@d}so5iQ!yj&jj|wFo7A!Ca{3kcous%o`q99v)>!f zI@ZRs!_(qf-!#r+4vA+29O4;i#xteweOPcyA2$4QAI`w*!^Upz!+QVMhZzp*!|q7A z{^Qn%$?ErE^MA*&mS=Iyr8bU@I>I?gTeyz&AJ>tF#<5vZaV)|mj{Vh+V@2P4Gw;W} z+2ISlnQlpMHey3>wukFrm$@!>pX+4xmc1D%_Gatf$8ttfEcYG#IS42V%VI~F-$8qhHZ6?Ve;BBY{<80w(ov4 zyGPON%kF6QYe_U~8xhT}M@6%(j?pZ(M>K2w$o0`XQr31t%KGL?S^iupyPqy)e*&aT z-CW94WTdS9c@(>NDT*!KAH|&4a5mGpC>Gi~iXCx@Vu~73EcR0*n|C{sZ7GjryK*Ag zh8dA;LNeEneIr?`ek9B6j9>;_pWejv>W*y@EOKrHTbdfdN`(k^+JMWCaCV?6oGlW= zS?Km~);=ekts4-|v?bweMbB{doHM^&8^hR$lVNPt<}kK(dKk-23}drB!dQ%E7*qNf z%8uU%Wif|B*^RZKEMROX+ZGkdp4fyk9l21>M-O2^XG54|cL+0?AHqJQa`uy72uson zVedW%vkA92hrBG9`K$|O3&sSqqY=UEmSr$|^f!n#JPcwaa(4OFAQn44h;_vCb8h2k zDF?A7F9X@*bAil$cOV-yFOV(iAIP#f7b;Udkj;D-z+x^3Ftx$}MhiF_JvD%}cn7c~ z%>Y)>>d)k^__N?be>P@;KU*-spDpt8XOqDkFi;T2LT*#0NLabMg!2g{Y{@e}7Ds+eVY44Ao8ZSnBK+6|6F=tJ;mfk>d|6YmFVkG) z%Y0INnbeJoqA&Ap@nPDP+|J$L!#0ibVZMPrtVYj=Nk4eAii_S%YnL}mo9@jv#_-P; z-mK=k7puAH#VU(A%YK0u8<^z9be+678_tvU;S8!)l!AFn8AN=gvm$;-8%}ImffMVR;l$=jo!E0DC&qYufMw?$ znYhJ~wTy9OUzj87P_RRf`J?ALdGyU22Y)Z5} z6OHUy`v*H_aMq5wZL(uNBkY)?uN_lYvg1rZTek0@EgP`FmfI_~Y^}L1Q~hki{<~nq znm5}phfy|cjGqnLs$|2CH(9f@rPl29f7Yy|w>4W~V$J%tSuwS0D^{6h#rh86aTDCF zSpRNIR(;!&85CNwVbd%*Tgj4L(zaxepYi#oatqe7lryjrEm(o21snI-oLQbXXV*5G zvk^nh*?V_$Hj>X<)!j5>_MC$?b&?sMQ!r!oYG$nMfhqf5YRW#(HD!;armU)`DO>i+ zgaw^6VXezd*s4SmrfXrsHhwf_e@`2;ftkkaP?|AowKrx)okomZGGe`Rj9A=IBNpUl z#4P_9vW}~U3^^lf(kMfw%jf7yyA7D?i260*O9Tlh=%X;&9NKa2)rqadPS+zQB{T3Z24Ao)xoORf!@7nD31#Om^ zrOi&KX)_&LZI;%q#d1z*vD2%xSaYHldt<`ojV5b4uE|a>)MT5YHCdXjCevxrU}s7+ zSo#bN_AXF^jaSxSkMF9pu-)ox#~5|?+*6&I{^`MDuk>K!H}+r)()paMO%FEvqZ%75 zsxerm#uVe!*kye+Hs^^dGb&YO<#)eCd+(F zW!bB#vTThY%gnlYWW5?0W|J+$wx-CiAEq)a|7tgQr*^}!*Z)9w);|~|$N5~F{z8d4 zm&09qc$?+F(kG+8ZE;Tb$1_zXN=J%urop2FIWCy=}F32ab!0#i1$K!AP= ze9e0dTWubLb=f1><^2f$(nE*~dk8D9K7i7`4*>5s!^y$Tu=7=T=>ZQJnkLnSBjr>Rp2; z+pmJe^eQYUtc9btwQ#ev1|GWBKx6q8IPH4{HsNJR3cL(*=PyA)#3gX9y$JhyUj)@# z7hrI|3sBH_9&V?ehqj03;OF3T@a5TA&ILOQ$KF)K%<4k1AVd3cEj_mJQ%2+2ep~Iz)p1+%wDq-M8%!Z#@BIm<#vF}((NGp z+XlW1w}IX7Tu_;p3oV^nVgJmnFzm|~(3rXfj<#)vunC)?_H7P?j?RH2FE)YtuuYs% zwh@XmHbP5NHmIg#gHwGL1oq8>@VX5U7`p+SYt}=Li1qO7TqYb0%mnVW0=*>b;Pi>L zknFJ*o|dhFVUBB{v3NBES*?a$`KzGKXcc>M3hNS3+L)3OK8_0`9L~4lm@E!^_3X z;KA>uaCy#BhSE*LiytnU{XIEX4DP?@yt+oe|!k2l?(=h-Ge|kXCVApl>v9>r^B|XX%IUq z72c-}fdArC;73@07$r%DbIwViYS9nE^%7x%a$i{XCmzzU?Vpb$PTN(jTv%+E5*f4mO5efzgArKrE45_|BFw7wk1{w!Iw1z*} z$}sr$Re*}u5*X9$2WmHbp|IKqoXWjnUy&DR<$A)@H6C#OKX*`={GD$C zqb3={`N2k@)7KCi|6KFBNTf!=o=Fn+5Iy_&T^<(ejsQ>Ov94ynVw zydJ#IQUi}gs_=HQ3Tzvq3;}(WpgBYlCVDEscT0Jgry~bnWo6;Yt8QWYmA^vjfj@%E znqNZc*dGFm=@d>meiK|&zX;i_pM>Yv+64PU?}fpc?}Swo-UtP~UkPQ-FN8yC&xGCY zTZE<89|>uP9thT%O~Ui>_k=C64T8VZU7=CswlMNto$$8yx-hKds&H#{jo>xrvXB{d zQFvf`UNBcUE2O_XEv&yt!pXg&(6F>pct7-{@H6r$nH&HPDIz~`EHbUr}I7E2r zm?6}>P7w|l^%HW2#tXAeV}-N_kwW0MP{A@eP*Bna;bWbTaDSbLa8c?al*>B^Mdz)B z?TgHX9DieB(~q9QmI@sqf4YWn*j-h)_(4H|q?zd+AM!$ilGyGl__wq}(*zenUdaTc! zfdeX}iQg*JFsL%><% z%$7~4n!I#DRY}O|s%K}jtDXjJuiAH}pvohh-|f%xZ#qXcuK}lycA?Amdv*lM~SxL z?{ALc1Wz~d#3V1VzSK{=_KJx+EQ7`1LE+-5?NU*_p||Lx*;n+4O%}UXq>9C72a2Y@ zhKl2SMv1E@j}zyVOcLSwG_lTjw&>aaKXG){BGK>VQn8?Wx%kComFNs>#JK+J#H4BK z#n25|qJHT{@%E)0aq818V(0H%ad@vC;z_SvVr!q>qQba6qQZ(ou{FO)JdVZUkcI=| zr;nxL2$eFCtdEEtfyYFh)Z?Pg^pj#oW~Io#A`U%E;@hUvV$zptF<_9$x8bd*{JvG(Ez>4y7<>{l+&+sdBfg63(mTWnQ@@M$tA2{ryMBwF zUEC0l#$uih5R~EyT%i-<~^7v|-0vhdAME^1+jILD1uyZQtcuf_5*Q+5u?tvrU zsN=784P5X`6I!6QKo;~p@>xISP1~@U!5Ka3VAr3Oe;L#>{ zY_ch;%`wA-#pbwZwFPd=w#1#=tZ>yHYaDpM291x};>Aik>|bq3}ZjRa+!1?=_!eC5aR zcz{2S4huk;=s;Y?Ic)Fy1tUuh!Ks5nasBWx%o-Dpb0$V$)U-(aH7g3Y{wKwri=%PD z@))dL9g9CRd!yFIIP9^d54LTK#}m5}aPXeK_;GI{j@aK1PnRa)ud-w`Io2PoPo$uF z8o+U0;G) zqn6^|7fbQc@MU=L*)kkEbUErjS&qjCt-#<%E0EGxqFwV!TsmMCUT<85^2w{w_3mnn z?7IfzZmz+wxV311Z7u$muEXlf>u_p#CTg9}#DbvpXm)x%X2J%1Q@H^>eX?+Tc@}PR z%f|hOvhkq9M%-P@V`N)x!ni$~P{kw%Pj1h_K0JQa)XniCfKRE2c!lFGGZdQPIw-;a^-9oI`P>8C^d$BiXz0Liz7jtG8 z;r8|-TsNNc-d^rQpTWiW{(doLCGJPl>-%wg!~y(w<^U#2N^s+`5+uh`yuG&+?;0P( zb6XDL4)sGgXw@Oq_;(0P=aivGdl~K>dlVR;L1rSasSJccs!#5OYTWJB!9k&!S7`S+tvQ4pp9>!+Xi+asAcv=p1wbPaMC1w)Pis@ve(_QS%ahT7C%? zeq2JiiI=hU$z`OZD>%L83hMdSVE&OB)Uv9@30rINsPa{OIR7es`gj#T47-MR8m?i! z^g1Tfb^PLT1Ly3yfv>dd(0@f8{?}QDd&b_x!w+s^QQR$DT73(nJZ|IH!rQn;_YTUh zyn|yq@8F3scky-8U6hHfN4Zn=_`$gWPvJ~pD_kb9VM>mKF?-$y)p zA1|0UamHX1uKm}9(kadOp`{t;#y`N;GY>GF``9eYdx#}!kMQJwkMO{|N4PZgF^1GU z#@D_rIAdQ6zS4PuK}(RbFW`z7P%HNn zrgeY9RpZ-ndqX>B1%1Y`C7;n==L=q&{{<6YeZe#FU$KYy6+W!szgSiJ7vE|A!+*2>;g5&^us*aKa}IQ) zkrHRqfed9&lp&uzGIZ^Z3?<5Qzc4>p&O?)>tX;D7piY(yx@9TKOO8g5l%qMhax|}2 zjwb$+qrNWkWH(rzK4i;N(Rq1_`zlYbY!qlpiUPHAzqAxopcAbMBx9mTA$=5S>LNwX z&`_kpr;1dh&HdWKl<2=1N)*3OiF6y4=&FJ;P4QDE#WBj1wT&NZ`R5)q3*dlWVT<2oa=SSp<9PQk#(PdXgilLpW3 zNq-A_QdV70QvcbL=G*k5ri5N(JHHnV-QSBc@ARVLKfUOPy#ej-XFwYk8qkOm19GT0 zphsN>oatalT1keqX`vy>lo-;`yM}b+k0G_%8IgXX5qZovBH;drFr}rVOsQX% zDd|+1(zz$5G)UQu-g=nP@H8{JzSN8?51P^FyJocWml>V5GN&7{=5&3!If*;XY4Zhh z8q{h|`Z^YL3M{DaFblf7#)86+S8SGPNdy2y2p#x2BOBt!Z+lHI3m+zIa(1vU0GY zmwjw#%M2Ux+F?W0)ixx&w4psJw$$NfOG2_OjhkmntMhGX%SBttdTYy>UUt;m%Z@Y# z*wNYfb~L!aj#@9-(a3jpbY0z^EWGS#M2bCa=G?yWe0%P1Z%-AkIlE8Qfu^`QkViiU zdNRv_7VK~!g)_ZnW*T8y#wQqcSab+Tr0&Gy1v{o9a#5D1^tu;yzV)KHir)0b+M7Z{y=m=W zZ#pyIn;viXrq&8?dU2QgoPYABojrUg)zOFKqI_uQa33;V>_h8!`Ow=cAM$AMp;7HV zw5o?MZFcab^%1@_eW)*mFYqOq?Y>lY!k5B0ckptnFZn3?QMM)beGl*>l~g}+oZ&~l zS$^bN>PK3a{ODPWAMO6>N0E9GYIc)QdW?jwjF6D|A_QB~*SxLiAcfN4h1H zZ6we@AA$7ZIj3-pz*&|8UD+vc4v|31>jb*=TA=oS0x25;se1u+#R4^t04i7jl)M$_ z+hL%^SAaTOfYQDLm1r`0Vb4e>i_x>!oOAe>asPdP z@^ba3|04Y9aE3qKnC?&a*ZR}V0)IMIBggA zTK*}RY-K~}gkA`_*oV+Y2%)FFL&$hAXD?0-p?=FkC}B$oN%n`3su)7GS3_v}!w^zz z3!zniL+FcUC`DU_(mJnDstgaMo5`VcXH+Pin;l9!R)^AH&VSG-4W&{HCHHHgRPZ2_ zx>`di;&&*`Q46E3#$lB297Z|*VKl9G82M*}QTzBX+Vo!-nXC(=%{#)Vqa=(%#W0#z z6GnOW!sy_uFe>^MMyut*DMcrov@FA^(mkA_f;g8VE}ZN$IGbWzI91FEr$;Np>Eq^b z`cN274M#Z(@=Q35z8+4R&EZt^I-IP&h0}VO2zss&K~^Ra)WVyw*sX|1FXtIJe`cQWS01jv_1LDB5NdMV+ou6e@|L z*&$Js8xuu^{rL5aD4H`eiozyE(T`bCv|~{e*{+VFUD;98wJnNb3ZiI93IFb~C^{lW zQSrGbT3s7O$+x3Ot%)-)pG1-Wn+|E;`~s@0@)T}Min45f6yg7Ze~ zrR3%&r8_=S8tN~l=1?gGL`x|%o_{AD*>1{oXDmi+m}06iLacL`s^6rSzm+N;@m16mm*Rx6ewc_a)9Wsg?44 z=g+w#rQwZIn$aw!DUYSp|CyBRUPoPq<7j$n8coU;(PV5DO$Ij6)NLD0 z_4d(x7>Xuvj;0$f(G=?zO~>7%Nx?IkBD|t$qIWbc;XIZ_zR@(+FPi)%(e#T;k-&MN z5KUEFELb$n;&PHp3zx6|Umo-0aW2!jnEvmaf7hE!KL71Eeh(imL-{>t^Lx+X<g< z#rQLSdqh(SPeU+I%XywASDv<&JdHIxtsOkg>OAe5{2jW?qv;-hrycy=q=x+c_`8ne z?_AH{-G%4DG@cg)JWq({%~_sDM|obY<9U|A^RAoc;Vzz+mOM{$c;0^GdF;#cdJNC= zpv*MX_LF8twjVkWN}_jnz#o*|`-Nm5!gMoR04Noi$PqQG4=J5gkkabEQ55+-iavdcqUCR+NbXq_O=^y! zi+7?({#q2dUx=dr{Y4*-BHx2iq_H=O?(B%7#haqYaBURjFNq@cxluHB3U4c;qv+|N zDEgDk?-R${URV@0Kosrvh@wRMDEe#~Mf3IeQ8kMC$?)HPkEF)7Nc!<2k`y0A(m&3Y zeQ`OGPMnIQN#&8Gdw}-~d68t96G>}VN7ADOkz_QTxAQTPls1q{VkAXIaXzhoB(=Cl zQl?EL*>GNMi8|-@$VSqPPTm)_Mo?=@1S!==kXB6u$(`bT+K~u4yqEW9xe+A4j`MsL zMv%(12%0!Df=&&Hpw8F`G7jSXnkVPr+C-2}FV4bMiQxKjI3;`v=iKga8q*L?jaS0S z6~k%zp>QhP9ZqMm!|Bpe-sjE;r!AwxY4Ct>(v1n{bvc|uT*65-4JTvGaGKB^M#Z1Q z=*IIfYN-$79O*E+ToFb)_lHr&wlGp!6GnUHhLQC+-v6g@es4?|`LHk=;}k|Kjlw8f zl^=hF(ilEo`0#O~?P@6H@NvYNk0*QhxT3r!lm^ZTrM%IhRNFt4o{J>;^S1HvZe<8Pm=QuBhK11kgb->B4535LAvD=A zgiMq|sPbDd1wId^qql-d{Y)^W9t`I8SumBa2&Qw>f{6wPQ(>G;B=}O`aJ zWYxQYH0n$sm6Zh2lg)wjZ&4trjSnRG{(75+b)2HYXy)cXEWEm@TXCA{?uCOPZ?Z?L9WZl&+sSz zf&Mfk(x2;fA7 z3aEb_kVgg3k38VECQ#preCav~DBU0Eq7{&VDnI`$(7Gmp_Ma8#=zf8UHwd(5ra%KS zxPBKVP_=_V{WS$@>X1;(BMBY2AfYcM5^~CxP(0@>4b9*ZDxo-g3E8Sk==~Qz+SBAm zA=Q3VSL8?0YyGHvvL7iX`%w(|(Ofe>%H=HVg15f3tntr(P>pI@#)8R#aObx5bEAZwZZx6Om1f^_<+h$HrR2Jj^K4i8*x!{3d|fF-pW8g&Tqv%=g{n@t zkk)1wN}cXPS&1%m!o!8GXu5EImNQk=In&lMXBwXAOs3_p24IZ>g%6CE*hqJ!TZX-lIcP2%>O?N!y2XM2L1_M~;lp6;!-r_7P|1|67>}+YOtSxZRn}CVV@(?;S<|3sYcjI7rkXA*8qs7$ zpN?D6_zhOnFvg19!mMbni4~Q1TGE5tmh|>hxA(K4(JmHrUBQAZo|w}p(VTW}GN-fS&8Z>WoSIC`sjkC}%5R#{$^&K;yTpwC zrkc@SPcxFJn$fA}rsRIgl(uX(rFRoJt17~jhMSnu>Tf2Lcf*AC?lYln3ruKXvI!+| z-oKH&3Eh6kSyd;DNh6cbT@2?(9?f#LwlUp$YeWX;j3{xN5zU`$L|Y?`sKCUC^1d3< z>T8BHve1w`=Ni(-ctgswH6;H(26XMN0mYUY(5b}+WRhY)lU)p`T-JbIHuWOqqrJ#< zWiPVM=tV}Jy+}r>7d1cXNqdj?q=9RClG5OwROHS1Rw{fRr$wJkPV)E%YxU{IV13f? z(Wg)qea;Zqqj@LvXz?07nmtI5hIr|bprl7~k96tmFmQ?zJw zxE8hd)S?Nkn$&bgll(Sm(&~|#bXB5Be^fQeszrmKT!X?^Xi(q)4RUnSAmuJ~&h}NO zoqN@JKc!9`Qgzy3q)xrsdQi?;KIgWn2MrzBgO2<4pzq2($n~Kb_2)4trYu&Y1&L}j z-&&0(cBoQ94Ubo`LzO;^SEc;{s?<+ImD-=E(9&`hl3%Vu|0S!?b6XV(_^wQA`TSt* z4rTf^UYX1Sl*w0JnSxrBh;K$Dhb2m+lBh(FEtRO~iy{rYs7Oj%6lwoRMUwa`5-BK> z=RE~J{wh%CYz2yxD$wd)3UvC7JiXv?IJ#ELlUgbl2YJqMmZMiSa#X#IGqlFYQH(^6 z{&1dF;XPSm`(^3MELn==Osy(CSu%Mk!B9he`8;x->6pg3lAs# zLP`5iEM5N-WgLI5?fB8C9hE9Rp-RFh z{Py-E)-3yo%S}F_ePtU~B($OPyAQZ-*$2L^@&V;4-lJ*!d$f4dianOJ;&X#mEGU16 z(XsEa`T1K+n*SE7bl;+U*&Fnac!L>_UgM~luQ9d9YxLds3jg@O!m|387&YM~UXy)^ z!p;}C(enk~t$mJNL!P7V_h+b^^$fdgp5dKSPjO?vrwH$!;ElykFsA1dEH7(8x$qVY zX?~1jraZ=Z3XgI2u17e?^AWn&Jj4$JAL5oT572JS11#dqt{x|vaY%GC=09%2n(0mW zNQq0{eXQ}kkGrqj!yy^>ut$3%7O!YTN5e+kez*a@hBhF(SC13N*WHg;k&&z@T%_( z+**4b<1=`Sp0;baa>+H6*S&^QimzggKR*OLcYjNPm8XUW%28Zd?pmg6AH1fNG z4{9#s>a@#f`Ti1?F1Und8kcbCo{M94N&DKBd@sz65;|N^r!Z1Gs$L0o>fVA2%=G zk1KiXr!l*W5uA##t8yQfhwsCb+eN$%6yc0_d-46Oy_hV!7msEY;xD5@lpH9)QQif( z;_MzC(`OIn-p|K%Bl2;|r`;Gie>bWt?Z%p%Je*;chgt`B;U3>zXmNfgZjRfDKko0q zgb_P%`^W8AKW{sB%Wp^XjoZ-EcpLie&qZg?T+}#s+ZJ(*bJkco4TuS3&-by#_MEruto#fwdAP%?ZC7QA1Le`c=6xWB7#y_wKwgSCUJo#)X&KYr#ly8x6)#C zH(Z2KP75*Ge*yZ$%}3Qi|KYVs^Kj;(xu~2y2UqWzjqOKgVZ^zaxcv4EJp6PzUTB|& z=ewt3nbuTXW-$fBJtkv&@FZNDFcH;llXH<%gk%?oh0-9D?>9gK<^RAgqrYh&?hg&}Upa#>`2>-YZivVDkVp zDonxGNBU#o>12$#mV{65_ruYz67j*8z8KJ*fE&~ku+AtR|Je6IBi}f*59^IK39+a- zFa}%4Mq|Y+DNb1yg@)OYd=Ehc29|_l)yXilJRgel>q78Kb1=%h4nmhNff(~Q08>;0 zFuA8chFdYTb_4td0#-&!aD1X4Y7X+n{bPO5eWo{-F7`tGOi!Gd>w%Xzk4)*X8wQB3 zIO3uU@9&*)ZL<@ued&nvKRMvgU-l>{*z=flc6i>%7H9BScLpBTc#K(LV5B9UNw7fA zbaUJ>(hNKJUX93kCb)LFF<#hUgrBw6H23`E}SO>4X z(Z)@mwXpARO;k|O#A6y7m}sDmZ!LS^EN3iLSR2idq{Jy>Eir6ti0fQ&W z`SYzPr}jpiWb#U^b$ub~2R{>&`#up@4tp$?On)ezS>7yO*>YbzU)(4j zt*jR}*4zxHq{Lz@uh{n&H%BFkgGTicZCAvI@ApQEN6&|fGoA*De*ZxHY3e7Q4)79}WVnfu|2c_j zJM6^zDl0Mno|!nI!$=I!>m_P=>xyp@HN{I))x_d#B{B1eoY=PGZ`JMlomJ=cKUJMg zdQ){{)03*Vx9(TzYuv8t7gt+Vxb9q)+*Pq^o>F<0Y*cAg;flhll#4s6EM;@5DYFUf9_ z5wdd?grU<_1kHGLVV9$}prD{H#62|-CZ949CgoZP(bH^%uHFtpmYs|6quX5weCRD? zR7ixRY=6OeT(EFGEL?~)kqSi}vBKS(@j}yqe!|HmDZ=QqbfL|2un?m(Qc+8BfAJzte)ed9|RYbWTwC zbY5t_cTvcyzAV`8uMu`{xGHqcye@bQtP^^N-x4C7?g*CJ^}?g?4Z@t3d%~AXO+p;s zA?UpLC3Ii;BV0T9SD2F3EzCt3usb9R=kw$sHcKAPE>-}mX^Jp? zxDp&qQs(R>75Kzs?|!jUgXg_^K((?utoo@A{;eAD@PQ_by{-k%PH96_nGWRU>B8Oh zdhlz3KB!OX32K9SK}VbcTn#XUwJt{BV`2=~)J!1uw+U3Vnu6K`Gw6NQ9A=9aka@ro z*5z8kjFr|9HPZ&G*!9y1PQ7u4i;XT&anTjB%iW;g z9(VY=-UBxO=LuS4yk9!FkninA{l-GS4GmeqAK@afkw|eNu?ej)r0X#X$O~ zSb)C0;V+AW65Bo?XvM?fU-6*)Dgk0{^@Yip2=j{i!MF`c5Hu$lz7OpWxv?o==raJ8 znx;aXVj6UPN&}tdbWppH0dEfugoB$0LBfK;&@^%gMD!U7TYZN?t?6)hsxSf`w2c6< zaU{$;GYZU#M?>-YF`zkfEDX#T2bp2xVYlN1$kCbztCmSneQ7fIADRNYHcf@c zbEZM}py{9(F$3BhXF`SMEEv);3*JAN4Fk^2f#Tx1(6DYEyqxkMG$zl71F!(n%of52 z*+nq)%_2B?eKEW{x&#)-E`|S2FNKkA%OJR58K~$ihl|UX!{mflGU*O^J>T$z6Ms;uYrjXYaz5^Ey&xggR0zhkgAjk@8)E} zxVM?ml)4^#udat>umP$|H^5uNERb231uDO?;NQ4xc-fo{V$4SP4|$w#$4zi;`z9Em zoCEc9av<%;f#NMk!0g`%b8oE2H!F=#pu)lm33|-E_x14i;KhMF~q35Cd z%6VAodI3Icz5pS=F2JIp+%M+JMb5#y1V?f%!Nwn#VBp}(pmpgo9C5q?KG|1b-?uC9 zC#?p8&ep(Kn_8H^wif1mtc8rEtKcABg%*=*uwdymkb8X%X2f2H>qoAGn(htonR5do zA95d_;5x7|5Uq^V*uhFa7~EA9(;HH6KFbl!xGY`yov9cmz2cAHkk> ze(d`gCLDVVE?O;6KcxkR-fDpcwn&p1`)ar?BtPQ`oNh45p8J241z#pxN#@ zj9&R1nqE8y&#)ITwcrJ8{rdt62EK$%^b*DxyaJoqui#4kD~R`e4X3kSgVu-F5EJtT z#_oRu6Xo7Q%Fwr9cjhfTG<*lMX1{}uyYC>wy%mZxTcMHj>RQ7&uWrwKxb*uytR3(H zyia_93mR?UH@*$BFSkLR#YbqL{}F!N`v|W*KSAaCPcZS#Cr}P+ht+xQ@S(FEd=o#z zh(nxXr|<vFK-h{7uzlPC?|nNV zH>(qD-*m$E;P3Eh+jnqk{|+(HKOnB)2YCPZ0bL0{p^W>=1^xR8CsTfb#*tspTj4iM z9QYfio%juDs(-+C*dJ)9`U7J$y5KQi9Pm5U1v9k&!j>_AVcVI%ut@hGM34Iioz?$f zm0mae8rKbpXS?Bwstil^m0=A-WLVTX8CH5yhIO^buy7Sw_Mf*bD;gxr&a9SYwdJzx z@!bVxg2XMlVc0-$uZq-IkwYLp6MjXb2f@RyI0J~|F`7X;2-jA zy`=&xi&bE!XK+8nJOy_2vI5)uQGt!=rN~@E6xoZhiY#-JBC{q%cKEp>vsY7MIo?X_ zV}=s*U!lb2l_{~31|?SeM~OArD69))Gf!8A?e$k-!Uz?1 zcAW~79OuluW)=3cTZQveRN0~gRaQD%m0jAc%5Gm$Wp(dW*(n`0wjI>in4xOSZnYX~ zJgmlMHK?)wBk8Qes(PLVPIq_1&0|OHi1Gr~K1e8z& zRKNlh15^|-P!R-#-@ecL$2_NZ_r%W5?%DZ_MzbDlbJ2%Cef2p9M;|U8(1$wG2dB6C z&_l}rM*A4RxKINayvhIqP8fh@t^pK$Hh_)Bh9Cpf4+v-d~*Tf7q z1e-zC7&B0;F@x2|&EU!%Gk9Fh_i35KdrxzCKG+<@#pbYMzc~y@Gl#z~%;8A0Ie0i) zKvFjgu$pcGky|;J@4N-H+tju70$_gOl@g&^*8JriJHw%8f2?{&(w_hRvMrd$iVBsr)@th+VGeZJ5H%K7ohy=1zC2;LAXA0IzV6>(y z7`nJZYDZV-KiU-v7rR2|U9OOD))hWwx`M3S6^8tBg;|DDnC~uy$vvddeS#EBmP_IB zJ}IodAO*{8DI9+(1&anLtTK{8p}P$9d&r>Uc<$RCDTAqdWDs^v2Hi4cV9tHspMRIZ zb{#j6N!&OK#|^wf-C+MbH~19g20jUHFe$|i))%_Lu4*^f*5U?>%sW6I?+&2Xs{`B~ z-vK5r?EqhPc7WNZIzTaY01xhSzp$nQB(`yGp`|-K_HlxJU~Cx18nDbfaL}cXyd;A&n|kv(JT)b{LBNs z)Ox^b6;JqW=?N3PJ>e#29sU{Z3GVYfq0c5y2#xoIL6ld@tzw$_tEtc)>$;Z&+>Z4d&k7 zaHOj@7>0VoqFLUMvC13%?)C=hNpFCg-q0n_8~n?>!RU)ORQ&UX113JuQR)MaLVRFY ze;>#g?*q1+qd0w|4;+s3;oL+Yc$nq`h4+0xS?&WdUwmNnKOfLB_Js>Bz7P`R3)g%3 zg3V}OSUB4ku5s4l>m9z(a>N%jFZ)7kx-Yyf;_SsrUs(Lj7wp?PkI~oOzpxVVBoCo`Z*93o%&hrPI)&B4@+8>Vo=MR0)`NP{3f0&)^59P)F(D98wM1S>% z>=u9ctQ!FTtOKCUEdc6*10cUg0K^UpfIgD~pk`hGtXLHQKeq+I_yYlOJ(2StuW}A# zdH{6G=j@4R0noLIZ-3|Kv;@F4oj?e)4218JK#1f_$m))P(4$`<>>e2i*;4}H>l2qYDDz;j=&pd>05?>H;~ZED-9{fh(d&xm{pd4C;$>AO6jHFJG!?J0dl^HGvS|EpROXYBL zCBL3?NG3+fAwF6TxAw@PFis8y|H&aOfwM{y)Qc6mbShbE6zA zTjb!-#`9MVfuHJ}(Ww;zt93)b#UKPyjY2?f8Um-xL!iYn1bWznz%siKIN%ThC!Ipz zuuBMRaOHeYSqK<+2!V9>5E$th0%cwyFu*4Sl6-lZej(r$5CTI3Ltsi!2uunNfqwE3 za0&^5DlYpKA>c2B0CDkWJZ&yjT$~{U`g57gWh$59Tzt6v=Ep8^8O)`EUo(bFCQrkh z%V?h77M}JAp2vBf*HND5TAud+f6jp6<+#kt)Xh5t?(j1Dd4#|YUgpQV?CR1GkV-fg z#+jGZF$7FGBj$rm2%NJDfl!MOsN>IIsc{H=dgakxUx?U2X@LKe5)KhHuCqq zS`HD*ocRWK5_LKQ{F-{KaLwR`y%i&;OIYf1r!{m-~=pdKFOU}C4;4TM4 zi5zy?@v@uCp}(OVc5BHYy*(Jpnu4LKJ{ZbtgCV0j81}sihC$DQ;m3cV;c+=Cc%)Y9SkvTK`^8t2%0!=C$5U?hVmfT`8WtZ=LLb{HrEd~gW%AG zAh>cO2(BIsf@8aaVAZA|=&>RQ8s`T=!n7dp85;zb1_yy<&mdSR1VM^V5PXybftEGb z9|m0as0P8GhCnE+4TQaK0-?*(K&Z$MgqazE@ahKFf9C_?z|lY`-4_V$QGsB~^`C_6 zK`X8gn>gR+e&0aY%Jrll*O&LW-WHvsXz*)SL132p}0MdH}fTkhO|;D1G6&jmjyJ?sZsJN>|8wI8s#eh?Do2QCBrpo#fGmWLli z+W3K`jvt(B`a*?| zFRZus1!K-9ifQtJ){j0g?wJpq%JG5n8$Qr>(g#fU`GEO4A5fd;18>Iqz@kikF-C_1&chHM+ zhZFPN!DX~N#C3ItAMWnZ)zlrT?r>LV8|(@nf?VOYjVo+vlK^`! zfyxIGSaMAQzYj_ve2oMiOp$H;a?W}RzwQV-4>&@?3P(5|<_IyJ9bt*H zBlP54bBzxUkaphz#$0lMnmrCMXR!m6k8psFatGLD@{5T8B ziT9t{c|WSS1MgGm*h9}+JE$(SgJoCkpkbdKgh$xHgAsOM7tH%$7IqNB`A|2W+d{5r z3-=D&!mZV|aD2QiEa_wmAr7|ixzz^tR@#7TrVao8ZNPD(4cDbMP|?i>BrY~EPQ?Z` zy|sqJcdQ{X(Hf3!vW6{FtzlAkYw&QfhU#`Jh~@mW@YC#*oR!3xe!vI2G97Y%i= zg8eO)kW*m^@5vGx4_iX>N=x`UhBM|vEFsCl5*GZj0BNZO6kfN088H@6x6lG+54M03 zFAMP1wSYA>ysw;R4j<2$gJzUDSWPtt>#pXY>tGIF|C+(w7iJKhW(Hjjn8Ak#Gd|v6 z2HHMm5T$Dd-#+rbd9EoOJ!J~z8%#lOqA73RIVYd@-+TQs0Vp;Bm#Zeww9^Fc&NhK{ zy-fH$nZUhPV;Eg-4A0Vxq3?cUxVXp|+6Ed!Z+Bx@t8NTu-xxt=x)Br{GJ^a_BM^rf z!69!W&Z05`-)cjs$~1(XM-4%;!Vs>EFa&pBLx|Tggx}Q$&?n0PcJO!rx0f40^>71d z;V}X5#sFgQyaQV(l`(Nb*~&&PF+$h4v0A0PX9t_AAXwLpKT7HCb^f?plA;EA~woU7A> zd3l;3IiU%KD>OL^SQGxZYr;wuO{go=fY2KnaAl_kG)>b0p`!-OG1GuOwd$PVsSa0< zs>8*l>TqPBI;?e7hvCg?U|p&Pr5Dv;(`Ger2~&fV05#~S!ib`;$4E|72Hh*E8AddbZWLo)zK`)-vq} zGuP*m`kl2*{LTtBzq75$-hKqK zsrwf;^;0ct=RB=wp_Vni{>(;f|I7|>rdH`lf; zHh1PnR;l-qb-M9^Z65o9-T3#O6`py|9u9cVZhfz2G4a)GSf^^%^tOua+Fr%9e5%-j zl6UO(ig&ER{vETu`<8W>{gyfEzh!Maj>&^jZ`g*vubJbC*X(@H*UYx2lC9ib$+G+_ zS^bk&%y88!X5sLPY2JCs-p+W*Qp}>virJl%$EA zu?J-jS2OF-H#QreVq$g{;LA^eO&=lbL5iofPI_zfZc1& zXSqVtv%Q6PS!gC9o&?~Hacaoakn#> z)A&qQ+L*zX#b+?};0(68_%^Fsc$@Xnzs>esNN0EZq_g)`w^+l*TkN;PE%uIx-5x`1 z`!8f&W0Af0LALsV$XaKKY>}GC9-UA!hfYcs_9BgKi%erDjnmkL%c(4}Un+~PPGJ)_ za;BGk3XiUKldTB7$+W-SV9`5outwPpHu}zWc4oqL_V&*;X0ZPnbN9W*g7TA@&x~Yd z#s3|BKg?qc1z%+mkFGGAxmVaV^(#zq;xfC+E;EZKm)N|8m)LdfORR>oz6?8GWYXss zm{-IF=Aw6jX`M}Cm0gn9*%#;8geCl6mi~Em^z1n%?Rt(Syg17=mYiji_0F;jXU?$d z&S#kM^V7_G@oC0%PBX=+Q%u(J6w`Q;$ezwmWbqn_tpD+o>`TZ=w&~FcrWt;Mt!qEd z-XA*7x&|C)JMxdQ+^NUd&!z-s8kfK%o(W8P_b9UtJIY#r9AQs(9AODAM|kX>!%S`X zVU}2Phy`ps#BN$0Vs6R*vE6|n2Y>|o1ZL^HL8 zJnofRG;2JxolWuG&eF5DG5vAd*wC+A+4iWd?56crR(fR%`_N+x`}#bJ)y|J%6)I6I zD}FOO?6sNA%G$)-M{Q#1B^#M(%LX=Fwt=l0vYzc+v5sx!&ZTqm*Dyu>YWB@`HH+!F zirLLy$zl$yVBgZ0GvWO*HqT%g+aZr+u@jfFEnAncsaGPH$J52EqGb_VC0)c+1}$XE zmM&nWN9Hq!yYtwHPjlH4 z*NTye^l4-$yzcy!;?Plzjiy7P7!<3DhZo*8q7_;m%Mr>}b zA=CU|zz%5|FsBas>}X#-W*Dx^d3ieQX_7Yc$k$>^KWVZQ9Zgp2p~0*NsIyLU)!68r zs%-W}74~v}yHHm8PslNA6^?~A3p4jO3AUwwgiO;0VZ?}E!qeD#p-=I5;k@xTp>b%P zAndCZ!XJJTb{NzMM+SWmj_#@!_B?neEY^7|^y>Fo(AoY<$jYq{=BSqoYCT^F`!+oj z46~jH8~&9D?>ZF=Y|SHKGZqP%e+q8MxGG-Jx2)g%@#V$zato3%oJ)r z-WG1l(uJt$By>#_h3}PV!hiOuLQvREA@9HI!qBJ5!b8)mLeF8Bg=>2*3T6dK!UFB{ zLT2x?f_Bttp?_AQu(|bwa1)LTFIOZ8ttm$Y>-s~2m*0Ov$ozvsrwjW9_z)`uy2c37 zDSHLuW4nchvYo;+%N@e?(Cxyun61L-q9{S4yIFX&dxH?FxmI|zVWrTcDN?wyBtkI$ zvOricbFOf=a+Y8+cDfK&JXtt4V1iJdJytO5JWA-BHe6WYH$*s{G(aeH=_}M9=_#0- zcN64$I`Ooauy})9*xeW)oR9Do?tJzXUQX{IG`w^bOh-ElzK`sMLH%rmd3P*?Jzy%_ zxM?VqdFu&k=d^?XCv_puuU!!=X;NG=uUB|$)he*5N-_M)OGQKFQ$!>*X(_2wp;i#CJW2~^eqN>pIstK9aS`ZTSI5}j~>HQ%m>K26bikFAftZ$Mp zdJ-)c!XWs5Ls05Dr-D?Ssg7y;u8mIn*0w!umD`!Lse`i8&PKdU>mJ{jcI1_=vhz1< zWpulna+Qf(X(Z{X>=!s(>Dptm^2G23N}94p3Bp$8jIO(tVzdJ zeWxTV9cHB|pUk_h42{T99$8+XJin$yxq4%n(sb(^<-#2wm3#MmRYt`AR$3lxQDzQO z6-PYO5Oas>h}OmW;(!sx;`mZCao|WR(fX;am_5o-9Q4dZygphc{(R;xnvU@n^`HBR z??wlSanC|T$I&2edD>ab8QEQYRoY8@JffeNP&`oVHf*Sv{&0k7GI+GusbHMgwf{uX z`rZ`reywz&$!o>V-W$c6BR7lJOt*;fkGFE3 z+IG=#&<-(EXP4OT-fj`M>=jLW#E2u?V#Rgo`^7!04vJet{u8JFJS2KtJ0d=vpCE>N z92eicKOuHMl_+kX#93;#XT_Xn=R}H2661$l6vyaZ7F%<#h}$Oh?{Sw zh{qPDiN`!dabq=#eNWsHe~h~=t~bvVzdpW@C^Pp5TjCv~m?D$;7UoXVTSIWirGhd1W94p0`XRpPSy>CVA zQza(+s}?7veGuCg)QIb4pT(CiYenk=bz zSq!w7w zYJvIBEb&yb70!;fM(e3In8Iwalc^nE{cMN&+4eZWE1Lo$!XMGoEX9#;v6; zIP{VP)uLQ6F-(e{figU%~>!nB^?TEe&$?FATxlL?m8S66Jg-whWY>yGy$dZ139o)}=;3%h;og&}u) zqgi|(d^V>qZtUC-O-%Y@baj9Hpd5f6oY@vSX%Nl`7>r@+Lonp|5Ny0K6i=)jhCV}w z<4Knh*!Xh>d6*JE(S^|9Erc^pn28HN{ShIio#r#{mMlVLx5e0Q7=hleB9L8Lf*z}u zVsoEJylT$pzQ0?Bx008m`MMQ2bihiSXSIs6$yQ;%>#I>`{TjSDU@iJst;5)=b@(iK zJ+`dbfU5mA;xgS$IBxMK^m(=k>pO17^NE{rkX97FnIDC-N}{kru?4#w+kyvGw_^G1 zt!P-Z6@vn|VZZ;j;h>gn*lp@|bj{n24W7}6`=W8)uV^$Fw*yby-hob%ow#q?PW<+H zCw3XS3)kMx;^?ojxMX-7u1Sf*NUQxge)WFzf3+Wfc0GV+PaVMC8VB*o?1MP` z0rz$Ajz^1q@i^f}JjRCphbgK5VXoC7%;i23H!2R{p3aAH)QQ8WuW|&hO*?`;a*p6# z*-`Y{&f~Dx9L19U38;N30loE)Vdn+Mu;asH=;n7E+x8vDyzj?x)$kK&d*cKqnVv+~ zr6+M$=}CMOl!%f8i8%aMA}$zt3YVvx!g=PWaY*E8ba-+a%Yx3}=KW{T`sW!uGU6<1 z-#ClYP0rz^#pm$#qjT8qdmat;o=45P^Y~?85@uXX!nHaV&@KD|-p;##-DDRrIqD+n zyt|0Qx?RGk#1uqKGAG=& zh;YaQLKWF9Jig%;x|QF;L&53zYi~Njr*xd#^EPfhb{lv8xs5A_XW;Nl8ECGNiFYPt z;u!8P^uiK+VfN*F*hT$5CXT<4UvJz;SKWN< zJ~bcvi}}cm9-!&02Uwc^0N0xppvl|<+>^z*be4tO7oiZBWf$TBn<6~As0erF7U49z zhv*vd5DW4i;zavL_$=ZP3ilr2X8XsO67d)xnoxES~47UKZh60BQTf-AF2 zu-2*+`^+!J9a*KAV*Uj4!k^%s^e1@Q_$khx@f01!r>N9>h63l-oxJf3ziT{4_i@j$ z@8#z>xa~Q19Pt8;&%VH-KQAz1KpD0qlySeIGR*H@j=BfRG4MkFS!!0Xu-Rw$SC062io!2M}dyP*ozQ%dYukq8sH#j)q z4gUA#4c_nc7T@fCi{`eoHyJCuR)(iD&-%iHqL;L?^Fbcr)@BdT0E?9a_J!VAyZ0Kl~e8 z-~HyS!3NBVY`~Sb8_+`Y55^DqgU#`Ou=ndfxTHfPZdufbYm|*Rs;v>t`!-?P-X`qK z*?CD0fAPm%Sw$L znHnt&Q=@BZ)Tk;!jkGe<$ld#KafY3g(}N}cAPQ75}xbxMD)PD3;` zsMziQeOfQg)*#hr4H}T7K~eWL=xU7yJ$?R?2FT(x@$TlJkp`aIvqNxr%M?gx>VR#mkMU;(yb`Y z^GnpF`I)-p`%0JI{?(-|)_P#R>l zJL}WIFn!v%LZ2oa&?oon`t-ht`yGGQCx0yi%5XKH&fN^?@&p6YUu8fO4jRz0>jw0Y zGylGQG9VRALsFL*QbT7$D(CFKE6WTiBG!;(R}AUFea-@`Hl*q{LkhDqqO1@jvK(PV z6BiiKfoLPTb=rtZGK{Faj4yu~5g8d%oTo93?`=$GQ;aEnwK0u8XiTq@jcM!yW4c>y zO!jTu$J)k(P6nCKgTW?LJ==u7ZZe@yM@^_S)r77-GNF~9Oejdrlq&5_X=R8hsSPuw z^>a+=(`HlZnP5tLQ%x!Vp(*|RXiA1EW@K$^MrJ`~)H=|NUd%9~Q|ruVLcAGiCY#a8 zduHVM#*9uknvsEtInDAgr{wPDR5Q+;OqQ6F=T379JY`N^WKL!!=JffKIo(jPpgA@c zWE@~Y=lfZZ?-UC6=;6Ko2Wg-PMW?kFuik^Q`F1CM$~j&x#ga zu_DN}q6Y3apZL{^I;mSzo{cqi^RuQ4y{t(k%$oWyvZhU2tSRZRHDz42rkreR!WY(b ztj?MuRBb5O%7#9A+0c$|He@%-hK|m$A^r6>G%wDE=$s8Tk`1{%vZ0<;HZ=5)4Gqw< zCApI=83ozWi$1m#8^$N0bHD$`n{4^Jv!%i$&OA)FrLCNMc>kR(HUG9HdmTISv9}{% zKRa^hVMom)?I?e?9c^1}M}d3nsOW?pjlE$<#W{8a&+RDglO2^c+mVr>Jq0`4Q~yAF z8q~|4x{kId=Wu)avC5vV@3N;U$L#6fReRc%Wlvfq_PoB?Qz2&K(Nk%n)f)+<>L-CFxi31G975lV+YE9<3Nr-_&F+$lxX5e`7Vz1 zhVv3Wba$kR;f|Cs)sbQ&94T~@BdNu5mcmI#3b^J-S2G>S_K_nkt8}EyI!F4`;z&;V zP9(Q;BJgw~U*<$6{hX+3v=g0~=|rKCPE^0yiSvP+sQCnEH(cf1hIA*=DsZAMWll8X zqZ6(A?L_O;oN18>XEr)<#)FSDRf03^?&nPIqn+vIbk1#zaHfOno$1RiXUQ{O&oBc5hpnV^0Et+DqU!GwhI|Oa-q0#7t;9PLNkB3P-+WjRA_M~ zq?v>|I!dUIhlIKWOE^U9OD9XnVy=YFMoLJ!K|--RBviLwLc(zgMI=e+ zFy~+-r%Na$PeSJ(OE@b>lUB#8Y>TPYFWv6MPlOKF=E=U8&K z$9o?s{SB7Vzm8J+-a|@{`*W`4FeyzOBPE?lQaU|DO5XGMGJEsqE74MYN zj~FSn#Y?Few9i>a*QGML z>(0enM#=s%+8xZ#6J%u6Nk+=9G8)`dM#X(()N6o@&JN~GlVLIn=8A*=Gc-zU#&)K2#xhT1O=VE~WY z4tO3RGLi=IcjYIeP%jzhg~_P1E5COq8NIdT&)!l-T}^q}4P-P{M@9weGV*Sh(wb%| zQG=8|{*aPtos{%zq@+^9$$r7V!BQ!8d?=+?_ocKjoA19ZrSYPa#2fq@yTZTE z^HQ3XD5dpBrL^TB{~q^AdEJtdUlgwcYx(!ToS(z_HwAN~)OWg+u1}DX-e@U>4wcf5 zep23c@_c}Q(?L8x>W8; z4@-C*e&9-P@AA4%u9SSkmDXN#CC2M>^yVLsbt~D&hJfnd^j-n-VI#AfbyVB((gXgaUW*eH;1uatXD~lhBH({JhZ;3L3<(?Jl9qArgAzC84*@ z5_)GLp%Pur^=WgV4ZmEd6KCpvdgVe}O1Lh)=R(o9T7qa$tA*GWG^)_>%yP7WK``4Lv)H&0WH_l}EgzNcx z&NP&qY0MR88hp~3g7!O;&NgQ%TIo!i<~fsek~1lXITP#YOc&+Or0ecXVYbe6Sl^lM z{d1!C-+8x@%X-@Pm)QMPc-iC!Z zQA!6VDzkQ?Ivpqa{@0PJYaJ=?r6V0Ga-^^fN774nq)R6psZ$K+4sCQKPu_;^;BD!1 z-lkggaHO7rjxCaAHekmvT)l50;lQtWBWX?yw-Yfljy?diip zdm1>=o=yz3rz$>k!OGp9I$GM(P|i0RQEx|m-q?}HLpy4@Wk;D8>}bh1j*Fezw$;bCJ$z+fvgn8|w7dh87jsP#oIO*|RouA(r!zI7@mXx4%YmJIuPf z4QE8!P=vJ&X{y`Mu5Z@VUT#e@^Efx@I=AhPS(75#nkFu_rpQUww5Go`EeW=!FehsY z)U~F+zpUuyYb%=YfZK;DRGrpxK0#Kr)WM4OamG@@4@){y zVM)=smNYw=+oOjqsbRAvottk-eMWQJw5uhJ^RT2sQ%mw|v7pWGEhz7y1vM)z$T`u1 zLUvkE=cSypJ%KZsdRx$M9}CLh4DOX}=HyyqP8pBQX#kqjy+m`8a~pa;x24~OnUkca zIoD_A6lrEo+ndd3XO$VPFEFENH_b>mYDR6F%_wcI8BHExMvcsjHoI`UUE7T2d^e@M z=cZ(yX-c7-5gxV2l+Hw&QrdV^5__1^We-z|H8!Q$e@w`)(u6+dm{80m6Y`8Rp|q7I z6gZjpDSDewo0kaS0XVIKRAyA!j}P zG@^aH|KgNsL?_P}k=afoTDi!GibfidIT+DkCnH*}ZbY%44C(koLrS=5NV^Xi(t>q{ z)ODI6sr5A^(Tn$!j18&rmjP`qGoaSn1~iYepz^mFkj*>;8b8#4_5~SGij@HsH0x98 zYkexp)+ao#Pw~6-Y1Sfratqbxd~SVOXRA-<|MckSTRpPK)#F@NJ*wQLM?Q=6XyFLX zc$e!@F7F#wH0x4zr7l(8(WM7xbSY`OF0JI;C>X3uU;T9HfT=Ed|JI?j=QUiYmwy!Em}84i=KDaB3D-}nyRivvF|mx&8JEE=QXLA_opAs(In*nO^Wx@ zq}lqK;3mU32}>$3`(=W|I?A6v*QeeEo~vFZ{)>e7r^K^q0p=X~NS7ny}N*CcLfFgtDAQ zT)MsyF9?m8SN{j|FaN<59`|6o^B?S1-hglSH(>Z+&a={NK;Nw2IDge|j1A;*5^8^8 z+?ijvVB#({Hs>3MNI(#aA zL8C=qFhKSNJ5|)8Uu-Sv^{vH6EuV4ijn8Nr{uyH&KI5N~PuM5=6K?4I2~XD7;Dz%w zm@uIRSDMsdr@W8&dG$x!==TxZsy<-&p$~|IKH#tR_h^;+9;I{Mqpibx{QI~X?{2Ba zNTC{yzEt6X6IG}hT7}~@tMCZE!`%7ru*`{%0hYYQ+gsn_Ug0hFuYH4c$KK$YVQ;Wr z^$m_peT^q(zs4svuklwwCAO}s#P5EUd|c}l9@zg1d-r~YZyH|WtfZItbR1`9@t7M+ z(<|`Qf(jn9rvft`mE)z2Yuc!;;Q zJ;YVPd<^(q5sLeY5IPrO(&s`{IaG*!dl%x$`T~qUQNZ780Um66fGf^Dz}}$`u)QrG z&tK-_&ExVBHS$r$$D!9vy3gZ(+{gMf9xG+~J+w8thbFi3@Yk$7%rVX5u}^Z*b8ar) zvB9EHuo`#OaGN@vKcIKFiL)p9?bZpH&9_xpNyU=iSB|7Pm1nGaX&$q+^z8IFA2l0 zpU1}0=W%PxIaE7!4kP-W!$)7vqGQ}yoS-<1yI!8bOPkK%EjKO&r}6UQ)40dtG)|^d zD4Bc;pQ@e0RY{3xI5-ja|2T;{@h33?PGWxL2{es5fdf07z~u$UF>cXuJYjYmk13Dg zp7FCsQGn2M#k_M zN`d>a!_zpNw;~Qt+r(kvtyrv?7>j?}Vz4nW2EX)-!IJm;@Y42uxWZ!}h7|0@kMsB9 zF2lVjxwZ!{58s0xKX>Ed1G}+Bz8gcI@4|$YyYPk0F4VrY6TK$v#O|#-aKP~$*thEr zRJ@7iF@&PA-X$7u-`$RDrt>&a>f5pO%r>0gdmA>r--@fZZN;x{TXD?2Ej*6T7F5&T zf_;;saAUtHyj-&x3!^vVTldZQ`Ti#S7`_Q#Xm7$*!#1K%%m#e$Xgv-!TF+zItV4^v zYjIT38r-1224e@V#=SdN;nMt-*h70I|5v&Kk8NF!o;l0#r0Ozk>lTUqH!Q_5qA2y5WjL}*sg^O(Dd?r-1=!A*U|IPYsOrhlsE_1RfgksyKr1P zb~a8pI14>WX5t&enYd-(3^a?Lj(c;aaXmT}`*xm++g44%>#39R{*Osm=rak^=S;*y zXD8s)x8u>uVLakk&JjB>4s#!kMPI$KxTVh+ytipIHl~k4%f^xD5;PKR7lvYc(g=J~ zH5}s|hhv{{!?0@qP+atI2-av1!C^fIQ7w-W$WLAG1bh00^^1f(c z-WT5t?t@3R_r{)gdSS)io;WSICzdVffnCpc#{+M=VYy8=Gz{&ELA$$P-`vie+tvxY zDLSEaaYt-Q0?c^JaH%arn@|ChcPUVw6M|P-fLjrKX zHh&zD;fEa?e9_U@7wc#Gpm@w17eD250t~z`wU;OMT9wH@$~qyv5%=Y~S8 z3?uJL@l=~D-VJfZXA30w>Wm9Mt8m6_Q)fKY-wBs(bi|HI2mD=UkEf*e*kimMK8v-* zN%w8A{GT=Ums{hNc~+=?$`XgYu)r8Y3(Vc`CZ7uF%2#^R?0XlosxPu8C>}nmDJ22Ij3$N9!wU zIQ5+>p0rZMr-M|mUA0~8wcww){CSIbuzRz3>Qa-KV9_XU+0Y<{eflLjh5i&v(tn6c z-M))zF<-@~rZ3`;X|>{z!cXE+d5!qu_y76zZE@tz7Z`iSBk&PUy0f4 zD#Xnn%EX|dFT|(HXJWYXQ?V|(RGjgnSS%X%SaiSpP+aa=B&Nj`h&6xnMZ@X$MYn=H zF)%1s3^9?4Y(~vp1LJ^>5}*?LKK&mrHOjoQ^kWxH$`*f8{&=? z*TkQdSH;jiSHuffE{VU*FN%t_N#f$FbK;2sXT{v>r^R>Hr^JR0Cq>nd$3=}H$Hcaj zqhh_?5%J~bLt@6Kc=7PCgW`PUeo=6Y6I-{$h_`C@iV-9Bh!Wf-7C7w`7j26c_3O5Y zr$e`ja*7h~IBypB7;F^xm9G`IpI;>|i(D>-bzdsV4Ht`A74ya7^K-=gk+a0X-KUFf z22;d~{%=yelqUvv`poMB?? z;t+9e=OFQkj=$LXnYVc6l!vIZ$W2_>(N!$gau(%J?8QSTZN!%Omf{ppt?`LgQZfswxoE*GZIXis1 z@^HdvWy9nC%1s)bl>q)q$s$)}r!$ty=rSFpp+i&J%IMc=Lx1I_9h`DGZAejETEo(a zwC+Q@q;2-nOIvB2oLYX!IQ7_-$l$irt@8dqYvn2bd4zbRObF>39vw3JcVfu%O}9d_ z44#G<9{w6KIZj5Zo%=8QtoKfIUXlGkuW>eq>inb+qkXz2Zid}eaKfX))%uZQ$MUBN z<&z4I7;2zRzG7Obu>6?&B~7y78J7970S3Hc*83bL-7g`uTU!t~i&g{jTkgns*?1sm6$ zLTTDAVcCE^f=cCHVR=N1P^um$SRdLi^zk|X0T(7L`J${wTDTk#K5my5QA(TljBRrch&dN3gqmR|xEsBlr~N3c3^S3Hi16 zh52h92tRZSg|SD9ghY==|D))v?&9+a3)VF+u_vMH0CAP7_3@wZM4V zAgHPz1Pj0Z2X_qyGuGD-2<;gH;bBAJlkqSXyD%Kqi$_4uuMyyAGZKbx9tDrpM?-D; zXqLBn3>@D*7L13E1FQUTVEB4G>^VFEMvt8cX{8h4;`>R^dXjP4CQpIz>M0=WGZp5X zp9bq@Oot8i(}DA!0ZNx=LcI1YxYjfagkQDc!PVJNI%f`Ox6FZ)0drX_!#uE^J0I@1 z%!ge8IxyrK2T^kXb~OW}e<8qK(FIfO1;95ffONlwki*z*QPUU0i`vDoH$eiB~{KNyWrT73Oxg3PqI}gE4 zwZq`?`!IYpI|81IkHY=Vqd>kMgWPk+;lP9w5LIvj)SOSk68%%4uW%YxN1lc;hG(E) z-dVW+?<~l8GTz(4^DLg>0u&})fO?CIP`vmO1h-#;i+-0u{^S*~7;zQKGp@oUn`^LP z#dX-)eVxS(88BVA0Rba#!t%_U5MX@^M9Xi3Zs%>-;&%tu9KQ==h8jYCvLW0uzX$EQ z_hEbEeR%%<0qmV&1bGjQU}K39_%AdDX(wY?(PRua)|$QT^?T^6N_YsU1S%d#UYnZ`XgNv#Sbg=k}6+dj?K4ZjrU$%vxakdaY z`Y}Y_dJNtvkKw^&J6LIC2OZgV@N(7@n8xBZdXVA9lIRw9Y4kuflgJ7KlJbCK?3LOq`ZKEUn_HYE%Zbw+Y#fioH zIKj1EC%CfJ8TNZQgHFFQ^lf_q0p2X`WZ(r^9|%|cngYdZ((ZN zThLkS2HLJ}FsR85YF4^~kFz`Mu5*W$B_43+nFrKYc)%9jcktTw9pn_f1F3oMLG$5z z(E9TpWM_E7-v^%XF3l5mP51yEH$Q;s?+?&B+zXCe@`8W}FKCi@!?2UyFdMyLp29~M zxBnyb`+kI&fsb%o-v@?x_`thX9~iFp35=XRL2}h6P}KE>Io7_gDxb*=KbUpj4@Aj+ z@N1Mm+`Q}$>Jk3nsQwwmM?b^yub<(Q%oixy`UM8uzkqxT+b;hK#r9vpujDJ7oD%@@ zCIR4_8UPw&0@?Y25E~u{GAzbv%E2Je^$h~9HwZ?p4~C`}!QfvN47)fUYR!2#lfgsU zScHjJ5RQi<*ebK7ntc@BdQ-6Kpm1Q-HyHlx8$=g3`X1!gHOL1x9-1iusRkF+5X|6(i;xiYkt7O=RaU} z(GO5(?7BZUBfvH?0;a0|gfDx4!dTCrVA%8%ek_cH`iGGqOpgT7$S7z!9R<+=QDD*^ z1yk2X!?$PAFs~pQoF~UX+0_^r_B{r4#j&tLKNjY@#DZFREM(4%1Cv{EFyv<(yijCJ zyB)t^`|Dp|SNRJ9w0}dy?cc!v{0)wZ@o->!JgB(FgI9SxOr4nk4mTL%E-V2iiW6b| z=0w=zln9#(6Jge*Bxt{w1RsKvU`c-xi$hC>X|~C5FC!WFVJVPzGzBWWQ{Ycy3Iubh zaOZw1Oo~p05XCfrt!d!uoCdW8X)t<1IxISu4lBN-gLX$ch!$l)q)7&xiOYa?hLp>17diW4o z4?X?$Fi*Duwi-0R&d&|7q_zQ+CpJRF;YQf&(g@j^ji9U61g7hn;Imm1{0wV?Z=Frx zIHwtQoo|Nz_sw8c*bLo+TVV6n7O=8z0q>|5@a<~>2c1?pcBvHxd9{LXQ7cRt(gu(8 z+aTGh4Z0)RK(4zDdS|yo#+i0_>edc(a@zsbI$+$I4!HWD1KtOBK-j+y_%^;1T=sRs zVf#){_|*x{1D&9#(*;M*cY&*W7ktm@f*&f~;JvaN4DNKpgwNgZt-PD@W_#etmL5no z?}3hQJs{QC1NGy3;m4j{FnHX{IFh|!+tCa4)B0fE;XXL#^j+P-D$dHX&WXSf@Y-_~6JIfHsXBko)D?{EE$`Jhy8PcL6OCC;?B}$8BiRlhm zQg>dK=$Xlqr!KN2>8mX1`z1?86w8vCow8)Ms(?(KC?JZ91f+Bui}OCq7=p$EqVCL? zf_?(V%o33Ac>*%CS-_YCLQ+0bNT$vgk|XPd#OjEUxZe~KUt1yZ_7D<|$>U(QFJ4S;7K%w`i-L>tMGPtWCush1qt5GqGRDRSgXDf`?ZM{*V9$*z&|BxbfenYc=x+}JHo z@SHrUy)REx?B&V0_wr;4%9By?@%xAIweMFH2uU9084=9rE zi;BeDNRdd}E0T*IiX`dF1#u! zic%$7X{uyFp(@#0r%Lv8sgf-sHNr{Mh$>?^WKUNkPY7c?=&6zPt!m`JA-3co4L zI+;98ojB{Llg?%8WbH)#+yh{C$WFj$%1lq^0q;pv~{TyU4aIm|<6E54Afv9Z-xyDFq?rb>u+<<1jv8d*TMcr^TZ34B)gW#m>>5!T#3PZN zpQS-g7HSafDh*Q8$ga;g88c-hgepkLJc)$79>$oH<0NF|bO|wbis^+?9|srV`TjNJ6eMW@XU}30dSOA&m?+*RYJD)NJyHrCRrw@$rwDEq(M`Y%p9gk z4vx_z_aVVr?y=I7f>N%+(^LjE}-|TC6R! zi1q?4lDSZeoLQ_z>X&Gdqsz2N>~bwKe5DpSvPz3M>S>XX)r4D zHcZAb`N+;6%fyOZub5qX3X{XE97|T78!OkFmG8#tVa4iml+|k*t6%8~c0Q}`1Xgc< zR{zQDKAy7ssnykDv^6bqk=>^=yWg+uzQ50A_dQFCxU=>!WbLw=wT}#IC%^GpWG!pA zj8R%-3v0*Fp;}}xYuDqfecf0)C#q_Z8YRYdogN$yEa za*640JJaI}J2gqh7Iv-mn&djub6=+KnS|*U)BjHP95k`#A&)&5!NW9(krvZ`RZUXK zo*PpcO`_T>A=YgY(#f8yomCRzQ7j?FeW=v=a}t1%xw1#cKlj(60=yHJebSAPgW-p!_~SS&= zdtcP6k-sHsWO%k3Ss%~d3*n3j6re`#e^4WrUDU{SJH`hxRU`jys1c8|YGmC(HBzjv zM$WEMBc-55HnDe(_b4^erlCgWuy@g6_D*`h-c5Gw9rc90tBj)=YZz4tFwStVt19{W zguUNPRY{|PD!Fx9l{D{FB?mUD5?rE6gmYBM^6{$V${=>GoGNkaR$+RpLL3WJ$ek1w zviYY9(F#-{3GY?Nb;co5wo)O^cT|Yvyb3Woph5~ZF&5EM6>?#=3VA(Ng+xeHNQOX# zy?Opff8Aqq(p{=DUn)VCF0|%L=M<8j?q0O;&7hr-_OPv>lxoj zmmNPA_a0vM7dLu%&1f(i?bNhIhu`o*tljG8{afPW#bt(-Z8kONX8sgBw-sA z$;JhYhcrczEE%jw+(n9{qg8<{Dpeo`sS4yxxB~g+t3YC06iBp{0tvdQKpao7vDG#O zGIN;%DW9o8Y=RL?9LZlI zM>M9(5#7OZWQRbG9BCAjgZW~zDNanZ1I0w}mT{G=887>$m`pn+Cb65uWCt6&X0S1= zp1PQP>=hBIDiK+oE+WQZBI4^UVzxv?@*jvu!C4VW+aV%!DdTca6OsLcMC@H7B5}1s zawbbi`hEzBiI0$UI|#{fBO!@6DELnY4 zmh9UmOO7s-CHp7Hk~M7pFp140I@x?8G){(G{USq#y_6xrj7`4soD7ND#^xOhWr*u| z8PcXCLzcENrqf?(;ukGVQhlXKrGqqSxF=0&7~?5tqcp+!(!_d%G|?AI6ZwBqBq)RN z(L<$3nTHfPZ7oF#u1b+Ld!@*`Wm2SNvJ{!G#@Olg12Fdc0PM0JfUA3$Od5baZT&DI zvLAAu^uy(Y{cL{L4_mwX;8jc?Bs}Yb5;j*Wn9&D6x_iMgwimePy%2x67xZTI!iO$4 z$BSl6DEl6mb+8AfOzi>r_HIat=!Sc?-JrIo8y=1ChMI;h&<^Q>0~TFyMZXKq4ex^W zm7O5@+6g}lJ7LG_PDoMjggN;gaL2QQ`4>ANT(<*41s(7vsU6NZx5Kcb?eKM4JIrot z1E;VyD0|ojgW3Fc&d@fPSK10AKD9#K^;Ym$#F+J>R)|Szfw@jCU~#AgA||y!X+tyA z@y(F`pcw*JH^Vj6W*C~?1YWP3U<6}K-I>t@VXci&6VeEMCXLX!wh{iQHNv}WHdlY$ z01d|*;PSKv$Z4vFDOe9j?$?9y%6hO=sE1oA|CpcSAE@mA2f@q-u&S~SLO<2Pu&Z@& zl&gcMy|v&KQ41d|YT@zvS~#dy3xhIiAm~L6EIwEReq(DuRLOh~KGksLQZ<;&tp>x6 zDmWBU1ydhX!QbUoa9dObeT+?Y*0vJDw^Tx(q!PwwSHRqt6)^2U1t^WKfUJ^ouzb(_ zAE(RV1M`PS{*}QQ|1$V+r3{kimO)`#Ddg~_5OTW|EEbf)0+yd3C#(bx8I?ftvJ#jq zTLNdJiowCW7(VJ1gO|7%?Ba^xuvHNZT~`EQ3PrF!z7Qg;3t`NLLdLKu1lNQDpf&{% zzM%m8l?uQr;V*2k`3s%v|AL+3Ur>$Dhue?x880gz6y@__Zd@L$e3%DI_3~hXkol1! z|A3##AK1F=4-^jM!mhAfpoY01T#yS3yK-PZp97~1*miCXENIFGp?@~e^VzU_YBm&C zX2JINS@88J^J|UDf|-9aVZ+Nz*uER$_|y#eXPW_U*JZ$BaR$Uhrh~3gIyf&( zhvLpO&Tg~!JyibLK!>RCmcq-`Rq`=Q-DWJPK1zstnKy7p~j5kh( zwF{GBPe&4L|C$5~E+m2S-_Z8W^v9Su2Z(IEXR3jQ;W0!A(baZ@CedPTy= z!;x@ka3n~j{Dj93e}epypK!T70-}8*Ky)Gk<_(X4&FMd2*P|b>Vc8Fu$#R4A`GvED z&Ear#csO*Wg@K_}82noj2J73ugX5>~kbLwzv=0}XU=@Mx}lKP7y>SyA+U9S z2(+t*Fgx)L#P`0z^*P@lxst+vt`s(HrEpbD!7LQPl=+LVOhnj_$HSl}JS48<;aXQP zi2Q=V@@O!04hn{y@j>AJAPDm327#a|5Qe=9gwb09K~oS2?R)^loC^T+Q2{U~{VOC{ ze1+Y*Um^A17XY^}V7L7Xq>I0RIOH=-x%e4$$1ut8hba&JL8R*s>2-ea_>CWst$vUu z@PmE4FQlLG1v1==hD!{`&p&HV(^%Y9&plMgIg>jQIoK7xe#IC0*E`RZJt`PWNuzx5JUOnM1fnJ-|k*$YUX^8$2=o#C;aGh{Dv28}u= zSp3on_OEe*^X-ms;hiHK+Uf`^r5s_Xp92){a{w242hii6L)r1?aE;~vX$^k{r!G8$ zgrRJ0C(a(u8`#5#vG$OW{1jRZpMr4eQ;^So0t2Q`pi27*{QPSNPafI9X3mcJX&-~< zlgF@V(PN0MwuKdrw(xbiEl3({;FOCE_^q~qsupX|ddu<_ZLkKt&PTBR-6L4J!DDVV|3AX6A}*c5scOd&PM1Y8cAz#c^tPzW}L&xeg+ouV;h2N|*T zSR+VMFoMfxAHekR`;a2J4+l=)gS1dX&{j8unr&OE7iCC5Uvm2zpf) zAW-)LDA}HeO@-&+?(B15Z+aGf6lma1cVQ55T@#;>{$WV*RFu+PRk*qY#E%LvkV#^EQJ$^OW@bgB{2N-VmK7E z2%gF;f`H8n*}C%rh_2R!U>#j>GG#om6oAPi0CLZ8a64FstvBm{&F1;g=Q0ltRn3L3 z^X5XE(HxkPI2$$%nGMHIXv5hrv*1YIOjx^iCX92K0rf@G;p6n_uCz^qdUEO_Kl?O#&0kiSRvr0@RG00P<(Y!_c5{Fj8t9Xs#a%y)4&ScF|~fKW#Le zxG@R_M~s9p#gVXU=LjfyI~^O z@}U;IO4Wp?!!+T}2?^}-*MP}g>QKL29lUJRU}u&pbdFL5yE7^lO7RIvwMM&$(K-Obv zaL<;4W22>DURpnAcdU=gYVF|^ExNhs|8;S?ULB0`-p-Bq-O9D>ZQ=OZChoLhBPUjF z;2d24acVQ`xI1ArT>7SJZfId8x8+g=XE0F4S=p6xwxdcoBmW}q*pfnSe)3q@2SYbIsy%re|`CLesft>semDKPjB#Y%;gFE0Nn{nZTX;FP=N)`HR~< zKaN`%6~jrkMRWPZk(|@zpPb&n53bTSoHHCA#tD2vIU^FnHN;YG>rUjn%YwPqt3lj6 z=|Jw3-B<3(h%cP4k3Sbq{J5CdPu$NPK3rg_H|KK2i@P=8$*r?}&q;>8<5IocISU;( zZcfx2E<^t{cfRly*L&WDGwpuCNm)8`H?*9%5_bn~wf1w)9pD}kl^#QlL){t8!yu*zgb(3S+ znK;~fg)=yRk(+FBj!S)Wn!8L-aH901-1E9a++fiG&SBJEj(Od=8(X(?`RDXGUGq(x z{p=B&xx}n_bWB+kq3^ln(2X!vfPlc<9Rph#gz!M5rXE_YBaT_1qdY@fXYup#Ixl+$>x?_5tn=r$w2sk*e`lUo4-0ak1w7g}>tG<m$IfhUusgAB%M2i-R~7!-EQ zB50nCYtX2`z@Yni@j)A9N`tH>cLxpmAQ$XLG=u-fj|z@IFfI6OgHA9tS{@vvzA5;S z`<~#SIVXaHe_jqgywxx`x6w3sCt3x+e_$6JtLG3LqU;jFZ*pNAK|=$-+NP!Pua1S zA2V+Qzd>U&zpYW9pP#gyZ}i#4n_KPW+fE+f7p*+Z9~^Ux-_w7BpO$x;&*IPVyPsd= zzh1t=mu?Cf}--Y5LlGxmH*<}-fZatA)t&yg1nbLP2+FL?cym;AOvulPmr zuDmMuhL3Z9%b!tk=NoT(@Q2FZ@j+WW`R0%hyw)Udew6)3UbWAMuQ=t)yQlf_s}_Cc z6F+?67ia{q9K3;iOhpi1wuR>_zagJI{u}S|IE3HO8Oj$Q3FG(0hx2q^1mErYlOHXP z;-_4W<_G1*@DiIw~%n=1Zz zb2U$P*Yfq>>v)rK^?aLU1HZbyk-xpInYY3g{?>>#ew9f(-&E1T-(BCum-=_}Q#5<| zjko&v&H4TOf1{z?d#Rwt9#uRduZFHv4P(xzWBw2g zEc~T`Nw+2Vaf&8h%hklmR$BNQ2I20iL749JAL_0ij5h6qG5-A!Y~MZAwso1w;8j5A7W3T^o%-cT$-^tI!oxwA) z<>)NDt*VXHA=gs;JUr`O^db@o5_Z|gAY z=z6@RxB;aCH{hlH8!=k231xgY;e;KVac19U9Ql3=V?*iV=T?2(`f4lYt=NX^YPaEQ z`|X%Zc3@Z04jg#66KiMg!qCiJc+GG(s*T%&_P_RE*QLFvH)tQ;3f+fxNB5((+yOlA zcL3*XKZt+34&sG3hp=SjVO&si7;oDh!B_K+qDSsge0={H9vpWZHR6t=&-oKLN&O^R z2A#yjJ*Tj(?-a_opT_1@XE3(<3_h?ui$iCh!xtInu=nP9Tt4gqo(sExw~k!I(}GL5 z;KL>n@|%?h2loeHFdauVRwHHO&0)I)>BhXtU1%7xo!o((4KK5o)h6#^3hFxU<9<(`K9CVq+6@Nio5yQKmTYk|}NvGsUaQW@xU2E57GD1LsSlXhzFD`(RHsSCU{w5UArarthB;z zdn>FivclMzkI=#J5pMha2&D#Fqw5K4oEl(_o>DfbzR3p9yVziGl?^t|x5Xi*wm2un z7IjBF#@S~dS8N?HG{*tk#yR4M zOO81An_{66MWa z;>4tvID0T-&K-3@jZZFE+2(@YOJ3n#t5?{W_6p61yW+qJS3K$OilLqC^Rm}C%lb8L z%6N@?N4&vpC*Pp1{~J{4e1j=V-{J$Sw>UiQEqV@h!x6{a(8PzuC$+etWT87QHFL*3 z3GR4U(*w8f_rUq@JW#gI1Hxo4xK49>p4|pr}15O(3g^>rnaQ%BP{87tds^)m(rCZ+kG0YoN1s}0&9g`;? zF(vCGdJp%(i${HMl$Q^N{_{b-xt}of)+Zbp_6g6+`r?N*zL;q1i$!U^SoohG{@U+{ zZ{7UxScM;|PxHr5EDmf=pg+Fv^heo6EJn=uGnz(!X13`Ie%bg1KR*3}c9~!B(2%b< z?7&x+^ZqODEc=R?lLBzbxd3$V3&5@h(m7$;>eIdRPGPN%B4a0$utNL!~|iN zTre7~4`!UYVBC@tj4w2JOx(_6ogaj}QEYriacc#| zHfsAKmP+YKmEYrwLeg0 zY6RAtj=(P;BJfB>1on>qiAKkMVuRaHTwU}NAB~K};Qf)9_>xIZB=Uoz(0Y3muCb58 z#^fk8R*uHrbX2J?IzyWO0pNkALCK-@i~>^c&Nb{l)|L*cN}|tk&OnV^%zRo{h)w z_wg7}6px>VC7|)n1YGJk;5q zhqjh^m=KzW&5d~|H6b6{cIRWNO+GsO$j4=^`Is^3FK*iR7yTdq#m)wyO7z6LKZ(-h_s;)bH*@^-?k!5FfT$kz6cLg7vaFr zVzk;&jNSK&QQyB9pA;2ika`LJTwa1f*GkatT?uZE&!ZQGrr(DzNBq1$x?5 z;MTATEU&A;L&GXDd~GEPZ&l(P7N@)_qY@X(RN+YNDl9utg-@-k7|Ev!UsY6LucR86 zEvv>07pw7sOEun%tHvE|)i`8q4MuIM!R>czF#bagPR?MAK&e`MHoX?zch{nmSuI}u zT#Iw_Yw?e`4o}Uk!#@Y>aPFfzyb@H0jzx9&R`DM`)%k~~j{L)MHvcdx_#bX4{)bet z9+enJaMj^@JpQO2PY2fH)`EH*E7yS8vm5a0z6NYDYrs8>EBHQ}?UQQ6`YDZAv$YWu z?l$7{ca69#u@N)c8gb*uCj6+^g#Q?8aFA0Ijt_6b!Ie$eq|%K3I?cH4U^C{MH{&|r zW_+E|jM+WS*fzEWyVkZ~$>kRO?9_tC!dkGmtOf5Vw&GtFhdyCh?(t&n^I&pw>;MMxS9juJ zr7l#T)rBAQyKv0)E;M%R!YJ&*e}B5LySEGLMs{Q5(r&zev>Qj7b))-QtyR&-n<>p>|eW@28+V$c#|6UX% zvwiiwsHxJ2S7-EL(1t$DKi7v%LB?w%Blw3ebaFQn*d#yDsRl%n=OrRca6DeC!G ziVmxlq9&bE^p8-QPLN2`qoWxgVTLsQqAN|KR!h@g+Zl85h&1)OC{0c7O4H4j(p1?& zntpearic8bY3ny>dM8$zHm6I|eMQogual<2E@`?-C_`_k%g`4i7^iWH3=N*ow##Jb z%Z+UR9>!)k!MKfAWGEWS(EXM&wE39~z4JzfwtkeMhl6G4_XruPlqf?t<;YOuQW^Tb zUWSHt$K0ilzfYDvJt0e#F3ZwecVrp6 zNtRBulclF#$Wj*%S^C45?c-%>VT3HrjhCe{nX=TQP?lb+mZkGrWNBruEVU5{=s3on z@EIbY6UGVX)9C_QKVLu>FA>oDYZ#+KUqCbW3TW*y0c|-ip#Ka6H0Qp620au|( z)3k)tcZ87Mp1`=1GuXa)Li%W-kd9a>r0(m5bjUU#HQp7pzleV#9* ze@le)ziJ^}(IBKp+Jy9SkC0xG7SUs35nZh;q9Y_CS~gfjT}QI-<3+S|3gcbQ64Aza zB6>tuL?f4o=zolfd0?H0KHn^&q1#0?dyj~g92C)_VBD(6Pi1yqS zQFkK|)ioEdTm%3FRWjvJ_FNIuR8% zu(F$2y;|9M9U{h{5z*y+>^=q<%Tq>7M+?Q&LoBBMDTt||l9;Bei0N>3G2JNC5S2+B-u` zx6Be#2W>HppDm^>bHr4c@lyuR7gH@AF_q=Sw3JB@i0LgNrqgv zRtjkgD_4ujWLA&qtUhB|y%gq(X&I}hKdbLKR_~!R#q=AykM-<+lGuH%VE6Zt-KWe1 zwvXNSLw5gxtR2!uu=0k9X*p}3oc|d6l(pA$)@}z_`~9cNxG}6f53_b{WbJ!}wR0(J z@6}Rb>dM-`ob|)VP7z((CZZ>rMf5uBr|Yc0PE@mf73{ZCrhotMPu8!i8E>YP_4DO4 z)^Due563h8V|p++N<wVpNKBp$?Bpn zqRs1>p6Q9`rDd$#h3r~7?6}#i+-V{@i}7LYN3(K=vg>Jy=y6q6uDpnP%Zg}lpO6N1 z2&re2kXqFW>A`X#olwZ0zZ@a8OcT=a2}1fcT1e-F3+X!)Qn|0}7$5d5zZ23zS0Pn! z64J>}gp{*lw!uV5r`;7&wd+D!d0t3ApAgb>2ibGHi}7_f3+d`L%oZ#a(#3?GKU+xq zrZ8JDR!Gf;vNAM;G+jYR%VmVLrknA1ni>1HMnFAE1oYA$W~o8kA zoZ0Nw$Fekx+3>r}mQP_e{Wr7i2bqm8Www5wo-B=GwtqBZ0bQCX%brVFTB0UP#Ufcc zsz-)SZj_9~s(`Btv5&WvDgEu;b&M#uLEC6;*6} zaX+*lyI%L>UgLgzd#oShSM}rHN&T2E-;bYb`|wI)9}e;FL(eB{dzF3P)`$M{`Y>IK zjc3|>F+RH&-(oNBebI~Ew|miOZ!gyA_Tr*py=c(WgZ6nn=n%rjPA)yT;cgE~@9RMq z-5wk^vQGxXRuQ@4q{BC?(N+eHMbiLG}sudsS6(_cd_wS7tXQi!Xsz9 z&|pm$UY^*6`hqSTT+)d#;hnhGwG-3tbmF|-op@(H<5z2R;V84X>VG5$s~N^fD@?kUYUR;C%1^O~?Qpb4FAnh;JjVfdmZoH3{g zP3s%+M@%D@zGma~8;w}JsS&?TY{a|$4LB~V0l)e-;AHa#wAkN(33D5;Q=tKsO6pNe z>#@eJ9)nKSn%Hup_bt?VW2->p~4aSXP5+S~aLt zQ;oC2s*%`Ns~C^pDn^|(#n|{?F+Q&>!qIHr>1a`eZ99r^;e;Z*&{~KOBMZ^mz7TI7 zDa4K1g{U-8fPskxsQ0P>BhIpUEh)gO;sW%}{ENRm{$l!-zZkpZFM25d#WQ*NIK(?2 zzuw5l`HUy!rk;--1$oGQ%EQCA^YEHp9$uE@;m)EzIMMeH7Tx}XW_o{6UGfL53Ujf> zCl}|lx%t_ZxoD-v=IZ%5Xy%oJN3Q4K7tC)k=v$L_wJsVG7%*LN28->DboSTw` z>s_*NhW`XL$k)I0-2HfLb+kPJ*JO-J50 z9j$MsK5xit(r}ol3(<=C6?MPQ_`Fskp=@6&LSF#mOU6v9BTpzx$`) zsawqFu`~tm$){j-YBDZ)nT*CqlhJo-GDbHiVcfSQ3^qwZyLCypT_Xu)|0LpTw?rI& zCJ`O96S27?0d>O@@Pb7G+H6cfM@_cPi^mJ@@u+(y9-Eo3#J7aO%uvoM% zV*aD|F&KU}2191Wphs&o-lEY6_oK0Vc{JV^N26>)6kdN4g=x$$HGD`EZu=XF25ymP zej*Z$rbOcDe?M{2m!H^w{U?5cpQzUxfr;S}xYRTP-|De^5b_Z?G4Tg(c=7`eZDTTs zv9EH&ar~=rtUVZxug8Sr;<7M|_YA|8XTs2DS{M%e`;JRLf5(egzoXT>@A$Mm6d9!m z&)f-R9IsGp?+Zb<@DK#!5d6M81ZN3C&@TEL=39Kj|JHoNCGy{J`)`W7tSPS9Kyjin z#im3=pT~$>HzQW4BA!X%G4~0NoIZ~x>O6*~24m^dVC>Wn#$NSc{FfSp4Cldef&}4q z^&sp^3B>157%OW_Alj-1VtrBoE`A(c%res zC+<`B#PPr0<6pD)XukA4j_iGhp8Pu;dF>rq%zTFh)gCzUy$2pV?12`;Jn(gvJ9<8K z$JZO&@u8Sy+xzK;lkd4Mc$l`xc+&zrlLPH%Ro~pn>8WbdP?G z;SXM80(s3CKdwl9UGc>!S3EPu6{qIC!u;p2@cyP(s4n*k9V1*&@vaMAp67zG|6Zc% zhnKkK@JqZp3)jgU!LORGf&ZU^ixd9eu8RtPjH#u6FlB$hj#+)(BzyQ8jiKY)47jv z^^?aqc=cn<>$AnDfwo8(vnykaEgs3S!J@}DxNVgU@;%n5`qdiuoVG^Ck=7WU@dzs) zJ;L6lk5JHIg#(|guPzl0@@)@AE44G;1B`-j-S_aU08J;c6f3p{hz z0^_tT7)!|<54)J-i!J6DBQ(c~Z)R+5%#8Ug&9FPy6ssPa;;$8^_`1^sPx_kRxT7YR zHpqmnPa31Lkuf^YGsgd_jqs7H5jN@@vHU|uILF`t@_+9$-{F0{?RO7@2i?QG`-WIm zaTg0V-Nn%0J7_xc4$iT-jlcih!gV`tVL<3j6pp`%ORaC|VP z-I<-4o!fmTpYKEGOkTqCU`*GQajm9{UqN^f6Wp<2mh8gb+@$tLL2 zjQRRB@cAVw?zu?TS{F$SSoLk6at~()+D@$=h!ay%@2F&Rp6}^Ky4l$?{!fV53HV zdw0@J&7C9`?x5vUcF?su+sVCR8^tlmOosDTO6uD}?~iYxM{%2JliX(d_GlB?*KVYF zsvF7ELzTu#sgmxQ4HTBNo~<3OC+Wv3w5VYnDQsFt@}6sH@W8cHer65x*|eI}62gVWv^RMX9g<%}8b%9ArFsF) zSi68)-pnWeAM@zwfqC>VbS~MBn@iI#&tYrK^7MD1JRNyDoBSGPQOkx|B;zJWs()nZ z@F7_`E1XHECd{P0S7b;rdj<_&G=s8Dr!zj`G*VhWjf$M7(uJQ>s9kdkoe!Bzg`+3a zO1(*BnmUoPg9i^Gl~aRBKY9?ooIHs9 zuMH&1mZIndQWS17fIO@Eli8~NblSEbov!-Fx4-(!pWWWar~duTPYnCT@74Lq-cVP`ylrZ1NF3Xb6`PDS$rq@#G56oxjxP5jbDJU?5^IAt%w_$HN5p6~w1-+T9g zU#S_)*9;EgjVOShr2C$CpYG4gW&85B4}AE)3f}zDT2KCi%{%_rMh||~*SEaBw;S(x z(3OuG>cSU9IPo>QZ}^7kj(l~NJ)duA$44%E&A+LB#b33y;n#0?$q(+a;y-!3VEaX$ z^YaH<@>yXPyzV)3zTYG>-YUhEpLFX9Z#VxjKc>u>H!?Hg+wq8hS76AWSb2{hZF`&l zD7nFJ(=^}{n_ll1wNn|i!LsW$(dJI~kHpWzq&ILYg19p_!?2%kCS5Z`h806(-` zgP*o)A208?o1go0Cog+wJ3lUB3;$=zCcgIe20pfI9dCy<`~`e^&(Ek4x``@; zm2ZlLvkvD8b*E+uBg&G6V;$m!`Uj(gMU#ZWjU^w1QLo<%*J^qT)1}>oCyShfQnq%& zj~Xw97bjQ>l?zRUBVHK^tGsRtKh4z_rhAwk=H8J-kleGQ8=tet1sLrf}oG)51qg zstb!;{vu3QsX0{3TWzJN`LNO^jRd87`{ByUPn48xuO3%6T=rNwRNhfpdrFYjk|6p!!4OD z$0bM2=2SH2a&J23bHz^=ah-BYxt0h8E=gUHyWgtBNk8T|iy8lM)nRM6@w-&G*^L{x zv4)#Ck@Qy1Bw#x?bdwsVBihY*U)#sU4cpI!zCFO1aEG{MIY+qAv&Xp!zfW?zU!LJk z&p*%YjnU>NYv^(OmrLC82Uj@b3CuUF?+q?!?QPDi;4Zi7f+3gi`yn@Wn-RCz#+XwS zn{e{;o^byzn{p`;Pr2Jt=A85{3+|2GGj2qUC3k+|3-0|jE3P8Sn(G;8!%23%;;QXz zxv=Wj+_eSv+|;WMoL__^H){af54yvd%d&Cd{#LkhQ{~@s)AiiBL7^U8>92R(OI0sU z(ZZXH%J<AM;oQwR zJQu1iU8CZ;s~QPhi9;eMSCz!=mQUtRX{T@p15-K0 zo;0pYkips9%jBlSXK_XYbGYnnx!fPiJZ?;WJ~wb;At%-<;_RG@Ii;EsE>ymZn|Ps| z)AFz29<+~Y~#8t+qsQ79o)?^U7Y#eZtmX89&T4bFZXx+SMG(zH?Hs1cTTP72X{yM7x#Go zZ%*I#562btaa9xkaUl!YUgPwBkkaXoS3?J2obLcU*eZqcCMnD@9f+fI2jTIjL2x`X z7%l^bz}kHXuB;ylmFl6)cl9v%%oq-psNqOCGyvvVwVG>^rUr{hpKXFTpFj>q_u6JXmn0Rx?+aS{{ZUpx^t*Ct`W*vS|lI2ogN zOu@INDabUL3QM_ZSQRr3g@>l&(6{Nxw3&g03NkRrl!4!cnaGrqMY)?S3RcU3FO`Ft z!7OYVGaGIGv+;0?Jo;+oalvp7qNmKopU}COzh@rSw#>rj%j^Koso~@= zHMm*rLh_v5D2UjNM{s7qQ4D;26wl@#!?%cI z*s69M52}vC@yZFj8E_JhY)@jxyi@qapMur)(-exzQEXd7tm;;jpfohIN_;-Yf8Gz|FXfk>X@07>T9PtF-_B?^9?Gp?se}daGrl>e&ipAchxYS|_ zw`EU}cnYOLnIXW~3=dPxpgP8aoVLqcZe0j!Rx6N68LL zZ`k2pxE=VfcBoUf$L|~VkP_PC=U01FDLdff4F_Bccfjng4oFaP#IEa(NDFm@Vy`32 z72hED>KjOXe1myiZy-=`g0j97W(7LoPpcD>7dhj;jx%QYIwP#f8On2A;CaRc{XAT- zv&IFFXS%}ws4HUMxFWvH6(1(K;l+M89I|o4_&hg6jCzY*JKrML>@8GM-ojbR9iP{` zL-v6?Hb=Qb>xVlIDSKe+H4n%Kd!Vh=10D8c7f=8CV&5u14887$_d$MG-RuWm-XF7$`{R~_KOzeJ@nz(D4BYx2BaPmp zf7E-_N#5hbvH<962Vks60N#lLFneMkUhED;)6+mKN(jV}UxB#2G6+T&gK*O;2wGJ^ zj3XC}nmxfVH4A38H;j$!uTU7@*_-oJ_3tE z*gG8pZAZq-%L~EQp^THK5{jamq38h!BBmg~&1xqQs9KtJ(QP9(Q;0P&DFEEaY*vjYs7yg6cuSD@#I70^#d7 z!jL5q7>?n^$_Q)9gw>}0o1~Dl1j)7D~45p8Y#mx1w7-cu0c6ffm zrJ_%`J1`knl#;RUY%*rpCL=#78JByL@nd!hbk$RkYLtReA5*ZlCItt_q~gfBRBXGH z3R&k=)MTXM*-!R+K^j~Sq+!sLG{!YegH3H3_%Z27W;V7ldg*X;Oowi2I%a-l=d&}I z{a^-!h8Y<9J_Gy9GT5?eCL9%+oXCWUWhM?pWMV>7CL+dXVVg=8;`OpH+aU{=K4rn9 zD+_TmvXQba8^Y_^uzH(~eOcM)`<@LO`5cVdlY^UgbCBYdgMWEBnDr+IOXufemU=G! z-p|D+pIjIewRmluKc z`_TNT2vxpCh|Vj5@sA>`kYmiit;N`WxfmbqiqSu|7^@qLadcz}&aW(i*5MMYG%CSY zpAxv|ltAfg2|i3Og|uoZPHLCp^@~zwTUH9bq7pt{ zhzL51MNrryLgh6P4D3Ycju7EsrHJJxMuof>-?xbIM@NiiOEF@C#kgA_X8*Am{*x;q z^Is)yAFV{xgGw~LW%lWbmFQ`xMA6_XxGbo`?j2QV(yPMx=T*oFs)9^j74~;mF`L$E zrcbJIet$Jq->Am-*VS+mR%3o?HQs!$hGcRL1gOCYtr}dpT?1{08f>K+j4rD|^!FO5 zPp(C-pcX3+)Z*cdT7=lvA}f?}4hw3*ch}{`F8_=vJ3nL9xzA92_!%o4KVwMf zXMD=~4DF`R==t{9s<}s1@mUtvC|UiXz5j zSXtVN+ik7z?B53Aq&5UEZo`Z9ZP>5bhJLzjuzApi;jh}DQ2M$94}Cf?I--NIVmnYJ>VRB(2evYHq~@4TY?teV z{EALAZ0LlAdM75IVMl{b)SGl-wrwZ2dNRIbSSL1p>csS-PL$Vo!mzg!L!`QJYkU{7 zXLVuNiY_c!-vy;TU6_5m3*RqxA>>{c)GfMD?$CuTK3#AO??ORR7rOJi@U6NFwe2j< z?=I*L>&B4D-HhwejouaA*r?Kt+iKl-b*LM!8As#3K{vKP>PDX><5oI$W0H3_?uB$C zCAJ$sGP*IQv>PMqyV2Frjfh{}&>qaVmg9PGN2UiA3wkh1sRz4NdT?q-4-RYgVAV+$ zuG<5@8$FEO(1Q;aJs9=62YcOmaNDm3PeXffFQx|vQhP8dzX#D3J=oUJgUI$CjQ`H! z_3Op;VZC@Tz8Ct_d$Dm&Fa9m*#arcG%wNa2nOl1CWp^)T9qh&W6TR4cp%)65d(rP! zFZc(&&@k;q@$+7+d)*65=U&9W>qUh>laIZKqh36V>&2RsUKC~ZVqak|!peKmSKW&x zO}*IA#=?4fG2;j0kM#AzN=kxR!z6e!T7n-FBv><5f^#z^xFIir-U10@sz@+IQG#H` z@?5i;9aSV4x`|!i#=_MkxVcxt^biZvk}w-~37k$yAb&=Jm**vD(2-!~B?;DDkzk{N z1j}wp(C>}}{5=WwKaimGkp$~aBzW;ef~2PsRGBk*Cc&rY?0zeD&r1nJHWD1Nl_2Id zD~G)V0tX4y93|NHhVew5BMX$u7YY2C40n}a50kr0o-r|Ia-7L5CK)XJ5R+^c ze*qJ1cCQsn$BCu)f~9+&r9a0`f^?Rj#w%7Pmj6_12@brF;I^d%k1Qn6H>+vImDh{Q-Xqh zOm;~Sv0Vbw&FsDn66CLuU@s&HU&-o8K?21^?B2PouH__HG+lz;iHs#PR)SR{Se!u; zOztPaiC?{J4BiWmj$Sx_>4jlkFE)vL(Ouk&$GPl(PwU08L>3;^i=41t)CBgT+?%~e zZoRng(2IF5*>7|9ei^fO>25FbuJz)VZZC$PVei|KUR0|0!fi({wyXA{Y*jCIujqyU zf?l-A_Ck7cFXTt}V#=UiHpc5gcuxgFlHqm=nK=?(-h-?;J-9x#2Lnd;;O2lH z&Lc4KN(H$*{7F}X z_)o73Mn}64w5tn=>$(u5&;>WSE@+SI!sG#62<+*^BBs-x7j~jFsT0GPu9IUrPnPMv zL619;&vfDAGo6^J(Fr$IruP&(p*gD)&&GDb=U)f>J33%n*@5#}9gvCYK(rszzYZM; zHtm4ajSj3k(}5HFn2uKIfY#CuESuhewxJz(`HkuGhIUxxw==eLI~E1BL!EJcPnotu z%b*>~C)@E;tsP#g+JSlP_&B~Diy7~l&N!o$-zB zh0Tz4YlhX+W;8M8&|Ix%>|EcB!wZ_RXKXW;{`i8P>Mw9h{Q@P{UVpIr0%_KMpJeU$ zE442OUik$f)4sr^{}){O@)?VAKO;N*GY&d`M!NB5$m@K@xjmm@rTiIhr+>zq{-1IG zGh;GmH{p9o6RaJYF#ZASXPjw5_O>PrUdH+!6PmE%2jdr2Hli<~5pmv)(0SH~-kW9R)qt668ek*afX)F8jB{U))9LlN z9Z-*(R`ob`tsYA>>rv0u!(>`LMlk--{pvatC)8oGXB{?})18;Dv=oLY;~ziQB3!TNeptpDd+gOP?cczLV_|JK&v zz|0!h{jEl9RW)*BtC8VajerNNKY6?wOV_b;nQH9ot3tfE3R9!27z4TrkMCB&;ZPN9 zQH48`tC&xNO8hITgj;AO7TQ$8`AQ|e@2worxH~PKxn% zofykzh~fQHgdwFO)*lez$x9JD^hNO7DT3ny5v~mqL8-0+wXqer$@;7@Jy#iyme8Xjq0Ctup*rS%%-E z%ka6m6fvJlao?>J^X@WM)BaL6r%?)*VWsG(FTujt66|&;!O?3aj2}|MzLgRT>{o)Q z@?xeBiqT}rj^~RJp;C+iQ;VV8Qv{97A{_QC!cM~?%s;@GPRokmGNcF`8`DHnAr`+Z z#ABU8q;4q0*QtdV)l-1683pKbFF?_q0@&> z`EVJT57+uUm`CQ}_{%)VYUd$iT^>$M%tK9UE_Np7;;ln2YW3MTZF4TI3#7_n|&tMUChL_^_j4d&SdRN25h1;*j#1?)}PJ54=w{vBQmh4Ivt)N z=@@33j>Cu2VZS6DasSd#SdfMSuQWt6X8o(3Y0#XRh5_BFa7s#roLwqjYNw+8KgPEo zl?t8e6qvIyw5>@Bo@u5)e?A*e|72tAjAXbuCqq#`86Q-VF@0PzuGW1*7-Q$xJ^q9~ z%}*FO{}aA{PeO5865Jh=prxCH-~T1y*@z?z5hvnuKq8XvCt~2PM68fW#Ey2xn2Jfj zhUW>8JC=Y}#_jj`6OYYV@hEYMhdP^2i2jf9{D;S5e|a2CeB@!N#!&+#Ac>8OI{2Jq9bHV_<0!gCZ@)qM9GWd^JP^NzqvOG8!{ZM5B8NoA>w? zg)?bU`1d-B`4M2ps~k+_w=z>9`Q(3x&A&H5~2n z;W%m;j);TdkdhC_>W(m+iU`Av$IQpVo-mxB7KTl1{%FjHP^8}t#g)yW7(6x<<`p6M z?HPh2mqXyUDg=#EAsCbM5%V2BV%h1BkYDl1*0iA z7`yHS-5J6-XDz*{1Lpx9~VaZV@!!3yj=XS_?#c! zF7d-ai7yUD`QnYSFS54#qJ69{`q;c*pQ{hr&iNo?i4Poly`dTDjs8a7aM|jOg`=5o zj3O_Laq@!BDKCW1_d;8{Cu1>rV%c3!aO*vxFxV55v)-ZemaYy4ecZ?kE4*5dnzr*1zW*>WtVYA<&w#f~C@7-|fiW`P0 zyTRk9D;CGP!qeE5v2a|WJ;D{Cxi08<<$|eNE>ND~0@WI4sCYVKiMBI_FL6eBrxP4Q zov{6u6I%Xr!u`K*@HgQNu0DB#;%#rRXyhAQ$#sOcjU#e29r1aJBf3NmXmxc!$teef z&T+t_&-PI9w@2qidsr*jV|I@nyu<7;{gxe!R@tHK_iN0GeT~D9Uc*%NHQo(;&E79t zd@!?x#|~RO9%&1$oL87>{R$=fUg6<{SD0FC11~!p$ZOf))l?gNt$2xT&M)!&*h_qx z`4a8b))?Y$4e8U?m>_QrsRk=Fd0HXzoE41bS>eCWFVNug0!G>|FmB-s*f93iAphsk z(|wMlMb9z1)e<}2TjH*sC7c#pBDnP#!rwnbklr&mE`Ekvtrpn!-U1`^ED*oQ0@^L+ zkn%UjOC58To;e%w!s)+{uqOHuhTVOHOzsi>wLHYW^AGW?_5lKpK0sKhA-vQL zVVHd%Yq#A;W8yvBTzd~4{9Wu;ybJq)J4l^(2Q_bRqi))5WU}=a*U`72Wp)#P`rm}v zy&L!=xsJp7*YWnV0dh|o;B)ykd{MuKg3PP%+H@7CVy<9_;0j&`UB;;SmvPxmACZ&w z(P70{UPCWI`q4!U`k{xK%X;wotP713x@arWf&OkCh?2FTxK% zc{p32!_^_@u>8SUluORwlHM7#)t<%yt<&(&Ifdp;r!XPvBo?k<;&TGhGAGbta~uIf zkK@pTW9aTZit9Q@QD1cg>-HbP^>-TybyR;rs)hckzH4w zb?ES1i*=LM;{H>%p7~=nQgl|MpyEGd?PPqg=vA;-_Ij!7%0BjN2doESX~o%g2VTJscqIWPtLK21j8iplunItgn>PQtZ26Y-`= z8bS?eB*#xc>e2~_els3kL&n4S`Z%c9j>V+iW04&>26yI5+&T!^2L~}9C1v~%i)ZCtNa~$R>%!aFW?rrUbGa2$b2#btEbeoBCimVpgFC66 z&JA9Z#yO8k<>u5Ub1uS9+)#@o?(DHdE@XKE*DV##$(P1*Tl{0VqlVGk*}YNRarsDY z=QrXOr}JE&laNc)59jV}2;=5ShjPhHAGw1OAGpeA!Q8>)LENY1f!tiF0PbF~KljPU zj~j5;ms3*n;f~Do=5BR)a!(WAahA3o+|%>!+)cdYjtqC>1Y#F%aF8>X`Ot}by6+7K zc}K2BV$T_-*m2_>UUSYmww%oBSKRB7Hr&7}Yfd-Vic5L)f}5t!c7n-Ua()sEu0GkE zn`Cdst=E3aonB?i_NP4IUWiOM#{gr_+0ck{*!_r`rt*OMT62#}G`_U@+@Wbi5z)9RAP?6~n z)E{dWn7K9xmQ_~^N@PU>qmw0qW$yWc>e?)U?d&wct}{u35uUMv+=d8&ZH7KpPBM6p|0}AtWCt-qs>FHJ)Jj+{Y#ycgYC;xp>w3_`j zboT`Fu-)RKu$+Bk!yS|a;YO2=h9~`g6rR`mD*S@TJKQuQB79LqR`@=j>hNE-J>laL z1_;k`BZW5tCkj>N85hlAfpGL_Md3)3)xyN@n}o|R?iTK^IVfDV|CBH$Rae+=^>yLb zKtthfYZKw!?Pfy50nde6Q7?tVuiFW2mN*H!8r+0)Ts(zKH2s9bMg<8YK7|O^-sgp{ zRz?e>TjGVhd$Q0(D?>PIOs?=na-lHuUYW3LMWrzGbFJ{0OOvozy;V4EXqRwFj6^v6 z+D~EFyuZTNm-_SJsZxB@tiin3y`lW|;^F)Pg;9K**%-EubR7R?wKQL8JBgR-n8J_T zI-URFCc~%vkmYafo6QgNpTiptn9mm;UdRs%UChrKv5cQ~W;x#*$rx(mmHExO93Pvo zik~!f4Zr)!I{sYhdj9atjr_73oB7(zt^C#5JNW9`YW$+y-Mq%!ef*(&8vL4kP5$>h zE#ChAVSaSMQU28Y6TJ2PQ@m6D8UE3{^ZfdI+Po-Nm)|?*67P2VGM|=pmCum7&U;_K z$sb9(%{NcK$M3mp$iGN@$QKSb;&&(+^MS`q_&=tPdG5m#{#dywuRp+y*IjJRtM9kq z=Ndla>%1&^i=5}Y%=Z`k8(C|9z_ypX#uXdh%Hb6s9&gJhGe5X-W9@klIPm%>9r-zC zZ}?BaPP|&FGavicg`YCdjX$#ME&ueoJMZM=!8;_r;|-fV`5j}u`F@-a?{dtSpZ(a6 zxAOPr>+|08vfl%ERhb}OZDTOMR_6mh$?79t92Uags|e+X^b6mrckf8$qxI8x zJ)3m?Z+HfOvpkc}|C7a!lgr_iHs<}>?O@rUHA`Ls2-i-&*a zjTe96|L$z&k6diw9V}aUKA?>kX0`LL+d6p7kzM@P#ohePojrW1ZZALCLc+uEE045q z{FKk%`O-l@`5SY7@x7|Q`Msz9@XsIi@xCs9dH1M)e9Xmu8cDLABkBH%QIr-tiu$XKrupTgY0ddDq|!Tv6dsMGk)y^@spB}Zo;RKZ zq2nn-WdiNYnm`d+(j?s|O~7-&YgYHh0A@{d36ux*Sg|U6=Z#T%&?JQYZeNc{CYvt%E^N~IJ z`z$gxnoYGM!KNip= zRTm}(W4Fk;UVa^0|$j%F;SK^n`*QM8OEpH-lTZ3b;Q_&-t_wwgk%R@010Ye?UD4f)MpOWD3_sbbkW$_raZ!T+hy&3F}> zw`D!WF(%xGeH-X~$p-2>qDrV$rK9IJl6LDxI(lUj+sLtr`tEEdzrUMloyiu88nTt- zEVt6dvD?Vqb{oY^*-nYh+bK|P2N`+ppfwA2QuX_tq@$olq7XGw66~TI5xdBF&2D-h zx0~Em_t3-SJ+yJ#Uh2%)OGdl)(XZTnbVOa9Jc`sQ_kad9lxa});r)~#-cRPoH3>DE zlym9;ZLdE-0cQ`Ar12ohU(h0a(V~?)he*2R5Q%gTlUeIwntt&J*|r^_-it>G?MLbK zrDJrh{TOLqI!+tgkJG?QC&<6;1PLylB%juk)TeujR<)d>!#bzwc{`m@w}>KyHCW27J_~LrX7{t>0w|oqL6Z?pMfJ<|>_cyh_p& zuQ6NYYcy@70U10spx^=5DaY_S<^8x$LW3Lhu;T_T*11Vh^*3qh@mpk4c8j9aZ&PX3 zZ7SY!hlKHW=_6^*l$&5dDPVPS0JKm@F;|@(U zRdXh^)WC!;1(}dbvkAq{c}#gH9#g@a$COSIsG|f&g^B) zNww6Rvc_64PNW5em{`!L7z@(+W2_5zbbQoM)eiXsB(fOrKwqx#}me|i?yVA z-z_Ou;W_DOKWD6}=cHHuoC?Ripv600kb&_FdLQ|M3VL49mqk|8aoUO+-dIt3ffcz9 zx2Dso)->s^HAQ^1rk%~!l+EnM)@i*YH>;P_nevjB{e4MCm2K$mMH_nh&W21XY)F6H zE84#86^(!RiZa7rkwM!l8ZK{3)`x6qptUV&r`S@|A6x2Ed`-)AUej*3*L1A-H60mY zM_V`8(d=7x)E;0*-gV68ZHhfL?6M~v6ML#8ds^RNPcP*iC|}Eg`n_-U$f)2ARSkBcg{z(D^kpZqc;`fKOP$Db zgfp`(cc$A0&a~CXnFccZy$_>ZXuGNl<==3jt$r@_UhG1BV_a$7MpwFc)0NEpT$wGe zD?J8sh6le1#inj(SVADsSn?wYQY$`Ie@Xvfsnp>Dg*`^1tLxLN|B% znD0&wQXZtQ>_ICocu<{#2R+L0ppkz($aLvDYCrytHdw!-#|iH!wC5e=%X^Y&zb6$w z@uUc$Cs}^>B(*7C^lO_Jy}si`GX9LGSK&q9hI`YN)!y`2&zpjsyeT!)o3eg;Q`}-^ zD|y6+^q%?9+$bN)YVo0y(|oCRyD#mz<4f;-eW|z9mlh21qn!djI(*KL4%qsUN|GN< z?D3;AIe#+S<4u8lke?d8t)ZM+WEoszAu<67Ji^_njfgo=mT{JexUsF59B)NBOO@rk$xZjNS0`6>Qz5j^lJWZZ5ZYE3!t7~7sf!CG@6(~Q?Rh8_^P#k-E|kJY zhS6Xyj5eJLqf5`i$T&QVOsd1^%CKH<7KXtd6GNr=n@J8DjzlMbp>9Xv+8*P3E#Oq_jDP z(sg5Khjk1I!((WqD28_TV_d+wv1GF&mT?4Q$;dXA4oAe2Ock?l9uP-o=f~0KopE&F zN*o2-#*u{LNWLfuoSUgQFiznCLj3X$UK-#Ja6nHLy zD$NoYFO0DSa}ubvJAqQ98Ap&yq*aF#sqlUxX}Kj*N?;uIz3;SPF6e9>7GtH?R%O|pGB@RS#*3= z77f+RBIhevG|iGR5Ph;JKQW6&RArIE&n#LiolQy#*(ALqo2t%clg-0yQh1Y1!mw;+ z)0s_=nzJcMDu=pca%eD^sOM0pUJfNb$)N{sIW#9Che8W-XmMK(Js*@yWixYW6mn_t zzFbn&%_Vu0T{mHIH0RKO^eH?g5rF--j+{) z2NW>-=>pcK70|>j1+?jC0Uf+^|Aw4`%NRO`lD!&!y-ENvWSLy6_E=S(e$h$GO8}3{GK8jHn^A;Pc0_pCB?KrrI-e)7gO5VV!C;& zm_}I?lcjSpNrH-Lb3!paEG#CE#$pQm&W^)M=;8Dd+Pt)cB6;ze{NR$WnSWqm=rVl+vEHrDUO0k^eRmy3pS~erIcYyEr@m+9bl0Jrsy$iw$8tIoQ%=U|si=#5zSB+kv|$00}(ac6VVS75q*6oqKa1{ z@^uo?@pmHX^B2+M5E1o8h-hbmh@Pd1C@fb*$t5C+s}zxYgNXE6MKrTVM3Fy4wDzBf z{052X?+7ui9xtYoQ^ce{Q%vXPh-u>@F%4fXrbuNmsjn7O!Fm>FixgN&zL=7)iAnXAn0)RruIEEBEq*Mf9cE(I_K9h|wV0;ZimBXQ zOh!&(8t=x^^AJ;qmzdxuCcOYLnFfo=B1B9#!^Olbx@l;Xm;z&1-tl7km?);P$znQ~ z%HpMq$u(0UC#2Y5Yq#Zn6VSYWL?S9trF9w zYBBv{;#ec5S+!z%$)uUdqB=2YFgeHM1QS&zqnISHuwzW>So}RqJlVbVES+IYrm!@} zvb4KcKE(3VDHD?v%lk>Om^xW`R0~-Cd1CU&5mRs$yElV9dzzTGrikfVl9-++usq_# zbR(M8YlN8k@vKZ?Vp{T1OtL|&oc>~p^I>)4DW?AJEG-vS=Z<1hvSZh5#PsZim~1Ur zex|I<#$uZNKupH_;;PKz09R7`DJViIeJiA~zk&Fx~6+r;W> zotT!cV)d|6OjS$8G+}|5R?HR?W{7G2Br*LP!^$v>J)4x6e*Y2C&2J(q?-bG8W)U5( z6VWY^h#nM)n7$R!<`fYPiW5-~FJk-=5k>imNY(5UhX+LT*C=aMT(KdORGeym{Z@Cy3p%)UXJ3ff>+LGgwaw7{T(ZfjRi$gv74 zQfG{ut?amlov&cm=dp11jmM9vAXWCw2mC0feoP0fVY=Wn(+O9ZZqQ~rVms3n6THeP zh3SsdmgV%B=@LzYatb_OPVG#`OxnfRx9iJk?#gl+KChh0rj(P_h;mZ+TSgIGWwfNe zjLeG5C_A-`en&7}7r=CuYZ>)fl~JA%(`N={qTDw5p667nRY}8D+$c zDxw`I@O}v`)GMLJLnUOst%Rm< zC1gFfgt{k`(AohdbhWFPtgDL2KC76_Ba7**Z!s;jE2dJDV!C{_n7WS_(^0iz`nal? zy5<$r6lvBL^)IG*9Yw5fS45)JBC-uDBF?>tK0Pm@|L(H3?0gY5s29;>l_FAJTtsUo z7tvBF*0yyPQg%fl-A^eb>5xLQcPS(()=nN~?d2QRZhm6zXBlfpOXLbEc0?gre=A@t z+XCv&EFdFc0sUqyd$mKSgI97sd0&aRU(x z8v_HyL{Jg9`51_zVj(C70*Z<#w%8)5ba!`m=gmX+fvDJiv0E{}U%T};zdz=6dv|-g zdpkQj&pflA_s1mqGSxX>rr~=pllj`q`P=B ze2MPcU81GiE>X;~OLTjNh)ITBqG5m9Y3Q?d`hC8gE*H0xe^fh390l8GXFDxfC3w(U z?eupSr#}%k38_aQQ_VFJh?#5mU+kxIktP1na2j z0##>Spv(Rj=;DzJRJQQ~dFoyugYg&WU-=8<{Q5j~xqO~>mx}l;@;v==I8T$dou|1= zM45V?CiXi|KmTi^s_SiJBQj-wV%o^@Y@1-Gw9#UNHu9L-CdMdj)c)@|x_b2-)t8;4 zn8hVpm zly0?C~3*8m*?`;tWH#Ny9N-&np-DMrCYoJx(4dgEP zOgSbER5i1K$`ulW7J;^Psr{iPl>6#dGjJ{Pz>!fvbJfx1? zZ0pEzRUO%=)zO@ub@by&Ev459Zd06Kp4-)u_J&#tnpI186l-bV>l)H-si8$FHKcd8 zh9+Co&`(JXRSl}4J@2YXuC1DU(yHl?V>MZBs-|pKO-}|@Q?GYbH0oRxDW_JE{Mjmc zU{*z`+EuinzZiGDtR%;#O2O%?Bul$WDqLGh?=&iDq(UWWJ+2^BRghYE1@*QSeD~!Q z6rfr`I={>5+|6=YURX|2uW}l=y_`1AD<{99<&^)9sJexyJdr5bj_9Nb(Y$E_yVRY? z`z|M?GEV+}oIdT~v~)fv4<$}z@1%5DCZ${PQo3|pO2tM}a+xHhg@4NE?Ts>W&nu(8 zZe_w-L5yw1Sa(*RGCKIUl%mQ@sVK0NxJ@Z#&o3pPp`~R0ri6wymQa0E37OfJ&;x@K zG8tV$r5}r_ds{Ir5N!Ot$BW6;u$a8Z7t`5qMP$`pM6*(h=)GML#Tge7CKgfMk3wRX z3n?b8klvjtq#3IV$#P;L+5adI+`s~IOcmpP!I+wFR6yNS3#jyKKCQoyPfru`$?8}> zwJ*;X?6Q2a{UG@MvOKyFE%^Qi^60UC9$iz)qvBV&(91hw?OX=wg=~x_d2~Zl!0F%r2Xf46|wP*lcmn&Z6^8S!5NFMV-5| zXw$qbs#VOQL60(NZAm7%xMfm`X(km-&7^{#85DCdgH9x5kp7_z`lX*C*v}cH`#hbR zc{85h*l%R|?r9g}6crJ?TiMznRI@+b)@UEKjEYh9^^7XA*@{5*c|W(Kpj1 z3Z9%qqrN6mm@JY0h9%O*9f_2rok(}OCz9N?1R9;3K$8z8kjjDt>LqenPwvH2UT(bb zYlx?TE8;0|mh$hMJC_2>^MFkO2blp0NUTa3thd+_@ z>U<We<*D>7kS2sp%n05-;Hhj6Vf*`q9y1KU(SFM?(z!=u&?_ za=7J7$|=5-x6hYmN_;8(uMa7n^P%0rJ|wm9q0bY1M8EA#E4Vjpb@Zm)%e~2ZkTqbX=}Pt^*0xqQ|Cfi z9xl|^*oCZ=TqyURv*3|B(};b}G*8Q!Onx}g=6WYG_jIC_#!fUt$%%U2bEK=n&n0M& zBQ4St%m1Dw`O{}frT1AH7jcGqPdGz&3Qtq8?rECU=0LQ;fhIq(r_%@Rh40ZRdgyVA z-VQ!RPZI2?Zkipr@{^>w=p@P7PtaoX6O{GrIDN4_PU^po(F%`aw0h7n(u+GvN>h%~ z&Eg|;M)wHyZ#_(2CWq+Ki)*gkSJ*++C|FWs`N>og%zs!>hm#d8>}4g`d)w&hux<1+ek&V#I9|RRsd?Z=+7@9-FGrcursNG&Ie7!g=dCB*S?g&lUq=V$t)t!bYiYH?T2ei4 zLXVA2$p88pnrOC$vhS^?kyfke#B*b++ha^$-Wkz|BStjk>nfUHzl!?(HKfPRhLk36 zNb9^;())fZ=~U1PdOu_Zt&3bvY0Aq5*K`>vj$cNT)0UFPl%+H-$AG#`H=rwpOUO@a z2{Gwnx`f5FzH$+@>Mo+Gb^2tduTRpZh4jc^A^mJ!K;2d@pl=uS=&q3-6ghC^WIc_no~Q{wCN;`^G?gm0PNj0e z1n6~_tEzNvwJHt0G@eXWjVH(R z<0x_YI4W*Yp|T|^l+!qtg2cS*p4u^_qdSJ)SB$1ajHU(BQFKjf6m2Y0rc2Y63ArOF zbm~ZYoIZlaPZ&Y#lZKQ1nBf!>GmPSg52KhcCGs7lL!+X%@fjwx6 zpB#BB$Wfz9cQM!8jfR}+M(Urt(rnwVH1~BEnzgeF={Ef3UFZ+b&-=}nru^b7 zfAC;n* z*52o-2KV@**>`y#jXQjT%56Sv@GU-GzJtquzsYaEzQN<}U+2bxJN94WRqiOg!nIRQg7kjV`SW7KroX(9`rSUVm zsXSRDg;$PF=B@pb__^N+yzXs0&$$=JeJ{rHZPhVcJujNSiH+jPzL9*DLj-@fH=Mg! zgz-TuLwVSo5U!{e%ukO9;!hL;x!yN_9{j?O-?{0_N6CEn+A?qMoa)6hLp*u2vj@L* z$elmi>c(FhyYgrAU3iCvGjAN_#54Lh@*ba0^SrC}+@R2oU-3J^4fh`7<;#xn5t9z_ zJ>3uTyodYvlj=RZZ_F+}<>XGz)?4%0v#j`x{#*HoH=Fs_RttVE&5Q>+n{vY~>-q1w zYkA7>HC*qr5x;!JkelYO;5WRN@#QuKykya0K2$}Y@BgL8t2=bLT-jW{IA}Jv-_LmV zavgqkq89(yRg?FCFB8Gt(&nHvsnPNz>HRKo(qj}U9c&vaEuS1HwRzwp z9Ub8zy=UYiHR^Xp`q|-_wCK$~smms7>AnjV(*5(+O5Jl;NXtj*OXdA$OAr2@DgCs6 ziZtT>SgEP;Fe$53lu9(^rFn~gmd%>{s_bX4TV;LUwv_F>EG_F(npXBJBD8FtgG*Ut zy>;0pAN{g(>s89?7XB(-b&HoeKHXXBFsrKMV3nHI*`r$82bJTshuA;X4%;_a=UTLm z&caqxoqM0`bXE`W*J+-ZpmTmsq0Uz0dL8HOS9NBbc%rk@`;$&cdpAj$X&*`S!@-gT zyGKdV-%pU7x6_ambd^Zfc+Hm-3|J~@i!heNkJ%{ENZTqoK5e(;c+nw=20JA&vUHL> zNOY5|eBvbun&>YnvLei$W6)j;@grTAMQ)KXg-lt9eg2Kmj7Ck`sQEB zCACkI)?MEuf$6^_gAaFMO@ZB*MS&c|iN2Q%x$ zp{#GsFcxuV1e5=+%*>R=us|&pmc4pB%h*4GxqDAy%QL31w~cD-=tFgO@7HuTWrQYM zr=!KTtpwHNEy^sc6?zp@#-sBOV^8Es~dY_>2Rr)|t8dOJH>vV(2DV8c|O?PiU? z_cA@D11x;HEo(J6%&uD=WtGQ|GY9{ZY*_j!=3DK+?p!~^x*m6A&Q4D3ov$-n7U{zL zQe0VWz8kw+?#`Yyd9XW|JXz&!FXs8on=Sayhdue>%MSJMXRrGQu+<|2S;B-Mc58Yt z`-2dsxG0ns^z?9?Ozh%B2*xsw0&>e3-^Iy-a6y?=ys#Z6;gTEt^^P&SBdJ<%<2~u?gez*`uii z%uTb94V+!XTo)9x2TMzsig77hzM+hnZI-gt)|^e>OYFm;au#>8f=xeL$VIGb`X5=>MW2}V zqR(vUqAzUDqOYPJzOe@V?`*yP57xTyCsSVdiy1BW&9>_OVJ7qcvfwdY@G7p0(0+Br zuGp>!Q0|7b=x)d!(H#kq-QhA!4jaPdFnnkaoD1oJJ%i-&Jy0Ge`uD_Bzn)moR{=iW z3TRU3g}3g#(7i`*^m6Hq-(C9P!I?fN{M82sPxZy9Z+$_>`a%C=KUCN%Lgk&J@VD*{ z-q{~7b_{_0lL3P3HV}R94a7&YK{$7F5Pa7T#=OgeamR27cAgu8hf9XSpg}wbKVJ!V zDwNQh4a208VVE&vI40%{7rL?$=tv%curVW{7d;X;hbqH7NEvN?M`5z(C>-iO8X0Fs zqwV`>+&(%6H~$@jnmuC?@@y>DZB;?nJ1U4-KMpFF$02ydc>LEi9&_|mVOy?>V66#A z$eVzu$>O>Hq=_(Ao`k+(lTfNS8OuB;qowN<%(9;XuTN9Zwtp(VKA(yKTh%c5mKwU5 zOvBx_X-Hb6jx|;4c%!X>!+9EbGI2WQ$4`fw(hNxbXW***Ox!v%6K!8+BK?4-(1>Yb zwB;<&jakrLrG>mEE%cnH4Z{*`oKn+4NRkf1hfClbAc2`Y!^qPNO&=M|_5lAp1oTX2 zBk1C6Tv#+muvg~b?~J+lnl=}=l;XmHoos{qZ8$Zdi=iw#6u#zXbWkOAtEA09Mfk z7@@cn+-WK1e_o3GUCYqp?lLSfUXFbY%i*B20!K1eV6E~>jPzfLwl0R)cEk`5o*BYm z<0^!*7@9AfaKK9n=-)W6+>vlj^zXNvDcVbY? zP6YI{!G|L@nDfvEI}LZ?B<;e13A?d8a5sAW+Kqf0QHj^~AbtK`e9zj8nM3!%Q0R^f zU+;tFhW+?aw;!3)4q#6B0TgyQh~9e-V)>1O*r#WUBU!eB)pQ6Nrw`%5^Fx9|aah#< zVXRg?f?(exDF1u}jh07I*m4xkGmn8q9m6G|jWXPG9648yIX15xs9XBDtp%)aN)MeV-EsB{<>W6(>}8cg8Or zXQAVBhEcRLwhF!2_CL-ro#}#kRxTJ6>VjL%E(rQ6ICoQBan0Nnn|)o;QSFMw|GFYc z#SQP)xIx3k4Hl(tuz%(TA0>DAE_KJ5lkV7>7IzS^u!Z?Pbk+49o)a3uo&wFYhy2LKI?_01zs5UzzeSxy^%KG8^#B`#XZy; z$1Zx~zhBO;6B_J!ApJNe_ZJD(tNSux-Z6e_rrZnKX`BT z!^8kT6jl2{8J;Z4N-5PXIj11F-r<0D27# zM6rG#R@esOYFr?epASUgH=!S#6ogf4gW%#Agv`7kp<@a{ea~Q&X$K>6TQK(e2ScMW z824WUQnn&QeTLkh8BXHtQ z1g6VJ;>OHK?6HW%JGV$|D~v?r?MMvn5rwrgqTpl}g?N`JWamX8^`9vCb&bZ3Y0;Rr zJ{k|tM8h>R8cJ8A5%Dt`JtxLshfxfQh0gPBVho10#bCzA7)VCNV%m~e^gj@bN8zzZ zs*T0!&RDz~5C^;2arm??4x7B=P*NO+Z@1&1-aQ^h)8b*dHXfVogDw@xyqVm5~#1Bow!8vJ|z9kK}UD9wg zGY!8kq~Xx}G+Y~+4%Ip7*k+jyUuU7=O-~oP=yb%tOUKzk8CWIBKrizQ6raw(vZM@L zXv%Wuwq68`bvN;BncAtIfutN7V+Kac$))%#ayJ$$VJBLT!bIW#gX7#=$7Q-<2CXAQ!XY8hG42r9uzm^!TNX}GQ;!G zA|kL(TkqTk5J!0>!zl;sO{Wj>-m<>SlX0xZxfz%i2oL>?+Y zMxfAO3oW)!djYn-Ex`D`g}AI%h&{^-@xi7LJKPH)OD)8p#zGiAD#YQxg>W4$n1geR zaKNkx1}BQpJFEzm#YNb7xk#{=ieTEO80AxnpKNHG?{#t0*Ey{49S|$a%B*n~^QYdxj=p4n7CgCtzEp+p{Id-^kT#eZeTGmUPFP()xX?n-dPs2lMrayPj(1Z87ja=Zjl0?)iE(3V(%7+xW?)D`IR ztOB7wD=>IaCC*H##P#`=P+DJ!#d|BU*{Kp%5tT5>tHkuiN__69MCQ9n7|2!O@`x%d znNfxG#Z~xVRt2?#RaoU(g-uaa*pOd^xq?T~x1$Q@-c;dG*J{WqRl`}W8gJ)ULw{{G zTx_aQU|)@vfNHd*RD-x+GoG)8>4R$Y{8)_?`5LH=tU;_s4Sp=B!J>6FIAK$Rh*LF4 z_Nzf;Vhv7})WASigFhYOv)474`KJci18UJ4bE(!)i|50^P#s#2VH4}|S-T#!i|cW8T|I_a*CX*rJ(OJP zaU!@LjY;+RQCN@Bb@hT7BYtzg9`bMNas6jK{ChWG)`$i)Om4tDNduA>H{gRw12ncZ zVBNt6>^R*3E1w1|k7|H&MguxZ8{pK?fFYL~5PYuzKVLP#_*(<~do+RuHR9sfMqE&D z1fSgqKZ8cme>LL!mPQ2ZYs3J%MmV@N;#yE6hQ>ESKf4j;(ni5=YQ&26MyTFy#Pes3 z2z}oOjo*zZQfPw8kS5rTZ4!LTCcM=V?uiSV(ATgDzcw`CpKVQu-PeRwCz{ad)Pw`R zO?VLAgtyNm&yv)i&YgxhAw;YeMS1ChU9BgfZ`%Q2Cuk+rxP9;=$MdP6hhwlpKzrWxwC%}6}ijK7Y}Snkz~(?QLMi)uzj zQZr(+nqgnmj3wpG_*vJCnAT=YyewY-5%2Fe!{E92{;gQ=lUV~xR`UY87Y?lN5Tk)b(IhKw*7jz){^CdhCpMTX6pGTg|OLBI{*UM53LxeSl0 zW%##VhR$Xg&YzPZ`l1YLugLJ_x(sd|GW@wC!?p)96h0Os*k^(R`cj5bZ)8yVSB4+& zWjOaq2A8igO#UH`<(CYae`N^k+9DVlf(a_$g2f6gSl7D+MtxhLt=Iy&0WGK**aGXp zE%-E~1qYQ{aAQ~tCXQ&qwvjFHP;NoQs1}5bZh_sH7OWWC0(q4dV*(^#AQ6j~VONF>w~}R$#LI9xO4LKBsNVn?ZhDJz?TC|DDqHVksZ6sW@mFc3*6p6N@BHEChXiGJsO}!IstM|NS z4A5#uSG8u`S7}DNXoF^o&G;tTq|?tPd=YJQLuV6`?l+<1dJ}%MiMC(gguhb3#mQ|# zQF0UZMmAx9zgWkm38U?r;Ceu`_3cd$+ty4Q&OD~)*A+=yT0jgZT4#J8kI!Gvr?vR5NaPmBAPZ6n;Q8}Y}q5!+UZ z`_lYIyw+^Qz=`6XHM|ijg2U76PXq4#*MQh34On`!0ry)Qu(h%Q?RgEDoY;VU!3~IW zZ9w_)2Gs3pK#94ye;PJm^ZW)3p4ouXaShNP+<;0s!R`H0kApAjk<(F+Yv=0myrLe@ za_Vs@wjSwz_1JZ$9zze-qhL!tv{%<7Z9zS{YSv@LxO$u!SdaLw^~io-honb!aJwS< zm3q;~6p210u@1`u>(Fwx4w?t+;9*&ZbF1p`b)H}Wsn|2D`osF7oqgcweo?@0x0C&Z$Ob zL^U3|i2mEQ8bdc#W8kuC{Lre#<+0TW>QfE9uT{A9xC&d^s|3Hk3YuwEI2~ApGJEm) z&MLfIQ-$aAM7%Ir#0rC|u%F*moj&(=Nad}fYM5h3M4Y5459Djckl%EqOv=c^12|wcq=iLY%`w27G z6J+xU%O()04`Ikh4$Ipdq4gY;DI~7}9J1pag_}7%7IPR*h%4DVhZv>A_+tUZ_cNXMhydU&`Qnw+zb~%J4p;3?6=E=yRkD4jan^-@ObI z1vAM~p$x8XOA#sJ(nt}Xy2lEJl2a+vc9!Ddic+}FD8-N=r3m>}f;+f$l^l5 z(kaAgg+kc8DuCXF0`$l)5b;(4%*B}Cl^7fB(k>8Vrvhkv&BxIWF`g*TM|*TW9@>kt zNi6G%&&G)F{^mjbVIHp4y$afVqiR?EUZg)E$Wo{7UvV*Hkz z2`$G=eBYdjg1MPkJ0cU$zhq$7^$gr9$^Zf~;IS_QP0KUzeo_Yd%4I<5k>JDEq~lw3 zIxd|^NBFvQtkg`$fBn+o@+uATEonHBl7^16X_&Gp4K_$a_z=N{5@XW33#q8eOhtxk zDx9~bV&%M4$PG_L-p3RyzLbLV*(rh-nu5%2Dfm4v1q+9#;Mm7xM71X)Co38GuE|K; zk_@Lg$uJq3j6we;p`k4aR%uCie>MpR&699nI|=jpC&BAwB3c>~@hL7515S!rb(2Jl zP)|e;dBKu;kbvCs1nde)z~KD}$Tvv9Y?TC*evikPYw@tljYp$fJpNe5V+!I${~eE2 zui~(*F%Gk0A7D`IePd<<6oh=#JrRou>shL=+`rkF*8W=3PSLNu};LKnNfGFCG6L>K5%@460!BZ> z5ql*Zw==@g>r6PNt_#N;wQ#{o3&-@EVHlVjCcGfRkZT$SD~&Mp?jDBZj!>xQha$rz z6obt|VLLq(HQht;yCVb|`5`cN34ztd5bV?lfkn3v=>H@97IK5}#4#B0>w~dEEf_EU z1mXC#AbiOP!Y+p(w5<-p*oi^d@jVc+7X#6p6o`k%0`X>fAYP3Q#I5&&W7Ql0->3kr z*&hJ;g#pMP5`d+h{{4mJH59%BIfT@1a`Q?j= zmwX|gEW9O-`XWK()l5hFqRU$!#Mb&iE!YRy);<`;eBjv22RH8szlwZs!RYdahlw}R zCwPOtc%iD*3&qi1h}q|b5)01q@ha>wIhcYJhl$Jcf4cstP@H@~={sKpJAk#1PH+YO&*yCJr>8zgsJ z(U{{3eFs;R8Mw=nU7yR;b!E{R(m`r!U9+Brf+U|_Q@gnDWz!^*DJ7bKZ zGhW^kInq2Q5mPwfr=b&qM>%2i8%M-cI-;+SBMzB6;@nh6O#N_H%&sT269bOLiqj$^m+aX7s`21k!$uu(k*N$pX*H9so6ZH{0_@DVY7 zKZ3ihhcVjvFbw`4f@$<2tkF3Ht;@E84Q-2}9=2GOco0|T9E9GD0|+~KK(OQw;8)6i z^qapQJv;W{<)M8j>$4Ag()L0@Z!ZEm_TcZKJuvID2eGNU(W<)}_ipaO-GjT(tguUX z&e&k>92maw_A8A^vYqflWpv=cTVMQ0O! zpSOU%l?4ueGl#FgIf5sc!==IuTUMK4(({ezu-}N|12^Jty70J}XNqfAHeig+2CVzF z9>;^$!*$YnoURme7OU4m>)BfTYqu5=iff^sVuD;|A~4R{VJb$1Pr+T)DF`f@3?046XuB{8tIa1t_F^KYADamGZWG14(**P$Jpnq|s#wER zu|>=mTCN$7RrkkX`rdKq`b`DRt|~Y+P(?7d$D&+qEcCgUb6hkA(=LyO*CsI!**OZM zj*Y_VuA^|=PZ|Crlo6RW5}}$S;Zi*U+n0}k&W+)M6FVG5Z-&9*x?AB?{AMXh6BsP^d#`>;M}8QTXvvwLHXc5iH}=>>;nz2I|I z0sfm5;PzbjdD-@a@eg^7ca_Jhe)33<=z$I6df;ca9746_Fuq1G!{;qKQ(gjUtyWp!r7c7|YS3KqMhb1ig%?iwavCMrxneUk&%slWr8=U-&@sh91 zp!o}{z4@7`c79?_4n+t?tkpO(Z4Kl%R9E!_ATq{^oFGdy=GIA zU$Lm-m+VVJC({#5v13o3vxtw+SVs3}EM@Rh=BxUIS!q3H6Bj*VH%x?In$-jL=g@t2 z!s#Bn7kHP=O1#647Tjj3HMdy9#SYef_aD~!`X(#-af5mFy1|TwUuWGXUt{SyR~Z&x zVHGBqncB8X%o|RpDfwPti=)r8ZJBLMI25uyO|8uIY75hPC}UmTHM8oUO>9pu z!5kab$igQyupzVRnX6tMdumwAbj)km37cw`eYA>Qa;jv{{43a-m~!?klh~y)&T<;0 z%&zA# zII+0Zj_h{X8Me30fxW(eidlR-$*OvuVEslNW5zR&FsH?bSlY&etbE^oR_C~v34tg} z%Cuppt9G!Jm$$RNPq(q!uUpuTK9=n7m`%)QmO1NVu#ufL+rVDzTgMhTny`?N)vP1k zhz+bTWO^4@u`?OnyZFU&L>itKtF-arY z@si=JwONS`?HIx~y&A+4ehpyv75lT{^~nb-OE3&hC)tv|pF3`fypY zL+PUA^qg~&Fw161zH_~#CB0hmxUF3B_g$G}%-~|l0+uhaw#b(Fo=q1vpjyZmRv5_QrdPfuXKU@>(b;^L&|m!(<(doa7|fBrft~>@+do^ z98qR-CcW&_!?Lnri<-;YQ?HkekbheCW#`ATqU~L!1%rD@4>t~w{yIEdx?;SFbkmi| zQccGh($?urI_}0BQJ>5$n*(!A&Eh41KQ>9B=6q@8c~NsmPzl~x%zNVj}S{@-FVWQ?mYc^4<20AlkZ6F#mD;g;k8Hl zaRZC~yjXuA@1ZuB>kb^s&A%z}%@2n2C9;uxVBRR+7&3;Nol@b~wvOkTODFIn8k2bB z;3+)m`&91#U>e`ttik)|%;2ekntar8Eq=^GhZikiynW(q-rjpI&;NHGx4k}}4=!K8 zBjWV=FQ>(P;Z6g-bHy^gclrvxdXOO>`ehZbxMj?BtJmtD>fpDN*Nc9e3D)nz<&u9Rm@;yi31@m;@&tG+1bO;;-T zs;Wv}m0raM1yyrn`x<^^M=d{XT*vp%uIGzY8+ey~jXdQ`BUgXe#AD7i^M8wFTrIYR zuW)PS#s|*vIi_vA_k#1hZpsC2G4LY4{rw`>d)&^w+AeWke3`dJU*QeTS9$!NYuwW0 zI`2N`2KOCzlYdwEhp+hWAMW^12al||#lzBW^JBhu`0OKh`6IJ?eD8w${MMugT&>?j zzUAXX!GwFnZEGL%RcTLnKcA<(!1fu}-te5q%zeS1s&w)J@-O+A*Dtx^1!Su z^@gjRdCQZm-tiv>|8kva|MAuR-*cmn@45OvANZS!kK8x@6IXQp%x!mk;U&ui*KOK2 zepm53uYdoYyI=po)%j0e9QBJ2clgaME&p)W1%LUHfnA6>ccGCVyU^S1U8&%DSK79u z8+DU*qmW76X-GtOa_uQcPfy5^R;L^t+Sr2UiXrptP^3*iEClz@1B(HBhY0WML z>eZn@g-d&p0q;fUC-tWJ;k_xbM<05Bv=3=M?L%AF_NCJeeTA;6A2}!XqrLqVN&k!@ z^?a*Hl@|SJb6bCUhXJ%NV*uS6I*_zo2h!;e;u-#}gQ%l@5WSu^nBHU$raQxj5O*I! zPM?O*Y^$O4;L=b!tgA#Hvz5q7XalO4&+hpsBLV!sN> z-BO|K#p6h~a2!=BkEbafLf`OVJT+}rrO&OZG)Q{_DJM*z0lg=R|2&au9!#VYD<;vX zvPqOTb~34XPo|Jhlj()fQA|EJh1P0Kr9E*|=|E34+H^>bBzM&4*WziEmp_eG3|FTs zPU^JewK}D&)1bH28Z>V5biqiPPKMuwkGs_jns9yw{iijPGGb@a@*bLWW4|V?x~WM8 z^Jmeo^jW0cUyC-J(4y@Rw8&zqHt7~eR9v#EI999mU5hpvvBOA9>bQsle2bbH-AlCPXc%Hwotq=znb zf2&J3gq|gk=9A7CJ!*2%qq#5jD9&gBy(n2g$|DvMJF}26 z8qt?BBf2}xn6mARY3m(h`aN$oImZhw-QU%;Xxkb(+pvaGR81())kHALv+WjAAyHCZHB)4re9WM#U8=9lcCF8y~3-T6+^mhGhUaW?eZ!G`8^*pP+RF52$D zi;Q3HqH&9NQ%C%6I`VxteOkMR%=7n9y24(%X|epjDg#@38gENmzS>fa@geG#d5F}y945)e z!!)VzF#YU#gi5y@p*8#nT~$0vZ0AvOsy<5jLyl4H-eXkSaE$y%9H*7G$LY1~IN6Rq zK^;d<(8RVAv`$4lHF*3aZ4o@YIpgi<+X*|0zGz1(s;9{F+n1paWMnX1k--q4wP9CN1I zan6(|b0*V&o$2o|7m8fqLgRP4P<)UJ^{#NCU5{Oe_jaYPvs{Jt+Le~OxYDK^SK4~b zmDc}sr8%l@G;pOG-8$?>LD6nBx515WymX_j1KsH^+-dn%cgpY(ddGZs(!S|V*1z4! zZGs1duk@g(!ye=tC0KiP9<=y{2lZ0)q#A8c+F{{IznnbDCDW6BwtJHGXHTkD_M)Ep zUbJwR7wz-+BF|DU!B_L5z%Jf&dXhJp8+y~^!`}2f!ka<`gHP*;H#I2ukp6TZDqibD zgY0|+i^hji8-3_Trw@JY=SvD&zSMi8ueip1=|Pe&70Z0-*lS;!GQf|{Yx~g_Ge3HK z+K)CQ`%$^fkNUm#qc#2g1xLc4vP}J{+TLGit^7&a=ugov{OLfS0Gc%;fS#KKkoWNb z8WSBr$<+a*^eBMrfqAla1$lEXiNbnr(Ytr;CestbbXnN^Tr z8U_g+z0kV01<{JPK~&K{m`2VDrakL|Df@UZ-HHsRuNA>0e=nHi{sz-~l@Myz51|6n`#+roIlL)V`tAZ+a-%7>81UZ76jHg;M{LP?~f-lr%nvlB!Y|DX=iQ zXBtLHC&Or6R2Y3N4CW76nzkvNb~}VqL~J;fR)tgD-EgY<6;2tW zBFJf81g+QINdJs?iM?7^=N+4(^kfmV)9kEHE z);A}OgRQoL>=4cVATCl4pmdEZ3pn~_L!>l4ZBPNKN( z6KPBTBw9K(iN-8Sq9>b@DExR5vA`s1$x5Onje=WvH;MXuNuqWAlgWEZG8HULrUvt5 zYCMum#lFcDn3hZyHOVyepJb}~H6B`o)3@{Kx5F4bsyLai1U1aCzPZT>ru@$jJ#THxCci!iH|2WUxyLNwa(S99Vu`a!M>B_>jLxBOiyRucDu*gu za%eI_`f`|uFs=KB2Ir* zYaX5KkxzX_=F_Ul`4qA^p9&rFsp>#Jl}F`MVs1WdKblVyuIAI@XZhs$BcIeY1P5Sf z0lhIUps8~U$Y)&vDO?NaT0j9cq!iH2vI4<;E1<~R1+=)ifZF^mp!6PvG;(;MSTR~i z?dBEI3fn?TaxJ8D{)O~3sgT|j7t)jCg><&QkP@E@7UTCqQdKXa^Z|lNFrkQ&EsE&3 zbrD%P6jAWrBB~52qRVMTR9{v^XKIQl=Xw#jJ};ti--_sVhho~^ub4iJDJHwg#dLgr zF{#@Y({z_&!Nn^kj~F4@;+n&P-FUW`y5BCQb4|sx?R&8pi%MvpRtdcrRYFrHm5}e8 z65^{$=+0L0-M$if99%*dlS@ciSV9|)l#u4d5-Pu2LME?DNb$Xd`gSO#t%Ai+IJ}f@ z8>8132Nh!TuUrMzurIdE4lvYNRl1h3hB^8&F_R&%byHHBaw@btBhVQEu-KKWz^TDjAA{?=yymNElw(%C(7uJ z;6*&US4QWX1XHr5j8?QMCsmDdO6^xpLr0WToI$x@u9cI8RXH74QBGMK%SpMTocMuq z$_*?h@7QvhBQ2-DMdc(@mXrReaw@4Ur{4F% zA#Ah?G54sTDGw`%URKbMPZhLFuridYa(dB4E}nNebsQ|Gza!=JSYJ-%ljP($O-{Y6 zASeb{8$w~c; zoV+i~sp-0$*nK&SZg60fX(1qa&GSX8} zxPgLhKtXEe3K~8`K@+VMG-k1ay01`(endgp8x*u~i-KM|DQJhA_-?O)rh6(V%2z>` zf)w;ITtV$(g(NBHbDDy#WGW~&PeHSa74))PLGFhY^nnz#qFO=4Cl&Petb+Or)`)SP zf+k-V>D?Cjy04(ejS5PABJTY{L3dv%1gk{k@q>bNTNJeYn}RZbD(G~pg0BBlP;J{v zQmR!_Xva#L-?@_h2rg)H_evVtvyu{fSJJP(l{BY+CHW7ir1C+PbaqH3UC^l{u3JfQ zBPwa#s7mTJMx2kWq*>!C>CE^_8m}*|pIAv34JzrUq2Qz#i~C6`1<$FHT7}d?q&G&5$MwN71q@6ADuukMfP2?$Ap!;oU%X4De<+O_C1x;>;^ftyD6vAE8xX zNT8f74#{c29yvXCmQ%8WoF=c6)0Jg%nloQchb`sQWwM+W8_LOVj7Vpwoa9>Knd~N~ z*!FVT@~48veyN~_<_g;Tq=MSst)TsN74-N_1sVKTL9X%&lI2&>f9Vx;I#%=-1{E+gFmWi+R28LeqkMr#Gr$Le`0jS}O)=kujh zbVTrj#rW_nt&}#2@#3Z!Hzw{B4B-u>blAF-8Z1lcgR!`Fgy8@5Ev1@{VjTHdLNf&e z=>2^$Ze1>+4#&h;R#HND(@KQhS3>JON+{GxFpAffP{I5XN}W zrUh?{>2^agSzRus@}tG1QdCS9$;GrIsF*_c6jQuIF@-NHCO6Asnr$e?Rh?q`uX{1s z{41iD?}}){gCe?esfdOhDWa|UV*HLTq7%MFbZuu5U9~NuWAlqB(X@!{Mi-G*-y%BR zu85Wh=FqK2g*3CakaCX}QcHdzO^7d~RX&B}x}%WxttlkuIfb-DQb@YP3h8;bLW*rI zpoy;wsQQ+8AtY=KsjxY|3)^FIU;(+f6;P~g0p(Z;VFeU3tbm-m6_CmAe8I`cr?l(& zWOzKEs4$=O;`1reOV~D!`7~rjJ}nRoBgb)qX{41;uB!R8`h6Z5-piw(r}L<+ERU8X z=g|w_JaTZ(quVR<$as1l`HmC3>Arc?tdd9V-sY0V?Oal;$)z`ixl|LIOMV`?#5U*B zy+ygS%_Nsz56h*M8o5;UEr;4Z&Y>w6b7-?7hrCjAD9BG7orKM|JcmrpbLij598z@8 zp`|~wsp&~JISBjlmarp@QnSh1H=B+-W>d3uHnp3aOk=8=86cx8ZDmyPN=klp z!WKU)rC-TX@w`fDyuFml=L+VMzLdOsOQ~Mi@I4-9kj2>yT3?hwE|D4Jyeos&uF4=& zvkdAqEQ8K>$PnDybm~!`P8t8pVoFJ;AkTDqz9F3^&PpezvFViDEuE@b(x~Q68Xfyj z%r&HGXt}#|uuAW*RjLPSeVJsdVO8Dh-yUlA~`bdSpb;sQ)-i=Ty-B9cwaKI`Po^)?Vh*({ znWimIro|A_Kbb6AlSt=b61AL2qQjX<UjNUwJ!Qk%tz)WIN;{%R)D%a#N>aWjE}s}gAX|1zI;i_a?(s5cTQMk|5-{Se&v zd+}5v=8$j2Tyntvcrvqzr$r|5w4{GL&HNQdWA4XMo1<}bE;)`o_QeSXP8=Oa9L?5> zqf_5wg|8--LY1*}H$Im7y2sM2rLnZxFqZad#?rx0F|^}a3@t5>p)nDH6SZB;iLGMD zdQ1$x?*{C46*I zv}{5Y_0))>Q_YdI@j@hh%@y-?-$;6I7fDOaBB?|>lD_?j5H?K&t*eZngHaI_<|MdM zg4OReGJ@>eMUd%}a8f-UPSq*lv}I4YV9kV6oPId<)(EG-*J1SLY#3Q&g;B6)n3$i1 z(K|^Pb?zBP{Xc|~_T^C0$PcB@KB07RT_{DHgwnh|q4e`p2qo5r(5S)?D)I}V!FC~n zuNXp)`h?Kv&%vUugDIgPn7D5+U0N4R*Cqwig|;U3r1DPKzi~tfc_p6T&lzX>b^68)T{#Nt!@CF z`|D3Jcl~Lx!k<*b{3+kwpUlkt>4KI&S$_7T%FBM#E7y;mUOY`D=$V?m#$cNha`cT?x9~x`qLuFljXxIyH3a$30 zrg(2McJ`*-Grg&JknmxB^P+ckUi3Rp__{p3=+km9x;Ng7D%*RJYV{!s5dN?a+K0&e zvM0Ik_oSH7o|JIcgS-PhM8E7o>MssbVeCPgFzq0veLO%PGY-($`3GpeU|cOP+)p!C z?5BZh`^DZM`^ejFA9d}zk9_{yOO0Fh(vUuTY3}JgV&9QHv`qN+j4$n`zq@x+>9E~2 z=&h7^eG7RW*g^|*w@`=L z%~a^VnT!UBqwuYE+~GhA`#O-<342Q2Y){f|_7ui9(MH=%q}yQ=T`k*48<%gSCx153 z?A#5MGH(OjYFSUeQr1(aY3r%&Ydd-oX-5i)9c^p0rOtk~lrYAYy40_u?R(ada^O08 zb9ybQZ(B<}yRW4V$~E+2^%^QuSwrjdSJS_Ft10NS4gF5Ep;c3CDD&wmx)r#JTJ%;? zYyC?4xO*jC)fWEgniaIreg%CHzU%#E%jx5i<+SAcGLoh)qdVry1UqsmbqZQas(Qlj zebt(dx>?iizScDOza^wtw}cGZE}`_?#ndu;F-hJoqD_&D$kSjE`Q2JbyZ0`nrP>Q= z(D4Oy({2InR$V~t^5&E0?D_P(c^R`87LV-QMLCd+A?qysU8_gkxNHX=Z_<3Z|DfRHDUw}J2jlvuN_WNKXj=gR+nnV>(a@K z!>Dr8FiQBRLt9gHXuPowJ-a%Tg0~H&p=v{^P&$N$nG6xkwZYWvJeXLg!L&Pj5amr7 zMCb1er29Ju(xc7;>1OT#I%YnA;_qpbotrid(9ot!dHreI)c(|ZuOA(9>qlR^^rJO- zTBJ1BqPF+?lDTVN+R?c$Md$RPT=AZ-@?YGs@hA7{^pkrU z|KOX~f9EFQ-}n#u%4N^LaKr9jc!g;T@3;9g-yZXc7gc}cH(q_s#OP z!nn8G@x&Xh)!fYGy_&hi{58+t`ii%Ud&%b?Z{j|$Uho{v7hFF1IWKW|#$%$Ma{HrC z`0(eC`E~K$dOLf>KifUz4k3;FeB}e)yRm^UYTv;3O}Nh^SKi~X-gmiw(H*|&#%*rU zdW*l)y~Pve-{j+W-{6NcuJcjn>v_nBYrLWFHLgANDxb5Zjypuva#y;-ogQE2D>`20 z6ZJ3gpDQkM`JoGZW&U~oq3#^t{p~D&JMb)DGUE)--+r3Ei#^4M{dbbjd0NBmI@NFo z{S$ocisO8SXEh&~dyF?-{*TK(ALUm4j`Ak+Bizk__@^+=?J5Ol>|Pb`DfV|;K0>g@ z=2h}aR|UVEB61F z_Nn|ra0=g7mdpp=Na9DnC-T_?68Yt+3Ea{?p38&dc(1Zp?sz?h)3<2;tA8{%FpuK4 z8zZ?-px76$IGh(;4dW#(p**i|C{HvE;U2cZe3fqy*UJy&UoQpls`vhUyQV+yC-LLe zt92ZtmRYVR`WOaR`H<0 zE4h~aa-LeWl=t|!gzqaWfDmvLtNrt4&0#7+3_R&ZD_{?Xr__wM zMI-sG_rp0e)a6lobojIXhVb!i26I=-fxJ9On>StQ$NTiq;^xcx@Qum6xL2blPa4{T z7uk2?%0dl({9R{WGf|x%ckjrRN80n^Kkay`g(?s9SK*B@|CG7?Ta^x3Ka@kqd{y3( ze^UBRdaoRNvRPR-`=xUGwP#ATm5-IFj~*!XHs4boeSb?ibN6*+-Jd$;Qvb`!yIn3Q zZQ{--A84OcuF0-eJ{WUUxkjN>KA2RgTzj%y`EYiLa>KO(Wz&jWrPHHK<#&e+rSJO` zWzXG-%Dg|Z$|?R);vV73y>Y?HK?4Gm7qWenpO$+n*E#G_-g9?RuJ_-n{2sSKnVz#+ zX?=L9vj3U+%9a~5m5tBLl?^RWzEw3)YW5ndoUf~^%rF|LY(Jxq(tlYuvg-4adsU;{FIOccR##0sT3$7(F|%r3o4Bg7VF6Xy5iV8Ex0hC(7&NIW zb@RX~Rk=#l*RPiktB1xNPMBtLxaDa=<;`6hhTBGK8inoiGSY73Mr+JJ80jwRY5eZr zcw@ElxyFub9gM@(yp20Oh%g?ZNHcyOSY$kHtw25+oHM@J{-$yJh9}1LWgm=IM`Ei(Z0XLaluf@Ey*Z}+TaP2-|Zz5{(iCqx2H=ER?n6A3*QZ@2nM7CZ=)gf9q{6xBpXatvZ52Xf*izsB!$s$B+mcdOWHeq zmh8O$RZ=$Vr=c`j3DvpRQS-)l5j#O`iP zL$3#OeWJ;#6MC@^R()7U6)o0Y*^j;1rp>Ab4`lW?2eDs4L)fkw(*&CE}YVZC_cWnrOiOx?tt*}vM&(h~NvGRyre?ehWVAoE~d793*dJiOShrQWRD zSRa<8;>)_;^<_KD{Mbo9fA-fVfQ_0M$jmzgvFVLL%&;<;bq@|<_t%B8NTV=jpdQX@ z9)&ZLstA@D63JR@qnLqlG+Uz{!(1Q5Ft@|8%q}>NO^FboJT#>{~ z{gYYZsub2ZE|qm{o5n`pPGb{_(%BHt4EB4ml+_HEu^m5UtW#|!3zucFUvAlK$*dd} z+dr2bf0xT{)a0@H*nD=xp@4-69{^S^&qNrv$KF8VTB`4U3VKr=8OAWI;eUgofJ;nZPIL#^z&ag#o&$1i!XW5j@ zb1cl|JUeB6L9DaA$R0OdWampRvG@a*+3dMj*b}W#aWWzW8VodM1$m?(R z_rF%A@cqMPS^Z_lH2*Qp`~O(ZqBfXtxDAT>s-VvSvA6d_6&$l@i|;vYq0> zt4N~3t{D2xYD&BemV6+ z@7jJCq}Lz4Li^*#>;AYnTN^?7+AwNA0JWP2!20w6oEth2BfSQ~{oz1VOdf%-u?KISi;2W$E4tTD#;8N;yA7$YPSw2PFW_N4?~QyB&(Gvt0^(3%UlX93540q>Sf zLZ{+M=%y-obT%fquP{M|x+&&wFh$c5Q*7-q8Mn7g#<-fvaOyh+NzPMHdUgtm2bdw& z%?$RJ%rJDQInM1d$MQOJ)ag#e!~;{|Q9l)mkrslPVu5=%EO2@BG~^wc2FF{|&~NN? zRCrCt#M{%6GS(9Byeu*Lwj~yhoq@GpGqCj53>c4@iNBsRQE_7?=8c+#YX@gxO8qRv z4xf#B5ij+#b~ZZc%t71TbMWlq9Fz{63%i|j@%zkN9MZDFTSqHQJz)h;&3VYSp9eY3 zLqX^H2v|2C^X2o=s=5Gi%NL+$;Q}1^y#SZzFNCUWA%=Zkh_RN7pq;P?pI2K$Cp>j@f<5~ENBG|++Bg8qgJA9&r0Z=UkT4Xt59RV3eAFl_e<4AFk5U; zpJ{`Hk2aWYz8bf~S7Y&m)liHP47|N-FzWmonDt%@lZ|UJP`(yTf7c>m-a3p+S%;#R z>!4w5iR*VZ?%KB(hgRt>+yTxdc>ryN4MAO;by!6$GkV-ZS4lA^xr7T zAY$?4A{Ot@Ml74N39sWeVdLXXI6c-Lo%Yzn_>?_nYB*rZN(X3XJD~BM0|G>ZaWCJ^ z2&&zTr+v3z=!PwrS+WI-zHPzOsaw$}WGm`#Y{kxj+wk3C8#YvIgW~5lyqe|+)i6i2 zyXA=21GnR_!**;c-;ST(w`12-C)@~ff>yl~Ec!WP(Ryc0FLcI$PtLf99XRN<1F9Ex zU`IC>)GT+ww{#bDe<4I~C%(Au#IYkgv8|0OT4%b#HQW_-H(a67-wg(KZZOSr!>G4z z_%%`R_V(<;-0EGp*w!6-v)!>P+#Ry(?x^Uy8#!xs!y|JyOqzD1Vay)b?bw5hm3z?V z#~#d{yjQf-y;y!`FN{Q7=2xqINQo3Nnm6_#s?UBrS+yU1()VM+;O7D96(*c z0qlNr04n1Tia4!Ve8u5f5tSiKauIg7e^sytaqXF#Qm| z_#MK>vxl%*Rm7AI^TGg2FW7DJLV}+cj^}vc&KWN}eeQ*a?YwbC*Bix_-Z;3)8|HrA zXvy|Q(rIr@c;*e>)&~=He2`}0gP(RHmetD#0a73E<3708=!18yKKQKdi&rMTxVFj{ z1$%wrmMCIjmA+`W>5F|WzUZjwhhTj_{9Yg!e@=c-g!9A(Fz1J4#e;!foQiQ5H~{u5nm99nP&s>`bi)T{tbkRb`W;6AUv=Rf}x9u4Gs%J zWq~+9BVvRf2SMde5dLTd~2!>%pFsek{@kq@Ogp3P8 z}?;4#Y02Ue{v{pEDwd}&QNHDg$j0CD2AL2 zMOZ^9UVjaRq*FvO{tCm3p5X`@7moh3 z!jUd`gFW_#V^?fAE|i2r<6Jl_9))A`k8m995h0jY5!gFD0_)a9z{ouUzr!P-$cuo@ zi3ohU6M=mn#j#@~Rt=4Wd{QKSEsliYwn(h;iG+JfBs>+7*n24w>z_u#^j9R*G^220 zbQHE)L_u{`6e0wxuwzgZ+@w*cRYpOpE(%LtM8Tsq3Q0Yqku@e7=@!ulS{aRvJEAcz zAR4dIq6JGN8sjfTgC0l2@Ov~eG-B{$SPZ6_#K2=w4DuafaPnXbF2}^+Y(WglkH;YR zW(<}z$Dm7_SXA|n6@0%~+?g6H*i5lF;utGpp<`i_5Q~^%ab6RP`dhKM+Z>B)|6;*= z#UXrjoM3CkLESnI6`SKQ^I#kvTEFPBM;}N5tfck+6_@|#Bo-+}*zajx6 zwk1H*BLVLs6L2Ie0d7?Z7<3^4{C)x~-ih!2B|t|r5&Lx$aZ-|qAF~rNXmuhCof0wW zP$I@fC!$AoB3>L$M8Ua4*xXG->+3{>|4u|#jU;#uNv$@n`t8Pn${W6#=Tq&Ov` z#3LDH;ey$io{U4K$yiXG42{}k{P!RkE8iyL`R`=dbxy(M{wWwfCIvetr67NH3a+k5 zL6buY-npmXsb31t$EF}PD+TN1Dd=940!3X4rZuME)SDDc{FQ>pj;UzulZt+V`8dNc zRm8ETig@%?Y*?ELE5}sm>`TR~fK+6}rDA$kDsGpjVpVl2E?-K8-rZDqyhz2dqs zmx_)WY3S8I4c$kk;kRKLZcR-?`usF3vq?j%LmFb-($Lo{4WVIa_>hzai`+E$$kU*x zPDB00G(5hQCiqNgxcDv&xj)meLoFSndZeR%KsvUJO2-GobZjzD$A!7+7_dAY>jZBy za(g<;_oU;5Pdci@(@~U^j)3fREG|n&=OgJjESMAX>e6xJZaU^XOGnwebhQ1E4$HO~ z*xe-qiG4DVHzWhOV=@q9lmTb63{0AxftJM?NL!r&Bl`^e=bV9wdoz&Woq^XO8Nz1I zz}oZ-c;saWTQ>tClz}}bGhlt`|M(Yo8ZzMZJOh2-Wgz`)1~mVQwAxE?v8xoF`$}Ot zSc=snrPw+_3I`^|5_7@6oF&Eg1yYnRmty%kDc;#j;p!ws(=I7yACw}+SBi!ZDb!=6 z7?muAu}q4I`BG??N%8ft6xIJpvFnr+{V$4pT$RG`wiLM!q=Ex2?)O@X_zzN?{wl@e z-%`9$k>Q2lY}RSWkk?a&?fqoX87#v&T^Ux5k)dIN4D*a-C^nJdr@0Jlh723#%HXk3 zhQOsV99kuV!#WuzZz&oYs&LWVn4GE6@rgY=kSex49{IxWN8b26;ID8uF} zGOWHTgV}Y#Be^9*{T*@t`!Wn}l%eF245OaP5c6Dyw@o5#!7g!pBSZ8%QN9l{!C#Ug ztwrSjs|@qM%h2Vg3`c*-u)I~|<&U`UKbhbiXJSBG!9r2ZL{hs<98=50)%KaV)*%xo zJ7z-GN$^qBGojZx6L*BTcF9DmkX;&?Xb>{7YbJIJDH3u;$ix4aT5&8EvPX!akVbLs z9wGn4e|HOM5ckp-vP;}MPo!~Pq;*H6d0V7?M&uz=^`>Il;oM&cK1g83-!Q zfNz%QZ;}NUH%jyoff=~$k%3*iGSJyk^hN74&~c^seSu)hdOVcrPPC8nrq$A599T+LD(N4!i!Ss!9myXvz(x4~$V_VTLdyD=# zR`kpWqgMN`c8U!7#p=g5Bp*@SCS#r{DtJP7!S5uoSp>q#)Nh z1($47@NiKIo>`>ejzJ3k8lgNETyMG7N*0 zv3XxILbnQ@(5hr)%}GYWq-5+LEym=2$elkm7T5eaV+G5LNXu3t#RDxQdIxrtzL ziHP(`#2uGJbh8!b^AoYqG!ZLDCt`8mM3|~23MN?s9zISGe5V9VKbC+;g$dY}n1Cj~ z1T1k)K$&fVVA~{Ml1TzKk4%7nuLQ&ju5|4Cc=$93ZqbE!7*@rjB{Lqm5%HLHARhNN z$79XXcwCzr52JDM2E($ zai|>?2ODAM-4XWQj5o2!z8#B}ld&)?jm5^KSojMDQlfJ#QdY$ZW_&E%Cd6WP|5$WY zi^bUwF>tycBRF?4h%Apmr<54%@{2*ea|{NqioxpXF~ZJ|5q`B899467@uXfUMPmwgkpi1$7~hz8F$xE>{=O$O=h8(sT+!Z>Y;e_Ap{AxLSX)1 z2=2>5;1Cdk7mguVwm1Y_5`xYHLathz~}?{$SMF2BX3<7y+Y$ zF~4gt+P4HjaVH21j|Jh8EC_aj>vVH#5KI;XA;v(=-TDMU>$jNaJqm=w=|Jqu4}^!9 z`|T2Qz_r$an8X6nUR$uA{sv(0(*O)O7l6vb0GNgcfV%`hS8$*FnBYG34?zFF{#g9P zAN$YvBO%`(IUz!v{E@gw%ta0Tv9ynvkN)&SgJ4009`}P@rXNoF`eC+%IL`LNxUu4U z4L>w~@WqhpzF2YC7hVazNEP$qA{$@9-}FVsAYb^m@x{8QJ{WVx2d{E{kP_$vv#mb3 zHP;90^nAql?t{4>yisz^8!8HK%!&1e-!5+`mU-j4#2Zb0z47*k7n<&Q;rdZ8C{n%P zchC!S)_S3>nHNe2c_HcVA^dmZ5YBiVLZ!ta1PkB5jMJWY>FWs>OHVv%=Lw^;9&qvZ zK+Fseq^Nly`0PR0`X7Y$jDx6dcMvnr9DvgI05ql_z}&V6;CymF_ImBdHuL?M_IDpt zs`nxPz&;q7h~tmFP~m$q-F>fcGw#KKPkZ26z6Xn(_Mq3;JvjMlHy-R z`yRTZFx4F=SGwawZ+GNf--TU~yD)m*F2REmewMRtsPcA0Co?x#{&Izb(iJYQuGlc% z6_cBH;!o~QghS>a+>Ix|>kZuo35Cgv{B9@-`dc!#BXpc>|v5Zh&jU zdc28VkNLCLBl)i#t{%3-`)zjkKEw{qw{3AQ%ogF(Y%%4>I@}eUt2GG#Fr~@I%Nf>E?9vAl@<7Pcsa0TIqbBT!>w)^c6u*^jnOiU zf4LOzlb0fC-cpSFXN@wsHTrF`hD#r7R9;wu$NQJyr`{6$dAJzwq88)Aw8e<{vItZ2 z7NK#)A~H(?bjJNnh+G@?<`4#LP$D^!eEIWgfca&O`39 zc^K7x9ukyR_~c*(^tFQH`MC($GZ*nA=OX;h9JmC|5wGRv;7`+RaP9`7yCE6oD!=33y%cd_3}?o@2Fo{EktQ;}L`4(&DO2seHws%fj}qW&VTigp(=!7r-VWKsRWhb5|~Vqp!~TpdPW(;-qaX*O-8sC zZG@J|MriZO5UnwWXqqD41H3XoP^FKCZ{;W7rgZYzICN&?pnR-{MIm~)XQ+oIjbm{%V60%;j>YPG zV-Vvr21mz^LH*6qxa%<*S4WHnzd8yLdq-i}&{61eX(TFLM`Et_NYtMmfjQepK;CNv zI#mzH68qr@(HM@yRl2BMtBX5oy0~6C4AskqA^DFE>~nRXGhYYSz6^zP+EDzNJ`^5r zhTwh75G*nof~+Tl(G)Zo+WLcqoizw6JO{yc_#mvjG7!_;24Z0UfoQH7fP&2fu%hb# z{5Y(Qkk#7g+EyFB1^v;ypg*R4?T4_`emHN@4_{ttp=X2^bd9ty;(lNB_v#Ck5q)v* zavx;x>;v1reV|d@8>Jh1V`|6VI8)jSrq;cX^P?yJrT4_V={*tlN)yM!HSx?q6Tj{V zo|i`tw9)B-59hk$nqzn5bngzws&3G=>4y5hUEz}56>VpCMc`Wv{EgDUR$~pEzt;s? zo?Wm;rwd}wbw>5J&bZ&TGu|lF@nN|-UjFKY`ixE}pVkT9O&u{aq$B=~>xkm|4w&oS z0S~o0!2Vc!Jhp9*1*+{K&r?H(xoTMat{ozy+To;OJG{KD3YGn;=r&Llnl)|FabsJw zsI|rQ0u|(1sbKs2HW(G%26qkH;8)2%ruX?To6Y{Rc?bV6lasBiNBdS*Kle8~5c!LB zz4?=cYW-xN*Zg49GQYEfFTOF^=x?mt=_|{Ze__F2TiEhRElk7XGb^k4#7x?KVimJK zvL2xy*xI`HEUw3UR<-mUJDK>F9l8I8r4D?Y;@RN@vi(1yQ6W3#VokZOd@ZwYgccwrQL6`vx{yp-RSFV zXMH^@=~2&aExyLyMPFr~>+4ukk2-c?aV<-VzQR`2UuJ4OF0;%wiqw^gp&`-%*y%kFb+piQO?I*0__iTjfet{jQ27jICmJTMsks{7QD= zxq{j2DA-q9Idf01V6X0%vw2$OEOS{IdmU5Cbgq@K1sWyHac(g?5Lm@8(Bi!)eA zcseV;n8wbjrLpT4sqDJgEAH%(WLEk$i3LwgVk?~z*}%dCcI$aO^BEG)bl1eOqlvL> z#*G+urfUqFG&h=M`A0F8laXv`YXnPY5v;*AoOLS;V|X3Pmg|PHZMGq7S4uE*yA{N? zb`N4ptpb@OAb@F{^k)sf{g_nZ$5!q1W$Gn9Oy1(|`PjA0OS+nM?PA~Ixc4OW@HCT7YE-dMRI@4azi6x)tz`9Rt&wR7mv5!4f*(!e(w(s3Pu_&ii@>cOv zk`(_m-sNmn6aW&r9weJ0lq`Jt^7YeO$sf{wMh}gCrKCsw95u3dz~GWs(k8izTz= z1(KlHT*)Q(EJ>G@QprM-G)e4$WXZk1@sgoWVkFy7M@o+5hDkaF1xwa!3y@UK^Oba+ z;3avWvtN?)(oM3v#7SbkbF;)$vR6RzjKNdm+~c>57h7F4 z*1vnqc$$5MameRv03#w(eJak2F#<6SOR#v;(xcwccp<0BW_7=OEV)yS_~ zhLL&3N+WagX2Xbn;Rb(8vnyXMFg`qWL)hU)?c;}M-TZL)*xBw?RkG1l8V9CTom{%Q zO2i9PY54|JwY-n1+G8WF$~s$I<)%+nuT#!cwNUZ~bRWFNgRd<%EC_e{v zP~JbLp^W<2Q>m%jUum~uh;m=Z2<4h;J!Pkl21+lTNy_6(&6Q^ZW{4;nE9J=M#Y%7O zl}g#XbxJ>vP0F!l+ms0pU6g0K?on2nc_lRBqZS*8c^iE2SASWv8la<)X`ZO4lca%AMa!l=Czylx>GqDr2Ek{+oY9Ib-87 zrTyL$O55;LO2e$P%E!tJO8d)~m8T!oDSx)qD?4<&rF^G-S6MWnK{;jmLuLN*C(4&w zpDX_!e5rgL*{m$edZ(OP^-)=TzD3!5@0+sq%}?dCKds8T4sCc`lnS@(r^*{M+i}}5 z?fFGT2R_iW6JL2+oqJey;lVdFxQAe>**xpc2RUl;i=TV)HT!$>J1TuSg0;9;_x`** zQJbF`G*EEL2JvjYA>6TYDDP)7jF;Bv@{zMf@POKp{F3!({^i~n-quc!e|s^G*Evq$ zA)oa5*gXckqScW1^D*WQ9T-mx1267j!m|@hxu^CNK3QhQALvfyc7+!F+_>qyo5GTt zNM`a`M`v+~*&N>f)LedK#ymdn;(UH;-a@W*Z4qB+y@YSRZO!dgE#oE+mh+Z%D|z^n zRlLKd)qH)^8lJjk9Y5S`%S*Sf=YH=ua8s8}yk4w#o$0ojCx6+(FS~E!4c{F3r9DnO z;fFJyy3d7Q__>ph+waC*e(mB>`*-v3UwioG{rmW!U;DXy-$6d~rw4c1dx&2;;Kk>e zdh=tyym|klKHOoSukd90@pIq(_# zl2C5x7{*gahx12bFXC=_5nOLmBsbQH;$t62agB^<-mp4`$M=inrgvg_U0fWWwwF!KFNFv`iD~ZRnOXdkDlexcV3b!>)<->oZ^4o{g_|Bc_{KvQqzO6ZfpUabS zjg2yHJ~)%FX~^Uo60`VH>uj+nagJD5oWt`1a{1J0dHl?uJZ^9#pNH-$;I$J9`H$v8 z-Zig?YpgHkU$sm4`P(JjC%Tl6oL9!H+Lv>^ljS_@Kn1^LEax3Q%K6YD1s}etlJ^*N zm^a-y%(J7b_#7)GztfJ3HRzm|>>=Kwe}wBaAK{a-k8-x=KR&4UG5)Uh7|#x<<`(A1 zh3<}X!-^9;a7zt8J>(>RarY$u7*3}r89hx%UNDL@*E%Z=p5gdaGoET ze}O+~cagvU?;?NZdWlz$zRW$vnseR6D_lOmmg}~w;~q!r_%X4u)8i4>c=Lm6{C-S5 zFQ0v#Z~J?ls~^6>qqg4UzX#pob8p__Uct9{irF2W+;WF|6x`)A*WTkTJ?`^>bN6}c z{sz8s!ULZ4>;XTP*vQXXJ>>F#54lg}BaY3Fd42yUd_mn4Uhe&rw-`O+171Djqf(!9 ztpzXmn>I~6tFnntc6iB;Xuab7FTdjJJYIAE3C%q6Ni#nf`-WT1c+3BOd&^@B-to>h z@3}+g4?O$W2Y$-wqj>HPL*G~J&BR-2*fvj&lZpnAP zt?ds!RPlo!UH_9C_xQ!5YJTzB9l!b8L9P5vZ7aVb7;)kM!_ZmBMbU(D+#o~+6ahg* zP!Nz16}WjYXa#8mX+#?7?zp4-u)E_mF_7Dz-QC@a-QCGMfBZhXw|l!gJ2(40Gqd-6 zAG3eLsN4U9_PQ>iNv9jyvbymYkZw4t-yO*Bj>YG@BYk)eSe5j^^UFQZG=j%ChyFn1l5K?cz9?+mmX@C>0#u1Jsh>yhij`o zgid{^j~df%y7oT98(vXq(Xn`^JdQJr#^K0{ zaZr9W4o+6%F}-9wl8%i>gvtbr4Vr)+D<)v)iwW=@ZHMcHc9?Y74l8=wmcJ`rcKCPI1FMA&vsg!jZr@M@d{n@f|RFwhkT!(9=x$`v1; zyCUAg4M(%w&=+o)@YfANPLmN@I~kMCPKHi@cif!nj`BtBPV_zJZ;S2B0zBv5O7ehw-Atu`o(hfhY`R<36wo_13JO%#yrl42X6s&ddhiQdB z<{$CLTe$$3P6~i`Z2-bf2EbQoD$L!d;$y>9EIl)ovy1|<*)tHT&4CC#7l>x%ApGYQ zgbmF>m~}1)G0MTv@e0PCreHXq4aSZ>A?W21f=LY_NIn&Uf?lCWaSerQO(>L(g`&M@ z7+jpfuvZ+0!3V++{WlD)Qu({L(&8vd@H z2CawFFlb05dW1#d^885DU5&)>{?j>6VLAphOh@eT=~&Vu3cKy1aG)p(n`BX(VHpL{ zNFLugBN|~m*7Ia%G;{{XARs6PIkRF=bS?%7y<#!eIToKwV=)`C(E1#UYKu7B;IX6q zR>i^cZXB#NvuvALNQ@eDC zbJ96GA{_}2(y>E51CJ(W;CopHKDB4y(u)kt)6Im#6dt2nlL_ZNnOO2Z6Sobr@GmF} z3Qbu&hCU0&K4+oCI2&4F*;v?;jjlu4aQ~W(LX#XchvlHAB?qyGa$x)=2j`7)5gL+< zGmW_zx<40TA97JNEDxmtd5Evc!x-e@$;&(x>g3~#XFmMP@-c5~KK6I!<4peo>~$)@ z%a9!fRe3qK+3LGgkUMwrcytAbk z@v9Wejmz*epp5fa%Mh})43T%s;HFd#4N*BxM3*B>%6Wu)$}#E%XA|}o!(CqtZ;==- zo?@6qiy>Da#)W3iCR{DXxLso0IWI=q6EQyh6eB@Zf(wQcn2ePm+ed9{H=`&7Xwx(cInt1z;z3WFC{;rEs*oIO~DmMc|od{%{LKdMmL zryBA@s!=wo8ZVr9eEd`%JD*UEi-pzb)>MsQ%c^0sts1t6t1YB1+i4Yu5_f$+KpJO0#QxpFN^ zhSb8tvKD6$wb(pff4s8cHlkq|wY#-Di@m(G2 z{?=h(-+Ct26m!mj)8q#H3T(jY*al4CY{!%34RC30!1hHA zP+i}Eh>iv3#^;a!=VWg9!*#u*o3E1O;Ag1!l;5K*jIA3G{JIV6Z)-b!lSk(tliaw z;G<3WbG`{PZ#7}ylP0vhYr@wbP4Md3jJcc>abaLHehzJhx_LA7Ma>xO&(%Ax?=Pgir$B+5a0{m`4K@TZRl%zPVDn*#46!!;9;b$O4#|SBuMoGEdkfL(D z6dRnRIOrzD32!M51W55;s1)MqQn<%UA(tY>)=a*hFU9o|Df}z=cWXIwvssFiSyF78 zFU9R8Qv6yeMW6qq=(|~pf7_(!?2w{;w-osYq%b=w#Rbm$h&w06t4mTuU6=#aP8wyy)GE8kJUPsI_8_Ml0mC zTM;+76*9e6{20~>Q=?XRjc7%bIp5AXBcWqjVQ4%OSts8Wc=9iTs!!=261Kb zbMNNY_{^`R%f4Scv(!-TcOCyb&Z#CHZQ9aFY`lQ_Dp^cpZLAR@OwJO?@cSJ z6=D2drTm_E@_RoO(uxZ~tvJr>WDBpGYFybgHXdAhaY2Cqwh=T;o#bvwka z6)EFdv58u7+ol!2_;1i>6t6#vR&?>-<`MsmWCpD$(r?8mU0xn-{(VheW;MQ4<@MC3 z6(f7KqCl<{?cG}O;Exo)fAF^YRSLzAoEP&(%9*lKtbHOye5Vvzccs{KgSX==Qd~YS zh3jc4wj7h9=ONx+_exPA@bVmPs*tA#a0oq|lf0?e$WmS4q*W zoPWPiiZ9tx1gCKpO`;T^qWSX^!OtJWujj|V=OIPnME(reOEJ=xxA`$r28UHsYQJe!>#TX6dof3_dD;OE^Ie7e?xyXRXVoM=JC!4}x> zYQfv>{F&d#pW)RlSiG3qf;lZnZ{jwiia-0MEf}BMf*8)iDT-@BWdvvAOl?7eR|}jb zwm@}43(i`%pxC?xgA7}+Nv8!C16r`WcME#>g-ws8CE_p=EK@0+lh+g<0|O*ng@36nUJXZ!9ZC~s>*=-MVM zT-1b9(k8sB;!NPeCUi^Z_Bo~rcY~YI?$v}6rzSAQ?YUVK%Juni8ck?c;(p<8Bc^}i z{^l8H_T1(^M;ehKaR0NZ5qZlS5j&gvn_A8xE^frtv_{lMH^MBi5r-x>!fgUy zj^dvU`SyW)e{cT1f876lY~bUU2ISx1{_u1IGWRtgWLpEqtZu-cxeY*F1LBLh&r55- zJkAEv@^3)X#0Gp~4VY}&fSH52PgQBa_ihc)_*@Uer(8GcG4ND9e(&bIpw0D|zpNg< zt^BiuuV-_=%zgISzu{{P4(WMy=$*hhLqT;I=*Ig8REO6lb#TzGL#P=o1Tt8w#jHJmS3W5vO0 zylbn5<4Iwt@H8);d>X_ULNl=v8Bqay925SK;uBDx_Smg5uFC%-voE zjpbFSYpTMV!YVi?RG~Sb3MU<_@NHxj1`e)*sZtdzzg5DBGm!dSti&76LE5vS5+(CE z2dT0W*U~GI7G8-TZk3$PREeiUIV(w}5=(yZ{_C>}=w7M7R z6$t07B<9N5-BuMiK7{Y-ss5(p0^a5^W!L2$k|?=#PqO7OBsg3<93r1(j&XuJfw zjU_mz##u^##W?dq4B?6xbN7o8zd?)7NRJx5E-s~?4wnPelH8Kdlw%YH572RRsrx6 zkPF98IkmB zCJWtra&G*^OpIBYiQ!3^=*BW}q-Q2lFJ|E1k__a}$iPjT4CwdBfbV%e23?en_;}8t zACnH9e`&aUDh=s#)9`hA8e+`TfbXgJdN>t>__)?MBo%`VQ}Od%3ij>C1Kp(8Ju%I1N~cPAUI?O>W0n0 z%GZflxib-srHKfiln71LMC`hefQc&-fW!o7j7~u4&v?`wipMfOwqNEKk816B1U}?r z{|#~2kr9Up6o>6yu~0b?i-49`R8Eb>qQS9P{5S^H8)Fch8G`{71N@8Tb~hUP8>2B~ zN;DF+I9uv|6l80nus10R8%IT<;@fn%?46GHlIf^)osMqG(~)pF65#V0pTZ-dF)R`W z&!<6q^ECX*n8xdT8uEWdK;u9JmQ+SS*)0MIeIu~>VmNNk3CE}4aC{jYj?T_7ew{Gn zC5A!YJPbSEhhj{7C>G^~;*D)6O#X(z=U@mTD?<=EDFpUPAyDOWHYZzx`7;!Z-vfe? zeLV=*7X-mDEC}JcK`46=h{lzHsEi3j-0(n*c|H{{*H1-b(p1j+oC@jN0DNo<;QgHd zdD&9oehhQ4{5kDm{0k-{bRfizh=VWHO*R z8U9z@aC@d3ynNiSrLP-)o^r*gT31YUaYbBrS48ih1drlL7)q1y=nKz@v3(-U(-A_jOX6Sa>OhP zM?8Ds0HZYy2#9n*+8_tyU9(4Wt3A9t>@iru9=8tKp`zFh+9EsNhnN7>O%sq7HvxO} zCgAI>@fbX3JVtwu=lMFub6(UqbT1i)vo_;U{eCRWHjKrA=&^7dJQmxp*+Nxni%>UP z%;|26J-Z1Pvk6zs2}hqYtX{^D5yW8LkKx)$5mF^0e6kfG{*w((ZM1=Qj17WyY*2m0 z8Y>&EvC-KYtAAUeq1_6R$yP8hu)?+5e0FEn7$~@pK~?uL_z0c{C1W(^8;{1N`=ju4 z?kM#08U+oxQRuzL67MoCamd6H6%R(jYTig(@f?Y$o+EiXu;9m8V1tnbzTP#*sM+QS zootTmEen&fg0tebz(OIz7A( z(c^syJk5xHLny)t#M(m)4h z*9YOhx)uG5neWsC)^$g`A3>KHd_;U z6E&gzT?1|FHDD8}fh~PBpvB*xlJZ1ND-eE6gfvv0V;6{=&i1RABW{}CsQ8V^yN`>L5}CIk;4mf zIW*tt38RLd*g-vE^}GlEo7)4bE%`d@`@MPCHtYoCQ$%g@54`cHzwlaGR-9nS%^;Dey|>AmpVf- z>#fi)N8=o#WUe~ z^;041{uAN3=!xJaeJsp<{zy1y|48^W|Dn+1L#Oc9wNrSy`~l}y-4_ad?hC{JyC>}X zcUN!FeAed?&5Gqsm3uh1Q6XZ1a2^L9vg^Bz32wrM?go*LH z1&iIg1O=5{!uco&wH<;mN=Xn-hs%V3Z5_geo*ly2pq;|JjqSqYzdMAXemex;HQR-Z z@7n~4`!=C+=~f}{Lz@uh+$M~kw?+8*VzaPg+-4!XWs~r;bE8mewNX&4*&r0&Trb=+ zT`yRb{wEY)SSNH0T_-%sUMqAvzD7{fS|eyCtrq(3T_t=~UL{XA6;iW(y<2X9+Jh&lDE_Z55ooTZIS9q(a8~7U7$Hi;&sc zEOd4@2@^**3Ckso!n;ci!kA$VLULBUu;_4|uwSiCxEWn5yx37AyzNmVyqHog++0;9 z9QafzEODw7(q>igTyqlP+h~cfNg@`utST2iI+h8;9+n6W;$p#5uSjs&Um%!8~Ta)eCVY(e#Arm!S0Ll~%$E{NMxgJ?&z z)HTt9qf?Y1-x(?FE}bS!(}@tiAWSF<3>7|p4ik}3 zg(GVQ3IiN8h0r_d!lJwZ!sY&ILeDMz1PeD+!RN8EkX+VR5Nr1lT6QW4^L%;<^Is_l zv#RBVT75Yoe@_o#dSG{(5p2yh04YHWVb+V{~t7X%^ zu8@VAE|X1-TrBgQvq0u~YOc)f-z=GnRjbS?v03K0v_a;0xmM<)SS@oKUm;ums7%)G zStvU%%a*;@Pm>L7Oq98Ojh0CwBV$Q7KJDuGc&e>q&dSvt@r4UIlKh(aU&kss2FRs#_;v(!{ET<(=&xYWZV(su3}ud(x{TSj~Iju&IZg>S5MqI|43InJ@(ap|D-^677_ z+4sISO%n`kyen;O3Qqdi^j40y>E>5rW8q$JQ=dG?W=_*`8?P-JZQ9Ru*c^F#(56iJ ztj#0y8#Zq}9@#8UdTaB&?uSj`mF}X+(Tbv%ANq**qugK;8jk7Uu%>lvae z)AK|guZu-TcZ)?w%PU3eTxvu!l&y|wJ(wp-UcFG{o3KQr zZnm6r*j9>ccdQXD%>7Svoi>U-{oX8kwSTMVpk#+A+oeO)LlL6XQ@cew8~2H>dmR*A zRXrlwa_N{TYW7Ld`+zf|AkFilg*PsWIu=|JZ49|CDj0N2q<80zXxZZXqOV~OMTUc) zh)nN36ZKm1QnWAZjmS;sy=dd@kD^Blzlh!ke-~XI_)FAy{f|g%F3$x!qC2};*Mr@A z-jki3B+u5aRbYv7y_kB865DX7H#64n%Ua5m*@L?(Olw>}X1lOIbN;TzL{rsSzjh6F zrQbkSnx@56&uX*!5jyNu&0uErM3+T7>aoIQ`YiwVP!<+!z>GQ!*^T~2EIrMby*X{d ze2q=nqDnJ%>VY}CKW-$uIp31u^C(v8Glm&&vSKm?8#W?Z#3cI|+plHI9%PSYPtK2H z=SECm3#;sy`vZG+-`0@@&T(Sf-#N4QZWCF*)svX|Usv`!a56i#&7EcT_GDc#UMzi| zH#@B9%f6-ivA(CKFu7p?>|W7Sw%|%2voa56+p0pC%DqtLX%o(pn?B73=F20Q*eiB)>1Fuk>@Y|-yD_Sr9knXS)cj{mZl zO+XIowK12WE04KOEnw{%3)!EpB4#kPgqdtCWlCLT?8yi*8+}#GQp+T4fk_41cDaHH zC6#QmQ59>sSj8fXs@V|38g}|z4U5gMWpDKBSoG;Sb}YM|Y3MdE|Kkm;EWMG<(`sT% z4mB}pQZq{%(89*;ZDC(yrEIZsE3=ffvaQo*G9ATPJpc48wmWDxd($b^P0GhnZ91f zKDGYG)`-?Khr8?9amfb8j5o4bXE(CznVXpWz|Bl|?`EbKwT1OjXk!mIwy_mHTiN6< zTiKlj+gQ+q?QHME?W}jr4(4Rq&Z5t^vy`lzEK;+BjosbBx*}w3b9aF`trgfIH!zbo zU~_H(c1C9}Tg(5qo)EQ<^_SbvR;}C522Vb~%3dE}Cz=nkAC`w$ z|I3G%S`Pp3yT%cAS~$WaAxD|s@1tz(l4DHG?l_BoaGb3apI}FZo@8eapJaPuPO;f? zr& z`^PRb>$oc{L+&b@x%w(w;B<{uKfK0*#Mhas-VL^S-wkFNev{4rb(1|=aEocO+sxwH zZDyK%hxO@ymtAhV%St`(G38hHn56bTyJPr(X&-*T#zl5Ar$3!+e;vtH6S?9Pa{Y}V1Y%slcPTmSPN>ow;+^BDPoWt{xL3Zp-=*gqfHn0cSrBg@Y$ z_taEGG-pWoTTnLpSJ)1U0};h#)5>=$$Y{EG!Q z{$_3lf7l?-lRH18rS0{6M&ZhIwpl!1>DEO8J zz1P#E?08Ljwpo+hK5No^+ktegoW}_rA4r4y^4Os%TBNf;i@M#{qALd4G-rl3Id9db z&M(@OJa!O0DIY{0#|F`g-a7QyM~Bqs>d=_mI%Kamm~3MQlm3Rm^zH3n+BHU(lJa#) zX|FEL?KXr|Ck~;!`XO}Y+z?V$)1wK2dK9`ykK*p@QN%EPa*o$0jg9(r?X5mljvh)w za);77J}aa1hsR9W52JGx!$|4)FtSoIAa_p#9;;|T_LmJvSHqB=2N}}xMTX>Z&ycR` z4X1$U;dF4#aMF4{oFYaTku=$ewrnvXyf>n4qm5~9wlT$b7?a_5W4b^l6klXQFZY;G z$X^qZ*^QvC@)2ZxXaoiJFr`>$Q;MuI<%}j%(pE5|Ta(PFs@9AKpERSDz09fqWOGWZ zHz(OCb9$|0L4DmVNV~y;)J|K_ccqbZax#xas~<@tPmQD_y)4Pu&62j&T2ikQmgJ={ zib^Mrq6Jl>XvL9HG`q)W%5oe{BAO*5y8Ver+0vHGlWocRKU*?+Y)guIW9ee(SgM*g zmJBYBr7gN|yHYE76{=t+J=ZckRht(}AA&IM9rG2fA_Cfh_+x zP?n7&ElYExj{h8a9G@et)OMoWDNbbF=tTF9I8nwQCwgP;O#Z3Pw0f;G-Mi;Z-8EfE z)!T&>Yh38XJ{M~L>OzSY6G<^{B1xA_r0!QaldsPtTIDo}bN43E%WaeB_47$|V~8tl zp6W_TO|GPN#Ff_kbS1q}Zd4i1`Fu;@Z8DNebZz*(K(s&G~G$X z)19OeclsrBC+{~rzH_JtZ430E1C1VpgC4Z-s|UrHdXi?OC$-P^Bs%Fy>;8Ds-%(y< z7w1I@3%#iDoEK$x_og5lZ!(qbrcI{N! zacwHSln*3DQ6MSD2h#7kfpqy;AhmuCBsM&Vjs*nKxT+vp*d9ckkAg@=Etm`)ITJ7= zm=u=>)3tLvUiVKh8JmUB=8zE5t_z`5SqN=>5<=(ILg|)6D4k0SrT>xPGszJC}=#9?%5OBnsU9Y+0og;PJ9aQYq+lvqMQRsloXR` zi)k`3?_~NfGnxL*NhVt)Q`ntkiuspJQ--FHkxL47a{i&DK7|xFbN=D^6gvJPh5o6f z(qNlZ8XA;JeF{_Q&Z1PBxi^(8?x#{)S1M@^O`{m6G@2K~~%vBb`pwr_;9$>7;Zzow~nDrw2+ru6{%Yc}>osyNMa(SC>JX|I45^ z$9e4ivkcOe&m_kV8gua;S4_4wawDp`OokD3$XW_vq%*d&(uHfLu~c&!yM(xwLal zE=3>6rLVVgDeX%xol(gnl@WO)a?T@{2)@kEBjuTSbb4bRr5w$p&-d~u@_Qa_>z7Z@ zM&wg>XRh#kdY+R{+ne(#YF$2k-JehCH}dJ+`+WY~6p*cc0l88EjrA>{{)q*2zPy0a z=NHhowgQSeUO+qU70~l9oR!d*^AijT>8WiYwfPoOctRn)FD;~mIfZm&Vc0GA@V8B)aiW<}IoRYV6C7SZ*#A|5|oL_2O4QU2Q^8p>G> z+cb;Gz^s^x?TZQi#dJHNm>w1v(^+XTEm>VmenK(5I$cbO_lxPw$6^{FUqbd;CFEuU*}R4k=D?NaJxR!ZgL zOX;>(DGiD&CHst0a+8#jXcphMx|9yIb5`ZiQqG0s`<`;v#Me@i$(PY7jWRkoyo?sx zlu_8kGU_(9jOt^{=zDe)kS{eO*R>f0j{juX4^* z;Ino&-^`J8{jd6>UumXpzPzI}5!neQqm`Q!Zim&+;c zK{>s7T~0wi%E`Znm{NO*sYpdk1?pm&F-T0F`eGVtB&HW;Vp=s?OkPY(ug8n2*hx(P zT*Z{-C8k?b#55*YOr@N^u_szguM))6H&smfSz1nl?b~cD9Pbwz< zPMyv#5L5h8F@0Dmrj&JJy1h|M%Bt84Q-tsUZ@I8p`=11`?WKB%zxo60$XuP?H5`k622m z_ZSITSxd-=b4aEU*H{VpjhB$fPD08K61wgvp_$H{B|1?;_a{jx!%ae8CQB&ULqb

    H97@9gDD=IYC}f*)_hwTz#$7gsDl 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

    (d!qeagS4PY!G$O^RDc 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

    fFj)r=&XGKXEGMh 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

    rVzCK_d_&eFJfF zX&@#(55x|`ApBbpB-k)P@Kg?lmvb=2mItHLtzaA;5Q6EUA-KOO1dbm=P{n58RN4$Y zJ~jhS)Mn!J^L7^3nUIF2lwjvxk&%#kPECTt_5ty|-0=i!!aF)#$=g!8-gR?O}ITBMHBaxgR ziOh46h}MXLm1h*bR7IiuW)!;horA>bb8vL&9DIH_2Wms2(JnL^&(=m`V@ou=hR5JZ zR1AE##GvtA4Bm~J3(a|R(Pzh8wEr|0H%((vvLF`2cE@7FmsoT$p9kNC^N`y#4|V^| zLz($}%vm@ehE4Nv<;#50&c@;Ff;bG=6$kH6ahPYa0Q2T8fKTHB40^u+=MCc#G$$U{ zH^#&GWjyBUFGNM?LNu&eh}=iQrgLBdItCFg?d&$tzN`Y)j3a*x< z;P2@abZeIiRhv{iNJ_=x-Knr_O~t|CY0wQ#L+r9NEV-SAZNheSm1{bZrRk6yPRI2h z>F^zsf&I}LXumE4CJ!?(zE37hJu?NjBojxDW+JdH6S4iWutJiBV^gwlYi<_q7iNj} zK-kG1%|hLSEX?|u1)bj6xMY$oxT4umip)k{ZZ>`_&qnaRY;eIP{P!^%mR)iXJ}d`0 z_Bp5s5=zQJc6AQI8gn3kVEFSa2fP2~AfR6^{xi!(#^hYIMdo65ZZ1wP6ZXA(a^ZU| z7qWM`*wi5phjfH3@Yp=;^U1@i*gT{Zrz<16E?=GG7K3c!yhKYSr3_D+{hrwmf@ychVWf7w49T{ z|CtO2e#y|SS3Z1=@=@%Vk6nTJIJYn#*Guwoacw^6Kt8H(d^Yp#^ZSEWnD51$cJ20DW&4z`C^n-l~O|KA;d&%nD)YQivWi3vqu@A?nKt zVZW{r5B3*g&b30pI4gwjzd|(iEfW!%klELU_O2;N1R#(25DE|fMEqDSyza5tODjUDo_iR3YfL;7hhtVdU2;{A^c^Jw2)sF{B!*Ce^66sYZAA zYGejf<3Ut443nx6C96h#O*NWUSL4`@Y8*aPjjb1|QFyN!ey^(0^PAY$t_FeKYw&7N z4Z@6SaK*9)MiXnW$fpLoXV&0hYz=;<)}Vc14gS^E;PvVn9N%7p(gQV^c(w+gZq}ga zX$^XQs6olE8hq_o3-?~NsMD#%C8Jt=wWx)LQ!RQ;sYU0YT6~VI#o2|mD9@^eQ%Nn} z*4H9yO)XTn*CJ(KEgqe$h1u0wEV^HdEiXkJpKI~-Ppx18)Zuo|I_w=(hvE@}$zWcG zzczJPIjIgNK6Tg`T!$f1b;ypd!OY0E5z7CN)>fpDp4rV9npmeDY z2X2dfPwLSAZ5_)0tAqOAIwW+g$K`JI=%-x|Z{2#N8P%g!QjcXeVmq-O>7MoQ5p0P5 zv+8kePCb(1>(Mo>9@TmEP%Ev++}e5^T~-g(_4Tl5tVaN^N9>_`%s*9+S(obJaH}4@ zAJ*gMi+V`k*F*nnJruv|1qZkRt2;Lc8~p}M)^0%YkpJgW+#KD2C#(VYts8L0QG{`A zz+5lEu<&odm5>HRMKs`ZOatb`H{e=w14d*C4ydd_*n>CVVpRj4HZ`9K4<9c{q)(_;UH28_AZfa==~cy_-5x=$P6{jvcI-ZdcWQv))-H6Z3! z112fSp`|LvwN7$mbd^K9ryT40$T4_;9ECb^JkyiIXoMW$qvR+x6~`oUY_*hQjkO#_ zc5=*cl0$!z9L;WWWO~Zc%SVp-sd97wdXgMNch2rG!TPTNQ zk>Gix$ZZO&#$q|< zFO|b$xf~x>$WgaSj!|pm*u7Sc5$gpDb%PwwH_9=5vmAk2wQlakq$cx(exwG>t^sx*`vqL|z_=e68Iihrh_cpVyceyO z_nMzm&w7G$Zxyy;{>oo%alf?W_}yKO zPz^cus>$)Mom}wC8pN2Q0dZd&u;`OhNN;cm(laf`a~Z$Sg9Vj9p} z)R}xyciv2EfR$GRGDV%*DeBgBQO8Y?(Z z4t1?{=>MV)70q?{dbJL&XT zDf)w}Z8gYit-)~7PaF{ag{|l}6r%so-cf`3YidAsHE0$6OYig=jGA8qNoWm>{c6y6 zQVl+jtHD9z8Zoc0fnKi~9O+O4_n*}`|F#;I53A8|r5Z1f3C6Ob8q+pZBUxUJ;^JzQ zr3=>1ylSyVAi{Z9jS7Uo}!Yi|udGr?yss9#ui*Y87mbRUvwJ6$;jh zKDo9EwX!PYEviCzq;MkPUxgo&s<36O=#LGn@T`9oqPkS!(eFx3crW_>2bFkvQH%u+ zRl>Eg60?_ABEGB=abheGBE|$Z!IjXQT!|}UtdKLR68ZxxvA2uZ|GNTBZ!6HhxdQR$ zDsXUb1-@^rz|e*Y*yLBhHL(IN;T5p-seraa1>Txgpi!p+votHv@vmV0yeo%ZbGhLB zh%wNfa?Ds?F516xyv`{{pSW@ea4IIcmt)ena#)Qhhfbezd~08hgP+Tg@VE?vE|p== z{xUdjD#OvbGMMC*p(0LsE%TmV%dUP=;zTE?XkTXEpCjk$JBa0jEnbyr~o~ zSC$F}QYkD`N^v2g6jQuQae90yMjMr)pl>Ozw=ad}rxI8Rwot&?62vIP_;6JTW(jV$ zb8-m=hnL``X9-qWmB4*?3EuQ9LGr(1w7n@t%&lTvIa&;ZZN-?|P>l7t#kd+g1!&;~ zuvuAv!omWaT2O$m0fJ}lRDj{e1!68<0DYwbbbXzVH&?~De_uWpt;xrT|D6Yj`9N4u zKHfX!W43WVZffPj{GVVQy%ckc%Q7hKkzx2s85{~^@SHD$$21x2Y-P|NF2iq48BTnc zBI}V9qfSe4u~CW{by7S}mkM5&;35eg(ol0L;`&RmOGSzouk+C5Y993VHwLEnEkc$mBb76TP7l&8p0)@F)H7^(cd~@Mpm5ZvOxj3zs ziw~_iP`{ajzWZ~~Z&ePuIG%x!k_@Q&W}s@I*tVo2q%j>U64Pc+il7{UL(AZ;%3`_sKZ4I~f)!$!M@m z7VCe>(7c!gz3L>cYNO|4obh~|`#2A_yXRp=!aTHK9(uRM zV$^|H7-htwmu)PbE5~Bl@wu>(&c*2ob784A7u9EDaH}W=%5E{}tr3Inm!k2lEE>l> zqLI=q8vU-$!OF@x=QUtD-3b{q#VCM)_oC}9rVK_cb3`bUnaQrwChUvLsSZ5c8yZ=J* z{a`5mrH108Whl;npM`S8ELg|S!cCJ|@N1okqg!S|D{3Zu4Q3+a*$h;yoPm;{8Hm@O z0f*Zm_){H%)t(_R(FnoDv%%;r3&u42V3hq0!gjHKwLdWkJH`Z|qBRiHHwQv9A`p#3 z0)Yns*wPSyPCfzf(hPv?oLCo=PRCZ;=~(eg@TIsvCdB#Ur=dUUTc$y0)ihKGOvC5i z(=hJJRLn0D%qhpIf~V()vORv7x4;i$jr{QGg)gdB_+qfXFY0^v3LdNvCP{seYvY5B z-@UPChc}v{yajX28?nt^FskvwEjKSjt9s$x!71=h6zhY=Q}DIL6M8E=VLR0m6E!_C z_Ou83W_sWm^MJf{GOX55#<`%$aOyo7TQ0ccZ>~G6#<^qmXE$VsHOlN6ZkXT44Q`iQ z(M#%zGvizl_1OjAHo9P5hzoA^cEPX{alb8o#oFTjP+M%iH6F8z#-qE##M-7g%GTzBR7hvBKSAD_pX%!p=|Qkh50!TbVizt)0f9=)hR? zoHtg?m&W4rbxTZ;S)$Ow68qm+;NDUTyq;`<7fKemx(nD62E>ck3M0=jTuEjKH)Ig6 zRx!Oyg8kzq=={kXF00M4$lDw>?ai@5VTQ#KX2|VhhQKpppqD%b%_GJj`<^NK6q{nn zI8$i8GeP`P6P$E2LB~I%VYzKIrU#7{Ym-6;jWK<$F~$xwMyHFT1P^Z%5{*Wo*L@?b zE;fSBI3tw4F~nQBAuJ{tBJsyatl2OUNBu_PlIloYXc~cip(D`HV+10OigyU}hvUYe z;fTLD3@T~E1QT@_KHo8bcfJAEN(|8QOdtKK^kHSIFZwn;_$<}KBo{r5{-G=8qq?~0 ztqZBLE{wMi#o552@KGO%D>MYw;X|;b#}K?dtOLWjItbDh{(4RiM$N*(SUhAfDlQE| za_S(lemV#PZw|!0?13mS9*AMh1F$E50LGaQz>dfLp;g)+v6lToFSPNcQX4up+8F<) zA3W>&!P~wcoLl>1^y0qgG@&nUeCmVBWqn{bsSlq1r-j6oTKMg%g@o_Dg@2shu%6r- zr9XS&^4eZ#@7W86zk0%HeNRl8(i5J)d%%8!c&Fsm1Al*a$C(Y?k>}MN=6|~3_J(eV z@#==Jzcn#`gC-tL(S+UauBa97svdZDMZaGfn7B>@Q63t|_}K-rHC>S7-UV^rJHuyH zXN+|1j4%JGW9M>p%yd>q2k~BP`I1f;>C_3ETh%bIK@CznH9UUP5uJru_6k#oBp9J1Qs$MAMoeN_dvDJr-=R0Y$| zE8|wYGA0aA#+DOGP@Ss;pWaFso%)ZhIRBUZ?EjZp$NXW@2Y$1hF27k`;4e0RYa5&J z`zPz*_LJ>c@`E|O74H?terLu--&pS5uk6_Huk7uj|CrM0FHA}63wsmxnH|~viDj#N zVxy*fWG7a9U=v$gnZimiy^7y6pS$mvbl5w#I^iwbeEbbt-u(^B40+95x4mNRf4yXz zoL{oBbuEmZymJ_Bf_L6yi~rnZ$0yxo_iFF3M^A3EtD|nSUCFmt_Q{*fru$9y zCh!K!+jyOI`R^Lb9e<6zD!R(7Ze3xSL$0tLF_+m@y2Ku_gmL+yQ%ar`ju#`2Y+4J|On6E?bT<)vrg{ zN1LPUT)`1mcTF(C1{`L8!w<0~+Yho4KM$}?_6JzMlKm{@=00{|&_1RaxtBTa+{5Oy z5zBEPR$RiF?52V(7^GmHvzyqE9lP1nAG=tc-7aQbw3FSuwu6QA-@)#OZfCAr8`-x1 zwlQVvZOmD^m1SSt!Ww&TVHblovq$STiF|Hk_az(Ine+{8{mJz#Nn<^;@m8PiHDWkJVE*b=o8c6o9!YpW?@{hJHfm?4GCc6I@C+?LPAe~~d$ zOBvJ7l(M!HdF+aM9$W62%R=jN*x>uw?D~*wmN7ev*-p=73tyzO`uS;W^RE=PRhBHC zvm}Wib`rthJvP3t!{O zt{8c+(cE1;S8nY585gGJHHnRFp2%i}O<)=C9a%-91FQdM$7%{}S$_BNZ2n?v=AmoF z^tX;>pUf>;(?PJ<35*T8Y|c(iHDlqAP1)~A6IS%em~~4T#Y$C-Si9npY(dWv?9P&5 z40;Bve5)RNY_7{j9vs5vI_a=Y7YDINz5`j;hy58Mv{^uFUzU{EhgJOT%~s2LvF%-Z zGG5o6?H$yO@%3HVc4G~;hIeMwHtHuSXrOJi}w`c8JRM>;L$}IHlKS{@5 zza?wc+ay-n-zAqu{3i*p{3Lni+$xzp?XBeH>{pV|MK2`HvZoTyx<`^@>+VZT6?Y}e zPu!Apx^Z0+|LlsS`SV4Iy~=sXM&ZY?>yVR@g(k-&_r@QV*m@k0Yz*Ej=@!c+De1c< zEhRf7K1;VrPHfpMI?WA|ZRbSKb8nSo&Fke7y`M`Yo7ChIv%YnbW5cQ?eyEUqm{2My z^DB~=N90Q$C*(=0q}dYr$aG16mqn6oQE?KF!f1)grf|v0Ga-^Culyx>YCe*z;gcoh z&d!qEk@k{z1y+)Ao0w$fSrf^CHzOt6)%7I-hJz(KZv7;GV|q%ym1;=Tws(}UE6Nh( zXWz{)>Ay3-8Tr_}@75dU4Ij>!`j)0`B=*g;u}$sKbQ<3CCjUG5er=xDLRW^HmhFo!DX@H@R((a zIoc}~AC%W9Ccj>%$iK2tA*U^hyycAwXX#GG^XMkUG%r%Dwb-XPJ?Nm~So-^aO2ww^Pcw=; zMedxpiZkx5iiakj6sLOrr^x#DP0{)8PesK3--@bb{}iXkEAwqTRCwx;_T02em0wcn z$i3p#_@QT=csHNU+~q_UKF7Q(k6WwBgL`%7WAb|NcVBw)lF;6~`*kgzX5W`z+}V$} z8`7T-t{A{|{te`+v4i>L`#L$iju2uXW{-n(jP3Winsz!h=uroWg(Y^WtUtK3uuN zmwUJQ@w~8Uy!w(q&#?&L9;*X+TjyY&mk`3=J)FVEIM3p~J43mjb~u;hM(|H>XY*p8 zD6V{P4)@iM;nLE%yy|N#PYs&S?M}w=XGZaSX3avr?^goO;R|oPv!o9 z)A*gR3~qWplkaNC;`>~)dE?(~Ua>QWhlJ&F?LK+@_}M(}pC;wa#xm~mM8?-w=kr$K ze^~cNfndEAa<9N5?$))Kk2zAz+b<~L$8}5j+?%DmU49vtT9orIugkgnk_uksR>_b5 zspO9utN6>1YJRU<4c~jThUYA(<ZaGI;wpW)Zup5Xe>b_p3-4axN;y|~z{qQS z>9uS8Sju&NVdxFM|J)5;zThUGsC|n+KYELYN8RS1vfnM-Zq-Zv(CHNqe)EbSDSORT&E9aM+iy5aeanXqe#bu^ zd&gHsyys@>t$gFQR{q!X1IK?K#C7|~Cy)KajUIgBZ!O*P z@s_XrmHRh-?ZY>|Ot9uAnf>55Z~Wj6i9dN&pEiDUPaD7H|BD}Q`^9UP{Qf^1h`aay zaJTfoeC5D@{Kmn5{6AwQYRyohyO)$`_aJ3Tk5widQl_UGDwGzaLLIiLP}Xl1dhObd z9G0}Bk~i(>q-A?*Eoe_2?zE?_!&Iq5qAI;Vp-RVlcA&yp9fZI34)pwA2TGpYk$x}j zNb}!zq-&OHq*tIu;kVSNR<9E&7IdN$M>^5buIkhns7^(j)yemVI%!T2e&4G*ljoDp zblbQKxuFs$$;Qbv+iUvx(7{4?Lkvc_n?VAdkR)pPx`aDCmsCOlcMc= zky=?Vs=C{YI_vkQxcR;5)c)S2)=`Try|ifRGA#;yrA0wzeaJDR4{4w6Ll1iPrLy3@ zWVER-?fKG|#@O_u#RdJS^;$nN9jHw+XKPc&PHigurA^sR{b_c2e;RwYKeY`VKpSHQ zkUbwj=l=~L+ergyb=5%n+$@-P`h&PU`B=oERPY z)uclye{|@D(-5*Q8$vm^hKPGNl&(e$rTdLT>BhIAw8uu53T3)9;gT+W?5#(#AU*1| zPLGn_>Cp`{eHxIePoBs0DXx->>)oR6gR-y=!a-jEdehGcfpke2o^qEAze zXv{Jr3Vv!tiNi)wO3WyV+Bu3Gzl|dGamI8Y)0q5E7}Ha=(d6eont0`CQo1#oplw3a zf=wuVwFw2an2_B_Q__qzrL#LtDfX)={k0fF$!TNg@!>IK+RlvTPB5d|LNnTM!Hm{w znp3H;3!71EPJ`~4(`ju91q4ax?g|OnKb26O9;2HPjQ(w8)blN)9-~0NVnLU8fXY6D zU~WO@6D(*FSBiVAbBXzOt++S|^Wb~sp5Wv(>^9=E3M?QCd=y$xCB*wEIaHl(IJo;+;F zQ)cFPT6}0cE&nr~imhxZG}V^$_Sw?qAGQ<*J9?U6M=nivwB)lL-8Qio`L(A`+k|c2 zTYGvs+<~@5IMB?s4)pJd14#!v(zifI@>uLhRkt1KP%kICF~y0lmpRe?^G;NvHbL+` zCeWMg3AE_Y1bWvtfm|_>s^cfpiR}~V;oFJyWSBEu3U#J6E1YRYv*7vlnMCzolc-zS zB#JvbiT1a5p%3F-NIlhsG`S1?{^&y24PB`+!j&vnxzbr-n`p1)Mr%CX=zWnJ4L<2c zWB<94jioz{jCZHMTit1Yi#yHKnM@!2CsTO!WIBFfGO2g)pt0jUXiAdMP7ktt<3XKt zJ?U70CxzB{(z^?u6r?(Zxb+nJo-l=mG)|#0ErJO+$cr@myy$kR7ZslLqM?7hXsx+7 zX~cL_@EUJwxaUoKyZg{FXCK;?=|jcbhg{$L(0{tVlsny*epUF=^wYky>W?p7G4rFA zC_j3>!jI0~^rQODQ_0P4D!odaN-|mf@p445UHOGqSEg{^kYP@V8;bhPFXOmIucA9J_l2c zuydX57eYe|Lg@J35ORGRLi+~HAkE1$$SrdQ#qO9vNl#`_WRICN-eD&Fj-N>@*Uluv zn=@&t>MZ(CGK*F=78x0Y(p%q9s*r|Ke?=&jJ`bfAJ;O-PAx!X| z!pLV;7&%=Dqk;dzsCiU4Wd(+ldU3emm4?%`m*J$T6+vc>5oEO>f{a#1kjkY9I`k`o zW{j9kul#0{U*2rmymL0acsQF>yF^lF%Siej9!ck_A}Qx^B|A#*6qUGNT*=g{`GbIAD09IE;y7>EYZf(aE(I_c5We`7TLz7|c# z{zOyk@EH2%6+?;XF?4-H4E4Syn25h)$i-kTS$obUt(3WRW6fMzba5^zeHZr4INKBfOy^UX|9pzc zo=+y5=F{CP^C|Mjd}H;zoY{kWE z7to7y3rOqJ0y63oPs6O^sbgq7T_}jB#Kw41y%A5zKjZ1@poOIAxRAy~EhNjbg=DaM zA$`BSkhc9^NX|nN=!{bW8O=$c#IgihyDNd{RswBrOQ4cLiR5mdNMFJeDWfov-fvA5 zw$zD~@+DEQ4;Im4%SDtOxQN^{7txT_vBI^8d5zXn8L|YA$=(>9nJ(`z9S1OZe zo!~bH-%O(4-;yY!Z!*2GOeWKSWSW_lObN@9DfUn@xjjlI4W$%n(n%p3yA;|sGli6M zQpjR;3i%!rdYVFGRZ^+l&{W!Kmr4#ZQ)zEjD)n3`Y~l~63PxKhrTq(NpxG>g?7cHcd42}1Ey*CmO&L^oGJ{?`$)LV}GibDSCXHm7)X6K8F3!!Qg@u{) zZ*3;U9?7Jm&6&dfUL5O`MTJ^|BdME3!KPWX+eZ9$%_1{@!IzB4qO|xdD$dHHlF}^7 zT%1Lr8?tC@Qx>&5nnedMX3?B`f+6rSOR#6MsJ~J+m3PUeuYI%0T|b-ZOa+h9I-8VS zvT3kiHkr)ICbQUV8lI9(nzC$qRhdn@mSxktP1!V1FbWPH$tI5r*>wGOHaS1brX8)> z)Tu3-d{lF&vRe)v>7PT71=rwzz$G3V0riMbRxC6^vd&n2g@T){EU6>VlN>1XAVccEY}ROOOXFc}Kg=2H5$ zTngj4WPLbSFhg_c_?29me>a!9Jr(i4$tB${xzzA0m;ScPBfl$(w`$E(`XqP$H-{lTp9fpx)Lj+nt6hyI$uT~g$m>_2PDe`(*n5(Fi;PsAWpu(xCb&p4>SHIPEjA*bRx;XTDar>K z#hQz2X)2>OV;PM!l9Bre8O<~h*GyMN!8$T>9w^e&7UkBG(e|Dqoo+Hx(U4JHC&8HQ zAg-B;xPE`7%U8><%^WGK1#{*os=fOl9G?$uDCsx67EZ>#~mp>zAmMem!&l2 zyp+D4l2XwzDRn<2wtEGSrAh4HA&zem;ns`r|3lGP$7S&}0h|UwQb8I)qy(gHhejF! zY3a`AK~YphM5R%&up0xr0EOGJQS6_M7#N7CC>DZ(3BLROv7dXc_ICHVo1LBA`A%&m zk{b3NZf5zcWBIMBM8~R1RIjMScSY>GnO}+Vd6g(Svl6!m*}Iuui8YCpC>v9W!f^I3 zPpQNq-%7OhVBd&yCC(z1xX`K+3(VL%ZOGnd-AdF{ufz`JO57kOGk#X! z>%Iz%_*jATO$EwzRAA`i3S4%t0-J7B;Qf{g>^#F#Qw2Ua#=iai6NUtWhr*fFGVfZZ%ti3s`?v!kEhiHl>(q zREn;erKq65xH_VxSTRt76M9PU%JUKoy;p+wE|s7=mf-%wCHS|d1bx<&u=1AR@p&cK znq7k335>nNxX#_4Y@e{>rtG|S3HmCQ;IL>32K5x(s)g;>?L5IgBY#t&SG?h6)TK*B;cc3Fsu`U~+t zv4uG8%>wMdvH+6~EWpO43-FV00m=m|Kqd19_;=(2y#2WlEAJHIxcWjoP+f@1xrLY# zQiz+ZnBJsRi1>9r?z%T0a~l{Vd-Z&5nK>W5g6HEg%lY_Mp6Ohl3vkM<0t`MO4hd|Wv`AJ>WHWAV$m7=Csx;|b4Y45PWoh0Vo1mUHo^Ec^W~52G*TVd~C2 z3|o+gW>IMJ~<8qcyW} zQo(FI6E+)lEM{Y-^laSpY8KX?nT2&sN8T`V7N$*}h3eyGVbkASw11R~d+T#?aA_`D zr{-dqQ!d7h&c(pbOc%d86W{D$dilJWs2MU7SDVblUXht-*FFPNj?cjSsu?&Zg>lXu zW}u-m)8XIe;G7FN_+wKJrq0Yk-X{mY>g1rxz;wn!oQ_I+rsIeC)A4A?bc`~djy-Jr zkk&R0uO6O;N~P1#Gin+pSWLrY@o5;)o{hTo+1OseSVythC}Wk43na7g@lzpcH3-qK zl8s$rg%~?gh;9->ly4W{rDFn2EfZi*qyS?k2=Ms7EbM!bg_;MmSbJrmQAifb7-nJH zk4#*8GZPJWX5t|>h8p9Oi8C}Z*>{+M51TWvdu;~3%*enN`wUzumx1mb>DbYbj_Kv; z*g7>G%}mm9+V3=6e=7|S>`22sxoNn>BMqmHPQ#JisdyAqk*i9@1F@+nX3p63Ln%1- zP71Er$x?0#=DVlhWHw%ue4UI(8k5nnA{kFaB;#ntS4tX4!u3~@@Wh5BJe84zN4O-c zluSbZhl%)eZz5LbC8DxdBIBSY;=Qf}R5+1~3Y8*yd#bMHLEQa2SMa!+RIFJ>K`?*+j7mvlO_hOLjh{4s< z7_Z+x2F0XeQ1d}F>g$Xa)`#gjMEhIAPV2@j6%WmD0Uqivr9(dwEK~`u_h9a zvhn>fE)qA3M&gXyQ_*tER3;Cn;!LZl`1MZ&#$AiR<7*?ZKY_&*FpWU&dpMHja2&TR z9DhfI<2k)>%>EFDVtg1bE)K)*lfy7*bQrGf2xXk>P<$~v6kj`s;zOxWJbo_(=Wh)` zi}Vn@X%T``e+1)y7lLuZvS7>)55_v}V7&h}2w&DQ-qXAwJU=N2t49Q3VCxk8zI6&N zO`C$!=2LL?_dvXHHV{WvGF!@&K#Wig#Ml=B7`QJ0&2j?pn_U1N`sV*h?$%+B$}JGQ>4 z%WOh%7Z@jMu@7zy^kKFcqhUWA8L5w^$rg_w8sPI2|Uo+!UNm;+%bo`V{f55Cb+q?@q{~yU7v)oViLxN zOu}iSC!yep8-{OpL$hQz{5sAJYu~w|#}O94VumaF+qmM10T+}$<%0eTU2uV$3vLl} z!F^YpamP|;tO#(%7zJn4y6=QH*Eyje(h0w-J7LZHQ9P zRp5XZ%^dL1Cl*_y&K|vT?QziB9yfghG~xmG+zwB8+M&IK9Ui-Ei%ONYnC8uFl9IOg;EE0QRodV`ZyWqA zX@hUCSYvagH7@bCMmI@oe0$jn3oEQ}*wYGUi(6q^%S0SsHW4%3C*nqtiP+R^i7iEz zc)`UIkN&m5rDrTKywCy_94rujm}4k4$M!t7wKZqF>j|jTFae`xOu&`q6R`1v8D2kV zhPN}#u*J{}4|JL0f?cNQmS~FKv`leRy9t_YGGRK03F@nuVC7w7e6qqAwfv1SSlSq8 zUp8X4E+bs#YJ`jajK|cIQF*U%8VJICRansK-{W*lST zGtO130Zv(EfSLY`btPqh*)94QS)`9Pj`}z}Fc!}qXEyDeu{gqXEN*$Dhnl`sw0pab5gYQ5|oFsN->2b*#EP2E&+5 zU*3KUp6*k_m?LWVAzck~bk(ryu_{hpql&fus`y!470u3##+dxkSU7Psu6jQT*Y6&M zD`H1sKATSnzomi(l`8n!MFlqvDx+(?GCs;u#?-OO`0|MohOAM-#>q-JLQDxmPb=bz z*@}4DOc9@UDd6X=3iv&YZDkekNsByUp*&XE$Yan4Huq6GlJU4lVvzDke0g0C(@Ny< z8OWh`uPpA_FN@z3WYJz#7ISZnz-{Ft@RZ{SyxAv%_YTV7jU*Z5)!3ZNZD|x#NaI8& zY5dS9g_{pbp;M9+@7)rTqcQ=9VD@?R|2K?OJGF21a44~z#G@avA;+h6*+O# z|0sq=yTwp1N(|-M{7`R;C|)TL#cE3yv*?Woif$FbgTW%`B`LyUKm4O7I)_;pu3=hA zhp4yy5dF6NFI_(PhmK77L-TL`rZ>3XRBG2RY9afJy5{|)_8mW{w%-rNQW~VST7%TH za)93b@|}7|f2aE|exqN_zR~gP`>EGZ9}UXvqaJs^Qhocc^uw-Rx?@Byb(#HzUVHkP zI(vSm+mC#r-J?EH?S&ty%bO3>Kkx%}Z|b3j+CB7J`Fncw<2xD_{*Jyr-A$7Xy6KIo zw^XO^4NZuCLzgwbrnN?|>4BA9bkp}&G%t=ZyIMNwHKZz~&3%p3zSipVCg_r?h2dJ6-eb2@Q&Q!s1OmrmGAe(^1PF(Td)O^i9M= zYJIwmPSb0n>nk46!#%CEE~u66YP?TN)$h~bMfa#&*Ii0|?$Y2RjOV3zhX&@|rVUSS zQE``B)NA)mnkRXat`q)8cip~0YpiduxzX!1?bkJGk#LQ^y>OMTG`va;mtLVqK3=B! z!I$Zh6PM_7)k}2j{1!U(`9(V4?IK-Sdx5Tzyg(}j%~W{vJaw@=Pes?9qx`qCG&b@q z?LB#h&eb|YKQ1~=Lpx8=gC3{o*S#mHsq{%2CPbQZlhOhUO6OMdG_|jZx`#JWWxkQN zsx{Kef)mvA>2ccZbe#IsG|=YZdTN?nPb)9h(KdrRI=bQ*^?7@gX8RnaB?pesDw!j+ zTzHty`tJ}8nQ(|2tT;%!KOLYoQw~tyy8ZNx!hSku<~}-bcQ4Jh+Dltk@1YibwRAyf zEj@R9H|#cOp z>Mhj%>t@;#yqQj_-$WY~HnBKn8|mEJ8|W4D4Rpkc_0;p@Iy%dL9bJEDEj=Q$mY&R7 zLr-5_O^=UXO=~KuY4Ph-bgIWHs=s?Bef@6*-I}<9`kq@(d$g9*(!ym_vAv2iuTm<% zaVcH+eF^OfTS8rrFQ%&%7t<#>m2}Ll3L0ouK?|0a)2-cQw9%`KUaBpnH$+P5)x;8- zH@}$rb4664Zy~*KbOB8f6w7)H=Gh62&zr>e@O!A>ietFRoCp_u>X&&^gp*#KZ!i|31=t?_+UFa1VXIgvFk>(XT zP$ye^`tu{9M;Hz&BEgP+Q?;c_?^x4OORVSyw~18#rv+WuU{1RP6R4ZM8C}c!dB|4&1?C?MSkNOb*X~}QCZSV)rXAJPwZT)J_$@ys z=QV%nStp5X-mCp2}B-gz(;$0lex+AO3sKB>wF+C%$_h z;eVA|^LnY~eAFakevhsJFFvHr&wDn87dfrM@7yfUN6eGq^&-W2iR`~kzl{5vbi3a* z&E5N=>0j!DrgQo?ni@LKH?{9d5Yv?J z;oUTN*{bP>uXfX-o6=1xJG&d54zkEmC)PLCEQo4cyk4^L=J}u#yEgV&%Ncdrw10KC z9oJoDTibfV_RYCxw%@|V?82_A*~vRku+y)1vstxt{txCB<*DPMQvL4%GZOM}>V zYLXZ|ZIY6xLxO5_iNSL{@=Q~o6vh~kf1AdU>_>*=)Mz8}CCr$NSYtwD?wXQMBPS5v z-<+f_wIJWGSdwgUD{^I$H4!heAx39xiTO`EqQ(*OW)_eQb@s&cqXXG(>_q;iITMFn zE+qE3D@jnFL_8zhiQH-r!r$~H9@5^V!NZ4$7Wop}Q+~wv`()xgF@TK9W@~5nP9f

    Z2VWikGf}DB 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 z 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 literal 0 HcmV?d00001 diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt index 7c1488d9..fe7bf3e8 100644 --- a/sources/CMakeLists.txt +++ b/sources/CMakeLists.txt @@ -70,13 +70,13 @@ endif() if(ANDROID OR OHOS OR NX) - include(${CMAKE_CURRENT_LIST_DIR}/pvmp3dec/CMakeLists.txt) - include(${CMAKE_CURRENT_LIST_DIR}/tremolo/CMakeLists.txt) + # include(${CMAKE_CURRENT_LIST_DIR}/pvmp3dec/CMakeLists.txt) + # include(${CMAKE_CURRENT_LIST_DIR}/tremolo/CMakeLists.txt) - list(APPEND CC_EXTERNAL_LIBS - pvmp3dec - vorbisidec - ) + # list(APPEND CC_EXTERNAL_LIBS + # pvmp3dec + # vorbisidec + # ) elseif(WINDOWS) set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/ConvertUTF/ConvertUTF.c PROPERTIES @@ -106,3 +106,12 @@ if(USE_PHYSICS_PHYSX) ${CMAKE_CURRENT_LIST_DIR}/PhysX/PxShared/include ) endif() + +include(${CMAKE_CURRENT_LIST_DIR}/LabSound/CMakeLists.txt) +list(APPEND CC_EXTERNAL_SOURCES + ${LABSOUND_SOURCES} +) + +list(APPEND CC_EXTERNAL_INCLUDES + ${LABSOUND_INCLUDE} +) diff --git a/sources/LabSound/CMakeLists.txt b/sources/LabSound/CMakeLists.txt new file mode 100644 index 00000000..cef104eb --- /dev/null +++ b/sources/LabSound/CMakeLists.txt @@ -0,0 +1,43 @@ +include_guard() + +set(LABSOUND_ROOT "${CMAKE_CURRENT_LIST_DIR}") + +# default backend set up + +if (WIN32) +elseif (APPLE) +elseif (ANDROID) +else() + if (NOT LABSOUND_JACK AND NOT LABSOUND_PULSE AND NOT LABSOUND_ASOUND) + message(STATUS "No Linux backend specified, defaulting to Pulse.") + set(LABSOUND_PULSE ON) + endif() +endif() + +if (LABSOUND_ASOUND) + set(LIBNYQUIST_ASOUND ON) +elseif (LABSOUND_JACK) + set(LIBNYQUIST_JACK ON) +elseif (LABSOUND_PULSE) + set(LIBNYQUIST_PULSE ON) +endif() + + +# turn off building libnyquist samples +# set(BUILD_EXAMPLE OFF) +include(${CMAKE_CURRENT_LIST_DIR}/third_party/libnyquist/CMakeLists.txt) + +include(${CMAKE_CURRENT_LIST_DIR}/LabSound.cmake) + +# if (NOT ANDROID AND NOT IOS) +# include(cmake/examples.cmake) +# endif() + +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +# if(NOT CMAKE_BUILD_TYPE) +# set(CMAKE_BUILD_TYPE "Release") +# endif() + +add_definitions(${_LAB_CXX_DEFINITIONS}) +set(CMAKE_CXX_FLAGS "${_LAB_CXX_FLAGS} ${CMAKE_CXX_FLAGS}") diff --git a/sources/LabSound/LabSound.cmake b/sources/LabSound/LabSound.cmake new file mode 100644 index 00000000..2ee69fcb --- /dev/null +++ b/sources/LabSound/LabSound.cmake @@ -0,0 +1,217 @@ + +# LabSound +# +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (C) 2020, The LabSound Authors. All rights reserved. +# +# Will create a target named LabSound + +option(LIBSAMPLERATE_EXAMPLES "" OFF) +option(LIBSAMPLERATE_INSTALL "" ON) +option(BUILD_TESTING "" OFF) # suppress testing of libsamplerate +# include(${LABSOUND_ROOT}/third_party/libsamplerate/CMakeLists.txt) + +file(GLOB labsnd_core_h "${LABSOUND_ROOT}/include/LabSound/core/*") +file(GLOB labsnd_extended_h "${LABSOUND_ROOT}/include/LabSound/extended/*") +file(GLOB labsnd_core "${LABSOUND_ROOT}/src/core/*") +file(GLOB labsnd_extended "${LABSOUND_ROOT}/src/extended/*") +file(GLOB labsnd_int_h "${LABSOUND_ROOT}/src/internal/*") +file(GLOB labsnd_int_src "${LABSOUND_ROOT}/src/internal/src/*") +file(GLOB ooura_src "${LABSOUND_ROOT}/third_party/ooura/src/*") + +# backend selection + +if (IOS) + option(LABSOUND_USE_MINIAUDIO "Use miniaudio" ON) + option(LABSOUND_USE_RTAUDIO "Use RtAudio" OFF) +elseif (APPLE) + option(LABSOUND_USE_MINIAUDIO "Use miniaudio" OFF) + option(LABSOUND_USE_RTAUDIO "Use RtAudio" ON) +elseif (WIN32) + option(LABSOUND_USE_MINIAUDIO "Use miniaudio" ON) + option(LABSOUND_USE_RTAUDIO "Use RtAudio" OFF) +elseif (ANDROID) + option(LABSOUND_USE_MINIAUDIO "Use miniaudio" ON) + option(LABSOUND_USE_RTAUDIO "Use RtAudio" OFF) +elseif (UNIX) + option(LABSOUND_USE_MINIAUDIO "Use miniaudio" OFF) + option(LABSOUND_USE_RTAUDIO "Use RtAudio" ON) +else () + message(FATAL, " Untested platform. Please try miniaudio and report results on the LabSound issues page") +endif() + +if (LABSOUND_USE_MINIAUDIO AND LABSOUND_USE_RTAUDIO) + message(FATAL, " Specify only one backend") +elseif(NOT LABSOUND_USE_MINIAUDIO AND NOT LABSOUND_USE_RTAUDIO) + message(FATAL, " Specify at least one backend") +endif() + +if (LABSOUND_USE_MINIAUDIO) + message(STATUS "Using miniaudio backend") + if (IOS) + set(labsnd_backend + "${LABSOUND_ROOT}/src/backends/miniaudio/AudioDevice_Miniaudio.mm" + "${LABSOUND_ROOT}/src/backends/miniaudio/AudioDevice_Miniaudio.h" + "${LABSOUND_ROOT}/third_party/miniaudio/miniaudio.h" + ) + else() + set(labsnd_backend + "${LABSOUND_ROOT}/src/backends/miniaudio/AudioDevice_Miniaudio.cpp" + "${LABSOUND_ROOT}/src/backends/miniaudio/AudioDevice_Miniaudio.h" + "${LABSOUND_ROOT}/third_party/miniaudio/miniaudio.h" + ) + endif() +elseif (LABSOUND_USE_RTAUDIO) + message(STATUS "Using RtAudio backend") + set(labsnd_backend + "${LABSOUND_ROOT}/src/backends/RtAudio/AudioDevice_RtAudio.cpp" + "${LABSOUND_ROOT}/src/backends/RtAudio/AudioDevice_RtAudio.h" + "${LABSOUND_ROOT}/src/backends/RtAudio/RtAudio.cpp" + "${LABSOUND_ROOT}/src/backends/RtAudio/RtAudio.h" + ) +endif() + + +# FFT +if (IOS) + set(labsnd_fft_src "${LABSOUND_ROOT}/src/backends/FFTFrameAppleAcclerate.cpp") +elseif (APPLE) + set(labsnd_fft_src "${LABSOUND_ROOT}/src/backends/FFTFrameAppleAcclerate.cpp") +elseif (WIN32) + file(GLOB labsnd_fft_src "${LABSOUND_ROOT}/third_party/kissfft/src/*") +elseif (UNIX) + file(GLOB labsnd_fft_src "${LABSOUND_ROOT}/third_party/kissfft/src/*") +endif() + +# TODO ooura or kissfft? benchmark and choose. Then benchmark vs FFTFrameAppleAcclerate +set(ooura_src + "${LABSOUND_ROOT}/third_party/ooura/src/fftsg.cpp" + "${LABSOUND_ROOT}/third_party/ooura/fftsg.h") + +set(LABSOUND_SOURCES + "${LABSOUND_ROOT}/include/LabSound/LabSound.h" + ${labsnd_core_h} ${labsnd_core} + ${labsnd_extended_h} ${labsnd_extended} + ${labsnd_int_h} ${labsnd_int_src} + ${labsnd_backend} ${ooura_src} ${labsnd_fft_src} + ) + +# if (APPLE) +# set_target_properties(LabSound PROPERTIES +# FRAMEWORK TRUE +# FRAMEWORK_VERSION A +# MACOSX_FRAMEWORK_IDENTIFIER com.Lab.LabSound +# VERSION 0.13.0 +# SOVERSION 1.0.0 +# PUBLIC_HEADER "${labsnd_core_h} ${labsnd_extended_h}" +# ) +# set_property(SOURCE ${labsnd_core_h} +# PROPERTY MACOSX_PACKAGE_LOCATION Headers/LabSound/core) +# set_property(SOURCE ${labsnd_extended_h} +# PROPERTY MACOSX_PACKAGE_LOCATION Headers/LabSound/extended) +# endif() + +# set(proj LabSound) +# set(proj cocos_engine) + + +# set(LABSOUND_INCLUDE +# ${LABSOUND_ROOT}/include) + +list(APPEND LABSOUND_INCLUDE + ${LABSOUND_ROOT}/src + ${LABSOUND_ROOT}/include + ${LABSOUND_ROOT}/third_party + ${LABSOUND_ROOT}/third_party/libnyquist/include + ${LABSOUND_ROOT}/third_party/ooura + ${LABSOUND_ROOT}/third_party/ooura/src + ${LABSOUND_ROOT}/third_party/kissfft/src +) + + +if (LABSOUND_USE_MINIAUDIO) + list(APPEND LABSOUND_INCLUDE + ${LABSOUND_ROOT}/third_party/miniaudio) +endif() + + +# if (MSVC_IDE) +# # hack to get around the "Debug" and "Release" directories cmake tries to add on Windows +# set_target_properties(${ENGINE_NAME} PROPERTIES IMPORT_PREFIX "../") +# endif() + +# set_target_properties(LabSound +# PROPERTIES +# LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" +# ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +# RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" +# ) + +# set_target_properties(LabSound PROPERTIES OUTPUT_NAME_DEBUG LabSound_d) + +# if (WIN32) +# target_compile_definitions(${ENGINE_NAME} PRIVATE __WINDOWS_WASAPI__=1) +# elseif (APPLE) +# target_compile_definitions(${ENGINE_NAME} PRIVATE __MACOSX_CORE__=1) +# else() +# set(LABSOUND_PLATFORM_LINK_LIBRARIES dl) +# if (LABSOUND_JACK) +# target_compile_definitions(${ENGINE_NAME} PRIVATE __UNIX_JACK__=1) +# set(LIBNYQUIST_JACK ON) +# elseif (LABSOUND_PULSE) +# target_compile_definitions(${ENGINE_NAME} PRIVATE __LINUX_PULSE__=1) +# set(LIBNYQUIST_PULSE ON) +# elseif (LABSOUND_ASOUND) +# target_compile_definitions(${ENGINE_NAME} PRIVATE __LINUX_ALSA__=1) +# set(LIBNYQUIST_ASOUND ON) +# else() +# message(FATAL, "On Linux, one of LABSOUND_JACK, LABSOUND_PULSE, or LABSOUND_ASOUND must be set ON.") +# endif() +# endif() + +# target_link_libraries(LabSound +# libnyquist libwavpack +# samplerate +# ${LABSOUND_PLATFORM_LINK_LIBRARIES}) + +# install(TARGETS LabSound +# LIBRARY DESTINATION lib +# ARCHIVE DESTINATION lib +# FRAMEWORK DESTINATION lib +# RUNTIME DESTINATION bin) + +# install(FILES "${LABSOUND_ROOT}/include/LabSound.h" +# DESTINATION include) +# install(FILES ${labsnd_core_h} +# DESTINATION include/core) +# install(FILES ${labsnd_extended_h} +# DESTINATION include/extended) +# install(DIRECTORY +# assets/hrtf +# assets/images +# assets/impulse +# assets/json +# assets/pd +# assets/samples +# DESTINATION share/LabSound) + +# source_group(include FILES "${LABSOUND_ROOT}/include/LabSound") +# source_group(include\\core FILES ${labsnd_core_h}) +# source_group(include\\extended FILES ${labsnd_extended_h}) +# source_group(src\\backends FILES ${labsnd_backend}) +# source_group(src\\core FILES ${labsnd_core}) +# source_group(src\\extended FILES ${labsnd_extended}) +# source_group(src\\internal FILES ${labsnd_int_h}) +# source_group(src\\internal\\src FILES ${labsnd_int_src}) +# source_group(third_party\\kissfft FILES ${third_kissfft}) +# source_group(third_party\\ooura FILES ${ooura_src}) +# source_group(third_party\\rtaudio FILES ${third_rtaudio}) + +# configure_file("${LABSOUND_ROOT}/cmake/LabSoundConfig.cmake.in" +# "${PROJECT_BINARY_DIR}/LabSoundConfig.cmake" @ONLY) +# install(FILES +# "${PROJECT_BINARY_DIR}/LabSoundConfig.cmake" +# DESTINATION "${CMAKE_INSTALL_PREFIX}" +# ) + +# add_library(Lab::Sound ALIAS LabSound) diff --git a/sources/LabSound/include/LabSound/LabSound.h b/sources/LabSound/include/LabSound/LabSound.h new file mode 100644 index 00000000..5b1ab297 --- /dev/null +++ b/sources/LabSound/include/LabSound/LabSound.h @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef LABSOUND_H +#define LABSOUND_H + +// WebAudio Public API +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/NullDeviceNode.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioHardwareInputNode.h" +#include "LabSound/core/AnalyserNode.h" +#include "LabSound/core/AudioBasicInspectorNode.h" +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioListener.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioScheduledSourceNode.h" +#include "LabSound/core/BiquadFilterNode.h" +#include "LabSound/core/ChannelMergerNode.h" +#include "LabSound/core/ChannelSplitterNode.h" +#include "LabSound/core/ConvolverNode.h" +#include "LabSound/core/DelayNode.h" +#include "LabSound/core/DynamicsCompressorNode.h" +#include "LabSound/core/GainNode.h" +#include "LabSound/core/OscillatorNode.h" +#include "LabSound/core/PannerNode.h" +#include "LabSound/core/SampledAudioNode.h" +#include "LabSound/core/StereoPannerNode.h" +#include "LabSound/core/WaveShaperNode.h" + +// LabSound Extended Public API +#include "LabSound/extended/ADSRNode.h" +#include "LabSound/extended/AudioFileReader.h" +#include "LabSound/extended/BPMDelayNode.h" +#include "LabSound/extended/ClipNode.h" +#include "LabSound/extended/DiodeNode.h" +#include "LabSound/extended/FunctionNode.h" +#include "LabSound/extended/GranulationNode.h" +#include "LabSound/extended/NoiseNode.h" +//#include "LabSound/extended/PdNode.h" +#include "LabSound/extended/PeakCompNode.h" +#include "LabSound/extended/PingPongDelayNode.h" +#include "LabSound/extended/PolyBLEPNode.h" +#include "LabSound/extended/PowerMonitorNode.h" +#include "LabSound/extended/PWMNode.h" +#include "LabSound/extended/RealtimeAnalyser.h" +#include "LabSound/extended/Registry.h" +#include "LabSound/extended/RecorderNode.h" +#include "LabSound/extended/SfxrNode.h" +#include "LabSound/extended/SpatializationNode.h" +#include "LabSound/extended/SpectralMonitorNode.h" +#include "LabSound/extended/SupersawNode.h" + +namespace lab +{ + const std::vector MakeAudioDeviceList(); + const AudioDeviceIndex GetDefaultOutputAudioDeviceIndex(); + const AudioDeviceIndex GetDefaultInputAudioDeviceIndex(); + + std::unique_ptr MakeRealtimeAudioContext(const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig); + std::unique_ptr MakeOfflineAudioContext(const AudioStreamConfig & offlineConfig, double recordTimeMilliseconds); + + struct OfflineContext + { + void * device; + std::unique_ptr context; + void process(size_t samples); + }; + OfflineContext MakeOfflineAudioContext(const AudioStreamConfig &); + + std::shared_ptr MakeAudioHardwareInputNode(ContextRenderLock & r); + + AudioStreamConfig GetDefaultInputAudioDeviceConfiguration(); + AudioStreamConfig GetDefaultOutputAudioDeviceConfiguration(); +} + + +#endif + diff --git a/sources/LabSound/include/LabSound/core/AnalyserNode.h b/sources/LabSound/include/LabSound/core/AnalyserNode.h new file mode 100644 index 00000000..f8028676 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AnalyserNode.h @@ -0,0 +1,69 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AnalyserNode_h +#define AnalyserNode_h + +#include "LabSound/core/AudioBasicInspectorNode.h" + +namespace lab +{ +class AudioSetting; + +// If the analyserNode is intended to run without it's output +// being connected to an AudioDestination, the AnalyserNode must be +// registered with the AudioContext via addAutomaticPullNode. + +// params: +// settings: fftSize, minDecibels, maxDecibels, smoothingTimeConstant +// +class AnalyserNode : public AudioBasicInspectorNode +{ + void shared_construction(int fftSize); + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + struct Detail; + Detail * _detail = nullptr; + +public: + AnalyserNode(AudioContext & ac); + AnalyserNode(AudioContext & ac, int fftSize); + virtual ~AnalyserNode(); + + static const char* static_name() { return "Analyser"; } + virtual const char* name() const override { return static_name(); } + + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + void setFftSize(ContextRenderLock &, int fftSize); + size_t fftSize() const; + + // a value large enough to hold all the data return from get*FrequencyData + size_t frequencyBinCount() const; + + void setMinDecibels(double k); + double minDecibels() const; + + void setMaxDecibels(double k); + double maxDecibels() const; + + void setSmoothingTimeConstant(double k); + double smoothingTimeConstant() const; + + // frequency bins, reported in db + void getFloatFrequencyData(std::vector & array); + + // frequency bins, reported as a linear mapping of minDecibels to maxDecibles onto 0-255. + // if resample is true, then the computed values will be linearly resampled + void getByteFrequencyData(std::vector & array, bool resample = false); + void getFloatTimeDomainData(std::vector & array); + void getByteTimeDomainData(std::vector & array); +}; + +} // namespace lab + +#endif // AnalyserNode_h diff --git a/sources/LabSound/include/LabSound/core/AudioArray.h b/sources/LabSound/include/LabSound/core/AudioArray.h new file mode 100644 index 00000000..09b87713 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioArray.h @@ -0,0 +1,138 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioArray_h +#define AudioArray_h + +#include +#include +#include + +namespace lab +{ + +template +class AudioArray +{ +public: + AudioArray() + : m_allocation(0) + , m_alignedData(0) + , m_size(0) + { + } + explicit AudioArray(size_t n) + : m_allocation(0) + , m_alignedData(0) + , m_size(0) + { + allocate(n); + } + + ~AudioArray() + { + free(m_allocation); + } + + // It's OK to call allocate() multiple times, but data will *not* be copied from an initial allocation + // if re-allocated. Allocations are zero-initialized. + void allocate(size_t n) + { + size_t initialSize = sizeof(T) * n; + + const size_t alignment = 16; + + if (m_allocation) + free(m_allocation); + + bool isAllocationGood = false; + + while (!isAllocationGood) + { + // Initially we try to allocate the exact size, but if it's not aligned + // then we'll have to reallocate and from then on allocate extra. + static size_t extraAllocationBytes = 0; + + T * allocation = static_cast(malloc(initialSize + extraAllocationBytes)); + if (!allocation) + { + //CRASH(); // dimitri + } + T * alignedData = alignedAddress(allocation, alignment); + + if (alignedData == allocation || extraAllocationBytes == alignment) + { + m_allocation = allocation; + m_alignedData = alignedData; + m_size = n; + isAllocationGood = true; + zero(); + } + else + { + extraAllocationBytes = alignment; // always allocate extra after the first alignment failure. + free(allocation); + } + } + } + + T * data() { return m_alignedData; } + const T * data() const { return m_alignedData; } + size_t size() const { return m_size; } + + T & at(size_t i) + { + // Note that although it is a size_t, m_size is now guaranteed to be + // no greater than max unsigned. This guarantee is enforced in allocate(). + return data()[i]; + } + + T & operator[](size_t i) { return at(i); } + + void zero() + { + // This multiplication is made safe by the check in allocate(). + memset(this->data(), 0, sizeof(T) * this->size()); + } + + void zeroRange(unsigned start, unsigned end) + { + bool isSafe = (start <= end) && (end <= this->size()); + if (!isSafe) + return; + + // This expression cannot overflow because end - start cannot be + // greater than m_size, which is safe due to the check in allocate(). + memset(this->data() + start, 0, sizeof(T) * (end - start)); + } + + void copyToRange(const T * sourceData, unsigned start, unsigned end) + { + bool isSafe = (start <= end) && (end <= this->size()); + if (!isSafe) + return; + + // This expression cannot overflow because end - start cannot be + // greater than m_size, which is safe due to the check in allocate(). + memcpy(this->data() + start, sourceData, sizeof(T) * (end - start)); + } + +private: + static T * alignedAddress(T * address, intptr_t alignment) + { + intptr_t value = reinterpret_cast(address); + return reinterpret_cast((value + alignment - 1) & ~(alignment - 1)); + } + + T * m_allocation; + T * m_alignedData; + size_t m_size; +}; + +typedef AudioArray AudioFloatArray; +typedef AudioArray AudioDoubleArray; + +} // lab + +#endif // AudioArray_h diff --git a/sources/LabSound/include/LabSound/core/AudioBasicInspectorNode.h b/sources/LabSound/include/LabSound/core/AudioBasicInspectorNode.h new file mode 100644 index 00000000..42869435 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioBasicInspectorNode.h @@ -0,0 +1,34 @@ +// License: BSD 2 Clause +// Copyright (C) 2012, Intel Corporation. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioBasicInspectorNode_h +#define AudioBasicInspectorNode_h + +#include "LabSound/core/AudioNode.h" + +namespace lab +{ + +// AudioBasicInspectorNode is an AudioNode with one input and one output where +// the output might not necessarily connect to another node's input. +// If the output is not connected to any other node, then the +// AudioBasicInspectorNode's processIfNecessary() function can be called +// automatically by AudioContext before the end of each render quantum so that +// it can inspect the audio stream. + +// In order that the automatic behavior is invoked, the AudioBasicInspectorNode +// must be registered with the AudioContext, via addAutomaticPullNode. + +// NONFINAL NODE + +class AudioBasicInspectorNode : public AudioNode +{ +public: + AudioBasicInspectorNode(AudioContext & ac, int outputChannelCount); + virtual ~AudioBasicInspectorNode() = default; +}; + +} // namespace lab + +#endif // AudioBasicInspectorNode_h diff --git a/sources/LabSound/include/LabSound/core/AudioBasicProcessorNode.h b/sources/LabSound/include/LabSound/core/AudioBasicProcessorNode.h new file mode 100644 index 00000000..d08dff88 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioBasicProcessorNode.h @@ -0,0 +1,48 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioBasicProcessorNode_h +#define AudioBasicProcessorNode_h + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioProcessor.h" +#include "LabSound/extended/AudioContextLock.h" +#include + +namespace lab +{ + +class AudioBus; +class AudioNodeInput; + +// AudioBasicProcessorNode is an AudioNode with one input and one output where +// the input and output have the same number of channels. +class AudioBasicProcessorNode : public AudioNode +{ +public: + AudioBasicProcessorNode(AudioContext &); + virtual ~AudioBasicProcessorNode() = default; + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + virtual void initialize() override; + virtual void uninitialize() override; + + // Returns the number of channels for both the input and the output. + int numberOfChannels(); + +protected: + virtual double tailTime(ContextRenderLock & r) const override; + virtual double latencyTime(ContextRenderLock & r) const override; + + AudioProcessor * processor(); + AudioProcessor * processor() const; + + std::unique_ptr m_processor; +}; + +} // namespace lab + +#endif // AudioBasicProcessorNode_h diff --git a/sources/LabSound/include/LabSound/core/AudioBus.h b/sources/LabSound/include/LabSound/core/AudioBus.h new file mode 100644 index 00000000..b146e61f --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioBus.h @@ -0,0 +1,148 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioBus_h +#define AudioBus_h + +#include "LabSound/core/AudioChannel.h" +#include "LabSound/core/Mixing.h" +#include +#include + +namespace lab +{ + +using lab::Channel; +using lab::ChannelInterpretation; + +// An AudioBus represents a collection of one or more AudioChannels. +// The data layout is "planar" as opposed to "interleaved". +// An AudioBus with one channel is mono, an AudioBus with two channels is stereo, etc. +class AudioBus +{ + AudioBus(const AudioBus &); // noncopyable + +public: + // Can define non-standard layouts here: + enum + { + LayoutCanonical = 0 + }; + + // allocate indicates whether or not to initially have the AudioChannels created with managed storage. + // Normal usage is to pass true here, in which case the AudioChannels will memory-manage their own storage. + // If allocate is false then setChannelMemory() has to be called later on for each channel before the AudioBus is useable... + AudioBus(int numberOfChannels, int length, bool allocate = true); + + // Tells the given channel to use an externally allocated buffer. + void setChannelMemory(int channelIndex, float * storage, int length); + + // Channels + int numberOfChannels() const { return static_cast(m_channels.size()); } + + // Use this when looping over channels + AudioChannel * channel(int channel) { return m_channels[channel].get(); } + + const AudioChannel * channel(int channel) const + { + return const_cast(this)->m_channels[channel].get(); + } + + // use this when accessing channels semantically + AudioChannel * channelByType(Channel type); + const AudioChannel * channelByType(Channel type) const; + + // Number of sample-frames + int length() const { return m_length; } + + // resizeSmaller() can only be called with a new length <= the current length. + // The data stored in the bus will remain undisturbed. + void resizeSmaller(int newLength); + + // Sample-rate : 0.0 if unknown or "don't care" + float sampleRate() const { return m_sampleRate; } + void setSampleRate(float sampleRate) { m_sampleRate = sampleRate; } + + // Zeroes all channels. + void zero(); + + // Clears the silent flag on all channels. + void clearSilentFlag(); + + // Returns true if the silent bit is set on all channels. + bool isSilent() const; + + // Returns true if the channel count and frame-size match. + bool topologyMatches(const AudioBus & sourceBus) const; + + // Scales all samples by the same amount. + void scale(float scale); + + void reset() { m_isFirstTime = true; } // for de-zippering + + // Assuming sourceBus has the same topology, copies sample data from each channel of sourceBus to our corresponding channel. + void copyFrom(const AudioBus & sourceBus, ChannelInterpretation = ChannelInterpretation::Speakers); + + // Sums the sourceBus into our bus with unity gain. + // Our own internal gain m_busGain is ignored. + void sumFrom(const AudioBus & sourceBus, ChannelInterpretation = ChannelInterpretation::Speakers); + + // Copy each channel from sourceBus into our corresponding channel. + // We scale by targetGain (and our own internal gain m_busGain), performing "de-zippering" to smoothly change from *lastMixGain to (targetGain*m_busGain). + // The caller is responsible for setting up lastMixGain to point to storage which is unique for every "stream" which will be applied to this bus. + // This represents the dezippering memory. + void copyWithGainFrom(const AudioBus & sourceBus, float * lastMixGain, float targetGain); + + // Copies the sourceBus by scaling with sample-accurate gain values. + void copyWithSampleAccurateGainValuesFrom(const AudioBus & sourceBus, float * gainValues, int numberOfGainValues); + + // Returns maximum absolute value across all channels (useful for normalization). + float maxAbsValue() const; + + // Makes maximum absolute value == 1.0 (if possible). + void normalize(); + + bool isFirstTime() { return m_isFirstTime; } + + // Static Functions + + // Creates a new buffer from a range in the source buffer. + // 0 may be returned if the range does not fit in the sourceBuffer + static std::unique_ptr createBufferFromRange(const AudioBus * sourceBus, int startFrame, int endFrame); + + // Creates a new AudioBus by sample-rate converting sourceBus to the newSampleRate. + // setSampleRate() must have been previously called on sourceBus. + static std::unique_ptr createBySampleRateConverting(const AudioBus * sourceBus, bool mixToMono, float newSampleRate); + + // Creates a new AudioBus by mixing all the channels down to mono. + // If sourceBus is already mono, then the returned AudioBus will simply be a copy. + static std::unique_ptr createByMixingToMono(const AudioBus * sourceBus); + + // Creates a new AudioBus by cloning an existing one + static std::unique_ptr createByCloning(const AudioBus * sourceBus); + +protected: + + AudioBus() = default; + + void speakersCopyFrom(const AudioBus &); + void discreteCopyFrom(const AudioBus &); + void speakersSumFrom(const AudioBus &); + void discreteSumFrom(const AudioBus &); + void speakersSumFrom5_1_ToMono(const AudioBus &); + void speakersSumFrom7_1_ToMono(const AudioBus &); + + std::unique_ptr m_dezipperGainValues; + std::vector> m_channels; + + bool m_isFirstTime = true; + float m_sampleRate = 0.0f; + float m_busGain = 1.0f; + int m_layout = LayoutCanonical; + int m_length = 0; +}; + +} // lab + +#endif // AudioBus_h diff --git a/sources/LabSound/include/LabSound/core/AudioChannel.h b/sources/LabSound/include/LabSound/core/AudioChannel.h new file mode 100644 index 00000000..2e60adfc --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioChannel.h @@ -0,0 +1,122 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioChannel_h +#define AudioChannel_h + +#include "LabSound/core/AudioArray.h" + +#include + +namespace lab +{ + +// An AudioChannel represents a buffer of non-interleaved floating-point audio samples. +// The PCM samples are normally assumed to be in a nominal range -1.0 -> +1.0 +class AudioChannel +{ + AudioChannel(const AudioChannel &); // noncopyable + +public: + // Memory can be externally referenced, or can be internally allocated with an AudioFloatArray. + + // Reference an external buffer. + AudioChannel(float * storage, int length) + : m_length(length) + , m_rawPointer(storage) + , m_silent(false) + { + } + + // Manage storage for us. + explicit AudioChannel(int length) + : m_length(length) + , m_silent(true) + { + m_memBuffer.reset(new AudioFloatArray(length)); + } + + // An empty audio channel -- must call set() before it's useful... + AudioChannel() + : m_length(0) + , m_silent(true) + { + } + + // Redefine the memory for this channel. + // storage represents external memory not managed by this object. + void set(float * storage, int length) + { + m_memBuffer.reset(); // clean up managed storage + m_rawPointer = storage; + m_length = length; + m_silent = false; + } + + // How many sample-frames do we contain? + int length() const { return m_length; } + + // resizeSmaller() can only be called with a new length <= the current length. + // The data stored in the bus will remain undisturbed. + void resizeSmaller(int newLength); + + // Direct access to PCM sample data. Non-const accessor clears silent flag. + float * mutableData() + { + clearSilentFlag(); + return const_cast(data()); + } + + const float * data() const + { + if (m_rawPointer) + return m_rawPointer; + if (m_memBuffer) + return m_memBuffer->data(); + return nullptr; + } + + // Zeroes out all sample values in buffer. + void zero() + { + if (m_silent) return; + + m_silent = true; + + if (m_memBuffer) + m_memBuffer->zero(); + else if (m_rawPointer) + memset(m_rawPointer, 0, sizeof(float) * m_length); + } + + // Clears the silent flag. + void clearSilentFlag() { m_silent = false; } + + bool isSilent() const { return m_silent; } + + // Scales all samples by the same amount. + void scale(float scale); + + // A simple memcpy() from the source channel + void copyFrom(const AudioChannel * sourceChannel); + + // Copies the given range from the source channel. + void copyFromRange(const AudioChannel * sourceChannel, int startFrame, int endFrame); + + // Sums (with unity gain) from the source channel. + void sumFrom(const AudioChannel * sourceChannel); + + // Returns maximum absolute value (useful for normalization). + float maxAbsValue() const; + +private: + int m_length = 0; + float * m_rawPointer = nullptr; + std::unique_ptr m_memBuffer; + bool m_silent = true; +}; + +} // lab + +#endif // AudioChannel_h diff --git a/sources/LabSound/include/LabSound/core/AudioContext.h b/sources/LabSound/include/LabSound/core/AudioContext.h new file mode 100644 index 00000000..944e825a --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioContext.h @@ -0,0 +1,219 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef lab_audio_context_h +#define lab_audio_context_h + +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioScheduledSourceNode.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace lab +{ + +class AudioHardwareDeviceNode; +class AudioListener; +class AudioNode; +class AudioScheduledSourceNode; +class AudioHardwareInputNode; +class AudioNodeInput; +class AudioNodeOutput; +class ContextGraphLock; +class ContextRenderLock; + +class AudioContext +{ + friend class ContextGraphLock; + friend class ContextRenderLock; + +public: + + // AudioNodes should not retain the AudioContext. The majority of + // methods that take AudioContext as a parameter do so via reference. + // If methods from the context, such as currentTime() are + // required in methods that do not take AudioContext as a parameter, + // they should instead retain a weak pointer to the + // AudioNodeInterface from the AudioContext they were instantiated from. + // Locking the AudioNodeInterface + // pointer is a way to check if the AudioContext is still instantiated. + // AudioContextInterface contains data that is safe for any thread, or + // audio processing callback to read, even if the audio context is in + // the process of stopping or destruction. + class AudioContextInterface + { + friend class AudioContext; + + + int _id = 0; + AudioContext * _ac = nullptr; + double _currentTime = 0; + + public: + AudioContextInterface(AudioContext * ac, int id) + : _id(id) + , _ac(ac) + { + } + + ~AudioContextInterface() { } + + // the contextId of two AudioNodeInterfaces can be compared + // to discover if they refer to the same context. + int contextId() const { return _id; } + double currentTime() const { return _currentTime; } + }; + + std::weak_ptr audioContextInterface() { return m_audioContextInterface; } + + + // Debugging/Sanity Checking + std::string m_graphLocker; + std::string m_renderLocker; + + explicit AudioContext(bool isOffline, bool autoDispatchEvents = true); + ~AudioContext(); + + bool isInitialized() const; + + // External users shouldn't use this; it should be called by + // LabSound::MakeRealtimeAudioContext(lab::Channels::Stereo) + // It *is* harmless to call it though, it's just not necessary. + void lazyInitialize(); + + void setDeviceNode(std::shared_ptr device); + std::shared_ptr device(); + + bool isOfflineContext() const; + + // The current time, measured at the start of the render quantum currently + // being processed. Most useful in a Node's process routine. + double currentTime() const; + + // The current epoch (total count of previously processed render quanta) + // Useful in recurrent graphs to discover if a node has already done its + // processing for the present quanta. + uint64_t currentSampleFrame() const; + + // The current time, accurate versus the audio clock. Whereas currentTime + // advances discretely, once per render quanta, predictedCurrentTime + // is the sum of currentTime, and the amount of realworld time that has + // elapsed since the start of the current render quanta. This is useful on + // the main thread of an application in order to precisely synchronize + // expected audio events and other systems. + double predictedCurrentTime() const; + + float sampleRate() const; + + std::shared_ptr listener(); + + // Called at the start of each render quantum. + void handlePreRenderTasks(ContextRenderLock &); + + // Called at the end of each render quantum. + void handlePostRenderTasks(ContextRenderLock &); + + // AudioContext can pull node(s) at the end of each render quantum even + // when they are not connected to any downstream nodes. These two methods + // are called by the nodes who want to add/remove themselves into/from the + // automatic pull lists. + void addAutomaticPullNode(std::shared_ptr); + void removeAutomaticPullNode(std::shared_ptr); + + // Called right before handlePostRenderTasks() to handle nodes which need to + // be pulled even when they are not connected to anything. + // Only an AudioHardwareDeviceNode should call this. + void processAutomaticPullNodes(ContextRenderLock &, int framesToProcess); + + void connect(std::shared_ptr destination, std::shared_ptr source, int destIdx = 0, int srcIdx = 0); + void disconnect(std::shared_ptr destination, std::shared_ptr source, int destIdx = 0, int srcidx = 0); + bool isConnected(std::shared_ptr destination, std::shared_ptr source); + + // completely disconnect the node from the graph + void disconnect(std::shared_ptr node, int destIdx = 0); + + // connect a parameter to receive the indexed output of a node + void connectParam(std::shared_ptr param, std::shared_ptr driver, int index); + + // connect destinationNode's named parameter input to driver's indexed output + void connectParam(std::shared_ptr destinationNode, char const*const parameterName, std::shared_ptr driver, int index); + + // disconnect a parameter from the indexed output of a node + void disconnectParam(std::shared_ptr param, std::shared_ptr driver, int index); + + // connecting and disconnecting busses and parameters occurs asynchronously. + // synchronizeConnections will block until there are no pending connections, + // or until the timeout occurs. + void synchronizeConnections(int timeOut_ms = 1000); + + void startOfflineRendering(); + std::function offlineRenderCompleteCallback; + + // suspend the progression of time in the audio context, any queued samples will play + void suspend(); + + // if the context was suspended, resume the progression of time and processing in the audio context + void resume(); + + // event dispatching will be called automatically, depending on constructor + // argument. If not automatically dispatching, it is the user's responsibility + // to call dispatchEvents often enough to satisfy the user's needs. + void enqueueEvent(std::function &); + void dispatchEvents(); + + void appendDebugBuffer(AudioBus* bus, int channel, int count); + void flushDebugBuffer(char const* const wavFilePath); + +private: + // @TODO migrate most of the internal datastructures such as + // PendingConnection into Internals as there's no need to expose these at all. + struct Internals; + std::unique_ptr m_internal; + + std::shared_ptr m_audioContextInterface; + + std::mutex m_graphLock; + std::mutex m_renderLock; + std::mutex m_updateMutex; + std::condition_variable cv; + + // -1 means run forever, 0 means stop, n > 0 means run this many times + // n > 0 will decrement to zero each time update runs. + std::atomic updateThreadShouldRun{-1}; + std::thread graphUpdateThread; + float graphKeepAlive{0.f}; + float lastGraphUpdateTime{0.f}; + + bool m_isInitialized = false; + bool m_isAudioThreadFinished = false; + bool m_isOfflineContext = false; + bool m_automaticPullNodesNeedUpdating = false; // indicates m_automaticPullNodes was modified. + + friend class NullDeviceNode; // needs to be able to call update() + void update(); + void updateAutomaticPullNodes(); + void uninitialize(); + + AudioDeviceRenderCallback * device_callback{nullptr}; + std::shared_ptr m_device; + + std::shared_ptr m_listener; + + std::set> m_automaticPullNodes; // queue for added pull nodes + std::vector> m_renderingAutomaticPullNodes; // vector of known pull nodes +}; + +} // End namespace lab + +#endif // lab_audio_context_h diff --git a/sources/LabSound/include/LabSound/core/AudioDevice.h b/sources/LabSound/include/LabSound/core/AudioDevice.h new file mode 100644 index 00000000..c9e1084a --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioDevice.h @@ -0,0 +1,125 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef lab_audiodevice_h +#define lab_audiodevice_h + +#include +#include +#include +#include +#include + +namespace lab +{ +class AudioBus; +class AudioContext; +class AudioNodeInput; +class AudioHardwareInput; +class AudioDevice; + +///////////////////////////////////////////// +// Audio Device Configuration Settings // +///////////////////////////////////////////// + +struct AudioDeviceInfo +{ + int32_t index{-1}; + std::string identifier; + uint32_t num_output_channels{0}; + uint32_t num_input_channels{0}; + std::vector supported_samplerates; + float nominal_samplerate{0}; + bool is_default_output{false}; + bool is_default_input{false}; +}; + +// Input and Output +struct AudioStreamConfig +{ + int32_t device_index{-1}; + uint32_t desired_channels{0}; + float desired_samplerate{0}; +}; + +// low bit of current_sample_frame indexes time point 0 or 1 +// (so that time and epoch are written atomically, after the alternative epoch has been filled in) +struct SamplingInfo +{ + uint64_t current_sample_frame{0}; + double current_time{0.0}; + float sampling_rate{0.0}; + std::chrono::high_resolution_clock::time_point epoch[2]; +}; + +// This is a free function to consolidate and implement the required functionality to take buffers +// from the hardware (both input and output) and begin pulling the graph until fully rendered per quanta. +// This was formerly a function found on the removed `AudioDestinationNode` class (removed +// to de-complicate some annoying inheritance chains). +// +// `pull_graph(...)` will need to be called by a single AudioNode per-context. For instance, +// the `AudioHardwareDeviceNode` or the `NullDeviceNode`. +void pull_graph(AudioContext * ctx, AudioNodeInput * required_inlet, AudioBus * src, AudioBus * dst, int frames, + const SamplingInfo & info, AudioHardwareInput * optional_hardware_input = nullptr); + +/////////////////////////////////// +// AudioDeviceRenderCallback // +/////////////////////////////////// + +// `render()` is called periodically to get the next render quantum of audio into destinationBus. +// Optional audio input is given in src (if not nullptr). This structure also keeps +// track of timing information with respect to the callback. +class AudioDeviceRenderCallback +{ + AudioStreamConfig outputConfig; + AudioStreamConfig inputConfig; + friend class AudioDevice; + +public: + virtual ~AudioDeviceRenderCallback() {} + virtual void render(AudioBus * src, AudioBus * dst, int frames, const SamplingInfo & info) = 0; + virtual void start() = 0; + virtual void stop() = 0; + virtual bool isRunning() const = 0; + + virtual const SamplingInfo & getSamplingInfo() const = 0; + virtual const AudioStreamConfig & getOutputConfig() const = 0; + virtual const AudioStreamConfig & getInputConfig() const = 0; +}; + +///////////////////// +// AudioDevice // +///////////////////// + +// The audio hardware periodically calls the AudioDeviceRenderCallback `render()` method asking it to +// render/output the next render quantum of audio. It optionally will pass in local/live audio +// input when it calls `render()`. + +struct AudioDeviceIndex +{ + uint32_t index; + bool valid; +}; + +class AudioDevice +{ +public: + static std::vector MakeAudioDeviceList(); + static AudioDeviceIndex GetDefaultOutputAudioDeviceIndex() noexcept; + static AudioDeviceIndex GetDefaultInputAudioDeviceIndex() noexcept; + static AudioDevice * MakePlatformSpecificDevice(AudioDeviceRenderCallback &, + const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig); + + virtual ~AudioDevice() {} + virtual void start() = 0; + virtual void stop() = 0; + virtual bool isRunning() const = 0; + virtual void backendReinitialize() {} +}; + +} // lab + +#endif // lab_audiodevice_h diff --git a/sources/LabSound/include/LabSound/core/AudioHardwareDeviceNode.h b/sources/LabSound/include/LabSound/core/AudioHardwareDeviceNode.h new file mode 100644 index 00000000..90937cb3 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioHardwareDeviceNode.h @@ -0,0 +1,66 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef audio_hardware_io_node_hpp +#define audio_hardware_io_node_hpp + +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/AudioNode.h" + +namespace lab +{ + +class AudioBus; +class AudioContext; +class AudioHardwareInput; +struct AudioSourceProvider; + +class AudioHardwareDeviceNode : public AudioNode, public AudioDeviceRenderCallback +{ +protected: + // AudioNode interface + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + AudioContext * m_context; + + // Platform specific implementation + std::unique_ptr m_platformAudioDevice; + AudioHardwareInput * m_audioHardwareInput{nullptr}; + SamplingInfo last_info; + + const AudioStreamConfig outConfig; + const AudioStreamConfig inConfig; + +public: + AudioHardwareDeviceNode(AudioContext & context, + const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig); + virtual ~AudioHardwareDeviceNode(); + + static const char* static_name() { return "AudioHardwareDevice"; } + virtual const char* name() const override { return static_name(); } + + // AudioNode interface + virtual void process(ContextRenderLock &, int bufferSize) override {} // AudioHardwareDeviceNode is pulled by hardware so this is never called + virtual void reset(ContextRenderLock &) override; + virtual void initialize() override; + virtual void uninitialize() override; + + virtual void backendReinitialize(); + + // AudioDeviceRenderCallback interface + virtual void render(AudioBus * src, AudioBus * dst, int frames, const SamplingInfo & info) override; + virtual void start() override; + virtual void stop() override; + virtual bool isRunning() const override; + virtual const SamplingInfo & getSamplingInfo() const override; + virtual const AudioStreamConfig & getOutputConfig() const override; + virtual const AudioStreamConfig & getInputConfig() const override; + + AudioSourceProvider * AudioHardwareInputProvider(); +}; + +} // namespace lab + +#endif // end audio_hardware_io_node_hpp diff --git a/sources/LabSound/include/LabSound/core/AudioHardwareInputNode.h b/sources/LabSound/include/LabSound/core/AudioHardwareInputNode.h new file mode 100644 index 00000000..52510705 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioHardwareInputNode.h @@ -0,0 +1,39 @@ +// License: BSD 2 Clause +// Copyright (C) 2012, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef audio_hardware_input_node +#define audio_hardware_input_node + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioSourceProvider.h" + +namespace lab +{ +class AudioContext; + +class AudioHardwareInputNode : public AudioNode +{ + // As an audio source, we will never propagate silence. + virtual bool propagatesSilence(ContextRenderLock & r) const override { return false; } + AudioSourceProvider * m_audioSourceProvider; + int m_sourceNumberOfChannels{0}; + +public: + AudioHardwareInputNode(AudioContext & ac, AudioSourceProvider * provider_from_context); + virtual ~AudioHardwareInputNode(); + + static const char* static_name() { return "AudioHardwareDevice"; } + virtual const char* name() const override { return static_name(); } + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + // AudioNode interface + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; +}; + +} // namespace lab + +#endif diff --git a/sources/LabSound/include/LabSound/core/AudioListener.h b/sources/LabSound/include/LabSound/core/AudioListener.h new file mode 100644 index 00000000..379e2ee2 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioListener.h @@ -0,0 +1,84 @@ +// License: BSD 2 Clause +// Copyright (C) 2018, The LabSound Authors. All rights reserved. + +#ifndef AudioListener_h +#define AudioListener_h + +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/FloatPoint3D.h" +#include + +namespace lab +{ +class AudioParam; + +// AudioListener maintains the state of the listener in the audio scene as defined in the OpenAL specification. +class AudioListener +{ + std::shared_ptr m_dopplerFactor; + std::shared_ptr m_speedOfSound; + std::shared_ptr m_forwardX; + std::shared_ptr m_forwardY; + std::shared_ptr m_forwardZ; + std::shared_ptr m_upX; + std::shared_ptr m_upY; + std::shared_ptr m_upZ; + std::shared_ptr m_velocityX; + std::shared_ptr m_velocityY; + std::shared_ptr m_velocityZ; + std::shared_ptr m_positionX; + std::shared_ptr m_positionY; + std::shared_ptr m_positionZ; + +public: + AudioListener(); + ~AudioListener() = default; + + // Position + void setPosition(float x, float y, float z) { setPosition({x, y, z}); } + void setPosition(const FloatPoint3D & position); + + std::shared_ptr positionX() const { return m_positionX; } + std::shared_ptr positionY() const { return m_positionY; } + std::shared_ptr positionZ() const { return m_positionZ; } + + // Orientation + void setOrientation(float x, float y, float z, float upX, float upY, float upZ) + { + setForward(FloatPoint3D(x, y, z)); + setUpVector(FloatPoint3D(upX, upY, upZ)); + } + + // Forward represents the horizontal position of the listener's forward + // direction in the same cartesian coordinate sytem as the position + // values. The forward and up values are linearly independent of each other. + void setForward(const FloatPoint3D & fwd); + std::shared_ptr forwardX() const { return m_forwardX; } + std::shared_ptr forwardY() const { return m_forwardY; } + std::shared_ptr forwardZ() const { return m_forwardZ; } + + // Up-vector + void setUpVector(const FloatPoint3D & upVector); + std::shared_ptr upX() const { return m_upX; } + std::shared_ptr upY() const { return m_upY; } + std::shared_ptr upZ() const { return m_upZ; } + + // Velocity + void setVelocity(float x, float y, float z) { setVelocity(FloatPoint3D(x, y, z)); } + void setVelocity(const FloatPoint3D & velocity); + std::shared_ptr velocityX() const { return m_velocityX; } + std::shared_ptr velocityY() const { return m_velocityY; } + std::shared_ptr velocityZ() const { return m_velocityZ; } + + // Doppler factor + void setDopplerFactor(float dopplerFactor) { m_dopplerFactor->setValue(dopplerFactor); } + std::shared_ptr dopplerFactor() const { return m_dopplerFactor; } + + // Speed of sound + void setSpeedOfSound(float speedOfSound) { m_speedOfSound->setValue(speedOfSound); } + std::shared_ptr speedOfSound() const { return m_speedOfSound; } +}; + +} // lab + +#endif // AudioListener_h diff --git a/sources/LabSound/include/LabSound/core/AudioNode.h b/sources/LabSound/include/LabSound/core/AudioNode.h new file mode 100644 index 00000000..efd3a3a6 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioNode.h @@ -0,0 +1,268 @@ + +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#pragma once +#ifndef AudioNode_h +#define AudioNode_h + +#include "LabSound/core/Mixing.h" +#include "LabSound/core/Profiler.h" + +#include +#include +#include +#include + +namespace lab +{ + +// clang-format off +enum PanningMode +{ + PANNING_NONE = 0, + EQUALPOWER = 1, + HRTF = 2, + _PanningModeCount +}; + +enum FilterType +{ + FILTER_NONE = 0, + LOWPASS = 1, + HIGHPASS = 2, + BANDPASS = 3, + LOWSHELF = 4, + HIGHSHELF = 5, + PEAKING = 6, + NOTCH = 7, + ALLPASS = 8, + _FilterTypeCount +}; + +enum OscillatorType +{ + OSCILLATOR_NONE = 0, + SINE = 1, + FAST_SINE = 2, + SQUARE = 3, + SAWTOOTH = 4, + TRIANGLE = 5, + CUSTOM = 6, + _OscillatorTypeCount +}; + +enum class SchedulingState : int +{ + UNSCHEDULED = 0, // Initial playback state. Created, but not yet scheduled + SCHEDULED, // Scheduled to play (via noteOn() or noteGrainOn()), but not yet playing + FADE_IN, // First epoch, fade in, then play + PLAYING, // Generating sound + STOPPING, // Transitioning to finished + RESETTING, // Node is resetting to initial, unscheduled state + FINISHING, // Playing has finished + FINISHED // Node has finished +}; +const char* schedulingStateName(SchedulingState); +// clang-format on + +class AudioContext; +class AudioNodeInput; +class AudioNodeOutput; +class AudioParam; +class AudioSetting; +class ContextGraphLock; +class ContextRenderLock; + +class AudioNodeScheduler +{ +public: + explicit AudioNodeScheduler() = delete; + explicit AudioNodeScheduler(float sampleRate); + ~AudioNodeScheduler() = default; + + // Scheduling. + void start(double when); + void stop(double when); + void finish(ContextRenderLock&); // Called when there is no more sound to play or the noteOff/stop() time has been reached. + void reset(); + + SchedulingState playbackState() const { return _playbackState; } + bool hasFinished() const { return _playbackState == SchedulingState::FINISHED; } + + bool update(ContextRenderLock&, int epoch_length); + + SchedulingState _playbackState = SchedulingState::UNSCHEDULED; + + // epoch is a long count at sample rate; 136 years at 48kHz + // For use in an interstellar sound installation or radio frequency signal processing, + // please consider upgrading these to uint64_t or write some rollover logic. + + uint64_t _epoch = 0; // the epoch rendered currently in the busses + uint64_t _epochLength = 0; // number of frames in current epoch + + uint64_t _startWhen = std::numeric_limits::max(); // requested start in epochal coordinate system + uint64_t _stopWhen = std::numeric_limits::max(); // requested end in epochal coordinate system + + int _renderOffset = 0; // where rendering starts in the current frame + int _renderLength = 0; // number of rendered frames in the current frame + + float _sampleRate = 1; + + std::function _onEnded; + + std::function _onStart; +}; + + +// An AudioNode is the basic building block for handling audio within an AudioContext. +// It may be an audio source, an intermediate processing module, or an audio destination. +// Each AudioNode can have inputs and/or outputs. +// An AudioHardwareDeviceNode has one input and no outputs and represents the final destination to the audio hardware. +// Most processing nodes such as filters will have one input and one output, although multiple inputs and outputs are possible. +class AudioNode +{ +public: + enum : int + { + ProcessingSizeInFrames = 128 + }; + + AudioNode() = delete; + virtual ~AudioNode(); + + explicit AudioNode(AudioContext &); + + //-------------------------------------------------- + // required interface + // + virtual const char* name() const = 0; + + // The AudioNodeInput(s) (if any) will already have their input data available when process() is called. + // Subclasses will take this input data and put the results in the AudioBus(s) of its AudioNodeOutput(s) (if any). + // Called from context's audio thread. + virtual void process(ContextRenderLock &, int bufferSize) = 0; + + // Resets DSP processing state (clears delay lines, filter memory, etc.) + // Called from context's audio thread. + virtual void reset(ContextRenderLock &) = 0; + + // tailTime() is the length of time (not counting latency time) where non-zero output may occur after continuous silent input. + virtual double tailTime(ContextRenderLock & r) const = 0; + + // latencyTime() is the length of time it takes for non-zero output to appear after non-zero input is provided. This only applies to + // processing delay which is an artifact of the processing algorithm chosen and is *not* part of the intrinsic desired effect. For + // example, a "delay" effect is expected to delay the signal, and thus would not be considered latency. + virtual double latencyTime(ContextRenderLock & r) const = 0; + + //-------------------------------------------------- + // required interface + // + // If the final node class has ScheduledNode in its class hierarchy, this will return true. + // This is to save the cost of a dynamic_cast when scheduling nodes. + virtual bool isScheduledNode() const { return false; } + + // No significant resources should be allocated until initialize() is called. + // Processing may not occur until a node is initialized. + virtual void initialize(); + virtual void uninitialize(); + bool isInitialized() const { return m_isInitialized; } + + // These locked versions can be called at run time. + void addInput(ContextGraphLock&, std::unique_ptr input); + void addOutput(ContextGraphLock&, std::unique_ptr output); + + int numberOfInputs() const { return static_cast(m_inputs.size()); } + int numberOfOutputs() const { return static_cast(m_outputs.size()); } + + std::shared_ptr input(int index); + std::shared_ptr output(int index); + std::shared_ptr output(char const* const str); + + // processIfNecessary() is called by our output(s) when the rendering graph needs this AudioNode to process. + // This method ensures that the AudioNode will only process once per rendering time quantum even if it's called repeatedly. + // This handles the case of "fanout" where an output is connected to multiple AudioNode inputs. + // Called from context's audio thread. + void processIfNecessary(ContextRenderLock & r, int bufferSize); + + // Called when a new connection has been made to one of our inputs or the connection number of channels has changed. + // This potentially gives us enough information to perform a lazy initialization or, if necessary, a re-initialization. + // Called from main thread. + virtual void checkNumberOfChannelsForInput(ContextRenderLock &, AudioNodeInput *); + + virtual void conformChannelCounts(); + + // propagatesSilence() should return true if the node will generate silent output when given silent input. By default, AudioNode + // will take tailTime() and latencyTime() into account when determining whether the node will propagate silence. + virtual bool propagatesSilence(ContextRenderLock & r) const; + + bool inputsAreSilent(ContextRenderLock &); + void silenceOutputs(ContextRenderLock &); + void unsilenceOutputs(ContextRenderLock &); + + int channelCount(); + void setChannelCount(ContextGraphLock & g, int channelCount); + + ChannelCountMode channelCountMode() const { return m_channelCountMode; } + void setChannelCountMode(ContextGraphLock & g, ChannelCountMode mode); + + ChannelInterpretation channelInterpretation() const { return m_channelInterpretation; } + void setChannelInterpretation(ChannelInterpretation interpretation) { m_channelInterpretation = interpretation; } + + // returns a vector of parameter names + std::vector paramNames() const; + std::vector paramShortNames() const; + + // returns a vector of setting names + std::vector settingNames() const; + std::vector settingShortNames() const; + + std::shared_ptr param(char const * const str); + std::shared_ptr setting(char const * const str); + + std::vector> params() const { return m_params; } + std::vector> settings() const { return m_settings; } + + AudioNodeScheduler _scheduler; + + ProfileSample graphTime; // how much time the node spend pulling inputs + ProfileSample totalTime; // total time spent by the node. total-graph is the self time. + +protected: + // Inputs and outputs must be created before the AudioNode is initialized. + // It is only legal to call this during a constructor. + void addInput(std::unique_ptr input); + void addOutput(std::unique_ptr output); + + // Called by processIfNecessary() to cause all parts of the rendering graph connected to us to process. + // Each rendering quantum, the audio data for each of the AudioNode's inputs will be available after this method is called. + // Called from context's audio thread. + void pullInputs(ContextRenderLock &, int bufferSize); + + friend class AudioContext; + + bool m_isInitialized {false}; + + std::vector> m_inputs; + std::vector> m_outputs; + + std::vector> m_params; + std::vector> m_settings; + + int m_channelCount{ 0 }; + + ChannelCountMode m_channelCountMode{ ChannelCountMode::Max }; + ChannelInterpretation m_channelInterpretation{ ChannelInterpretation::Speakers }; + + // starts an immediate ramp to zero in preparation for disconnection + void scheduleDisconnect() { _scheduler.stop(0); } + + // returns true if the disconnection ramp has reached zero. + // This is intended to allow the AudioContext to manage popping artifacts + bool disconnectionReady() const { return _scheduler._playbackState != SchedulingState::PLAYING; } +}; + +} // namespace lab + +#endif // AudioNode_h + diff --git a/sources/LabSound/include/LabSound/core/AudioNodeInput.h b/sources/LabSound/include/LabSound/core/AudioNodeInput.h new file mode 100644 index 00000000..d871d7c6 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioNodeInput.h @@ -0,0 +1,60 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioNodeInput_h +#define AudioNodeInput_h + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioSummingJunction.h" + +#include + +namespace lab +{ + +class AudioNode; +class AudioNodeOutput; +class AudioBus; + +// An AudioNodeInput represents an input to an AudioNode and can be connected from one or more AudioNodeOutputs. +// In the case of multiple connections, the input will act as a unity-gain summing junction, mixing all the outputs. +// The number of channels of the input's bus is the maximum of the number of channels of all its connections. +class AudioNodeInput : public AudioSummingJunction +{ + AudioNode * m_destinationNode; + std::unique_ptr m_internalSummingBus; + +public: + explicit AudioNodeInput(AudioNode * audioNode, int processingSizeInFrames = AudioNode::ProcessingSizeInFrames); + virtual ~AudioNodeInput(); + + // Can be called from any thread. + AudioNode * destinationNode() const { return m_destinationNode; } + + // Must be called with the context's graph lock. Static because a shared pointer to this is required + static void connect(ContextGraphLock &, std::shared_ptr fromInput, std::shared_ptr toOutput); + static void disconnect(ContextGraphLock &, std::shared_ptr fromInput, std::shared_ptr toOutput); + static void disconnectAll(ContextGraphLock&, std::shared_ptr fromInput); + + // pull() processes all of the AudioNodes connected to this NodeInput. + // In the case of multiple connections, the result is summed onto the internal summing bus. + // In the single connection case, it allows in-place processing where possible using inPlaceBus. + // It returns the bus which it rendered into, returning inPlaceBus if in-place processing was performed. + AudioBus * pull(ContextRenderLock &, AudioBus * inPlaceBus, int bufferSize); + + // bus() contains the rendered audio after pull() has been called for each time quantum. + AudioBus * bus(ContextRenderLock &); + + // updateInternalBus() updates m_internalSummingBus appropriately for the number of channels. + // This must be called when we own the context's graph lock in the audio thread at the very start or end of the render quantum. + void updateInternalBus(ContextRenderLock &); + + // The number of channels of the connection with the largest number of channels. + // Only valid during render quantum because it is dependent on the active bus + int numberOfChannels(ContextRenderLock &) const; +}; + +} // namespace lab + +#endif // AudioNodeInput_h diff --git a/sources/LabSound/include/LabSound/core/AudioNodeOutput.h b/sources/LabSound/include/LabSound/core/AudioNodeOutput.h new file mode 100644 index 00000000..bdf5eedf --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioNodeOutput.h @@ -0,0 +1,123 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioNodeOutput_h +#define AudioNodeOutput_h + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" + +#include + +namespace lab +{ + +class AudioContext; +class AudioNodeInput; +class AudioBus; + +// AudioNodeOutput represents a single output for an AudioNode. +// It may be connected to one or more AudioNodeInputs. +class AudioNodeOutput +{ +public: + // It's OK to pass 0 for numberOfChannels in which case setNumberOfChannels() must be called later on. + AudioNodeOutput(AudioNode * audioNode, int numberOfChannels, int processingSizeInFrames = AudioNode::ProcessingSizeInFrames); + AudioNodeOutput(AudioNode * audioNode, char const*const name, int numberOfChannels, int processingSizeInFrames = AudioNode::ProcessingSizeInFrames); + virtual ~AudioNodeOutput(); + + // Can be called from any thread. + AudioNode * sourceNode() const { return m_sourceNode; } + + // Causes our AudioNode to process if it hasn't already for this render quantum. + // It returns the bus containing the processed audio for this output, returning inPlaceBus if in-place processing was possible. + // Called from context's audio thread. + AudioBus * pull(ContextRenderLock &, AudioBus * inPlaceBus, int bufferSize); + + // bus() will contain the rendered audio after pull() is called for each rendering time quantum. + AudioBus * bus(ContextRenderLock &) const; + + // renderingFanOutCount() is the number of AudioNodeInputs that we're connected to during rendering. + // Unlike fanOutCount() it will not change during the course of a render quantum. + int renderingFanOutCount() const; + + // renderingParamFanOutCount() is the number of AudioParams that we're connected to during rendering. + // Unlike paramFanOutCount() it will not change during the course of a render quantum. + int renderingParamFanOutCount() const; + + void setNumberOfChannels(ContextRenderLock &, int); + int numberOfChannels() const { return m_numberOfChannels; } + bool isChannelCountKnown() const { return numberOfChannels() > 0; } + + bool isConnected() { return fanOutCount() > 0 || paramFanOutCount() > 0; } + + // updateRenderingState() is called in the audio thread at the start or end of the render quantum to handle any recent changes to the graph state. + void updateRenderingState(ContextRenderLock &); + + const std::string& name() const { return m_name; } + + // Must be called within the context's graph lock. + static void disconnectAll(ContextGraphLock &, std::shared_ptr); + static void disconnectAllInputs(ContextGraphLock &, std::shared_ptr); + static void disconnectAllParams(ContextGraphLock &, std::shared_ptr); + +private: + AudioNode * m_sourceNode; + + friend class AudioNodeInput; + friend class AudioParam; + + // These are called from AudioNodeInput. + // They must be called with the context's graph lock. + void addInput(ContextGraphLock & g, std::shared_ptr); + void removeInput(ContextGraphLock & g, std::shared_ptr); + void addParam(ContextGraphLock & g, std::shared_ptr); + void removeParam(ContextGraphLock & g, std::shared_ptr); + + // fanOutCount() is the number of AudioNodeInputs that we're connected to. + // This method should not be called in audio thread rendering code, instead renderingFanOutCount() should be used. + // It must be called with the context's graph lock. + int fanOutCount(); + + // Similar to fanOutCount(), paramFanOutCount() is the number of AudioParams that we're connected to. + // This method should not be called in audio thread rendering code, instead renderingParamFanOutCount() should be used. + // It must be called with the context's graph lock. + int paramFanOutCount(); + + // updateInternalBus() updates m_internalBus appropriately for the number of channels. + // It is called in the constructor or in the audio thread with the context's graph lock. + void updateInternalBus(); + + // Announce to any nodes we're connected to that we changed our channel count for its input. + void propagateChannelCount(ContextRenderLock &); + + std::string m_name; + + // m_numberOfChannels will only be changed in the audio thread. + // The main thread sets m_desiredNumberOfChannels which will later get picked up in the audio thread + int m_numberOfChannels; + int m_desiredNumberOfChannels; + + // m_internalBus and m_inPlaceBus must only be changed in the audio thread with the context's render lock (or constructor). + std::unique_ptr m_internalBus; + + // Temporary, during render quantum + // @tofix - Should this be some kind of shared pointer? It is only valid for a single render quantum, so probably no. + AudioBus * m_inPlaceBus; + + std::vector> m_inputs; + + // For the purposes of rendering, keeps track of the number of inputs and AudioParams we're connected to. + // These value should only be changed at the very start or end of the rendering quantum. + int m_renderingFanOutCount; + int m_renderingParamFanOutCount; + + // connected params + std::set> m_params; + typedef std::set::iterator ParamsIterator; +}; + +} // namespace lab + +#endif // AudioNodeOutput_h diff --git a/sources/LabSound/include/LabSound/core/AudioParam.h b/sources/LabSound/include/LabSound/core/AudioParam.h new file mode 100644 index 00000000..3c4c6676 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioParam.h @@ -0,0 +1,104 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioParam_h +#define AudioParam_h + +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioParamTimeline.h" +#include "LabSound/core/AudioSummingJunction.h" + +#include +#include + +namespace lab +{ + +class AudioNodeOutput; + +class AudioParam : public AudioSummingJunction +{ +public: + static const double DefaultSmoothingConstant; + static const double SnapThreshold; + + AudioParam(const std::string & name, const std::string & short_name, double defaultValue, double minValue, double maxValue, unsigned units = 0); + virtual ~AudioParam(); + + // Intrinsic value. + float value() const; + void setValue(float); + + // Final value for k-rate parameters, otherwise use calculateSampleAccurateValues() for a-rate. + float finalValue(ContextRenderLock &); + + std::string name() const { return m_name; } + std::string shortName() const { return m_shortName; } + + float minValue() const { return static_cast(m_minValue); } + float maxValue() const { return static_cast(m_maxValue); } + float defaultValue() const { return static_cast(m_defaultValue); } + unsigned units() const { return m_units; } + + // Value smoothing: + + // When a new value is set with setValue(), in our internal use of the parameter we don't immediately jump to it. + // Instead we smoothly approach this value to avoid glitching. + float smoothedValue(); + + // Smoothly exponentially approaches to (de-zippers) the desired value. + // Returns true if smoothed value has already snapped exactly to value. + bool smooth(ContextRenderLock &); + + void resetSmoothedValue() { m_smoothedValue = m_value; } + void setSmoothingConstant(double k) { m_smoothingConstant = k; } + + // Parameter automation. + // Time is a double representing the time (in seconds) after the AudioContext was first created that the change in value will happen + // Returns a reference for chaining calls. + AudioParam & setValueAtTime(float value, float time) { m_timeline.setValueAtTime(value, time); return *this; } + AudioParam & linearRampToValueAtTime(float value, float time) { m_timeline.linearRampToValueAtTime(value, time); return *this; } + AudioParam & exponentialRampToValueAtTime(float value, float time) { m_timeline.exponentialRampToValueAtTime(value, time); return *this; } + AudioParam & setTargetAtTime(float target, float time, float timeConstant) { m_timeline.setTargetAtTime(target, time, timeConstant); return *this; } + AudioParam & setValueCurveAtTime(std::vector curve, float time, float duration) { m_timeline.setValueCurveAtTime(curve, time, duration); return *this; } + AudioParam & cancelScheduledValues(float startTime) { m_timeline.cancelScheduledValues(startTime); return *this; } + + bool hasSampleAccurateValues() { return m_timeline.hasValues() || numberOfConnections(); } + + // Calculates numberOfValues parameter values starting at the context's current time. + // Must be called in the context's render thread. + void calculateSampleAccurateValues(ContextRenderLock &, float * values, int numberOfValues); + + AudioBus const* const bus() const; + + // Connect an audio-rate signal to control this parameter. + static void connect(ContextGraphLock & g, std::shared_ptr, std::shared_ptr); + static void disconnect(ContextGraphLock & g, std::shared_ptr, std::shared_ptr); + static void disconnectAll(ContextGraphLock & g, std::shared_ptr); + +private: + // sampleAccurate corresponds to a-rate (audio rate) vs. k-rate in the Web Audio specification. + void calculateFinalValues(ContextRenderLock & r, float * values, int numberOfValues, bool sampleAccurate); + void calculateTimelineValues(ContextRenderLock & r, float * values, int numberOfValues); + + std::string m_name; + std::string m_shortName; + double m_value; + double m_defaultValue; + double m_minValue; + double m_maxValue; + unsigned m_units; + + // Smoothing (de-zippering) + double m_smoothedValue; + double m_smoothingConstant; + + AudioParamTimeline m_timeline; + + std::unique_ptr m_internalSummingBus; +}; + +} // namespace lab + +#endif // AudioParam_h diff --git a/sources/LabSound/include/LabSound/core/AudioParamTimeline.h b/sources/LabSound/include/LabSound/core/AudioParamTimeline.h new file mode 100644 index 00000000..f756771b --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioParamTimeline.h @@ -0,0 +1,117 @@ +// License: BSD 3 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioParamTimeline_h +#define AudioParamTimeline_h + +#include "LabSound/core/AudioContext.h" +#include +#include + +namespace lab +{ + +class AudioParamTimeline +{ + +public: + AudioParamTimeline() {} + + void setValueAtTime(float value, float time); + void linearRampToValueAtTime(float value, float time); + void exponentialRampToValueAtTime(float value, float time); + void setTargetAtTime(float target, float time, float timeConstant); + void setValueCurveAtTime(std::vector & curve, float time, float duration); + void cancelScheduledValues(float startTime); + + // hasValue is set to true if a valid timeline value is returned. + // otherwise defaultValue is returned. + float valueForContextTime(ContextRenderLock &, float defaultValue, bool & hasValue); + + // Given the time range, calculates parameter values into the values buffer + // and returns the last parameter value calculated for "values" or the defaultValue if none were calculated. + // controlRate is the rate (number per second) at which parameter values will be calculated. + // It should equal sampleRate for sample-accurate parameter changes, and otherwise will usually match + // the render quantum size such that the parameter value changes once per render quantum. + float valuesForTimeRange(double startTime, double endTime, float defaultValue, + float * values, size_t numberOfValues, double sampleRate, double controlRate); + + bool hasValues() { return m_events.size() > 0; } + +private: + + // @tofix - move to implementation file to hide from public API + + class ParamEvent + { + + public: + enum Type + { + SetValue, + LinearRampToValue, + ExponentialRampToValue, + SetTarget, + SetValueCurve, + LastType + }; + + ParamEvent(Type type, float value, float time, float timeConstant, float duration, std::vector curve) + : m_type(type) + , m_value(value) + , m_time(time) + , m_timeConstant(timeConstant) + , m_duration(duration) + , m_curve(curve) + { + } + + ParamEvent(const ParamEvent & rhs) + : m_type(rhs.m_type) + , m_value(rhs.m_value) + , m_time(rhs.m_time) + , m_timeConstant(rhs.m_timeConstant) + , m_duration(rhs.m_duration) + , m_curve(rhs.m_curve) + { + } + + const ParamEvent & operator=(const ParamEvent & rhs) + { + + m_type = rhs.m_type; + m_value = rhs.m_value; + m_time = rhs.m_time; + m_timeConstant = rhs.m_timeConstant; + m_duration = rhs.m_duration; + m_curve = rhs.m_curve; + return *this; + } + + unsigned type() const { return m_type; } + float value() const { return m_value; } + float time() const { return m_time; } + float timeConstant() const { return m_timeConstant; } + float duration() const { return m_duration; } + std::vector & curve() { return m_curve; } + + private: + unsigned m_type; + float m_value; + float m_time; + float m_timeConstant; + float m_duration; + std::vector m_curve; + }; + + void insertEvent(const ParamEvent &); + float valuesForTimeRangeImpl(double startTime, double endTime, float defaultValue, + float * values, size_t numberOfValues, double sampleRate, double controlRate); + + std::vector m_events; +}; + +} // namespace lab + +#endif // AudioParamTimeline_h diff --git a/sources/LabSound/include/LabSound/core/AudioProcessor.h b/sources/LabSound/include/LabSound/core/AudioProcessor.h new file mode 100644 index 00000000..fec452f5 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioProcessor.h @@ -0,0 +1,48 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioProcessor_h +#define AudioProcessor_h + +#include + +namespace lab +{ + +class AudioBus; +class ContextRenderLock; + +// AudioProcessor is an abstract base class representing an audio signal processing object with a single input and a single output, +// where the number of input channels equals the number of output channels. It can be used as one part of a complex DSP algorithm, +// or as the processor for a basic (one input - one output) AudioNode. +class AudioProcessor +{ + +public: + AudioProcessor() + { + } + virtual ~AudioProcessor() {} + + // Full initialization can be done here instead of in the constructor. + virtual void initialize() = 0; + virtual void uninitialize() = 0; + + // Processes the source to destination bus. The number of channels must match in source and destination. + virtual void process(ContextRenderLock &, const AudioBus * source, AudioBus * destination, int bufferSize) = 0; + + // Resets filter state + virtual void reset() = 0; + bool isInitialized() const { return m_initialized; } + + virtual double tailTime(ContextRenderLock & r) const = 0; + virtual double latencyTime(ContextRenderLock & r) const = 0; + +protected: + bool m_initialized = false; +}; + +} // namespace lab + +#endif // AudioProcessor_h diff --git a/sources/LabSound/include/LabSound/core/AudioScheduledSourceNode.h b/sources/LabSound/include/LabSound/core/AudioScheduledSourceNode.h new file mode 100644 index 00000000..8ff46220 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioScheduledSourceNode.h @@ -0,0 +1,49 @@ +// License: BSD 3 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioScheduledSourceNode_h +#define AudioScheduledSourceNode_h + +#include "LabSound/core/AudioNode.h" + +namespace lab +{ + +/* + AudioScheduledSourceNode adds a scheduling interface to + AudioNode. The scheduler is in the base class, but only nodes + derived from AudioScheduledSourceNode can be scheduled. + */ + +class AudioScheduledSourceNode : public AudioNode +{ +public: + AudioScheduledSourceNode() = delete; + + explicit AudioScheduledSourceNode(AudioContext & ac) : AudioNode(ac) { } + virtual ~AudioScheduledSourceNode() = default; + + virtual bool isScheduledNode() const override { return true; } + + bool isPlayingOrScheduled() const + { + return _scheduler._playbackState >= SchedulingState::SCHEDULED && + _scheduler._playbackState <= SchedulingState::STOPPING; + } + + // Start time, measured as seconds from the current epochal time + void start(float when) { _scheduler.start(when); } + + uint64_t startWhen() const { return _scheduler._startWhen; } + + // Stop time, measured as seconds from the current epochal time + void stop(float when) { _scheduler.stop(when); } + + SchedulingState playbackState() const { return _scheduler._playbackState; } + bool hasFinished() const { return _scheduler.hasFinished(); } + void setOnEnded(std::function fn) { _scheduler._onEnded = fn; } +}; + +} // namespace lab + +#endif // AudioScheduledSourceNode_h diff --git a/sources/LabSound/include/LabSound/core/AudioSetting.h b/sources/LabSound/include/LabSound/core/AudioSetting.h new file mode 100644 index 00000000..b11a0898 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioSetting.h @@ -0,0 +1,158 @@ + +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#ifndef AudioSetting_h +#define AudioSetting_h + +#include "LabSound/core/AudioBus.h" + +#include +#include +#include +#include +#include + +namespace lab +{ +// value defaults to zero, assumed set as integer. +// floatAssigned() is provided so that a user interface or RPC binding can configure +// automatically for float or unsigned integer values. +// +// a value changed callback is provided so that if tools set values, they can +// be responded to. +class AudioSetting +{ +public: + enum class Type + { + None, + Bool, + Integer, + Float, + Enumeration, + Bus + }; + +private: + std::string _name; + std::string _shortName; + + Type _type; + float _valf = 0; + uint32_t _vali = 0; + bool _valb = false; + std::shared_ptr _valBus; + + std::function _valueChanged; + char const * const * _enums = nullptr; + +public: + explicit AudioSetting(const std::string & n, const std::string & sn, Type t) + : _name(n) + , _shortName(sn) + , _type(t) + { + } + + explicit AudioSetting(char const * const n, char const * const sn, Type t) + : _name(n) + , _shortName(sn) + , _type(t) + { + } + + explicit AudioSetting(const std::string & n, const std::string & sn, char const * const * enums) + : _name(n) + , _shortName(sn) + , _type(Type::Enumeration) + , _enums(enums) + { + } + + explicit AudioSetting(char const * const n, char const * const sn, char const * const * enums) + : _name(n) + , _shortName(sn) + , _type(Type::Enumeration) + , _enums(enums) + { + } + + std::string name() const { return _name; } + std::string shortName() const { return _shortName; } + Type type() const { return _type; } + + char const * const * enums() const { return _enums; } + int enumFromName(char const* const e) + { + if (!_enums || !e) + return -1; + + int enum_idx = 0; + for (char const* const* names_p = _enums; *names_p != nullptr; ++names_p, ++enum_idx) + { + if (!strcmp(e, *names_p)) + return enum_idx; + } + return -1; + } + + bool valueBool() const { return _valb; } + float valueFloat() const { return _valf; } + uint32_t valueUint32() const { return _vali; } + std::shared_ptr valueBus() const { return _valBus; } + + void setBool(bool v, bool notify = true) + { + if (v == _valb) return; + _valb = v; + if (notify && _valueChanged) _valueChanged(); + } + + void setFloat(float v, bool notify = true) + { + if (v == _valf) return; + _valf = v; + if (notify && _valueChanged) _valueChanged(); + } + + void setUint32(uint32_t v, bool notify = true) + { + if (v == _vali) return; + _vali = v; + if (notify && _valueChanged) _valueChanged(); + } + + void setEnumeration(int v, bool notify = true) + { + if (v == _vali) return; + if (v < 0) return; + _vali = static_cast(v); + if (notify && _valueChanged) _valueChanged(); + } + + void setEnumeration(char const*const v, bool notify = true) + { + if (v) setEnumeration(enumFromName(v), notify); + } + + void setString(char const*const, bool notify = true) + { + if (notify && _valueChanged) _valueChanged(); + } + + // nb: Invoking setBus will create and cache a duplicate of the supplied bus. + void setBus(const AudioBus * incoming, bool notify = true) + { + std::unique_ptr new_bus = AudioBus::createByCloning(incoming); + _valBus = std::move(new_bus); + if (notify && _valueChanged) + _valueChanged(); + } + + void setValueChanged(std::function fn) { _valueChanged = fn; } +}; + +} // namespace lab + +#endif diff --git a/sources/LabSound/include/LabSound/core/AudioSourceProvider.h b/sources/LabSound/include/LabSound/core/AudioSourceProvider.h new file mode 100644 index 00000000..421deb2f --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioSourceProvider.h @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: BSD-3-Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioSourceProvider_h +#define AudioSourceProvider_h + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/core/AudioBus.h" + +namespace lab +{ +class AudioBus; + +///////////////////////////// +// AudioSourceProvider // +///////////////////////////// + +// Abstract base-class for a pull-model client. +// provideInput() gets called repeatedly to render time-slices of a continuous audio stream. +struct AudioSourceProvider +{ + virtual void provideInput(AudioBus * bus, int bufferSize) = 0; + virtual ~AudioSourceProvider() {} +}; + +//////////////////////////// +// AudioHardwareInput // +//////////////////////////// + +// AudioHardwareInput allows us to expose an AudioSourceProvider for local/live audio input. +// If there is local/live audio input, we call set() with the audio input data every render quantum. +// `set()` is called in ... which is one or two frames above the actual hardware io. +class AudioHardwareInput : public AudioSourceProvider +{ + AudioBus m_sourceBus; + +public: + AudioHardwareInput(int channelCount) + : m_sourceBus(channelCount, AudioNode::ProcessingSizeInFrames) + { + } + + virtual ~AudioHardwareInput() {} + + void set(AudioBus * bus) + { + if (bus) m_sourceBus.copyFrom(*bus); + } + + // Satisfy the AudioSourceProvider interface + virtual void provideInput(AudioBus * destinationBus, int bufferSize) + { + bool isGood = destinationBus && destinationBus->length() == bufferSize && m_sourceBus.length() == bufferSize; + //ASSERT(isGood); + if (isGood) destinationBus->copyFrom(m_sourceBus); + } +}; + +} // lab + +#endif // AudioSourceProvider_h diff --git a/sources/LabSound/include/LabSound/core/AudioSummingJunction.h b/sources/LabSound/include/LabSound/core/AudioSummingJunction.h new file mode 100644 index 00000000..fe5b93b2 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/AudioSummingJunction.h @@ -0,0 +1,78 @@ +// License: BSD 2 Clause +// Copyright (C) 2012, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioSummingJunction_h +#define AudioSummingJunction_h + +#include +#include + +namespace lab +{ + +class AudioContext; +class AudioNodeOutput; +class AudioBus; +class ContextGraphLock; +class ContextRenderLock; + +// An AudioSummingJunction represents a point where zero, one, or more AudioNodeOutputs connect. + +class AudioSummingJunction +{ + +public: + explicit AudioSummingJunction(); + virtual ~AudioSummingJunction(); + + // This must be called whenever we modify m_outputs. + void changedOutputs(ContextGraphLock &); + + // This copies m_outputs to m_renderingOutputs. See comments for these lists below. + void updateRenderingState(ContextRenderLock & r); + + // will count expired pointers + int numberOfConnections() const { return static_cast(m_connectedOutputs.size()); } + + // Rendering code accesses its version of the current connections here. + int numberOfRenderingConnections(ContextRenderLock &) const; + std::shared_ptr renderingOutput(ContextRenderLock &, int i) + { + return i < m_renderingOutputs.size() ? m_renderingOutputs[i].lock() : nullptr; + } + + const std::shared_ptr renderingOutput(ContextRenderLock &, int i) const + { + return i < m_renderingOutputs.size() ? m_renderingOutputs[i].lock() : nullptr; + } + + bool isConnected() const { return numberOfConnections() > 0; } + + void junctionConnectOutput(std::shared_ptr); + void junctionDisconnectOutput(std::shared_ptr); + void junctionDisconnectAllOutputs(); + void setDirty() { m_renderingStateNeedUpdating = true; } + + static void handleDirtyAudioSummingJunctions(ContextRenderLock & r); + + bool isConnected(std::shared_ptr o) const; + +protected: + // m_outputs contains the AudioNodeOutputs representing current connections. + // The rendering code should never use this directly, but instead uses m_renderingOutputs. + std::vector> m_connectedOutputs; + + // m_renderingOutputs is a copy of m_connectedOutputs which will never be modified during the graph rendering on the audio thread. + // This is the list which is used by the rendering code. + // Whenever m_outputs is modified, the context is told so it can later update m_renderingOutputs from m_outputs at a safe time. + // Most of the time, m_renderingOutputs is identical to m_outputs. + std::vector> m_renderingOutputs; + + // m_renderingStateNeedUpdating indicates outputs were changed + bool m_renderingStateNeedUpdating; +}; + +} // namespace lab + +#endif // AudioSummingJunction_h diff --git a/sources/LabSound/include/LabSound/core/BiquadFilterNode.h b/sources/LabSound/include/LabSound/core/BiquadFilterNode.h new file mode 100644 index 00000000..ad2dda8b --- /dev/null +++ b/sources/LabSound/include/LabSound/core/BiquadFilterNode.h @@ -0,0 +1,43 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef BiquadFilterNode_h +#define BiquadFilterNode_h + +#include "LabSound/core/AudioBasicProcessorNode.h" + +namespace lab +{ + +class AudioParam; +class Biquad; + +class BiquadFilterNode : public AudioBasicProcessorNode +{ + class BiquadFilterNodeInternal; + BiquadFilterNodeInternal * biquad_impl; + +public: + BiquadFilterNode(AudioContext& ac); + virtual ~BiquadFilterNode(); + + static const char* static_name() { return "BiquadFilter"; } + virtual const char* name() const override { return static_name(); } + + FilterType type() const; + void setType(FilterType type); + + std::shared_ptr frequency(); + std::shared_ptr q(); + std::shared_ptr gain(); + std::shared_ptr detune(); + + // Get the magnitude and phase response of the filter at the given + // set of frequencies (in Hz). The phase response is in radians. + void getFrequencyResponse(ContextRenderLock &, const std::vector & frequencyHz, std::vector & magResponse, std::vector & phaseResponse); +}; + +} // namespace lab + +#endif // BiquadFilterNode_h diff --git a/sources/LabSound/include/LabSound/core/ChannelMergerNode.h b/sources/LabSound/include/LabSound/core/ChannelMergerNode.h new file mode 100644 index 00000000..fb008bf4 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/ChannelMergerNode.h @@ -0,0 +1,40 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef ChannelMergerNode_h +#define ChannelMergerNode_h + +#include "LabSound/core/AudioNode.h" + +namespace lab +{ + +class AudioContext; + +class ChannelMergerNode : public AudioNode +{ +public: + ChannelMergerNode(AudioContext& ac, int numberOfInputs = 1); + virtual ~ChannelMergerNode() = default; + + static const char* static_name(){ return "ChannelMerger"; } + virtual const char* name() const override { return static_name(); } + + void addInputs(int n); + void setOutputChannelCount(int n) { m_desiredNumberOfOutputChannels = n; } + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock&) override {} + +private: + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + int m_desiredNumberOfOutputChannels = 1; // default +}; + +} // namespace lab + +#endif // ChannelMergerNode_h diff --git a/sources/LabSound/include/LabSound/core/ChannelSplitterNode.h b/sources/LabSound/include/LabSound/core/ChannelSplitterNode.h new file mode 100644 index 00000000..b1335213 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/ChannelSplitterNode.h @@ -0,0 +1,38 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef ChannelSplitterNode_h +#define ChannelSplitterNode_h + +#include "LabSound/core/AudioNode.h" + +namespace lab +{ + +class AudioContext; + +class ChannelSplitterNode : public AudioNode +{ + +public: + ChannelSplitterNode(AudioContext& ac, int numberOfOutputs = 1); + virtual ~ChannelSplitterNode() = default; + + static const char* static_name() { return "ChannelSplitter"; } + virtual const char* name() const override { return static_name(); } + + void addOutputs(int numberOfOutputs); + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + +private: + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } +}; + +} // namespace lab + +#endif // ChannelSplitterNode_h diff --git a/sources/LabSound/include/LabSound/core/ConcurrentQueue.h b/sources/LabSound/include/LabSound/core/ConcurrentQueue.h new file mode 100644 index 00000000..e773d628 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/ConcurrentQueue.h @@ -0,0 +1,61 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#include +#include +#include + +namespace lab +{ + +template +class ConcurrentQueue +{ + std::queue the_queue; + mutable std::mutex the_mutex; + std::condition_variable the_condition_variable; + +public: + void push(Data const & data) + { + { + std::lock_guard lock(the_mutex); + the_queue.push(data); + } + the_condition_variable.notify_one(); + } + + bool empty() const + { + std::lock_guard lock(the_mutex); + return the_queue.empty(); + } + + bool try_pop(Data & popped_value) + { + std::lock_guard lock(the_mutex); + if (the_queue.empty()) + { + return false; + } + + popped_value = the_queue.front(); + the_queue.pop(); + return true; + } + + void wait_and_pop(Data & popped_value) + { + std::unique_lock lock(the_mutex); + while (the_queue.empty()) + { + the_condition_variable.wait(lock); + } + + popped_value = the_queue.front(); + the_queue.pop(); + } +}; +} diff --git a/sources/LabSound/include/LabSound/core/ConvolverNode.h b/sources/LabSound/include/LabSound/core/ConvolverNode.h new file mode 100644 index 00000000..b1528ff6 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/ConvolverNode.h @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef ConvolverNode_h +#define ConvolverNode_h + +#include "LabSound/core/AudioScheduledSourceNode.h" +#include "LabSound/core/AudioSetting.h" + +#include +#include + +namespace lab +{ + +class AudioBus; +class AudioSetting; +class Reverb; + +// private data for reverb computations +struct sp_data; +struct sp_conv; +struct sp_ftbl; + +class ConvolverNode final : public AudioScheduledSourceNode +{ +public: + ConvolverNode(AudioContext& ac); + virtual ~ConvolverNode(); + + static const char* static_name() { return "Convolver"; } + virtual const char* name() const override { return static_name(); } + + bool normalize() const; + void setNormalize(bool new_n); + + // set impulse will schedule the convolver to begin processing immediately + // The supplied bus is copied for use as an impulse response. + void setImpulse(std::shared_ptr bus); + std::shared_ptr getImpulse() const; + virtual void process(ContextRenderLock & r, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + +protected: + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + virtual bool propagatesSilence(ContextRenderLock & r) const override; + double now() const { return _now; } + + void _activateNewImpulse(); + + double _now = 0.0; + float _scale = 1.f; // normalization value + sp_data * _sp = nullptr; + + // Normalize the impulse response or not. Must default to true. + std::shared_ptr _normalize; + std::shared_ptr _impulseResponseClip; + + struct ReverbKernel + { + ReverbKernel() = default; + ReverbKernel(ReverbKernel && rh) noexcept; + ~ReverbKernel(); + sp_conv * conv = nullptr; + sp_ftbl * ft = nullptr; + }; + std::vector _kernels; // one per impulse response channel + std::vector _pending_kernels; // new kernels when an impulse has been computed + bool _swap_ready; + std::mutex _kernel_mutex; +}; + +} // namespace lab + +#endif // ConvolverNode_h diff --git a/sources/LabSound/include/LabSound/core/DelayNode.h b/sources/LabSound/include/LabSound/core/DelayNode.h new file mode 100644 index 00000000..146817e7 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/DelayNode.h @@ -0,0 +1,54 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DelayNode_h +#define DelayNode_h + +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/Macros.h" + +namespace lab +{ + +class AudioParam; +class DelayProcessor; + +// TempoSync is commonly used by subclasses of DelayNode +enum TempoSync +{ + TS_32, + TS_16T, + TS_32D, + TS_16, + TS_8T, + TS_16D, + TS_8, + TS_4T, + TS_8D, + TS_4, + TS_2T, + TS_4D, + TS_2, + TS_2D, +}; + +class DelayNode : public AudioBasicProcessorNode +{ + DelayProcessor * delayProcessor(); + +public: + // default maximum delay of 100ms + DelayNode(AudioContext & ac, double maxDelayTime = 2.0); + + virtual ~DelayNode() = default; + + static const char* static_name() { return "Delay"; } + virtual const char* name() const override { return static_name(); } + + std::shared_ptr delayTime(); +}; + +} // namespace lab + +#endif // DelayNode_h diff --git a/sources/LabSound/include/LabSound/core/DynamicsCompressorNode.h b/sources/LabSound/include/LabSound/core/DynamicsCompressorNode.h new file mode 100644 index 00000000..1bdefc29 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/DynamicsCompressorNode.h @@ -0,0 +1,64 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DynamicsCompressorNode_h +#define DynamicsCompressorNode_h + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" + +namespace lab +{ + +class DynamicsCompressor; + +// Fun trick: +// +// source ---> gain(100) ---> dynamics_compressor ---> output +// +// sounds like an old radio +// + +class DynamicsCompressorNode : public AudioNode +{ + +public: + DynamicsCompressorNode(AudioContext& ac); + virtual ~DynamicsCompressorNode(); + + static const char* static_name() { return "DynamicsCompressor"; } + virtual const char* name() const override { return static_name(); } + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + virtual void initialize() override; + virtual void uninitialize() override; + + // Static compression curve parameters. + std::shared_ptr threshold() { return m_threshold; } + std::shared_ptr knee() { return m_knee; } + std::shared_ptr ratio() { return m_ratio; } + std::shared_ptr attack() { return m_attack; } + std::shared_ptr release() { return m_release; } + + // Amount by which the compressor is currently compressing the signal in decibels. + std::shared_ptr reduction() { return m_reduction; } + +private: + virtual double tailTime(ContextRenderLock & r) const override; + virtual double latencyTime(ContextRenderLock & r) const override; + + std::unique_ptr m_dynamicsCompressor; + std::shared_ptr m_threshold; + std::shared_ptr m_knee; + std::shared_ptr m_ratio; + std::shared_ptr m_reduction; + std::shared_ptr m_attack; + std::shared_ptr m_release; +}; + +} // namespace lab + +#endif // DynamicsCompressorNode_h diff --git a/sources/LabSound/include/LabSound/core/FloatPoint3D.h b/sources/LabSound/include/LabSound/core/FloatPoint3D.h new file mode 100644 index 00000000..749d28b5 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/FloatPoint3D.h @@ -0,0 +1,106 @@ +#ifndef FLOAT_POINT_3D_H +#define FLOAT_POINT_3D_H + +#include +#include + +namespace lab +{ +struct float3 +{ + float x {0.f}, y {0.f}, z {0.f}; + float3(float x, float y, float z) : x(x), y(y), z(z) {}; + float3() = default; + float & operator[](int i) { return (&x)[i]; } + const float & operator[](int i) const { return (&x)[i]; } +}; + +inline bool operator==(const float3 & a, const float3 & b) +{ + return a.x == b.x && a.y == b.y && a.z == b.z; +} + +inline bool operator!=(const float3 & a, const float3 & b) +{ + return !(a == b); +} + +inline float3 operator+(const float3 & a, const float3 & b) +{ + return {a.x + b.x, a.y + b.y, a.z + b.z}; +} + +inline float3 operator-(const float3 & v) +{ + return {-v.x, -v.y, -v.z}; +} + +inline float3 operator-(const float3 & a, const float3 & b) +{ + return {a.x - b.x, a.y - b.y, a.z - b.z}; +} +inline float3 operator*(const float3 & v, float s) +{ + return {v.x * s, v.y * s, v.z * s}; +} + +inline float3 operator*(float s, const float3 & v) +{ + return v * s; +} + +inline float3 operator/(const float3 & v, float s) +{ + return v * (1.0f / s); +} + +inline float3 operator+=(float3 & a, const float3 & b) +{ + return a = a + b; +} + +inline float3 operator-=(float3 & a, const float3 & b) +{ + return a = a - b; +} + +inline float3 operator*=(float3 & v, const float & s) +{ + return v = v * s; +} + +inline float3 operator/=(float3 & v, const float & s) +{ + return v = v / s; +} + +inline float dot(const float3 & a, const float3 & b) +{ + return a.x * b.x + a.y * b.y + a.z * b.z; +} + +inline float3 cross(const float3 & a, const float3 & b) +{ + return {a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x}; +} + +inline float magnitude(const float3 & v) +{ + return sqrtf(dot(v, v)); +} + +inline float3 normalize(const float3 & v) +{ + return v / magnitude(v); +} + +inline bool is_zero(const float3 & v) +{ + return fabsf(v.x) < FLT_EPSILON && fabsf(v.y) < FLT_EPSILON && fabsf(v.z) < FLT_EPSILON; +} + +typedef float3 FloatPoint3D; + +} + +#endif diff --git a/sources/LabSound/include/LabSound/core/GainNode.h b/sources/LabSound/include/LabSound/core/GainNode.h new file mode 100644 index 00000000..5e52df6c --- /dev/null +++ b/sources/LabSound/include/LabSound/core/GainNode.h @@ -0,0 +1,50 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef GainNode_h +#define GainNode_h + +#include "LabSound/core/AudioArray.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" + +namespace lab +{ + +class AudioContext; + +// GainNode is an AudioNode with one input and one output which applies a gain (volume) change to the audio signal. +// De-zippering (smoothing) is applied when the gain value is changed dynamically. +// +// params: gain +// settings: +// +class GainNode : public AudioNode +{ +public: + GainNode(AudioContext& ac); + virtual ~GainNode(); + + static const char* static_name() { return "GainNode"; } + virtual const char* name() const override { return static_name(); } + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + std::shared_ptr gain() const { return m_gain; } + +protected: + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + float m_lastGain; // for de-zippering + std::shared_ptr m_gain; + + AudioFloatArray m_sampleAccurateGainValues; +}; + +} // namespace lab + +#endif // GainNode_h diff --git a/sources/LabSound/include/LabSound/core/Macros.h b/sources/LabSound/include/LabSound/core/Macros.h new file mode 100644 index 00000000..543672e6 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/Macros.h @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef labsound_macros_h +#define labsound_macros_h + +#define LABSOUND_DEFAULT_SAMPLERATE 48000.0f +#define LABSOUND_DEFAULT_CHANNELS (uint32_t) lab::Channels::Stereo + +#if (defined(__linux) || defined(__unix) || defined(__posix) || defined(__LINUX__) || defined(__linux__)) + #define LABSOUND_PLATFORM_LINUX 1 +#elif (defined(_WIN64) || defined(_WIN32) || defined(__CYGWIN32__) || defined(__MINGW32__)) + #define LABSOUND_PLATFORM_WINDOWS 1 +#elif (defined(MACOSX) || defined(__DARWIN__) || defined(__APPLE__)) + #define LABSOUND_PLATFORM_OSX 1 +#endif + +#if (defined(WIN_32) || defined(__i386__) || defined(i386) || defined(__x86__)) + #define LABSOUND_ARCH_32 1 +#elif (defined(__amd64) || defined(__amd64__) || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64__) || defined(_M_IA64)) + #define LABSOUND_ARCH_64 1 +#endif + +#if (defined(__clang__)) + #define LABSOUND_COMPILER_CLANG 1 +#elif (defined(__GNUC__)) + #define LABSOUND_COMPILER_GCC 1 +#elif (defined _MSC_VER) + #define LABSOUND_COMPILER_VISUAL_STUDIO 1 +#endif + +#if ((_M_IX86_FP) && (_M_IX86_FP >= 2)) || (_M_AMD64) || defined(_M_X64) + #define __SSE2__ +#endif + +#if defined(LABSOUND_COMPILER_VISUAL_STUDIO) + #include + #define _USE_MATH_DEFINES + #include + #include +#endif + +#if defined(__ARM_NEON__) + #define ARM_NEON_INTRINSICS 1 +#endif + +#if defined(LABSOUND_PLATFORM_OSX) || defined(LABSOUND_PLATFORM_LINUX) +# include +# include +#endif + +#if defined(LABSOUND_PLATFORM_WINDOWS) + #define USE_KISS_FFT +#endif + +#define LAB_PI 3.1415926535897931 +#define LAB_HALF_PI 1.5707963267948966 +#define LAB_QUARTER_PI 0.7853981633974483 +#define LAB_TWO_PI 6.2831853071795862 +#define LAB_TAU 6.2831853071795862 +#define LAB_INV_PI 0.3183098861837907 +#define LAB_INV_TWO_PI 0.1591549430918953 +#define LAB_INV_HALF_PI 0.6366197723675813 +#define LAB_SQRT_2 1.4142135623730951 +#define LAB_INV_SQRT_2 0.7071067811865475 +#define LAB_LN_2 0.6931471805599453 +#define LAB_INV_LN_2 1.4426950408889634 +#define LAB_LN_10 2.3025850929940459 +#define LAB_INV_LN_10 0.4342944819032517 + +#endif // end labsound_macros_h diff --git a/sources/LabSound/include/LabSound/core/Mixing.h b/sources/LabSound/include/LabSound/core/Mixing.h new file mode 100644 index 00000000..66f325ef --- /dev/null +++ b/sources/LabSound/include/LabSound/core/Mixing.h @@ -0,0 +1,55 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef labsound_mixing_h +#define labsound_mixing_h + +#include + +namespace lab +{ + +enum class ChannelInterpretation +{ + Speakers, + Discrete, +}; + +enum class Channel : int +{ + First = 0, + Left = 0, + Right = 1, + Center = 2, // center and mono are the same + Mono = 2, + LFE = 3, + SurroundLeft = 4, + SurroundRight = 5, + BackLeft = 6, + BackRight = 7 +}; + +namespace Channels +{ + enum : uint32_t + { + Mono = 1, + Stereo = 2, + Quad = 4, + Surround_5_0 = 5, + Surround_5_1 = 6, + Surround_7_1 = 8 + }; +}; + +enum class ChannelCountMode +{ + Max, + ClampedMax, + Explicit, + End +}; + +} // end namespace lab + +#endif // end labsound_mixing_h diff --git a/sources/LabSound/include/LabSound/core/NullDeviceNode.h b/sources/LabSound/include/LabSound/core/NullDeviceNode.h new file mode 100644 index 00000000..ff0ab331 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/NullDeviceNode.h @@ -0,0 +1,71 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef lab_null_device_node_h +#define lab_null_device_node_h + +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" + +#include +#include +#include + +namespace lab +{ +class AudioBus; +class AudioContext; + +class NullDeviceNode final : public AudioNode, public AudioDeviceRenderCallback +{ + std::unique_ptr m_renderBus; + std::thread m_renderThread; + + std::atomic shouldExit{false}; + + bool m_startedRendering{false}; + uint32_t m_numChannels; + double m_lengthSeconds; + + AudioContext * m_context; + + AudioStreamConfig outConfig; + SamplingInfo info; + +public: + NullDeviceNode(AudioContext & context, + const AudioStreamConfig & outputConfig, const double lengthSeconds); + virtual ~NullDeviceNode(); + + static const char* static_name() { return "NulLDevice"; } + virtual const char* name() const override { return static_name(); } + + // AudioNode Interface + virtual void initialize() override; + virtual void uninitialize() override; + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + virtual void process(ContextRenderLock &, int bufferSize) override {} // NullDeviceNode is pulled by its own internal thread so this is never called + virtual void reset(ContextRenderLock &) override{}; // @fixme + + // AudioDeviceRenderCallback interface + virtual void render(AudioBus * src, AudioBus * dst, int frames, const SamplingInfo & info) override final; + virtual void start() override final; + virtual void stop() override final; + virtual bool isRunning() const override final; + virtual const SamplingInfo & getSamplingInfo() const override final; + virtual const AudioStreamConfig & getOutputConfig() const override final; + virtual const AudioStreamConfig & getInputConfig() const override final; + + void offlineRender(); + void offlineRenderFrames(size_t framesToProcess); +}; + +} // namespace lab + +#endif // end lab_null_device_node_h diff --git a/sources/LabSound/include/LabSound/core/OscillatorNode.h b/sources/LabSound/include/LabSound/core/OscillatorNode.h new file mode 100644 index 00000000..d2d0f3e3 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/OscillatorNode.h @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef OscillatorNode_h +#define OscillatorNode_h + +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioScheduledSourceNode.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/WaveTable.h" + +namespace lab +{ + +class AudioBus; +class AudioContext; +class AudioSetting; + +// params: frequency, detune, amplitude, and bias +// settings: type +// + +// @TODO add duty param for the square wave to complete the oscillator, default value is 0.5 + +class OscillatorNode : public AudioScheduledSourceNode +{ + double phase = 0.0; + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + virtual bool propagatesSilence(ContextRenderLock & r) const override; + std::shared_ptr m_type; + +public: + OscillatorNode(AudioContext& ac); + virtual ~OscillatorNode(); + + static const char* static_name() { return "Oscillator"; } + virtual const char* name() const override { return static_name(); } + + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override { } + + OscillatorType type() const; + void setType(OscillatorType type); + + std::shared_ptr amplitude() { return m_amplitude; } + std::shared_ptr frequency() { return m_frequency; } + std::shared_ptr detune() { return m_detune; } + std::shared_ptr bias() { return m_bias; } + + std::shared_ptr m_amplitude; // default 1.0 + std::shared_ptr m_frequency; // hz + std::shared_ptr m_bias; // default 0.0 + std::shared_ptr m_detune; // Detune value in Cents. + + void process_oscillator(ContextRenderLock & r, int bufferSize, int offset, int count); + + AudioFloatArray m_phaseIncrements; + AudioFloatArray m_biasValues; + AudioFloatArray m_detuneValues; + AudioFloatArray m_amplitudeValues; +}; + +} // namespace lab + +#endif // OscillatorNode_h diff --git a/sources/LabSound/include/LabSound/core/PannerNode.h b/sources/LabSound/include/LabSound/core/PannerNode.h new file mode 100644 index 00000000..3696d3fd --- /dev/null +++ b/sources/LabSound/include/LabSound/core/PannerNode.h @@ -0,0 +1,158 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef PannerNode_h +#define PannerNode_h + +#include "LabSound/core/AudioListener.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/FloatPoint3D.h" +#include "LabSound/core/Macros.h" + +namespace lab +{ + +// PannerNode is an AudioNode with one input and one output. +// It positions a sound in 3D space, with the exact effect dependent on the panning model. +// It has a position and an orientation in 3D space which is relative to the position and orientation of the context's AudioListener. +// A distance effect will attenuate the gain as the position moves away from the listener. +// A cone effect will attenuate the gain as the orientation moves away from the listener. +// All of these effects follow the OpenAL specification very closely. + +class AudioBus; +class ConeEffect; +class DistanceEffect; +class HRTFDatabaseLoader; +class Panner; + +// params: orientation[XYZ], velocity[XYZ], position[XYZ] +// settings: distanceModel, refDistance, maxDistance, rolloffFactor, +// coneKInnerAngle, coneOuterAngle, panningMode +// +class PannerNode : public AudioNode +{ + std::shared_ptr m_orientationX; + std::shared_ptr m_orientationY; + std::shared_ptr m_orientationZ; + std::shared_ptr m_velocityX; + std::shared_ptr m_velocityY; + std::shared_ptr m_velocityZ; + std::shared_ptr m_positionX; + std::shared_ptr m_positionY; + std::shared_ptr m_positionZ; + + std::shared_ptr m_distanceGain; + std::shared_ptr m_coneGain; + + std::shared_ptr m_distanceModel; + std::shared_ptr m_refDistance; + std::shared_ptr m_maxDistance; + std::shared_ptr m_rolloffFactor; + std::shared_ptr m_coneInnerAngle; + std::shared_ptr m_coneOuterAngle; + std::shared_ptr m_panningModel; + +public: + enum DistanceModel + { + LINEAR_DISTANCE = 0, + INVERSE_DISTANCE = 1, + EXPONENTIAL_DISTANCE = 2, + }; + + PannerNode(AudioContext & ac, const std::string & hrtf_root_dir_path = ""); + virtual ~PannerNode(); + + static const char* static_name() { return "Panner"; } + virtual const char* name() const override { return static_name(); } + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + virtual void initialize() override; + virtual void uninitialize() override; + + // Panning model + PanningMode panningModel() const; + void setPanningModel(PanningMode m); + + // Position + void setPosition(float x, float y, float z) { setPosition(FloatPoint3D(x, y, z)); } + void setPosition(const FloatPoint3D & position); + + std::shared_ptr positionX() const { return m_positionX; } + std::shared_ptr positionY() const { return m_positionY; } + std::shared_ptr positionZ() const { return m_positionZ; } + + // The orientation property indicates the X component of the direction in + // which the audio source is facing, in cartesian space. The complete + // vector is defined by the position of the audio source, and the direction + // in which it is facing. + void setOrientation(const FloatPoint3D & fwd); + std::shared_ptr orientationX() const { return m_orientationX; } + std::shared_ptr orientationY() const { return m_orientationY; } + std::shared_ptr orientationZ() const { return m_orientationZ; } + + // Velocity + void setVelocity(float x, float y, float z) { setVelocity(FloatPoint3D(x, y, z)); } + void setVelocity(const FloatPoint3D & velocity); + std::shared_ptr velocityX() const { return m_velocityX; } + std::shared_ptr velocityY() const { return m_velocityY; } + std::shared_ptr velocityZ() const { return m_velocityZ; } + + // Distance parameters + DistanceModel distanceModel(); + void setDistanceModel(DistanceModel); + + float refDistance(); + void setRefDistance(float refDistance); + + float maxDistance(); + void setMaxDistance(float maxDistance); + + float rolloffFactor(); + void setRolloffFactor(float rolloffFactor); + + // Sound cones - angles in degrees + float coneInnerAngle() const; + void setConeInnerAngle(float angle); + + float coneOuterAngle() const; + void setConeOuterAngle(float angle); + + float coneOuterGain() const; + void setConeOuterGain(float angle); + + void getAzimuthElevation(ContextRenderLock & r, double * outAzimuth, double * outElevation); + float dopplerRate(ContextRenderLock & r); + + // Accessors for dynamically calculated gain values. + std::shared_ptr distanceGain() { return m_distanceGain; } + std::shared_ptr coneGain() { return m_coneGain; } + + virtual double tailTime(ContextRenderLock & r) const override; + virtual double latencyTime(ContextRenderLock & r) const override; + +protected: + std::shared_ptr m_hrtfDatabaseLoader; + + // Returns the combined distance and cone gain attenuation. + virtual float distanceConeGain(ContextRenderLock & r); + + // Notifies any SampledAudioNodes connected to us either directly or indirectly about our existence. + // This is in order to handle the pitch change necessary for the doppler shift. + // @tofix - broken? + void notifyAudioSourcesConnectedToNode(ContextRenderLock & r, AudioNode *); + + std::unique_ptr m_panner; + std::unique_ptr m_distanceEffect; + std::unique_ptr m_coneEffect; + + float m_lastGain = -1.0f; + float m_sampleRate; +}; + +} // namespace lab + +#endif // PannerNode_h diff --git a/sources/LabSound/include/LabSound/core/Profiler.h b/sources/LabSound/include/LabSound/core/Profiler.h new file mode 100644 index 00000000..7e9007f3 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/Profiler.h @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#include + +namespace lab +{ + + struct ProfileSample + { + ProfileSample() { zero(); } + bool finalized = false; + std::chrono::duration microseconds; + void zero() { microseconds = std::chrono::duration::zero(); finalized = true; } + }; + + struct ProfileScope + { + explicit ProfileScope(ProfileSample& s) + : s(&s) + { + _start = std::chrono::system_clock::now(); + s.finalized = false; + } + + ~ProfileScope() + { + finalize(); + } + + void finalize() + { + if (!s->finalized) + { + //std::chrono::system_clock::time_point end = std::chrono::system_clock::now(); + s->microseconds = std::chrono::system_clock::now() - _start; + s->finalized = true; + } + } + + ProfileSample* s = nullptr; + std::chrono::system_clock::time_point _start; + }; + +} // lab diff --git a/sources/LabSound/include/LabSound/core/SampledAudioNode.h b/sources/LabSound/include/LabSound/core/SampledAudioNode.h new file mode 100644 index 00000000..4f57c259 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/SampledAudioNode.h @@ -0,0 +1,104 @@ + +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef SampledAudioNode_h +#define SampledAudioNode_h + +#include "LabSound/core/AudioScheduledSourceNode.h" + +#include + + +namespace lab +{ + +class AudioContext; +class AudioBus; +class AudioParam; +class ContextRenderLock; +class SampledAudioNode; +struct SRC_Resampler; + +// SampledAudioNode is intended for in-memory sounds. It provides a high degree of scheduling +// flexibility (can playback in rhythmically exact ways). + + +class SampledAudioNode final : public AudioScheduledSourceNode +{ + virtual void reset(ContextRenderLock& r) override {} + virtual double tailTime(ContextRenderLock& r) const override { return 0; } + virtual double latencyTime(ContextRenderLock& r) const override { return 0; } + virtual bool propagatesSilence(ContextRenderLock& r) const override { return false; } + + struct Scheduled; + struct Internals; + Internals* _internals; + + std::shared_ptr m_sourceBus; + std::shared_ptr m_pendingSourceBus; // the most recently assigned bus + std::shared_ptr m_retainedSourceBus; // the bus used in computation, eventually agrees with m_pendingSourceBus. + std::shared_ptr m_playbackRate; + std::shared_ptr m_detune; + std::shared_ptr m_dopplerRate; + + std::vector> _resamplers; + + // totalPitchRate() returns the instantaneous pitch rate (non-time preserving). + // It incorporates the base pitch rate, any sample-rate conversion factor from the buffer, + // and any doppler shift from an associated panner node. + float totalPitchRate(ContextRenderLock&); + bool renderSample(ContextRenderLock& r, Scheduled&, size_t destinationSampleOffset, size_t frameSize); + + virtual void process(ContextRenderLock&, int framesToProcess) override; + +public: + SampledAudioNode() = delete; + explicit SampledAudioNode(AudioContext&); + virtual ~SampledAudioNode(); + + static const char* static_name() { return "SampledAudio"; } + virtual const char* name() const override { return static_name(); } + + // setting the bus is an asynchronous operation. getBus returns the most + // recent set request in order that the interface work in a predictable way. + // In the future, setBus and getBus could be deprecated in favor of another + // schedule method that takes a source bus as an argument. + void setBus(ContextRenderLock&, std::shared_ptr sourceBus); + std::shared_ptr getBus() const { return m_pendingSourceBus; } + + // loopCount of -1 will loop forever + // all the schedule routines will call start(0) if necessary, so that a + // schedule is sufficient for this node to start producing a signal. + // + // + void schedule(float relative_when); + void schedule(float relative_when, int loopCount); + void schedule(float relative_when, float grainOffset, int loopCount); + void schedule(float relative_when, float grainOffset, float grainDuration, int loopCount); + + // note: start is not virtual. start on the ScheduledAudioNode is relative, + // but start here is in absolute time. + void start(float abs_when); + void start(float abs_when, int loopCount); + void start(float abs_when, float grainOffset, int loopCount); + void start(float abs_when, float grainOffset, float grainDuration, int loopCount); + + // this will clear anything playing or pending, without stopping the node itself. + void clearSchedules(); + + std::shared_ptr playbackRate() { return m_playbackRate; } + std::shared_ptr detune() { return m_detune; } + std::shared_ptr dopplerRate() { return m_dopplerRate; } + + // returns the greatest sample index played back by any of the scheduled + // instances in the most recent render quantum. A value less than zero + // indicates nothing's playing. + int32_t getCursor() const; +}; + + + +} // namespace lab + +#endif // SampledAudioNode diff --git a/sources/LabSound/include/LabSound/core/StereoPannerNode.h b/sources/LabSound/include/LabSound/core/StereoPannerNode.h new file mode 100644 index 00000000..31e78a9a --- /dev/null +++ b/sources/LabSound/include/LabSound/core/StereoPannerNode.h @@ -0,0 +1,58 @@ +// License: BSD 2 Clause +// Copyright (C) 2014, The Chromium Authors. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef StereoPannerNode_h +#define StereoPannerNode_h + +#include "LabSound/core/AudioArray.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/Macros.h" + +#include +#include + +namespace lab +{ + +class Spatializer; + +// StereoPannerNode is an AudioNode with one input and one output. It is +// specifically designed for equal-power stereo panning. +// irrespective of the number of input channels, the output channel count is always two. + +class StereoPannerNode : public AudioNode +{ +public: + StereoPannerNode() = delete; + explicit StereoPannerNode(AudioContext& ac); + virtual ~StereoPannerNode(); + + static const char* static_name() { return "StereoPanner"; } + virtual const char* name() const override { return static_name(); } + + std::shared_ptr pan() { return m_pan; } + +private: + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + virtual void initialize() override; + virtual void uninitialize() override; + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + virtual void conformChannelCounts() override {}; + + std::shared_ptr m_pan; + + std::unique_ptr m_stereoPanner; + std::unique_ptr m_sampleAccuratePanValues; +}; + +} // namespace lab + +#endif // StereoPannerNode_h diff --git a/sources/LabSound/include/LabSound/core/WaveShaperNode.h b/sources/LabSound/include/LabSound/core/WaveShaperNode.h new file mode 100644 index 00000000..299bf79b --- /dev/null +++ b/sources/LabSound/include/LabSound/core/WaveShaperNode.h @@ -0,0 +1,40 @@ + +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef WaveShaperNode_h +#define WaveShaperNode_h + +#include "LabSound/core/AudioNode.h" +#include + +namespace lab { + +class WaveShaperNode : public AudioNode +{ +public: + WaveShaperNode(AudioContext & ac); + virtual ~WaveShaperNode(); + + static const char* static_name() { return "WaveShaper"; } + virtual const char* name() const override { return static_name(); } + + // copies the curve + void setCurve(std::vector & curve); + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock&) override {} + +protected: + void processBuffer(ContextRenderLock&, const float* source, float* destination, int framesToProcess); + virtual double tailTime(ContextRenderLock& r) const override { return 0.; } + virtual double latencyTime(ContextRenderLock& r) const override { return 0.; } + + std::vector m_curve; + std::vector* m_newCurve = nullptr; +}; + +} // namespace lab + +#endif diff --git a/sources/LabSound/include/LabSound/core/WaveTable.h b/sources/LabSound/include/LabSound/core/WaveTable.h new file mode 100644 index 00000000..24cd6141 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/WaveTable.h @@ -0,0 +1,67 @@ +// License: BSD 3 Clause +// Copyright (C) 2012, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef WaveTable_h +#define WaveTable_h + +#include "LabSound/core/AudioArray.h" +#include "LabSound/core/AudioNode.h" + +#include +#include + +namespace lab +{ + +class WaveTable +{ + +public: + WaveTable(const float sampleRate, OscillatorType basicWaveform); + WaveTable(const float sampleRate, OscillatorType basicWaveform, std::vector & real, std::vector & imag); + + ~WaveTable(); + + // Returns pointers to the lower and higher wavetable data for the pitch range containing + // the given fundamental frequency. These two tables are in adjacent "pitch" ranges + // where the higher table will have the maximum number of partials which won't alias when played back + // at this fundamental frequency. The lower wavetable is the next range containing fewer partials than the higher wavetable. + // Interpolation between these two tables can be made according to tableInterpolationFactor. + // Where values from 0 -> 1 interpolate between lower -> higher. + void waveDataForFundamentalFrequency(float, float *& lowerWaveData, float *& higherWaveData, float & tableInterpolationFactor); + + // Returns the scalar multiplier to the oscillator frequency to calculate wave table phase increment. + float rateScale() const { return m_rateScale; } + + unsigned periodicWaveSize() const; + +private: + void generateBasicWaveform(OscillatorType); + + int m_numberOfRanges; + float m_centsPerRange; + + // The lowest frequency (in Hertz) where playback will include all of the partials. + // Playing back lower than this frequency will gradually lose more high-frequency information. + // This frequency is quite low (~10Hz @ 44.1KHz) + float m_lowestFundamentalFrequency; + float m_sampleRate; + float m_rateScale; + + int numberOfRanges() const { return m_numberOfRanges; } + + // Maximum possible number of partials (before culling). + int maxNumberOfPartials() const; + + int numberOfPartialsForRange(int rangeIndex) const; + + // Creates tables based on numberOfComponents Fourier coefficients. + void createBandLimitedTables(const float * real, const float * imag, int numberOfComponents); + + std::vector> m_bandLimitedTables; +}; + +} // namespace lab + +#endif // WaveTable_h diff --git a/sources/LabSound/include/LabSound/core/WindowFunctions.h b/sources/LabSound/include/LabSound/core/WindowFunctions.h new file mode 100644 index 00000000..0a50ad19 --- /dev/null +++ b/sources/LabSound/include/LabSound/core/WindowFunctions.h @@ -0,0 +1,265 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef lab_window_functions_h +#define lab_window_functions_h + +#include +#include + +#include "LabSound/core/Macros.h" + +namespace lab +{ +enum class WindowFunction +{ + rectangle, // aka the boxcar or Dirichlet window + cosine, // aka the sine window + hann, // generalized raised cosine, order 1, aka the raised cosine window + hamming, // generalized raised cosine, order 1 (modified hann) + blackman, // generalized raised cosine, order 2 + nutall, // generalized raised cosine, order 3 + blackman_harris, // generalized raised cosine, order 3 + blackman_nutall, // generalized raised cosine, order 3 + hann_poisson, // Hann window multiplied by a Poisson window + gaussian50, // gaussian with a sigma of 0.50 + gaussian25, // gaussian with a sigma of 0.25 + welch, // + bartlett, // aka the (symmetric) triangular window + bartlett_hann, // + parzen, // B-spline, order 4 (a triangle shape) + flat_top, // generalized raised cosine, order 4 + lanczos // aka the sinc window +}; + +static constexpr char const * const s_window_types[] = { + "rectangle", + "cosine", + "hann", + "hamming", + "blackman", + "nutall", + "blackman_harris", + "blackman_nutall", + "hann_poisson", + "gaussian50", + "gaussian25", + "welch", + "bartlett", + "bartlett_hann", + "parzen", + "flat_top", + "lanczos", + nullptr +}; + +// Inspired by https://github.com/idiap/libssp/blob/master/ssp/window.cpp +// These are implementations of the generalized raised cosine window, up to order 4 +// https://ccrma.stanford.edu/~jos/sasp/Hann_Hanning_Raised_Cosine.html +namespace detail +{ + inline float sinc(const float x) + { + return (x == 0.0f) ? 1.0f : std::sin(x * static_cast(LAB_PI)) / (x * static_cast(LAB_PI)); + } + + inline float gen_cosine_1(const float max_index, const uint32_t idx, const float alpha, const float beta) + { + return alpha - beta * std::cos((static_cast(LAB_TAU) * idx) / max_index); + } + + inline float gen_cosine_2(const float max_index, const uint32_t idx, const float alpha, const float beta, const float gamma) + { + return gen_cosine_1(max_index, idx, alpha, beta) + gamma * std::cos((2 * static_cast(LAB_TAU) * idx) / max_index); + } + + inline float gen_cosine_3(const float max_index, const uint32_t idx, const float alpha, const float beta, const float gamma, const float delta) + { + return gen_cosine_2(max_index, idx, alpha, beta, gamma) - delta * std::cos((3 * static_cast(LAB_TAU) * idx) / max_index); + } + + inline float gen_cosine_4(const float max_index, const uint32_t idx, const float alpha, const float beta, const float gamma, const float delta, const float epsilon) + { + return gen_cosine_3(max_index, idx, alpha, beta, gamma, delta) + epsilon * std::cos((4 * static_cast(LAB_TAU) * idx) / max_index); + } + + inline float gaussian(const float max_index, const uint32_t idx, const float sigma) + { + const float fract = (idx - (max_index * 0.5f)) / (sigma * (max_index * 0.5f)); + return std::exp(-0.5f * (fract * fract)); + } +} + +// Reference https://github.com/spurious/snd-mirror/blob/master/clm.c +inline void ApplyWindowFunctionInplace(const WindowFunction type, float * buffer, const int window_size) +{ + const float max_index = static_cast(window_size) - 1.f; + + switch (type) + { + case WindowFunction::rectangle: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] = 1.f; // or * 0.5f? + } + } + break; + + case WindowFunction::cosine: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= std::sin((static_cast(LAB_PI) * i) / max_index); + } + } + break; + + case WindowFunction::hann: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_1(max_index, i, 0.5f, 0.5f); + } + } + break; + + case WindowFunction::hamming: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_1(max_index, i, 0.54f, 0.46f); + } + } + break; + + case WindowFunction::blackman: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_2(max_index, i, 0.42f, 0.50f, 0.08f); + } + } + break; + + case WindowFunction::nutall: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_3(max_index, i, 0.355768f, 0.487396f, 0.144232f, 0.012604f); + } + } + break; + + case WindowFunction::blackman_harris: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_3(max_index, i, 0.35875f, 0.48829f, 0.14128f, 0.01168f); + } + } + break; + + case WindowFunction::blackman_nutall: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_3(max_index, i, 0.3635819f, 0.4891775f, 0.1365995f, 0.0106411f); + } + } + break; + + case WindowFunction::hann_poisson: + { + for (int i = 0; i < window_size; ++i) + { + const float alpha = 2.f; + const float a = 1.f - std::cos((static_cast(LAB_TAU) * i) / max_index); + const float b = (-alpha * std::abs(max_index - 2.f * i)) / max_index; + buffer[i] *= 0.5f * a * exp(b); + } + } + break; + + case WindowFunction::gaussian50: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gaussian(max_index, i, 0.50f); + } + } + break; + + case WindowFunction::gaussian25: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gaussian(max_index, i, 0.25f); + } + } + break; + + case WindowFunction::welch: + { + for (int i = 0; i < window_size; ++i) + { + const float num = i - (max_index * 0.5f); + const float denom = (window_size + 1.f) * 0.5f; + const float fract = num / denom; + buffer[i] *= 1.f - fract * fract; + } + } + break; + + case WindowFunction::bartlett: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= 2.f / (window_size - 1.f) * (max_index / 2.f - std::abs(i - max_index / 2.f)); + } + } + break; + + case WindowFunction::bartlett_hann: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_2(max_index, i, 0.63f, 0.48f, 0.38f); + } + } + break; + + case WindowFunction::parzen: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= 1.f - abs((2.f * i - window_size) / (window_size + 1.f)); + } + } + break; + + case WindowFunction::flat_top: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::gen_cosine_4(max_index, i, 1.f, 1.93f, 1.29f, 0.388f, 0.028f); + } + } + break; + + case WindowFunction::lanczos: + { + for (int i = 0; i < window_size; ++i) + { + buffer[i] *= detail::sinc(2.f * i / max_index - 1.f); + } + } + break; + } +} + +} // namespace lab + +#endif // end lab_window_functions_h diff --git a/sources/LabSound/include/LabSound/extended/ADSRNode.h b/sources/LabSound/include/LabSound/extended/ADSRNode.h new file mode 100644 index 00000000..9cf89f30 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/ADSRNode.h @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#ifndef ADSR_NODE_H +#define ADSR_NODE_H + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioSetting.h" + +namespace lab +{ + + +class ADSRNode : public AudioNode +{ + class ADSRNodeImpl; + ADSRNodeImpl * adsr_impl; + +public: + ADSRNode(AudioContext &); + virtual ~ADSRNode(); + + static const char* static_name() { return "ADSR"; } + virtual const char* name() const override { return static_name(); } + + // This function will return true after the release period (only if a noteOff has been issued). + bool finished(ContextRenderLock &); + + void set(float attack_time, float attack_level, float decay_time, float sustain_time, float sustain_level, float release_time); + + virtual void process(ContextRenderLock& r, int bufferSize) override; + virtual void reset(ContextRenderLock&) override; + virtual double tailTime(ContextRenderLock& r) const override { return 0.; } + virtual double latencyTime(ContextRenderLock& r) const override { return 0.f; } + + std::shared_ptr gate() const; // gate signal + + std::shared_ptr oneShot() const; // If zero, gate controls attack and sustain, else sustainTime controls sustain + std::shared_ptr attackTime() const; // Duration in seconds + std::shared_ptr attackLevel() const; // Level + std::shared_ptr decayTime() const; // Duration in seconds + std::shared_ptr sustainTime() const; // Duration in seconds + std::shared_ptr sustainLevel() const; // Level + std::shared_ptr releaseTime() const; // Duration in seconds +}; + +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/AudioContextLock.h b/sources/LabSound/include/LabSound/extended/AudioContextLock.h new file mode 100644 index 00000000..27fce1fa --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/AudioContextLock.h @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +//#define DEBUG_LOCKS + +#ifndef AUDIO_CONTEXT_LOCK_H +#define AUDIO_CONTEXT_LOCK_H + +#include "LabSound/core/AudioContext.h" +#include "LabSound/extended/Logging.h" + +#include +#include + +//#define DEBUG_LOCKS + +namespace lab +{ + +class ContextGraphLock +{ + AudioContext * m_context = nullptr; + +public: + ContextGraphLock(AudioContext * context, const std::string & lockSuitor) + { +#if defined(DEBUG_LOCKS) + bool reentrant = context->m_graphLocker.size() > 1 && context->m_graphLocker.back() != '~'; + if (reentrant) + { + LOG_ERROR("%s cannot acquire an AudioContext ContextGraphLock. Currently held by: %s.", lockSuitor.c_str(), context->m_graphLocker.c_str()); + } +#endif + + if (context) + { + context->m_graphLock.lock(); + m_context = context; + m_context->m_graphLocker = lockSuitor; + } + } + + ~ContextGraphLock() + { + if (m_context) + { + m_context->m_graphLocker += '~'; + m_context->m_graphLock.unlock(); + } + } + + AudioContext * context() { return m_context; } +}; + +class ContextRenderLock +{ + AudioContext * m_context = nullptr; + +public: + ContextRenderLock(AudioContext * context, const std::string & lockSuitor) + { +#if defined(DEBUG_LOCKS) + bool reentrant = context->m_graphLocker.size() > 1 && context->m_graphLocker.back() != '~'; + if (reentrant) + { + LOG_ERROR("%s cannot acquire an AudioContext ContextGraphLock. Currently held by: %s.", lockSuitor.c_str(), context->m_graphLocker.c_str()); + } +#endif + + if (context) + { + context->m_renderLock.lock(); + m_context = context; + m_context->m_renderLocker = lockSuitor; + } + } + + ~ContextRenderLock() + { + if (m_context) + { + m_context->m_renderLocker += '~'; + m_context->m_renderLock.unlock(); + } + } + + AudioContext * context() { return m_context; } +}; + +} // end namespace lab + +#endif diff --git a/sources/LabSound/include/LabSound/extended/AudioFileReader.h b/sources/LabSound/include/LabSound/extended/AudioFileReader.h new file mode 100644 index 00000000..7eeeec26 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/AudioFileReader.h @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioFileReader_H +#define AudioFileReader_H + +#include "LabSound/core/AudioBus.h" +#include "LabSound/extended/AudioContextLock.h" + +#include +#include +#include +#include + +namespace lab +{ +// Performs filesystem i/o to decode a file (using libnyquist) +std::shared_ptr MakeBusFromFile(const char * filePath, bool mixToMono); +std::shared_ptr MakeBusFromFile(const std::string & path, bool mixToMono); + +// Performs filesystem i/o to decode a file (using libnyquist) +// Resamples the data to the specified rate. A typical application is to resample an audio +// file to the device rate; perhaps from 44.1 to 48 khz. Resampling at load time saves +// run time overhead. +std::shared_ptr MakeBusFromFile(const char * filePath, bool mixToMono, float targetSampleRate); +std::shared_ptr MakeBusFromFile(const std::string & path, bool mixToMono, float targetSampleRate); + + +// Loads and decodes a raw binary memory chunk making use of magic numbers to determine filetype. +std::shared_ptr MakeBusFromMemory(const std::vector & buffer, bool mixToMono); + +// Loads and decodes a raw binary memory chunk where the file extension (mp3, wav, ogg, etc) is aleady known. +std::shared_ptr MakeBusFromMemory(const std::vector & buffer, const std::string & extension, bool mixToMono); +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/BPMDelayNode.h b/sources/LabSound/include/LabSound/extended/BPMDelayNode.h new file mode 100644 index 00000000..2fce0ef1 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/BPMDelayNode.h @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef BPM_DELAY_NODE_H +#define BPM_DELAY_NODE_H + +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/DelayNode.h" + +namespace lab +{ +class BPMDelay : public DelayNode +{ + float tempo; + int noteDivision; + std::vector times; + + void recomputeDelay() + { + float dT = float(60.0f * noteDivision) / tempo; + delayTime()->setFloat(dT); + } + +public: + BPMDelay(AudioContext & ac, float tempo); + virtual ~BPMDelay(); + + void SetTempo(float newTempo) + { + tempo = newTempo; + recomputeDelay(); + } + + void SetDelayIndex(TempoSync value); +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/ClipNode.h b/sources/LabSound/include/LabSound/extended/ClipNode.h new file mode 100644 index 00000000..4b5ddc9f --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/ClipNode.h @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef CLIP_NODE_H +#define CLIP_NODE_H + +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/AudioParam.h" + +namespace lab +{ +// ClipNode clips a signal, using either thresholding or tanh +// +// params: a, b +// settings: mode +// +class ClipNode : public AudioBasicProcessorNode +{ + class ClipNodeInternal; + ClipNodeInternal * internalNode; + +public: + enum Mode + { + CLIP = 0, + TANH = 1, + _Count = 2 + }; + + ClipNode(AudioContext & ac); + virtual ~ClipNode(); + + static const char* static_name() { return "Clip"; } + virtual const char* name() const override { return static_name(); } + + void setMode(Mode m); + + // in CLIP mode, a is the min value, and b is the max value. + // in TANH mode, a is the overall gain, and b is the input gain. + // The higher the input gain the more severe the distortion. + std::shared_ptr aVal(); + std::shared_ptr bVal(); +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/DiodeNode.h b/sources/LabSound/include/LabSound/extended/DiodeNode.h new file mode 100644 index 00000000..c2ef08f7 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/DiodeNode.h @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DIODE_NODE_H +#define DIODE_NODE_H + +#include "LabSound/core/WaveShaperNode.h" + +namespace lab +{ + +// The diode node, used in conjunction with a gain node, will modulate +// a source so that it sounds like audio being over-driven through a vacuum tube diode. +// +// source -+-> diode ----> gain_level +// | | +// +-------------> gain ---------------> outpuot +// +// params: +// settings: distortion, vb, vl +// +class DiodeNode : public WaveShaperNode +{ + void _precalc(); + + std::shared_ptr waveShaper; + std::shared_ptr _distortion; + std::shared_ptr _vb; // curve shape control + std::shared_ptr _vl; // curve shape control + +public: + DiodeNode(AudioContext &); + virtual ~DiodeNode() = default; + + static const char* static_name() { return "Diode"; } + virtual const char* name() const override { return static_name(); } + + void setDistortion(float distortion = 1.0); + + std::shared_ptr distortion() const { return _distortion; }; + std::shared_ptr vb() const { return _vb; }; + std::shared_ptr vl() const { return _vl; } +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/FunctionNode.h b/sources/LabSound/include/LabSound/extended/FunctionNode.h new file mode 100644 index 00000000..55ff0913 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/FunctionNode.h @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef FUNCTION_NODE_H +#define FUNCTION_NODE_H + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioScheduledSourceNode.h" + +namespace lab +{ + +class FunctionNode : public AudioScheduledSourceNode +{ + +public: + FunctionNode(AudioContext & ac, int channels = 1); + virtual ~FunctionNode(); + + static const char* static_name() { return "Function"; } + virtual const char* name() const override { return static_name(); } + + void setFunction(std::function fn) + { + _function = fn; + } + + virtual void process(ContextRenderLock & r, int bufferSize) override; + virtual void reset(ContextRenderLock & r) override; + + double now() const { return _now; } + +private: + virtual bool propagatesSilence(ContextRenderLock & r) const override; + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + std::function _function; + + double _now = 0.0; +}; + +} // end namespace lab + +#endif diff --git a/sources/LabSound/include/LabSound/extended/GranulationNode.h b/sources/LabSound/include/LabSound/extended/GranulationNode.h new file mode 100644 index 00000000..661839b1 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/GranulationNode.h @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#ifndef labsound_granulation_node_h +#define labsound_granulation_node_h + +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioScheduledSourceNode.h" +#include "LabSound/core/AudioSetting.h" +#include +#include + +namespace lab +{ +class GranulationNode : public AudioScheduledSourceNode +{ + struct grain + { + std::shared_ptr sample; + std::shared_ptr window; + + bool in_use {true}; + + // Values in samples + uint64_t grain_start {0}; + uint64_t grain_duration {0}; + uint64_t grain_end {0}; + uint64_t envelope_index {0}; + + double playback_frequency; + double sample_increment; + double sample_accurate_time; // because of double precision, it's actually subsample-accurate + + // position between 0-1, duration in seconds + grain(std::shared_ptr _sample, std::shared_ptr _window, const float sample_rate, + const double _position_offset, const double _duration, const double _speed) : sample(_sample), window(_window) + { + grain_start = static_cast(sample->length() * _position_offset); + grain_duration = static_cast(_duration * sample_rate); + grain_end = std::min(static_cast(sample->length()), grain_start + grain_duration); + + playback_frequency = (1.0 / _duration) * _speed; + sample_accurate_time = static_cast((playback_frequency > 0) ? grain_start : grain_end); + sample_increment = (playback_frequency != 0.0) ? grain_duration / (sample_rate / playback_frequency) : 0.0; + } + + void tick(float * out_buffer, const int num_frames) + { + const float * windowSamples = window->channel(0)->data(); + + for (int i = 0; i < num_frames; ++i) + { + double result = 0.f; + + if (in_use) + { + sample_accurate_time += sample_increment; + + // Looping behavior + if (sample_accurate_time >= grain_end) + { + sample_accurate_time = static_cast(grain_start); + } + + const uint64_t approximate_sample_index = static_cast(std::floor(sample_accurate_time)); + const double remainder = sample_accurate_time - approximate_sample_index; + + uint64_t left = approximate_sample_index; + uint64_t right = approximate_sample_index + 1; + if (right >= sample->length()) right = 0; + + // interpolate sample positions (primarily for speed alterations, can be more sophisticated with this later) + result = (double) ((1.0 - remainder) * sample->channel(0)->data()[left] + remainder * sample->channel(0)->data()[right]); + } + + envelope_index++; + + if (envelope_index == grain_duration) + { + //in_use = false; + envelope_index = 0; + } + + // Apply envelope + out_buffer[i] += static_cast(result * windowSamples[envelope_index]); + } + } + }; + + virtual bool propagatesSilence(ContextRenderLock & r) const override; + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + bool RenderGranulation(ContextRenderLock &, AudioBus *, int destinationFrameOffset, int numberOfFrames); + + std::vector grain_pool; + std::shared_ptr window_bus; + +public: + GranulationNode(AudioContext & ac); + virtual ~GranulationNode(); + + static const char* static_name() { return "Granulation"; } + virtual const char* name() const override { return static_name(); } + + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + bool setGrainSource(ContextRenderLock &, std::shared_ptr sourceBus); + std::shared_ptr getGrainSource() const { return grainSourceBus->valueBus(); } + + std::shared_ptr grainSourceBus; + std::shared_ptr windowFunc; + std::shared_ptr numGrains; + std::shared_ptr grainDuration; + std::shared_ptr grainPositionMin; + std::shared_ptr grainPositionMax; + std::shared_ptr grainPlaybackFreq; +}; + +} // end namespace lab + +#endif // end labsound_granulation_node_h diff --git a/sources/LabSound/include/LabSound/extended/Logging.h b/sources/LabSound/include/LabSound/extended/Logging.h new file mode 100644 index 00000000..f75c1eba --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/Logging.h @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: MIT + +/** + * Copyright (c) 2017 rxi + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the MIT license. See `log.c` for details. + */ + +// retrieved from https://github.com/rxi/log.c + +#ifndef LABSOUND_LOGGING_H +#define LABSOUND_LOGGING_H + +#include +#include +#include + +#define LOG_VERSION "0.1.0" + +typedef void (*log_LockFn)(void *udata, int lock); + +enum { LOGLEVEL_TRACE = 0, LOGLEVEL_DEBUG, LOGLEVEL_INFO, + LOGLEVEL_WARN, LOGLEVEL_ERROR, LOGLEVEL_FATAL }; + +#define LOG_TRACE(...) LabSoundLog(LOGLEVEL_TRACE, __FILE__, __LINE__, __VA_ARGS__) +#define LOG_DEBUG(...) LabSoundLog(LOGLEVEL_DEBUG, __FILE__, __LINE__, __VA_ARGS__) +#define LOG_INFO(...) LabSoundLog(LOGLEVEL_INFO, __FILE__, __LINE__, __VA_ARGS__) +#define LOG_WARN(...) LabSoundLog(LOGLEVEL_WARN, __FILE__, __LINE__, __VA_ARGS__) +#define LOG_ERROR(...) LabSoundLog(LOGLEVEL_ERROR, __FILE__, __LINE__, __VA_ARGS__) +#define LOG_FATAL(...) LabSoundLog(LOGLEVEL_FATAL, __FILE__, __LINE__, __VA_ARGS__) + +void log_set_udata(void *udata); +void log_set_lock(log_LockFn fn); +void log_set_fp(FILE *fp); +void log_set_level(int level); +void log_set_quiet(int enable); + +void LabSoundLog(int level, const char *file, int line, const char *fmt, ...); +void LabSoundAssertLog(const char * file, int line, const char * function, const char * assertion); + +#if 0 +#if defined(_DEBUG) || defined(DEBUG) || defined(LABSOUND_ENABLE_LOGGING) +#define LOG(...) LabSoundLog(__FILE__, __LINE__, __VA_ARGS__); +#define LOG_ERROR(...) LabSoundLog(__FILE__, __LINE__, __VA_ARGS__) +#define LOG_VERBOSE(channel, ...) LabSoundLog(__FILE__, __LINE__, __VA_ARGS__) +#else +#define LOG(...) +#define LOG_ERROR(channel, ...) +#define LOG_VERBOSE(channel, ...) +#endif + +void LabSoundLog(const char * file, int line, const char * fmt, ...); +void LabSoundAssertLog(const char * file, int line, const char * function, const char * assertion); + +#endif + +#endif diff --git a/sources/LabSound/include/LabSound/extended/NoiseNode.h b/sources/LabSound/include/LabSound/extended/NoiseNode.h new file mode 100644 index 00000000..5954184f --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/NoiseNode.h @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef NOISE_NODE_H +#define NOISE_NODE_H + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioScheduledSourceNode.h" + +namespace lab +{ +class AudioSetting; + +class NoiseNode : public AudioScheduledSourceNode +{ + +public: + enum NoiseType + { + WHITE = 0, + PINK = 1, + BROWN = 2, + _Count = 3 + }; + + NoiseNode(AudioContext & ac); + virtual ~NoiseNode(); + + static const char* static_name() { return "Noise"; } + virtual const char* name() const override { return static_name(); } + + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + NoiseType type() const; + void setType(NoiseType newType); + +private: + virtual bool propagatesSilence(ContextRenderLock & r) const override; + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + std::shared_ptr _type; + + uint32_t whiteSeed = 1489853723; + + float lastBrown = 0; + + float pink0 = 0; + float pink1 = 0; + float pink2 = 0; + float pink3 = 0; + float pink4 = 0; + float pink5 = 0; + float pink6 = 0; +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/PWMNode.h b/sources/LabSound/include/LabSound/extended/PWMNode.h new file mode 100644 index 00000000..a195ae81 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/PWMNode.h @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef PWM_NODE_H +#define PWM_NODE_H + +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/AudioParam.h" + +namespace lab +{ + +// PWMNode implements a comparison based PWM. That could be improved. +// Expects two inputs. +// input 0 is the carrier, and input 1 is the modulator. +// If there is no modulator, then the node is a pass-through. +class PWMNode : public AudioBasicProcessorNode +{ + class PWMNodeInternal; + PWMNodeInternal * internalNode; + +public: + PWMNode(AudioContext & ac); + virtual ~PWMNode(); + static const char* static_name() { return "PWM"; } + virtual const char* name() const override { return static_name(); } +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/PdNode.h b/sources/LabSound/include/LabSound/extended/PdNode.h new file mode 100644 index 00000000..f469eb3f --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/PdNode.h @@ -0,0 +1,44 @@ +// Copyright (c) 2003-2013 Nick Porcino, All rights reserved. +// License is MIT: http://opensource.org/licenses/MIT + +// PureDataNode wraps an instance of pure-data as a signal processing node + +#pragma once + +#ifdef PD + +#include "LabSound/core/AudioBasicProcessorNode.h" + +namespace pd +{ +class PdBase; +class PdMidiReceiver; +class PdReceiver; +} + +namespace lab +{ + +class PureDataNode : public AudioBasicProcessorNode +{ + +public: + PureDataNode(AudioContext *, float sampleRate); + virtual ~PureDataNode(); + + static const char* static_name() { return "PureData"; } + virtual const char* name() const override { return static_name(); } + + pd::PdBase & pd() const; + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + +private: + class PureDataNodeInternal; + PureDataNodeInternal * data; +}; + +} // end namespace lab + +#endif diff --git a/sources/LabSound/include/LabSound/extended/PeakCompNode.h b/sources/LabSound/include/LabSound/extended/PeakCompNode.h new file mode 100644 index 00000000..b28fb201 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/PeakCompNode.h @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: MIT +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#ifndef PEAK_COMP_NODE_H +#define PEAK_COMP_NODE_H + +// PeakComp ported to LabSound from https://github.com/twobigears/tb_peakcomp +// Copyright (C) 2013, Two Big Ears Ltd (http://twobigears.com) + +/* + Stereo L+R peak compressor with variable knee-smooth, attack, release and makeup gain. + Varun Nair. varun@twobigears.com + + Inspired by: + http://www.eecs.qmul.ac.uk/~josh/documents/GiannoulisMassbergReiss-dynamicrangecompression-JAES2012.pdf + https://ccrma.stanford.edu/~jos/filters/Nonlinear_Filter_Example_Dynamic.htm + */ + +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/AudioParam.h" + +namespace lab +{ + +class PeakCompNode : public lab::AudioBasicProcessorNode +{ + + class PeakCompNodeInternal; + PeakCompNodeInternal * internalNode = nullptr; // We do not own this! + +public: + PeakCompNode(AudioContext & ac); + virtual ~PeakCompNode(); + + static const char* static_name() { return static_name(); } + virtual const char* name() const { return "PeakComp"; } + + // Threshold given in dB, default 0 + std::shared_ptr threshold() const; + + // Ratio, default 1:1 + std::shared_ptr ratio() const; + + // Attack in ms, default .0001f + std::shared_ptr attack() const; + + // Release in ms, default .0001f + std::shared_ptr release() const; + + // Makeup gain in dB, default 0 + std::shared_ptr makeup() const; + + // Knee smoothing (0 = hard, 1 = smooth), default 0 + std::shared_ptr knee() const; +}; +} +#endif diff --git a/sources/LabSound/include/LabSound/extended/PingPongDelayNode.h b/sources/LabSound/include/LabSound/extended/PingPongDelayNode.h new file mode 100644 index 00000000..65aaa9a8 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/PingPongDelayNode.h @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef PING_PONG_DELAY_NODE_H +#define PING_PONG_DELAY_NODE_H + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/ChannelMergerNode.h" +#include "LabSound/core/ChannelSplitterNode.h" +#include "LabSound/core/GainNode.h" +#include "LabSound/extended/BPMDelayNode.h" + +namespace lab +{ +class ContextGraphLock; +class AudioContext; + +class Subgraph +{ +public: + std::shared_ptr output; + std::shared_ptr input; + virtual void BuildSubgraph(AudioContext & ac) = 0; + virtual ~Subgraph() {} +}; + +class PingPongDelayNode : public Subgraph +{ + float tempo; + + std::shared_ptr leftDelay; + std::shared_ptr rightDelay; + + std::shared_ptr splitterGain; + std::shared_ptr wetGain; + std::shared_ptr feedbackGain; + + std::shared_ptr merger; + std::shared_ptr splitter; + +public: + PingPongDelayNode(AudioContext &, float tempo); + + void SetTempo(float t); + void SetFeedback(float f); + void SetLevel(float f); + void SetDelayIndex(TempoSync value); + + virtual void BuildSubgraph(AudioContext & ac) override; +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/PolyBLEPNode.h b/sources/LabSound/include/LabSound/extended/PolyBLEPNode.h new file mode 100644 index 00000000..df77b89e --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/PolyBLEPNode.h @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2020+, The LabSound Authors. All rights reserved. + +#ifndef lab_poly_blep_node_h +#define lab_poly_blep_node_h + +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioScheduledSourceNode.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/WaveTable.h" + +namespace lab +{ + +class AudioBus; +class AudioContext; +class AudioSetting; + +/* + * Anti-aliased (sometimes called virtual analog) digital oscillators that approximate the behavior of + * their analog counterparters is an active area of DSP research. Some seminal techniques are outlined + * below with several references that inform this implementation. + * \ref Band-limited Impulse Trains (BLIT) (Stilson & Smith 1996) + * \ref Band-limited Step Functions (BLEP) (Brandt 2001, Leary & Bright 2009) + * \ref MiniBLEP (minimum phase lowpass filtered prior to BLEP integration) (Brandt 2001) + * \ref Differentiated Parabolic Waveform Oscillators (DPW) (Valimaki 2010) + * \ref Polynomial Band-limited Step Functions (PolyBLEP) (Valimaki et. al 2010) + * \ref Improved Polynomial Transition Regions Algorithm for Alias-Suppressed Signal Synthesis(EPTR) (Ambrits and Bank, 2013) + * \ref Rounding Corners with BLAMP (PolyBLAMP) - (Esqueda, Valimaki, et. al 2016) + * [1] http://www.martin-finke.de/blog/articles/audio-plugins-018-polyblep-oscillator/ + * [2] http://metafunction.co.uk/all-about-digital-oscillators-part-2-blits-bleps/ + * [3] https://www.experimentalscene.com/articles/minbleps.php + */ + +enum class PolyBLEPType +{ + TRIANGLE, + SQUARE, + RECTANGLE, + SAWTOOTH, + RAMP, + MODIFIED_TRIANGLE, + MODIFIED_SQUARE, + HALF_WAVE_RECTIFIED_SINE, + FULL_WAVE_RECTIFIED_SINE, + TRIANGULAR_PULSE, + TRAPEZOID_FIXED, + TRAPEZOID_VARIABLE, + _PolyBLEPCount +}; + +class PolyBlepImpl; + +class PolyBLEPNode : public AudioScheduledSourceNode +{ + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + virtual bool propagatesSilence(ContextRenderLock & r) const override; + std::shared_ptr m_type; + std::unique_ptr polyblep; + +public: + PolyBLEPNode(AudioContext & ac); + virtual ~PolyBLEPNode(); + + static const char* static_name() { return "PolyBLEP"; } + virtual const char* name() const override { return static_name(); } + + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override { } + + PolyBLEPType type() const; + void setType(PolyBLEPType type); + + std::shared_ptr amplitude() { return m_amplitude; } + std::shared_ptr frequency() { return m_frequency; } + + std::shared_ptr m_amplitude; // default 1.0 + std::shared_ptr m_frequency; // hz + + void processPolyBLEP(ContextRenderLock & r, int bufferSize, int offset, int count); + + AudioFloatArray m_amplitudeValues; +}; + +} // namespace lab + +#endif // lab_poly_blep_node_h diff --git a/sources/LabSound/include/LabSound/extended/PowerMonitorNode.h b/sources/LabSound/include/LabSound/extended/PowerMonitorNode.h new file mode 100644 index 00000000..cf7f6097 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/PowerMonitorNode.h @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2013, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef POWER_MONITOR_NODE_H +#define POWER_MONITOR_NODE_H + +#include "LabSound/core/AudioBasicInspectorNode.h" +#include +#include + +namespace lab +{ + +class AudioSetting; + +// params: +// settings: windowSize +// +class PowerMonitorNode : public AudioBasicInspectorNode +{ +public: + PowerMonitorNode(AudioContext & ac); + virtual ~PowerMonitorNode(); + + static const char* static_name() { return "PowerMonitor"; } + virtual const char* name() const override { return static_name(); } + + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + // instantaneous estimation of power + float db() const { return _db; } + + // Could be better. Power is computed on the most recent frame. If the framesize is greater + // than the windowSize, then power is returned for the windowed end-of-frame. If framesize + // is less than windowSize, power is computed only on framesize. This could be a problem + // if the framesize is very large compared to the sample rate, for example, a 4k framesize + // on a 44khz samplerate is going to give you usable power measurements 11 times a second. + // If better resolution is required, it's probably better to use a RecorderNode, and perform + // analysis on the full data stream pulled from it. + // + // The intent of the power monitor node is to provide levels that can be used for a VU meter + // or a ducking algorithm. + // + void windowSize(int ws); + int windowSize() const; + +private: + virtual double tailTime(ContextRenderLock & r) const override { return 0; } // required for BasicInspector + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } // required for BasicInspector + + float _db; + std::shared_ptr _windowSize; +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/RealtimeAnalyser.h b/sources/LabSound/include/LabSound/extended/RealtimeAnalyser.h new file mode 100644 index 00000000..90cda052 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/RealtimeAnalyser.h @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef REALTIME_ANALYSER_H +#define REALTIME_ANALYSER_H + +#include "LabSound/core/AudioArray.h" +#include "LabSound/extended/AudioContextLock.h" +#include + +namespace lab +{ + +class AudioBus; +class FFTFrame; + +class RealtimeAnalyser +{ + + RealtimeAnalyser(const RealtimeAnalyser &); // noncopyable + +public: + RealtimeAnalyser(int fftSize); + virtual ~RealtimeAnalyser(); + + void reset(); + + int fftSize() const { return m_fftSize; } + void setFftSize(int fftSize); + + uint32_t frequencyBinCount() const { return m_fftSize / 2; } + + void setMinDecibels(double k) { m_minDecibels = k; } + double minDecibels() const { return m_minDecibels; } + + void setMaxDecibels(double k) { m_maxDecibels = k; } + double maxDecibels() const { return m_maxDecibels; } + + void setSmoothingTimeConstant(double k) { m_smoothingTimeConstant = k; } + double smoothingTimeConstant() const { return m_smoothingTimeConstant; } + + void getFloatFrequencyData(std::vector &); + void getFloatTimeDomainData(std::vector &); + + // if the destination array size differs from the fft size, the + // data will be interpolated if resample is true. Otherwise, the + // destination array will be resized t fit. + void getByteFrequencyData(std::vector &, bool resample); + void getByteTimeDomainData(std::vector &); + + void writeInput(ContextRenderLock & r, AudioBus *, int bufferSize); + + static const double DefaultSmoothingTimeConstant; + static const double DefaultMinDecibels; + static const double DefaultMaxDecibels; + + static const int DefaultFFTSize; + static const int MinFFTSize; + static const int MaxFFTSize; + static const int InputBufferSize; + +private: + // The audio thread writes the input audio here. + AudioFloatArray m_inputBuffer; + int m_writeIndex; + + int m_fftSize; + std::unique_ptr m_analysisFrame; + void doFFTAnalysis(); + + // doFFTAnalysis() stores the floating-point magnitude analysis data here. + AudioFloatArray m_magnitudeBuffer; + AudioFloatArray & magnitudeBuffer() { return m_magnitudeBuffer; } + + // A value between 0 and 1 which averages the previous version of m_magnitudeBuffer with the current analysis magnitude data. + double m_smoothingTimeConstant; + + // The range used when converting when using getByteFrequencyData(). + double m_minDecibels; + double m_maxDecibels; +}; + +} // namespace lab + +#endif // RealtimeAnalyser_h diff --git a/sources/LabSound/include/LabSound/extended/RecorderNode.h b/sources/LabSound/include/LabSound/extended/RecorderNode.h new file mode 100644 index 00000000..101ad070 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/RecorderNode.h @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#ifndef RECORDER_NODE_H +#define RECORDER_NODE_H + +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioContext.h" +#include +#include + +namespace lab +{ + +class RecorderNode : public AudioNode +{ + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + bool m_recording{false}; + + std::vector> m_data; // non-interleaved + mutable std::recursive_mutex m_mutex; + + float m_sampleRate; + +public: + + // create a recorder + RecorderNode(AudioContext & r, int channelCount = 2); + + // create a recorder with a specific configuration + RecorderNode(AudioContext & r, const AudioStreamConfig & outConfig); + virtual ~RecorderNode(); + + static const char* static_name() { return "Recorder"; } + virtual const char* name() const override { return static_name(); } + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + void startRecording() { m_recording = true; } + void stopRecording() { m_recording = false; } + + float recordedLengthInSeconds() const; + + // create a bus from the recording; it can be used by other nodes + // such as a SampledAudioNode. + std::unique_ptr createBusFromRecording(bool mixToMono); + + // returns true for success + bool writeRecordingToWav(const std::string & filenameWithWavExtension, bool mixToMono); +}; + +} // end namespace lab + +#endif diff --git a/sources/LabSound/include/LabSound/extended/Registry.h b/sources/LabSound/include/LabSound/extended/Registry.h new file mode 100644 index 00000000..576925f0 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/Registry.h @@ -0,0 +1,28 @@ +#pragma once + +#include "LabSound/core/AudioNode.h" +#include +#include + +namespace lab { + +typedef AudioNode* (*CreateNodeFn)(AudioContext&); +typedef void (*DeleteNodeFn)(AudioNode*); + +class NodeRegistry +{ + struct Detail; + Detail* _detail; + NodeRegistry(); + ~NodeRegistry(); + +public: + static NodeRegistry& Instance(); + bool Register(char const*const name, CreateNodeFn, DeleteNodeFn); + std::vector Names() const; + lab::AudioNode* Create(const std::string& n, lab::AudioContext& ac); +}; + +} // lab + +void LabSoundRegistryInit(); diff --git a/sources/LabSound/include/LabSound/extended/SfxrNode.h b/sources/LabSound/include/LabSound/extended/SfxrNode.h new file mode 100644 index 00000000..27de77f2 --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/SfxrNode.h @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef SFXR_NODE_H +#define SFXR_NODE_H + +#include "LabSound/core/AudioScheduledSourceNode.h" +#include "LabSound/core/Macros.h" + +namespace lab +{ + +class SfxrNode : public AudioScheduledSourceNode +{ +public: + SfxrNode(AudioContext & ac); + virtual ~SfxrNode(); + + static const char* static_name() { return "SFXR"; } + virtual const char* name() const override { return static_name(); } + + // AudioNode + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + std::shared_ptr preset() const { return _preset; } + + // SfxrNode - values in sfxr units + std::shared_ptr waveType() const { return _waveType; } + + std::shared_ptr attackTime() const { return _attack; } + std::shared_ptr sustainTime() const { return _sustainTime; } + std::shared_ptr sustainPunch() const { return _sustainPunch; } + std::shared_ptr decayTime() const { return _decayTime; } + + std::shared_ptr startFrequency() const { return _startFrequency; } + std::shared_ptr minFrequency() const { return _minFrequency; } + std::shared_ptr slide() const { return _slide; } + std::shared_ptr deltaSlide() const { return _deltaSlide; } + + std::shared_ptr vibratoDepth() const { return _vibratoDepth; } + std::shared_ptr vibratoSpeed() const { return _vibratoSpeed; } + + std::shared_ptr changeAmount() const { return _changeAmount; } + std::shared_ptr changeSpeed() const { return _changeSpeed; } + + std::shared_ptr squareDuty() const { return _squareDuty; } + std::shared_ptr dutySweep() const { return _dutySweep; } + + std::shared_ptr repeatSpeed() const { return _repeatSpeed; } + std::shared_ptr phaserOffset() const { return _phaserOffset; } + std::shared_ptr phaserSweep() const { return _phaserSweep; } + + std::shared_ptr lpFilterCutoff() const { return _lpFilterCutoff; } + std::shared_ptr lpFilterCutoffSweep() const { return _lpFilterCutoffSweep; } + std::shared_ptr lpFiterResonance() const { return _lpFiterResonance; } + std::shared_ptr hpFilterCutoff() const { return _hpFilterCutoff; } + std::shared_ptr hpFilterCutoffSweep() const { return _hpFilterCutoffSweep; } + + // utility functions that set the params with Hz values + void setStartFrequencyInHz(float); + void setVibratoSpeedInHz(float); + + // sfxr uses a lot of weird parameters. These are utility functions to help with that. + float envelopeTimeInSeconds(float sfxrEnvTime); + float envelopeTimeInSfxrUnits(float t); + float frequencyInSfxrUnits(float hz); + float frequencyInHz(float sfxr); + float vibratoInSfxrUnits(float hz); + float vibratoInHz(float sfxr); + float filterFreqInHz(float sfxr); + float filterFreqInSfxrUnits(float hz); + + enum WaveType + { + SQUARE = 0, + SAWTOOTH, + SINE, + NOISE + }; + + // some presets + void setDefaultBeep(); + void coin(); + void laser(); + void explosion(); + void powerUp(); + void hit(); + void jump(); + void select(); + + // mutate the current sound + void mutate(); + void randomize(); + +private: + virtual bool propagatesSilence(ContextRenderLock & r) const override; + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + std::shared_ptr _preset; + std::shared_ptr _waveType; + std::shared_ptr _attack; + std::shared_ptr _sustainTime; + std::shared_ptr _sustainPunch; + std::shared_ptr _decayTime; + std::shared_ptr _startFrequency; + std::shared_ptr _minFrequency; + std::shared_ptr _slide; + std::shared_ptr _deltaSlide; + std::shared_ptr _vibratoDepth; + std::shared_ptr _vibratoSpeed; + std::shared_ptr _changeAmount; + std::shared_ptr _changeSpeed; + std::shared_ptr _squareDuty; + std::shared_ptr _dutySweep; + std::shared_ptr _repeatSpeed; + std::shared_ptr _phaserOffset; + std::shared_ptr _phaserSweep; + std::shared_ptr _lpFilterCutoff; + std::shared_ptr _lpFilterCutoffSweep; + std::shared_ptr _lpFiterResonance; + std::shared_ptr _hpFilterCutoff; + std::shared_ptr _hpFilterCutoffSweep; + + class Sfxr; + Sfxr * sfxr; +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/SpatializationNode.h b/sources/LabSound/include/LabSound/extended/SpatializationNode.h new file mode 100644 index 00000000..cfc3f1dc --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/SpatializationNode.h @@ -0,0 +1,80 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef SPATIALIZATION_NODE_H +#define SPATIALIZATION_NODE_H + +#include "LabSound/core/PannerNode.h" +#include + +namespace lab +{ + +struct Occluder +{ + float x, y, z; + float innerRadius; + float outerRadius; + float maxAttenuation; + + Occluder() { } + + Occluder(float x, float y, float z, float radius) + : x(x) + , y(y) + , z(z) + , innerRadius(radius * 0.75f) + , outerRadius(radius) + , maxAttenuation(0) + { + } + + Occluder(const Occluder & rhs) + : x(rhs.x) + , y(rhs.y) + , z(rhs.z) + , innerRadius(rhs.innerRadius) + , outerRadius(rhs.outerRadius) + , maxAttenuation(rhs.maxAttenuation) + { + } + + Occluder & operator=(const Occluder & rhs) + { + x = rhs.x; + y = rhs.y; + z = rhs.z; + innerRadius = rhs.innerRadius; + outerRadius = rhs.outerRadius; + maxAttenuation = rhs.maxAttenuation; + return *this; + } +}; + +class Occluders +{ + std::map occluders; + +public: + void setOccluder(int id, float x, float y, float z, float radius); + void removeOccluder(int id); + float occlusion(const FloatPoint3D & sourcePos, const FloatPoint3D & listenerPos) const; +}; + +typedef std::shared_ptr OccludersPtr; + +class SpatializationNode : public PannerNode +{ + virtual float distanceConeGain(ContextRenderLock & r); + std::shared_ptr occluders; + +public: + SpatializationNode(AudioContext & ac); + virtual ~SpatializationNode() = default; + void setOccluders(OccludersPtr ptr); +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/SpectralMonitorNode.h b/sources/LabSound/include/LabSound/extended/SpectralMonitorNode.h new file mode 100644 index 00000000..236c37ce --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/SpectralMonitorNode.h @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef SPECTRAL_MONITOR_NODE_H +#define SPECTRAL_MONITOR_NODE_H + +#include "LabSound/core/AudioBasicInspectorNode.h" +#include "LabSound/core/AudioContext.h" + +#include +#include + +namespace lab +{ +// params: +// settings: windowSize +class SpectralMonitorNode : public AudioBasicInspectorNode +{ + class SpectralMonitorNodeInternal; + SpectralMonitorNodeInternal * internalNode = nullptr; + +public: + SpectralMonitorNode(AudioContext & ac); + virtual ~SpectralMonitorNode(); + + static const char* static_name() { return "SpectralMonitor"; } + virtual const char* name() const override { return static_name(); } + + virtual void process(ContextRenderLock &, int bufferSize) override; + virtual void reset(ContextRenderLock &) override; + + void spectralMag(std::vector & result); + void windowSize(unsigned int ws); + unsigned int windowSize() const; + +private: + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/SupersawNode.h b/sources/LabSound/include/LabSound/extended/SupersawNode.h new file mode 100644 index 00000000..6a41a77c --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/SupersawNode.h @@ -0,0 +1,45 @@ + +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#ifndef SUPERSAW_NODE_H +#define SUPERSAW_NODE_H + +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioScheduledSourceNode.h" + +namespace lab +{ +class SupersawNode : public AudioScheduledSourceNode +{ + class SupersawNodeInternal; + std::unique_ptr internalNode; + +public: + SupersawNode(AudioContext & ac); + virtual ~SupersawNode(); + + static const char* static_name() { return "SuperSaw"; } + virtual const char* name() const override { return static_name(); } + + std::shared_ptr sawCount() const; + std::shared_ptr frequency() const; + std::shared_ptr detune() const; + + void update(ContextRenderLock & r); // call if sawCount is changed. CBB: update automatically + +private: + virtual void process(ContextRenderLock &, int bufferSize) override; + + virtual void reset(ContextRenderLock &) override {} + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + virtual bool propagatesSilence(ContextRenderLock & r) const override; +}; +} + +#endif diff --git a/sources/LabSound/include/LabSound/extended/Util.h b/sources/LabSound/include/LabSound/extended/Util.h new file mode 100644 index 00000000..c298246e --- /dev/null +++ b/sources/LabSound/include/LabSound/extended/Util.h @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef LABSOUND_UTIL_H +#define LABSOUND_UTIL_H + +#include +#include +#include + +// clang-format off +#define NO_COPY(C) C(const C &) = delete; C & operator = (const C &) = delete +#define NO_MOVE(C) NO_COPY(C); C(C &&) = delete; C & operator = (const C &&) = delete + +#if defined(_MSC_VER) +# if defined(min) +# undef min +# endif +# if defined(max) +# undef max +# endif +#endif + +namespace lab +{ + +class UniformRandomGenerator +{ + std::random_device rd; + std::mt19937_64 gen; + std::uniform_real_distribution dist_full {0.f, 1.f}; + +public: + UniformRandomGenerator() : rd(), gen(rd()) {} + float random_float() { return dist_full(gen); } // [0.f, 1.f] + float random_float(float max) { std::uniform_real_distribution dist_user(0.f, max); return dist_user(gen); } + float random_float(float min, float max) { std::uniform_real_distribution dist_user(min, max); return dist_user(gen); } + uint32_t random_uint(uint32_t max) { std::uniform_int_distribution dist_int(0, max); return dist_int(gen); } + int32_t random_int(int32_t min, int32_t max) { std::uniform_int_distribution dist_int(min, max); return dist_int(gen); } +}; +// clang-format on + +template +inline T RoundNextPow2(T v) +{ + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v++; + return v; +} + +template +inline T clampTo(S value, T min, T max) +{ + if (value >= static_cast(max)) return max; + if (value <= static_cast(min)) return min; + return static_cast(value); +} + +// Hard-coded to the IRCAM HRTF Database +struct HRTFDatabaseInfo +{ + std::string subjectName; + std::string searchPath; + float sampleRate; + + int minElevation = -45; + int maxElevation = 90; + int rawElevationAngleSpacing = 15; + + // Number of elevations loaded from resource + int numberOfRawElevations = 10; // -45 -> +90 (each 15 degrees) + + // Interpolates by this factor to get the total number of elevations from every elevation loaded from resource + int interpolationFactor = 1; + + // Total number of elevations after interpolation. + int numTotalElevations; + + HRTFDatabaseInfo(const std::string & subjectName, const std::string & searchPath, float sampleRate) + : subjectName(subjectName) + , searchPath(searchPath) + , sampleRate(sampleRate) + { + numTotalElevations = numberOfRawElevations * interpolationFactor; + } + + // Returns the index for the correct HRTFElevation given the elevation angle. + int indexFromElevationAngle(double elevationAngle) + { + elevationAngle = std::max((double) minElevation, elevationAngle); + elevationAngle = std::min((double) maxElevation, elevationAngle); + return (int) (interpolationFactor * (elevationAngle - minElevation) / rawElevationAngleSpacing); + } +}; +} + +#endif diff --git a/sources/LabSound/src/backends/FFTFrameAppleAcclerate.cpp b/sources/LabSound/src/backends/FFTFrameAppleAcclerate.cpp new file mode 100644 index 00000000..bd47cba3 --- /dev/null +++ b/sources/LabSound/src/backends/FFTFrameAppleAcclerate.cpp @@ -0,0 +1,162 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/Macros.h" + +#if defined(LABSOUND_PLATFORM_OSX) && !defined(WEBAUDIO_KISSFFT) + +#include "internal/Assertions.h" +#include "internal/FFTFrame.h" +#include "internal/VectorMath.h" + +namespace lab +{ + +const int kMaxFFTPow2Size = 24; + +FFTSetup * FFTFrame::fftSetups = 0; + +// Normal constructor: allocates for a given fftSize +FFTFrame::FFTFrame(int fftSize) + : m_realData(fftSize) + , m_imagData(fftSize) +{ + m_FFTSize = fftSize; + m_log2FFTSize = static_cast(log2(fftSize)); + + // We only allow power of two + ASSERT(1UL << m_log2FFTSize == m_FFTSize); + + // Lazily create and share fftSetup with other frames + m_FFTSetup = fftSetupForSize(fftSize); + + // Setup frame data + m_frame.realp = m_realData.data(); + m_frame.imagp = m_imagData.data(); +} + +// Creates a blank/empty frame (interpolate() must later be called) +FFTFrame::FFTFrame() + : m_realData(0) + , m_imagData(0) +{ + // Later will be set to correct values when interpolate() is called + m_frame.realp = 0; + m_frame.imagp = 0; + + m_FFTSize = 0; + m_log2FFTSize = 0; +} + +// Copy constructor +FFTFrame::FFTFrame(const FFTFrame & frame) + : m_FFTSize(frame.m_FFTSize) + , m_log2FFTSize(frame.m_log2FFTSize) + , m_FFTSetup(frame.m_FFTSetup) + , m_realData(frame.m_FFTSize) + , m_imagData(frame.m_FFTSize) +{ + // Setup frame data + m_frame.realp = m_realData.data(); + m_frame.imagp = m_imagData.data(); + + // Copy/setup frame data + size_t nbytes = sizeof(float) * m_FFTSize; + memcpy(realData(), frame.m_frame.realp, nbytes); + memcpy(imagData(), frame.m_frame.imagp, nbytes); +} + +FFTFrame::~FFTFrame() +{ +} + +void FFTFrame::cleanup() +{ + if (!fftSetups) + return; + + for (int i = 0; i < kMaxFFTPow2Size; ++i) + { + if (fftSetups[i]) + vDSP_destroy_fftsetup(fftSetups[i]); + } + + free(fftSetups); + fftSetups = 0; +} + +void FFTFrame::multiply(const FFTFrame & frame) +{ + FFTFrame & frame1 = *this; + const FFTFrame & frame2 = frame; + + float * realP1 = frame1.realData(); + float * imagP1 = frame1.imagData(); + const float * realP2 = frame2.realData(); + const float * imagP2 = frame2.imagData(); + + size_t halfSize = m_FFTSize / 2; + float real0 = realP1[0]; + float imag0 = imagP1[0]; + + // Complex multiply + VectorMath::zvmul(realP1, imagP1, realP2, imagP2, realP1, imagP1, halfSize); + + // Multiply the packed DC/nyquist component + realP1[0] = real0 * realP2[0]; + imagP1[0] = imag0 * imagP2[0]; + + // Scale accounts for vecLib's peculiar scaling + // This ensures the right scaling all the way back to inverse FFT + float scale = 0.5f; + + VectorMath::vsmul(realP1, 1, &scale, realP1, 1, halfSize); + VectorMath::vsmul(imagP1, 1, &scale, imagP1, 1, halfSize); +} + +void FFTFrame::computeForwardFFT(const float * data) +{ + vDSP_ctoz((DSPComplex *) data, 2, &m_frame, 1, m_FFTSize / 2); + vDSP_fft_zrip(m_FFTSetup, &m_frame, 1, m_log2FFTSize, FFT_FORWARD); +} + +void FFTFrame::computeInverseFFT(float * data) +{ + vDSP_fft_zrip(m_FFTSetup, &m_frame, 1, m_log2FFTSize, FFT_INVERSE); + vDSP_ztoc(&m_frame, 1, (DSPComplex *) data, 2, m_FFTSize / 2); + + // Do final scaling so that x == IFFT(FFT(x)) + float scale = 0.5f / m_FFTSize; + vDSP_vsmul(data, 1, &scale, data, 1, m_FFTSize); +} + +FFTSetup FFTFrame::fftSetupForSize(int fftSize) +{ + if (!fftSetups) + { + fftSetups = (FFTSetup *) malloc(sizeof(FFTSetup) * kMaxFFTPow2Size); + memset(fftSetups, 0, sizeof(FFTSetup) * kMaxFFTPow2Size); + } + + int pow2size = static_cast(log2(fftSize)); + ASSERT(pow2size < kMaxFFTPow2Size); + if (!fftSetups[pow2size]) + fftSetups[pow2size] = vDSP_create_fftsetup(pow2size, FFT_RADIX2); + + return fftSetups[pow2size]; +} + +float * FFTFrame::realData() const +{ + return m_frame.realp; +} + +float * FFTFrame::imagData() const +{ + return m_frame.imagp; +} + +} // namespace lab + +#endif // #if OS(DARWIN) diff --git a/sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.cpp b/sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.cpp new file mode 100644 index 00000000..6c897248 --- /dev/null +++ b/sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.cpp @@ -0,0 +1,313 @@ +// SPDX-License-Identifier: BSD-3-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#include "AudioDevice_RtAudio.h" + +#include "internal/Assertions.h" +#include "internal/VectorMath.h" + +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioNode.h" + +#include "LabSound/extended/Logging.h" + +#include "RtAudio.h" + +namespace lab +{ + +//////////////////////////////////////////////////// +// Platform/backend specific static functions // +//////////////////////////////////////////////////// + +std::vector AudioDevice::MakeAudioDeviceList() +{ + std::vector rt_audio_apis{ + "unspecified", + "linux_alsa", + "linux_pulse", + "linux_oss", + "unix_jack", + "macos_coreaudio", + "windows_wasapi", + "windows_asio", + "windows_directsound", + "rtaudio_dummy"}; + + RtAudio rt; + if (rt.getDeviceCount() <= 0) throw std::runtime_error("no rtaudio devices available!"); + + const auto api_enum = rt.getCurrentApi(); + LOG_INFO("using rtaudio api %s", rt_audio_apis[static_cast(api_enum)].c_str()); + + auto to_flt_vec = [](const std::vector & vec) { + std::vector result; + for (auto & i : vec) result.push_back(static_cast(i)); + return result; + }; + + std::vector devices; + for (uint32_t i = 0; i < rt.getDeviceCount(); ++i) + { + RtAudio::DeviceInfo info = rt.getDeviceInfo(i); + + if (info.probed) + { + AudioDeviceInfo lab_device_info; + lab_device_info.index = i; + lab_device_info.identifier = info.name; + lab_device_info.num_output_channels = info.outputChannels; + lab_device_info.num_input_channels = info.inputChannels; + lab_device_info.supported_samplerates = to_flt_vec(info.sampleRates); + lab_device_info.nominal_samplerate = static_cast(info.preferredSampleRate); + lab_device_info.is_default_output = info.isDefaultOutput; + lab_device_info.is_default_input = info.isDefaultInput; + + devices.push_back(lab_device_info); + } + else + { + LOG_ERROR("probing failed %s", info.name.c_str()); + } + } + + return devices; +} + +AudioDeviceIndex AudioDevice::GetDefaultOutputAudioDeviceIndex() noexcept +{ + RtAudio rt; + if (rt.getDeviceCount() <= 0) return {0, false}; + return {rt.getDefaultOutputDevice(), true}; +} + +AudioDeviceIndex AudioDevice::GetDefaultInputAudioDeviceIndex() noexcept +{ + RtAudio rt; + if (rt.getDeviceCount() <= 0) return {0, false}; + return {rt.getDefaultInputDevice(), true}; +} + +AudioDevice * AudioDevice::MakePlatformSpecificDevice( + AudioDeviceRenderCallback & callback, + const AudioStreamConfig & outputConfig, + const AudioStreamConfig & inputConfig) +{ + return new AudioDevice_RtAudio(callback, outputConfig, inputConfig); +} + + +///////////////////////////// +// AudioDevice_RtAudio // +///////////////////////////// + +const float kLowThreshold = -1.0f; +const float kHighThreshold = 1.0f; +const bool kInterleaved = false; + +AudioDevice_RtAudio::AudioDevice_RtAudio( + AudioDeviceRenderCallback & callback, + const AudioStreamConfig & _outputConfig, const AudioStreamConfig & _inputConfig) + : _callback(callback) + , outputConfig(_outputConfig) + , inputConfig(_inputConfig) +{ + if (rtaudio_ctx.getDeviceCount() < 1) + { + LOG_ERROR("no audio devices available"); + } + + rtaudio_ctx.showWarnings(true); + + // Translate AudioStreamConfig into RTAudio-native data structures + + RtAudio::StreamParameters outputParams; + outputParams.deviceId = outputConfig.device_index; + outputParams.nChannels = outputConfig.desired_channels; + LOG_INFO("using output device idx: %i", outputConfig.device_index); + if (outputConfig.device_index >= 0) LOG_INFO("using output device name: %s", rtaudio_ctx.getDeviceInfo(outputParams.deviceId).name.c_str()); + + RtAudio::StreamParameters inputParams; + inputParams.deviceId = inputConfig.device_index; + inputParams.nChannels = inputConfig.desired_channels; + LOG_INFO("using input device idx: %i", inputConfig.device_index); + if (inputConfig.device_index >= 0) LOG_INFO("using input device name: %s", rtaudio_ctx.getDeviceInfo(inputParams.deviceId).name.c_str()); + + authoritativeDeviceSampleRateAtRuntime = outputConfig.desired_samplerate; + + if (inputConfig.desired_channels > 0) + { + auto inDeviceInfo = rtaudio_ctx.getDeviceInfo(inputParams.deviceId); + if (inDeviceInfo.probed && inDeviceInfo.inputChannels > 0) + { + // ensure that the number of input channels buffered does not exceed the number available. + inputParams.nChannels = (inDeviceInfo.inputChannels < inputConfig.desired_channels) ? inDeviceInfo.inputChannels : inputConfig.desired_channels; + inputConfig.desired_channels = inputParams.nChannels; + LOG_INFO("[AudioDevice_RtAudio] adjusting number of input channels: %i ", inputParams.nChannels); + } + } + + RtAudio::StreamOptions options; + // RTAUDIO_MINIMIZE_LATENCY tells RtAudio to use the hardware's minimum buffer size + // which is not desirable as the minimum way be too small, and a non-power of 2. + //options.flags = RTAUDIO_MINIMIZE_LATENCY; + if (!kInterleaved) options.flags |= RTAUDIO_NONINTERLEAVED; + + // Note! RtAudio has a hard limit on a power of two buffer size, non-power of two sizes will result in + // heap corruption, for example, when dac.stopStream() is invoked. + uint32_t bufferFrames = AudioNode::ProcessingSizeInFrames; + + samplingInfo.epoch[0] = samplingInfo.epoch[1] = std::chrono::high_resolution_clock::now(); + + try + { + rtaudio_ctx.openStream(&outputParams, (inputParams.nChannels > 0) ? &inputParams : nullptr, RTAUDIO_FLOAT32, + static_cast(authoritativeDeviceSampleRateAtRuntime), &bufferFrames, &rt_audio_callback, this, &options); + } + catch (const RtAudioError & e) + { + LOG_ERROR(e.getMessage().c_str()); + } +} + +AudioDevice_RtAudio::~AudioDevice_RtAudio() +{ + if (rtaudio_ctx.isStreamOpen()) + { + rtaudio_ctx.closeStream(); + } +} + +void AudioDevice_RtAudio::start() +{ + ASSERT(authoritativeDeviceSampleRateAtRuntime != 0.f); // something went very wrong + try + { + rtaudio_ctx.startStream(); + } + catch (const RtAudioError & e) + { + LOG_ERROR(e.getMessage().c_str()); + } +} + +void AudioDevice_RtAudio::stop() +{ + try + { + rtaudio_ctx.stopStream(); + } + catch (const RtAudioError & e) + { + LOG_ERROR(e.getMessage().c_str()); + } +} + +bool AudioDevice_RtAudio::isRunning() const +{ + try + { + return rtaudio_ctx.isStreamRunning(); + } + catch (const RtAudioError & e) + { + LOG_ERROR(e.getMessage().c_str()); + return false; + } +} + + +// Pulls on our provider to get rendered audio stream. +void AudioDevice_RtAudio::render(int numberOfFrames, void * outputBuffer, void * inputBuffer) +{ + float * fltOutputBuffer = reinterpret_cast(outputBuffer); + float * fltInputBuffer = reinterpret_cast(inputBuffer); + + if (outputConfig.desired_channels) + { + if (!_renderBus || _renderBus->length() < numberOfFrames) + { + _renderBus.reset(new AudioBus(outputConfig.desired_channels, numberOfFrames, true)); + _renderBus->setSampleRate(authoritativeDeviceSampleRateAtRuntime); + } + } + + if (inputConfig.desired_channels) + { + if (!_inputBus || _inputBus->length() < numberOfFrames) + { + _inputBus.reset(new AudioBus(inputConfig.desired_channels, numberOfFrames, true)); + _inputBus->setSampleRate(authoritativeDeviceSampleRateAtRuntime); + } + } + + // copy the input buffer + if (inputConfig.desired_channels) + { + if (kInterleaved) + { + for (uint32_t i = 0; i < inputConfig.desired_channels; ++i) + { + AudioChannel * channel = _inputBus->channel(i); + float * src = &fltInputBuffer[i]; + VectorMath::vclip(src, 1, &kLowThreshold, &kHighThreshold, channel->mutableData(), inputConfig.desired_channels, numberOfFrames); + } + } + else + { + for (uint32_t i = 0; i < inputConfig.desired_channels; ++i) + { + AudioChannel * channel = _inputBus->channel(i); + float * src = &fltInputBuffer[i * numberOfFrames]; + VectorMath::vclip(src, 1, &kLowThreshold, &kHighThreshold, channel->mutableData(), 1, numberOfFrames); + } + } + } + + // Update sampling info + const int32_t index = 1 - (samplingInfo.current_sample_frame & 1); + const uint64_t t = samplingInfo.current_sample_frame & ~1; + samplingInfo.sampling_rate = authoritativeDeviceSampleRateAtRuntime; + samplingInfo.current_sample_frame = t + numberOfFrames + index; + samplingInfo.current_time = samplingInfo.current_sample_frame / static_cast(samplingInfo.sampling_rate); + samplingInfo.epoch[index] = std::chrono::high_resolution_clock::now(); + + // Pull on the graph + _callback.render(_inputBus.get(), _renderBus.get(), numberOfFrames, samplingInfo); + + // Then deliver the rendered audio back to rtaudio, ready for the next callback + if (outputConfig.desired_channels) + { + // Clamp values at 0db (i.e., [-1.0, 1.0]) and also copy result to the DAC output buffer + if (kInterleaved) + { + for (uint32_t i = 0; i < outputConfig.desired_channels; ++i) + { + AudioChannel * channel = _renderBus->channel(i); + float * dst = &fltOutputBuffer[i]; + VectorMath::vclip(channel->data(), 1, &kLowThreshold, &kHighThreshold, dst, outputConfig.desired_channels, numberOfFrames); + } + } + else + { + for (uint32_t i = 0; i < outputConfig.desired_channels; ++i) + { + AudioChannel * channel = _renderBus->channel(i); + float * dst = &fltOutputBuffer[i * numberOfFrames]; + VectorMath::vclip(channel->data(), 1, &kLowThreshold, &kHighThreshold, dst, 1, numberOfFrames); + } + } + } +} + +int rt_audio_callback(void * outputBuffer, void * inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void * userData) +{ + AudioDevice_RtAudio * self = reinterpret_cast(userData); + float * fltOutputBuffer = reinterpret_cast(outputBuffer); + memset(fltOutputBuffer, 0, nBufferFrames * self->outputConfig.desired_channels * sizeof(float)); + self->render(nBufferFrames, fltOutputBuffer, inputBuffer); + return 0; +} + +} // namespace lab diff --git a/sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.h b/sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.h new file mode 100644 index 00000000..8098d786 --- /dev/null +++ b/sources/LabSound/src/backends/RtAudio/AudioDevice_RtAudio.h @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: BSD-3-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#pragma once + +#ifndef labsound_audiodevice_rtaudio_hpp +#define labsound_audiodevice_rtaudio_hpp + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioNode.h" + +#include "RtAudio.h" + +namespace lab +{ + +class AudioDevice_RtAudio : public AudioDevice +{ + AudioDeviceRenderCallback & _callback; + + std::unique_ptr _renderBus; + std::unique_ptr _inputBus; + + RtAudio rtaudio_ctx; + + SamplingInfo samplingInfo; + +public: + AudioDevice_RtAudio(AudioDeviceRenderCallback &, const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig); + virtual ~AudioDevice_RtAudio(); + + AudioStreamConfig outputConfig; + AudioStreamConfig inputConfig; + float authoritativeDeviceSampleRateAtRuntime{0.f}; + + // AudioDevice Interface + void render(int numberOfFrames, void * outputBuffer, void * inputBuffer); + virtual void start() override final; + virtual void stop() override final; + virtual bool isRunning() const override final; +}; + +int rt_audio_callback(void * outputBuffer, void * inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status, void * userData); + +} // namespace lab + +#endif // labsound_audiodevice_rtaudio_hpp diff --git a/sources/LabSound/src/backends/RtAudio/RtAudio.cpp b/sources/LabSound/src/backends/RtAudio/RtAudio.cpp new file mode 100644 index 00000000..d360a056 --- /dev/null +++ b/sources/LabSound/src/backends/RtAudio/RtAudio.cpp @@ -0,0 +1,11788 @@ +/************************************************************************/ +/*! \class RtAudio + \brief Realtime audio i/o C++ classes. + + RtAudio provides a common API (Application Programming Interface) + for realtime audio input/output across Linux (native ALSA, Jack, + and OSS), Macintosh OS X (CoreAudio and Jack), and Windows + (DirectSound, ASIO and WASAPI) operating systems. + + RtAudio GitHub site: https://github.com/thestk/rtaudio + RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/ + + RtAudio: realtime audio i/o C++ classes + Copyright (c) 2001-2019 Gary P. Scavone + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + Any person wishing to distribute modifications to the Software is + asked to send the modifications to the original developer so that + they can be incorporated into the canonical version. This is, + however, not a binding provision of this license. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/************************************************************************/ + +// RtAudio: Version 5.1.0 + +#include "RtAudio.h" +#include +#include +#include +#include +#include +#include + +// Static variable definitions. +const unsigned int RtApi::MAX_SAMPLE_RATES = 14; +const unsigned int RtApi::SAMPLE_RATES[] = { + 4000, 5512, 8000, 9600, 11025, 16000, 22050, + 32000, 44100, 48000, 88200, 96000, 176400, 192000}; + +#if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__) || defined(__WINDOWS_WASAPI__) +#define MUTEX_INITIALIZE(A) InitializeCriticalSection(A) +#define MUTEX_DESTROY(A) DeleteCriticalSection(A) +#define MUTEX_LOCK(A) EnterCriticalSection(A) +#define MUTEX_UNLOCK(A) LeaveCriticalSection(A) + +#include "tchar.h" + +static std::string convertCharPointerToStdString(const char * text) +{ + return std::string(text); +} + +static std::string convertCharPointerToStdString(const wchar_t * text) +{ + int length = WideCharToMultiByte(CP_UTF8, 0, text, -1, NULL, 0, NULL, NULL); + std::string s(length - 1, '\0'); + WideCharToMultiByte(CP_UTF8, 0, text, -1, &s[0], length, NULL, NULL); + return s; +} + +#elif defined(__LINUX_ALSA__) || defined(__LINUX_PULSE__) || defined(__UNIX_JACK__) || defined(__LINUX_OSS__) || defined(__MACOSX_CORE__) +// pthread API +#define MUTEX_INITIALIZE(A) pthread_mutex_init(A, NULL) +#define MUTEX_DESTROY(A) pthread_mutex_destroy(A) +#define MUTEX_LOCK(A) pthread_mutex_lock(A) +#define MUTEX_UNLOCK(A) pthread_mutex_unlock(A) +#else +#define MUTEX_INITIALIZE(A) abs(*A) // dummy definitions +#define MUTEX_DESTROY(A) abs(*A) // dummy definitions +#endif + +// *************************************************** // +// +// RtAudio definitions. +// +// *************************************************** // + +std::string RtAudio ::getVersion(void) +{ + return RTAUDIO_VERSION; +} + +// Define API names and display names. +// Must be in same order as API enum. +extern "C" +{ + const char * rtaudio_api_names[][2] = { + {"unspecified", "Unknown"}, + {"alsa", "ALSA"}, + {"pulse", "Pulse"}, + {"oss", "OpenSoundSystem"}, + {"jack", "Jack"}, + {"core", "CoreAudio"}, + {"wasapi", "WASAPI"}, + {"asio", "ASIO"}, + {"ds", "DirectSound"}, + {"dummy", "Dummy"}, + }; + const unsigned int rtaudio_num_api_names = sizeof(rtaudio_api_names) / sizeof(rtaudio_api_names[0]); + + // The order here will control the order of RtAudio's API search in + // the constructor. + extern "C" const RtAudio::Api rtaudio_compiled_apis[] = { +#if defined(__UNIX_JACK__) + RtAudio::UNIX_JACK, +#endif +#if defined(__LINUX_PULSE__) + RtAudio::LINUX_PULSE, +#endif +#if defined(__LINUX_ALSA__) + RtAudio::LINUX_ALSA, +#endif +#if defined(__LINUX_OSS__) + RtAudio::LINUX_OSS, +#endif +#if defined(__WINDOWS_ASIO__) + RtAudio::WINDOWS_ASIO, +#endif +#if defined(__WINDOWS_WASAPI__) + RtAudio::WINDOWS_WASAPI, +#endif +#if defined(__WINDOWS_DS__) + RtAudio::WINDOWS_DS, +#endif +#if defined(__MACOSX_CORE__) + RtAudio::MACOSX_CORE, +#endif +#if defined(__RTAUDIO_DUMMY__) + RtAudio::RTAUDIO_DUMMY, +#endif + RtAudio::UNSPECIFIED, + }; + extern "C" const unsigned int rtaudio_num_compiled_apis = sizeof(rtaudio_compiled_apis) / sizeof(rtaudio_compiled_apis[0]) - 1; +} + +// This is a compile-time check that rtaudio_num_api_names == RtAudio::NUM_APIS. +// If the build breaks here, check that they match. +template +class StaticAssert +{ +private: + StaticAssert() {} +}; +template <> +class StaticAssert +{ +public: + StaticAssert() {} +}; +class StaticAssertions +{ + StaticAssertions() + { + StaticAssert(); + } +}; + +void RtAudio ::getCompiledApi(std::vector & apis) +{ + apis = std::vector(rtaudio_compiled_apis, + rtaudio_compiled_apis + rtaudio_num_compiled_apis); +} + +std::string RtAudio ::getApiName(RtAudio::Api api) +{ + if (api < 0 || api >= RtAudio::NUM_APIS) + return ""; + return rtaudio_api_names[api][0]; +} + +std::string RtAudio ::getApiDisplayName(RtAudio::Api api) +{ + if (api < 0 || api >= RtAudio::NUM_APIS) + return "Unknown"; + return rtaudio_api_names[api][1]; +} + +RtAudio::Api RtAudio ::getCompiledApiByName(const std::string & name) +{ + unsigned int i = 0; + for (i = 0; i < rtaudio_num_compiled_apis; ++i) + if (name == rtaudio_api_names[rtaudio_compiled_apis[i]][0]) + return rtaudio_compiled_apis[i]; + return RtAudio::UNSPECIFIED; +} + +void RtAudio ::openRtApi(RtAudio::Api api) +{ + if (rtapi_) + delete rtapi_; + rtapi_ = 0; + +#if defined(__UNIX_JACK__) + if (api == UNIX_JACK) + rtapi_ = new RtApiJack(); +#endif +#if defined(__LINUX_ALSA__) + if (api == LINUX_ALSA) + rtapi_ = new RtApiAlsa(); +#endif +#if defined(__LINUX_PULSE__) + if (api == LINUX_PULSE) + rtapi_ = new RtApiPulse(); +#endif +#if defined(__LINUX_OSS__) + if (api == LINUX_OSS) + rtapi_ = new RtApiOss(); +#endif +#if defined(__WINDOWS_ASIO__) + if (api == WINDOWS_ASIO) + rtapi_ = new RtApiAsio(); +#endif +#if defined(__WINDOWS_WASAPI__) + if (api == WINDOWS_WASAPI) + rtapi_ = new RtApiWasapi(); +#endif +#if defined(__WINDOWS_DS__) + if (api == WINDOWS_DS) + rtapi_ = new RtApiDs(); +#endif +#if defined(__MACOSX_CORE__) + if (api == MACOSX_CORE) + rtapi_ = new RtApiCore(); +#endif +#if defined(__RTAUDIO_DUMMY__) + if (api == RTAUDIO_DUMMY) + rtapi_ = new RtApiDummy(); +#endif +} + +RtAudio ::RtAudio(RtAudio::Api api) +{ + rtapi_ = 0; + + if (api != UNSPECIFIED) + { + // Attempt to open the specified API. + openRtApi(api); + if (rtapi_) return; + + // No compiled support for specified API value. Issue a debug + // warning and continue as if no API was specified. + std::cerr << "\nRtAudio: no compiled support for specified API argument!\n" + << std::endl; + } + + // Iterate through the compiled APIs and return as soon as we find + // one with at least one device or we reach the end of the list. + std::vector apis; + getCompiledApi(apis); + for (unsigned int i = 0; i < apis.size(); i++) + { + openRtApi(apis[i]); + if (rtapi_ && rtapi_->getDeviceCount()) break; + } + + if (rtapi_) return; + + // It should not be possible to get here because the preprocessor + // definition __RTAUDIO_DUMMY__ is automatically defined if no + // API-specific definitions are passed to the compiler. But just in + // case something weird happens, we'll thow an error. + std::string errorText = "\nRtAudio: no compiled API support found ... critical error!!\n\n"; + throw(RtAudioError(errorText, RtAudioError::UNSPECIFIED)); +} + +RtAudio ::~RtAudio() +{ + if (rtapi_) + delete rtapi_; +} + +void RtAudio ::openStream(RtAudio::StreamParameters * outputParameters, + RtAudio::StreamParameters * inputParameters, + RtAudioFormat format, unsigned int sampleRate, + unsigned int * bufferFrames, + RtAudioCallback callback, void * userData, + RtAudio::StreamOptions * options, + RtAudioErrorCallback errorCallback) +{ + return rtapi_->openStream(outputParameters, inputParameters, format, + sampleRate, bufferFrames, callback, + userData, options, errorCallback); +} + +// *************************************************** // +// +// Public RtApi definitions (see end of file for +// private or protected utility functions). +// +// *************************************************** // + +RtApi ::RtApi() +{ + stream_.state = STREAM_CLOSED; + stream_.mode = UNINITIALIZED; + stream_.apiHandle = 0; + stream_.userBuffer[0] = 0; + stream_.userBuffer[1] = 0; + MUTEX_INITIALIZE(&stream_.mutex); + showWarnings_ = true; + firstErrorOccurred_ = false; +} + +RtApi ::~RtApi() +{ + MUTEX_DESTROY(&stream_.mutex); +} + +void RtApi ::openStream(RtAudio::StreamParameters * oParams, + RtAudio::StreamParameters * iParams, + RtAudioFormat format, unsigned int sampleRate, + unsigned int * bufferFrames, + RtAudioCallback callback, void * userData, + RtAudio::StreamOptions * options, + RtAudioErrorCallback errorCallback) +{ + if (stream_.state != STREAM_CLOSED) + { + errorText_ = "RtApi::openStream: a stream is already open!"; + error(RtAudioError::INVALID_USE); + return; + } + + // Clear stream information potentially left from a previously open stream. + clearStreamInfo(); + + if (oParams && oParams->nChannels < 1) + { + errorText_ = "RtApi::openStream: a non-NULL output StreamParameters structure cannot have an nChannels value less than one."; + error(RtAudioError::INVALID_USE); + return; + } + + if (iParams && iParams->nChannels < 1) + { + errorText_ = "RtApi::openStream: a non-NULL input StreamParameters structure cannot have an nChannels value less than one."; + error(RtAudioError::INVALID_USE); + return; + } + + if (oParams == NULL && iParams == NULL) + { + errorText_ = "RtApi::openStream: input and output StreamParameters structures are both NULL!"; + error(RtAudioError::INVALID_USE); + return; + } + + if (formatBytes(format) == 0) + { + errorText_ = "RtApi::openStream: 'format' parameter value is undefined."; + error(RtAudioError::INVALID_USE); + return; + } + + unsigned int nDevices = getDeviceCount(); + unsigned int oChannels = 0; + if (oParams) + { + oChannels = oParams->nChannels; + if (oParams->deviceId >= nDevices) + { + errorText_ = "RtApi::openStream: output device parameter value is invalid."; + error(RtAudioError::INVALID_USE); + return; + } + } + + unsigned int iChannels = 0; + if (iParams) + { + iChannels = iParams->nChannels; + if (iParams->deviceId >= nDevices) + { + errorText_ = "RtApi::openStream: input device parameter value is invalid."; + error(RtAudioError::INVALID_USE); + return; + } + } + + bool result; + + if (oChannels > 0) + { + + result = probeDeviceOpen(oParams->deviceId, OUTPUT, oChannels, oParams->firstChannel, + sampleRate, format, bufferFrames, options); + if (result == false) + { + error(RtAudioError::SYSTEM_ERROR); + return; + } + } + + if (iChannels > 0) + { + + result = probeDeviceOpen(iParams->deviceId, INPUT, iChannels, iParams->firstChannel, + sampleRate, format, bufferFrames, options); + if (result == false) + { + if (oChannels > 0) closeStream(); + error(RtAudioError::SYSTEM_ERROR); + return; + } + } + + stream_.callbackInfo.callback = (void *) callback; + stream_.callbackInfo.userData = userData; + stream_.callbackInfo.errorCallback = (void *) errorCallback; + + if (options) options->numberOfBuffers = stream_.nBuffers; + stream_.state = STREAM_STOPPED; +} + +unsigned int RtApi ::getDefaultInputDevice(void) +{ + // Should be implemented in subclasses if possible. + return 0; +} + +unsigned int RtApi ::getDefaultOutputDevice(void) +{ + // Should be implemented in subclasses if possible. + return 0; +} + +void RtApi ::closeStream(void) +{ + // MUST be implemented in subclasses! + return; +} + +bool RtApi ::probeDeviceOpen(unsigned int /*device*/, StreamMode /*mode*/, unsigned int /*channels*/, + unsigned int /*firstChannel*/, unsigned int /*sampleRate*/, + RtAudioFormat /*format*/, unsigned int * /*bufferSize*/, + RtAudio::StreamOptions * /*options*/) +{ + // MUST be implemented in subclasses! + return FAILURE; +} + +void RtApi ::tickStreamTime(void) +{ + // Subclasses that do not provide their own implementation of + // getStreamTime should call this function once per buffer I/O to + // provide basic stream time support. + + stream_.streamTime += (stream_.bufferSize * 1.0 / stream_.sampleRate); + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif +} + +long RtApi ::getStreamLatency(void) +{ + verifyStream(); + + long totalLatency = 0; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + totalLatency = stream_.latency[0]; + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + totalLatency += stream_.latency[1]; + + return totalLatency; +} + +double RtApi ::getStreamTime(void) +{ + verifyStream(); + +#if defined(HAVE_GETTIMEOFDAY) + // Return a very accurate estimate of the stream time by + // adding in the elapsed time since the last tick. + struct timeval then; + struct timeval now; + + if (stream_.state != STREAM_RUNNING || stream_.streamTime == 0.0) + return stream_.streamTime; + + gettimeofday(&now, NULL); + then = stream_.lastTickTimestamp; + return stream_.streamTime + ((now.tv_sec + 0.000001 * now.tv_usec) - (then.tv_sec + 0.000001 * then.tv_usec)); +#else + return stream_.streamTime; +#endif +} + +void RtApi ::setStreamTime(double time) +{ + verifyStream(); + + if (time >= 0.0) + stream_.streamTime = time; +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif +} + +unsigned int RtApi ::getStreamSampleRate(void) +{ + verifyStream(); + + return stream_.sampleRate; +} + +// *************************************************** // +// +// OS/API-specific methods. +// +// *************************************************** // + +#if defined(__MACOSX_CORE__) + +// The OS X CoreAudio API is designed to use a separate callback +// procedure for each of its audio devices. A single RtAudio duplex +// stream using two different devices is supported here, though it +// cannot be guaranteed to always behave correctly because we cannot +// synchronize these two callbacks. +// +// A property listener is installed for over/underrun information. +// However, no functionality is currently provided to allow property +// listeners to trigger user handlers because it is unclear what could +// be done if a critical stream parameter (buffer size, sample rate, +// device disconnect) notification arrived. The listeners entail +// quite a bit of extra code and most likely, a user program wouldn't +// be prepared for the result anyway. However, we do provide a flag +// to the client callback function to inform of an over/underrun. + +// A structure to hold various information related to the CoreAudio API +// implementation. +struct CoreHandle +{ + AudioDeviceID id[2]; // device ids +#if defined(MAC_OS_X_VERSION_10_5) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) + AudioDeviceIOProcID procId[2]; +#endif + UInt32 iStream[2]; // device stream index (or first if using multiple) + UInt32 nStreams[2]; // number of streams to use + bool xrun[2]; + char * deviceBuffer; + pthread_cond_t condition; + int drainCounter; // Tracks callback counts when draining + bool internalDrain; // Indicates if stop is initiated from callback or not. + + CoreHandle() + : deviceBuffer(0) + , drainCounter(0) + , internalDrain(false) + { + nStreams[0] = 1; + nStreams[1] = 1; + id[0] = 0; + id[1] = 0; + xrun[0] = false; + xrun[1] = false; + } +}; + +RtApiCore::RtApiCore() +{ +#if defined(AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER) + // This is a largely undocumented but absolutely necessary + // requirement starting with OS-X 10.6. If not called, queries and + // updates to various audio device properties are not handled + // correctly. + CFRunLoopRef theRunLoop = NULL; + AudioObjectPropertyAddress property = {kAudioHardwarePropertyRunLoop, + kAudioObjectPropertyScopeGlobal, + kAudioObjectPropertyElementMaster}; + OSStatus result = AudioObjectSetPropertyData(kAudioObjectSystemObject, &property, 0, NULL, sizeof(CFRunLoopRef), &theRunLoop); + if (result != noErr) + { + errorText_ = "RtApiCore::RtApiCore: error setting run loop property!"; + error(RtAudioError::WARNING); + } +#endif +} + +RtApiCore ::~RtApiCore() +{ + // The subclass destructor gets called before the base class + // destructor, so close an existing stream before deallocating + // apiDeviceId memory. + if (stream_.state != STREAM_CLOSED) closeStream(); +} + +unsigned int RtApiCore ::getDeviceCount(void) +{ + // Find out how many audio devices there are, if any. + UInt32 dataSize; + AudioObjectPropertyAddress propertyAddress = {kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster}; + OSStatus result = AudioObjectGetPropertyDataSize(kAudioObjectSystemObject, &propertyAddress, 0, NULL, &dataSize); + if (result != noErr) + { + errorText_ = "RtApiCore::getDeviceCount: OS-X error getting device info!"; + error(RtAudioError::WARNING); + return 0; + } + + return dataSize / sizeof(AudioDeviceID); +} + +unsigned int RtApiCore ::getDefaultInputDevice(void) +{ + unsigned int nDevices = getDeviceCount(); + if (nDevices <= 1) return 0; + + AudioDeviceID id; + UInt32 dataSize = sizeof(AudioDeviceID); + AudioObjectPropertyAddress property = {kAudioHardwarePropertyDefaultInputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster}; + OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, 0, NULL, &dataSize, &id); + if (result != noErr) + { + errorText_ = "RtApiCore::getDefaultInputDevice: OS-X system error getting device."; + error(RtAudioError::WARNING); + return 0; + } + + dataSize *= nDevices; + AudioDeviceID deviceList[nDevices]; + property.mSelector = kAudioHardwarePropertyDevices; + result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, 0, NULL, &dataSize, (void *) &deviceList); + if (result != noErr) + { + errorText_ = "RtApiCore::getDefaultInputDevice: OS-X system error getting device IDs."; + error(RtAudioError::WARNING); + return 0; + } + + for (unsigned int i = 0; i < nDevices; i++) + if (id == deviceList[i]) return i; + + errorText_ = "RtApiCore::getDefaultInputDevice: No default device found!"; + error(RtAudioError::WARNING); + return 0; +} + +unsigned int RtApiCore ::getDefaultOutputDevice(void) +{ + unsigned int nDevices = getDeviceCount(); + if (nDevices <= 1) return 0; + + AudioDeviceID id; + UInt32 dataSize = sizeof(AudioDeviceID); + AudioObjectPropertyAddress property = {kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster}; + OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, 0, NULL, &dataSize, &id); + if (result != noErr) + { + errorText_ = "RtApiCore::getDefaultOutputDevice: OS-X system error getting device."; + error(RtAudioError::WARNING); + return 0; + } + + dataSize = sizeof(AudioDeviceID) * nDevices; + AudioDeviceID deviceList[nDevices]; + property.mSelector = kAudioHardwarePropertyDevices; + result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, 0, NULL, &dataSize, (void *) &deviceList); + if (result != noErr) + { + errorText_ = "RtApiCore::getDefaultOutputDevice: OS-X system error getting device IDs."; + error(RtAudioError::WARNING); + return 0; + } + + for (unsigned int i = 0; i < nDevices; i++) + if (id == deviceList[i]) return i; + + errorText_ = "RtApiCore::getDefaultOutputDevice: No default device found!"; + error(RtAudioError::WARNING); + return 0; +} + +RtAudio::DeviceInfo RtApiCore ::getDeviceInfo(unsigned int device) +{ + RtAudio::DeviceInfo info; + info.probed = false; + + // Get device ID + unsigned int nDevices = getDeviceCount(); + if (nDevices == 0) + { + errorText_ = "RtApiCore::getDeviceInfo: no devices found!"; + error(RtAudioError::INVALID_USE); + return info; + } + + if (device >= nDevices) + { + errorText_ = "RtApiCore::getDeviceInfo: device ID is invalid!"; + error(RtAudioError::INVALID_USE); + return info; + } + + AudioDeviceID deviceList[nDevices]; + UInt32 dataSize = sizeof(AudioDeviceID) * nDevices; + AudioObjectPropertyAddress property = {kAudioHardwarePropertyDevices, + kAudioObjectPropertyScopeGlobal, + kAudioObjectPropertyElementMaster}; + OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, + 0, NULL, &dataSize, (void *) &deviceList); + if (result != noErr) + { + errorText_ = "RtApiCore::getDeviceInfo: OS-X system error getting device IDs."; + error(RtAudioError::WARNING); + return info; + } + + AudioDeviceID id = deviceList[device]; + + // Get the device name. + info.name.erase(); + CFStringRef cfname; + dataSize = sizeof(CFStringRef); + property.mSelector = kAudioObjectPropertyManufacturer; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &cfname); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceInfo: system error (" << getErrorCode(result) << ") getting device manufacturer."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + //const char *mname = CFStringGetCStringPtr( cfname, CFStringGetSystemEncoding() ); + int length = CFStringGetLength(cfname); + char * mname = (char *) malloc(length * 3 + 1); +#if defined(UNICODE) || defined(_UNICODE) + CFStringGetCString(cfname, mname, length * 3 + 1, kCFStringEncodingUTF8); +#else + CFStringGetCString(cfname, mname, length * 3 + 1, CFStringGetSystemEncoding()); +#endif + info.name.append((const char *) mname, strlen(mname)); + info.name.append(": "); + CFRelease(cfname); + free(mname); + + property.mSelector = kAudioObjectPropertyName; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &cfname); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceInfo: system error (" << getErrorCode(result) << ") getting device name."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + //const char *name = CFStringGetCStringPtr( cfname, CFStringGetSystemEncoding() ); + length = CFStringGetLength(cfname); + char * name = (char *) malloc(length * 3 + 1); +#if defined(UNICODE) || defined(_UNICODE) + CFStringGetCString(cfname, name, length * 3 + 1, kCFStringEncodingUTF8); +#else + CFStringGetCString(cfname, name, length * 3 + 1, CFStringGetSystemEncoding()); +#endif + info.name.append((const char *) name, strlen(name)); + CFRelease(cfname); + free(name); + + // Get the output stream "configuration". + AudioBufferList * bufferList = nil; + property.mSelector = kAudioDevicePropertyStreamConfiguration; + property.mScope = kAudioDevicePropertyScopeOutput; + // property.mElement = kAudioObjectPropertyElementWildcard; + dataSize = 0; + result = AudioObjectGetPropertyDataSize(id, &property, 0, NULL, &dataSize); + if (result != noErr || dataSize == 0) + { + errorStream_ << "RtApiCore::getDeviceInfo: system error (" << getErrorCode(result) << ") getting output stream configuration info for device (" << device << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Allocate the AudioBufferList. + bufferList = (AudioBufferList *) malloc(dataSize); + if (bufferList == NULL) + { + errorText_ = "RtApiCore::getDeviceInfo: memory error allocating output AudioBufferList."; + error(RtAudioError::WARNING); + return info; + } + + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, bufferList); + if (result != noErr || dataSize == 0) + { + free(bufferList); + errorStream_ << "RtApiCore::getDeviceInfo: system error (" << getErrorCode(result) << ") getting output stream configuration for device (" << device << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Get output channel information. + unsigned int i, nStreams = bufferList->mNumberBuffers; + for (i = 0; i < nStreams; i++) + info.outputChannels += bufferList->mBuffers[i].mNumberChannels; + free(bufferList); + + // Get the input stream "configuration". + property.mScope = kAudioDevicePropertyScopeInput; + result = AudioObjectGetPropertyDataSize(id, &property, 0, NULL, &dataSize); + if (result != noErr || dataSize == 0) + { + errorStream_ << "RtApiCore::getDeviceInfo: system error (" << getErrorCode(result) << ") getting input stream configuration info for device (" << device << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Allocate the AudioBufferList. + bufferList = (AudioBufferList *) malloc(dataSize); + if (bufferList == NULL) + { + errorText_ = "RtApiCore::getDeviceInfo: memory error allocating input AudioBufferList."; + error(RtAudioError::WARNING); + return info; + } + + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, bufferList); + if (result != noErr || dataSize == 0) + { + free(bufferList); + errorStream_ << "RtApiCore::getDeviceInfo: system error (" << getErrorCode(result) << ") getting input stream configuration for device (" << device << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Get input channel information. + nStreams = bufferList->mNumberBuffers; + for (i = 0; i < nStreams; i++) + info.inputChannels += bufferList->mBuffers[i].mNumberChannels; + free(bufferList); + + // If device opens for both playback and capture, we determine the channels. + if (info.outputChannels > 0 && info.inputChannels > 0) + info.duplexChannels = (info.outputChannels > info.inputChannels) ? info.inputChannels : info.outputChannels; + + // Probe the device sample rates. + bool isInput = false; + if (info.outputChannels == 0) isInput = true; + + // Determine the supported sample rates. + property.mSelector = kAudioDevicePropertyAvailableNominalSampleRates; + if (isInput == false) property.mScope = kAudioDevicePropertyScopeOutput; + result = AudioObjectGetPropertyDataSize(id, &property, 0, NULL, &dataSize); + if (result != kAudioHardwareNoError || dataSize == 0) + { + errorStream_ << "RtApiCore::getDeviceInfo: system error (" << getErrorCode(result) << ") getting sample rate info."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + UInt32 nRanges = dataSize / sizeof(AudioValueRange); + AudioValueRange rangeList[nRanges]; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &rangeList); + if (result != kAudioHardwareNoError) + { + errorStream_ << "RtApiCore::getDeviceInfo: system error (" << getErrorCode(result) << ") getting sample rates."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // The sample rate reporting mechanism is a bit of a mystery. It + // seems that it can either return individual rates or a range of + // rates. I assume that if the min / max range values are the same, + // then that represents a single supported rate and if the min / max + // range values are different, the device supports an arbitrary + // range of values (though there might be multiple ranges, so we'll + // use the most conservative range). + Float64 minimumRate = 1.0, maximumRate = 10000000000.0; + bool haveValueRange = false; + info.sampleRates.clear(); + for (UInt32 i = 0; i < nRanges; i++) + { + if (rangeList[i].mMinimum == rangeList[i].mMaximum) + { + unsigned int tmpSr = (unsigned int) rangeList[i].mMinimum; + info.sampleRates.push_back(tmpSr); + + if (!info.preferredSampleRate || (tmpSr <= 48000 && tmpSr > info.preferredSampleRate)) + info.preferredSampleRate = tmpSr; + } + else + { + haveValueRange = true; + if (rangeList[i].mMinimum > minimumRate) minimumRate = rangeList[i].mMinimum; + if (rangeList[i].mMaximum < maximumRate) maximumRate = rangeList[i].mMaximum; + } + } + + if (haveValueRange) + { + for (unsigned int k = 0; k < MAX_SAMPLE_RATES; k++) + { + if (SAMPLE_RATES[k] >= (unsigned int) minimumRate && SAMPLE_RATES[k] <= (unsigned int) maximumRate) + { + info.sampleRates.push_back(SAMPLE_RATES[k]); + + if (!info.preferredSampleRate || (SAMPLE_RATES[k] <= 48000 && SAMPLE_RATES[k] > info.preferredSampleRate)) + info.preferredSampleRate = SAMPLE_RATES[k]; + } + } + } + + // Sort and remove any redundant values + std::sort(info.sampleRates.begin(), info.sampleRates.end()); + info.sampleRates.erase(unique(info.sampleRates.begin(), info.sampleRates.end()), info.sampleRates.end()); + + if (info.sampleRates.size() == 0) + { + errorStream_ << "RtApiCore::probeDeviceInfo: No supported sample rates found for device (" << device << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // CoreAudio always uses 32-bit floating point data for PCM streams. + // Thus, any other "physical" formats supported by the device are of + // no interest to the client. + info.nativeFormats = RTAUDIO_FLOAT32; + + if (info.outputChannels > 0) + if (getDefaultOutputDevice() == device) info.isDefaultOutput = true; + if (info.inputChannels > 0) + if (getDefaultInputDevice() == device) info.isDefaultInput = true; + + info.probed = true; + return info; +} + +static OSStatus callbackHandler(AudioDeviceID inDevice, + const AudioTimeStamp * /*inNow*/, + const AudioBufferList * inInputData, + const AudioTimeStamp * /*inInputTime*/, + AudioBufferList * outOutputData, + const AudioTimeStamp * /*inOutputTime*/, + void * infoPointer) +{ + CallbackInfo * info = (CallbackInfo *) infoPointer; + + RtApiCore * object = (RtApiCore *) info->object; + if (object->callbackEvent(inDevice, inInputData, outOutputData) == false) + return kAudioHardwareUnspecifiedError; + else + return kAudioHardwareNoError; +} + +static OSStatus xrunListener(AudioObjectID /*inDevice*/, + UInt32 nAddresses, + const AudioObjectPropertyAddress properties[], + void * handlePointer) +{ + CoreHandle * handle = (CoreHandle *) handlePointer; + for (UInt32 i = 0; i < nAddresses; i++) + { + if (properties[i].mSelector == kAudioDeviceProcessorOverload) + { + if (properties[i].mScope == kAudioDevicePropertyScopeInput) + handle->xrun[1] = true; + else + handle->xrun[0] = true; + } + } + + return kAudioHardwareNoError; +} + +static OSStatus rateListener(AudioObjectID inDevice, + UInt32 /*nAddresses*/, + const AudioObjectPropertyAddress /*properties*/[], + void * ratePointer) +{ + Float64 * rate = (Float64 *) ratePointer; + UInt32 dataSize = sizeof(Float64); + AudioObjectPropertyAddress property = {kAudioDevicePropertyNominalSampleRate, + kAudioObjectPropertyScopeGlobal, + kAudioObjectPropertyElementMaster}; + AudioObjectGetPropertyData(inDevice, &property, 0, NULL, &dataSize, rate); + return kAudioHardwareNoError; +} + +bool RtApiCore ::probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options) +{ + // Get device ID + unsigned int nDevices = getDeviceCount(); + if (nDevices == 0) + { + // This should not happen because a check is made before this function is called. + errorText_ = "RtApiCore::probeDeviceOpen: no devices found!"; + return FAILURE; + } + + if (device >= nDevices) + { + // This should not happen because a check is made before this function is called. + errorText_ = "RtApiCore::probeDeviceOpen: device ID is invalid!"; + return FAILURE; + } + + AudioDeviceID deviceList[nDevices]; + UInt32 dataSize = sizeof(AudioDeviceID) * nDevices; + AudioObjectPropertyAddress property = {kAudioHardwarePropertyDevices, + kAudioObjectPropertyScopeGlobal, + kAudioObjectPropertyElementMaster}; + OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &property, + 0, NULL, &dataSize, (void *) &deviceList); + if (result != noErr) + { + errorText_ = "RtApiCore::probeDeviceOpen: OS-X system error getting device IDs."; + return FAILURE; + } + + AudioDeviceID id = deviceList[device]; + + // Setup for stream mode. + bool isInput = false; + if (mode == INPUT) + { + isInput = true; + property.mScope = kAudioDevicePropertyScopeInput; + } + else + property.mScope = kAudioDevicePropertyScopeOutput; + + // Get the stream "configuration". + AudioBufferList * bufferList = nil; + dataSize = 0; + property.mSelector = kAudioDevicePropertyStreamConfiguration; + result = AudioObjectGetPropertyDataSize(id, &property, 0, NULL, &dataSize); + if (result != noErr || dataSize == 0) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting stream configuration info for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Allocate the AudioBufferList. + bufferList = (AudioBufferList *) malloc(dataSize); + if (bufferList == NULL) + { + errorText_ = "RtApiCore::probeDeviceOpen: memory error allocating AudioBufferList."; + return FAILURE; + } + + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, bufferList); + if (result != noErr || dataSize == 0) + { + free(bufferList); + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting stream configuration for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Search for one or more streams that contain the desired number of + // channels. CoreAudio devices can have an arbitrary number of + // streams and each stream can have an arbitrary number of channels. + // For each stream, a single buffer of interleaved samples is + // provided. RtAudio prefers the use of one stream of interleaved + // data or multiple consecutive single-channel streams. However, we + // now support multiple consecutive multi-channel streams of + // interleaved data as well. + UInt32 iStream, offsetCounter = firstChannel; + UInt32 nStreams = bufferList->mNumberBuffers; + bool monoMode = false; + bool foundStream = false; + + // First check that the device supports the requested number of + // channels. + UInt32 deviceChannels = 0; + for (iStream = 0; iStream < nStreams; iStream++) + deviceChannels += bufferList->mBuffers[iStream].mNumberChannels; + + if (deviceChannels < (channels + firstChannel)) + { + free(bufferList); + errorStream_ << "RtApiCore::probeDeviceOpen: the device (" << device << ") does not support the requested channel count."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Look for a single stream meeting our needs. + UInt32 firstStream, streamCount = 1, streamChannels = 0, channelOffset = 0; + for (iStream = 0; iStream < nStreams; iStream++) + { + streamChannels = bufferList->mBuffers[iStream].mNumberChannels; + if (streamChannels >= channels + offsetCounter) + { + firstStream = iStream; + channelOffset = offsetCounter; + foundStream = true; + break; + } + if (streamChannels > offsetCounter) break; + offsetCounter -= streamChannels; + } + + // If we didn't find a single stream above, then we should be able + // to meet the channel specification with multiple streams. + if (foundStream == false) + { + monoMode = true; + offsetCounter = firstChannel; + for (iStream = 0; iStream < nStreams; iStream++) + { + streamChannels = bufferList->mBuffers[iStream].mNumberChannels; + if (streamChannels > offsetCounter) break; + offsetCounter -= streamChannels; + } + + firstStream = iStream; + channelOffset = offsetCounter; + Int32 channelCounter = channels + offsetCounter - streamChannels; + + if (streamChannels > 1) monoMode = false; + while (channelCounter > 0) + { + streamChannels = bufferList->mBuffers[++iStream].mNumberChannels; + if (streamChannels > 1) monoMode = false; + channelCounter -= streamChannels; + streamCount++; + } + } + + free(bufferList); + + // Determine the buffer size. + AudioValueRange bufferRange; + dataSize = sizeof(AudioValueRange); + property.mSelector = kAudioDevicePropertyBufferFrameSizeRange; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &bufferRange); + + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting buffer size range for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + if (bufferRange.mMinimum > *bufferSize) + *bufferSize = (unsigned long) bufferRange.mMinimum; + else if (bufferRange.mMaximum < *bufferSize) + *bufferSize = (unsigned long) bufferRange.mMaximum; + if (options && options->flags & RTAUDIO_MINIMIZE_LATENCY) *bufferSize = (unsigned long) bufferRange.mMinimum; + + // Set the buffer size. For multiple streams, I'm assuming we only + // need to make this setting for the master channel. + UInt32 theSize = (UInt32) *bufferSize; + dataSize = sizeof(UInt32); + property.mSelector = kAudioDevicePropertyBufferFrameSize; + result = AudioObjectSetPropertyData(id, &property, 0, NULL, dataSize, &theSize); + + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") setting the buffer size for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // If attempting to setup a duplex stream, the bufferSize parameter + // MUST be the same in both directions! + *bufferSize = theSize; + if (stream_.mode == OUTPUT && mode == INPUT && *bufferSize != stream_.bufferSize) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error setting buffer size for duplex stream on device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + stream_.bufferSize = *bufferSize; + stream_.nBuffers = 1; + + // Try to set "hog" mode ... it's not clear to me this is working. + if (options && options->flags & RTAUDIO_HOG_DEVICE) + { + pid_t hog_pid; + dataSize = sizeof(hog_pid); + property.mSelector = kAudioDevicePropertyHogMode; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &hog_pid); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting 'hog' state!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + if (hog_pid != getpid()) + { + hog_pid = getpid(); + result = AudioObjectSetPropertyData(id, &property, 0, NULL, dataSize, &hog_pid); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") setting 'hog' state!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + } + + // Check and if necessary, change the sample rate for the device. + Float64 nominalRate; + dataSize = sizeof(Float64); + property.mSelector = kAudioDevicePropertyNominalSampleRate; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &nominalRate); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting current sample rate."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Only change the sample rate if off by more than 1 Hz. + if (fabs(nominalRate - (double) sampleRate) > 1.0) + { + + // Set a property listener for the sample rate change + Float64 reportedRate = 0.0; + AudioObjectPropertyAddress tmp = {kAudioDevicePropertyNominalSampleRate, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster}; + result = AudioObjectAddPropertyListener(id, &tmp, rateListener, (void *) &reportedRate); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") setting sample rate property listener for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + nominalRate = (Float64) sampleRate; + result = AudioObjectSetPropertyData(id, &property, 0, NULL, dataSize, &nominalRate); + if (result != noErr) + { + AudioObjectRemovePropertyListener(id, &tmp, rateListener, (void *) &reportedRate); + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") setting sample rate for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Now wait until the reported nominal rate is what we just set. + UInt32 microCounter = 0; + while (reportedRate != nominalRate) + { + microCounter += 5000; + if (microCounter > 5000000) break; + usleep(5000); + } + + // Remove the property listener. + AudioObjectRemovePropertyListener(id, &tmp, rateListener, (void *) &reportedRate); + + if (microCounter > 5000000) + { + errorStream_ << "RtApiCore::probeDeviceOpen: timeout waiting for sample rate update for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + + // Now set the stream format for all streams. Also, check the + // physical format of the device and change that if necessary. + AudioStreamBasicDescription description; + dataSize = sizeof(AudioStreamBasicDescription); + property.mSelector = kAudioStreamPropertyVirtualFormat; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &description); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting stream format for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Set the sample rate and data format id. However, only make the + // change if the sample rate is not within 1.0 of the desired + // rate and the format is not linear pcm. + bool updateFormat = false; + if (fabs(description.mSampleRate - (Float64) sampleRate) > 1.0) + { + description.mSampleRate = (Float64) sampleRate; + updateFormat = true; + } + + if (description.mFormatID != kAudioFormatLinearPCM) + { + description.mFormatID = kAudioFormatLinearPCM; + updateFormat = true; + } + + if (updateFormat) + { + result = AudioObjectSetPropertyData(id, &property, 0, NULL, dataSize, &description); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") setting sample rate or data format for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + + // Now check the physical format. + property.mSelector = kAudioStreamPropertyPhysicalFormat; + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &description); + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting stream physical format for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + //std::cout << "Current physical stream format:" << std::endl; + //std::cout << " mBitsPerChan = " << description.mBitsPerChannel << std::endl; + //std::cout << " aligned high = " << (description.mFormatFlags & kAudioFormatFlagIsAlignedHigh) << ", isPacked = " << (description.mFormatFlags & kAudioFormatFlagIsPacked) << std::endl; + //std::cout << " bytesPerFrame = " << description.mBytesPerFrame << std::endl; + //std::cout << " sample rate = " << description.mSampleRate << std::endl; + + if (description.mFormatID != kAudioFormatLinearPCM || description.mBitsPerChannel < 16) + { + description.mFormatID = kAudioFormatLinearPCM; + //description.mSampleRate = (Float64) sampleRate; + AudioStreamBasicDescription testDescription = description; + UInt32 formatFlags; + + // We'll try higher bit rates first and then work our way down. + std::vector> physicalFormats; + formatFlags = (description.mFormatFlags | kLinearPCMFormatFlagIsFloat) & ~kLinearPCMFormatFlagIsSignedInteger; + physicalFormats.push_back(std::pair(32, formatFlags)); + formatFlags = (description.mFormatFlags | kLinearPCMFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked) & ~kLinearPCMFormatFlagIsFloat; + physicalFormats.push_back(std::pair(32, formatFlags)); + physicalFormats.push_back(std::pair(24, formatFlags)); // 24-bit packed + formatFlags &= ~(kAudioFormatFlagIsPacked | kAudioFormatFlagIsAlignedHigh); + physicalFormats.push_back(std::pair(24.2, formatFlags)); // 24-bit in 4 bytes, aligned low + formatFlags |= kAudioFormatFlagIsAlignedHigh; + physicalFormats.push_back(std::pair(24.4, formatFlags)); // 24-bit in 4 bytes, aligned high + formatFlags = (description.mFormatFlags | kLinearPCMFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked) & ~kLinearPCMFormatFlagIsFloat; + physicalFormats.push_back(std::pair(16, formatFlags)); + physicalFormats.push_back(std::pair(8, formatFlags)); + + bool setPhysicalFormat = false; + for (unsigned int i = 0; i < physicalFormats.size(); i++) + { + testDescription = description; + testDescription.mBitsPerChannel = (UInt32) physicalFormats[i].first; + testDescription.mFormatFlags = physicalFormats[i].second; + if ((24 == (UInt32) physicalFormats[i].first) && ~(physicalFormats[i].second & kAudioFormatFlagIsPacked)) + testDescription.mBytesPerFrame = 4 * testDescription.mChannelsPerFrame; + else + testDescription.mBytesPerFrame = testDescription.mBitsPerChannel / 8 * testDescription.mChannelsPerFrame; + testDescription.mBytesPerPacket = testDescription.mBytesPerFrame * testDescription.mFramesPerPacket; + result = AudioObjectSetPropertyData(id, &property, 0, NULL, dataSize, &testDescription); + if (result == noErr) + { + setPhysicalFormat = true; + //std::cout << "Updated physical stream format:" << std::endl; + //std::cout << " mBitsPerChan = " << testDescription.mBitsPerChannel << std::endl; + //std::cout << " aligned high = " << (testDescription.mFormatFlags & kAudioFormatFlagIsAlignedHigh) << ", isPacked = " << (testDescription.mFormatFlags & kAudioFormatFlagIsPacked) << std::endl; + //std::cout << " bytesPerFrame = " << testDescription.mBytesPerFrame << std::endl; + //std::cout << " sample rate = " << testDescription.mSampleRate << std::endl; + break; + } + } + + if (!setPhysicalFormat) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") setting physical data format for device (" << device << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + } // done setting virtual/physical formats. + + // Get the stream / device latency. + UInt32 latency; + dataSize = sizeof(UInt32); + property.mSelector = kAudioDevicePropertyLatency; + if (AudioObjectHasProperty(id, &property) == true) + { + result = AudioObjectGetPropertyData(id, &property, 0, NULL, &dataSize, &latency); + if (result == kAudioHardwareNoError) + stream_.latency[mode] = latency; + else + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error (" << getErrorCode(result) << ") getting device latency for device (" << device << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + } + } + + // Byte-swapping: According to AudioHardware.h, the stream data will + // always be presented in native-endian format, so we should never + // need to byte swap. + stream_.doByteSwap[mode] = false; + + // From the CoreAudio documentation, PCM data must be supplied as + // 32-bit floats. + stream_.userFormat = format; + stream_.deviceFormat[mode] = RTAUDIO_FLOAT32; + + if (streamCount == 1) + stream_.nDeviceChannels[mode] = description.mChannelsPerFrame; + else // multiple streams + stream_.nDeviceChannels[mode] = channels; + stream_.nUserChannels[mode] = channels; + stream_.channelOffset[mode] = channelOffset; // offset within a CoreAudio stream + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + stream_.userInterleaved = false; + else + stream_.userInterleaved = true; + stream_.deviceInterleaved[mode] = true; + if (monoMode == true) stream_.deviceInterleaved[mode] = false; + + // Set flags for buffer conversion. + stream_.doConvertBuffer[mode] = false; + if (stream_.userFormat != stream_.deviceFormat[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.nUserChannels[mode] < stream_.nDeviceChannels[mode]) + stream_.doConvertBuffer[mode] = true; + if (streamCount == 1) + { + if (stream_.nUserChannels[mode] > 1 && stream_.userInterleaved != stream_.deviceInterleaved[mode]) + stream_.doConvertBuffer[mode] = true; + } + else if (monoMode && stream_.userInterleaved) + stream_.doConvertBuffer[mode] = true; + + // Allocate our CoreHandle structure for the stream. + CoreHandle * handle = 0; + if (stream_.apiHandle == 0) + { + try + { + handle = new CoreHandle; + } + catch (std::bad_alloc &) + { + errorText_ = "RtApiCore::probeDeviceOpen: error allocating CoreHandle memory."; + goto error; + } + + if (pthread_cond_init(&handle->condition, NULL)) + { + errorText_ = "RtApiCore::probeDeviceOpen: error initializing pthread condition variable."; + goto error; + } + stream_.apiHandle = (void *) handle; + } + else + handle = (CoreHandle *) stream_.apiHandle; + handle->iStream[mode] = firstStream; + handle->nStreams[mode] = streamCount; + handle->id[mode] = id; + + // Allocate necessary internal buffers. + unsigned long bufferBytes; + bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes(stream_.userFormat); + // stream_.userBuffer[mode] = (char *) calloc( bufferBytes, 1 ); + stream_.userBuffer[mode] = (char *) malloc(bufferBytes * sizeof(char)); + memset(stream_.userBuffer[mode], 0, bufferBytes * sizeof(char)); + if (stream_.userBuffer[mode] == NULL) + { + errorText_ = "RtApiCore::probeDeviceOpen: error allocating user buffer memory."; + goto error; + } + + // If possible, we will make use of the CoreAudio stream buffers as + // "device buffers". However, we can't do this if using multiple + // streams. + if (stream_.doConvertBuffer[mode] && handle->nStreams[mode] > 1) + { + + bool makeBuffer = true; + bufferBytes = stream_.nDeviceChannels[mode] * formatBytes(stream_.deviceFormat[mode]); + if (mode == INPUT) + { + if (stream_.mode == OUTPUT && stream_.deviceBuffer) + { + unsigned long bytesOut = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + if (bufferBytes <= bytesOut) makeBuffer = false; + } + } + + if (makeBuffer) + { + bufferBytes *= *bufferSize; + if (stream_.deviceBuffer) free(stream_.deviceBuffer); + stream_.deviceBuffer = (char *) calloc(bufferBytes, 1); + if (stream_.deviceBuffer == NULL) + { + errorText_ = "RtApiCore::probeDeviceOpen: error allocating device buffer memory."; + goto error; + } + } + } + + stream_.sampleRate = sampleRate; + stream_.device[mode] = device; + stream_.state = STREAM_STOPPED; + stream_.callbackInfo.object = (void *) this; + + // Setup the buffer conversion information structure. + if (stream_.doConvertBuffer[mode]) + { + if (streamCount > 1) + setConvertInfo(mode, 0); + else + setConvertInfo(mode, channelOffset); + } + + if (mode == INPUT && stream_.mode == OUTPUT && stream_.device[0] == device) + // Only one callback procedure per device. + stream_.mode = DUPLEX; + else + { +#if defined(MAC_OS_X_VERSION_10_5) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) + result = AudioDeviceCreateIOProcID(id, callbackHandler, (void *) &stream_.callbackInfo, &handle->procId[mode]); +#else + // deprecated in favor of AudioDeviceCreateIOProcID() + result = AudioDeviceAddIOProc(id, callbackHandler, (void *) &stream_.callbackInfo); +#endif + if (result != noErr) + { + errorStream_ << "RtApiCore::probeDeviceOpen: system error setting callback for device (" << device << ")."; + errorText_ = errorStream_.str(); + goto error; + } + if (stream_.mode == OUTPUT && mode == INPUT) + stream_.mode = DUPLEX; + else + stream_.mode = mode; + } + + // Setup the device property listener for over/underload. + property.mSelector = kAudioDeviceProcessorOverload; + property.mScope = kAudioObjectPropertyScopeGlobal; + result = AudioObjectAddPropertyListener(id, &property, xrunListener, (void *) handle); + + return SUCCESS; + +error: + if (handle) + { + pthread_cond_destroy(&handle->condition); + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.state = STREAM_CLOSED; + return FAILURE; +} + +void RtApiCore ::closeStream(void) +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiCore::closeStream(): no open stream to close!"; + error(RtAudioError::WARNING); + return; + } + + CoreHandle * handle = (CoreHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + if (handle) + { + AudioObjectPropertyAddress property = {kAudioHardwarePropertyDevices, + kAudioObjectPropertyScopeGlobal, + kAudioObjectPropertyElementMaster}; + + property.mSelector = kAudioDeviceProcessorOverload; + property.mScope = kAudioObjectPropertyScopeGlobal; + if (AudioObjectRemovePropertyListener(handle->id[0], &property, xrunListener, (void *) handle) != noErr) + { + errorText_ = "RtApiCore::closeStream(): error removing property listener!"; + error(RtAudioError::WARNING); + } + } + if (stream_.state == STREAM_RUNNING) + AudioDeviceStop(handle->id[0], callbackHandler); +#if defined(MAC_OS_X_VERSION_10_5) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) + AudioDeviceDestroyIOProcID(handle->id[0], handle->procId[0]); +#else + // deprecated in favor of AudioDeviceDestroyIOProcID() + AudioDeviceRemoveIOProc(handle->id[0], callbackHandler); +#endif + } + + if (stream_.mode == INPUT || (stream_.mode == DUPLEX && stream_.device[0] != stream_.device[1])) + { + if (handle) + { + AudioObjectPropertyAddress property = {kAudioHardwarePropertyDevices, + kAudioObjectPropertyScopeGlobal, + kAudioObjectPropertyElementMaster}; + + property.mSelector = kAudioDeviceProcessorOverload; + property.mScope = kAudioObjectPropertyScopeGlobal; + if (AudioObjectRemovePropertyListener(handle->id[1], &property, xrunListener, (void *) handle) != noErr) + { + errorText_ = "RtApiCore::closeStream(): error removing property listener!"; + error(RtAudioError::WARNING); + } + } + if (stream_.state == STREAM_RUNNING) + AudioDeviceStop(handle->id[1], callbackHandler); +#if defined(MAC_OS_X_VERSION_10_5) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) + AudioDeviceDestroyIOProcID(handle->id[1], handle->procId[1]); +#else + // deprecated in favor of AudioDeviceDestroyIOProcID() + AudioDeviceRemoveIOProc(handle->id[1], callbackHandler); +#endif + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + // Destroy pthread condition variable. + pthread_cond_destroy(&handle->condition); + delete handle; + stream_.apiHandle = 0; + + stream_.mode = UNINITIALIZED; + stream_.state = STREAM_CLOSED; +} + +void RtApiCore ::startStream(void) +{ + verifyStream(); + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiCore::startStream(): the stream is already running!"; + error(RtAudioError::WARNING); + return; + } + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + OSStatus result = noErr; + CoreHandle * handle = (CoreHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + result = AudioDeviceStart(handle->id[0], callbackHandler); + if (result != noErr) + { + errorStream_ << "RtApiCore::startStream: system error (" << getErrorCode(result) << ") starting callback procedure on device (" << stream_.device[0] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + if (stream_.mode == INPUT || (stream_.mode == DUPLEX && stream_.device[0] != stream_.device[1])) + { + + result = AudioDeviceStart(handle->id[1], callbackHandler); + if (result != noErr) + { + errorStream_ << "RtApiCore::startStream: system error starting input callback procedure on device (" << stream_.device[1] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + handle->drainCounter = 0; + handle->internalDrain = false; + stream_.state = STREAM_RUNNING; + +unlock: + if (result == noErr) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiCore ::stopStream(void) +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiCore::stopStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + OSStatus result = noErr; + CoreHandle * handle = (CoreHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + if (handle->drainCounter == 0) + { + handle->drainCounter = 2; + pthread_cond_wait(&handle->condition, &stream_.mutex); // block until signaled + } + + result = AudioDeviceStop(handle->id[0], callbackHandler); + if (result != noErr) + { + errorStream_ << "RtApiCore::stopStream: system error (" << getErrorCode(result) << ") stopping callback procedure on device (" << stream_.device[0] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + if (stream_.mode == INPUT || (stream_.mode == DUPLEX && stream_.device[0] != stream_.device[1])) + { + + result = AudioDeviceStop(handle->id[1], callbackHandler); + if (result != noErr) + { + errorStream_ << "RtApiCore::stopStream: system error (" << getErrorCode(result) << ") stopping input callback procedure on device (" << stream_.device[1] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + stream_.state = STREAM_STOPPED; + +unlock: + if (result == noErr) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiCore ::abortStream(void) +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiCore::abortStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + CoreHandle * handle = (CoreHandle *) stream_.apiHandle; + handle->drainCounter = 2; + + stopStream(); +} + +// This function will be called by a spawned thread when the user +// callback function signals that the stream should be stopped or +// aborted. It is better to handle it this way because the +// callbackEvent() function probably should return before the AudioDeviceStop() +// function is called. +static void * coreStopStream(void * ptr) +{ + CallbackInfo * info = (CallbackInfo *) ptr; + RtApiCore * object = (RtApiCore *) info->object; + + object->stopStream(); + pthread_exit(NULL); +} + +bool RtApiCore ::callbackEvent(AudioDeviceID deviceId, + const AudioBufferList * inBufferList, + const AudioBufferList * outBufferList) +{ + if (stream_.state == STREAM_STOPPED || stream_.state == STREAM_STOPPING) return SUCCESS; + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiCore::callbackEvent(): the stream is closed ... this shouldn't happen!"; + error(RtAudioError::WARNING); + return FAILURE; + } + + CallbackInfo * info = (CallbackInfo *) &stream_.callbackInfo; + CoreHandle * handle = (CoreHandle *) stream_.apiHandle; + + // Check if we were draining the stream and signal is finished. + if (handle->drainCounter > 3) + { + ThreadHandle threadId; + + stream_.state = STREAM_STOPPING; + if (handle->internalDrain == true) + pthread_create(&threadId, NULL, coreStopStream, info); + else // external call to stopStream() + pthread_cond_signal(&handle->condition); + return SUCCESS; + } + + AudioDeviceID outputDevice = handle->id[0]; + + // Invoke user callback to get fresh output data UNLESS we are + // draining stream or duplex mode AND the input/output devices are + // different AND this function is called for the input device. + if (handle->drainCounter == 0 && (stream_.mode != DUPLEX || deviceId == outputDevice)) + { + RtAudioCallback callback = (RtAudioCallback) info->callback; + double streamTime = getStreamTime(); + RtAudioStreamStatus status = 0; + if (stream_.mode != INPUT && handle->xrun[0] == true) + { + status |= RTAUDIO_OUTPUT_UNDERFLOW; + handle->xrun[0] = false; + } + if (stream_.mode != OUTPUT && handle->xrun[1] == true) + { + status |= RTAUDIO_INPUT_OVERFLOW; + handle->xrun[1] = false; + } + + int cbReturnValue = callback(stream_.userBuffer[0], stream_.userBuffer[1], + stream_.bufferSize, streamTime, status, info->userData); + if (cbReturnValue == 2) + { + stream_.state = STREAM_STOPPING; + handle->drainCounter = 2; + abortStream(); + return SUCCESS; + } + else if (cbReturnValue == 1) + { + handle->drainCounter = 1; + handle->internalDrain = true; + } + } + + if (stream_.mode == OUTPUT || (stream_.mode == DUPLEX && deviceId == outputDevice)) + { + + if (handle->drainCounter > 1) + { // write zeros to the output stream + + if (handle->nStreams[0] == 1) + { + memset(outBufferList->mBuffers[handle->iStream[0]].mData, + 0, + outBufferList->mBuffers[handle->iStream[0]].mDataByteSize); + } + else + { // fill multiple streams with zeros + for (unsigned int i = 0; i < handle->nStreams[0]; i++) + { + memset(outBufferList->mBuffers[handle->iStream[0] + i].mData, + 0, + outBufferList->mBuffers[handle->iStream[0] + i].mDataByteSize); + } + } + } + else if (handle->nStreams[0] == 1) + { + if (stream_.doConvertBuffer[0]) + { // convert directly to CoreAudio stream buffer + convertBuffer((char *) outBufferList->mBuffers[handle->iStream[0]].mData, + stream_.userBuffer[0], stream_.convertInfo[0]); + } + else + { // copy from user buffer + memcpy(outBufferList->mBuffers[handle->iStream[0]].mData, + stream_.userBuffer[0], + outBufferList->mBuffers[handle->iStream[0]].mDataByteSize); + } + } + else + { // fill multiple streams + Float32 * inBuffer = (Float32 *) stream_.userBuffer[0]; + if (stream_.doConvertBuffer[0]) + { + convertBuffer(stream_.deviceBuffer, stream_.userBuffer[0], stream_.convertInfo[0]); + inBuffer = (Float32 *) stream_.deviceBuffer; + } + + if (stream_.deviceInterleaved[0] == false) + { // mono mode + UInt32 bufferBytes = outBufferList->mBuffers[handle->iStream[0]].mDataByteSize; + for (unsigned int i = 0; i < stream_.nUserChannels[0]; i++) + { + memcpy(outBufferList->mBuffers[handle->iStream[0] + i].mData, + (void *) &inBuffer[i * stream_.bufferSize], bufferBytes); + } + } + else + { // fill multiple multi-channel streams with interleaved data + UInt32 streamChannels, channelsLeft, inJump, outJump, inOffset; + Float32 *out, *in; + + bool inInterleaved = (stream_.userInterleaved) ? true : false; + UInt32 inChannels = stream_.nUserChannels[0]; + if (stream_.doConvertBuffer[0]) + { + inInterleaved = true; // device buffer will always be interleaved for nStreams > 1 and not mono mode + inChannels = stream_.nDeviceChannels[0]; + } + + if (inInterleaved) + inOffset = 1; + else + inOffset = stream_.bufferSize; + + channelsLeft = inChannels; + for (unsigned int i = 0; i < handle->nStreams[0]; i++) + { + in = inBuffer; + out = (Float32 *) outBufferList->mBuffers[handle->iStream[0] + i].mData; + streamChannels = outBufferList->mBuffers[handle->iStream[0] + i].mNumberChannels; + + outJump = 0; + // Account for possible channel offset in first stream + if (i == 0 && stream_.channelOffset[0] > 0) + { + streamChannels -= stream_.channelOffset[0]; + outJump = stream_.channelOffset[0]; + out += outJump; + } + + // Account for possible unfilled channels at end of the last stream + if (streamChannels > channelsLeft) + { + outJump = streamChannels - channelsLeft; + streamChannels = channelsLeft; + } + + // Determine input buffer offsets and skips + if (inInterleaved) + { + inJump = inChannels; + in += inChannels - channelsLeft; + } + else + { + inJump = 1; + in += (inChannels - channelsLeft) * inOffset; + } + + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (unsigned int j = 0; j < streamChannels; j++) + { + *out++ = in[j * inOffset]; + } + out += outJump; + in += inJump; + } + channelsLeft -= streamChannels; + } + } + } + } + + // Don't bother draining input + if (handle->drainCounter) + { + handle->drainCounter++; + goto unlock; + } + + AudioDeviceID inputDevice; + inputDevice = handle->id[1]; + if (stream_.mode == INPUT || (stream_.mode == DUPLEX && deviceId == inputDevice)) + { + + if (handle->nStreams[1] == 1) + { + if (stream_.doConvertBuffer[1]) + { // convert directly from CoreAudio stream buffer + convertBuffer(stream_.userBuffer[1], + (char *) inBufferList->mBuffers[handle->iStream[1]].mData, + stream_.convertInfo[1]); + } + else + { // copy to user buffer + memcpy(stream_.userBuffer[1], + inBufferList->mBuffers[handle->iStream[1]].mData, + inBufferList->mBuffers[handle->iStream[1]].mDataByteSize); + } + } + else + { // read from multiple streams + Float32 * outBuffer = (Float32 *) stream_.userBuffer[1]; + if (stream_.doConvertBuffer[1]) outBuffer = (Float32 *) stream_.deviceBuffer; + + if (stream_.deviceInterleaved[1] == false) + { // mono mode + UInt32 bufferBytes = inBufferList->mBuffers[handle->iStream[1]].mDataByteSize; + for (unsigned int i = 0; i < stream_.nUserChannels[1]; i++) + { + memcpy((void *) &outBuffer[i * stream_.bufferSize], + inBufferList->mBuffers[handle->iStream[1] + i].mData, bufferBytes); + } + } + else + { // read from multiple multi-channel streams + UInt32 streamChannels, channelsLeft, inJump, outJump, outOffset; + Float32 *out, *in; + + bool outInterleaved = (stream_.userInterleaved) ? true : false; + UInt32 outChannels = stream_.nUserChannels[1]; + if (stream_.doConvertBuffer[1]) + { + outInterleaved = true; // device buffer will always be interleaved for nStreams > 1 and not mono mode + outChannels = stream_.nDeviceChannels[1]; + } + + if (outInterleaved) + outOffset = 1; + else + outOffset = stream_.bufferSize; + + channelsLeft = outChannels; + for (unsigned int i = 0; i < handle->nStreams[1]; i++) + { + out = outBuffer; + in = (Float32 *) inBufferList->mBuffers[handle->iStream[1] + i].mData; + streamChannels = inBufferList->mBuffers[handle->iStream[1] + i].mNumberChannels; + + inJump = 0; + // Account for possible channel offset in first stream + if (i == 0 && stream_.channelOffset[1] > 0) + { + streamChannels -= stream_.channelOffset[1]; + inJump = stream_.channelOffset[1]; + in += inJump; + } + + // Account for possible unread channels at end of the last stream + if (streamChannels > channelsLeft) + { + inJump = streamChannels - channelsLeft; + streamChannels = channelsLeft; + } + + // Determine output buffer offsets and skips + if (outInterleaved) + { + outJump = outChannels; + out += outChannels - channelsLeft; + } + else + { + outJump = 1; + out += (outChannels - channelsLeft) * outOffset; + } + + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (unsigned int j = 0; j < streamChannels; j++) + { + out[j * outOffset] = *in++; + } + out += outJump; + in += inJump; + } + channelsLeft -= streamChannels; + } + } + + if (stream_.doConvertBuffer[1]) + { // convert from our internal "device" buffer + convertBuffer(stream_.userBuffer[1], + stream_.deviceBuffer, + stream_.convertInfo[1]); + } + } + } + +unlock: + //MUTEX_UNLOCK( &stream_.mutex ); + + // Make sure to only tick duplex stream time once if using two devices + if (stream_.mode != DUPLEX || (stream_.mode == DUPLEX && handle->id[0] != handle->id[1] && deviceId == handle->id[0])) + RtApi::tickStreamTime(); + + return SUCCESS; +} + +const char * RtApiCore ::getErrorCode(OSStatus code) +{ + switch (code) + { + + case kAudioHardwareNotRunningError: + return "kAudioHardwareNotRunningError"; + + case kAudioHardwareUnspecifiedError: + return "kAudioHardwareUnspecifiedError"; + + case kAudioHardwareUnknownPropertyError: + return "kAudioHardwareUnknownPropertyError"; + + case kAudioHardwareBadPropertySizeError: + return "kAudioHardwareBadPropertySizeError"; + + case kAudioHardwareIllegalOperationError: + return "kAudioHardwareIllegalOperationError"; + + case kAudioHardwareBadObjectError: + return "kAudioHardwareBadObjectError"; + + case kAudioHardwareBadDeviceError: + return "kAudioHardwareBadDeviceError"; + + case kAudioHardwareBadStreamError: + return "kAudioHardwareBadStreamError"; + + case kAudioHardwareUnsupportedOperationError: + return "kAudioHardwareUnsupportedOperationError"; + + case kAudioDeviceUnsupportedFormatError: + return "kAudioDeviceUnsupportedFormatError"; + + case kAudioDevicePermissionsError: + return "kAudioDevicePermissionsError"; + + default: + return "CoreAudio unknown error"; + } +} + +//******************** End of __MACOSX_CORE__ *********************// +#endif + +#if defined(__UNIX_JACK__) + +// JACK is a low-latency audio server, originally written for the +// GNU/Linux operating system and now also ported to OS-X. It can +// connect a number of different applications to an audio device, as +// well as allowing them to share audio between themselves. +// +// When using JACK with RtAudio, "devices" refer to JACK clients that +// have ports connected to the server. The JACK server is typically +// started in a terminal as follows: +// +// .jackd -d alsa -d hw:0 +// +// or through an interface program such as qjackctl. Many of the +// parameters normally set for a stream are fixed by the JACK server +// and can be specified when the JACK server is started. In +// particular, +// +// .jackd -d alsa -d hw:0 -r 44100 -p 512 -n 4 +// +// specifies a sample rate of 44100 Hz, a buffer size of 512 sample +// frames, and number of buffers = 4. Once the server is running, it +// is not possible to override these values. If the values are not +// specified in the command-line, the JACK server uses default values. +// +// The JACK server does not have to be running when an instance of +// RtApiJack is created, though the function getDeviceCount() will +// report 0 devices found until JACK has been started. When no +// devices are available (i.e., the JACK server is not running), a +// stream cannot be opened. + +#include +#include +#include + +// A structure to hold various information related to the Jack API +// implementation. +struct JackHandle +{ + jack_client_t * client; + jack_port_t ** ports[2]; + std::string deviceName[2]; + bool xrun[2]; + pthread_cond_t condition; + int drainCounter; // Tracks callback counts when draining + bool internalDrain; // Indicates if stop is initiated from callback or not. + + JackHandle() + : client(0) + , drainCounter(0) + , internalDrain(false) + { + ports[0] = 0; + ports[1] = 0; + xrun[0] = false; + xrun[1] = false; + } +}; + +#if !defined(__RTAUDIO_DEBUG__) +static void jackSilentError(const char *){}; +#endif + +RtApiJack ::RtApiJack() + : shouldAutoconnect_(true) +{ + // Nothing to do here. +#if !defined(__RTAUDIO_DEBUG__) + // Turn off Jack's internal error reporting. + jack_set_error_function(&jackSilentError); +#endif +} + +RtApiJack ::~RtApiJack() +{ + if (stream_.state != STREAM_CLOSED) closeStream(); +} + +unsigned int RtApiJack ::getDeviceCount(void) +{ + // See if we can become a jack client. + jack_options_t options = (jack_options_t)(JackNoStartServer); //JackNullOption; + jack_status_t * status = NULL; + jack_client_t * client = jack_client_open("RtApiJackCount", options, status); + if (client == 0) return 0; + + const char ** ports; + std::string port, previousPort; + unsigned int nChannels = 0, nDevices = 0; + ports = jack_get_ports(client, NULL, JACK_DEFAULT_AUDIO_TYPE, 0); + if (ports) + { + // Parse the port names up to the first colon (:). + size_t iColon = 0; + do + { + port = (char *) ports[nChannels]; + iColon = port.find(":"); + if (iColon != std::string::npos) + { + port = port.substr(0, iColon + 1); + if (port != previousPort) + { + nDevices++; + previousPort = port; + } + } + } while (ports[++nChannels]); + free(ports); + } + + jack_client_close(client); + return nDevices; +} + +RtAudio::DeviceInfo RtApiJack ::getDeviceInfo(unsigned int device) +{ + RtAudio::DeviceInfo info; + info.probed = false; + + jack_options_t options = (jack_options_t)(JackNoStartServer); //JackNullOption + jack_status_t * status = NULL; + jack_client_t * client = jack_client_open("RtApiJackInfo", options, status); + if (client == 0) + { + errorText_ = "RtApiJack::getDeviceInfo: Jack server not found or connection error!"; + error(RtAudioError::WARNING); + return info; + } + + const char ** ports; + std::string port, previousPort; + unsigned int nPorts = 0, nDevices = 0; + ports = jack_get_ports(client, NULL, JACK_DEFAULT_AUDIO_TYPE, 0); + if (ports) + { + // Parse the port names up to the first colon (:). + size_t iColon = 0; + do + { + port = (char *) ports[nPorts]; + iColon = port.find(":"); + if (iColon != std::string::npos) + { + port = port.substr(0, iColon); + if (port != previousPort) + { + if (nDevices == device) info.name = port; + nDevices++; + previousPort = port; + } + } + } while (ports[++nPorts]); + free(ports); + } + + if (device >= nDevices) + { + jack_client_close(client); + errorText_ = "RtApiJack::getDeviceInfo: device ID is invalid!"; + error(RtAudioError::INVALID_USE); + return info; + } + + // Get the current jack server sample rate. + info.sampleRates.clear(); + + info.preferredSampleRate = jack_get_sample_rate(client); + info.sampleRates.push_back(info.preferredSampleRate); + + // Count the available ports containing the client name as device + // channels. Jack "input ports" equal RtAudio output channels. + unsigned int nChannels = 0; + ports = jack_get_ports(client, info.name.c_str(), JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput); + if (ports) + { + while (ports[nChannels]) nChannels++; + free(ports); + info.outputChannels = nChannels; + } + + // Jack "output ports" equal RtAudio input channels. + nChannels = 0; + ports = jack_get_ports(client, info.name.c_str(), JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput); + if (ports) + { + while (ports[nChannels]) nChannels++; + free(ports); + info.inputChannels = nChannels; + } + + if (info.outputChannels == 0 && info.inputChannels == 0) + { + jack_client_close(client); + errorText_ = "RtApiJack::getDeviceInfo: error determining Jack input/output channels!"; + error(RtAudioError::WARNING); + return info; + } + + // If device opens for both playback and capture, we determine the channels. + if (info.outputChannels > 0 && info.inputChannels > 0) + info.duplexChannels = (info.outputChannels > info.inputChannels) ? info.inputChannels : info.outputChannels; + + // Jack always uses 32-bit floats. + info.nativeFormats = RTAUDIO_FLOAT32; + + // Jack doesn't provide default devices so we'll use the first available one. + if (device == 0 && info.outputChannels > 0) + info.isDefaultOutput = true; + if (device == 0 && info.inputChannels > 0) + info.isDefaultInput = true; + + jack_client_close(client); + info.probed = true; + return info; +} + +static int jackCallbackHandler(jack_nframes_t nframes, void * infoPointer) +{ + CallbackInfo * info = (CallbackInfo *) infoPointer; + + RtApiJack * object = (RtApiJack *) info->object; + if (object->callbackEvent((unsigned long) nframes) == false) return 1; + + return 0; +} + +// This function will be called by a spawned thread when the Jack +// server signals that it is shutting down. It is necessary to handle +// it this way because the jackShutdown() function must return before +// the jack_deactivate() function (in closeStream()) will return. +static void * jackCloseStream(void * ptr) +{ + CallbackInfo * info = (CallbackInfo *) ptr; + RtApiJack * object = (RtApiJack *) info->object; + + object->closeStream(); + + pthread_exit(NULL); +} +static void jackShutdown(void * infoPointer) +{ + CallbackInfo * info = (CallbackInfo *) infoPointer; + RtApiJack * object = (RtApiJack *) info->object; + + // Check current stream state. If stopped, then we'll assume this + // was called as a result of a call to RtApiJack::stopStream (the + // deactivation of a client handle causes this function to be called). + // If not, we'll assume the Jack server is shutting down or some + // other problem occurred and we should close the stream. + if (object->isStreamRunning() == false) return; + + ThreadHandle threadId; + pthread_create(&threadId, NULL, jackCloseStream, info); + std::cerr << "\nRtApiJack: the Jack server is shutting down this client ... stream stopped and closed!!\n" + << std::endl; +} + +static int jackXrun(void * infoPointer) +{ + JackHandle * handle = *((JackHandle **) infoPointer); + + if (handle->ports[0]) handle->xrun[0] = true; + if (handle->ports[1]) handle->xrun[1] = true; + + return 0; +} + +bool RtApiJack ::probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options) +{ + JackHandle * handle = (JackHandle *) stream_.apiHandle; + + // Look for jack server and try to become a client (only do once per stream). + jack_client_t * client = 0; + if (mode == OUTPUT || (mode == INPUT && stream_.mode != OUTPUT)) + { + jack_options_t jackoptions = (jack_options_t)(JackNoStartServer); //JackNullOption; + jack_status_t * status = NULL; + if (options && !options->streamName.empty()) + client = jack_client_open(options->streamName.c_str(), jackoptions, status); + else + client = jack_client_open("RtApiJack", jackoptions, status); + if (client == 0) + { + errorText_ = "RtApiJack::probeDeviceOpen: Jack server not found or connection error!"; + error(RtAudioError::WARNING); + return FAILURE; + } + } + else + { + // The handle must have been created on an earlier pass. + client = handle->client; + } + + const char ** ports; + std::string port, previousPort, deviceName; + unsigned int nPorts = 0, nDevices = 0; + ports = jack_get_ports(client, NULL, JACK_DEFAULT_AUDIO_TYPE, 0); + if (ports) + { + // Parse the port names up to the first colon (:). + size_t iColon = 0; + do + { + port = (char *) ports[nPorts]; + iColon = port.find(":"); + if (iColon != std::string::npos) + { + port = port.substr(0, iColon); + if (port != previousPort) + { + if (nDevices == device) deviceName = port; + nDevices++; + previousPort = port; + } + } + } while (ports[++nPorts]); + free(ports); + } + + if (device >= nDevices) + { + errorText_ = "RtApiJack::probeDeviceOpen: device ID is invalid!"; + return FAILURE; + } + + unsigned long flag = JackPortIsInput; + if (mode == INPUT) flag = JackPortIsOutput; + + if (!(options && (options->flags & RTAUDIO_JACK_DONT_CONNECT))) + { + // Count the available ports containing the client name as device + // channels. Jack "input ports" equal RtAudio output channels. + unsigned int nChannels = 0; + ports = jack_get_ports(client, deviceName.c_str(), JACK_DEFAULT_AUDIO_TYPE, flag); + if (ports) + { + while (ports[nChannels]) nChannels++; + free(ports); + } + // Compare the jack ports for specified client to the requested number of channels. + if (nChannels < (channels + firstChannel)) + { + errorStream_ << "RtApiJack::probeDeviceOpen: requested number of channels (" << channels << ") + offset (" << firstChannel << ") not found for specified device (" << device << ":" << deviceName << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + + // Check the jack server sample rate. + unsigned int jackRate = jack_get_sample_rate(client); + if (sampleRate != jackRate) + { + jack_client_close(client); + errorStream_ << "RtApiJack::probeDeviceOpen: the requested sample rate (" << sampleRate << ") is different than the JACK server rate (" << jackRate << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + stream_.sampleRate = jackRate; + + // Get the latency of the JACK port. + ports = jack_get_ports(client, deviceName.c_str(), JACK_DEFAULT_AUDIO_TYPE, flag); + if (ports[firstChannel]) + { + // Added by Ge Wang + jack_latency_callback_mode_t cbmode = (mode == INPUT ? JackCaptureLatency : JackPlaybackLatency); + // the range (usually the min and max are equal) + jack_latency_range_t latrange; + latrange.min = latrange.max = 0; + // get the latency range + jack_port_get_latency_range(jack_port_by_name(client, ports[firstChannel]), cbmode, &latrange); + // be optimistic, use the min! + stream_.latency[mode] = latrange.min; + //stream_.latency[mode] = jack_port_get_latency( jack_port_by_name( client, ports[ firstChannel ] ) ); + } + free(ports); + + // The jack server always uses 32-bit floating-point data. + stream_.deviceFormat[mode] = RTAUDIO_FLOAT32; + stream_.userFormat = format; + + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + stream_.userInterleaved = false; + else + stream_.userInterleaved = true; + + // Jack always uses non-interleaved buffers. + stream_.deviceInterleaved[mode] = false; + + // Jack always provides host byte-ordered data. + stream_.doByteSwap[mode] = false; + + // Get the buffer size. The buffer size and number of buffers + // (periods) is set when the jack server is started. + stream_.bufferSize = (int) jack_get_buffer_size(client); + *bufferSize = stream_.bufferSize; + + stream_.nDeviceChannels[mode] = channels; + stream_.nUserChannels[mode] = channels; + + // Set flags for buffer conversion. + stream_.doConvertBuffer[mode] = false; + if (stream_.userFormat != stream_.deviceFormat[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.userInterleaved != stream_.deviceInterleaved[mode] && stream_.nUserChannels[mode] > 1) + stream_.doConvertBuffer[mode] = true; + + // Allocate our JackHandle structure for the stream. + if (handle == 0) + { + try + { + handle = new JackHandle; + } + catch (std::bad_alloc &) + { + errorText_ = "RtApiJack::probeDeviceOpen: error allocating JackHandle memory."; + goto error; + } + + if (pthread_cond_init(&handle->condition, NULL)) + { + errorText_ = "RtApiJack::probeDeviceOpen: error initializing pthread condition variable."; + goto error; + } + stream_.apiHandle = (void *) handle; + handle->client = client; + } + handle->deviceName[mode] = deviceName; + + // Allocate necessary internal buffers. + unsigned long bufferBytes; + bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes(stream_.userFormat); + stream_.userBuffer[mode] = (char *) calloc(bufferBytes, 1); + if (stream_.userBuffer[mode] == NULL) + { + errorText_ = "RtApiJack::probeDeviceOpen: error allocating user buffer memory."; + goto error; + } + + if (stream_.doConvertBuffer[mode]) + { + + bool makeBuffer = true; + if (mode == OUTPUT) + bufferBytes = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + else + { // mode == INPUT + bufferBytes = stream_.nDeviceChannels[1] * formatBytes(stream_.deviceFormat[1]); + if (stream_.mode == OUTPUT && stream_.deviceBuffer) + { + unsigned long bytesOut = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + if (bufferBytes < bytesOut) makeBuffer = false; + } + } + + if (makeBuffer) + { + bufferBytes *= *bufferSize; + if (stream_.deviceBuffer) free(stream_.deviceBuffer); + stream_.deviceBuffer = (char *) calloc(bufferBytes, 1); + if (stream_.deviceBuffer == NULL) + { + errorText_ = "RtApiJack::probeDeviceOpen: error allocating device buffer memory."; + goto error; + } + } + } + + // Allocate memory for the Jack ports (channels) identifiers. + handle->ports[mode] = (jack_port_t **) malloc(sizeof(jack_port_t *) * channels); + if (handle->ports[mode] == NULL) + { + errorText_ = "RtApiJack::probeDeviceOpen: error allocating port memory."; + goto error; + } + + stream_.device[mode] = device; + stream_.channelOffset[mode] = firstChannel; + stream_.state = STREAM_STOPPED; + stream_.callbackInfo.object = (void *) this; + + if (stream_.mode == OUTPUT && mode == INPUT) + // We had already set up the stream for output. + stream_.mode = DUPLEX; + else + { + stream_.mode = mode; + jack_set_process_callback(handle->client, jackCallbackHandler, (void *) &stream_.callbackInfo); + jack_set_xrun_callback(handle->client, jackXrun, (void *) &stream_.apiHandle); + jack_on_shutdown(handle->client, jackShutdown, (void *) &stream_.callbackInfo); + } + + // Register our ports. + char label[64]; + if (mode == OUTPUT) + { + for (unsigned int i = 0; i < stream_.nUserChannels[0]; i++) + { + snprintf(label, 64, "outport %d", i); + handle->ports[0][i] = jack_port_register(handle->client, (const char *) label, + JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); + } + } + else + { + for (unsigned int i = 0; i < stream_.nUserChannels[1]; i++) + { + snprintf(label, 64, "inport %d", i); + handle->ports[1][i] = jack_port_register(handle->client, (const char *) label, + JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); + } + } + + // Setup the buffer conversion information structure. We don't use + // buffers to do channel offsets, so we override that parameter + // here. + if (stream_.doConvertBuffer[mode]) setConvertInfo(mode, 0); + + if (options && options->flags & RTAUDIO_JACK_DONT_CONNECT) shouldAutoconnect_ = false; + + return SUCCESS; + +error: + if (handle) + { + pthread_cond_destroy(&handle->condition); + jack_client_close(handle->client); + + if (handle->ports[0]) free(handle->ports[0]); + if (handle->ports[1]) free(handle->ports[1]); + + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + return FAILURE; +} + +void RtApiJack ::closeStream(void) +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiJack::closeStream(): no open stream to close!"; + error(RtAudioError::WARNING); + return; + } + + JackHandle * handle = (JackHandle *) stream_.apiHandle; + if (handle) + { + + if (stream_.state == STREAM_RUNNING) + jack_deactivate(handle->client); + + jack_client_close(handle->client); + } + + if (handle) + { + if (handle->ports[0]) free(handle->ports[0]); + if (handle->ports[1]) free(handle->ports[1]); + pthread_cond_destroy(&handle->condition); + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.mode = UNINITIALIZED; + stream_.state = STREAM_CLOSED; +} + +void RtApiJack ::startStream(void) +{ + verifyStream(); + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiJack::startStream(): the stream is already running!"; + error(RtAudioError::WARNING); + return; + } + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + JackHandle * handle = (JackHandle *) stream_.apiHandle; + int result = jack_activate(handle->client); + if (result) + { + errorText_ = "RtApiJack::startStream(): unable to activate JACK client!"; + goto unlock; + } + + const char ** ports; + + // Get the list of available ports. + if (shouldAutoconnect_ && (stream_.mode == OUTPUT || stream_.mode == DUPLEX)) + { + result = 1; + ports = jack_get_ports(handle->client, handle->deviceName[0].c_str(), JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput); + if (ports == NULL) + { + errorText_ = "RtApiJack::startStream(): error determining available JACK input ports!"; + goto unlock; + } + + // Now make the port connections. Since RtAudio wasn't designed to + // allow the user to select particular channels of a device, we'll + // just open the first "nChannels" ports with offset. + for (unsigned int i = 0; i < stream_.nUserChannels[0]; i++) + { + result = 1; + if (ports[stream_.channelOffset[0] + i]) + result = jack_connect(handle->client, jack_port_name(handle->ports[0][i]), ports[stream_.channelOffset[0] + i]); + if (result) + { + free(ports); + errorText_ = "RtApiJack::startStream(): error connecting output ports!"; + goto unlock; + } + } + free(ports); + } + + if (shouldAutoconnect_ && (stream_.mode == INPUT || stream_.mode == DUPLEX)) + { + result = 1; + ports = jack_get_ports(handle->client, handle->deviceName[1].c_str(), JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput); + if (ports == NULL) + { + errorText_ = "RtApiJack::startStream(): error determining available JACK output ports!"; + goto unlock; + } + + // Now make the port connections. See note above. + for (unsigned int i = 0; i < stream_.nUserChannels[1]; i++) + { + result = 1; + if (ports[stream_.channelOffset[1] + i]) + result = jack_connect(handle->client, ports[stream_.channelOffset[1] + i], jack_port_name(handle->ports[1][i])); + if (result) + { + free(ports); + errorText_ = "RtApiJack::startStream(): error connecting input ports!"; + goto unlock; + } + } + free(ports); + } + + handle->drainCounter = 0; + handle->internalDrain = false; + stream_.state = STREAM_RUNNING; + +unlock: + if (result == 0) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiJack ::stopStream(void) +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiJack::stopStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + JackHandle * handle = (JackHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + if (handle->drainCounter == 0) + { + handle->drainCounter = 2; + pthread_cond_wait(&handle->condition, &stream_.mutex); // block until signaled + } + } + + jack_deactivate(handle->client); + stream_.state = STREAM_STOPPED; +} + +void RtApiJack ::abortStream(void) +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiJack::abortStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + JackHandle * handle = (JackHandle *) stream_.apiHandle; + handle->drainCounter = 2; + + stopStream(); +} + +// This function will be called by a spawned thread when the user +// callback function signals that the stream should be stopped or +// aborted. It is necessary to handle it this way because the +// callbackEvent() function must return before the jack_deactivate() +// function will return. +static void * jackStopStream(void * ptr) +{ + CallbackInfo * info = (CallbackInfo *) ptr; + RtApiJack * object = (RtApiJack *) info->object; + + object->stopStream(); + pthread_exit(NULL); +} + +bool RtApiJack ::callbackEvent(unsigned long nframes) +{ + if (stream_.state == STREAM_STOPPED || stream_.state == STREAM_STOPPING) return SUCCESS; + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiCore::callbackEvent(): the stream is closed ... this shouldn't happen!"; + error(RtAudioError::WARNING); + return FAILURE; + } + if (stream_.bufferSize != nframes) + { + errorText_ = "RtApiCore::callbackEvent(): the JACK buffer size has changed ... cannot process!"; + error(RtAudioError::WARNING); + return FAILURE; + } + + CallbackInfo * info = (CallbackInfo *) &stream_.callbackInfo; + JackHandle * handle = (JackHandle *) stream_.apiHandle; + + // Check if we were draining the stream and signal is finished. + if (handle->drainCounter > 3) + { + ThreadHandle threadId; + + stream_.state = STREAM_STOPPING; + if (handle->internalDrain == true) + pthread_create(&threadId, NULL, jackStopStream, info); + else + pthread_cond_signal(&handle->condition); + return SUCCESS; + } + + // Invoke user callback first, to get fresh output data. + if (handle->drainCounter == 0) + { + RtAudioCallback callback = (RtAudioCallback) info->callback; + double streamTime = getStreamTime(); + RtAudioStreamStatus status = 0; + if (stream_.mode != INPUT && handle->xrun[0] == true) + { + status |= RTAUDIO_OUTPUT_UNDERFLOW; + handle->xrun[0] = false; + } + if (stream_.mode != OUTPUT && handle->xrun[1] == true) + { + status |= RTAUDIO_INPUT_OVERFLOW; + handle->xrun[1] = false; + } + int cbReturnValue = callback(stream_.userBuffer[0], stream_.userBuffer[1], + stream_.bufferSize, streamTime, status, info->userData); + if (cbReturnValue == 2) + { + stream_.state = STREAM_STOPPING; + handle->drainCounter = 2; + ThreadHandle id; + pthread_create(&id, NULL, jackStopStream, info); + return SUCCESS; + } + else if (cbReturnValue == 1) + { + handle->drainCounter = 1; + handle->internalDrain = true; + } + } + + jack_default_audio_sample_t * jackbuffer; + unsigned long bufferBytes = nframes * sizeof(jack_default_audio_sample_t); + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + if (handle->drainCounter > 1) + { // write zeros to the output stream + + for (unsigned int i = 0; i < stream_.nDeviceChannels[0]; i++) + { + jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer(handle->ports[0][i], (jack_nframes_t) nframes); + memset(jackbuffer, 0, bufferBytes); + } + } + else if (stream_.doConvertBuffer[0]) + { + + convertBuffer(stream_.deviceBuffer, stream_.userBuffer[0], stream_.convertInfo[0]); + + for (unsigned int i = 0; i < stream_.nDeviceChannels[0]; i++) + { + jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer(handle->ports[0][i], (jack_nframes_t) nframes); + memcpy(jackbuffer, &stream_.deviceBuffer[i * bufferBytes], bufferBytes); + } + } + else + { // no buffer conversion + for (unsigned int i = 0; i < stream_.nUserChannels[0]; i++) + { + jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer(handle->ports[0][i], (jack_nframes_t) nframes); + memcpy(jackbuffer, &stream_.userBuffer[0][i * bufferBytes], bufferBytes); + } + } + } + + // Don't bother draining input + if (handle->drainCounter) + { + handle->drainCounter++; + goto unlock; + } + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + + if (stream_.doConvertBuffer[1]) + { + for (unsigned int i = 0; i < stream_.nDeviceChannels[1]; i++) + { + jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer(handle->ports[1][i], (jack_nframes_t) nframes); + memcpy(&stream_.deviceBuffer[i * bufferBytes], jackbuffer, bufferBytes); + } + convertBuffer(stream_.userBuffer[1], stream_.deviceBuffer, stream_.convertInfo[1]); + } + else + { // no buffer conversion + for (unsigned int i = 0; i < stream_.nUserChannels[1]; i++) + { + jackbuffer = (jack_default_audio_sample_t *) jack_port_get_buffer(handle->ports[1][i], (jack_nframes_t) nframes); + memcpy(&stream_.userBuffer[1][i * bufferBytes], jackbuffer, bufferBytes); + } + } + } + +unlock: + RtApi::tickStreamTime(); + return SUCCESS; +} +//******************** End of __UNIX_JACK__ *********************// +#endif + +#if defined(__WINDOWS_ASIO__) // ASIO API on Windows + +// The ASIO API is designed around a callback scheme, so this +// implementation is similar to that used for OS-X CoreAudio and Linux +// Jack. The primary constraint with ASIO is that it only allows +// access to a single driver at a time. Thus, it is not possible to +// have more than one simultaneous RtAudio stream. +// +// This implementation also requires a number of external ASIO files +// and a few global variables. The ASIO callback scheme does not +// allow for the passing of user data, so we must create a global +// pointer to our callbackInfo structure. +// +// On unix systems, we make use of a pthread condition variable. +// Since there is no equivalent in Windows, I hacked something based +// on information found in +// http://www.cs.wustl.edu/~schmidt/win32-cv-1.html. + +#include "asio.h" +#include "asiodrivers.h" +#include "asiosys.h" +#include "iasiothiscallresolver.h" +#include + +static AsioDrivers drivers; +static ASIOCallbacks asioCallbacks; +static ASIODriverInfo driverInfo; +static CallbackInfo * asioCallbackInfo; +static bool asioXRun; + +struct AsioHandle +{ + int drainCounter; // Tracks callback counts when draining + bool internalDrain; // Indicates if stop is initiated from callback or not. + ASIOBufferInfo * bufferInfos; + HANDLE condition; + + AsioHandle() + : drainCounter(0) + , internalDrain(false) + , bufferInfos(0) + { + } +}; + +// Function declarations (definitions at end of section) +static const char * getAsioErrorString(ASIOError result); +static void sampleRateChanged(ASIOSampleRate sRate); +static long asioMessages(long selector, long value, void * message, double * opt); + +RtApiAsio ::RtApiAsio() +{ + // ASIO cannot run on a multi-threaded appartment. You can call + // CoInitialize beforehand, but it must be for appartment threading + // (in which case, CoInitilialize will return S_FALSE here). + coInitialized_ = false; + HRESULT hr = CoInitialize(NULL); + if (FAILED(hr)) + { + errorText_ = "RtApiAsio::ASIO requires a single-threaded appartment. Call CoInitializeEx(0,COINIT_APARTMENTTHREADED)"; + error(RtAudioError::WARNING); + } + coInitialized_ = true; + + drivers.removeCurrentDriver(); + driverInfo.asioVersion = 2; + + // See note in DirectSound implementation about GetDesktopWindow(). + driverInfo.sysRef = GetForegroundWindow(); +} + +RtApiAsio ::~RtApiAsio() +{ + if (stream_.state != STREAM_CLOSED) closeStream(); + if (coInitialized_) CoUninitialize(); +} + +unsigned int RtApiAsio ::getDeviceCount(void) +{ + return (unsigned int) drivers.asioGetNumDev(); +} + +RtAudio::DeviceInfo RtApiAsio ::getDeviceInfo(unsigned int device) +{ + RtAudio::DeviceInfo info; + info.probed = false; + + // Get device ID + unsigned int nDevices = getDeviceCount(); + if (nDevices == 0) + { + errorText_ = "RtApiAsio::getDeviceInfo: no devices found!"; + error(RtAudioError::INVALID_USE); + return info; + } + + if (device >= nDevices) + { + errorText_ = "RtApiAsio::getDeviceInfo: device ID is invalid!"; + error(RtAudioError::INVALID_USE); + return info; + } + + // If a stream is already open, we cannot probe other devices. Thus, use the saved results. + if (stream_.state != STREAM_CLOSED) + { + if (device >= devices_.size()) + { + errorText_ = "RtApiAsio::getDeviceInfo: device ID was not present before stream was opened."; + error(RtAudioError::WARNING); + return info; + } + return devices_[device]; + } + + char driverName[32]; + ASIOError result = drivers.asioGetDriverName((int) device, driverName, 32); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::getDeviceInfo: unable to get driver name (" << getAsioErrorString(result) << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + info.name = driverName; + + if (!drivers.loadDriver(driverName)) + { + errorStream_ << "RtApiAsio::getDeviceInfo: unable to load driver (" << driverName << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + result = ASIOInit(&driverInfo); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::getDeviceInfo: error (" << getAsioErrorString(result) << ") initializing driver (" << driverName << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Determine the device channel information. + long inputChannels, outputChannels; + result = ASIOGetChannels(&inputChannels, &outputChannels); + if (result != ASE_OK) + { + drivers.removeCurrentDriver(); + errorStream_ << "RtApiAsio::getDeviceInfo: error (" << getAsioErrorString(result) << ") getting channel count (" << driverName << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + info.outputChannels = outputChannels; + info.inputChannels = inputChannels; + if (info.outputChannels > 0 && info.inputChannels > 0) + info.duplexChannels = (info.outputChannels > info.inputChannels) ? info.inputChannels : info.outputChannels; + + // Determine the supported sample rates. + info.sampleRates.clear(); + for (unsigned int i = 0; i < MAX_SAMPLE_RATES; i++) + { + result = ASIOCanSampleRate((ASIOSampleRate) SAMPLE_RATES[i]); + if (result == ASE_OK) + { + info.sampleRates.push_back(SAMPLE_RATES[i]); + + if (!info.preferredSampleRate || (SAMPLE_RATES[i] <= 48000 && SAMPLE_RATES[i] > info.preferredSampleRate)) + info.preferredSampleRate = SAMPLE_RATES[i]; + } + } + + // Determine supported data types ... just check first channel and assume rest are the same. + ASIOChannelInfo channelInfo; + channelInfo.channel = 0; + channelInfo.isInput = true; + if (info.inputChannels <= 0) channelInfo.isInput = false; + result = ASIOGetChannelInfo(&channelInfo); + if (result != ASE_OK) + { + drivers.removeCurrentDriver(); + errorStream_ << "RtApiAsio::getDeviceInfo: error (" << getAsioErrorString(result) << ") getting driver channel info (" << driverName << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + info.nativeFormats = 0; + if (channelInfo.type == ASIOSTInt16MSB || channelInfo.type == ASIOSTInt16LSB) + info.nativeFormats |= RTAUDIO_SINT16; + else if (channelInfo.type == ASIOSTInt32MSB || channelInfo.type == ASIOSTInt32LSB) + info.nativeFormats |= RTAUDIO_SINT32; + else if (channelInfo.type == ASIOSTFloat32MSB || channelInfo.type == ASIOSTFloat32LSB) + info.nativeFormats |= RTAUDIO_FLOAT32; + else if (channelInfo.type == ASIOSTFloat64MSB || channelInfo.type == ASIOSTFloat64LSB) + info.nativeFormats |= RTAUDIO_FLOAT64; + else if (channelInfo.type == ASIOSTInt24MSB || channelInfo.type == ASIOSTInt24LSB) + info.nativeFormats |= RTAUDIO_SINT24; + + if (info.outputChannels > 0) + if (getDefaultOutputDevice() == device) info.isDefaultOutput = true; + if (info.inputChannels > 0) + if (getDefaultInputDevice() == device) info.isDefaultInput = true; + + info.probed = true; + drivers.removeCurrentDriver(); + return info; +} + +static void bufferSwitch(long index, ASIOBool /*processNow*/) +{ + RtApiAsio * object = (RtApiAsio *) asioCallbackInfo->object; + object->callbackEvent(index); +} + +void RtApiAsio ::saveDeviceInfo(void) +{ + devices_.clear(); + + unsigned int nDevices = getDeviceCount(); + devices_.resize(nDevices); + for (unsigned int i = 0; i < nDevices; i++) + devices_[i] = getDeviceInfo(i); +} + +bool RtApiAsio ::probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options) +{ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + bool isDuplexInput = mode == INPUT && stream_.mode == OUTPUT; + + // For ASIO, a duplex stream MUST use the same driver. + if (isDuplexInput && stream_.device[0] != device) + { + errorText_ = "RtApiAsio::probeDeviceOpen: an ASIO duplex stream must use the same device for input and output!"; + return FAILURE; + } + + char driverName[32]; + ASIOError result = drivers.asioGetDriverName((int) device, driverName, 32); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: unable to get driver name (" << getAsioErrorString(result) << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Only load the driver once for duplex stream. + if (!isDuplexInput) + { + // The getDeviceInfo() function will not work when a stream is open + // because ASIO does not allow multiple devices to run at the same + // time. Thus, we'll probe the system before opening a stream and + // save the results for use by getDeviceInfo(). + this->saveDeviceInfo(); + + if (!drivers.loadDriver(driverName)) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: unable to load driver (" << driverName << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + result = ASIOInit(&driverInfo); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: error (" << getAsioErrorString(result) << ") initializing driver (" << driverName << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + + // keep them before any "goto error", they are used for error cleanup + goto device boundary checks + bool buffersAllocated = false; + AsioHandle * handle = (AsioHandle *) stream_.apiHandle; + unsigned int nChannels; + + // Check the device channel count. + long inputChannels, outputChannels; + result = ASIOGetChannels(&inputChannels, &outputChannels); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: error (" << getAsioErrorString(result) << ") getting channel count (" << driverName << ")."; + errorText_ = errorStream_.str(); + goto error; + } + + if ((mode == OUTPUT && (channels + firstChannel) > (unsigned int) outputChannels) || (mode == INPUT && (channels + firstChannel) > (unsigned int) inputChannels)) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") does not support requested channel count (" << channels << ") + offset (" << firstChannel << ")."; + errorText_ = errorStream_.str(); + goto error; + } + stream_.nDeviceChannels[mode] = channels; + stream_.nUserChannels[mode] = channels; + stream_.channelOffset[mode] = firstChannel; + + // Verify the sample rate is supported. + result = ASIOCanSampleRate((ASIOSampleRate) sampleRate); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") does not support requested sample rate (" << sampleRate << ")."; + errorText_ = errorStream_.str(); + goto error; + } + + // Get the current sample rate + ASIOSampleRate currentRate; + result = ASIOGetSampleRate(¤tRate); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error getting sample rate."; + errorText_ = errorStream_.str(); + goto error; + } + + // Set the sample rate only if necessary + if (currentRate != sampleRate) + { + result = ASIOSetSampleRate((ASIOSampleRate) sampleRate); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error setting sample rate (" << sampleRate << ")."; + errorText_ = errorStream_.str(); + goto error; + } + } + + // Determine the driver data type. + ASIOChannelInfo channelInfo; + channelInfo.channel = 0; + if (mode == OUTPUT) + channelInfo.isInput = false; + else + channelInfo.isInput = true; + result = ASIOGetChannelInfo(&channelInfo); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error (" << getAsioErrorString(result) << ") getting data format."; + errorText_ = errorStream_.str(); + goto error; + } + + // Assuming WINDOWS host is always little-endian. + stream_.doByteSwap[mode] = false; + stream_.userFormat = format; + stream_.deviceFormat[mode] = 0; + if (channelInfo.type == ASIOSTInt16MSB || channelInfo.type == ASIOSTInt16LSB) + { + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + if (channelInfo.type == ASIOSTInt16MSB) stream_.doByteSwap[mode] = true; + } + else if (channelInfo.type == ASIOSTInt32MSB || channelInfo.type == ASIOSTInt32LSB) + { + stream_.deviceFormat[mode] = RTAUDIO_SINT32; + if (channelInfo.type == ASIOSTInt32MSB) stream_.doByteSwap[mode] = true; + } + else if (channelInfo.type == ASIOSTFloat32MSB || channelInfo.type == ASIOSTFloat32LSB) + { + stream_.deviceFormat[mode] = RTAUDIO_FLOAT32; + if (channelInfo.type == ASIOSTFloat32MSB) stream_.doByteSwap[mode] = true; + } + else if (channelInfo.type == ASIOSTFloat64MSB || channelInfo.type == ASIOSTFloat64LSB) + { + stream_.deviceFormat[mode] = RTAUDIO_FLOAT64; + if (channelInfo.type == ASIOSTFloat64MSB) stream_.doByteSwap[mode] = true; + } + else if (channelInfo.type == ASIOSTInt24MSB || channelInfo.type == ASIOSTInt24LSB) + { + stream_.deviceFormat[mode] = RTAUDIO_SINT24; + if (channelInfo.type == ASIOSTInt24MSB) stream_.doByteSwap[mode] = true; + } + + if (stream_.deviceFormat[mode] == 0) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") data format not supported by RtAudio."; + errorText_ = errorStream_.str(); + goto error; + } + + // Set the buffer size. For a duplex stream, this will end up + // setting the buffer size based on the input constraints, which + // should be ok. + long minSize, maxSize, preferSize, granularity; + result = ASIOGetBufferSize(&minSize, &maxSize, &preferSize, &granularity); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error (" << getAsioErrorString(result) << ") getting buffer size."; + errorText_ = errorStream_.str(); + goto error; + } + + if (isDuplexInput) + { + // When this is the duplex input (output was opened before), then we have to use the same + // buffersize as the output, because it might use the preferred buffer size, which most + // likely wasn't passed as input to this. The buffer sizes have to be identically anyway, + // So instead of throwing an error, make them equal. The caller uses the reference + // to the "bufferSize" param as usual to set up processing buffers. + + *bufferSize = stream_.bufferSize; + } + else + { + if (*bufferSize == 0) + *bufferSize = preferSize; + else if (*bufferSize < (unsigned int) minSize) + *bufferSize = (unsigned int) minSize; + else if (*bufferSize > (unsigned int) maxSize) + *bufferSize = (unsigned int) maxSize; + else if (granularity == -1) + { + // Make sure bufferSize is a power of two. + int log2_of_min_size = 0; + int log2_of_max_size = 0; + + for (unsigned int i = 0; i < sizeof(long) * 8; i++) + { + if (minSize & ((long) 1 << i)) log2_of_min_size = i; + if (maxSize & ((long) 1 << i)) log2_of_max_size = i; + } + + long min_delta = std::abs((long) *bufferSize - ((long) 1 << log2_of_min_size)); + int min_delta_num = log2_of_min_size; + + for (int i = log2_of_min_size + 1; i <= log2_of_max_size; i++) + { + long current_delta = std::abs((long) *bufferSize - ((long) 1 << i)); + if (current_delta < min_delta) + { + min_delta = current_delta; + min_delta_num = i; + } + } + + *bufferSize = ((unsigned int) 1 << min_delta_num); + if (*bufferSize < (unsigned int) minSize) + *bufferSize = (unsigned int) minSize; + else if (*bufferSize > (unsigned int) maxSize) + *bufferSize = (unsigned int) maxSize; + } + else if (granularity != 0) + { + // Set to an even multiple of granularity, rounding up. + *bufferSize = (*bufferSize + granularity - 1) / granularity * granularity; + } + } + + /* + // we don't use it anymore, see above! + // Just left it here for the case... + if ( isDuplexInput && stream_.bufferSize != *bufferSize ) { + errorText_ = "RtApiAsio::probeDeviceOpen: input/output buffersize discrepancy!"; + goto error; + } + */ + + stream_.bufferSize = *bufferSize; + stream_.nBuffers = 2; + + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + stream_.userInterleaved = false; + else + stream_.userInterleaved = true; + + // ASIO always uses non-interleaved buffers. + stream_.deviceInterleaved[mode] = false; + + // Allocate, if necessary, our AsioHandle structure for the stream. + if (handle == 0) + { + try + { + handle = new AsioHandle; + } + catch (std::bad_alloc &) + { + errorText_ = "RtApiAsio::probeDeviceOpen: error allocating AsioHandle memory."; + goto error; + } + handle->bufferInfos = 0; + + // Create a manual-reset event. + handle->condition = CreateEvent(NULL, // no security + TRUE, // manual-reset + FALSE, // non-signaled initially + NULL); // unnamed + stream_.apiHandle = (void *) handle; + } + + // Create the ASIO internal buffers. Since RtAudio sets up input + // and output separately, we'll have to dispose of previously + // created output buffers for a duplex stream. + if (mode == INPUT && stream_.mode == OUTPUT) + { + ASIODisposeBuffers(); + if (handle->bufferInfos) free(handle->bufferInfos); + } + + // Allocate, initialize, and save the bufferInfos in our stream callbackInfo structure. + unsigned int i; + nChannels = stream_.nDeviceChannels[0] + stream_.nDeviceChannels[1]; + handle->bufferInfos = (ASIOBufferInfo *) malloc(nChannels * sizeof(ASIOBufferInfo)); + if (handle->bufferInfos == NULL) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: error allocating bufferInfo memory for driver (" << driverName << ")."; + errorText_ = errorStream_.str(); + goto error; + } + + ASIOBufferInfo * infos; + infos = handle->bufferInfos; + for (i = 0; i < stream_.nDeviceChannels[0]; i++, infos++) + { + infos->isInput = ASIOFalse; + infos->channelNum = i + stream_.channelOffset[0]; + infos->buffers[0] = infos->buffers[1] = 0; + } + for (i = 0; i < stream_.nDeviceChannels[1]; i++, infos++) + { + infos->isInput = ASIOTrue; + infos->channelNum = i + stream_.channelOffset[1]; + infos->buffers[0] = infos->buffers[1] = 0; + } + + // prepare for callbacks + stream_.sampleRate = sampleRate; + stream_.device[mode] = device; + stream_.mode = isDuplexInput ? DUPLEX : mode; + + // store this class instance before registering callbacks, that are going to use it + asioCallbackInfo = &stream_.callbackInfo; + stream_.callbackInfo.object = (void *) this; + + // Set up the ASIO callback structure and create the ASIO data buffers. + asioCallbacks.bufferSwitch = &bufferSwitch; + asioCallbacks.sampleRateDidChange = &sampleRateChanged; + asioCallbacks.asioMessage = &asioMessages; + asioCallbacks.bufferSwitchTimeInfo = NULL; + result = ASIOCreateBuffers(handle->bufferInfos, nChannels, stream_.bufferSize, &asioCallbacks); + if (result != ASE_OK) + { + // Standard method failed. This can happen with strict/misbehaving drivers that return valid buffer size ranges + // but only accept the preferred buffer size as parameter for ASIOCreateBuffers (e.g. Creative's ASIO driver). + // In that case, let's be naïve and try that instead. + *bufferSize = preferSize; + stream_.bufferSize = *bufferSize; + result = ASIOCreateBuffers(handle->bufferInfos, nChannels, stream_.bufferSize, &asioCallbacks); + } + + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error (" << getAsioErrorString(result) << ") creating buffers."; + errorText_ = errorStream_.str(); + goto error; + } + buffersAllocated = true; + stream_.state = STREAM_STOPPED; + + // Set flags for buffer conversion. + stream_.doConvertBuffer[mode] = false; + if (stream_.userFormat != stream_.deviceFormat[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.userInterleaved != stream_.deviceInterleaved[mode] && stream_.nUserChannels[mode] > 1) + stream_.doConvertBuffer[mode] = true; + + // Allocate necessary internal buffers + unsigned long bufferBytes; + bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes(stream_.userFormat); + stream_.userBuffer[mode] = (char *) calloc(bufferBytes, 1); + if (stream_.userBuffer[mode] == NULL) + { + errorText_ = "RtApiAsio::probeDeviceOpen: error allocating user buffer memory."; + goto error; + } + + if (stream_.doConvertBuffer[mode]) + { + + bool makeBuffer = true; + bufferBytes = stream_.nDeviceChannels[mode] * formatBytes(stream_.deviceFormat[mode]); + if (isDuplexInput && stream_.deviceBuffer) + { + unsigned long bytesOut = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + if (bufferBytes <= bytesOut) makeBuffer = false; + } + + if (makeBuffer) + { + bufferBytes *= *bufferSize; + if (stream_.deviceBuffer) free(stream_.deviceBuffer); + stream_.deviceBuffer = (char *) calloc(bufferBytes, 1); + if (stream_.deviceBuffer == NULL) + { + errorText_ = "RtApiAsio::probeDeviceOpen: error allocating device buffer memory."; + goto error; + } + } + } + + // Determine device latencies + long inputLatency, outputLatency; + result = ASIOGetLatencies(&inputLatency, &outputLatency); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::probeDeviceOpen: driver (" << driverName << ") error (" << getAsioErrorString(result) << ") getting latency."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); // warn but don't fail + } + else + { + stream_.latency[0] = outputLatency; + stream_.latency[1] = inputLatency; + } + + // Setup the buffer conversion information structure. We don't use + // buffers to do channel offsets, so we override that parameter + // here. + if (stream_.doConvertBuffer[mode]) setConvertInfo(mode, 0); + + return SUCCESS; + +error: + if (!isDuplexInput) + { + // the cleanup for error in the duplex input, is done by RtApi::openStream + // So we clean up for single channel only + + if (buffersAllocated) + ASIODisposeBuffers(); + + drivers.removeCurrentDriver(); + + if (handle) + { + CloseHandle(handle->condition); + if (handle->bufferInfos) + free(handle->bufferInfos); + + delete handle; + stream_.apiHandle = 0; + } + + if (stream_.userBuffer[mode]) + { + free(stream_.userBuffer[mode]); + stream_.userBuffer[mode] = 0; + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + } + + return FAILURE; +} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void RtApiAsio ::closeStream() +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiAsio::closeStream(): no open stream to close!"; + error(RtAudioError::WARNING); + return; + } + + if (stream_.state == STREAM_RUNNING) + { + stream_.state = STREAM_STOPPED; + ASIOStop(); + } + ASIODisposeBuffers(); + drivers.removeCurrentDriver(); + + AsioHandle * handle = (AsioHandle *) stream_.apiHandle; + if (handle) + { + CloseHandle(handle->condition); + if (handle->bufferInfos) + free(handle->bufferInfos); + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.mode = UNINITIALIZED; + stream_.state = STREAM_CLOSED; +} + +bool stopThreadCalled = false; + +void RtApiAsio ::startStream() +{ + verifyStream(); + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiAsio::startStream(): the stream is already running!"; + error(RtAudioError::WARNING); + return; + } + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + AsioHandle * handle = (AsioHandle *) stream_.apiHandle; + ASIOError result = ASIOStart(); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::startStream: error (" << getAsioErrorString(result) << ") starting device."; + errorText_ = errorStream_.str(); + goto unlock; + } + + handle->drainCounter = 0; + handle->internalDrain = false; + ResetEvent(handle->condition); + stream_.state = STREAM_RUNNING; + asioXRun = false; + +unlock: + stopThreadCalled = false; + + if (result == ASE_OK) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiAsio ::stopStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiAsio::stopStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + AsioHandle * handle = (AsioHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + if (handle->drainCounter == 0) + { + handle->drainCounter = 2; + WaitForSingleObject(handle->condition, INFINITE); // block until signaled + } + } + + stream_.state = STREAM_STOPPED; + + ASIOError result = ASIOStop(); + if (result != ASE_OK) + { + errorStream_ << "RtApiAsio::stopStream: error (" << getAsioErrorString(result) << ") stopping device."; + errorText_ = errorStream_.str(); + } + + if (result == ASE_OK) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiAsio ::abortStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiAsio::abortStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + // The following lines were commented-out because some behavior was + // noted where the device buffers need to be zeroed to avoid + // continuing sound, even when the device buffers are completely + // disposed. So now, calling abort is the same as calling stop. + // AsioHandle *handle = (AsioHandle *) stream_.apiHandle; + // handle->drainCounter = 2; + stopStream(); +} + +// This function will be called by a spawned thread when the user +// callback function signals that the stream should be stopped or +// aborted. It is necessary to handle it this way because the +// callbackEvent() function must return before the ASIOStop() +// function will return. +static unsigned __stdcall asioStopStream(void * ptr) +{ + CallbackInfo * info = (CallbackInfo *) ptr; + RtApiAsio * object = (RtApiAsio *) info->object; + + object->stopStream(); + _endthreadex(0); + return 0; +} + +bool RtApiAsio ::callbackEvent(long bufferIndex) +{ + if (stream_.state == STREAM_STOPPED || stream_.state == STREAM_STOPPING) return SUCCESS; + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiAsio::callbackEvent(): the stream is closed ... this shouldn't happen!"; + error(RtAudioError::WARNING); + return FAILURE; + } + + CallbackInfo * info = (CallbackInfo *) &stream_.callbackInfo; + AsioHandle * handle = (AsioHandle *) stream_.apiHandle; + + // Check if we were draining the stream and signal if finished. + if (handle->drainCounter > 3) + { + + stream_.state = STREAM_STOPPING; + if (handle->internalDrain == false) + SetEvent(handle->condition); + else + { // spawn a thread to stop the stream + unsigned threadId; + stream_.callbackInfo.thread = _beginthreadex(NULL, 0, &asioStopStream, + &stream_.callbackInfo, 0, &threadId); + } + return SUCCESS; + } + + // Invoke user callback to get fresh output data UNLESS we are + // draining stream. + if (handle->drainCounter == 0) + { + RtAudioCallback callback = (RtAudioCallback) info->callback; + double streamTime = getStreamTime(); + RtAudioStreamStatus status = 0; + if (stream_.mode != INPUT && asioXRun == true) + { + status |= RTAUDIO_OUTPUT_UNDERFLOW; + asioXRun = false; + } + if (stream_.mode != OUTPUT && asioXRun == true) + { + status |= RTAUDIO_INPUT_OVERFLOW; + asioXRun = false; + } + int cbReturnValue = callback(stream_.userBuffer[0], stream_.userBuffer[1], + stream_.bufferSize, streamTime, status, info->userData); + if (cbReturnValue == 2) + { + stream_.state = STREAM_STOPPING; + handle->drainCounter = 2; + unsigned threadId; + stream_.callbackInfo.thread = _beginthreadex(NULL, 0, &asioStopStream, + &stream_.callbackInfo, 0, &threadId); + return SUCCESS; + } + else if (cbReturnValue == 1) + { + handle->drainCounter = 1; + handle->internalDrain = true; + } + } + + unsigned int nChannels, bufferBytes, i, j; + nChannels = stream_.nDeviceChannels[0] + stream_.nDeviceChannels[1]; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + bufferBytes = stream_.bufferSize * formatBytes(stream_.deviceFormat[0]); + + if (handle->drainCounter > 1) + { // write zeros to the output stream + + for (i = 0, j = 0; i < nChannels; i++) + { + if (handle->bufferInfos[i].isInput != ASIOTrue) + memset(handle->bufferInfos[i].buffers[bufferIndex], 0, bufferBytes); + } + } + else if (stream_.doConvertBuffer[0]) + { + + convertBuffer(stream_.deviceBuffer, stream_.userBuffer[0], stream_.convertInfo[0]); + if (stream_.doByteSwap[0]) + byteSwapBuffer(stream_.deviceBuffer, + stream_.bufferSize * stream_.nDeviceChannels[0], + stream_.deviceFormat[0]); + + for (i = 0, j = 0; i < nChannels; i++) + { + if (handle->bufferInfos[i].isInput != ASIOTrue) + memcpy(handle->bufferInfos[i].buffers[bufferIndex], + &stream_.deviceBuffer[j++ * bufferBytes], bufferBytes); + } + } + else + { + + if (stream_.doByteSwap[0]) + byteSwapBuffer(stream_.userBuffer[0], + stream_.bufferSize * stream_.nUserChannels[0], + stream_.userFormat); + + for (i = 0, j = 0; i < nChannels; i++) + { + if (handle->bufferInfos[i].isInput != ASIOTrue) + memcpy(handle->bufferInfos[i].buffers[bufferIndex], + &stream_.userBuffer[0][bufferBytes * j++], bufferBytes); + } + } + } + + // Don't bother draining input + if (handle->drainCounter) + { + handle->drainCounter++; + goto unlock; + } + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + + bufferBytes = stream_.bufferSize * formatBytes(stream_.deviceFormat[1]); + + if (stream_.doConvertBuffer[1]) + { + + // Always interleave ASIO input data. + for (i = 0, j = 0; i < nChannels; i++) + { + if (handle->bufferInfos[i].isInput == ASIOTrue) + memcpy(&stream_.deviceBuffer[j++ * bufferBytes], + handle->bufferInfos[i].buffers[bufferIndex], + bufferBytes); + } + + if (stream_.doByteSwap[1]) + byteSwapBuffer(stream_.deviceBuffer, + stream_.bufferSize * stream_.nDeviceChannels[1], + stream_.deviceFormat[1]); + convertBuffer(stream_.userBuffer[1], stream_.deviceBuffer, stream_.convertInfo[1]); + } + else + { + for (i = 0, j = 0; i < nChannels; i++) + { + if (handle->bufferInfos[i].isInput == ASIOTrue) + { + memcpy(&stream_.userBuffer[1][bufferBytes * j++], + handle->bufferInfos[i].buffers[bufferIndex], + bufferBytes); + } + } + + if (stream_.doByteSwap[1]) + byteSwapBuffer(stream_.userBuffer[1], + stream_.bufferSize * stream_.nUserChannels[1], + stream_.userFormat); + } + } + +unlock: + // The following call was suggested by Malte Clasen. While the API + // documentation indicates it should not be required, some device + // drivers apparently do not function correctly without it. + ASIOOutputReady(); + + RtApi::tickStreamTime(); + return SUCCESS; +} + +static void sampleRateChanged(ASIOSampleRate sRate) +{ + // The ASIO documentation says that this usually only happens during + // external sync. Audio processing is not stopped by the driver, + // actual sample rate might not have even changed, maybe only the + // sample rate status of an AES/EBU or S/PDIF digital input at the + // audio device. + + RtApi * object = (RtApi *) asioCallbackInfo->object; + try + { + object->stopStream(); + } + catch (RtAudioError & exception) + { + std::cerr << "\nRtApiAsio: sampleRateChanged() error (" << exception.getMessage() << ")!\n" + << std::endl; + return; + } + + std::cerr << "\nRtApiAsio: driver reports sample rate changed to " << sRate << " ... stream stopped!!!\n" + << std::endl; +} + +static long asioMessages(long selector, long value, void * /*message*/, double * /*opt*/) +{ + long ret = 0; + + switch (selector) + { + case kAsioSelectorSupported: + if (value == kAsioResetRequest + || value == kAsioEngineVersion + || value == kAsioResyncRequest + || value == kAsioLatenciesChanged + // The following three were added for ASIO 2.0, you don't + // necessarily have to support them. + || value == kAsioSupportsTimeInfo + || value == kAsioSupportsTimeCode + || value == kAsioSupportsInputMonitor) + ret = 1L; + break; + case kAsioResetRequest: + // Defer the task and perform the reset of the driver during the + // next "safe" situation. You cannot reset the driver right now, + // as this code is called from the driver. Reset the driver is + // done by completely destruct is. I.e. ASIOStop(), + // ASIODisposeBuffers(), Destruction Afterwards you initialize the + // driver again. + std::cerr << "\nRtApiAsio: driver reset requested!!!" << std::endl; + ret = 1L; + break; + case kAsioResyncRequest: + // This informs the application that the driver encountered some + // non-fatal data loss. It is used for synchronization purposes + // of different media. Added mainly to work around the Win16Mutex + // problems in Windows 95/98 with the Windows Multimedia system, + // which could lose data because the Mutex was held too long by + // another thread. However a driver can issue it in other + // situations, too. + // std::cerr << "\nRtApiAsio: driver resync requested!!!" << std::endl; + asioXRun = true; + ret = 1L; + break; + case kAsioLatenciesChanged: + // This will inform the host application that the drivers were + // latencies changed. Beware, it this does not mean that the + // buffer sizes have changed! You might need to update internal + // delay data. + std::cerr << "\nRtApiAsio: driver latency may have changed!!!" << std::endl; + ret = 1L; + break; + case kAsioEngineVersion: + // Return the supported ASIO version of the host application. If + // a host application does not implement this selector, ASIO 1.0 + // is assumed by the driver. + ret = 2L; + break; + case kAsioSupportsTimeInfo: + // Informs the driver whether the + // asioCallbacks.bufferSwitchTimeInfo() callback is supported. + // For compatibility with ASIO 1.0 drivers the host application + // should always support the "old" bufferSwitch method, too. + ret = 0; + break; + case kAsioSupportsTimeCode: + // Informs the driver whether application is interested in time + // code info. If an application does not need to know about time + // code, the driver has less work to do. + ret = 0; + break; + } + return ret; +} + +static const char * getAsioErrorString(ASIOError result) +{ + struct Messages + { + ASIOError value; + const char * message; + }; + + static const Messages m[] = { + {ASE_NotPresent, "Hardware input or output is not present or available."}, + {ASE_HWMalfunction, "Hardware is malfunctioning."}, + {ASE_InvalidParameter, "Invalid input parameter."}, + {ASE_InvalidMode, "Invalid mode."}, + {ASE_SPNotAdvancing, "Sample position not advancing."}, + {ASE_NoClock, "Sample clock or rate cannot be determined or is not present."}, + {ASE_NoMemory, "Not enough memory to complete the request."}}; + + for (unsigned int i = 0; i < sizeof(m) / sizeof(m[0]); ++i) + if (m[i].value == result) return m[i].message; + + return "Unknown error."; +} + +//******************** End of __WINDOWS_ASIO__ *********************// +#endif + +#if defined(__WINDOWS_WASAPI__) // Windows WASAPI API + +// Authored by Marcus Tomlinson , April 2014 +// - Introduces support for the Windows WASAPI API +// - Aims to deliver bit streams to and from hardware at the lowest possible latency, via the absolute minimum buffer sizes required +// - Provides flexible stream configuration to an otherwise strict and inflexible WASAPI interface +// - Includes automatic internal conversion of sample rate and buffer size between hardware and the user + +#ifndef INITGUID +#define INITGUID +#endif + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#ifndef MF_E_TRANSFORM_NEED_MORE_INPUT +#define MF_E_TRANSFORM_NEED_MORE_INPUT _HRESULT_TYPEDEF_(0xc00d6d72) +#endif + +#ifndef MFSTARTUP_NOSOCKET +#define MFSTARTUP_NOSOCKET 0x1 +#endif + +#ifdef _MSC_VER +#pragma comment(lib, "ksuser") +#pragma comment(lib, "mfplat.lib") +#pragma comment(lib, "mfuuid.lib") +#pragma comment(lib, "wmcodecdspuuid") +#endif + +//============================================================================= + +#define SAFE_RELEASE(objectPtr) \ + if (objectPtr) \ + { \ + objectPtr->Release(); \ + objectPtr = NULL; \ + } + +typedef HANDLE(__stdcall * TAvSetMmThreadCharacteristicsPtr)(LPCWSTR TaskName, LPDWORD TaskIndex); + +//----------------------------------------------------------------------------- + +// WASAPI dictates stream sample rate, format, channel count, and in some cases, buffer size. +// Therefore we must perform all necessary conversions to user buffers in order to satisfy these +// requirements. WasapiBuffer ring buffers are used between HwIn->UserIn and UserOut->HwOut to +// provide intermediate storage for read / write synchronization. +class WasapiBuffer +{ +public: + WasapiBuffer() + : buffer_(NULL) + , bufferSize_(0) + , inIndex_(0) + , outIndex_(0) + { + } + + ~WasapiBuffer() + { + free(buffer_); + } + + // sets the length of the internal ring buffer + void setBufferSize(unsigned int bufferSize, unsigned int formatBytes) + { + free(buffer_); + + buffer_ = (char *) calloc(bufferSize, formatBytes); + + bufferSize_ = bufferSize; + inIndex_ = 0; + outIndex_ = 0; + } + + // attempt to push a buffer into the ring buffer at the current "in" index + bool pushBuffer(char * buffer, unsigned int bufferSize, RtAudioFormat format) + { + if (!buffer || // incoming buffer is NULL + bufferSize == 0 || // incoming buffer has no data + bufferSize > bufferSize_) // incoming buffer too large + { + return false; + } + + unsigned int relOutIndex = outIndex_; + unsigned int inIndexEnd = inIndex_ + bufferSize; + if (relOutIndex < inIndex_ && inIndexEnd >= bufferSize_) + { + relOutIndex += bufferSize_; + } + + // the "IN" index CAN BEGIN at the "OUT" index + // the "IN" index CANNOT END at the "OUT" index + if (inIndex_ < relOutIndex && inIndexEnd >= relOutIndex) + { + return false; // not enough space between "in" index and "out" index + } + + // copy buffer from external to internal + int fromZeroSize = inIndex_ + bufferSize - bufferSize_; + fromZeroSize = fromZeroSize < 0 ? 0 : fromZeroSize; + int fromInSize = bufferSize - fromZeroSize; + + switch (format) + { + case RTAUDIO_SINT8: + memcpy(&((char *) buffer_)[inIndex_], buffer, fromInSize * sizeof(char)); + memcpy(buffer_, &((char *) buffer)[fromInSize], fromZeroSize * sizeof(char)); + break; + case RTAUDIO_SINT16: + memcpy(&((short *) buffer_)[inIndex_], buffer, fromInSize * sizeof(short)); + memcpy(buffer_, &((short *) buffer)[fromInSize], fromZeroSize * sizeof(short)); + break; + case RTAUDIO_SINT24: + memcpy(&((S24 *) buffer_)[inIndex_], buffer, fromInSize * sizeof(S24)); + memcpy(buffer_, &((S24 *) buffer)[fromInSize], fromZeroSize * sizeof(S24)); + break; + case RTAUDIO_SINT32: + memcpy(&((int *) buffer_)[inIndex_], buffer, fromInSize * sizeof(int)); + memcpy(buffer_, &((int *) buffer)[fromInSize], fromZeroSize * sizeof(int)); + break; + case RTAUDIO_FLOAT32: + memcpy(&((float *) buffer_)[inIndex_], buffer, fromInSize * sizeof(float)); + memcpy(buffer_, &((float *) buffer)[fromInSize], fromZeroSize * sizeof(float)); + break; + case RTAUDIO_FLOAT64: + memcpy(&((double *) buffer_)[inIndex_], buffer, fromInSize * sizeof(double)); + memcpy(buffer_, &((double *) buffer)[fromInSize], fromZeroSize * sizeof(double)); + break; + } + + // update "in" index + inIndex_ += bufferSize; + inIndex_ %= bufferSize_; + + return true; + } + + // attempt to pull a buffer from the ring buffer from the current "out" index + bool pullBuffer(char * buffer, unsigned int bufferSize, RtAudioFormat format) + { + if (!buffer || // incoming buffer is NULL + bufferSize == 0 || // incoming buffer has no data + bufferSize > bufferSize_) // incoming buffer too large + { + return false; + } + + unsigned int relInIndex = inIndex_; + unsigned int outIndexEnd = outIndex_ + bufferSize; + if (relInIndex < outIndex_ && outIndexEnd >= bufferSize_) + { + relInIndex += bufferSize_; + } + + // the "OUT" index CANNOT BEGIN at the "IN" index + // the "OUT" index CAN END at the "IN" index + if (outIndex_ <= relInIndex && outIndexEnd > relInIndex) + { + return false; // not enough space between "out" index and "in" index + } + + // copy buffer from internal to external + int fromZeroSize = outIndex_ + bufferSize - bufferSize_; + fromZeroSize = fromZeroSize < 0 ? 0 : fromZeroSize; + int fromOutSize = bufferSize - fromZeroSize; + + switch (format) + { + case RTAUDIO_SINT8: + memcpy(buffer, &((char *) buffer_)[outIndex_], fromOutSize * sizeof(char)); + memcpy(&((char *) buffer)[fromOutSize], buffer_, fromZeroSize * sizeof(char)); + break; + case RTAUDIO_SINT16: + memcpy(buffer, &((short *) buffer_)[outIndex_], fromOutSize * sizeof(short)); + memcpy(&((short *) buffer)[fromOutSize], buffer_, fromZeroSize * sizeof(short)); + break; + case RTAUDIO_SINT24: + memcpy(buffer, &((S24 *) buffer_)[outIndex_], fromOutSize * sizeof(S24)); + memcpy(&((S24 *) buffer)[fromOutSize], buffer_, fromZeroSize * sizeof(S24)); + break; + case RTAUDIO_SINT32: + memcpy(buffer, &((int *) buffer_)[outIndex_], fromOutSize * sizeof(int)); + memcpy(&((int *) buffer)[fromOutSize], buffer_, fromZeroSize * sizeof(int)); + break; + case RTAUDIO_FLOAT32: + memcpy(buffer, &((float *) buffer_)[outIndex_], fromOutSize * sizeof(float)); + memcpy(&((float *) buffer)[fromOutSize], buffer_, fromZeroSize * sizeof(float)); + break; + case RTAUDIO_FLOAT64: + memcpy(buffer, &((double *) buffer_)[outIndex_], fromOutSize * sizeof(double)); + memcpy(&((double *) buffer)[fromOutSize], buffer_, fromZeroSize * sizeof(double)); + break; + } + + // update "out" index + outIndex_ += bufferSize; + outIndex_ %= bufferSize_; + + return true; + } + +private: + char * buffer_; + unsigned int bufferSize_; + unsigned int inIndex_; + unsigned int outIndex_; +}; + +//----------------------------------------------------------------------------- + +// In order to satisfy WASAPI's buffer requirements, we need a means of converting sample rate +// between HW and the user. The WasapiResampler class is used to perform this conversion between +// HwIn->UserIn and UserOut->HwOut during the stream callback loop. +class WasapiResampler +{ +public: + WasapiResampler(bool isFloat, unsigned int bitsPerSample, unsigned int channelCount, + unsigned int inSampleRate, unsigned int outSampleRate) + : _bytesPerSample(bitsPerSample / 8) + , _channelCount(channelCount) + , _sampleRatio((float) outSampleRate / inSampleRate) + , _transformUnk(NULL) + , _transform(NULL) + , _mediaType(NULL) + , _inputMediaType(NULL) + , _outputMediaType(NULL) + +#ifdef __IWMResamplerProps_FWD_DEFINED__ + , _resamplerProps(NULL) +#endif + { + // 1. Initialization + + MFStartup(MF_VERSION, MFSTARTUP_NOSOCKET); + + // 2. Create Resampler Transform Object + + CoCreateInstance(CLSID_CResamplerMediaObject, NULL, CLSCTX_INPROC_SERVER, + IID_IUnknown, (void **) &_transformUnk); + + _transformUnk->QueryInterface(IID_PPV_ARGS(&_transform)); + +#ifdef __IWMResamplerProps_FWD_DEFINED__ + _transformUnk->QueryInterface(IID_PPV_ARGS(&_resamplerProps)); + _resamplerProps->SetHalfFilterLength(60); // best conversion quality +#endif + + // 3. Specify input / output format + + MFCreateMediaType(&_mediaType); + _mediaType->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Audio); + _mediaType->SetGUID(MF_MT_SUBTYPE, isFloat ? MFAudioFormat_Float : MFAudioFormat_PCM); + _mediaType->SetUINT32(MF_MT_AUDIO_NUM_CHANNELS, channelCount); + _mediaType->SetUINT32(MF_MT_AUDIO_SAMPLES_PER_SECOND, inSampleRate); + _mediaType->SetUINT32(MF_MT_AUDIO_BLOCK_ALIGNMENT, _bytesPerSample * channelCount); + _mediaType->SetUINT32(MF_MT_AUDIO_AVG_BYTES_PER_SECOND, _bytesPerSample * channelCount * inSampleRate); + _mediaType->SetUINT32(MF_MT_AUDIO_BITS_PER_SAMPLE, bitsPerSample); + _mediaType->SetUINT32(MF_MT_ALL_SAMPLES_INDEPENDENT, TRUE); + + MFCreateMediaType(&_inputMediaType); + _mediaType->CopyAllItems(_inputMediaType); + + _transform->SetInputType(0, _inputMediaType, 0); + + MFCreateMediaType(&_outputMediaType); + _mediaType->CopyAllItems(_outputMediaType); + + _outputMediaType->SetUINT32(MF_MT_AUDIO_SAMPLES_PER_SECOND, outSampleRate); + _outputMediaType->SetUINT32(MF_MT_AUDIO_AVG_BYTES_PER_SECOND, _bytesPerSample * channelCount * outSampleRate); + + _transform->SetOutputType(0, _outputMediaType, 0); + + // 4. Send stream start messages to Resampler + + _transform->ProcessMessage(MFT_MESSAGE_COMMAND_FLUSH, 0); + _transform->ProcessMessage(MFT_MESSAGE_NOTIFY_BEGIN_STREAMING, 0); + _transform->ProcessMessage(MFT_MESSAGE_NOTIFY_START_OF_STREAM, 0); + } + + ~WasapiResampler() + { + // 8. Send stream stop messages to Resampler + + _transform->ProcessMessage(MFT_MESSAGE_NOTIFY_END_OF_STREAM, 0); + _transform->ProcessMessage(MFT_MESSAGE_NOTIFY_END_STREAMING, 0); + + // 9. Cleanup + + MFShutdown(); + + SAFE_RELEASE(_transformUnk); + SAFE_RELEASE(_transform); + SAFE_RELEASE(_mediaType); + SAFE_RELEASE(_inputMediaType); + SAFE_RELEASE(_outputMediaType); + +#ifdef __IWMResamplerProps_FWD_DEFINED__ + SAFE_RELEASE(_resamplerProps); +#endif + } + + void Convert(char * outBuffer, const char * inBuffer, unsigned int inSampleCount, unsigned int & outSampleCount) + { + unsigned int inputBufferSize = _bytesPerSample * _channelCount * inSampleCount; + if (_sampleRatio == 1) + { + // no sample rate conversion required + memcpy(outBuffer, inBuffer, inputBufferSize); + outSampleCount = inSampleCount; + return; + } + + unsigned int outputBufferSize = (unsigned int) ceilf(inputBufferSize * _sampleRatio) + (_bytesPerSample * _channelCount); + + IMFMediaBuffer * rInBuffer; + IMFSample * rInSample; + BYTE * rInByteBuffer = NULL; + + // 5. Create Sample object from input data + + MFCreateMemoryBuffer(inputBufferSize, &rInBuffer); + + rInBuffer->Lock(&rInByteBuffer, NULL, NULL); + memcpy(rInByteBuffer, inBuffer, inputBufferSize); + rInBuffer->Unlock(); + rInByteBuffer = NULL; + + rInBuffer->SetCurrentLength(inputBufferSize); + + MFCreateSample(&rInSample); + rInSample->AddBuffer(rInBuffer); + + // 6. Pass input data to Resampler + + _transform->ProcessInput(0, rInSample, 0); + + SAFE_RELEASE(rInBuffer); + SAFE_RELEASE(rInSample); + + // 7. Perform sample rate conversion + + IMFMediaBuffer * rOutBuffer = NULL; + BYTE * rOutByteBuffer = NULL; + + MFT_OUTPUT_DATA_BUFFER rOutDataBuffer; + DWORD rStatus; + DWORD rBytes = outputBufferSize; // maximum bytes accepted per ProcessOutput + + // 7.1 Create Sample object for output data + + memset(&rOutDataBuffer, 0, sizeof rOutDataBuffer); + MFCreateSample(&(rOutDataBuffer.pSample)); + MFCreateMemoryBuffer(rBytes, &rOutBuffer); + rOutDataBuffer.pSample->AddBuffer(rOutBuffer); + rOutDataBuffer.dwStreamID = 0; + rOutDataBuffer.dwStatus = 0; + rOutDataBuffer.pEvents = NULL; + + // 7.2 Get output data from Resampler + + if (_transform->ProcessOutput(0, 1, &rOutDataBuffer, &rStatus) == MF_E_TRANSFORM_NEED_MORE_INPUT) + { + outSampleCount = 0; + SAFE_RELEASE(rOutBuffer); + SAFE_RELEASE(rOutDataBuffer.pSample); + return; + } + + // 7.3 Write output data to outBuffer + + SAFE_RELEASE(rOutBuffer); + rOutDataBuffer.pSample->ConvertToContiguousBuffer(&rOutBuffer); + rOutBuffer->GetCurrentLength(&rBytes); + + rOutBuffer->Lock(&rOutByteBuffer, NULL, NULL); + memcpy(outBuffer, rOutByteBuffer, rBytes); + rOutBuffer->Unlock(); + rOutByteBuffer = NULL; + + outSampleCount = rBytes / _bytesPerSample / _channelCount; + SAFE_RELEASE(rOutBuffer); + SAFE_RELEASE(rOutDataBuffer.pSample); + } + +private: + unsigned int _bytesPerSample; + unsigned int _channelCount; + float _sampleRatio; + + IUnknown * _transformUnk; + IMFTransform * _transform; + IMFMediaType * _mediaType; + IMFMediaType * _inputMediaType; + IMFMediaType * _outputMediaType; + +#ifdef __IWMResamplerProps_FWD_DEFINED__ + IWMResamplerProps * _resamplerProps; +#endif +}; + +//----------------------------------------------------------------------------- + +// A structure to hold various information related to the WASAPI implementation. +struct WasapiHandle +{ + IAudioClient * captureAudioClient; + IAudioClient * renderAudioClient; + IAudioCaptureClient * captureClient; + IAudioRenderClient * renderClient; + HANDLE captureEvent; + HANDLE renderEvent; + + WasapiHandle() + : captureAudioClient(NULL) + , renderAudioClient(NULL) + , captureClient(NULL) + , renderClient(NULL) + , captureEvent(NULL) + , renderEvent(NULL) + { + } +}; + +//============================================================================= + +RtApiWasapi::RtApiWasapi() + : coInitialized_(false) + , deviceEnumerator_(NULL) +{ + // WASAPI can run either apartment or multi-threaded + HRESULT hr = CoInitialize(NULL); + if (!FAILED(hr)) + coInitialized_ = true; + + // Instantiate device enumerator + hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, + CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), + (void **) &deviceEnumerator_); + + // If this runs on an old Windows, it will fail. Ignore and proceed. + if (FAILED(hr)) + deviceEnumerator_ = NULL; +} + +//----------------------------------------------------------------------------- + +RtApiWasapi::~RtApiWasapi() +{ + if (stream_.state != STREAM_CLOSED) + closeStream(); + + SAFE_RELEASE(deviceEnumerator_); + + // If this object previously called CoInitialize() + if (coInitialized_) + CoUninitialize(); +} + +//============================================================================= + +unsigned int RtApiWasapi::getDeviceCount(void) +{ + unsigned int captureDeviceCount = 0; + unsigned int renderDeviceCount = 0; + + IMMDeviceCollection * captureDevices = NULL; + IMMDeviceCollection * renderDevices = NULL; + + if (!deviceEnumerator_) + return 0; + + // Count capture devices + errorText_.clear(); + HRESULT hr = deviceEnumerator_->EnumAudioEndpoints(eCapture, DEVICE_STATE_ACTIVE, &captureDevices); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceCount: Unable to retrieve capture device collection."; + goto Exit; + } + + hr = captureDevices->GetCount(&captureDeviceCount); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceCount: Unable to retrieve capture device count."; + goto Exit; + } + + // Count render devices + hr = deviceEnumerator_->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE, &renderDevices); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceCount: Unable to retrieve render device collection."; + goto Exit; + } + + hr = renderDevices->GetCount(&renderDeviceCount); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceCount: Unable to retrieve render device count."; + goto Exit; + } + +Exit: + // release all references + SAFE_RELEASE(captureDevices); + SAFE_RELEASE(renderDevices); + + if (errorText_.empty()) + return captureDeviceCount + renderDeviceCount; + + error(RtAudioError::DRIVER_ERROR); + return 0; +} + +//----------------------------------------------------------------------------- + +RtAudio::DeviceInfo RtApiWasapi::getDeviceInfo(unsigned int device) +{ + RtAudio::DeviceInfo info; + unsigned int captureDeviceCount = 0; + unsigned int renderDeviceCount = 0; + std::string defaultDeviceName; + bool isCaptureDevice = false; + + PROPVARIANT deviceNameProp; + PROPVARIANT defaultDeviceNameProp; + + IMMDeviceCollection * captureDevices = NULL; + IMMDeviceCollection * renderDevices = NULL; + IMMDevice * devicePtr = NULL; + IMMDevice * defaultDevicePtr = NULL; + IAudioClient * audioClient = NULL; + IPropertyStore * devicePropStore = NULL; + IPropertyStore * defaultDevicePropStore = NULL; + + WAVEFORMATEX * deviceFormat = NULL; + WAVEFORMATEX * closestMatchFormat = NULL; + + // probed + info.probed = false; + + // Count capture devices + errorText_.clear(); + RtAudioError::Type errorType = RtAudioError::DRIVER_ERROR; + HRESULT hr = deviceEnumerator_->EnumAudioEndpoints(eCapture, DEVICE_STATE_ACTIVE, &captureDevices); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve capture device collection."; + goto Exit; + } + + hr = captureDevices->GetCount(&captureDeviceCount); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve capture device count."; + goto Exit; + } + + // Count render devices + hr = deviceEnumerator_->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE, &renderDevices); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve render device collection."; + goto Exit; + } + + hr = renderDevices->GetCount(&renderDeviceCount); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve render device count."; + goto Exit; + } + + // validate device index + if (device >= captureDeviceCount + renderDeviceCount) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Invalid device index."; + errorType = RtAudioError::INVALID_USE; + goto Exit; + } + + // determine whether index falls within capture or render devices + if (device >= renderDeviceCount) + { + hr = captureDevices->Item(device - renderDeviceCount, &devicePtr); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve capture device handle."; + goto Exit; + } + isCaptureDevice = true; + } + else + { + hr = renderDevices->Item(device, &devicePtr); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve render device handle."; + goto Exit; + } + isCaptureDevice = false; + } + + // get default device name + if (isCaptureDevice) + { + hr = deviceEnumerator_->GetDefaultAudioEndpoint(eCapture, eConsole, &defaultDevicePtr); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve default capture device handle."; + goto Exit; + } + } + else + { + hr = deviceEnumerator_->GetDefaultAudioEndpoint(eRender, eConsole, &defaultDevicePtr); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve default render device handle."; + goto Exit; + } + } + + hr = defaultDevicePtr->OpenPropertyStore(STGM_READ, &defaultDevicePropStore); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to open default device property store."; + goto Exit; + } + PropVariantInit(&defaultDeviceNameProp); + + hr = defaultDevicePropStore->GetValue(PKEY_Device_FriendlyName, &defaultDeviceNameProp); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve default device property: PKEY_Device_FriendlyName."; + goto Exit; + } + + defaultDeviceName = convertCharPointerToStdString(defaultDeviceNameProp.pwszVal); + + // name + hr = devicePtr->OpenPropertyStore(STGM_READ, &devicePropStore); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to open device property store."; + goto Exit; + } + + PropVariantInit(&deviceNameProp); + + hr = devicePropStore->GetValue(PKEY_Device_FriendlyName, &deviceNameProp); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve device property: PKEY_Device_FriendlyName."; + goto Exit; + } + + info.name = convertCharPointerToStdString(deviceNameProp.pwszVal); + + // is default + if (isCaptureDevice) + { + info.isDefaultInput = info.name == defaultDeviceName; + info.isDefaultOutput = false; + } + else + { + info.isDefaultInput = false; + info.isDefaultOutput = info.name == defaultDeviceName; + } + + // channel count + hr = devicePtr->Activate(__uuidof(IAudioClient), CLSCTX_ALL, NULL, (void **) &audioClient); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve device audio client."; + goto Exit; + } + + hr = audioClient->GetMixFormat(&deviceFormat); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::getDeviceInfo: Unable to retrieve device mix format."; + goto Exit; + } + + if (isCaptureDevice) + { + info.inputChannels = deviceFormat->nChannels; + info.outputChannels = 0; + info.duplexChannels = 0; + } + else + { + info.inputChannels = 0; + info.outputChannels = deviceFormat->nChannels; + info.duplexChannels = 0; + } + + // sample rates + info.sampleRates.clear(); + + // allow support for all sample rates as we have a built-in sample rate converter + for (unsigned int i = 0; i < MAX_SAMPLE_RATES; i++) + { + info.sampleRates.push_back(SAMPLE_RATES[i]); + } + info.preferredSampleRate = deviceFormat->nSamplesPerSec; + + // native format + info.nativeFormats = 0; + + if (deviceFormat->wFormatTag == WAVE_FORMAT_IEEE_FLOAT || (deviceFormat->wFormatTag == WAVE_FORMAT_EXTENSIBLE && ((WAVEFORMATEXTENSIBLE *) deviceFormat)->SubFormat == KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) + { + if (deviceFormat->wBitsPerSample == 32) + { + info.nativeFormats |= RTAUDIO_FLOAT32; + } + else if (deviceFormat->wBitsPerSample == 64) + { + info.nativeFormats |= RTAUDIO_FLOAT64; + } + } + else if (deviceFormat->wFormatTag == WAVE_FORMAT_PCM || (deviceFormat->wFormatTag == WAVE_FORMAT_EXTENSIBLE && ((WAVEFORMATEXTENSIBLE *) deviceFormat)->SubFormat == KSDATAFORMAT_SUBTYPE_PCM)) + { + if (deviceFormat->wBitsPerSample == 8) + { + info.nativeFormats |= RTAUDIO_SINT8; + } + else if (deviceFormat->wBitsPerSample == 16) + { + info.nativeFormats |= RTAUDIO_SINT16; + } + else if (deviceFormat->wBitsPerSample == 24) + { + info.nativeFormats |= RTAUDIO_SINT24; + } + else if (deviceFormat->wBitsPerSample == 32) + { + info.nativeFormats |= RTAUDIO_SINT32; + } + } + + // probed + info.probed = true; + +Exit: + // release all references + PropVariantClear(&deviceNameProp); + PropVariantClear(&defaultDeviceNameProp); + + SAFE_RELEASE(captureDevices); + SAFE_RELEASE(renderDevices); + SAFE_RELEASE(devicePtr); + SAFE_RELEASE(defaultDevicePtr); + SAFE_RELEASE(audioClient); + SAFE_RELEASE(devicePropStore); + SAFE_RELEASE(defaultDevicePropStore); + + CoTaskMemFree(deviceFormat); + CoTaskMemFree(closestMatchFormat); + + if (!errorText_.empty()) + error(errorType); + return info; +} + +//----------------------------------------------------------------------------- + +unsigned int RtApiWasapi::getDefaultOutputDevice(void) +{ + for (unsigned int i = 0; i < getDeviceCount(); i++) + { + if (getDeviceInfo(i).isDefaultOutput) + { + return i; + } + } + + return 0; +} + +//----------------------------------------------------------------------------- + +unsigned int RtApiWasapi::getDefaultInputDevice(void) +{ + for (unsigned int i = 0; i < getDeviceCount(); i++) + { + if (getDeviceInfo(i).isDefaultInput) + { + return i; + } + } + + return 0; +} + +//----------------------------------------------------------------------------- + +void RtApiWasapi::closeStream(void) +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiWasapi::closeStream: No open stream to close."; + error(RtAudioError::WARNING); + return; + } + + if (stream_.state != STREAM_STOPPED) + stopStream(); + + // clean up stream memory + SAFE_RELEASE(((WasapiHandle *) stream_.apiHandle)->captureAudioClient) + SAFE_RELEASE(((WasapiHandle *) stream_.apiHandle)->renderAudioClient) + + SAFE_RELEASE(((WasapiHandle *) stream_.apiHandle)->captureClient) + SAFE_RELEASE(((WasapiHandle *) stream_.apiHandle)->renderClient) + + if (((WasapiHandle *) stream_.apiHandle)->captureEvent) + CloseHandle(((WasapiHandle *) stream_.apiHandle)->captureEvent); + + if (((WasapiHandle *) stream_.apiHandle)->renderEvent) + CloseHandle(((WasapiHandle *) stream_.apiHandle)->renderEvent); + + delete (WasapiHandle *) stream_.apiHandle; + stream_.apiHandle = NULL; + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + // update stream state + stream_.state = STREAM_CLOSED; +} + +//----------------------------------------------------------------------------- + +void RtApiWasapi::startStream(void) +{ + verifyStream(); + + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiWasapi::startStream: The stream is already running."; + error(RtAudioError::WARNING); + return; + } + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + // update stream state + stream_.state = STREAM_RUNNING; + + // create WASAPI stream thread + stream_.callbackInfo.thread = (ThreadHandle) CreateThread(NULL, 0, runWasapiThread, this, CREATE_SUSPENDED, NULL); + + if (!stream_.callbackInfo.thread) + { + errorText_ = "RtApiWasapi::startStream: Unable to instantiate callback thread."; + error(RtAudioError::THREAD_ERROR); + } + else + { + SetThreadPriority((void *) stream_.callbackInfo.thread, stream_.callbackInfo.priority); + ResumeThread((void *) stream_.callbackInfo.thread); + } +} + +//----------------------------------------------------------------------------- + +void RtApiWasapi::stopStream(void) +{ + verifyStream(); + + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiWasapi::stopStream: The stream is already stopped."; + error(RtAudioError::WARNING); + return; + } + + // inform stream thread by setting stream state to STREAM_STOPPING + stream_.state = STREAM_STOPPING; + + // wait until stream thread is stopped + while (stream_.state != STREAM_STOPPED) + { + Sleep(1); + } + + // Wait for the last buffer to play before stopping. + Sleep(1000 * stream_.bufferSize / stream_.sampleRate); + + // close thread handle + if (stream_.callbackInfo.thread && !CloseHandle((void *) stream_.callbackInfo.thread)) + { + errorText_ = "RtApiWasapi::stopStream: Unable to close callback thread."; + error(RtAudioError::THREAD_ERROR); + return; + } + + stream_.callbackInfo.thread = (ThreadHandle) NULL; +} + +//----------------------------------------------------------------------------- + +void RtApiWasapi::abortStream(void) +{ + verifyStream(); + + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiWasapi::abortStream: The stream is already stopped."; + error(RtAudioError::WARNING); + return; + } + + // inform stream thread by setting stream state to STREAM_STOPPING + stream_.state = STREAM_STOPPING; + + // wait until stream thread is stopped + while (stream_.state != STREAM_STOPPED) + { + Sleep(1); + } + + // close thread handle + if (stream_.callbackInfo.thread && !CloseHandle((void *) stream_.callbackInfo.thread)) + { + errorText_ = "RtApiWasapi::abortStream: Unable to close callback thread."; + error(RtAudioError::THREAD_ERROR); + return; + } + + stream_.callbackInfo.thread = (ThreadHandle) NULL; +} + +//----------------------------------------------------------------------------- + +bool RtApiWasapi::probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options) +{ + bool methodResult = FAILURE; + unsigned int captureDeviceCount = 0; + unsigned int renderDeviceCount = 0; + + IMMDeviceCollection * captureDevices = NULL; + IMMDeviceCollection * renderDevices = NULL; + IMMDevice * devicePtr = NULL; + WAVEFORMATEX * deviceFormat = NULL; + unsigned int bufferBytes; + stream_.state = STREAM_STOPPED; + + // create API Handle if not already created + if (!stream_.apiHandle) + stream_.apiHandle = (void *) new WasapiHandle(); + + // Count capture devices + errorText_.clear(); + RtAudioError::Type errorType = RtAudioError::DRIVER_ERROR; + HRESULT hr = deviceEnumerator_->EnumAudioEndpoints(eCapture, DEVICE_STATE_ACTIVE, &captureDevices); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve capture device collection."; + goto Exit; + } + + hr = captureDevices->GetCount(&captureDeviceCount); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve capture device count."; + goto Exit; + } + + // Count render devices + hr = deviceEnumerator_->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE, &renderDevices); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device collection."; + goto Exit; + } + + hr = renderDevices->GetCount(&renderDeviceCount); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device count."; + goto Exit; + } + + // validate device index + if (device >= captureDeviceCount + renderDeviceCount) + { + errorType = RtAudioError::INVALID_USE; + errorText_ = "RtApiWasapi::probeDeviceOpen: Invalid device index."; + goto Exit; + } + + // if device index falls within capture devices + if (device >= renderDeviceCount) + { + if (mode != INPUT) + { + errorType = RtAudioError::INVALID_USE; + errorText_ = "RtApiWasapi::probeDeviceOpen: Capture device selected as output device."; + goto Exit; + } + + // retrieve captureAudioClient from devicePtr + IAudioClient *& captureAudioClient = ((WasapiHandle *) stream_.apiHandle)->captureAudioClient; + + hr = captureDevices->Item(device - renderDeviceCount, &devicePtr); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve capture device handle."; + goto Exit; + } + + hr = devicePtr->Activate(__uuidof(IAudioClient), CLSCTX_ALL, + NULL, (void **) &captureAudioClient); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve capture device audio client."; + goto Exit; + } + + hr = captureAudioClient->GetMixFormat(&deviceFormat); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve capture device mix format."; + goto Exit; + } + + stream_.nDeviceChannels[mode] = deviceFormat->nChannels; + captureAudioClient->GetStreamLatency((long long *) &stream_.latency[mode]); + } + + // if device index falls within render devices and is configured for loopback + if (device < renderDeviceCount && mode == INPUT) + { + // if renderAudioClient is not initialised, initialise it now + IAudioClient *& renderAudioClient = ((WasapiHandle *) stream_.apiHandle)->renderAudioClient; + if (!renderAudioClient) + { + probeDeviceOpen(device, OUTPUT, channels, firstChannel, sampleRate, format, bufferSize, options); + } + + // retrieve captureAudioClient from devicePtr + IAudioClient *& captureAudioClient = ((WasapiHandle *) stream_.apiHandle)->captureAudioClient; + + hr = renderDevices->Item(device, &devicePtr); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device handle."; + goto Exit; + } + + hr = devicePtr->Activate(__uuidof(IAudioClient), CLSCTX_ALL, + NULL, (void **) &captureAudioClient); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device audio client."; + goto Exit; + } + + hr = captureAudioClient->GetMixFormat(&deviceFormat); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device mix format."; + goto Exit; + } + + stream_.nDeviceChannels[mode] = deviceFormat->nChannels; + captureAudioClient->GetStreamLatency((long long *) &stream_.latency[mode]); + } + + // if device index falls within render devices and is configured for output + if (device < renderDeviceCount && mode == OUTPUT) + { + // if renderAudioClient is already initialised, don't initialise it again + IAudioClient *& renderAudioClient = ((WasapiHandle *) stream_.apiHandle)->renderAudioClient; + if (renderAudioClient) + { + methodResult = SUCCESS; + goto Exit; + } + + hr = renderDevices->Item(device, &devicePtr); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device handle."; + goto Exit; + } + + hr = devicePtr->Activate(__uuidof(IAudioClient), CLSCTX_ALL, + NULL, (void **) &renderAudioClient); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device audio client."; + goto Exit; + } + + hr = renderAudioClient->GetMixFormat(&deviceFormat); + if (FAILED(hr)) + { + errorText_ = "RtApiWasapi::probeDeviceOpen: Unable to retrieve render device mix format."; + goto Exit; + } + + stream_.nDeviceChannels[mode] = deviceFormat->nChannels; + renderAudioClient->GetStreamLatency((long long *) &stream_.latency[mode]); + } + + // fill stream data + if ((stream_.mode == OUTPUT && mode == INPUT) || (stream_.mode == INPUT && mode == OUTPUT)) + { + stream_.mode = DUPLEX; + } + else + { + stream_.mode = mode; + } + + stream_.device[mode] = device; + stream_.doByteSwap[mode] = false; + stream_.sampleRate = sampleRate; + stream_.bufferSize = *bufferSize; + stream_.nBuffers = 1; + stream_.nUserChannels[mode] = channels; + stream_.channelOffset[mode] = firstChannel; + stream_.userFormat = format; + stream_.deviceFormat[mode] = getDeviceInfo(device).nativeFormats; + + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + stream_.userInterleaved = false; + else + stream_.userInterleaved = true; + stream_.deviceInterleaved[mode] = true; + + // Set flags for buffer conversion. + stream_.doConvertBuffer[mode] = false; + if (stream_.userFormat != stream_.deviceFormat[mode] || stream_.nUserChannels[0] != stream_.nDeviceChannels[0] || stream_.nUserChannels[1] != stream_.nDeviceChannels[1]) + stream_.doConvertBuffer[mode] = true; + else if (stream_.userInterleaved != stream_.deviceInterleaved[mode] && stream_.nUserChannels[mode] > 1) + stream_.doConvertBuffer[mode] = true; + + if (stream_.doConvertBuffer[mode]) + setConvertInfo(mode, 0); + + // Allocate necessary internal buffers + bufferBytes = stream_.nUserChannels[mode] * stream_.bufferSize * formatBytes(stream_.userFormat); + + stream_.userBuffer[mode] = (char *) calloc(bufferBytes, 1); + if (!stream_.userBuffer[mode]) + { + errorType = RtAudioError::MEMORY_ERROR; + errorText_ = "RtApiWasapi::probeDeviceOpen: Error allocating user buffer memory."; + goto Exit; + } + + if (options && options->flags & RTAUDIO_SCHEDULE_REALTIME) + stream_.callbackInfo.priority = 15; + else + stream_.callbackInfo.priority = 0; + + ///! TODO: RTAUDIO_MINIMIZE_LATENCY // Provide stream buffers directly to callback + ///! TODO: RTAUDIO_HOG_DEVICE // Exclusive mode + + methodResult = SUCCESS; + +Exit: + //clean up + SAFE_RELEASE(captureDevices); + SAFE_RELEASE(renderDevices); + SAFE_RELEASE(devicePtr); + CoTaskMemFree(deviceFormat); + + // if method failed, close the stream + if (methodResult == FAILURE) + closeStream(); + + if (!errorText_.empty()) + error(errorType); + return methodResult; +} + +//============================================================================= + +DWORD WINAPI RtApiWasapi::runWasapiThread(void * wasapiPtr) +{ + if (wasapiPtr) + ((RtApiWasapi *) wasapiPtr)->wasapiThread(); + + return 0; +} + +DWORD WINAPI RtApiWasapi::stopWasapiThread(void * wasapiPtr) +{ + if (wasapiPtr) + ((RtApiWasapi *) wasapiPtr)->stopStream(); + + return 0; +} + +DWORD WINAPI RtApiWasapi::abortWasapiThread(void * wasapiPtr) +{ + if (wasapiPtr) + ((RtApiWasapi *) wasapiPtr)->abortStream(); + + return 0; +} + +//----------------------------------------------------------------------------- + +void RtApiWasapi::wasapiThread() +{ + // as this is a new thread, we must CoInitialize it + //CoInitialize( NULL ); modified by LabSound per issue 121 + CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + HRESULT hr; + + IAudioClient * captureAudioClient = ((WasapiHandle *) stream_.apiHandle)->captureAudioClient; + IAudioClient * renderAudioClient = ((WasapiHandle *) stream_.apiHandle)->renderAudioClient; + IAudioCaptureClient * captureClient = ((WasapiHandle *) stream_.apiHandle)->captureClient; + IAudioRenderClient * renderClient = ((WasapiHandle *) stream_.apiHandle)->renderClient; + HANDLE captureEvent = ((WasapiHandle *) stream_.apiHandle)->captureEvent; + HANDLE renderEvent = ((WasapiHandle *) stream_.apiHandle)->renderEvent; + + WAVEFORMATEX * captureFormat = NULL; + WAVEFORMATEX * renderFormat = NULL; + float captureSrRatio = 0.0f; + float renderSrRatio = 0.0f; + WasapiBuffer captureBuffer; + WasapiBuffer renderBuffer; + WasapiResampler * captureResampler = NULL; + WasapiResampler * renderResampler = NULL; + + // declare local stream variables + RtAudioCallback callback = (RtAudioCallback) stream_.callbackInfo.callback; + BYTE * streamBuffer = NULL; + unsigned long captureFlags = 0; + unsigned int bufferFrameCount = 0; + unsigned int numFramesPadding = 0; + unsigned int convBufferSize = 0; + bool loopbackEnabled = stream_.device[INPUT] == stream_.device[OUTPUT]; + bool callbackPushed = true; + bool callbackPulled = false; + bool callbackStopped = false; + int callbackResult = 0; + + // convBuffer is used to store converted buffers between WASAPI and the user + char * convBuffer = NULL; + unsigned int convBuffSize = 0; + unsigned int deviceBuffSize = 0; + + std::string errorText; + RtAudioError::Type errorType = RtAudioError::DRIVER_ERROR; + + // Attempt to assign "Pro Audio" characteristic to thread + HMODULE AvrtDll = LoadLibrary((LPCTSTR) "AVRT.dll"); + if (AvrtDll) + { + DWORD taskIndex = 0; + TAvSetMmThreadCharacteristicsPtr AvSetMmThreadCharacteristicsPtr = (TAvSetMmThreadCharacteristicsPtr)(void (*)()) GetProcAddress(AvrtDll, "AvSetMmThreadCharacteristicsW"); + AvSetMmThreadCharacteristicsPtr(L"Pro Audio", &taskIndex); + FreeLibrary(AvrtDll); + } + + // start capture stream if applicable + if (captureAudioClient) + { + hr = captureAudioClient->GetMixFormat(&captureFormat); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve device mix format."; + goto Exit; + } + + // init captureResampler + captureResampler = new WasapiResampler(stream_.deviceFormat[INPUT] == RTAUDIO_FLOAT32 || stream_.deviceFormat[INPUT] == RTAUDIO_FLOAT64, + formatBytes(stream_.deviceFormat[INPUT]) * 8, stream_.nDeviceChannels[INPUT], + captureFormat->nSamplesPerSec, stream_.sampleRate); + + captureSrRatio = ((float) captureFormat->nSamplesPerSec / stream_.sampleRate); + + if (!captureClient) + { + hr = captureAudioClient->Initialize(AUDCLNT_SHAREMODE_SHARED, + loopbackEnabled ? AUDCLNT_STREAMFLAGS_LOOPBACK : AUDCLNT_STREAMFLAGS_EVENTCALLBACK, + 0, + 0, + captureFormat, + NULL); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to initialize capture audio client."; + goto Exit; + } + + hr = captureAudioClient->GetService(__uuidof(IAudioCaptureClient), + (void **) &captureClient); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve capture client handle."; + goto Exit; + } + + // don't configure captureEvent if in loopback mode + if (!loopbackEnabled) + { + // configure captureEvent to trigger on every available capture buffer + captureEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + if (!captureEvent) + { + errorType = RtAudioError::SYSTEM_ERROR; + errorText = "RtApiWasapi::wasapiThread: Unable to create capture event."; + goto Exit; + } + + hr = captureAudioClient->SetEventHandle(captureEvent); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to set capture event handle."; + goto Exit; + } + + ((WasapiHandle *) stream_.apiHandle)->captureEvent = captureEvent; + } + + ((WasapiHandle *) stream_.apiHandle)->captureClient = captureClient; + + // reset the capture stream + hr = captureAudioClient->Reset(); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to reset capture stream."; + goto Exit; + } + + // start the capture stream + hr = captureAudioClient->Start(); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to start capture stream."; + goto Exit; + } + } + + unsigned int inBufferSize = 0; + hr = captureAudioClient->GetBufferSize(&inBufferSize); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to get capture buffer size."; + goto Exit; + } + + // scale outBufferSize according to stream->user sample rate ratio + unsigned int outBufferSize = (unsigned int) ceilf(stream_.bufferSize * captureSrRatio) * stream_.nDeviceChannels[INPUT]; + inBufferSize *= stream_.nDeviceChannels[INPUT]; + + // set captureBuffer size + captureBuffer.setBufferSize(inBufferSize + outBufferSize, formatBytes(stream_.deviceFormat[INPUT])); + } + + // start render stream if applicable + if (renderAudioClient) + { + hr = renderAudioClient->GetMixFormat(&renderFormat); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve device mix format."; + goto Exit; + } + + // init renderResampler + renderResampler = new WasapiResampler(stream_.deviceFormat[OUTPUT] == RTAUDIO_FLOAT32 || stream_.deviceFormat[OUTPUT] == RTAUDIO_FLOAT64, + formatBytes(stream_.deviceFormat[OUTPUT]) * 8, stream_.nDeviceChannels[OUTPUT], + stream_.sampleRate, renderFormat->nSamplesPerSec); + + renderSrRatio = ((float) renderFormat->nSamplesPerSec / stream_.sampleRate); + + if (!renderClient) + { + hr = renderAudioClient->Initialize(AUDCLNT_SHAREMODE_SHARED, + AUDCLNT_STREAMFLAGS_EVENTCALLBACK, + 0, + 0, + renderFormat, + NULL); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to initialize render audio client."; + goto Exit; + } + + hr = renderAudioClient->GetService(__uuidof(IAudioRenderClient), + (void **) &renderClient); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve render client handle."; + goto Exit; + } + + // configure renderEvent to trigger on every available render buffer + renderEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + if (!renderEvent) + { + errorType = RtAudioError::SYSTEM_ERROR; + errorText = "RtApiWasapi::wasapiThread: Unable to create render event."; + goto Exit; + } + + hr = renderAudioClient->SetEventHandle(renderEvent); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to set render event handle."; + goto Exit; + } + + ((WasapiHandle *) stream_.apiHandle)->renderClient = renderClient; + ((WasapiHandle *) stream_.apiHandle)->renderEvent = renderEvent; + + // reset the render stream + hr = renderAudioClient->Reset(); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to reset render stream."; + goto Exit; + } + + // start the render stream + hr = renderAudioClient->Start(); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to start render stream."; + goto Exit; + } + } + + unsigned int outBufferSize = 0; + hr = renderAudioClient->GetBufferSize(&outBufferSize); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to get render buffer size."; + goto Exit; + } + + // scale inBufferSize according to user->stream sample rate ratio + unsigned int inBufferSize = (unsigned int) ceilf(stream_.bufferSize * renderSrRatio) * stream_.nDeviceChannels[OUTPUT]; + outBufferSize *= stream_.nDeviceChannels[OUTPUT]; + + // set renderBuffer size + renderBuffer.setBufferSize(inBufferSize + outBufferSize, formatBytes(stream_.deviceFormat[OUTPUT])); + } + + // malloc buffer memory + if (stream_.mode == INPUT) + { + using namespace std; // for ceilf + convBuffSize = (size_t)(ceilf(stream_.bufferSize * captureSrRatio)) * stream_.nDeviceChannels[INPUT] * formatBytes(stream_.deviceFormat[INPUT]); + deviceBuffSize = stream_.bufferSize * stream_.nDeviceChannels[INPUT] * formatBytes(stream_.deviceFormat[INPUT]); + } + else if (stream_.mode == OUTPUT) + { + convBuffSize = (size_t)(ceilf(stream_.bufferSize * renderSrRatio)) * stream_.nDeviceChannels[OUTPUT] * formatBytes(stream_.deviceFormat[OUTPUT]); + deviceBuffSize = stream_.bufferSize * stream_.nDeviceChannels[OUTPUT] * formatBytes(stream_.deviceFormat[OUTPUT]); + } + else if (stream_.mode == DUPLEX) + { + convBuffSize = std::max((size_t)(ceilf(stream_.bufferSize * captureSrRatio)) * stream_.nDeviceChannels[INPUT] * formatBytes(stream_.deviceFormat[INPUT]), + (size_t)(ceilf(stream_.bufferSize * renderSrRatio)) * stream_.nDeviceChannels[OUTPUT] * formatBytes(stream_.deviceFormat[OUTPUT])); + deviceBuffSize = std::max(stream_.bufferSize * stream_.nDeviceChannels[INPUT] * formatBytes(stream_.deviceFormat[INPUT]), + stream_.bufferSize * stream_.nDeviceChannels[OUTPUT] * formatBytes(stream_.deviceFormat[OUTPUT])); + } + + convBuffSize *= 2; // allow overflow for *SrRatio remainders + convBuffer = (char *) calloc(convBuffSize, 1); + stream_.deviceBuffer = (char *) calloc(deviceBuffSize, 1); + if (!convBuffer || !stream_.deviceBuffer) + { + errorType = RtAudioError::MEMORY_ERROR; + errorText = "RtApiWasapi::wasapiThread: Error allocating device buffer memory."; + goto Exit; + } + + // stream process loop + while (stream_.state != STREAM_STOPPING) + { + if (!callbackPulled) + { + // Callback Input + // ============== + // 1. Pull callback buffer from inputBuffer + // 2. If 1. was successful: Convert callback buffer to user sample rate and channel count + // Convert callback buffer to user format + + if (captureAudioClient) + { + int samplesToPull = (unsigned int) floorf(stream_.bufferSize * captureSrRatio); + if (captureSrRatio != 1) + { + // account for remainders + samplesToPull--; + } + + convBufferSize = 0; + while (convBufferSize < stream_.bufferSize) + { + // Pull callback buffer from inputBuffer + callbackPulled = captureBuffer.pullBuffer(convBuffer, + samplesToPull * stream_.nDeviceChannels[INPUT], + stream_.deviceFormat[INPUT]); + + if (!callbackPulled) + { + break; + } + + // Convert callback buffer to user sample rate + unsigned int deviceBufferOffset = convBufferSize * stream_.nDeviceChannels[INPUT] * formatBytes(stream_.deviceFormat[INPUT]); + unsigned int convSamples = 0; + + captureResampler->Convert(stream_.deviceBuffer + deviceBufferOffset, + convBuffer, + samplesToPull, + convSamples); + + convBufferSize += convSamples; + samplesToPull = 1; // now pull one sample at a time until we have stream_.bufferSize samples + } + + if (callbackPulled) + { + if (stream_.doConvertBuffer[INPUT]) + { + // Convert callback buffer to user format + convertBuffer(stream_.userBuffer[INPUT], + stream_.deviceBuffer, + stream_.convertInfo[INPUT]); + } + else + { + // no further conversion, simple copy deviceBuffer to userBuffer + memcpy(stream_.userBuffer[INPUT], + stream_.deviceBuffer, + stream_.bufferSize * stream_.nUserChannels[INPUT] * formatBytes(stream_.userFormat)); + } + } + } + else + { + // if there is no capture stream, set callbackPulled flag + callbackPulled = true; + } + + // Execute Callback + // ================ + // 1. Execute user callback method + // 2. Handle return value from callback + + // if callback has not requested the stream to stop + if (callbackPulled && !callbackStopped) + { + // Execute user callback method + callbackResult = callback(stream_.userBuffer[OUTPUT], + stream_.userBuffer[INPUT], + stream_.bufferSize, + getStreamTime(), + captureFlags & AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY ? RTAUDIO_INPUT_OVERFLOW : 0, + stream_.callbackInfo.userData); + + // tick stream time + RtApi::tickStreamTime(); + + // Handle return value from callback + if (callbackResult == 1) + { + // instantiate a thread to stop this thread + HANDLE threadHandle = CreateThread(NULL, 0, stopWasapiThread, this, 0, NULL); + if (!threadHandle) + { + errorType = RtAudioError::THREAD_ERROR; + errorText = "RtApiWasapi::wasapiThread: Unable to instantiate stream stop thread."; + goto Exit; + } + else if (!CloseHandle(threadHandle)) + { + errorType = RtAudioError::THREAD_ERROR; + errorText = "RtApiWasapi::wasapiThread: Unable to close stream stop thread handle."; + goto Exit; + } + + callbackStopped = true; + } + else if (callbackResult == 2) + { + // instantiate a thread to stop this thread + HANDLE threadHandle = CreateThread(NULL, 0, abortWasapiThread, this, 0, NULL); + if (!threadHandle) + { + errorType = RtAudioError::THREAD_ERROR; + errorText = "RtApiWasapi::wasapiThread: Unable to instantiate stream abort thread."; + goto Exit; + } + else if (!CloseHandle(threadHandle)) + { + errorType = RtAudioError::THREAD_ERROR; + errorText = "RtApiWasapi::wasapiThread: Unable to close stream abort thread handle."; + goto Exit; + } + + callbackStopped = true; + } + } + } + + // Callback Output + // =============== + // 1. Convert callback buffer to stream format + // 2. Convert callback buffer to stream sample rate and channel count + // 3. Push callback buffer into outputBuffer + + if (renderAudioClient && callbackPulled) + { + // if the last call to renderBuffer.PushBuffer() was successful + if (callbackPushed || convBufferSize == 0) + { + if (stream_.doConvertBuffer[OUTPUT]) + { + // Convert callback buffer to stream format + convertBuffer(stream_.deviceBuffer, + stream_.userBuffer[OUTPUT], + stream_.convertInfo[OUTPUT]); + } + else + { + // no further conversion, simple copy userBuffer to deviceBuffer + memcpy(stream_.deviceBuffer, + stream_.userBuffer[OUTPUT], + stream_.bufferSize * stream_.nUserChannels[OUTPUT] * formatBytes(stream_.userFormat)); + } + + // Convert callback buffer to stream sample rate + renderResampler->Convert(convBuffer, + stream_.deviceBuffer, + stream_.bufferSize, + convBufferSize); + } + + // Push callback buffer into outputBuffer + callbackPushed = renderBuffer.pushBuffer(convBuffer, + convBufferSize * stream_.nDeviceChannels[OUTPUT], + stream_.deviceFormat[OUTPUT]); + } + else + { + // if there is no render stream, set callbackPushed flag + callbackPushed = true; + } + + // Stream Capture + // ============== + // 1. Get capture buffer from stream + // 2. Push capture buffer into inputBuffer + // 3. If 2. was successful: Release capture buffer + + if (captureAudioClient) + { + // if the callback input buffer was not pulled from captureBuffer, wait for next capture event + if (!callbackPulled) + { + WaitForSingleObject(loopbackEnabled ? renderEvent : captureEvent, INFINITE); + } + + // Get capture buffer from stream + hr = captureClient->GetBuffer(&streamBuffer, + &bufferFrameCount, + &captureFlags, NULL, NULL); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve capture buffer."; + goto Exit; + } + + if (bufferFrameCount != 0) + { + // Push capture buffer into inputBuffer + if (captureBuffer.pushBuffer((char *) streamBuffer, + bufferFrameCount * stream_.nDeviceChannels[INPUT], + stream_.deviceFormat[INPUT])) + { + // Release capture buffer + hr = captureClient->ReleaseBuffer(bufferFrameCount); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to release capture buffer."; + goto Exit; + } + } + else + { + // Inform WASAPI that capture was unsuccessful + hr = captureClient->ReleaseBuffer(0); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to release capture buffer."; + goto Exit; + } + } + } + else + { + // Inform WASAPI that capture was unsuccessful + hr = captureClient->ReleaseBuffer(0); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to release capture buffer."; + goto Exit; + } + } + } + + // Stream Render + // ============= + // 1. Get render buffer from stream + // 2. Pull next buffer from outputBuffer + // 3. If 2. was successful: Fill render buffer with next buffer + // Release render buffer + + if (renderAudioClient) + { + // if the callback output buffer was not pushed to renderBuffer, wait for next render event + if (callbackPulled && !callbackPushed) + { + WaitForSingleObject(renderEvent, INFINITE); + } + + // Get render buffer from stream + hr = renderAudioClient->GetBufferSize(&bufferFrameCount); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve render buffer size."; + goto Exit; + } + + hr = renderAudioClient->GetCurrentPadding(&numFramesPadding); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve render buffer padding."; + goto Exit; + } + + bufferFrameCount -= numFramesPadding; + + if (bufferFrameCount != 0) + { + hr = renderClient->GetBuffer(bufferFrameCount, &streamBuffer); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to retrieve render buffer."; + goto Exit; + } + + // Pull next buffer from outputBuffer + // Fill render buffer with next buffer + if (renderBuffer.pullBuffer((char *) streamBuffer, + bufferFrameCount * stream_.nDeviceChannels[OUTPUT], + stream_.deviceFormat[OUTPUT])) + { + // Release render buffer + hr = renderClient->ReleaseBuffer(bufferFrameCount, 0); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to release render buffer."; + goto Exit; + } + } + else + { + // Inform WASAPI that render was unsuccessful + hr = renderClient->ReleaseBuffer(0, 0); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to release render buffer."; + goto Exit; + } + } + } + else + { + // Inform WASAPI that render was unsuccessful + hr = renderClient->ReleaseBuffer(0, 0); + if (FAILED(hr)) + { + errorText = "RtApiWasapi::wasapiThread: Unable to release render buffer."; + goto Exit; + } + } + } + + // if the callback buffer was pushed renderBuffer reset callbackPulled flag + if (callbackPushed) + { + // unsetting the callbackPulled flag lets the stream know that + // the audio device is ready for another callback output buffer. + callbackPulled = false; + } + } + +Exit: + // clean up + CoTaskMemFree(captureFormat); + CoTaskMemFree(renderFormat); + + free(convBuffer); + delete renderResampler; + delete captureResampler; + + CoUninitialize(); + + // update stream state + stream_.state = STREAM_STOPPED; + + if (!errorText.empty()) + { + errorText_ = errorText; + error(errorType); + } +} + +//******************** End of __WINDOWS_WASAPI__ *********************// +#endif + +#if defined(__WINDOWS_DS__) // Windows DirectSound API + +// Modified by Robin Davies, October 2005 +// - Improvements to DirectX pointer chasing. +// - Bug fix for non-power-of-two Asio granularity used by Edirol PCR-A30. +// - Auto-call CoInitialize for DSOUND and ASIO platforms. +// Various revisions for RtAudio 4.0 by Gary Scavone, April 2007 +// Changed device query structure for RtAudio 4.0.7, January 2010 + +#include +#include +#include +#include +#include +#include +#include + +#if defined(__MINGW32__) +// missing from latest mingw winapi +#define WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */ +#endif + +#define MINIMUM_DEVICE_BUFFER_SIZE 32768 + +#ifdef _MSC_VER // if Microsoft Visual C++ +#pragma comment(lib, "winmm.lib") // then, auto-link winmm.lib. Otherwise, it has to be added manually. +#endif + +static inline DWORD dsPointerBetween(DWORD pointer, DWORD laterPointer, DWORD earlierPointer, DWORD bufferSize) +{ + if (pointer > bufferSize) pointer -= bufferSize; + if (laterPointer < earlierPointer) laterPointer += bufferSize; + if (pointer < earlierPointer) pointer += bufferSize; + return pointer >= earlierPointer && pointer < laterPointer; +} + +// A structure to hold various information related to the DirectSound +// API implementation. +struct DsHandle +{ + unsigned int drainCounter; // Tracks callback counts when draining + bool internalDrain; // Indicates if stop is initiated from callback or not. + void * id[2]; + void * buffer[2]; + bool xrun[2]; + UINT bufferPointer[2]; + DWORD dsBufferSize[2]; + DWORD dsPointerLeadTime[2]; // the number of bytes ahead of the safe pointer to lead by. + HANDLE condition; + + DsHandle() + : drainCounter(0) + , internalDrain(false) + { + id[0] = 0; + id[1] = 0; + buffer[0] = 0; + buffer[1] = 0; + xrun[0] = false; + xrun[1] = false; + bufferPointer[0] = 0; + bufferPointer[1] = 0; + } +}; + +// Declarations for utility functions, callbacks, and structures +// specific to the DirectSound implementation. +static BOOL CALLBACK deviceQueryCallback(LPGUID lpguid, + LPCTSTR description, + LPCTSTR module, + LPVOID lpContext); + +static const char * getErrorString(int code); + +static unsigned __stdcall callbackHandler(void * ptr); + +struct DsDevice +{ + LPGUID id[2]; + bool validId[2]; + bool found; + std::string name; + + DsDevice() + : found(false) + { + validId[0] = false; + validId[1] = false; + } +}; + +struct DsProbeData +{ + bool isInput; + std::vector * dsDevices; +}; + +RtApiDs ::RtApiDs() +{ + // Dsound will run both-threaded. If CoInitialize fails, then just + // accept whatever the mainline chose for a threading model. + coInitialized_ = false; + //HRESULT hr = CoInitialize( NULL ); modified by LabSound per issue 121 + HRESULT hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + if (!FAILED(hr)) coInitialized_ = true; +} + +RtApiDs ::~RtApiDs() +{ + if (stream_.state != STREAM_CLOSED) closeStream(); + if (coInitialized_) CoUninitialize(); // balanced call. +} + +// The DirectSound default output is always the first device. +unsigned int RtApiDs ::getDefaultOutputDevice(void) +{ + return 0; +} + +// The DirectSound default input is always the first input device, +// which is the first capture device enumerated. +unsigned int RtApiDs ::getDefaultInputDevice(void) +{ + return 0; +} + +unsigned int RtApiDs ::getDeviceCount(void) +{ + // Set query flag for previously found devices to false, so that we + // can check for any devices that have disappeared. + for (unsigned int i = 0; i < dsDevices.size(); i++) + dsDevices[i].found = false; + + // Query DirectSound devices. + struct DsProbeData probeInfo; + probeInfo.isInput = false; + probeInfo.dsDevices = &dsDevices; + HRESULT result = DirectSoundEnumerate((LPDSENUMCALLBACK) deviceQueryCallback, &probeInfo); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::getDeviceCount: error (" << getErrorString(result) << ") enumerating output devices!"; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + } + + // Query DirectSoundCapture devices. + probeInfo.isInput = true; + result = DirectSoundCaptureEnumerate((LPDSENUMCALLBACK) deviceQueryCallback, &probeInfo); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::getDeviceCount: error (" << getErrorString(result) << ") enumerating input devices!"; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + } + + // Clean out any devices that may have disappeared (code update submitted by Eli Zehngut). + for (unsigned int i = 0; i < dsDevices.size();) + { + if (dsDevices[i].found == false) + dsDevices.erase(dsDevices.begin() + i); + else + i++; + } + + return static_cast(dsDevices.size()); +} + +RtAudio::DeviceInfo RtApiDs ::getDeviceInfo(unsigned int device) +{ + RtAudio::DeviceInfo info; + info.probed = false; + + if (dsDevices.size() == 0) + { + // Force a query of all devices + getDeviceCount(); + if (dsDevices.size() == 0) + { + errorText_ = "RtApiDs::getDeviceInfo: no devices found!"; + error(RtAudioError::INVALID_USE); + return info; + } + } + + if (device >= dsDevices.size()) + { + errorText_ = "RtApiDs::getDeviceInfo: device ID is invalid!"; + error(RtAudioError::INVALID_USE); + return info; + } + + HRESULT result; + if (dsDevices[device].validId[0] == false) goto probeInput; + + LPDIRECTSOUND output; + DSCAPS outCaps; + result = DirectSoundCreate(dsDevices[device].id[0], &output, NULL); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString(result) << ") opening output device (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + goto probeInput; + } + + outCaps.dwSize = sizeof(outCaps); + result = output->GetCaps(&outCaps); + if (FAILED(result)) + { + output->Release(); + errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString(result) << ") getting capabilities!"; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + goto probeInput; + } + + // Get output channel information. + info.outputChannels = (outCaps.dwFlags & DSCAPS_PRIMARYSTEREO) ? 2 : 1; + + // Get sample rate information. + info.sampleRates.clear(); + for (unsigned int k = 0; k < MAX_SAMPLE_RATES; k++) + { + if (SAMPLE_RATES[k] >= (unsigned int) outCaps.dwMinSecondarySampleRate && SAMPLE_RATES[k] <= (unsigned int) outCaps.dwMaxSecondarySampleRate) + { + info.sampleRates.push_back(SAMPLE_RATES[k]); + + if (!info.preferredSampleRate || (SAMPLE_RATES[k] <= 48000 && SAMPLE_RATES[k] > info.preferredSampleRate)) + info.preferredSampleRate = SAMPLE_RATES[k]; + } + } + + // Get format information. + if (outCaps.dwFlags & DSCAPS_PRIMARY16BIT) info.nativeFormats |= RTAUDIO_SINT16; + if (outCaps.dwFlags & DSCAPS_PRIMARY8BIT) info.nativeFormats |= RTAUDIO_SINT8; + + output->Release(); + + if (getDefaultOutputDevice() == device) + info.isDefaultOutput = true; + + if (dsDevices[device].validId[1] == false) + { + info.name = dsDevices[device].name; + info.probed = true; + return info; + } + +probeInput: + + LPDIRECTSOUNDCAPTURE input; + result = DirectSoundCaptureCreate(dsDevices[device].id[1], &input, NULL); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString(result) << ") opening input device (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + DSCCAPS inCaps; + inCaps.dwSize = sizeof(inCaps); + result = input->GetCaps(&inCaps); + if (FAILED(result)) + { + input->Release(); + errorStream_ << "RtApiDs::getDeviceInfo: error (" << getErrorString(result) << ") getting object capabilities (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Get input channel information. + info.inputChannels = inCaps.dwChannels; + + // Get sample rate and format information. + std::vector rates; + if (inCaps.dwChannels >= 2) + { + if (inCaps.dwFormats & WAVE_FORMAT_1S16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_2S16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_4S16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_96S16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_1S08) info.nativeFormats |= RTAUDIO_SINT8; + if (inCaps.dwFormats & WAVE_FORMAT_2S08) info.nativeFormats |= RTAUDIO_SINT8; + if (inCaps.dwFormats & WAVE_FORMAT_4S08) info.nativeFormats |= RTAUDIO_SINT8; + if (inCaps.dwFormats & WAVE_FORMAT_96S08) info.nativeFormats |= RTAUDIO_SINT8; + + if (info.nativeFormats & RTAUDIO_SINT16) + { + if (inCaps.dwFormats & WAVE_FORMAT_1S16) rates.push_back(11025); + if (inCaps.dwFormats & WAVE_FORMAT_2S16) rates.push_back(22050); + if (inCaps.dwFormats & WAVE_FORMAT_4S16) rates.push_back(44100); + if (inCaps.dwFormats & WAVE_FORMAT_96S16) rates.push_back(96000); + } + else if (info.nativeFormats & RTAUDIO_SINT8) + { + if (inCaps.dwFormats & WAVE_FORMAT_1S08) rates.push_back(11025); + if (inCaps.dwFormats & WAVE_FORMAT_2S08) rates.push_back(22050); + if (inCaps.dwFormats & WAVE_FORMAT_4S08) rates.push_back(44100); + if (inCaps.dwFormats & WAVE_FORMAT_96S08) rates.push_back(96000); + } + } + else if (inCaps.dwChannels == 1) + { + if (inCaps.dwFormats & WAVE_FORMAT_1M16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_2M16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_4M16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_96M16) info.nativeFormats |= RTAUDIO_SINT16; + if (inCaps.dwFormats & WAVE_FORMAT_1M08) info.nativeFormats |= RTAUDIO_SINT8; + if (inCaps.dwFormats & WAVE_FORMAT_2M08) info.nativeFormats |= RTAUDIO_SINT8; + if (inCaps.dwFormats & WAVE_FORMAT_4M08) info.nativeFormats |= RTAUDIO_SINT8; + if (inCaps.dwFormats & WAVE_FORMAT_96M08) info.nativeFormats |= RTAUDIO_SINT8; + + if (info.nativeFormats & RTAUDIO_SINT16) + { + if (inCaps.dwFormats & WAVE_FORMAT_1M16) rates.push_back(11025); + if (inCaps.dwFormats & WAVE_FORMAT_2M16) rates.push_back(22050); + if (inCaps.dwFormats & WAVE_FORMAT_4M16) rates.push_back(44100); + if (inCaps.dwFormats & WAVE_FORMAT_96M16) rates.push_back(96000); + } + else if (info.nativeFormats & RTAUDIO_SINT8) + { + if (inCaps.dwFormats & WAVE_FORMAT_1M08) rates.push_back(11025); + if (inCaps.dwFormats & WAVE_FORMAT_2M08) rates.push_back(22050); + if (inCaps.dwFormats & WAVE_FORMAT_4M08) rates.push_back(44100); + if (inCaps.dwFormats & WAVE_FORMAT_96M08) rates.push_back(96000); + } + } + else + info.inputChannels = 0; // technically, this would be an error + + input->Release(); + + if (info.inputChannels == 0) return info; + + // Copy the supported rates to the info structure but avoid duplication. + bool found; + for (unsigned int i = 0; i < rates.size(); i++) + { + found = false; + for (unsigned int j = 0; j < info.sampleRates.size(); j++) + { + if (rates[i] == info.sampleRates[j]) + { + found = true; + break; + } + } + if (found == false) info.sampleRates.push_back(rates[i]); + } + std::sort(info.sampleRates.begin(), info.sampleRates.end()); + + // If device opens for both playback and capture, we determine the channels. + if (info.outputChannels > 0 && info.inputChannels > 0) + info.duplexChannels = (info.outputChannels > info.inputChannels) ? info.inputChannels : info.outputChannels; + + if (device == 0) info.isDefaultInput = true; + + // Copy name and return. + info.name = dsDevices[device].name; + info.probed = true; + return info; +} + +bool RtApiDs ::probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options) +{ + if (channels + firstChannel > 2) + { + errorText_ = "RtApiDs::probeDeviceOpen: DirectSound does not support more than 2 channels per device."; + return FAILURE; + } + + size_t nDevices = dsDevices.size(); + if (nDevices == 0) + { + // This should not happen because a check is made before this function is called. + errorText_ = "RtApiDs::probeDeviceOpen: no devices found!"; + return FAILURE; + } + + if (device >= nDevices) + { + // This should not happen because a check is made before this function is called. + errorText_ = "RtApiDs::probeDeviceOpen: device ID is invalid!"; + return FAILURE; + } + + if (mode == OUTPUT) + { + if (dsDevices[device].validId[0] == false) + { + errorStream_ << "RtApiDs::probeDeviceOpen: device (" << device << ") does not support output!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + else + { // mode == INPUT + if (dsDevices[device].validId[1] == false) + { + errorStream_ << "RtApiDs::probeDeviceOpen: device (" << device << ") does not support input!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + + // According to a note in PortAudio, using GetDesktopWindow() + // instead of GetForegroundWindow() is supposed to avoid problems + // that occur when the application's window is not the foreground + // window. Also, if the application window closes before the + // DirectSound buffer, DirectSound can crash. In the past, I had + // problems when using GetDesktopWindow() but it seems fine now + // (January 2010). I'll leave it commented here. + // HWND hWnd = GetForegroundWindow(); + HWND hWnd = GetDesktopWindow(); + + // Check the numberOfBuffers parameter and limit the lowest value to + // two. This is a judgement call and a value of two is probably too + // low for capture, but it should work for playback. + int nBuffers = 0; + if (options) nBuffers = options->numberOfBuffers; + if (options && options->flags & RTAUDIO_MINIMIZE_LATENCY) nBuffers = 2; + if (nBuffers < 2) nBuffers = 3; + + // Check the lower range of the user-specified buffer size and set + // (arbitrarily) to a lower bound of 32. + if (*bufferSize < 32) *bufferSize = 32; + + // Create the wave format structure. The data format setting will + // be determined later. + WAVEFORMATEX waveFormat; + ZeroMemory(&waveFormat, sizeof(WAVEFORMATEX)); + waveFormat.wFormatTag = WAVE_FORMAT_PCM; + waveFormat.nChannels = channels + firstChannel; + waveFormat.nSamplesPerSec = (unsigned long) sampleRate; + + // Determine the device buffer size. By default, we'll use the value + // defined above (32K), but we will grow it to make allowances for + // very large software buffer sizes. + DWORD dsBufferSize = MINIMUM_DEVICE_BUFFER_SIZE; + DWORD dsPointerLeadTime = 0; + + void *ohandle = 0, *bhandle = 0; + HRESULT result; + if (mode == OUTPUT) + { + + LPDIRECTSOUND output; + result = DirectSoundCreate(dsDevices[device].id[0], &output, NULL); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") opening output device (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + DSCAPS outCaps; + outCaps.dwSize = sizeof(outCaps); + result = output->GetCaps(&outCaps); + if (FAILED(result)) + { + output->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") getting capabilities (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Check channel information. + if (channels + firstChannel == 2 && !(outCaps.dwFlags & DSCAPS_PRIMARYSTEREO)) + { + errorStream_ << "RtApiDs::getDeviceInfo: the output device (" << dsDevices[device].name << ") does not support stereo playback."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Check format information. Use 16-bit format unless not + // supported or user requests 8-bit. + if (outCaps.dwFlags & DSCAPS_PRIMARY16BIT && !(format == RTAUDIO_SINT8 && outCaps.dwFlags & DSCAPS_PRIMARY8BIT)) + { + waveFormat.wBitsPerSample = 16; + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + } + else + { + waveFormat.wBitsPerSample = 8; + stream_.deviceFormat[mode] = RTAUDIO_SINT8; + } + stream_.userFormat = format; + + // Update wave format structure and buffer information. + waveFormat.nBlockAlign = waveFormat.nChannels * waveFormat.wBitsPerSample / 8; + waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign; + dsPointerLeadTime = nBuffers * (*bufferSize) * (waveFormat.wBitsPerSample / 8) * channels; + + // If the user wants an even bigger buffer, increase the device buffer size accordingly. + while (dsPointerLeadTime * 2U > dsBufferSize) + dsBufferSize *= 2; + + // Set cooperative level to DSSCL_EXCLUSIVE ... sound stops when window focus changes. + // result = output->SetCooperativeLevel( hWnd, DSSCL_EXCLUSIVE ); + // Set cooperative level to DSSCL_PRIORITY ... sound remains when window focus changes. + result = output->SetCooperativeLevel(hWnd, DSSCL_PRIORITY); + if (FAILED(result)) + { + output->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") setting cooperative level (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Even though we will write to the secondary buffer, we need to + // access the primary buffer to set the correct output format + // (since the default is 8-bit, 22 kHz!). Setup the DS primary + // buffer description. + DSBUFFERDESC bufferDescription; + ZeroMemory(&bufferDescription, sizeof(DSBUFFERDESC)); + bufferDescription.dwSize = sizeof(DSBUFFERDESC); + bufferDescription.dwFlags = DSBCAPS_PRIMARYBUFFER; + + // Obtain the primary buffer + LPDIRECTSOUNDBUFFER buffer; + result = output->CreateSoundBuffer(&bufferDescription, &buffer, NULL); + if (FAILED(result)) + { + output->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") accessing primary buffer (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Set the primary DS buffer sound format. + result = buffer->SetFormat(&waveFormat); + if (FAILED(result)) + { + output->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") setting primary buffer format (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Setup the secondary DS buffer description. + ZeroMemory(&bufferDescription, sizeof(DSBUFFERDESC)); + bufferDescription.dwSize = sizeof(DSBUFFERDESC); + bufferDescription.dwFlags = (DSBCAPS_STICKYFOCUS | DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_LOCHARDWARE); // Force hardware mixing + bufferDescription.dwBufferBytes = dsBufferSize; + bufferDescription.lpwfxFormat = &waveFormat; + + // Try to create the secondary DS buffer. If that doesn't work, + // try to use software mixing. Otherwise, there's a problem. + result = output->CreateSoundBuffer(&bufferDescription, &buffer, NULL); + if (FAILED(result)) + { + bufferDescription.dwFlags = (DSBCAPS_STICKYFOCUS | DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_LOCSOFTWARE); // Force software mixing + result = output->CreateSoundBuffer(&bufferDescription, &buffer, NULL); + if (FAILED(result)) + { + output->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") creating secondary buffer (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + + // Get the buffer size ... might be different from what we specified. + DSBCAPS dsbcaps; + dsbcaps.dwSize = sizeof(DSBCAPS); + result = buffer->GetCaps(&dsbcaps); + if (FAILED(result)) + { + output->Release(); + buffer->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") getting buffer settings (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + dsBufferSize = dsbcaps.dwBufferBytes; + + // Lock the DS buffer + LPVOID audioPtr; + DWORD dataLen; + result = buffer->Lock(0, dsBufferSize, &audioPtr, &dataLen, NULL, NULL, 0); + if (FAILED(result)) + { + output->Release(); + buffer->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") locking buffer (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Zero the DS buffer + ZeroMemory(audioPtr, dataLen); + + // Unlock the DS buffer + result = buffer->Unlock(audioPtr, dataLen, NULL, 0); + if (FAILED(result)) + { + output->Release(); + buffer->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") unlocking buffer (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + ohandle = (void *) output; + bhandle = (void *) buffer; + } + + if (mode == INPUT) + { + + LPDIRECTSOUNDCAPTURE input; + result = DirectSoundCaptureCreate(dsDevices[device].id[1], &input, NULL); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") opening input device (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + DSCCAPS inCaps; + inCaps.dwSize = sizeof(inCaps); + result = input->GetCaps(&inCaps); + if (FAILED(result)) + { + input->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") getting input capabilities (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Check channel information. + if (inCaps.dwChannels < channels + firstChannel) + { + errorText_ = "RtApiDs::getDeviceInfo: the input device does not support requested input channels."; + return FAILURE; + } + + // Check format information. Use 16-bit format unless user + // requests 8-bit. + DWORD deviceFormats; + if (channels + firstChannel == 2) + { + deviceFormats = WAVE_FORMAT_1S08 | WAVE_FORMAT_2S08 | WAVE_FORMAT_4S08 | WAVE_FORMAT_96S08; + if (format == RTAUDIO_SINT8 && inCaps.dwFormats & deviceFormats) + { + waveFormat.wBitsPerSample = 8; + stream_.deviceFormat[mode] = RTAUDIO_SINT8; + } + else + { // assume 16-bit is supported + waveFormat.wBitsPerSample = 16; + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + } + } + else + { // channel == 1 + deviceFormats = WAVE_FORMAT_1M08 | WAVE_FORMAT_2M08 | WAVE_FORMAT_4M08 | WAVE_FORMAT_96M08; + if (format == RTAUDIO_SINT8 && inCaps.dwFormats & deviceFormats) + { + waveFormat.wBitsPerSample = 8; + stream_.deviceFormat[mode] = RTAUDIO_SINT8; + } + else + { // assume 16-bit is supported + waveFormat.wBitsPerSample = 16; + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + } + } + stream_.userFormat = format; + + // Update wave format structure and buffer information. + waveFormat.nBlockAlign = waveFormat.nChannels * waveFormat.wBitsPerSample / 8; + waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign; + dsPointerLeadTime = nBuffers * (*bufferSize) * (waveFormat.wBitsPerSample / 8) * channels; + + // If the user wants an even bigger buffer, increase the device buffer size accordingly. + while (dsPointerLeadTime * 2U > dsBufferSize) + dsBufferSize *= 2; + + // Setup the secondary DS buffer description. + DSCBUFFERDESC bufferDescription; + ZeroMemory(&bufferDescription, sizeof(DSCBUFFERDESC)); + bufferDescription.dwSize = sizeof(DSCBUFFERDESC); + bufferDescription.dwFlags = 0; + bufferDescription.dwReserved = 0; + bufferDescription.dwBufferBytes = dsBufferSize; + bufferDescription.lpwfxFormat = &waveFormat; + + // Create the capture buffer. + LPDIRECTSOUNDCAPTUREBUFFER buffer; + result = input->CreateCaptureBuffer(&bufferDescription, &buffer, NULL); + if (FAILED(result)) + { + input->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") creating input buffer (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Get the buffer size ... might be different from what we specified. + DSCBCAPS dscbcaps; + dscbcaps.dwSize = sizeof(DSCBCAPS); + result = buffer->GetCaps(&dscbcaps); + if (FAILED(result)) + { + input->Release(); + buffer->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") getting buffer settings (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + dsBufferSize = dscbcaps.dwBufferBytes; + + // NOTE: We could have a problem here if this is a duplex stream + // and the play and capture hardware buffer sizes are different + // (I'm actually not sure if that is a problem or not). + // Currently, we are not verifying that. + + // Lock the capture buffer + LPVOID audioPtr; + DWORD dataLen; + result = buffer->Lock(0, dsBufferSize, &audioPtr, &dataLen, NULL, NULL, 0); + if (FAILED(result)) + { + input->Release(); + buffer->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") locking input buffer (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Zero the buffer + ZeroMemory(audioPtr, dataLen); + + // Unlock the buffer + result = buffer->Unlock(audioPtr, dataLen, NULL, 0); + if (FAILED(result)) + { + input->Release(); + buffer->Release(); + errorStream_ << "RtApiDs::probeDeviceOpen: error (" << getErrorString(result) << ") unlocking input buffer (" << dsDevices[device].name << ")!"; + errorText_ = errorStream_.str(); + return FAILURE; + } + + ohandle = (void *) input; + bhandle = (void *) buffer; + } + + // Set various stream parameters + DsHandle * handle = 0; + stream_.nDeviceChannels[mode] = channels + firstChannel; + stream_.nUserChannels[mode] = channels; + stream_.bufferSize = *bufferSize; + stream_.channelOffset[mode] = firstChannel; + stream_.deviceInterleaved[mode] = true; + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + stream_.userInterleaved = false; + else + stream_.userInterleaved = true; + + // Set flag for buffer conversion + stream_.doConvertBuffer[mode] = false; + if (stream_.nUserChannels[mode] != stream_.nDeviceChannels[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.userFormat != stream_.deviceFormat[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.userInterleaved != stream_.deviceInterleaved[mode] && stream_.nUserChannels[mode] > 1) + stream_.doConvertBuffer[mode] = true; + + // Allocate necessary internal buffers + long bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes(stream_.userFormat); + stream_.userBuffer[mode] = (char *) calloc(bufferBytes, 1); + if (stream_.userBuffer[mode] == NULL) + { + errorText_ = "RtApiDs::probeDeviceOpen: error allocating user buffer memory."; + goto error; + } + + if (stream_.doConvertBuffer[mode]) + { + + bool makeBuffer = true; + bufferBytes = stream_.nDeviceChannels[mode] * formatBytes(stream_.deviceFormat[mode]); + if (mode == INPUT) + { + if (stream_.mode == OUTPUT && stream_.deviceBuffer) + { + unsigned long bytesOut = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + if (bufferBytes <= (long) bytesOut) makeBuffer = false; + } + } + + if (makeBuffer) + { + bufferBytes *= *bufferSize; + if (stream_.deviceBuffer) free(stream_.deviceBuffer); + stream_.deviceBuffer = (char *) calloc(bufferBytes, 1); + if (stream_.deviceBuffer == NULL) + { + errorText_ = "RtApiDs::probeDeviceOpen: error allocating device buffer memory."; + goto error; + } + } + } + + // Allocate our DsHandle structures for the stream. + if (stream_.apiHandle == 0) + { + try + { + handle = new DsHandle; + } + catch (std::bad_alloc &) + { + errorText_ = "RtApiDs::probeDeviceOpen: error allocating AsioHandle memory."; + goto error; + } + + // Create a manual-reset event. + handle->condition = CreateEvent(NULL, // no security + TRUE, // manual-reset + FALSE, // non-signaled initially + NULL); // unnamed + stream_.apiHandle = (void *) handle; + } + else + handle = (DsHandle *) stream_.apiHandle; + handle->id[mode] = ohandle; + handle->buffer[mode] = bhandle; + handle->dsBufferSize[mode] = dsBufferSize; + handle->dsPointerLeadTime[mode] = dsPointerLeadTime; + + stream_.device[mode] = device; + stream_.state = STREAM_STOPPED; + if (stream_.mode == OUTPUT && mode == INPUT) + // We had already set up an output stream. + stream_.mode = DUPLEX; + else + stream_.mode = mode; + stream_.nBuffers = nBuffers; + stream_.sampleRate = sampleRate; + + // Setup the buffer conversion information structure. + if (stream_.doConvertBuffer[mode]) setConvertInfo(mode, firstChannel); + + // Setup the callback thread. + if (stream_.callbackInfo.isRunning == false) + { + unsigned threadId; + stream_.callbackInfo.isRunning = true; + stream_.callbackInfo.object = (void *) this; + stream_.callbackInfo.thread = _beginthreadex(NULL, 0, &callbackHandler, + &stream_.callbackInfo, 0, &threadId); + if (stream_.callbackInfo.thread == 0) + { + errorText_ = "RtApiDs::probeDeviceOpen: error creating callback thread!"; + goto error; + } + + // Boost DS thread priority + SetThreadPriority((HANDLE) stream_.callbackInfo.thread, THREAD_PRIORITY_HIGHEST); + } + return SUCCESS; + +error: + if (handle) + { + if (handle->buffer[0]) + { // the object pointer can be NULL and valid + LPDIRECTSOUND object = (LPDIRECTSOUND) handle->id[0]; + LPDIRECTSOUNDBUFFER buffer = (LPDIRECTSOUNDBUFFER) handle->buffer[0]; + if (buffer) buffer->Release(); + object->Release(); + } + if (handle->buffer[1]) + { + LPDIRECTSOUNDCAPTURE object = (LPDIRECTSOUNDCAPTURE) handle->id[1]; + LPDIRECTSOUNDCAPTUREBUFFER buffer = (LPDIRECTSOUNDCAPTUREBUFFER) handle->buffer[1]; + if (buffer) buffer->Release(); + object->Release(); + } + CloseHandle(handle->condition); + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.state = STREAM_CLOSED; + return FAILURE; +} + +void RtApiDs ::closeStream() +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiDs::closeStream(): no open stream to close!"; + error(RtAudioError::WARNING); + return; + } + + // Stop the callback thread. + stream_.callbackInfo.isRunning = false; + WaitForSingleObject((HANDLE) stream_.callbackInfo.thread, INFINITE); + CloseHandle((HANDLE) stream_.callbackInfo.thread); + + DsHandle * handle = (DsHandle *) stream_.apiHandle; + if (handle) + { + if (handle->buffer[0]) + { // the object pointer can be NULL and valid + LPDIRECTSOUND object = (LPDIRECTSOUND) handle->id[0]; + LPDIRECTSOUNDBUFFER buffer = (LPDIRECTSOUNDBUFFER) handle->buffer[0]; + if (buffer) + { + buffer->Stop(); + buffer->Release(); + } + object->Release(); + } + if (handle->buffer[1]) + { + LPDIRECTSOUNDCAPTURE object = (LPDIRECTSOUNDCAPTURE) handle->id[1]; + LPDIRECTSOUNDCAPTUREBUFFER buffer = (LPDIRECTSOUNDCAPTUREBUFFER) handle->buffer[1]; + if (buffer) + { + buffer->Stop(); + buffer->Release(); + } + object->Release(); + } + CloseHandle(handle->condition); + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.mode = UNINITIALIZED; + stream_.state = STREAM_CLOSED; +} + +void RtApiDs ::startStream() +{ + verifyStream(); + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiDs::startStream(): the stream is already running!"; + error(RtAudioError::WARNING); + return; + } + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + DsHandle * handle = (DsHandle *) stream_.apiHandle; + + // Increase scheduler frequency on lesser windows (a side-effect of + // increasing timer accuracy). On greater windows (Win2K or later), + // this is already in effect. + timeBeginPeriod(1); + + buffersRolling = false; + duplexPrerollBytes = 0; + + if (stream_.mode == DUPLEX) + { + // 0.5 seconds of silence in DUPLEX mode while the devices spin up and synchronize. + duplexPrerollBytes = (int) (0.5 * stream_.sampleRate * formatBytes(stream_.deviceFormat[1]) * stream_.nDeviceChannels[1]); + } + + HRESULT result = 0; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + LPDIRECTSOUNDBUFFER buffer = (LPDIRECTSOUNDBUFFER) handle->buffer[0]; + result = buffer->Play(0, 0, DSBPLAY_LOOPING); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::startStream: error (" << getErrorString(result) << ") starting output buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + + LPDIRECTSOUNDCAPTUREBUFFER buffer = (LPDIRECTSOUNDCAPTUREBUFFER) handle->buffer[1]; + result = buffer->Start(DSCBSTART_LOOPING); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::startStream: error (" << getErrorString(result) << ") starting input buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + handle->drainCounter = 0; + handle->internalDrain = false; + ResetEvent(handle->condition); + stream_.state = STREAM_RUNNING; + +unlock: + if (FAILED(result)) error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiDs ::stopStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiDs::stopStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + HRESULT result = 0; + LPVOID audioPtr; + DWORD dataLen; + DsHandle * handle = (DsHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + if (handle->drainCounter == 0) + { + handle->drainCounter = 2; + WaitForSingleObject(handle->condition, INFINITE); // block until signaled + } + + stream_.state = STREAM_STOPPED; + + MUTEX_LOCK(&stream_.mutex); + + // Stop the buffer and clear memory + LPDIRECTSOUNDBUFFER buffer = (LPDIRECTSOUNDBUFFER) handle->buffer[0]; + result = buffer->Stop(); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::stopStream: error (" << getErrorString(result) << ") stopping output buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + + // Lock the buffer and clear it so that if we start to play again, + // we won't have old data playing. + result = buffer->Lock(0, handle->dsBufferSize[0], &audioPtr, &dataLen, NULL, NULL, 0); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::stopStream: error (" << getErrorString(result) << ") locking output buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + + // Zero the DS buffer + ZeroMemory(audioPtr, dataLen); + + // Unlock the DS buffer + result = buffer->Unlock(audioPtr, dataLen, NULL, 0); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::stopStream: error (" << getErrorString(result) << ") unlocking output buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + + // If we start playing again, we must begin at beginning of buffer. + handle->bufferPointer[0] = 0; + } + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + LPDIRECTSOUNDCAPTUREBUFFER buffer = (LPDIRECTSOUNDCAPTUREBUFFER) handle->buffer[1]; + audioPtr = NULL; + dataLen = 0; + + stream_.state = STREAM_STOPPED; + + if (stream_.mode != DUPLEX) + MUTEX_LOCK(&stream_.mutex); + + result = buffer->Stop(); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::stopStream: error (" << getErrorString(result) << ") stopping input buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + + // Lock the buffer and clear it so that if we start to play again, + // we won't have old data playing. + result = buffer->Lock(0, handle->dsBufferSize[1], &audioPtr, &dataLen, NULL, NULL, 0); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::stopStream: error (" << getErrorString(result) << ") locking input buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + + // Zero the DS buffer + ZeroMemory(audioPtr, dataLen); + + // Unlock the DS buffer + result = buffer->Unlock(audioPtr, dataLen, NULL, 0); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::stopStream: error (" << getErrorString(result) << ") unlocking input buffer!"; + errorText_ = errorStream_.str(); + goto unlock; + } + + // If we start recording again, we must begin at beginning of buffer. + handle->bufferPointer[1] = 0; + } + +unlock: + timeEndPeriod(1); // revert to normal scheduler frequency on lesser windows. + MUTEX_UNLOCK(&stream_.mutex); + + if (FAILED(result)) error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiDs ::abortStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiDs::abortStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + DsHandle * handle = (DsHandle *) stream_.apiHandle; + handle->drainCounter = 2; + + stopStream(); +} + +void RtApiDs ::callbackEvent() +{ + if (stream_.state == STREAM_STOPPED || stream_.state == STREAM_STOPPING) + { + Sleep(50); // sleep 50 milliseconds + return; + } + + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiDs::callbackEvent(): the stream is closed ... this shouldn't happen!"; + error(RtAudioError::WARNING); + return; + } + + CallbackInfo * info = (CallbackInfo *) &stream_.callbackInfo; + DsHandle * handle = (DsHandle *) stream_.apiHandle; + + // Check if we were draining the stream and signal is finished. + if (handle->drainCounter > stream_.nBuffers + 2) + { + + stream_.state = STREAM_STOPPING; + if (handle->internalDrain == false) + SetEvent(handle->condition); + else + stopStream(); + return; + } + + // Invoke user callback to get fresh output data UNLESS we are + // draining stream. + if (handle->drainCounter == 0) + { + RtAudioCallback callback = (RtAudioCallback) info->callback; + double streamTime = getStreamTime(); + RtAudioStreamStatus status = 0; + if (stream_.mode != INPUT && handle->xrun[0] == true) + { + status |= RTAUDIO_OUTPUT_UNDERFLOW; + handle->xrun[0] = false; + } + if (stream_.mode != OUTPUT && handle->xrun[1] == true) + { + status |= RTAUDIO_INPUT_OVERFLOW; + handle->xrun[1] = false; + } + int cbReturnValue = callback(stream_.userBuffer[0], stream_.userBuffer[1], + stream_.bufferSize, streamTime, status, info->userData); + if (cbReturnValue == 2) + { + stream_.state = STREAM_STOPPING; + handle->drainCounter = 2; + abortStream(); + return; + } + else if (cbReturnValue == 1) + { + handle->drainCounter = 1; + handle->internalDrain = true; + } + } + + HRESULT result; + DWORD currentWritePointer, safeWritePointer; + DWORD currentReadPointer, safeReadPointer; + UINT nextWritePointer; + + LPVOID buffer1 = NULL; + LPVOID buffer2 = NULL; + DWORD bufferSize1 = 0; + DWORD bufferSize2 = 0; + + char * buffer; + long bufferBytes; + + MUTEX_LOCK(&stream_.mutex); + if (stream_.state == STREAM_STOPPED) + { + MUTEX_UNLOCK(&stream_.mutex); + return; + } + + if (buffersRolling == false) + { + if (stream_.mode == DUPLEX) + { + //assert( handle->dsBufferSize[0] == handle->dsBufferSize[1] ); + + // It takes a while for the devices to get rolling. As a result, + // there's no guarantee that the capture and write device pointers + // will move in lockstep. Wait here for both devices to start + // rolling, and then set our buffer pointers accordingly. + // e.g. Crystal Drivers: the capture buffer starts up 5700 to 9600 + // bytes later than the write buffer. + + // Stub: a serious risk of having a pre-emptive scheduling round + // take place between the two GetCurrentPosition calls... but I'm + // really not sure how to solve the problem. Temporarily boost to + // Realtime priority, maybe; but I'm not sure what priority the + // DirectSound service threads run at. We *should* be roughly + // within a ms or so of correct. + + LPDIRECTSOUNDBUFFER dsWriteBuffer = (LPDIRECTSOUNDBUFFER) handle->buffer[0]; + LPDIRECTSOUNDCAPTUREBUFFER dsCaptureBuffer = (LPDIRECTSOUNDCAPTUREBUFFER) handle->buffer[1]; + + DWORD startSafeWritePointer, startSafeReadPointer; + + result = dsWriteBuffer->GetCurrentPosition(NULL, &startSafeWritePointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current write position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + result = dsCaptureBuffer->GetCurrentPosition(NULL, &startSafeReadPointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current read position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + while (true) + { + result = dsWriteBuffer->GetCurrentPosition(NULL, &safeWritePointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current write position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + result = dsCaptureBuffer->GetCurrentPosition(NULL, &safeReadPointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current read position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + if (safeWritePointer != startSafeWritePointer && safeReadPointer != startSafeReadPointer) break; + Sleep(1); + } + + //assert( handle->dsBufferSize[0] == handle->dsBufferSize[1] ); + + handle->bufferPointer[0] = safeWritePointer + handle->dsPointerLeadTime[0]; + if (handle->bufferPointer[0] >= handle->dsBufferSize[0]) handle->bufferPointer[0] -= handle->dsBufferSize[0]; + handle->bufferPointer[1] = safeReadPointer; + } + else if (stream_.mode == OUTPUT) + { + + // Set the proper nextWritePosition after initial startup. + LPDIRECTSOUNDBUFFER dsWriteBuffer = (LPDIRECTSOUNDBUFFER) handle->buffer[0]; + result = dsWriteBuffer->GetCurrentPosition(¤tWritePointer, &safeWritePointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current write position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + handle->bufferPointer[0] = safeWritePointer + handle->dsPointerLeadTime[0]; + if (handle->bufferPointer[0] >= handle->dsBufferSize[0]) handle->bufferPointer[0] -= handle->dsBufferSize[0]; + } + + buffersRolling = true; + } + + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + LPDIRECTSOUNDBUFFER dsBuffer = (LPDIRECTSOUNDBUFFER) handle->buffer[0]; + + if (handle->drainCounter > 1) + { // write zeros to the output stream + bufferBytes = stream_.bufferSize * stream_.nUserChannels[0]; + bufferBytes *= formatBytes(stream_.userFormat); + memset(stream_.userBuffer[0], 0, bufferBytes); + } + + // Setup parameters and do buffer conversion if necessary. + if (stream_.doConvertBuffer[0]) + { + buffer = stream_.deviceBuffer; + convertBuffer(buffer, stream_.userBuffer[0], stream_.convertInfo[0]); + bufferBytes = stream_.bufferSize * stream_.nDeviceChannels[0]; + bufferBytes *= formatBytes(stream_.deviceFormat[0]); + } + else + { + buffer = stream_.userBuffer[0]; + bufferBytes = stream_.bufferSize * stream_.nUserChannels[0]; + bufferBytes *= formatBytes(stream_.userFormat); + } + + // No byte swapping necessary in DirectSound implementation. + + // Ahhh ... windoze. 16-bit data is signed but 8-bit data is + // unsigned. So, we need to convert our signed 8-bit data here to + // unsigned. + if (stream_.deviceFormat[0] == RTAUDIO_SINT8) + for (int i = 0; i < bufferBytes; i++) buffer[i] = (unsigned char) (buffer[i] + 128); + + DWORD dsBufferSize = handle->dsBufferSize[0]; + nextWritePointer = handle->bufferPointer[0]; + + DWORD endWrite, leadPointer; + while (true) + { + // Find out where the read and "safe write" pointers are. + result = dsBuffer->GetCurrentPosition(¤tWritePointer, &safeWritePointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current write position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + + // We will copy our output buffer into the region between + // safeWritePointer and leadPointer. If leadPointer is not + // beyond the next endWrite position, wait until it is. + leadPointer = safeWritePointer + handle->dsPointerLeadTime[0]; + //std::cout << "safeWritePointer = " << safeWritePointer << ", leadPointer = " << leadPointer << ", nextWritePointer = " << nextWritePointer << std::endl; + if (leadPointer > dsBufferSize) leadPointer -= dsBufferSize; + if (leadPointer < nextWritePointer) leadPointer += dsBufferSize; // unwrap offset + endWrite = nextWritePointer + bufferBytes; + + // Check whether the entire write region is behind the play pointer. + if (leadPointer >= endWrite) break; + + // If we are here, then we must wait until the leadPointer advances + // beyond the end of our next write region. We use the + // Sleep() function to suspend operation until that happens. + double millis = (endWrite - leadPointer) * 1000.0; + millis /= (formatBytes(stream_.deviceFormat[0]) * stream_.nDeviceChannels[0] * stream_.sampleRate); + if (millis < 1.0) millis = 1.0; + Sleep((DWORD) millis); + } + + if (dsPointerBetween(nextWritePointer, safeWritePointer, currentWritePointer, dsBufferSize) + || dsPointerBetween(endWrite, safeWritePointer, currentWritePointer, dsBufferSize)) + { + // We've strayed into the forbidden zone ... resync the read pointer. + handle->xrun[0] = true; + nextWritePointer = safeWritePointer + handle->dsPointerLeadTime[0] - bufferBytes; + if (nextWritePointer >= dsBufferSize) nextWritePointer -= dsBufferSize; + handle->bufferPointer[0] = nextWritePointer; + endWrite = nextWritePointer + bufferBytes; + } + + // Lock free space in the buffer + result = dsBuffer->Lock(nextWritePointer, bufferBytes, &buffer1, + &bufferSize1, &buffer2, &bufferSize2, 0); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") locking buffer during playback!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + + // Copy our buffer into the DS buffer + CopyMemory(buffer1, buffer, bufferSize1); + if (buffer2 != NULL) CopyMemory(buffer2, buffer + bufferSize1, bufferSize2); + + // Update our buffer offset and unlock sound buffer + dsBuffer->Unlock(buffer1, bufferSize1, buffer2, bufferSize2); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") unlocking buffer during playback!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + nextWritePointer = (nextWritePointer + bufferSize1 + bufferSize2) % dsBufferSize; + handle->bufferPointer[0] = nextWritePointer; + } + + // Don't bother draining input + if (handle->drainCounter) + { + handle->drainCounter++; + goto unlock; + } + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + + // Setup parameters. + if (stream_.doConvertBuffer[1]) + { + buffer = stream_.deviceBuffer; + bufferBytes = stream_.bufferSize * stream_.nDeviceChannels[1]; + bufferBytes *= formatBytes(stream_.deviceFormat[1]); + } + else + { + buffer = stream_.userBuffer[1]; + bufferBytes = stream_.bufferSize * stream_.nUserChannels[1]; + bufferBytes *= formatBytes(stream_.userFormat); + } + + LPDIRECTSOUNDCAPTUREBUFFER dsBuffer = (LPDIRECTSOUNDCAPTUREBUFFER) handle->buffer[1]; + long nextReadPointer = handle->bufferPointer[1]; + DWORD dsBufferSize = handle->dsBufferSize[1]; + + // Find out where the write and "safe read" pointers are. + result = dsBuffer->GetCurrentPosition(¤tReadPointer, &safeReadPointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current read position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + + if (safeReadPointer < (DWORD) nextReadPointer) safeReadPointer += dsBufferSize; // unwrap offset + DWORD endRead = nextReadPointer + bufferBytes; + + // Handling depends on whether we are INPUT or DUPLEX. + // If we're in INPUT mode then waiting is a good thing. If we're in DUPLEX mode, + // then a wait here will drag the write pointers into the forbidden zone. + // + // In DUPLEX mode, rather than wait, we will back off the read pointer until + // it's in a safe position. This causes dropouts, but it seems to be the only + // practical way to sync up the read and write pointers reliably, given the + // the very complex relationship between phase and increment of the read and write + // pointers. + // + // In order to minimize audible dropouts in DUPLEX mode, we will + // provide a pre-roll period of 0.5 seconds in which we return + // zeros from the read buffer while the pointers sync up. + + if (stream_.mode == DUPLEX) + { + if (safeReadPointer < endRead) + { + if (duplexPrerollBytes <= 0) + { + // Pre-roll time over. Be more agressive. + int adjustment = endRead - safeReadPointer; + + handle->xrun[1] = true; + // Two cases: + // - large adjustments: we've probably run out of CPU cycles, so just resync exactly, + // and perform fine adjustments later. + // - small adjustments: back off by twice as much. + if (adjustment >= 2 * bufferBytes) + nextReadPointer = safeReadPointer - 2 * bufferBytes; + else + nextReadPointer = safeReadPointer - bufferBytes - adjustment; + + if (nextReadPointer < 0) nextReadPointer += dsBufferSize; + } + else + { + // In pre=roll time. Just do it. + nextReadPointer = safeReadPointer - bufferBytes; + while (nextReadPointer < 0) nextReadPointer += dsBufferSize; + } + endRead = nextReadPointer + bufferBytes; + } + } + else + { // mode == INPUT + while (safeReadPointer < endRead && stream_.callbackInfo.isRunning) + { + // See comments for playback. + double millis = (endRead - safeReadPointer) * 1000.0; + millis /= (formatBytes(stream_.deviceFormat[1]) * stream_.nDeviceChannels[1] * stream_.sampleRate); + if (millis < 1.0) millis = 1.0; + Sleep((DWORD) millis); + + // Wake up and find out where we are now. + result = dsBuffer->GetCurrentPosition(¤tReadPointer, &safeReadPointer); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") getting current read position!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + + if (safeReadPointer < (DWORD) nextReadPointer) safeReadPointer += dsBufferSize; // unwrap offset + } + } + + // Lock free space in the buffer + result = dsBuffer->Lock(nextReadPointer, bufferBytes, &buffer1, + &bufferSize1, &buffer2, &bufferSize2, 0); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") locking capture buffer!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + + if (duplexPrerollBytes <= 0) + { + // Copy our buffer into the DS buffer + CopyMemory(buffer, buffer1, bufferSize1); + if (buffer2 != NULL) CopyMemory(buffer + bufferSize1, buffer2, bufferSize2); + } + else + { + memset(buffer, 0, bufferSize1); + if (buffer2 != NULL) memset(buffer + bufferSize1, 0, bufferSize2); + duplexPrerollBytes -= bufferSize1 + bufferSize2; + } + + // Update our buffer offset and unlock sound buffer + nextReadPointer = (nextReadPointer + bufferSize1 + bufferSize2) % dsBufferSize; + dsBuffer->Unlock(buffer1, bufferSize1, buffer2, bufferSize2); + if (FAILED(result)) + { + errorStream_ << "RtApiDs::callbackEvent: error (" << getErrorString(result) << ") unlocking capture buffer!"; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + handle->bufferPointer[1] = nextReadPointer; + + // No byte swapping necessary in DirectSound implementation. + + // If necessary, convert 8-bit data from unsigned to signed. + if (stream_.deviceFormat[1] == RTAUDIO_SINT8) + for (int j = 0; j < bufferBytes; j++) buffer[j] = (signed char) (buffer[j] - 128); + + // Do buffer conversion if necessary. + if (stream_.doConvertBuffer[1]) + convertBuffer(stream_.userBuffer[1], stream_.deviceBuffer, stream_.convertInfo[1]); + } + +unlock: + MUTEX_UNLOCK(&stream_.mutex); + RtApi::tickStreamTime(); +} + +// Definitions for utility functions and callbacks +// specific to the DirectSound implementation. + +static unsigned __stdcall callbackHandler(void * ptr) +{ + CallbackInfo * info = (CallbackInfo *) ptr; + RtApiDs * object = (RtApiDs *) info->object; + bool * isRunning = &info->isRunning; + + while (*isRunning == true) + { + object->callbackEvent(); + } + + _endthreadex(0); + return 0; +} + +static BOOL CALLBACK deviceQueryCallback(LPGUID lpguid, + LPCTSTR description, + LPCTSTR /*module*/, + LPVOID lpContext) +{ + struct DsProbeData & probeInfo = *(struct DsProbeData *) lpContext; + std::vector & dsDevices = *probeInfo.dsDevices; + + HRESULT hr; + bool validDevice = false; + if (probeInfo.isInput == true) + { + DSCCAPS caps; + LPDIRECTSOUNDCAPTURE object; + + hr = DirectSoundCaptureCreate(lpguid, &object, NULL); + if (hr != DS_OK) return TRUE; + + caps.dwSize = sizeof(caps); + hr = object->GetCaps(&caps); + if (hr == DS_OK) + { + if (caps.dwChannels > 0 && caps.dwFormats > 0) + validDevice = true; + } + object->Release(); + } + else + { + DSCAPS caps; + LPDIRECTSOUND object; + hr = DirectSoundCreate(lpguid, &object, NULL); + if (hr != DS_OK) return TRUE; + + caps.dwSize = sizeof(caps); + hr = object->GetCaps(&caps); + if (hr == DS_OK) + { + if (caps.dwFlags & DSCAPS_PRIMARYMONO || caps.dwFlags & DSCAPS_PRIMARYSTEREO) + validDevice = true; + } + object->Release(); + } + + // If good device, then save its name and guid. + std::string name = convertCharPointerToStdString(description); + //if ( name == "Primary Sound Driver" || name == "Primary Sound Capture Driver" ) + if (lpguid == NULL) + name = "Default Device"; + if (validDevice) + { + for (unsigned int i = 0; i < dsDevices.size(); i++) + { + if (dsDevices[i].name == name) + { + dsDevices[i].found = true; + if (probeInfo.isInput) + { + dsDevices[i].id[1] = lpguid; + dsDevices[i].validId[1] = true; + } + else + { + dsDevices[i].id[0] = lpguid; + dsDevices[i].validId[0] = true; + } + return TRUE; + } + } + + DsDevice device; + device.name = name; + device.found = true; + if (probeInfo.isInput) + { + device.id[1] = lpguid; + device.validId[1] = true; + } + else + { + device.id[0] = lpguid; + device.validId[0] = true; + } + dsDevices.push_back(device); + } + + return TRUE; +} + +static const char * getErrorString(int code) +{ + switch (code) + { + + case DSERR_ALLOCATED: + return "Already allocated"; + + case DSERR_CONTROLUNAVAIL: + return "Control unavailable"; + + case DSERR_INVALIDPARAM: + return "Invalid parameter"; + + case DSERR_INVALIDCALL: + return "Invalid call"; + + case DSERR_GENERIC: + return "Generic error"; + + case DSERR_PRIOLEVELNEEDED: + return "Priority level needed"; + + case DSERR_OUTOFMEMORY: + return "Out of memory"; + + case DSERR_BADFORMAT: + return "The sample rate or the channel format is not supported"; + + case DSERR_UNSUPPORTED: + return "Not supported"; + + case DSERR_NODRIVER: + return "No driver"; + + case DSERR_ALREADYINITIALIZED: + return "Already initialized"; + + case DSERR_NOAGGREGATION: + return "No aggregation"; + + case DSERR_BUFFERLOST: + return "Buffer lost"; + + case DSERR_OTHERAPPHASPRIO: + return "Another application already has priority"; + + case DSERR_UNINITIALIZED: + return "Uninitialized"; + + default: + return "DirectSound unknown error"; + } +} +//******************** End of __WINDOWS_DS__ *********************// +#endif + +#if defined(__LINUX_ALSA__) + +#include +#include + +// A structure to hold various information related to the ALSA API +// implementation. +struct AlsaHandle +{ + snd_pcm_t * handles[2]; + bool synchronized; + bool xrun[2]; + pthread_cond_t runnable_cv; + bool runnable; + + AlsaHandle() + : synchronized(false) + , runnable(false) + { + xrun[0] = false; + xrun[1] = false; + } +}; + +static void * alsaCallbackHandler(void * ptr); + +RtApiAlsa ::RtApiAlsa() +{ + // Nothing to do here. +} + +RtApiAlsa ::~RtApiAlsa() +{ + if (stream_.state != STREAM_CLOSED) closeStream(); +} + +unsigned int RtApiAlsa ::getDeviceCount(void) +{ + unsigned nDevices = 0; + int result, subdevice, card; + char name[64]; + snd_ctl_t * handle = 0; + + // Count cards and devices + card = -1; + snd_card_next(&card); + while (card >= 0) + { + sprintf(name, "hw:%d", card); + result = snd_ctl_open(&handle, name, 0); + if (result < 0) + { + handle = 0; + errorStream_ << "RtApiAlsa::getDeviceCount: control open, card = " << card << ", " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + goto nextcard; + } + subdevice = -1; + while (1) + { + result = snd_ctl_pcm_next_device(handle, &subdevice); + if (result < 0) + { + errorStream_ << "RtApiAlsa::getDeviceCount: control next device, card = " << card << ", " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + break; + } + if (subdevice < 0) + break; + nDevices++; + } + nextcard: + if (handle) + snd_ctl_close(handle); + snd_card_next(&card); + } + + result = snd_ctl_open(&handle, "default", 0); + if (result == 0) + { + nDevices++; + snd_ctl_close(handle); + } + + return nDevices; +} + +RtAudio::DeviceInfo RtApiAlsa ::getDeviceInfo(unsigned int device) +{ + RtAudio::DeviceInfo info; + info.probed = false; + + unsigned nDevices = 0; + int result, subdevice, card; + char name[64]; + snd_ctl_t * chandle = 0; + + // Count cards and devices + card = -1; + subdevice = -1; + snd_card_next(&card); + while (card >= 0) + { + sprintf(name, "hw:%d", card); + result = snd_ctl_open(&chandle, name, SND_CTL_NONBLOCK); + if (result < 0) + { + chandle = 0; + errorStream_ << "RtApiAlsa::getDeviceInfo: control open, card = " << card << ", " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + goto nextcard; + } + subdevice = -1; + while (1) + { + result = snd_ctl_pcm_next_device(chandle, &subdevice); + if (result < 0) + { + errorStream_ << "RtApiAlsa::getDeviceInfo: control next device, card = " << card << ", " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + break; + } + if (subdevice < 0) break; + if (nDevices == device) + { + sprintf(name, "hw:%d,%d", card, subdevice); + goto foundDevice; + } + nDevices++; + } + nextcard: + if (chandle) + snd_ctl_close(chandle); + snd_card_next(&card); + } + + result = snd_ctl_open(&chandle, "default", SND_CTL_NONBLOCK); + if (result == 0) + { + if (nDevices == device) + { + strcpy(name, "default"); + goto foundDevice; + } + nDevices++; + } + + if (nDevices == 0) + { + errorText_ = "RtApiAlsa::getDeviceInfo: no devices found!"; + error(RtAudioError::INVALID_USE); + return info; + } + + if (device >= nDevices) + { + errorText_ = "RtApiAlsa::getDeviceInfo: device ID is invalid!"; + error(RtAudioError::INVALID_USE); + return info; + } + +foundDevice: + + // If a stream is already open, we cannot probe the stream devices. + // Thus, use the saved results. + if (stream_.state != STREAM_CLOSED && (stream_.device[0] == device || stream_.device[1] == device)) + { + snd_ctl_close(chandle); + if (device >= devices_.size()) + { + errorText_ = "RtApiAlsa::getDeviceInfo: device ID was not present before stream was opened."; + error(RtAudioError::WARNING); + return info; + } + return devices_[device]; + } + + int openMode = SND_PCM_ASYNC; + snd_pcm_stream_t stream; + snd_pcm_info_t * pcminfo; + snd_pcm_info_alloca(&pcminfo); + snd_pcm_t * phandle; + snd_pcm_hw_params_t * params; + snd_pcm_hw_params_alloca(¶ms); + + // First try for playback unless default device (which has subdev -1) + stream = SND_PCM_STREAM_PLAYBACK; + snd_pcm_info_set_stream(pcminfo, stream); + if (subdevice != -1) + { + snd_pcm_info_set_device(pcminfo, subdevice); + snd_pcm_info_set_subdevice(pcminfo, 0); + + result = snd_ctl_pcm_info(chandle, pcminfo); + if (result < 0) + { + // Device probably doesn't support playback. + goto captureProbe; + } + } + + result = snd_pcm_open(&phandle, name, stream, openMode | SND_PCM_NONBLOCK); + if (result < 0) + { + errorStream_ << "RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + goto captureProbe; + } + + // The device is open ... fill the parameter structure. + result = snd_pcm_hw_params_any(phandle, params); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::getDeviceInfo: snd_pcm_hw_params error for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + goto captureProbe; + } + + // Get output channel information. + unsigned int value; + result = snd_pcm_hw_params_get_channels_max(params, &value); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::getDeviceInfo: error getting device (" << name << ") output channels, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + goto captureProbe; + } + info.outputChannels = value; + snd_pcm_close(phandle); + +captureProbe: + stream = SND_PCM_STREAM_CAPTURE; + snd_pcm_info_set_stream(pcminfo, stream); + + // Now try for capture unless default device (with subdev = -1) + if (subdevice != -1) + { + result = snd_ctl_pcm_info(chandle, pcminfo); + snd_ctl_close(chandle); + if (result < 0) + { + // Device probably doesn't support capture. + if (info.outputChannels == 0) return info; + goto probeParameters; + } + } + else + snd_ctl_close(chandle); + + result = snd_pcm_open(&phandle, name, stream, openMode | SND_PCM_NONBLOCK); + if (result < 0) + { + errorStream_ << "RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + if (info.outputChannels == 0) return info; + goto probeParameters; + } + + // The device is open ... fill the parameter structure. + result = snd_pcm_hw_params_any(phandle, params); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::getDeviceInfo: snd_pcm_hw_params error for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + if (info.outputChannels == 0) return info; + goto probeParameters; + } + + result = snd_pcm_hw_params_get_channels_max(params, &value); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::getDeviceInfo: error getting device (" << name << ") input channels, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + if (info.outputChannels == 0) return info; + goto probeParameters; + } + info.inputChannels = value; + snd_pcm_close(phandle); + + // If device opens for both playback and capture, we determine the channels. + if (info.outputChannels > 0 && info.inputChannels > 0) + info.duplexChannels = (info.outputChannels > info.inputChannels) ? info.inputChannels : info.outputChannels; + + // ALSA doesn't provide default devices so we'll use the first available one. + if (device == 0 && info.outputChannels > 0) + info.isDefaultOutput = true; + if (device == 0 && info.inputChannels > 0) + info.isDefaultInput = true; + +probeParameters: + // At this point, we just need to figure out the supported data + // formats and sample rates. We'll proceed by opening the device in + // the direction with the maximum number of channels, or playback if + // they are equal. This might limit our sample rate options, but so + // be it. + + if (info.outputChannels >= info.inputChannels) + stream = SND_PCM_STREAM_PLAYBACK; + else + stream = SND_PCM_STREAM_CAPTURE; + snd_pcm_info_set_stream(pcminfo, stream); + + result = snd_pcm_open(&phandle, name, stream, openMode | SND_PCM_NONBLOCK); + if (result < 0) + { + errorStream_ << "RtApiAlsa::getDeviceInfo: snd_pcm_open error for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // The device is open ... fill the parameter structure. + result = snd_pcm_hw_params_any(phandle, params); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::getDeviceInfo: snd_pcm_hw_params error for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Test our discrete set of sample rate values. + info.sampleRates.clear(); + for (unsigned int i = 0; i < MAX_SAMPLE_RATES; i++) + { + if (snd_pcm_hw_params_test_rate(phandle, params, SAMPLE_RATES[i], 0) == 0) + { + info.sampleRates.push_back(SAMPLE_RATES[i]); + + if (!info.preferredSampleRate || (SAMPLE_RATES[i] <= 48000 && SAMPLE_RATES[i] > info.preferredSampleRate)) + info.preferredSampleRate = SAMPLE_RATES[i]; + } + } + if (info.sampleRates.size() == 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::getDeviceInfo: no supported sample rates found for device (" << name << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Probe the supported data formats ... we don't care about endian-ness just yet + snd_pcm_format_t format; + info.nativeFormats = 0; + format = SND_PCM_FORMAT_S8; + if (snd_pcm_hw_params_test_format(phandle, params, format) == 0) + info.nativeFormats |= RTAUDIO_SINT8; + format = SND_PCM_FORMAT_S16; + if (snd_pcm_hw_params_test_format(phandle, params, format) == 0) + info.nativeFormats |= RTAUDIO_SINT16; + format = SND_PCM_FORMAT_S24; + if (snd_pcm_hw_params_test_format(phandle, params, format) == 0) + info.nativeFormats |= RTAUDIO_SINT24; + format = SND_PCM_FORMAT_S32; + if (snd_pcm_hw_params_test_format(phandle, params, format) == 0) + info.nativeFormats |= RTAUDIO_SINT32; + format = SND_PCM_FORMAT_FLOAT; + if (snd_pcm_hw_params_test_format(phandle, params, format) == 0) + info.nativeFormats |= RTAUDIO_FLOAT32; + format = SND_PCM_FORMAT_FLOAT64; + if (snd_pcm_hw_params_test_format(phandle, params, format) == 0) + info.nativeFormats |= RTAUDIO_FLOAT64; + + // Check that we have at least one supported format + if (info.nativeFormats == 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::getDeviceInfo: pcm device (" << name << ") data format not supported by RtAudio."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Get the device name + char * cardname; + result = snd_card_get_name(card, &cardname); + if (result >= 0) + { + sprintf(name, "hw:%s,%d", cardname, subdevice); + free(cardname); + } + info.name = name; + + // That's all ... close the device and return + snd_pcm_close(phandle); + info.probed = true; + return info; +} + +void RtApiAlsa ::saveDeviceInfo(void) +{ + devices_.clear(); + + unsigned int nDevices = getDeviceCount(); + devices_.resize(nDevices); + for (unsigned int i = 0; i < nDevices; i++) + devices_[i] = getDeviceInfo(i); +} + +bool RtApiAlsa ::probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options) + +{ +#if defined(__RTAUDIO_DEBUG__) + snd_output_t * out; + snd_output_stdio_attach(&out, stderr, 0); +#endif + + // I'm not using the "plug" interface ... too much inconsistent behavior. + + unsigned nDevices = 0; + int result, subdevice, card; + char name[64]; + snd_ctl_t * chandle; + + if (options && options->flags & RTAUDIO_ALSA_USE_DEFAULT) + snprintf(name, sizeof(name), "%s", "default"); + else + { + // Count cards and devices + card = -1; + snd_card_next(&card); + while (card >= 0) + { + sprintf(name, "hw:%d", card); + result = snd_ctl_open(&chandle, name, SND_CTL_NONBLOCK); + if (result < 0) + { + errorStream_ << "RtApiAlsa::probeDeviceOpen: control open, card = " << card << ", " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + subdevice = -1; + while (1) + { + result = snd_ctl_pcm_next_device(chandle, &subdevice); + if (result < 0) break; + if (subdevice < 0) break; + if (nDevices == device) + { + sprintf(name, "hw:%d,%d", card, subdevice); + snd_ctl_close(chandle); + goto foundDevice; + } + nDevices++; + } + snd_ctl_close(chandle); + snd_card_next(&card); + } + + result = snd_ctl_open(&chandle, "default", SND_CTL_NONBLOCK); + if (result == 0) + { + if (nDevices == device) + { + strcpy(name, "default"); + snd_ctl_close(chandle); + goto foundDevice; + } + nDevices++; + } + snd_ctl_close(chandle); + + if (nDevices == 0) + { + // This should not happen because a check is made before this function is called. + errorText_ = "RtApiAlsa::probeDeviceOpen: no devices found!"; + return FAILURE; + } + + if (device >= nDevices) + { + // This should not happen because a check is made before this function is called. + errorText_ = "RtApiAlsa::probeDeviceOpen: device ID is invalid!"; + return FAILURE; + } + } + +foundDevice: + + // The getDeviceInfo() function will not work for a device that is + // already open. Thus, we'll probe the system before opening a + // stream and save the results for use by getDeviceInfo(). + if (mode == OUTPUT || (mode == INPUT && stream_.mode != OUTPUT)) // only do once + this->saveDeviceInfo(); + + snd_pcm_stream_t stream; + if (mode == OUTPUT) + stream = SND_PCM_STREAM_PLAYBACK; + else + stream = SND_PCM_STREAM_CAPTURE; + + snd_pcm_t * phandle; + int openMode = SND_PCM_ASYNC; + result = snd_pcm_open(&phandle, name, stream, openMode); + if (result < 0) + { + if (mode == OUTPUT) + errorStream_ << "RtApiAlsa::probeDeviceOpen: pcm device (" << name << ") won't open for output."; + else + errorStream_ << "RtApiAlsa::probeDeviceOpen: pcm device (" << name << ") won't open for input."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Fill the parameter structure. + snd_pcm_hw_params_t * hw_params; + snd_pcm_hw_params_alloca(&hw_params); + result = snd_pcm_hw_params_any(phandle, hw_params); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error getting pcm device (" << name << ") parameters, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + +#if defined(__RTAUDIO_DEBUG__) + fprintf(stderr, "\nRtApiAlsa: dump hardware params just after device open:\n\n"); + snd_pcm_hw_params_dump(hw_params, out); +#endif + + // Set access ... check user preference. + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + { + stream_.userInterleaved = false; + result = snd_pcm_hw_params_set_access(phandle, hw_params, SND_PCM_ACCESS_RW_NONINTERLEAVED); + if (result < 0) + { + result = snd_pcm_hw_params_set_access(phandle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED); + stream_.deviceInterleaved[mode] = true; + } + else + stream_.deviceInterleaved[mode] = false; + } + else + { + stream_.userInterleaved = true; + result = snd_pcm_hw_params_set_access(phandle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED); + if (result < 0) + { + result = snd_pcm_hw_params_set_access(phandle, hw_params, SND_PCM_ACCESS_RW_NONINTERLEAVED); + stream_.deviceInterleaved[mode] = false; + } + else + stream_.deviceInterleaved[mode] = true; + } + + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error setting pcm device (" << name << ") access, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Determine how to set the device format. + stream_.userFormat = format; + snd_pcm_format_t deviceFormat = SND_PCM_FORMAT_UNKNOWN; + + if (format == RTAUDIO_SINT8) + deviceFormat = SND_PCM_FORMAT_S8; + else if (format == RTAUDIO_SINT16) + deviceFormat = SND_PCM_FORMAT_S16; + else if (format == RTAUDIO_SINT24) + deviceFormat = SND_PCM_FORMAT_S24; + else if (format == RTAUDIO_SINT32) + deviceFormat = SND_PCM_FORMAT_S32; + else if (format == RTAUDIO_FLOAT32) + deviceFormat = SND_PCM_FORMAT_FLOAT; + else if (format == RTAUDIO_FLOAT64) + deviceFormat = SND_PCM_FORMAT_FLOAT64; + + if (snd_pcm_hw_params_test_format(phandle, hw_params, deviceFormat) == 0) + { + stream_.deviceFormat[mode] = format; + goto setFormat; + } + + // The user requested format is not natively supported by the device. + deviceFormat = SND_PCM_FORMAT_FLOAT64; + if (snd_pcm_hw_params_test_format(phandle, hw_params, deviceFormat) == 0) + { + stream_.deviceFormat[mode] = RTAUDIO_FLOAT64; + goto setFormat; + } + + deviceFormat = SND_PCM_FORMAT_FLOAT; + if (snd_pcm_hw_params_test_format(phandle, hw_params, deviceFormat) == 0) + { + stream_.deviceFormat[mode] = RTAUDIO_FLOAT32; + goto setFormat; + } + + deviceFormat = SND_PCM_FORMAT_S32; + if (snd_pcm_hw_params_test_format(phandle, hw_params, deviceFormat) == 0) + { + stream_.deviceFormat[mode] = RTAUDIO_SINT32; + goto setFormat; + } + + deviceFormat = SND_PCM_FORMAT_S24; + if (snd_pcm_hw_params_test_format(phandle, hw_params, deviceFormat) == 0) + { + stream_.deviceFormat[mode] = RTAUDIO_SINT24; + goto setFormat; + } + + deviceFormat = SND_PCM_FORMAT_S16; + if (snd_pcm_hw_params_test_format(phandle, hw_params, deviceFormat) == 0) + { + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + goto setFormat; + } + + deviceFormat = SND_PCM_FORMAT_S8; + if (snd_pcm_hw_params_test_format(phandle, hw_params, deviceFormat) == 0) + { + stream_.deviceFormat[mode] = RTAUDIO_SINT8; + goto setFormat; + } + + // If we get here, no supported format was found. + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: pcm device " << device << " data format not supported by RtAudio."; + errorText_ = errorStream_.str(); + return FAILURE; + +setFormat: + result = snd_pcm_hw_params_set_format(phandle, hw_params, deviceFormat); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error setting pcm device (" << name << ") data format, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Determine whether byte-swaping is necessary. + stream_.doByteSwap[mode] = false; + if (deviceFormat != SND_PCM_FORMAT_S8) + { + result = snd_pcm_format_cpu_endian(deviceFormat); + if (result == 0) + stream_.doByteSwap[mode] = true; + else if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error getting pcm device (" << name << ") endian-ness, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + + // Set the sample rate. + result = snd_pcm_hw_params_set_rate_near(phandle, hw_params, (unsigned int *) &sampleRate, 0); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error setting sample rate on device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Determine the number of channels for this device. We support a possible + // minimum device channel number > than the value requested by the user. + stream_.nUserChannels[mode] = channels; + unsigned int value; + result = snd_pcm_hw_params_get_channels_max(hw_params, &value); + unsigned int deviceChannels = value; + if (result < 0 || deviceChannels < channels + firstChannel) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: requested channel parameters not supported by device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + result = snd_pcm_hw_params_get_channels_min(hw_params, &value); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error getting minimum channels for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + deviceChannels = value; + if (deviceChannels < channels + firstChannel) deviceChannels = channels + firstChannel; + stream_.nDeviceChannels[mode] = deviceChannels; + + // Set the device channels. + result = snd_pcm_hw_params_set_channels(phandle, hw_params, deviceChannels); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error setting channels for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Set the buffer (or period) size. + int dir = 0; + snd_pcm_uframes_t periodSize = *bufferSize; + result = snd_pcm_hw_params_set_period_size_near(phandle, hw_params, &periodSize, &dir); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error setting period size for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + *bufferSize = periodSize; + + // Set the buffer number, which in ALSA is referred to as the "period". + unsigned int periods = 0; + if (options && options->flags & RTAUDIO_MINIMIZE_LATENCY) periods = 2; + if (options && options->numberOfBuffers > 0) periods = options->numberOfBuffers; + if (periods < 2) periods = 4; // a fairly safe default value + result = snd_pcm_hw_params_set_periods_near(phandle, hw_params, &periods, &dir); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error setting periods for device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // If attempting to setup a duplex stream, the bufferSize parameter + // MUST be the same in both directions! + if (stream_.mode == OUTPUT && mode == INPUT && *bufferSize != stream_.bufferSize) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: system error setting buffer size for duplex stream on device (" << name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + stream_.bufferSize = *bufferSize; + + // Install the hardware configuration + result = snd_pcm_hw_params(phandle, hw_params); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error installing hardware configuration on device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + +#if defined(__RTAUDIO_DEBUG__) + fprintf(stderr, "\nRtApiAlsa: dump hardware params after installation:\n\n"); + snd_pcm_hw_params_dump(hw_params, out); +#endif + + // Set the software configuration to fill buffers with zeros and prevent device stopping on xruns. + snd_pcm_sw_params_t * sw_params = NULL; + snd_pcm_sw_params_alloca(&sw_params); + snd_pcm_sw_params_current(phandle, sw_params); + snd_pcm_sw_params_set_start_threshold(phandle, sw_params, *bufferSize); + snd_pcm_sw_params_set_stop_threshold(phandle, sw_params, ULONG_MAX); + snd_pcm_sw_params_set_silence_threshold(phandle, sw_params, 0); + + // The following two settings were suggested by Theo Veenker + //snd_pcm_sw_params_set_avail_min( phandle, sw_params, *bufferSize ); + //snd_pcm_sw_params_set_xfer_align( phandle, sw_params, 1 ); + + // here are two options for a fix + //snd_pcm_sw_params_set_silence_size( phandle, sw_params, ULONG_MAX ); + snd_pcm_uframes_t val; + snd_pcm_sw_params_get_boundary(sw_params, &val); + snd_pcm_sw_params_set_silence_size(phandle, sw_params, val); + + result = snd_pcm_sw_params(phandle, sw_params); + if (result < 0) + { + snd_pcm_close(phandle); + errorStream_ << "RtApiAlsa::probeDeviceOpen: error installing software configuration on device (" << name << "), " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + return FAILURE; + } + +#if defined(__RTAUDIO_DEBUG__) + fprintf(stderr, "\nRtApiAlsa: dump software params after installation:\n\n"); + snd_pcm_sw_params_dump(sw_params, out); +#endif + + // Set flags for buffer conversion + stream_.doConvertBuffer[mode] = false; + if (stream_.userFormat != stream_.deviceFormat[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.nUserChannels[mode] < stream_.nDeviceChannels[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.userInterleaved != stream_.deviceInterleaved[mode] && stream_.nUserChannels[mode] > 1) + stream_.doConvertBuffer[mode] = true; + + // Allocate the ApiHandle if necessary and then save. + AlsaHandle * apiInfo = 0; + if (stream_.apiHandle == 0) + { + try + { + apiInfo = (AlsaHandle *) new AlsaHandle; + } + catch (std::bad_alloc &) + { + errorText_ = "RtApiAlsa::probeDeviceOpen: error allocating AlsaHandle memory."; + goto error; + } + + if (pthread_cond_init(&apiInfo->runnable_cv, NULL)) + { + errorText_ = "RtApiAlsa::probeDeviceOpen: error initializing pthread condition variable."; + goto error; + } + + stream_.apiHandle = (void *) apiInfo; + apiInfo->handles[0] = 0; + apiInfo->handles[1] = 0; + } + else + { + apiInfo = (AlsaHandle *) stream_.apiHandle; + } + apiInfo->handles[mode] = phandle; + phandle = 0; + + // Allocate necessary internal buffers. + unsigned long bufferBytes; + bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes(stream_.userFormat); + stream_.userBuffer[mode] = (char *) calloc(bufferBytes, 1); + if (stream_.userBuffer[mode] == NULL) + { + errorText_ = "RtApiAlsa::probeDeviceOpen: error allocating user buffer memory."; + goto error; + } + + if (stream_.doConvertBuffer[mode]) + { + + bool makeBuffer = true; + bufferBytes = stream_.nDeviceChannels[mode] * formatBytes(stream_.deviceFormat[mode]); + if (mode == INPUT) + { + if (stream_.mode == OUTPUT && stream_.deviceBuffer) + { + unsigned long bytesOut = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + if (bufferBytes <= bytesOut) makeBuffer = false; + } + } + + if (makeBuffer) + { + bufferBytes *= *bufferSize; + if (stream_.deviceBuffer) free(stream_.deviceBuffer); + stream_.deviceBuffer = (char *) calloc(bufferBytes, 1); + if (stream_.deviceBuffer == NULL) + { + errorText_ = "RtApiAlsa::probeDeviceOpen: error allocating device buffer memory."; + goto error; + } + } + } + + stream_.sampleRate = sampleRate; + stream_.nBuffers = periods; + stream_.device[mode] = device; + stream_.state = STREAM_STOPPED; + + // Setup the buffer conversion information structure. + if (stream_.doConvertBuffer[mode]) setConvertInfo(mode, firstChannel); + + // Setup thread if necessary. + if (stream_.mode == OUTPUT && mode == INPUT) + { + // We had already set up an output stream. + stream_.mode = DUPLEX; + // Link the streams if possible. + apiInfo->synchronized = false; + if (snd_pcm_link(apiInfo->handles[0], apiInfo->handles[1]) == 0) + apiInfo->synchronized = true; + else + { + errorText_ = "RtApiAlsa::probeDeviceOpen: unable to synchronize input and output devices."; + error(RtAudioError::WARNING); + } + } + else + { + stream_.mode = mode; + + // Setup callback thread. + stream_.callbackInfo.object = (void *) this; + + // Set the thread attributes for joinable and realtime scheduling + // priority (optional). The higher priority will only take affect + // if the program is run as root or suid. Note, under Linux + // processes with CAP_SYS_NICE privilege, a user can change + // scheduling policy and priority (thus need not be root). See + // POSIX "capabilities". + pthread_attr_t attr; + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); +#ifdef SCHED_RR // Undefined with some OSes (e.g. NetBSD 1.6.x with GNU Pthread) + if (options && options->flags & RTAUDIO_SCHEDULE_REALTIME) + { + stream_.callbackInfo.doRealtime = true; + struct sched_param param; + int priority = options->priority; + int min = sched_get_priority_min(SCHED_RR); + int max = sched_get_priority_max(SCHED_RR); + if (priority < min) + priority = min; + else if (priority > max) + priority = max; + param.sched_priority = priority; + + // Set the policy BEFORE the priority. Otherwise it fails. + pthread_attr_setschedpolicy(&attr, SCHED_RR); + pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); + // This is definitely required. Otherwise it fails. + pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED); + pthread_attr_setschedparam(&attr, ¶m); + } + else + pthread_attr_setschedpolicy(&attr, SCHED_OTHER); +#else + pthread_attr_setschedpolicy(&attr, SCHED_OTHER); +#endif + + stream_.callbackInfo.isRunning = true; + result = pthread_create(&stream_.callbackInfo.thread, &attr, alsaCallbackHandler, &stream_.callbackInfo); + pthread_attr_destroy(&attr); + if (result) + { + // Failed. Try instead with default attributes. + result = pthread_create(&stream_.callbackInfo.thread, NULL, alsaCallbackHandler, &stream_.callbackInfo); + if (result) + { + stream_.callbackInfo.isRunning = false; + errorText_ = "RtApiAlsa::error creating callback thread!"; + goto error; + } + } + } + + return SUCCESS; + +error: + if (apiInfo) + { + pthread_cond_destroy(&apiInfo->runnable_cv); + if (apiInfo->handles[0]) snd_pcm_close(apiInfo->handles[0]); + if (apiInfo->handles[1]) snd_pcm_close(apiInfo->handles[1]); + delete apiInfo; + stream_.apiHandle = 0; + } + + if (phandle) snd_pcm_close(phandle); + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.state = STREAM_CLOSED; + return FAILURE; +} + +void RtApiAlsa ::closeStream() +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiAlsa::closeStream(): no open stream to close!"; + error(RtAudioError::WARNING); + return; + } + + AlsaHandle * apiInfo = (AlsaHandle *) stream_.apiHandle; + stream_.callbackInfo.isRunning = false; + MUTEX_LOCK(&stream_.mutex); + if (stream_.state == STREAM_STOPPED) + { + apiInfo->runnable = true; + pthread_cond_signal(&apiInfo->runnable_cv); + } + MUTEX_UNLOCK(&stream_.mutex); + pthread_join(stream_.callbackInfo.thread, NULL); + + if (stream_.state == STREAM_RUNNING) + { + stream_.state = STREAM_STOPPED; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + snd_pcm_drop(apiInfo->handles[0]); + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + snd_pcm_drop(apiInfo->handles[1]); + } + + if (apiInfo) + { + pthread_cond_destroy(&apiInfo->runnable_cv); + if (apiInfo->handles[0]) snd_pcm_close(apiInfo->handles[0]); + if (apiInfo->handles[1]) snd_pcm_close(apiInfo->handles[1]); + delete apiInfo; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.mode = UNINITIALIZED; + stream_.state = STREAM_CLOSED; +} + +void RtApiAlsa ::startStream() +{ + // This method calls snd_pcm_prepare if the device isn't already in that state. + + verifyStream(); + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiAlsa::startStream(): the stream is already running!"; + error(RtAudioError::WARNING); + return; + } + + MUTEX_LOCK(&stream_.mutex); + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + int result = 0; + snd_pcm_state_t state; + AlsaHandle * apiInfo = (AlsaHandle *) stream_.apiHandle; + snd_pcm_t ** handle = (snd_pcm_t **) apiInfo->handles; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + state = snd_pcm_state(handle[0]); + if (state != SND_PCM_STATE_PREPARED) + { + result = snd_pcm_prepare(handle[0]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::startStream: error preparing output pcm device, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + } + + if ((stream_.mode == INPUT || stream_.mode == DUPLEX) && !apiInfo->synchronized) + { + result = snd_pcm_drop(handle[1]); // fix to remove stale data received since device has been open + state = snd_pcm_state(handle[1]); + if (state != SND_PCM_STATE_PREPARED) + { + result = snd_pcm_prepare(handle[1]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::startStream: error preparing input pcm device, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + } + + stream_.state = STREAM_RUNNING; + +unlock: + apiInfo->runnable = true; + pthread_cond_signal(&apiInfo->runnable_cv); + MUTEX_UNLOCK(&stream_.mutex); + + if (result >= 0) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiAlsa ::stopStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiAlsa::stopStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + stream_.state = STREAM_STOPPED; + MUTEX_LOCK(&stream_.mutex); + + int result = 0; + AlsaHandle * apiInfo = (AlsaHandle *) stream_.apiHandle; + snd_pcm_t ** handle = (snd_pcm_t **) apiInfo->handles; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + if (apiInfo->synchronized) + result = snd_pcm_drop(handle[0]); + else + result = snd_pcm_drain(handle[0]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::stopStream: error draining output pcm device, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + if ((stream_.mode == INPUT || stream_.mode == DUPLEX) && !apiInfo->synchronized) + { + result = snd_pcm_drop(handle[1]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::stopStream: error stopping input pcm device, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + +unlock: + apiInfo->runnable = false; // fixes high CPU usage when stopped + MUTEX_UNLOCK(&stream_.mutex); + + if (result >= 0) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiAlsa ::abortStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiAlsa::abortStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + stream_.state = STREAM_STOPPED; + MUTEX_LOCK(&stream_.mutex); + + int result = 0; + AlsaHandle * apiInfo = (AlsaHandle *) stream_.apiHandle; + snd_pcm_t ** handle = (snd_pcm_t **) apiInfo->handles; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + result = snd_pcm_drop(handle[0]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::abortStream: error aborting output pcm device, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + + if ((stream_.mode == INPUT || stream_.mode == DUPLEX) && !apiInfo->synchronized) + { + result = snd_pcm_drop(handle[1]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::abortStream: error aborting input pcm device, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + +unlock: + apiInfo->runnable = false; // fixes high CPU usage when stopped + MUTEX_UNLOCK(&stream_.mutex); + + if (result >= 0) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiAlsa ::callbackEvent() +{ + AlsaHandle * apiInfo = (AlsaHandle *) stream_.apiHandle; + if (stream_.state == STREAM_STOPPED) + { + MUTEX_LOCK(&stream_.mutex); + while (!apiInfo->runnable) + pthread_cond_wait(&apiInfo->runnable_cv, &stream_.mutex); + + if (stream_.state != STREAM_RUNNING) + { + MUTEX_UNLOCK(&stream_.mutex); + return; + } + MUTEX_UNLOCK(&stream_.mutex); + } + + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiAlsa::callbackEvent(): the stream is closed ... this shouldn't happen!"; + error(RtAudioError::WARNING); + return; + } + + int doStopStream = 0; + RtAudioCallback callback = (RtAudioCallback) stream_.callbackInfo.callback; + double streamTime = getStreamTime(); + RtAudioStreamStatus status = 0; + if (stream_.mode != INPUT && apiInfo->xrun[0] == true) + { + status |= RTAUDIO_OUTPUT_UNDERFLOW; + apiInfo->xrun[0] = false; + } + if (stream_.mode != OUTPUT && apiInfo->xrun[1] == true) + { + status |= RTAUDIO_INPUT_OVERFLOW; + apiInfo->xrun[1] = false; + } + doStopStream = callback(stream_.userBuffer[0], stream_.userBuffer[1], + stream_.bufferSize, streamTime, status, stream_.callbackInfo.userData); + + if (doStopStream == 2) + { + abortStream(); + return; + } + + MUTEX_LOCK(&stream_.mutex); + + // The state might change while waiting on a mutex. + if (stream_.state == STREAM_STOPPED) goto unlock; + + int result; + char * buffer; + int channels; + snd_pcm_t ** handle; + snd_pcm_sframes_t frames; + RtAudioFormat format; + handle = (snd_pcm_t **) apiInfo->handles; + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + + // Setup parameters. + if (stream_.doConvertBuffer[1]) + { + buffer = stream_.deviceBuffer; + channels = stream_.nDeviceChannels[1]; + format = stream_.deviceFormat[1]; + } + else + { + buffer = stream_.userBuffer[1]; + channels = stream_.nUserChannels[1]; + format = stream_.userFormat; + } + + // Read samples from device in interleaved/non-interleaved format. + if (stream_.deviceInterleaved[1]) + result = snd_pcm_readi(handle[1], buffer, stream_.bufferSize); + else + { + void * bufs[channels]; + size_t offset = stream_.bufferSize * formatBytes(format); + for (int i = 0; i < channels; i++) + bufs[i] = (void *) (buffer + (i * offset)); + result = snd_pcm_readn(handle[1], bufs, stream_.bufferSize); + } + + if (result < (int) stream_.bufferSize) + { + // Either an error or overrun occured. + if (result == -EPIPE) + { + snd_pcm_state_t state = snd_pcm_state(handle[1]); + if (state == SND_PCM_STATE_XRUN) + { + apiInfo->xrun[1] = true; + result = snd_pcm_prepare(handle[1]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::callbackEvent: error preparing device after overrun, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + } + } + else + { + errorStream_ << "RtApiAlsa::callbackEvent: error, current state is " << snd_pcm_state_name(state) << ", " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + } + } + else + { + errorStream_ << "RtApiAlsa::callbackEvent: audio read error, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + } + error(RtAudioError::WARNING); + goto tryOutput; + } + + // Do byte swapping if necessary. + if (stream_.doByteSwap[1]) + byteSwapBuffer(buffer, stream_.bufferSize * channels, format); + + // Do buffer conversion if necessary. + if (stream_.doConvertBuffer[1]) + convertBuffer(stream_.userBuffer[1], stream_.deviceBuffer, stream_.convertInfo[1]); + + // Check stream latency + result = snd_pcm_delay(handle[1], &frames); + if (result == 0 && frames > 0) stream_.latency[1] = frames; + } + +tryOutput: + + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + // Setup parameters and do buffer conversion if necessary. + if (stream_.doConvertBuffer[0]) + { + buffer = stream_.deviceBuffer; + convertBuffer(buffer, stream_.userBuffer[0], stream_.convertInfo[0]); + channels = stream_.nDeviceChannels[0]; + format = stream_.deviceFormat[0]; + } + else + { + buffer = stream_.userBuffer[0]; + channels = stream_.nUserChannels[0]; + format = stream_.userFormat; + } + + // Do byte swapping if necessary. + if (stream_.doByteSwap[0]) + byteSwapBuffer(buffer, stream_.bufferSize * channels, format); + + // Write samples to device in interleaved/non-interleaved format. + if (stream_.deviceInterleaved[0]) + result = snd_pcm_writei(handle[0], buffer, stream_.bufferSize); + else + { + void * bufs[channels]; + size_t offset = stream_.bufferSize * formatBytes(format); + for (int i = 0; i < channels; i++) + bufs[i] = (void *) (buffer + (i * offset)); + result = snd_pcm_writen(handle[0], bufs, stream_.bufferSize); + } + + if (result < (int) stream_.bufferSize) + { + // Either an error or underrun occured. + if (result == -EPIPE) + { + snd_pcm_state_t state = snd_pcm_state(handle[0]); + if (state == SND_PCM_STATE_XRUN) + { + apiInfo->xrun[0] = true; + result = snd_pcm_prepare(handle[0]); + if (result < 0) + { + errorStream_ << "RtApiAlsa::callbackEvent: error preparing device after underrun, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + } + else + errorText_ = "RtApiAlsa::callbackEvent: audio write error, underrun."; + } + else + { + errorStream_ << "RtApiAlsa::callbackEvent: error, current state is " << snd_pcm_state_name(state) << ", " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + } + } + else + { + errorStream_ << "RtApiAlsa::callbackEvent: audio write error, " << snd_strerror(result) << "."; + errorText_ = errorStream_.str(); + } + error(RtAudioError::WARNING); + goto unlock; + } + + // Check stream latency + result = snd_pcm_delay(handle[0], &frames); + if (result == 0 && frames > 0) stream_.latency[0] = frames; + } + +unlock: + MUTEX_UNLOCK(&stream_.mutex); + + RtApi::tickStreamTime(); + if (doStopStream == 1) this->stopStream(); +} + +static void * alsaCallbackHandler(void * ptr) +{ + CallbackInfo * info = (CallbackInfo *) ptr; + RtApiAlsa * object = (RtApiAlsa *) info->object; + bool * isRunning = &info->isRunning; + +#ifdef SCHED_RR // Undefined with some OSes (e.g. NetBSD 1.6.x with GNU Pthread) + if (info->doRealtime) + { + std::cerr << "RtAudio alsa: " << (sched_getscheduler(0) == SCHED_RR ? "" : "_NOT_ ") << "running realtime scheduling" << std::endl; + } +#endif + + while (*isRunning == true) + { + pthread_testcancel(); + object->callbackEvent(); + } + + pthread_exit(NULL); +} + +//******************** End of __LINUX_ALSA__ *********************// +#endif + +#if defined(__LINUX_PULSE__) + +// Code written by Peter Meerwald, pmeerw@pmeerw.net +// and Tristan Matthews. + +#include +#include +#include + +static const unsigned int SUPPORTED_SAMPLERATES[] = {8000, 16000, 22050, 32000, + 44100, 48000, 96000, 0}; + +struct rtaudio_pa_format_mapping_t +{ + RtAudioFormat rtaudio_format; + pa_sample_format_t pa_format; +}; + +static const rtaudio_pa_format_mapping_t supported_sampleformats[] = { + {RTAUDIO_SINT16, PA_SAMPLE_S16LE}, + {RTAUDIO_SINT32, PA_SAMPLE_S32LE}, + {RTAUDIO_FLOAT32, PA_SAMPLE_FLOAT32LE}, + {0, PA_SAMPLE_INVALID}}; + +struct PulseAudioHandle +{ + pa_simple * s_play; + pa_simple * s_rec; + pthread_t thread; + pthread_cond_t runnable_cv; + bool runnable; + PulseAudioHandle() + : s_play(0) + , s_rec(0) + , runnable(false) + { + } +}; + +RtApiPulse::~RtApiPulse() +{ + if (stream_.state != STREAM_CLOSED) + closeStream(); +} + +unsigned int RtApiPulse::getDeviceCount(void) +{ + return 1; +} + +RtAudio::DeviceInfo RtApiPulse::getDeviceInfo(unsigned int /*device*/) +{ + RtAudio::DeviceInfo info; + info.probed = true; + info.name = "PulseAudio"; + info.outputChannels = 2; + info.inputChannels = 2; + info.duplexChannels = 2; + info.isDefaultOutput = true; + info.isDefaultInput = true; + + for (const unsigned int * sr = SUPPORTED_SAMPLERATES; *sr; ++sr) + info.sampleRates.push_back(*sr); + + info.preferredSampleRate = 48000; + info.nativeFormats = RTAUDIO_SINT16 | RTAUDIO_SINT32 | RTAUDIO_FLOAT32; + + return info; +} + +static void * pulseaudio_callback(void * user) +{ + CallbackInfo * cbi = static_cast(user); + RtApiPulse * context = static_cast(cbi->object); + volatile bool * isRunning = &cbi->isRunning; + +#ifdef SCHED_RR // Undefined with some OSes (e.g. NetBSD 1.6.x with GNU Pthread) + if (cbi->doRealtime) + { + std::cerr << "RtAudio pulse: " << (sched_getscheduler(0) == SCHED_RR ? "" : "_NOT_ ") << "running realtime scheduling" << std::endl; + } +#endif + + while (*isRunning) + { + pthread_testcancel(); + context->callbackEvent(); + } + + pthread_exit(NULL); +} + +void RtApiPulse::closeStream(void) +{ + PulseAudioHandle * pah = static_cast(stream_.apiHandle); + + stream_.callbackInfo.isRunning = false; + if (pah) + { + MUTEX_LOCK(&stream_.mutex); + if (stream_.state == STREAM_STOPPED) + { + pah->runnable = true; + pthread_cond_signal(&pah->runnable_cv); + } + MUTEX_UNLOCK(&stream_.mutex); + + pthread_join(pah->thread, 0); + if (pah->s_play) + { + pa_simple_flush(pah->s_play, NULL); + pa_simple_free(pah->s_play); + } + if (pah->s_rec) + pa_simple_free(pah->s_rec); + + pthread_cond_destroy(&pah->runnable_cv); + delete pah; + stream_.apiHandle = 0; + } + + if (stream_.userBuffer[0]) + { + free(stream_.userBuffer[0]); + stream_.userBuffer[0] = 0; + } + if (stream_.userBuffer[1]) + { + free(stream_.userBuffer[1]); + stream_.userBuffer[1] = 0; + } + + stream_.state = STREAM_CLOSED; + stream_.mode = UNINITIALIZED; +} + +void RtApiPulse::callbackEvent(void) +{ + PulseAudioHandle * pah = static_cast(stream_.apiHandle); + + if (stream_.state == STREAM_STOPPED) + { + MUTEX_LOCK(&stream_.mutex); + while (!pah->runnable) + pthread_cond_wait(&pah->runnable_cv, &stream_.mutex); + + if (stream_.state != STREAM_RUNNING) + { + MUTEX_UNLOCK(&stream_.mutex); + return; + } + MUTEX_UNLOCK(&stream_.mutex); + } + + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiPulse::callbackEvent(): the stream is closed ... " + "this shouldn't happen!"; + error(RtAudioError::WARNING); + return; + } + + RtAudioCallback callback = (RtAudioCallback) stream_.callbackInfo.callback; + double streamTime = getStreamTime(); + RtAudioStreamStatus status = 0; + int doStopStream = callback(stream_.userBuffer[OUTPUT], stream_.userBuffer[INPUT], + stream_.bufferSize, streamTime, status, + stream_.callbackInfo.userData); + + if (doStopStream == 2) + { + abortStream(); + return; + } + + MUTEX_LOCK(&stream_.mutex); + void * pulse_in = stream_.doConvertBuffer[INPUT] ? stream_.deviceBuffer : stream_.userBuffer[INPUT]; + void * pulse_out = stream_.doConvertBuffer[OUTPUT] ? stream_.deviceBuffer : stream_.userBuffer[OUTPUT]; + + if (stream_.state != STREAM_RUNNING) + goto unlock; + + int pa_error; + size_t bytes; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + if (stream_.doConvertBuffer[OUTPUT]) + { + convertBuffer(stream_.deviceBuffer, + stream_.userBuffer[OUTPUT], + stream_.convertInfo[OUTPUT]); + bytes = stream_.nDeviceChannels[OUTPUT] * stream_.bufferSize * formatBytes(stream_.deviceFormat[OUTPUT]); + } + else + bytes = stream_.nUserChannels[OUTPUT] * stream_.bufferSize * formatBytes(stream_.userFormat); + + if (pa_simple_write(pah->s_play, pulse_out, bytes, &pa_error) < 0) + { + errorStream_ << "RtApiPulse::callbackEvent: audio write error, " << pa_strerror(pa_error) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + } + } + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + if (stream_.doConvertBuffer[INPUT]) + bytes = stream_.nDeviceChannels[INPUT] * stream_.bufferSize * formatBytes(stream_.deviceFormat[INPUT]); + else + bytes = stream_.nUserChannels[INPUT] * stream_.bufferSize * formatBytes(stream_.userFormat); + + if (pa_simple_read(pah->s_rec, pulse_in, bytes, &pa_error) < 0) + { + errorStream_ << "RtApiPulse::callbackEvent: audio read error, " << pa_strerror(pa_error) << "."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + } + if (stream_.doConvertBuffer[INPUT]) + { + convertBuffer(stream_.userBuffer[INPUT], + stream_.deviceBuffer, + stream_.convertInfo[INPUT]); + } + } + +unlock: + MUTEX_UNLOCK(&stream_.mutex); + RtApi::tickStreamTime(); + + if (doStopStream == 1) + stopStream(); +} + +void RtApiPulse::startStream(void) +{ + PulseAudioHandle * pah = static_cast(stream_.apiHandle); + + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiPulse::startStream(): the stream is not open!"; + error(RtAudioError::INVALID_USE); + return; + } + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiPulse::startStream(): the stream is already running!"; + error(RtAudioError::WARNING); + return; + } + + MUTEX_LOCK(&stream_.mutex); + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + stream_.state = STREAM_RUNNING; + + pah->runnable = true; + pthread_cond_signal(&pah->runnable_cv); + MUTEX_UNLOCK(&stream_.mutex); +} + +void RtApiPulse::stopStream(void) +{ + PulseAudioHandle * pah = static_cast(stream_.apiHandle); + + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiPulse::stopStream(): the stream is not open!"; + error(RtAudioError::INVALID_USE); + return; + } + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiPulse::stopStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + stream_.state = STREAM_STOPPED; + MUTEX_LOCK(&stream_.mutex); + + if (pah && pah->s_play) + { + int pa_error; + if (pa_simple_drain(pah->s_play, &pa_error) < 0) + { + errorStream_ << "RtApiPulse::stopStream: error draining output device, " << pa_strerror(pa_error) << "."; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + } + + stream_.state = STREAM_STOPPED; + MUTEX_UNLOCK(&stream_.mutex); +} + +void RtApiPulse::abortStream(void) +{ + PulseAudioHandle * pah = static_cast(stream_.apiHandle); + + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiPulse::abortStream(): the stream is not open!"; + error(RtAudioError::INVALID_USE); + return; + } + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiPulse::abortStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + stream_.state = STREAM_STOPPED; + MUTEX_LOCK(&stream_.mutex); + + if (pah && pah->s_play) + { + int pa_error; + if (pa_simple_flush(pah->s_play, &pa_error) < 0) + { + errorStream_ << "RtApiPulse::abortStream: error flushing output device, " << pa_strerror(pa_error) << "."; + errorText_ = errorStream_.str(); + MUTEX_UNLOCK(&stream_.mutex); + error(RtAudioError::SYSTEM_ERROR); + return; + } + } + + stream_.state = STREAM_STOPPED; + MUTEX_UNLOCK(&stream_.mutex); +} + +bool RtApiPulse::probeDeviceOpen(unsigned int device, StreamMode mode, + unsigned int channels, unsigned int firstChannel, + unsigned int sampleRate, RtAudioFormat format, + unsigned int * bufferSize, RtAudio::StreamOptions * options) +{ + PulseAudioHandle * pah = 0; + unsigned long bufferBytes = 0; + pa_sample_spec ss; + + if (device != 0) return false; + if (mode != INPUT && mode != OUTPUT) return false; + if (channels != 1 && channels != 2) + { + errorText_ = "RtApiPulse::probeDeviceOpen: unsupported number of channels."; + return false; + } + ss.channels = channels; + + if (firstChannel != 0) return false; + + bool sr_found = false; + for (const unsigned int * sr = SUPPORTED_SAMPLERATES; *sr; ++sr) + { + if (sampleRate == *sr) + { + sr_found = true; + stream_.sampleRate = sampleRate; + ss.rate = sampleRate; + break; + } + } + if (!sr_found) + { + errorText_ = "RtApiPulse::probeDeviceOpen: unsupported sample rate."; + return false; + } + + bool sf_found = 0; + for (const rtaudio_pa_format_mapping_t * sf = supported_sampleformats; + sf->rtaudio_format && sf->pa_format != PA_SAMPLE_INVALID; ++sf) + { + if (format == sf->rtaudio_format) + { + sf_found = true; + stream_.userFormat = sf->rtaudio_format; + stream_.deviceFormat[mode] = stream_.userFormat; + ss.format = sf->pa_format; + break; + } + } + if (!sf_found) + { // Use internal data format conversion. + stream_.userFormat = format; + stream_.deviceFormat[mode] = RTAUDIO_FLOAT32; + ss.format = PA_SAMPLE_FLOAT32LE; + } + + // Set other stream parameters. + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + stream_.userInterleaved = false; + else + stream_.userInterleaved = true; + stream_.deviceInterleaved[mode] = true; + stream_.nBuffers = 1; + stream_.doByteSwap[mode] = false; + stream_.nUserChannels[mode] = channels; + stream_.nDeviceChannels[mode] = channels + firstChannel; + stream_.channelOffset[mode] = 0; + std::string streamName = "RtAudio"; + + // Set flags for buffer conversion. + stream_.doConvertBuffer[mode] = false; + if (stream_.userFormat != stream_.deviceFormat[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.nUserChannels[mode] < stream_.nDeviceChannels[mode]) + stream_.doConvertBuffer[mode] = true; + + // Allocate necessary internal buffers. + bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes(stream_.userFormat); + stream_.userBuffer[mode] = (char *) calloc(bufferBytes, 1); + if (stream_.userBuffer[mode] == NULL) + { + errorText_ = "RtApiPulse::probeDeviceOpen: error allocating user buffer memory."; + goto error; + } + stream_.bufferSize = *bufferSize; + + if (stream_.doConvertBuffer[mode]) + { + + bool makeBuffer = true; + bufferBytes = stream_.nDeviceChannels[mode] * formatBytes(stream_.deviceFormat[mode]); + if (mode == INPUT) + { + if (stream_.mode == OUTPUT && stream_.deviceBuffer) + { + unsigned long bytesOut = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + if (bufferBytes <= bytesOut) makeBuffer = false; + } + } + + if (makeBuffer) + { + bufferBytes *= *bufferSize; + if (stream_.deviceBuffer) free(stream_.deviceBuffer); + stream_.deviceBuffer = (char *) calloc(bufferBytes, 1); + if (stream_.deviceBuffer == NULL) + { + errorText_ = "RtApiPulse::probeDeviceOpen: error allocating device buffer memory."; + goto error; + } + } + } + + stream_.device[mode] = device; + + // Setup the buffer conversion information structure. + if (stream_.doConvertBuffer[mode]) setConvertInfo(mode, firstChannel); + + if (!stream_.apiHandle) + { + PulseAudioHandle * pah = new PulseAudioHandle; + if (!pah) + { + errorText_ = "RtApiPulse::probeDeviceOpen: error allocating memory for handle."; + goto error; + } + + stream_.apiHandle = pah; + if (pthread_cond_init(&pah->runnable_cv, NULL) != 0) + { + errorText_ = "RtApiPulse::probeDeviceOpen: error creating condition variable."; + goto error; + } + } + pah = static_cast(stream_.apiHandle); + + int error; + if (options && !options->streamName.empty()) streamName = options->streamName; + switch (mode) + { + case INPUT: + pa_buffer_attr buffer_attr; + buffer_attr.fragsize = bufferBytes; + buffer_attr.maxlength = -1; + + pah->s_rec = pa_simple_new(NULL, streamName.c_str(), PA_STREAM_RECORD, NULL, "Record", &ss, NULL, &buffer_attr, &error); + if (!pah->s_rec) + { + errorText_ = "RtApiPulse::probeDeviceOpen: error connecting input to PulseAudio server."; + goto error; + } + break; + case OUTPUT: + pah->s_play = pa_simple_new(NULL, streamName.c_str(), PA_STREAM_PLAYBACK, NULL, "Playback", &ss, NULL, NULL, &error); + if (!pah->s_play) + { + errorText_ = "RtApiPulse::probeDeviceOpen: error connecting output to PulseAudio server."; + goto error; + } + break; + default: + goto error; + } + + if (stream_.mode == UNINITIALIZED) + stream_.mode = mode; + else if (stream_.mode == mode) + goto error; + else + stream_.mode = DUPLEX; + + if (!stream_.callbackInfo.isRunning) + { + stream_.callbackInfo.object = this; + + stream_.state = STREAM_STOPPED; + // Set the thread attributes for joinable and realtime scheduling + // priority (optional). The higher priority will only take affect + // if the program is run as root or suid. Note, under Linux + // processes with CAP_SYS_NICE privilege, a user can change + // scheduling policy and priority (thus need not be root). See + // POSIX "capabilities". + pthread_attr_t attr; + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); +#ifdef SCHED_RR // Undefined with some OSes (e.g. NetBSD 1.6.x with GNU Pthread) + if (options && options->flags & RTAUDIO_SCHEDULE_REALTIME) + { + stream_.callbackInfo.doRealtime = true; + struct sched_param param; + int priority = options->priority; + int min = sched_get_priority_min(SCHED_RR); + int max = sched_get_priority_max(SCHED_RR); + if (priority < min) + priority = min; + else if (priority > max) + priority = max; + param.sched_priority = priority; + + // Set the policy BEFORE the priority. Otherwise it fails. + pthread_attr_setschedpolicy(&attr, SCHED_RR); + pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); + // This is definitely required. Otherwise it fails. + pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED); + pthread_attr_setschedparam(&attr, ¶m); + } + else + pthread_attr_setschedpolicy(&attr, SCHED_OTHER); +#else + pthread_attr_setschedpolicy(&attr, SCHED_OTHER); +#endif + + stream_.callbackInfo.isRunning = true; + int result = pthread_create(&pah->thread, &attr, pulseaudio_callback, (void *) &stream_.callbackInfo); + pthread_attr_destroy(&attr); + if (result != 0) + { + // Failed. Try instead with default attributes. + result = pthread_create(&pah->thread, NULL, pulseaudio_callback, (void *) &stream_.callbackInfo); + if (result != 0) + { + stream_.callbackInfo.isRunning = false; + errorText_ = "RtApiPulse::probeDeviceOpen: error creating thread."; + goto error; + } + } + } + + return SUCCESS; + +error: + if (pah && stream_.callbackInfo.isRunning) + { + pthread_cond_destroy(&pah->runnable_cv); + delete pah; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.state = STREAM_CLOSED; + return FAILURE; +} + +//******************** End of __LINUX_PULSE__ *********************// +#endif + +#if defined(__LINUX_OSS__) + +#include +#include +#include +#include +#include +#include + +static void * ossCallbackHandler(void * ptr); + +// A structure to hold various information related to the OSS API +// implementation. +struct OssHandle +{ + int id[2]; // device ids + bool xrun[2]; + bool triggered; + pthread_cond_t runnable; + + OssHandle() + : triggered(false) + { + id[0] = 0; + id[1] = 0; + xrun[0] = false; + xrun[1] = false; + } +}; + +RtApiOss ::RtApiOss() +{ + // Nothing to do here. +} + +RtApiOss ::~RtApiOss() +{ + if (stream_.state != STREAM_CLOSED) closeStream(); +} + +unsigned int RtApiOss ::getDeviceCount(void) +{ + int mixerfd = open("/dev/mixer", O_RDWR, 0); + if (mixerfd == -1) + { + errorText_ = "RtApiOss::getDeviceCount: error opening '/dev/mixer'."; + error(RtAudioError::WARNING); + return 0; + } + + oss_sysinfo sysinfo; + if (ioctl(mixerfd, SNDCTL_SYSINFO, &sysinfo) == -1) + { + close(mixerfd); + errorText_ = "RtApiOss::getDeviceCount: error getting sysinfo, OSS version >= 4.0 is required."; + error(RtAudioError::WARNING); + return 0; + } + + close(mixerfd); + return sysinfo.numaudios; +} + +RtAudio::DeviceInfo RtApiOss ::getDeviceInfo(unsigned int device) +{ + RtAudio::DeviceInfo info; + info.probed = false; + + int mixerfd = open("/dev/mixer", O_RDWR, 0); + if (mixerfd == -1) + { + errorText_ = "RtApiOss::getDeviceInfo: error opening '/dev/mixer'."; + error(RtAudioError::WARNING); + return info; + } + + oss_sysinfo sysinfo; + int result = ioctl(mixerfd, SNDCTL_SYSINFO, &sysinfo); + if (result == -1) + { + close(mixerfd); + errorText_ = "RtApiOss::getDeviceInfo: error getting sysinfo, OSS version >= 4.0 is required."; + error(RtAudioError::WARNING); + return info; + } + + unsigned nDevices = sysinfo.numaudios; + if (nDevices == 0) + { + close(mixerfd); + errorText_ = "RtApiOss::getDeviceInfo: no devices found!"; + error(RtAudioError::INVALID_USE); + return info; + } + + if (device >= nDevices) + { + close(mixerfd); + errorText_ = "RtApiOss::getDeviceInfo: device ID is invalid!"; + error(RtAudioError::INVALID_USE); + return info; + } + + oss_audioinfo ainfo; + ainfo.dev = device; + result = ioctl(mixerfd, SNDCTL_AUDIOINFO, &ainfo); + close(mixerfd); + if (result == -1) + { + errorStream_ << "RtApiOss::getDeviceInfo: error getting device (" << ainfo.name << ") info."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Probe channels + if (ainfo.caps & PCM_CAP_OUTPUT) info.outputChannels = ainfo.max_channels; + if (ainfo.caps & PCM_CAP_INPUT) info.inputChannels = ainfo.max_channels; + if (ainfo.caps & PCM_CAP_DUPLEX) + { + if (info.outputChannels > 0 && info.inputChannels > 0 && ainfo.caps & PCM_CAP_DUPLEX) + info.duplexChannels = (info.outputChannels > info.inputChannels) ? info.inputChannels : info.outputChannels; + } + + // Probe data formats ... do for input + unsigned long mask = ainfo.iformats; + if (mask & AFMT_S16_LE || mask & AFMT_S16_BE) + info.nativeFormats |= RTAUDIO_SINT16; + if (mask & AFMT_S8) + info.nativeFormats |= RTAUDIO_SINT8; + if (mask & AFMT_S32_LE || mask & AFMT_S32_BE) + info.nativeFormats |= RTAUDIO_SINT32; +#ifdef AFMT_FLOAT + if (mask & AFMT_FLOAT) + info.nativeFormats |= RTAUDIO_FLOAT32; +#endif + if (mask & AFMT_S24_LE || mask & AFMT_S24_BE) + info.nativeFormats |= RTAUDIO_SINT24; + + // Check that we have at least one supported format + if (info.nativeFormats == 0) + { + errorStream_ << "RtApiOss::getDeviceInfo: device (" << ainfo.name << ") data format not supported by RtAudio."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + return info; + } + + // Probe the supported sample rates. + info.sampleRates.clear(); + if (ainfo.nrates) + { + for (unsigned int i = 0; i < ainfo.nrates; i++) + { + for (unsigned int k = 0; k < MAX_SAMPLE_RATES; k++) + { + if (ainfo.rates[i] == SAMPLE_RATES[k]) + { + info.sampleRates.push_back(SAMPLE_RATES[k]); + + if (!info.preferredSampleRate || (SAMPLE_RATES[k] <= 48000 && SAMPLE_RATES[k] > info.preferredSampleRate)) + info.preferredSampleRate = SAMPLE_RATES[k]; + + break; + } + } + } + } + else + { + // Check min and max rate values; + for (unsigned int k = 0; k < MAX_SAMPLE_RATES; k++) + { + if (ainfo.min_rate <= (int) SAMPLE_RATES[k] && ainfo.max_rate >= (int) SAMPLE_RATES[k]) + { + info.sampleRates.push_back(SAMPLE_RATES[k]); + + if (!info.preferredSampleRate || (SAMPLE_RATES[k] <= 48000 && SAMPLE_RATES[k] > info.preferredSampleRate)) + info.preferredSampleRate = SAMPLE_RATES[k]; + } + } + } + + if (info.sampleRates.size() == 0) + { + errorStream_ << "RtApiOss::getDeviceInfo: no supported sample rates found for device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + error(RtAudioError::WARNING); + } + else + { + info.probed = true; + info.name = ainfo.name; + } + + return info; +} + +bool RtApiOss ::probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options) +{ + int mixerfd = open("/dev/mixer", O_RDWR, 0); + if (mixerfd == -1) + { + errorText_ = "RtApiOss::probeDeviceOpen: error opening '/dev/mixer'."; + return FAILURE; + } + + oss_sysinfo sysinfo; + int result = ioctl(mixerfd, SNDCTL_SYSINFO, &sysinfo); + if (result == -1) + { + close(mixerfd); + errorText_ = "RtApiOss::probeDeviceOpen: error getting sysinfo, OSS version >= 4.0 is required."; + return FAILURE; + } + + unsigned nDevices = sysinfo.numaudios; + if (nDevices == 0) + { + // This should not happen because a check is made before this function is called. + close(mixerfd); + errorText_ = "RtApiOss::probeDeviceOpen: no devices found!"; + return FAILURE; + } + + if (device >= nDevices) + { + // This should not happen because a check is made before this function is called. + close(mixerfd); + errorText_ = "RtApiOss::probeDeviceOpen: device ID is invalid!"; + return FAILURE; + } + + oss_audioinfo ainfo; + ainfo.dev = device; + result = ioctl(mixerfd, SNDCTL_AUDIOINFO, &ainfo); + close(mixerfd); + if (result == -1) + { + errorStream_ << "RtApiOss::getDeviceInfo: error getting device (" << ainfo.name << ") info."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Check if device supports input or output + if ((mode == OUTPUT && !(ainfo.caps & PCM_CAP_OUTPUT)) || (mode == INPUT && !(ainfo.caps & PCM_CAP_INPUT))) + { + if (mode == OUTPUT) + errorStream_ << "RtApiOss::probeDeviceOpen: device (" << ainfo.name << ") does not support output."; + else + errorStream_ << "RtApiOss::probeDeviceOpen: device (" << ainfo.name << ") does not support input."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + int flags = 0; + OssHandle * handle = (OssHandle *) stream_.apiHandle; + if (mode == OUTPUT) + flags |= O_WRONLY; + else + { // mode == INPUT + if (stream_.mode == OUTPUT && stream_.device[0] == device) + { + // We just set the same device for playback ... close and reopen for duplex (OSS only). + close(handle->id[0]); + handle->id[0] = 0; + if (!(ainfo.caps & PCM_CAP_DUPLEX)) + { + errorStream_ << "RtApiOss::probeDeviceOpen: device (" << ainfo.name << ") does not support duplex mode."; + errorText_ = errorStream_.str(); + return FAILURE; + } + // Check that the number previously set channels is the same. + if (stream_.nUserChannels[0] != channels) + { + errorStream_ << "RtApiOss::probeDeviceOpen: input/output channels must be equal for OSS duplex device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + flags |= O_RDWR; + } + else + flags |= O_RDONLY; + } + + // Set exclusive access if specified. + if (options && options->flags & RTAUDIO_HOG_DEVICE) flags |= O_EXCL; + + // Try to open the device. + int fd; + fd = open(ainfo.devnode, flags, 0); + if (fd == -1) + { + if (errno == EBUSY) + errorStream_ << "RtApiOss::probeDeviceOpen: device (" << ainfo.name << ") is busy."; + else + errorStream_ << "RtApiOss::probeDeviceOpen: error opening device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // For duplex operation, specifically set this mode (this doesn't seem to work). + /* + if ( flags | O_RDWR ) { + result = ioctl( fd, SNDCTL_DSP_SETDUPLEX, NULL ); + if ( result == -1) { + errorStream_ << "RtApiOss::probeDeviceOpen: error setting duplex mode for device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + } + */ + + // Check the device channel support. + stream_.nUserChannels[mode] = channels; + if (ainfo.max_channels < (int) (channels + firstChannel)) + { + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: the device (" << ainfo.name << ") does not support requested channel parameters."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Set the number of channels. + int deviceChannels = channels + firstChannel; + result = ioctl(fd, SNDCTL_DSP_CHANNELS, &deviceChannels); + if (result == -1 || deviceChannels < (int) (channels + firstChannel)) + { + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: error setting channel parameters on device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + stream_.nDeviceChannels[mode] = deviceChannels; + + // Get the data format mask + int mask; + result = ioctl(fd, SNDCTL_DSP_GETFMTS, &mask); + if (result == -1) + { + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: error getting device (" << ainfo.name << ") data formats."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Determine how to set the device format. + stream_.userFormat = format; + int deviceFormat = -1; + stream_.doByteSwap[mode] = false; + if (format == RTAUDIO_SINT8) + { + if (mask & AFMT_S8) + { + deviceFormat = AFMT_S8; + stream_.deviceFormat[mode] = RTAUDIO_SINT8; + } + } + else if (format == RTAUDIO_SINT16) + { + if (mask & AFMT_S16_NE) + { + deviceFormat = AFMT_S16_NE; + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + } + else if (mask & AFMT_S16_OE) + { + deviceFormat = AFMT_S16_OE; + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + stream_.doByteSwap[mode] = true; + } + } + else if (format == RTAUDIO_SINT24) + { + if (mask & AFMT_S24_NE) + { + deviceFormat = AFMT_S24_NE; + stream_.deviceFormat[mode] = RTAUDIO_SINT24; + } + else if (mask & AFMT_S24_OE) + { + deviceFormat = AFMT_S24_OE; + stream_.deviceFormat[mode] = RTAUDIO_SINT24; + stream_.doByteSwap[mode] = true; + } + } + else if (format == RTAUDIO_SINT32) + { + if (mask & AFMT_S32_NE) + { + deviceFormat = AFMT_S32_NE; + stream_.deviceFormat[mode] = RTAUDIO_SINT32; + } + else if (mask & AFMT_S32_OE) + { + deviceFormat = AFMT_S32_OE; + stream_.deviceFormat[mode] = RTAUDIO_SINT32; + stream_.doByteSwap[mode] = true; + } + } + + if (deviceFormat == -1) + { + // The user requested format is not natively supported by the device. + if (mask & AFMT_S16_NE) + { + deviceFormat = AFMT_S16_NE; + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + } + else if (mask & AFMT_S32_NE) + { + deviceFormat = AFMT_S32_NE; + stream_.deviceFormat[mode] = RTAUDIO_SINT32; + } + else if (mask & AFMT_S24_NE) + { + deviceFormat = AFMT_S24_NE; + stream_.deviceFormat[mode] = RTAUDIO_SINT24; + } + else if (mask & AFMT_S16_OE) + { + deviceFormat = AFMT_S16_OE; + stream_.deviceFormat[mode] = RTAUDIO_SINT16; + stream_.doByteSwap[mode] = true; + } + else if (mask & AFMT_S32_OE) + { + deviceFormat = AFMT_S32_OE; + stream_.deviceFormat[mode] = RTAUDIO_SINT32; + stream_.doByteSwap[mode] = true; + } + else if (mask & AFMT_S24_OE) + { + deviceFormat = AFMT_S24_OE; + stream_.deviceFormat[mode] = RTAUDIO_SINT24; + stream_.doByteSwap[mode] = true; + } + else if (mask & AFMT_S8) + { + deviceFormat = AFMT_S8; + stream_.deviceFormat[mode] = RTAUDIO_SINT8; + } + } + + if (stream_.deviceFormat[mode] == 0) + { + // This really shouldn't happen ... + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: device (" << ainfo.name << ") data format not supported by RtAudio."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Set the data format. + int temp = deviceFormat; + result = ioctl(fd, SNDCTL_DSP_SETFMT, &deviceFormat); + if (result == -1 || deviceFormat != temp) + { + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: error setting data format on device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Attempt to set the buffer size. According to OSS, the minimum + // number of buffers is two. The supposed minimum buffer size is 16 + // bytes, so that will be our lower bound. The argument to this + // call is in the form 0xMMMMSSSS (hex), where the buffer size (in + // bytes) is given as 2^SSSS and the number of buffers as 2^MMMM. + // We'll check the actual value used near the end of the setup + // procedure. + int ossBufferBytes = *bufferSize * formatBytes(stream_.deviceFormat[mode]) * deviceChannels; + if (ossBufferBytes < 16) ossBufferBytes = 16; + int buffers = 0; + if (options) buffers = options->numberOfBuffers; + if (options && options->flags & RTAUDIO_MINIMIZE_LATENCY) buffers = 2; + if (buffers < 2) buffers = 3; + temp = ((int) buffers << 16) + (int) (log10((double) ossBufferBytes) / log10(2.0)); + result = ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &temp); + if (result == -1) + { + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: error setting buffer size on device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + stream_.nBuffers = buffers; + + // Save buffer size (in sample frames). + *bufferSize = ossBufferBytes / (formatBytes(stream_.deviceFormat[mode]) * deviceChannels); + stream_.bufferSize = *bufferSize; + + // Set the sample rate. + int srate = sampleRate; + result = ioctl(fd, SNDCTL_DSP_SPEED, &srate); + if (result == -1) + { + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: error setting sample rate (" << sampleRate << ") on device (" << ainfo.name << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + + // Verify the sample rate setup worked. + if (abs(srate - (int) sampleRate) > 100) + { + close(fd); + errorStream_ << "RtApiOss::probeDeviceOpen: device (" << ainfo.name << ") does not support sample rate (" << sampleRate << ")."; + errorText_ = errorStream_.str(); + return FAILURE; + } + stream_.sampleRate = sampleRate; + + if (mode == INPUT && stream_.mode == OUTPUT && stream_.device[0] == device) + { + // We're doing duplex setup here. + stream_.deviceFormat[0] = stream_.deviceFormat[1]; + stream_.nDeviceChannels[0] = deviceChannels; + } + + // Set interleaving parameters. + stream_.userInterleaved = true; + stream_.deviceInterleaved[mode] = true; + if (options && options->flags & RTAUDIO_NONINTERLEAVED) + stream_.userInterleaved = false; + + // Set flags for buffer conversion + stream_.doConvertBuffer[mode] = false; + if (stream_.userFormat != stream_.deviceFormat[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.nUserChannels[mode] < stream_.nDeviceChannels[mode]) + stream_.doConvertBuffer[mode] = true; + if (stream_.userInterleaved != stream_.deviceInterleaved[mode] && stream_.nUserChannels[mode] > 1) + stream_.doConvertBuffer[mode] = true; + + // Allocate the stream handles if necessary and then save. + if (stream_.apiHandle == 0) + { + try + { + handle = new OssHandle; + } + catch (std::bad_alloc &) + { + errorText_ = "RtApiOss::probeDeviceOpen: error allocating OssHandle memory."; + goto error; + } + + if (pthread_cond_init(&handle->runnable, NULL)) + { + errorText_ = "RtApiOss::probeDeviceOpen: error initializing pthread condition variable."; + goto error; + } + + stream_.apiHandle = (void *) handle; + } + else + { + handle = (OssHandle *) stream_.apiHandle; + } + handle->id[mode] = fd; + + // Allocate necessary internal buffers. + unsigned long bufferBytes; + bufferBytes = stream_.nUserChannels[mode] * *bufferSize * formatBytes(stream_.userFormat); + stream_.userBuffer[mode] = (char *) calloc(bufferBytes, 1); + if (stream_.userBuffer[mode] == NULL) + { + errorText_ = "RtApiOss::probeDeviceOpen: error allocating user buffer memory."; + goto error; + } + + if (stream_.doConvertBuffer[mode]) + { + + bool makeBuffer = true; + bufferBytes = stream_.nDeviceChannels[mode] * formatBytes(stream_.deviceFormat[mode]); + if (mode == INPUT) + { + if (stream_.mode == OUTPUT && stream_.deviceBuffer) + { + unsigned long bytesOut = stream_.nDeviceChannels[0] * formatBytes(stream_.deviceFormat[0]); + if (bufferBytes <= bytesOut) makeBuffer = false; + } + } + + if (makeBuffer) + { + bufferBytes *= *bufferSize; + if (stream_.deviceBuffer) free(stream_.deviceBuffer); + stream_.deviceBuffer = (char *) calloc(bufferBytes, 1); + if (stream_.deviceBuffer == NULL) + { + errorText_ = "RtApiOss::probeDeviceOpen: error allocating device buffer memory."; + goto error; + } + } + } + + stream_.device[mode] = device; + stream_.state = STREAM_STOPPED; + + // Setup the buffer conversion information structure. + if (stream_.doConvertBuffer[mode]) setConvertInfo(mode, firstChannel); + + // Setup thread if necessary. + if (stream_.mode == OUTPUT && mode == INPUT) + { + // We had already set up an output stream. + stream_.mode = DUPLEX; + if (stream_.device[0] == device) handle->id[0] = fd; + } + else + { + stream_.mode = mode; + + // Setup callback thread. + stream_.callbackInfo.object = (void *) this; + + // Set the thread attributes for joinable and realtime scheduling + // priority. The higher priority will only take affect if the + // program is run as root or suid. + pthread_attr_t attr; + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); +#ifdef SCHED_RR // Undefined with some OSes (e.g. NetBSD 1.6.x with GNU Pthread) + if (options && options->flags & RTAUDIO_SCHEDULE_REALTIME) + { + stream_.callbackInfo.doRealtime = true; + struct sched_param param; + int priority = options->priority; + int min = sched_get_priority_min(SCHED_RR); + int max = sched_get_priority_max(SCHED_RR); + if (priority < min) + priority = min; + else if (priority > max) + priority = max; + param.sched_priority = priority; + + // Set the policy BEFORE the priority. Otherwise it fails. + pthread_attr_setschedpolicy(&attr, SCHED_RR); + pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); + // This is definitely required. Otherwise it fails. + pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED); + pthread_attr_setschedparam(&attr, ¶m); + } + else + pthread_attr_setschedpolicy(&attr, SCHED_OTHER); +#else + pthread_attr_setschedpolicy(&attr, SCHED_OTHER); +#endif + + stream_.callbackInfo.isRunning = true; + result = pthread_create(&stream_.callbackInfo.thread, &attr, ossCallbackHandler, &stream_.callbackInfo); + pthread_attr_destroy(&attr); + if (result) + { + // Failed. Try instead with default attributes. + result = pthread_create(&stream_.callbackInfo.thread, NULL, ossCallbackHandler, &stream_.callbackInfo); + if (result) + { + stream_.callbackInfo.isRunning = false; + errorText_ = "RtApiOss::error creating callback thread!"; + goto error; + } + } + } + + return SUCCESS; + +error: + if (handle) + { + pthread_cond_destroy(&handle->runnable); + if (handle->id[0]) close(handle->id[0]); + if (handle->id[1]) close(handle->id[1]); + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.state = STREAM_CLOSED; + return FAILURE; +} + +void RtApiOss ::closeStream() +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiOss::closeStream(): no open stream to close!"; + error(RtAudioError::WARNING); + return; + } + + OssHandle * handle = (OssHandle *) stream_.apiHandle; + stream_.callbackInfo.isRunning = false; + MUTEX_LOCK(&stream_.mutex); + if (stream_.state == STREAM_STOPPED) + pthread_cond_signal(&handle->runnable); + MUTEX_UNLOCK(&stream_.mutex); + pthread_join(stream_.callbackInfo.thread, NULL); + + if (stream_.state == STREAM_RUNNING) + { + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + ioctl(handle->id[0], SNDCTL_DSP_HALT, 0); + else + ioctl(handle->id[1], SNDCTL_DSP_HALT, 0); + stream_.state = STREAM_STOPPED; + } + + if (handle) + { + pthread_cond_destroy(&handle->runnable); + if (handle->id[0]) close(handle->id[0]); + if (handle->id[1]) close(handle->id[1]); + delete handle; + stream_.apiHandle = 0; + } + + for (int i = 0; i < 2; i++) + { + if (stream_.userBuffer[i]) + { + free(stream_.userBuffer[i]); + stream_.userBuffer[i] = 0; + } + } + + if (stream_.deviceBuffer) + { + free(stream_.deviceBuffer); + stream_.deviceBuffer = 0; + } + + stream_.mode = UNINITIALIZED; + stream_.state = STREAM_CLOSED; +} + +void RtApiOss ::startStream() +{ + verifyStream(); + if (stream_.state == STREAM_RUNNING) + { + errorText_ = "RtApiOss::startStream(): the stream is already running!"; + error(RtAudioError::WARNING); + return; + } + + MUTEX_LOCK(&stream_.mutex); + +#if defined(HAVE_GETTIMEOFDAY) + gettimeofday(&stream_.lastTickTimestamp, NULL); +#endif + + stream_.state = STREAM_RUNNING; + + // No need to do anything else here ... OSS automatically starts + // when fed samples. + + MUTEX_UNLOCK(&stream_.mutex); + + OssHandle * handle = (OssHandle *) stream_.apiHandle; + pthread_cond_signal(&handle->runnable); +} + +void RtApiOss ::stopStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiOss::stopStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + MUTEX_LOCK(&stream_.mutex); + + // The state might change while waiting on a mutex. + if (stream_.state == STREAM_STOPPED) + { + MUTEX_UNLOCK(&stream_.mutex); + return; + } + + int result = 0; + OssHandle * handle = (OssHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + // Flush the output with zeros a few times. + char * buffer; + int samples; + RtAudioFormat format; + + if (stream_.doConvertBuffer[0]) + { + buffer = stream_.deviceBuffer; + samples = stream_.bufferSize * stream_.nDeviceChannels[0]; + format = stream_.deviceFormat[0]; + } + else + { + buffer = stream_.userBuffer[0]; + samples = stream_.bufferSize * stream_.nUserChannels[0]; + format = stream_.userFormat; + } + + memset(buffer, 0, samples * formatBytes(format)); + for (unsigned int i = 0; i < stream_.nBuffers + 1; i++) + { + result = write(handle->id[0], buffer, samples * formatBytes(format)); + if (result == -1) + { + errorText_ = "RtApiOss::stopStream: audio write error."; + error(RtAudioError::WARNING); + } + } + + result = ioctl(handle->id[0], SNDCTL_DSP_HALT, 0); + if (result == -1) + { + errorStream_ << "RtApiOss::stopStream: system error stopping callback procedure on device (" << stream_.device[0] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + handle->triggered = false; + } + + if (stream_.mode == INPUT || (stream_.mode == DUPLEX && handle->id[0] != handle->id[1])) + { + result = ioctl(handle->id[1], SNDCTL_DSP_HALT, 0); + if (result == -1) + { + errorStream_ << "RtApiOss::stopStream: system error stopping input callback procedure on device (" << stream_.device[0] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + +unlock: + stream_.state = STREAM_STOPPED; + MUTEX_UNLOCK(&stream_.mutex); + + if (result != -1) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiOss ::abortStream() +{ + verifyStream(); + if (stream_.state == STREAM_STOPPED) + { + errorText_ = "RtApiOss::abortStream(): the stream is already stopped!"; + error(RtAudioError::WARNING); + return; + } + + MUTEX_LOCK(&stream_.mutex); + + // The state might change while waiting on a mutex. + if (stream_.state == STREAM_STOPPED) + { + MUTEX_UNLOCK(&stream_.mutex); + return; + } + + int result = 0; + OssHandle * handle = (OssHandle *) stream_.apiHandle; + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + result = ioctl(handle->id[0], SNDCTL_DSP_HALT, 0); + if (result == -1) + { + errorStream_ << "RtApiOss::abortStream: system error stopping callback procedure on device (" << stream_.device[0] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + handle->triggered = false; + } + + if (stream_.mode == INPUT || (stream_.mode == DUPLEX && handle->id[0] != handle->id[1])) + { + result = ioctl(handle->id[1], SNDCTL_DSP_HALT, 0); + if (result == -1) + { + errorStream_ << "RtApiOss::abortStream: system error stopping input callback procedure on device (" << stream_.device[0] << ")."; + errorText_ = errorStream_.str(); + goto unlock; + } + } + +unlock: + stream_.state = STREAM_STOPPED; + MUTEX_UNLOCK(&stream_.mutex); + + if (result != -1) return; + error(RtAudioError::SYSTEM_ERROR); +} + +void RtApiOss ::callbackEvent() +{ + OssHandle * handle = (OssHandle *) stream_.apiHandle; + if (stream_.state == STREAM_STOPPED) + { + MUTEX_LOCK(&stream_.mutex); + pthread_cond_wait(&handle->runnable, &stream_.mutex); + if (stream_.state != STREAM_RUNNING) + { + MUTEX_UNLOCK(&stream_.mutex); + return; + } + MUTEX_UNLOCK(&stream_.mutex); + } + + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApiOss::callbackEvent(): the stream is closed ... this shouldn't happen!"; + error(RtAudioError::WARNING); + return; + } + + // Invoke user callback to get fresh output data. + int doStopStream = 0; + RtAudioCallback callback = (RtAudioCallback) stream_.callbackInfo.callback; + double streamTime = getStreamTime(); + RtAudioStreamStatus status = 0; + if (stream_.mode != INPUT && handle->xrun[0] == true) + { + status |= RTAUDIO_OUTPUT_UNDERFLOW; + handle->xrun[0] = false; + } + if (stream_.mode != OUTPUT && handle->xrun[1] == true) + { + status |= RTAUDIO_INPUT_OVERFLOW; + handle->xrun[1] = false; + } + doStopStream = callback(stream_.userBuffer[0], stream_.userBuffer[1], + stream_.bufferSize, streamTime, status, stream_.callbackInfo.userData); + if (doStopStream == 2) + { + this->abortStream(); + return; + } + + MUTEX_LOCK(&stream_.mutex); + + // The state might change while waiting on a mutex. + if (stream_.state == STREAM_STOPPED) goto unlock; + + int result; + char * buffer; + int samples; + RtAudioFormat format; + + if (stream_.mode == OUTPUT || stream_.mode == DUPLEX) + { + + // Setup parameters and do buffer conversion if necessary. + if (stream_.doConvertBuffer[0]) + { + buffer = stream_.deviceBuffer; + convertBuffer(buffer, stream_.userBuffer[0], stream_.convertInfo[0]); + samples = stream_.bufferSize * stream_.nDeviceChannels[0]; + format = stream_.deviceFormat[0]; + } + else + { + buffer = stream_.userBuffer[0]; + samples = stream_.bufferSize * stream_.nUserChannels[0]; + format = stream_.userFormat; + } + + // Do byte swapping if necessary. + if (stream_.doByteSwap[0]) + byteSwapBuffer(buffer, samples, format); + + if (stream_.mode == DUPLEX && handle->triggered == false) + { + int trig = 0; + ioctl(handle->id[0], SNDCTL_DSP_SETTRIGGER, &trig); + result = write(handle->id[0], buffer, samples * formatBytes(format)); + trig = PCM_ENABLE_INPUT | PCM_ENABLE_OUTPUT; + ioctl(handle->id[0], SNDCTL_DSP_SETTRIGGER, &trig); + handle->triggered = true; + } + else + // Write samples to device. + result = write(handle->id[0], buffer, samples * formatBytes(format)); + + if (result == -1) + { + // We'll assume this is an underrun, though there isn't a + // specific means for determining that. + handle->xrun[0] = true; + errorText_ = "RtApiOss::callbackEvent: audio write error."; + error(RtAudioError::WARNING); + // Continue on to input section. + } + } + + if (stream_.mode == INPUT || stream_.mode == DUPLEX) + { + + // Setup parameters. + if (stream_.doConvertBuffer[1]) + { + buffer = stream_.deviceBuffer; + samples = stream_.bufferSize * stream_.nDeviceChannels[1]; + format = stream_.deviceFormat[1]; + } + else + { + buffer = stream_.userBuffer[1]; + samples = stream_.bufferSize * stream_.nUserChannels[1]; + format = stream_.userFormat; + } + + // Read samples from device. + result = read(handle->id[1], buffer, samples * formatBytes(format)); + + if (result == -1) + { + // We'll assume this is an overrun, though there isn't a + // specific means for determining that. + handle->xrun[1] = true; + errorText_ = "RtApiOss::callbackEvent: audio read error."; + error(RtAudioError::WARNING); + goto unlock; + } + + // Do byte swapping if necessary. + if (stream_.doByteSwap[1]) + byteSwapBuffer(buffer, samples, format); + + // Do buffer conversion if necessary. + if (stream_.doConvertBuffer[1]) + convertBuffer(stream_.userBuffer[1], stream_.deviceBuffer, stream_.convertInfo[1]); + } + +unlock: + MUTEX_UNLOCK(&stream_.mutex); + + RtApi::tickStreamTime(); + if (doStopStream == 1) this->stopStream(); +} + +static void * ossCallbackHandler(void * ptr) +{ + CallbackInfo * info = (CallbackInfo *) ptr; + RtApiOss * object = (RtApiOss *) info->object; + bool * isRunning = &info->isRunning; + +#ifdef SCHED_RR // Undefined with some OSes (e.g. NetBSD 1.6.x with GNU Pthread) + if (info->doRealtime) + { + std::cerr << "RtAudio oss: " << (sched_getscheduler(0) == SCHED_RR ? "" : "_NOT_ ") << "running realtime scheduling" << std::endl; + } +#endif + + while (*isRunning == true) + { + pthread_testcancel(); + object->callbackEvent(); + } + + pthread_exit(NULL); +} + +//******************** End of __LINUX_OSS__ *********************// +#endif + +// *************************************************** // +// +// Protected common (OS-independent) RtAudio methods. +// +// *************************************************** // + +// This method can be modified to control the behavior of error +// message printing. +void RtApi ::error(RtAudioError::Type type) +{ + errorStream_.str(""); // clear the ostringstream + + RtAudioErrorCallback errorCallback = (RtAudioErrorCallback) stream_.callbackInfo.errorCallback; + if (errorCallback) + { + // abortStream() can generate new error messages. Ignore them. Just keep original one. + + if (firstErrorOccurred_) + return; + + firstErrorOccurred_ = true; + const std::string errorMessage = errorText_; + + if (type != RtAudioError::WARNING && stream_.state != STREAM_STOPPED) + { + stream_.callbackInfo.isRunning = false; // exit from the thread + abortStream(); + } + + errorCallback(type, errorMessage); + firstErrorOccurred_ = false; + return; + } + + if (type == RtAudioError::WARNING && showWarnings_ == true) + std::cerr << '\n' + << errorText_ << "\n\n"; + else if (type != RtAudioError::WARNING) + throw(RtAudioError(errorText_, type)); +} + +void RtApi ::verifyStream() +{ + if (stream_.state == STREAM_CLOSED) + { + errorText_ = "RtApi:: a stream is not open!"; + error(RtAudioError::INVALID_USE); + } +} + +void RtApi ::clearStreamInfo() +{ + stream_.mode = UNINITIALIZED; + stream_.state = STREAM_CLOSED; + stream_.sampleRate = 0; + stream_.bufferSize = 0; + stream_.nBuffers = 0; + stream_.userFormat = 0; + stream_.userInterleaved = true; + stream_.streamTime = 0.0; + stream_.apiHandle = 0; + stream_.deviceBuffer = 0; + stream_.callbackInfo.callback = 0; + stream_.callbackInfo.userData = 0; + stream_.callbackInfo.isRunning = false; + stream_.callbackInfo.errorCallback = 0; + for (int i = 0; i < 2; i++) + { + stream_.device[i] = 11111; + stream_.doConvertBuffer[i] = false; + stream_.deviceInterleaved[i] = true; + stream_.doByteSwap[i] = false; + stream_.nUserChannels[i] = 0; + stream_.nDeviceChannels[i] = 0; + stream_.channelOffset[i] = 0; + stream_.deviceFormat[i] = 0; + stream_.latency[i] = 0; + stream_.userBuffer[i] = 0; + stream_.convertInfo[i].channels = 0; + stream_.convertInfo[i].inJump = 0; + stream_.convertInfo[i].outJump = 0; + stream_.convertInfo[i].inFormat = 0; + stream_.convertInfo[i].outFormat = 0; + stream_.convertInfo[i].inOffset.clear(); + stream_.convertInfo[i].outOffset.clear(); + } +} + +unsigned int RtApi ::formatBytes(RtAudioFormat format) +{ + if (format == RTAUDIO_SINT16) + return 2; + else if (format == RTAUDIO_SINT32 || format == RTAUDIO_FLOAT32) + return 4; + else if (format == RTAUDIO_FLOAT64) + return 8; + else if (format == RTAUDIO_SINT24) + return 3; + else if (format == RTAUDIO_SINT8) + return 1; + + errorText_ = "RtApi::formatBytes: undefined format."; + error(RtAudioError::WARNING); + + return 0; +} + +void RtApi ::setConvertInfo(StreamMode mode, unsigned int firstChannel) +{ + if (mode == INPUT) + { // convert device to user buffer + stream_.convertInfo[mode].inJump = stream_.nDeviceChannels[1]; + stream_.convertInfo[mode].outJump = stream_.nUserChannels[1]; + stream_.convertInfo[mode].inFormat = stream_.deviceFormat[1]; + stream_.convertInfo[mode].outFormat = stream_.userFormat; + } + else + { // convert user to device buffer + stream_.convertInfo[mode].inJump = stream_.nUserChannels[0]; + stream_.convertInfo[mode].outJump = stream_.nDeviceChannels[0]; + stream_.convertInfo[mode].inFormat = stream_.userFormat; + stream_.convertInfo[mode].outFormat = stream_.deviceFormat[0]; + } + + if (stream_.convertInfo[mode].inJump < stream_.convertInfo[mode].outJump) + stream_.convertInfo[mode].channels = stream_.convertInfo[mode].inJump; + else + stream_.convertInfo[mode].channels = stream_.convertInfo[mode].outJump; + + // Set up the interleave/deinterleave offsets. + if (stream_.deviceInterleaved[mode] != stream_.userInterleaved) + { + if ((mode == OUTPUT && stream_.deviceInterleaved[mode]) || (mode == INPUT && stream_.userInterleaved)) + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + { + stream_.convertInfo[mode].inOffset.push_back(k * stream_.bufferSize); + stream_.convertInfo[mode].outOffset.push_back(k); + stream_.convertInfo[mode].inJump = 1; + } + } + else + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + { + stream_.convertInfo[mode].inOffset.push_back(k); + stream_.convertInfo[mode].outOffset.push_back(k * stream_.bufferSize); + stream_.convertInfo[mode].outJump = 1; + } + } + } + else + { // no (de)interleaving + if (stream_.userInterleaved) + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + { + stream_.convertInfo[mode].inOffset.push_back(k); + stream_.convertInfo[mode].outOffset.push_back(k); + } + } + else + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + { + stream_.convertInfo[mode].inOffset.push_back(k * stream_.bufferSize); + stream_.convertInfo[mode].outOffset.push_back(k * stream_.bufferSize); + stream_.convertInfo[mode].inJump = 1; + stream_.convertInfo[mode].outJump = 1; + } + } + } + + // Add channel offset. + if (firstChannel > 0) + { + if (stream_.deviceInterleaved[mode]) + { + if (mode == OUTPUT) + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + stream_.convertInfo[mode].outOffset[k] += firstChannel; + } + else + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + stream_.convertInfo[mode].inOffset[k] += firstChannel; + } + } + else + { + if (mode == OUTPUT) + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + stream_.convertInfo[mode].outOffset[k] += (firstChannel * stream_.bufferSize); + } + else + { + for (int k = 0; k < stream_.convertInfo[mode].channels; k++) + stream_.convertInfo[mode].inOffset[k] += (firstChannel * stream_.bufferSize); + } + } + } +} + +void RtApi ::convertBuffer(char * outBuffer, char * inBuffer, ConvertInfo & info) +{ + // This function does format conversion, input/output channel compensation, and + // data interleaving/deinterleaving. 24-bit integers are assumed to occupy + // the lower three bytes of a 32-bit integer. + + // Clear our device buffer when in/out duplex device channels are different + if (outBuffer == stream_.deviceBuffer && stream_.mode == DUPLEX && (stream_.nDeviceChannels[0] < stream_.nDeviceChannels[1])) + memset(outBuffer, 0, stream_.bufferSize * info.outJump * formatBytes(info.outFormat)); + + int j; + if (info.outFormat == RTAUDIO_FLOAT64) + { + Float64 scale; + Float64 * out = (Float64 *) outBuffer; + + if (info.inFormat == RTAUDIO_SINT8) + { + signed char * in = (signed char *) inBuffer; + scale = 1.0 / 127.5; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float64) in[info.inOffset[j]]; + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT16) + { + Int16 * in = (Int16 *) inBuffer; + scale = 1.0 / 32767.5; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float64) in[info.inOffset[j]]; + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT24) + { + Int24 * in = (Int24 *) inBuffer; + scale = 1.0 / 8388607.5; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float64)(in[info.inOffset[j]].asInt()); + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT32) + { + Int32 * in = (Int32 *) inBuffer; + scale = 1.0 / 2147483647.5; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float64) in[info.inOffset[j]]; + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT32) + { + Float32 * in = (Float32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float64) in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT64) + { + // Channel compensation and/or (de)interleaving only. + Float64 * in = (Float64 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + } + else if (info.outFormat == RTAUDIO_FLOAT32) + { + Float32 scale; + Float32 * out = (Float32 *) outBuffer; + + if (info.inFormat == RTAUDIO_SINT8) + { + signed char * in = (signed char *) inBuffer; + scale = (Float32)(1.0 / 127.5); + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float32) in[info.inOffset[j]]; + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT16) + { + Int16 * in = (Int16 *) inBuffer; + scale = (Float32)(1.0 / 32767.5); + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float32) in[info.inOffset[j]]; + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT24) + { + Int24 * in = (Int24 *) inBuffer; + scale = (Float32)(1.0 / 8388607.5); + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float32)(in[info.inOffset[j]].asInt()); + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT32) + { + Int32 * in = (Int32 *) inBuffer; + scale = (Float32)(1.0 / 2147483647.5); + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float32) in[info.inOffset[j]]; + out[info.outOffset[j]] += 0.5; + out[info.outOffset[j]] *= scale; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT32) + { + // Channel compensation and/or (de)interleaving only. + Float32 * in = (Float32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT64) + { + Float64 * in = (Float64 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Float32) in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + } + else if (info.outFormat == RTAUDIO_SINT32) + { + Int32 * out = (Int32 *) outBuffer; + if (info.inFormat == RTAUDIO_SINT8) + { + signed char * in = (signed char *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32) in[info.inOffset[j]]; + out[info.outOffset[j]] <<= 24; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT16) + { + Int16 * in = (Int16 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32) in[info.inOffset[j]]; + out[info.outOffset[j]] <<= 16; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT24) + { + Int24 * in = (Int24 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32) in[info.inOffset[j]].asInt(); + out[info.outOffset[j]] <<= 8; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT32) + { + // Channel compensation and/or (de)interleaving only. + Int32 * in = (Int32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT32) + { + Float32 * in = (Float32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32)(in[info.inOffset[j]] * 2147483647.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT64) + { + Float64 * in = (Float64 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32)(in[info.inOffset[j]] * 2147483647.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + } + else if (info.outFormat == RTAUDIO_SINT24) + { + Int24 * out = (Int24 *) outBuffer; + if (info.inFormat == RTAUDIO_SINT8) + { + signed char * in = (signed char *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32)(in[info.inOffset[j]] << 16); + //out[info.outOffset[j]] <<= 16; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT16) + { + Int16 * in = (Int16 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32)(in[info.inOffset[j]] << 8); + //out[info.outOffset[j]] <<= 8; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT24) + { + // Channel compensation and/or (de)interleaving only. + Int24 * in = (Int24 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT32) + { + Int32 * in = (Int32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32)(in[info.inOffset[j]] >> 8); + //out[info.outOffset[j]] >>= 8; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT32) + { + Float32 * in = (Float32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32)(in[info.inOffset[j]] * 8388607.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT64) + { + Float64 * in = (Float64 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int32)(in[info.inOffset[j]] * 8388607.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + } + else if (info.outFormat == RTAUDIO_SINT16) + { + Int16 * out = (Int16 *) outBuffer; + if (info.inFormat == RTAUDIO_SINT8) + { + signed char * in = (signed char *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int16) in[info.inOffset[j]]; + out[info.outOffset[j]] <<= 8; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT16) + { + // Channel compensation and/or (de)interleaving only. + Int16 * in = (Int16 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT24) + { + Int24 * in = (Int24 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int16)(in[info.inOffset[j]].asInt() >> 8); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT32) + { + Int32 * in = (Int32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int16)((in[info.inOffset[j]] >> 16) & 0x0000ffff); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT32) + { + Float32 * in = (Float32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int16)(in[info.inOffset[j]] * 32767.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT64) + { + Float64 * in = (Float64 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (Int16)(in[info.inOffset[j]] * 32767.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + } + else if (info.outFormat == RTAUDIO_SINT8) + { + signed char * out = (signed char *) outBuffer; + if (info.inFormat == RTAUDIO_SINT8) + { + // Channel compensation and/or (de)interleaving only. + signed char * in = (signed char *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = in[info.inOffset[j]]; + } + in += info.inJump; + out += info.outJump; + } + } + if (info.inFormat == RTAUDIO_SINT16) + { + Int16 * in = (Int16 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (signed char) ((in[info.inOffset[j]] >> 8) & 0x00ff); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT24) + { + Int24 * in = (Int24 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (signed char) (in[info.inOffset[j]].asInt() >> 16); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_SINT32) + { + Int32 * in = (Int32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (signed char) ((in[info.inOffset[j]] >> 24) & 0x000000ff); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT32) + { + Float32 * in = (Float32 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (signed char) (in[info.inOffset[j]] * 127.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + else if (info.inFormat == RTAUDIO_FLOAT64) + { + Float64 * in = (Float64 *) inBuffer; + for (unsigned int i = 0; i < stream_.bufferSize; i++) + { + for (j = 0; j < info.channels; j++) + { + out[info.outOffset[j]] = (signed char) (in[info.inOffset[j]] * 127.5 - 0.5); + } + in += info.inJump; + out += info.outJump; + } + } + } +} + +//static inline uint16_t bswap_16(uint16_t x) { return (x>>8) | (x<<8); } +//static inline uint32_t bswap_32(uint32_t x) { return (bswap_16(x&0xffff)<<16) | (bswap_16(x>>16)); } +//static inline uint64_t bswap_64(uint64_t x) { return (((unsigned long long)bswap_32(x&0xffffffffull))<<32) | (bswap_32(x>>32)); } + +void RtApi ::byteSwapBuffer(char * buffer, unsigned int samples, RtAudioFormat format) +{ + char val; + char * ptr; + + ptr = buffer; + if (format == RTAUDIO_SINT16) + { + for (unsigned int i = 0; i < samples; i++) + { + // Swap 1st and 2nd bytes. + val = *(ptr); + *(ptr) = *(ptr + 1); + *(ptr + 1) = val; + + // Increment 2 bytes. + ptr += 2; + } + } + else if (format == RTAUDIO_SINT32 || format == RTAUDIO_FLOAT32) + { + for (unsigned int i = 0; i < samples; i++) + { + // Swap 1st and 4th bytes. + val = *(ptr); + *(ptr) = *(ptr + 3); + *(ptr + 3) = val; + + // Swap 2nd and 3rd bytes. + ptr += 1; + val = *(ptr); + *(ptr) = *(ptr + 1); + *(ptr + 1) = val; + + // Increment 3 more bytes. + ptr += 3; + } + } + else if (format == RTAUDIO_SINT24) + { + for (unsigned int i = 0; i < samples; i++) + { + // Swap 1st and 3rd bytes. + val = *(ptr); + *(ptr) = *(ptr + 2); + *(ptr + 2) = val; + + // Increment 2 more bytes. + ptr += 2; + } + } + else if (format == RTAUDIO_FLOAT64) + { + for (unsigned int i = 0; i < samples; i++) + { + // Swap 1st and 8th bytes + val = *(ptr); + *(ptr) = *(ptr + 7); + *(ptr + 7) = val; + + // Swap 2nd and 7th bytes + ptr += 1; + val = *(ptr); + *(ptr) = *(ptr + 5); + *(ptr + 5) = val; + + // Swap 3rd and 6th bytes + ptr += 1; + val = *(ptr); + *(ptr) = *(ptr + 3); + *(ptr + 3) = val; + + // Swap 4th and 5th bytes + ptr += 1; + val = *(ptr); + *(ptr) = *(ptr + 1); + *(ptr + 1) = val; + + // Increment 5 more bytes. + ptr += 5; + } + } +} + +// Indentation settings for Vim and Emacs +// +// Local Variables: +// c-basic-offset: 2 +// indent-tabs-mode: nil +// End: +// +// vim: et sts=2 sw=2 diff --git a/sources/LabSound/src/backends/RtAudio/RtAudio.h b/sources/LabSound/src/backends/RtAudio/RtAudio.h new file mode 100644 index 00000000..5e314c7b --- /dev/null +++ b/sources/LabSound/src/backends/RtAudio/RtAudio.h @@ -0,0 +1,1294 @@ +/************************************************************************/ +/*! \class RtAudio + \brief Realtime audio i/o C++ classes. + + RtAudio provides a common API (Application Programming Interface) + for realtime audio input/output across Linux (native ALSA, Jack, + and OSS), Macintosh OS X (CoreAudio and Jack), and Windows + (DirectSound, ASIO and WASAPI) operating systems. + + RtAudio GitHub site: https://github.com/thestk/rtaudio + RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/ + + RtAudio: realtime audio i/o C++ classes + Copyright (c) 2001-2019 Gary P. Scavone + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + Any person wishing to distribute modifications to the Software is + asked to send the modifications to the original developer so that + they can be incorporated into the canonical version. This is, + however, not a binding provision of this license. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/************************************************************************/ + +/*! + \file RtAudio.h + */ + +#ifndef __RTAUDIO_H +#define __RTAUDIO_H + +#define RTAUDIO_VERSION "5.1.0" + +#if defined _WIN32 || defined __CYGWIN__ +#if defined(RTAUDIO_EXPORT) +#define RTAUDIO_DLL_PUBLIC __declspec(dllexport) +#else +#define RTAUDIO_DLL_PUBLIC +#endif +#else +#if __GNUC__ >= 4 +#define RTAUDIO_DLL_PUBLIC __attribute__((visibility("default"))) +#else +#define RTAUDIO_DLL_PUBLIC +#endif +#endif + +#include +#include +#include +#include + +/*! \typedef typedef unsigned long RtAudioFormat; + \brief RtAudio data format type. + + Support for signed integers and floats. Audio data fed to/from an + RtAudio stream is assumed to ALWAYS be in host byte order. The + internal routines will automatically take care of any necessary + byte-swapping between the host format and the soundcard. Thus, + endian-ness is not a concern in the following format definitions. + + - \e RTAUDIO_SINT8: 8-bit signed integer. + - \e RTAUDIO_SINT16: 16-bit signed integer. + - \e RTAUDIO_SINT24: 24-bit signed integer. + - \e RTAUDIO_SINT32: 32-bit signed integer. + - \e RTAUDIO_FLOAT32: Normalized between plus/minus 1.0. + - \e RTAUDIO_FLOAT64: Normalized between plus/minus 1.0. +*/ +typedef unsigned long RtAudioFormat; +static const RtAudioFormat RTAUDIO_SINT8 = 0x1; // 8-bit signed integer. +static const RtAudioFormat RTAUDIO_SINT16 = 0x2; // 16-bit signed integer. +static const RtAudioFormat RTAUDIO_SINT24 = 0x4; // 24-bit signed integer. +static const RtAudioFormat RTAUDIO_SINT32 = 0x8; // 32-bit signed integer. +static const RtAudioFormat RTAUDIO_FLOAT32 = 0x10; // Normalized between plus/minus 1.0. +static const RtAudioFormat RTAUDIO_FLOAT64 = 0x20; // Normalized between plus/minus 1.0. + +/*! \typedef typedef unsigned long RtAudioStreamFlags; + \brief RtAudio stream option flags. + + The following flags can be OR'ed together to allow a client to + make changes to the default stream behavior: + + - \e RTAUDIO_NONINTERLEAVED: Use non-interleaved buffers (default = interleaved). + - \e RTAUDIO_MINIMIZE_LATENCY: Attempt to set stream parameters for lowest possible latency. + - \e RTAUDIO_HOG_DEVICE: Attempt grab device for exclusive use. + - \e RTAUDIO_ALSA_USE_DEFAULT: Use the "default" PCM device (ALSA only). + - \e RTAUDIO_JACK_DONT_CONNECT: Do not automatically connect ports (JACK only). + + By default, RtAudio streams pass and receive audio data from the + client in an interleaved format. By passing the + RTAUDIO_NONINTERLEAVED flag to the openStream() function, audio + data will instead be presented in non-interleaved buffers. In + this case, each buffer argument in the RtAudioCallback function + will point to a single array of data, with \c nFrames samples for + each channel concatenated back-to-back. For example, the first + sample of data for the second channel would be located at index \c + nFrames (assuming the \c buffer pointer was recast to the correct + data type for the stream). + + Certain audio APIs offer a number of parameters that influence the + I/O latency of a stream. By default, RtAudio will attempt to set + these parameters internally for robust (glitch-free) performance + (though some APIs, like Windows DirectSound, make this difficult). + By passing the RTAUDIO_MINIMIZE_LATENCY flag to the openStream() + function, internal stream settings will be influenced in an attempt + to minimize stream latency, though possibly at the expense of stream + performance. + + If the RTAUDIO_HOG_DEVICE flag is set, RtAudio will attempt to + open the input and/or output stream device(s) for exclusive use. + Note that this is not possible with all supported audio APIs. + + If the RTAUDIO_SCHEDULE_REALTIME flag is set, RtAudio will attempt + to select realtime scheduling (round-robin) for the callback thread. + + If the RTAUDIO_ALSA_USE_DEFAULT flag is set, RtAudio will attempt to + open the "default" PCM device when using the ALSA API. Note that this + will override any specified input or output device id. + + If the RTAUDIO_JACK_DONT_CONNECT flag is set, RtAudio will not attempt + to automatically connect the ports of the client to the audio device. +*/ +typedef unsigned int RtAudioStreamFlags; +static const RtAudioStreamFlags RTAUDIO_NONINTERLEAVED = 0x1; // Use non-interleaved buffers (default = interleaved). +static const RtAudioStreamFlags RTAUDIO_MINIMIZE_LATENCY = 0x2; // Attempt to set stream parameters for lowest possible latency. +static const RtAudioStreamFlags RTAUDIO_HOG_DEVICE = 0x4; // Attempt grab device and prevent use by others. +static const RtAudioStreamFlags RTAUDIO_SCHEDULE_REALTIME = 0x8; // Try to select realtime scheduling for callback thread. +static const RtAudioStreamFlags RTAUDIO_ALSA_USE_DEFAULT = 0x10; // Use the "default" PCM device (ALSA only). +static const RtAudioStreamFlags RTAUDIO_JACK_DONT_CONNECT = 0x20; // Do not automatically connect ports (JACK only). + +/*! \typedef typedef unsigned long RtAudioStreamStatus; + \brief RtAudio stream status (over- or underflow) flags. + + Notification of a stream over- or underflow is indicated by a + non-zero stream \c status argument in the RtAudioCallback function. + The stream status can be one of the following two options, + depending on whether the stream is open for output and/or input: + + - \e RTAUDIO_INPUT_OVERFLOW: Input data was discarded because of an overflow condition at the driver. + - \e RTAUDIO_OUTPUT_UNDERFLOW: The output buffer ran low, likely producing a break in the output sound. +*/ +typedef unsigned int RtAudioStreamStatus; +static const RtAudioStreamStatus RTAUDIO_INPUT_OVERFLOW = 0x1; // Input data was discarded because of an overflow condition at the driver. +static const RtAudioStreamStatus RTAUDIO_OUTPUT_UNDERFLOW = 0x2; // The output buffer ran low, likely causing a gap in the output sound. + +//! RtAudio callback function prototype. +/*! + All RtAudio clients must create a function of type RtAudioCallback + to read and/or write data from/to the audio stream. When the + underlying audio system is ready for new input or output data, this + function will be invoked. + + \param outputBuffer For output (or duplex) streams, the client + should write \c nFrames of audio sample frames into this + buffer. This argument should be recast to the datatype + specified when the stream was opened. For input-only + streams, this argument will be NULL. + + \param inputBuffer For input (or duplex) streams, this buffer will + hold \c nFrames of input audio sample frames. This + argument should be recast to the datatype specified when the + stream was opened. For output-only streams, this argument + will be NULL. + + \param nFrames The number of sample frames of input or output + data in the buffers. The actual buffer size in bytes is + dependent on the data type and number of channels in use. + + \param streamTime The number of seconds that have elapsed since the + stream was started. + + \param status If non-zero, this argument indicates a data overflow + or underflow condition for the stream. The particular + condition can be determined by comparison with the + RtAudioStreamStatus flags. + + \param userData A pointer to optional data provided by the client + when opening the stream (default = NULL). + + \return + To continue normal stream operation, the RtAudioCallback function + should return a value of zero. To stop the stream and drain the + output buffer, the function should return a value of one. To abort + the stream immediately, the client should return a value of two. + */ +typedef int (*RtAudioCallback)(void * outputBuffer, void * inputBuffer, + unsigned int nFrames, + double streamTime, + RtAudioStreamStatus status, + void * userData); + +/************************************************************************/ +/*! \class RtAudioError + \brief Exception handling class for RtAudio. + + The RtAudioError class is quite simple but it does allow errors to be + "caught" by RtAudioError::Type. See the RtAudio documentation to know + which methods can throw an RtAudioError. +*/ +/************************************************************************/ + +class RTAUDIO_DLL_PUBLIC RtAudioError : public std::runtime_error +{ +public: + //! Defined RtAudioError types. + enum Type + { + WARNING, /*!< A non-critical error. */ + DEBUG_WARNING, /*!< A non-critical error which might be useful for debugging. */ + UNSPECIFIED, /*!< The default, unspecified error type. */ + NO_DEVICES_FOUND, /*!< No devices found on system. */ + INVALID_DEVICE, /*!< An invalid device ID was specified. */ + MEMORY_ERROR, /*!< An error occured during memory allocation. */ + INVALID_PARAMETER, /*!< An invalid parameter was specified to a function. */ + INVALID_USE, /*!< The function was called incorrectly. */ + DRIVER_ERROR, /*!< A system driver error occured. */ + SYSTEM_ERROR, /*!< A system error occured. */ + THREAD_ERROR /*!< A thread error occured. */ + }; + + //! The constructor. + RtAudioError(const std::string & message, + Type type = RtAudioError::UNSPECIFIED) + : std::runtime_error(message) + , type_(type) + { + } + + //! Prints thrown error message to stderr. + virtual void printMessage(void) const + { + std::cerr << '\n' + << what() << "\n\n"; + } + + //! Returns the thrown error message type. + virtual const Type & getType(void) const { return type_; } + + //! Returns the thrown error message string. + virtual const std::string getMessage(void) const + { + return std::string(what()); + } + +protected: + Type type_; +}; + +//! RtAudio error callback function prototype. +/*! + \param type Type of error. + \param errorText Error description. + */ +typedef void (*RtAudioErrorCallback)(RtAudioError::Type type, const std::string & errorText); + +// **************************************************************** // +// +// RtAudio class declaration. +// +// RtAudio is a "controller" used to select an available audio i/o +// interface. It presents a common API for the user to call but all +// functionality is implemented by the class RtApi and its +// subclasses. RtAudio creates an instance of an RtApi subclass +// based on the user's API choice. If no choice is made, RtAudio +// attempts to make a "logical" API selection. +// +// **************************************************************** // + +class RtApi; + +class RTAUDIO_DLL_PUBLIC RtAudio +{ +public: + //! Audio API specifier arguments. + enum Api + { + UNSPECIFIED, /*!< Search for a working compiled API. */ + LINUX_ALSA, /*!< The Advanced Linux Sound Architecture API. */ + LINUX_PULSE, /*!< The Linux PulseAudio API. */ + LINUX_OSS, /*!< The Linux Open Sound System API. */ + UNIX_JACK, /*!< The Jack Low-Latency Audio Server API. */ + MACOSX_CORE, /*!< Macintosh OS-X Core Audio API. */ + WINDOWS_WASAPI, /*!< The Microsoft WASAPI API. */ + WINDOWS_ASIO, /*!< The Steinberg Audio Stream I/O API. */ + WINDOWS_DS, /*!< The Microsoft DirectSound API. */ + RTAUDIO_DUMMY, /*!< A compilable but non-functional API. */ + NUM_APIS /*!< Number of values in this enum. */ + }; + + //! The public device information structure for returning queried values. + struct DeviceInfo + { + bool probed; /*!< true if the device capabilities were successfully probed. */ + std::string name; /*!< Character string device identifier. */ + unsigned int outputChannels; /*!< Maximum output channels supported by device. */ + unsigned int inputChannels; /*!< Maximum input channels supported by device. */ + unsigned int duplexChannels; /*!< Maximum simultaneous input/output channels supported by device. */ + bool isDefaultOutput; /*!< true if this is the default output device. */ + bool isDefaultInput; /*!< true if this is the default input device. */ + std::vector sampleRates; /*!< Supported sample rates (queried from list of standard rates). */ + unsigned int preferredSampleRate; /*!< Preferred sample rate, e.g. for WASAPI the system sample rate. */ + RtAudioFormat nativeFormats; /*!< Bit mask of supported data formats. */ + + // Default constructor. + DeviceInfo() + : probed(false) + , outputChannels(0) + , inputChannels(0) + , duplexChannels(0) + , isDefaultOutput(false) + , isDefaultInput(false) + , preferredSampleRate(0) + , nativeFormats(0) + { + } + }; + + //! The structure for specifying input or ouput stream parameters. + struct StreamParameters + { + unsigned int deviceId; /*!< Device index (0 to getDeviceCount() - 1). */ + unsigned int nChannels; /*!< Number of channels. */ + unsigned int firstChannel; /*!< First channel index on device (default = 0). */ + + // Default constructor. + StreamParameters() + : deviceId(0) + , nChannels(0) + , firstChannel(0) + { + } + }; + + //! The structure for specifying stream options. + /*! + The following flags can be OR'ed together to allow a client to + make changes to the default stream behavior: + + - \e RTAUDIO_NONINTERLEAVED: Use non-interleaved buffers (default = interleaved). + - \e RTAUDIO_MINIMIZE_LATENCY: Attempt to set stream parameters for lowest possible latency. + - \e RTAUDIO_HOG_DEVICE: Attempt grab device for exclusive use. + - \e RTAUDIO_SCHEDULE_REALTIME: Attempt to select realtime scheduling for callback thread. + - \e RTAUDIO_ALSA_USE_DEFAULT: Use the "default" PCM device (ALSA only). + + By default, RtAudio streams pass and receive audio data from the + client in an interleaved format. By passing the + RTAUDIO_NONINTERLEAVED flag to the openStream() function, audio + data will instead be presented in non-interleaved buffers. In + this case, each buffer argument in the RtAudioCallback function + will point to a single array of data, with \c nFrames samples for + each channel concatenated back-to-back. For example, the first + sample of data for the second channel would be located at index \c + nFrames (assuming the \c buffer pointer was recast to the correct + data type for the stream). + + Certain audio APIs offer a number of parameters that influence the + I/O latency of a stream. By default, RtAudio will attempt to set + these parameters internally for robust (glitch-free) performance + (though some APIs, like Windows DirectSound, make this difficult). + By passing the RTAUDIO_MINIMIZE_LATENCY flag to the openStream() + function, internal stream settings will be influenced in an attempt + to minimize stream latency, though possibly at the expense of stream + performance. + + If the RTAUDIO_HOG_DEVICE flag is set, RtAudio will attempt to + open the input and/or output stream device(s) for exclusive use. + Note that this is not possible with all supported audio APIs. + + If the RTAUDIO_SCHEDULE_REALTIME flag is set, RtAudio will attempt + to select realtime scheduling (round-robin) for the callback thread. + The \c priority parameter will only be used if the RTAUDIO_SCHEDULE_REALTIME + flag is set. It defines the thread's realtime priority. + + If the RTAUDIO_ALSA_USE_DEFAULT flag is set, RtAudio will attempt to + open the "default" PCM device when using the ALSA API. Note that this + will override any specified input or output device id. + + The \c numberOfBuffers parameter can be used to control stream + latency in the Windows DirectSound, Linux OSS, and Linux Alsa APIs + only. A value of two is usually the smallest allowed. Larger + numbers can potentially result in more robust stream performance, + though likely at the cost of stream latency. The value set by the + user is replaced during execution of the RtAudio::openStream() + function by the value actually used by the system. + + The \c streamName parameter can be used to set the client name + when using the Jack API. By default, the client name is set to + RtApiJack. However, if you wish to create multiple instances of + RtAudio with Jack, each instance must have a unique client name. + */ + struct StreamOptions + { + RtAudioStreamFlags flags; /*!< A bit-mask of stream flags (RTAUDIO_NONINTERLEAVED, RTAUDIO_MINIMIZE_LATENCY, RTAUDIO_HOG_DEVICE, RTAUDIO_ALSA_USE_DEFAULT). */ + unsigned int numberOfBuffers; /*!< Number of stream buffers. */ + std::string streamName; /*!< A stream name (currently used only in Jack). */ + int priority; /*!< Scheduling priority of callback thread (only used with flag RTAUDIO_SCHEDULE_REALTIME). */ + + // Default constructor. + StreamOptions() + : flags(0) + , numberOfBuffers(0) + , priority(0) + { + } + }; + + //! A static function to determine the current RtAudio version. + static std::string getVersion(void); + + //! A static function to determine the available compiled audio APIs. + /*! + The values returned in the std::vector can be compared against + the enumerated list values. Note that there can be more than one + API compiled for certain operating systems. + */ + static void getCompiledApi(std::vector & apis); + + //! Return the name of a specified compiled audio API. + /*! + This obtains a short lower-case name used for identification purposes. + This value is guaranteed to remain identical across library versions. + If the API is unknown, this function will return the empty string. + */ + static std::string getApiName(RtAudio::Api api); + + //! Return the display name of a specified compiled audio API. + /*! + This obtains a long name used for display purposes. + If the API is unknown, this function will return the empty string. + */ + static std::string getApiDisplayName(RtAudio::Api api); + + //! Return the compiled audio API having the given name. + /*! + A case insensitive comparison will check the specified name + against the list of compiled APIs, and return the one which + matches. On failure, the function returns UNSPECIFIED. + */ + static RtAudio::Api getCompiledApiByName(const std::string & name); + + //! The class constructor. + /*! + The constructor performs minor initialization tasks. An exception + can be thrown if no API support is compiled. + + If no API argument is specified and multiple API support has been + compiled, the default order of use is JACK, ALSA, OSS (Linux + systems) and ASIO, DS (Windows systems). + */ + RtAudio(RtAudio::Api api = UNSPECIFIED); + + //! The destructor. + /*! + If a stream is running or open, it will be stopped and closed + automatically. + */ + ~RtAudio(); + + //! Returns the audio API specifier for the current instance of RtAudio. + RtAudio::Api getCurrentApi(void); + + //! A public function that queries for the number of audio devices available. + /*! + This function performs a system query of available devices each time it + is called, thus supporting devices connected \e after instantiation. If + a system error occurs during processing, a warning will be issued. + */ + unsigned int getDeviceCount(void); + + //! Return an RtAudio::DeviceInfo structure for a specified device number. + /*! + + Any device integer between 0 and getDeviceCount() - 1 is valid. + If an invalid argument is provided, an RtAudioError (type = INVALID_USE) + will be thrown. If a device is busy or otherwise unavailable, the + structure member "probed" will have a value of "false" and all + other members are undefined. If the specified device is the + current default input or output device, the corresponding + "isDefault" member will have a value of "true". + */ + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + + //! A function that returns the index of the default output device. + /*! + If the underlying audio API does not provide a "default + device", or if no devices are available, the return value will be + 0. Note that this is a valid device identifier and it is the + client's responsibility to verify that a device is available + before attempting to open a stream. + */ + unsigned int getDefaultOutputDevice(void); + + //! A function that returns the index of the default input device. + /*! + If the underlying audio API does not provide a "default + device", or if no devices are available, the return value will be + 0. Note that this is a valid device identifier and it is the + client's responsibility to verify that a device is available + before attempting to open a stream. + */ + unsigned int getDefaultInputDevice(void); + + //! A public function for opening a stream with the specified parameters. + /*! + An RtAudioError (type = SYSTEM_ERROR) is thrown if a stream cannot be + opened with the specified parameters or an error occurs during + processing. An RtAudioError (type = INVALID_USE) is thrown if any + invalid device ID or channel number parameters are specified. + + \param outputParameters Specifies output stream parameters to use + when opening a stream, including a device ID, number of channels, + and starting channel number. For input-only streams, this + argument should be NULL. The device ID is an index value between + 0 and getDeviceCount() - 1. + \param inputParameters Specifies input stream parameters to use + when opening a stream, including a device ID, number of channels, + and starting channel number. For output-only streams, this + argument should be NULL. The device ID is an index value between + 0 and getDeviceCount() - 1. + \param format An RtAudioFormat specifying the desired sample data format. + \param sampleRate The desired sample rate (sample frames per second). + \param *bufferFrames A pointer to a value indicating the desired + internal buffer size in sample frames. The actual value + used by the device is returned via the same pointer. A + value of zero can be specified, in which case the lowest + allowable value is determined. + \param callback A client-defined function that will be invoked + when input data is available and/or output data is needed. + \param userData An optional pointer to data that can be accessed + from within the callback function. + \param options An optional pointer to a structure containing various + global stream options, including a list of OR'ed RtAudioStreamFlags + and a suggested number of stream buffers that can be used to + control stream latency. More buffers typically result in more + robust performance, though at a cost of greater latency. If a + value of zero is specified, a system-specific median value is + chosen. If the RTAUDIO_MINIMIZE_LATENCY flag bit is set, the + lowest allowable value is used. The actual value used is + returned via the structure argument. The parameter is API dependent. + \param errorCallback A client-defined function that will be invoked + when an error has occured. + */ + void openStream(RtAudio::StreamParameters * outputParameters, + RtAudio::StreamParameters * inputParameters, + RtAudioFormat format, unsigned int sampleRate, + unsigned int * bufferFrames, RtAudioCallback callback, + void * userData = NULL, RtAudio::StreamOptions * options = NULL, RtAudioErrorCallback errorCallback = NULL); + + //! A function that closes a stream and frees any associated stream memory. + /*! + If a stream is not open, this function issues a warning and + returns (no exception is thrown). + */ + void closeStream(void); + + //! A function that starts a stream. + /*! + An RtAudioError (type = SYSTEM_ERROR) is thrown if an error occurs + during processing. An RtAudioError (type = INVALID_USE) is thrown if a + stream is not open. A warning is issued if the stream is already + running. + */ + void startStream(void); + + //! Stop a stream, allowing any samples remaining in the output queue to be played. + /*! + An RtAudioError (type = SYSTEM_ERROR) is thrown if an error occurs + during processing. An RtAudioError (type = INVALID_USE) is thrown if a + stream is not open. A warning is issued if the stream is already + stopped. + */ + void stopStream(void); + + //! Stop a stream, discarding any samples remaining in the input/output queue. + /*! + An RtAudioError (type = SYSTEM_ERROR) is thrown if an error occurs + during processing. An RtAudioError (type = INVALID_USE) is thrown if a + stream is not open. A warning is issued if the stream is already + stopped. + */ + void abortStream(void); + + //! Returns true if a stream is open and false if not. + bool isStreamOpen(void) const; + + //! Returns true if the stream is running and false if it is stopped or not open. + bool isStreamRunning(void) const; + + //! Returns the number of elapsed seconds since the stream was started. + /*! + If a stream is not open, an RtAudioError (type = INVALID_USE) will be thrown. + */ + double getStreamTime(void); + + //! Set the stream time to a time in seconds greater than or equal to 0.0. + /*! + If a stream is not open, an RtAudioError (type = INVALID_USE) will be thrown. + */ + void setStreamTime(double time); + + //! Returns the internal stream latency in sample frames. + /*! + The stream latency refers to delay in audio input and/or output + caused by internal buffering by the audio system and/or hardware. + For duplex streams, the returned value will represent the sum of + the input and output latencies. If a stream is not open, an + RtAudioError (type = INVALID_USE) will be thrown. If the API does not + report latency, the return value will be zero. + */ + long getStreamLatency(void); + + //! Returns actual sample rate in use by the stream. + /*! + On some systems, the sample rate used may be slightly different + than that specified in the stream parameters. If a stream is not + open, an RtAudioError (type = INVALID_USE) will be thrown. + */ + unsigned int getStreamSampleRate(void); + + //! Specify whether warning messages should be printed to stderr. + void showWarnings(bool value = true); + +protected: + void openRtApi(RtAudio::Api api); + RtApi * rtapi_; +}; + +// Operating system dependent thread functionality. +#if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__) || defined(__WINDOWS_WASAPI__) + +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#include +#include + +typedef uintptr_t ThreadHandle; +typedef CRITICAL_SECTION StreamMutex; + +#elif defined(__LINUX_ALSA__) || defined(__LINUX_PULSE__) || defined(__UNIX_JACK__) || defined(__LINUX_OSS__) || defined(__MACOSX_CORE__) +// Using pthread library for various flavors of unix. +#include + +typedef pthread_t ThreadHandle; +typedef pthread_mutex_t StreamMutex; + +#else // Setup for "dummy" behavior + +#define __RTAUDIO_DUMMY__ +typedef int ThreadHandle; +typedef int StreamMutex; + +#endif + +// This global structure type is used to pass callback information +// between the private RtAudio stream structure and global callback +// handling functions. +struct CallbackInfo +{ + void * object; // Used as a "this" pointer. + ThreadHandle thread; + void * callback; + void * userData; + void * errorCallback; + void * apiInfo; // void pointer for API specific callback information + bool isRunning; + bool doRealtime; + int priority; + + // Default constructor. + CallbackInfo() + : object(0) + , callback(0) + , userData(0) + , errorCallback(0) + , apiInfo(0) + , isRunning(false) + , doRealtime(false) + , priority(0) + { + } +}; + +// **************************************************************** // +// +// RtApi class declaration. +// +// Subclasses of RtApi contain all API- and OS-specific code necessary +// to fully implement the RtAudio API. +// +// Note that RtApi is an abstract base class and cannot be +// explicitly instantiated. The class RtAudio will create an +// instance of an RtApi subclass (RtApiOss, RtApiAlsa, +// RtApiJack, RtApiCore, RtApiDs, or RtApiAsio). +// +// **************************************************************** // + +#pragma pack(push, 1) +class S24 +{ + +protected: + unsigned char c3[3]; + +public: + S24() {} + + S24 & operator=(const int & i) + { + c3[0] = (i & 0x000000ff); + c3[1] = (i & 0x0000ff00) >> 8; + c3[2] = (i & 0x00ff0000) >> 16; + return *this; + } + + S24(const double & d) { *this = (int) d; } + S24(const float & f) { *this = (int) f; } + S24(const signed short & s) { *this = (int) s; } + S24(const char & c) { *this = (int) c; } + + int asInt() + { + int i = c3[0] | (c3[1] << 8) | (c3[2] << 16); + if (i & 0x800000) i |= ~0xffffff; + return i; + } +}; +#pragma pack(pop) + +#if defined(HAVE_GETTIMEOFDAY) +#include +#endif + +#include + +class RTAUDIO_DLL_PUBLIC RtApi +{ +public: + RtApi(); + virtual ~RtApi(); + virtual RtAudio::Api getCurrentApi(void) = 0; + virtual unsigned int getDeviceCount(void) = 0; + virtual RtAudio::DeviceInfo getDeviceInfo(unsigned int device) = 0; + virtual unsigned int getDefaultInputDevice(void); + virtual unsigned int getDefaultOutputDevice(void); + void openStream(RtAudio::StreamParameters * outputParameters, + RtAudio::StreamParameters * inputParameters, + RtAudioFormat format, unsigned int sampleRate, + unsigned int * bufferFrames, RtAudioCallback callback, + void * userData, RtAudio::StreamOptions * options, + RtAudioErrorCallback errorCallback); + virtual void closeStream(void); + virtual void startStream(void) = 0; + virtual void stopStream(void) = 0; + virtual void abortStream(void) = 0; + long getStreamLatency(void); + unsigned int getStreamSampleRate(void); + virtual double getStreamTime(void); + virtual void setStreamTime(double time); + bool isStreamOpen(void) const { return stream_.state != STREAM_CLOSED; } + bool isStreamRunning(void) const { return stream_.state == STREAM_RUNNING; } + void showWarnings(bool value) { showWarnings_ = value; } + +protected: + static const unsigned int MAX_SAMPLE_RATES; + static const unsigned int SAMPLE_RATES[]; + + enum + { + FAILURE, + SUCCESS + }; + + enum StreamState + { + STREAM_STOPPED, + STREAM_STOPPING, + STREAM_RUNNING, + STREAM_CLOSED = -50 + }; + + enum StreamMode + { + OUTPUT, + INPUT, + DUPLEX, + UNINITIALIZED = -75 + }; + + // A protected structure used for buffer conversion. + struct ConvertInfo + { + int channels; + int inJump, outJump; + RtAudioFormat inFormat, outFormat; + std::vector inOffset; + std::vector outOffset; + }; + + // A protected structure for audio streams. + struct RtApiStream + { + unsigned int device[2]; // Playback and record, respectively. + void * apiHandle; // void pointer for API specific stream handle information + StreamMode mode; // OUTPUT, INPUT, or DUPLEX. + StreamState state; // STOPPED, RUNNING, or CLOSED + char * userBuffer[2]; // Playback and record, respectively. + char * deviceBuffer; + bool doConvertBuffer[2]; // Playback and record, respectively. + bool userInterleaved; + bool deviceInterleaved[2]; // Playback and record, respectively. + bool doByteSwap[2]; // Playback and record, respectively. + unsigned int sampleRate; + unsigned int bufferSize; + unsigned int nBuffers; + unsigned int nUserChannels[2]; // Playback and record, respectively. + unsigned int nDeviceChannels[2]; // Playback and record channels, respectively. + unsigned int channelOffset[2]; // Playback and record, respectively. + unsigned long latency[2]; // Playback and record, respectively. + RtAudioFormat userFormat; + RtAudioFormat deviceFormat[2]; // Playback and record, respectively. + StreamMutex mutex; + CallbackInfo callbackInfo; + ConvertInfo convertInfo[2]; + double streamTime; // Number of elapsed seconds since the stream started. + +#if defined(HAVE_GETTIMEOFDAY) + struct timeval lastTickTimestamp; +#endif + + RtApiStream() + : apiHandle(0) + , deviceBuffer(0) + { + device[0] = 11111; + device[1] = 11111; + } + }; + + typedef S24 Int24; + typedef signed short Int16; + typedef signed int Int32; + typedef float Float32; + typedef double Float64; + + std::ostringstream errorStream_; + std::string errorText_; + bool showWarnings_; + RtApiStream stream_; + bool firstErrorOccurred_; + + /*! + Protected, api-specific method that attempts to open a device + with the given parameters. This function MUST be implemented by + all subclasses. If an error is encountered during the probe, a + "warning" message is reported and FAILURE is returned. A + successful probe is indicated by a return value of SUCCESS. + */ + virtual bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); + + //! A protected function used to increment the stream time. + void tickStreamTime(void); + + //! Protected common method to clear an RtApiStream structure. + void clearStreamInfo(); + + /*! + Protected common method that throws an RtAudioError (type = + INVALID_USE) if a stream is not open. + */ + void verifyStream(void); + + //! Protected common error method to allow global control over error handling. + void error(RtAudioError::Type type); + + /*! + Protected method used to perform format, channel number, and/or interleaving + conversions between the user and device buffers. + */ + void convertBuffer(char * outBuffer, char * inBuffer, ConvertInfo & info); + + //! Protected common method used to perform byte-swapping on buffers. + void byteSwapBuffer(char * buffer, unsigned int samples, RtAudioFormat format); + + //! Protected common method that returns the number of bytes for a given format. + unsigned int formatBytes(RtAudioFormat format); + + //! Protected common method that sets up the parameters for buffer conversion. + void setConvertInfo(StreamMode mode, unsigned int firstChannel); +}; + +// **************************************************************** // +// +// Inline RtAudio definitions. +// +// **************************************************************** // + +inline RtAudio::Api RtAudio ::getCurrentApi(void) +{ + return rtapi_->getCurrentApi(); +} +inline unsigned int RtAudio ::getDeviceCount(void) +{ + return rtapi_->getDeviceCount(); +} +inline RtAudio::DeviceInfo RtAudio ::getDeviceInfo(unsigned int device) +{ + return rtapi_->getDeviceInfo(device); +} +inline unsigned int RtAudio ::getDefaultInputDevice(void) +{ + return rtapi_->getDefaultInputDevice(); +} +inline unsigned int RtAudio ::getDefaultOutputDevice(void) +{ + return rtapi_->getDefaultOutputDevice(); +} +inline void RtAudio ::closeStream(void) +{ + return rtapi_->closeStream(); +} +inline void RtAudio ::startStream(void) +{ + return rtapi_->startStream(); +} +inline void RtAudio ::stopStream(void) +{ + return rtapi_->stopStream(); +} +inline void RtAudio ::abortStream(void) +{ + return rtapi_->abortStream(); +} +inline bool RtAudio ::isStreamOpen(void) const +{ + return rtapi_->isStreamOpen(); +} +inline bool RtAudio ::isStreamRunning(void) const +{ + return rtapi_->isStreamRunning(); +} +inline long RtAudio ::getStreamLatency(void) +{ + return rtapi_->getStreamLatency(); +} +inline unsigned int RtAudio ::getStreamSampleRate(void) +{ + return rtapi_->getStreamSampleRate(); +} +inline double RtAudio ::getStreamTime(void) +{ + return rtapi_->getStreamTime(); +} +inline void RtAudio ::setStreamTime(double time) +{ + return rtapi_->setStreamTime(time); +} +inline void RtAudio ::showWarnings(bool value) +{ + rtapi_->showWarnings(value); +} + +// RtApi Subclass prototypes. + +#if defined(__MACOSX_CORE__) + +#include + +class RtApiCore : public RtApi +{ +public: + RtApiCore(); + ~RtApiCore(); + RtAudio::Api getCurrentApi(void) { return RtAudio::MACOSX_CORE; } + unsigned int getDeviceCount(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + unsigned int getDefaultOutputDevice(void); + unsigned int getDefaultInputDevice(void); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + + // This function is intended for internal use only. It must be + // public because it is called by the internal callback handler, + // which is not a member of RtAudio. External use of this function + // will most likely produce highly undesireable results! + bool callbackEvent(AudioDeviceID deviceId, + const AudioBufferList * inBufferList, + const AudioBufferList * outBufferList); + +private: + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); + static const char * getErrorCode(OSStatus code); +}; + +#endif + +#if defined(__UNIX_JACK__) + +class RtApiJack : public RtApi +{ +public: + RtApiJack(); + ~RtApiJack(); + RtAudio::Api getCurrentApi(void) { return RtAudio::UNIX_JACK; } + unsigned int getDeviceCount(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + + // This function is intended for internal use only. It must be + // public because it is called by the internal callback handler, + // which is not a member of RtAudio. External use of this function + // will most likely produce highly undesireable results! + bool callbackEvent(unsigned long nframes); + +private: + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); + + bool shouldAutoconnect_; +}; + +#endif + +#if defined(__WINDOWS_ASIO__) + +class RtApiAsio : public RtApi +{ +public: + RtApiAsio(); + ~RtApiAsio(); + RtAudio::Api getCurrentApi(void) { return RtAudio::WINDOWS_ASIO; } + unsigned int getDeviceCount(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + + // This function is intended for internal use only. It must be + // public because it is called by the internal callback handler, + // which is not a member of RtAudio. External use of this function + // will most likely produce highly undesireable results! + bool callbackEvent(long bufferIndex); + +private: + std::vector devices_; + void saveDeviceInfo(void); + bool coInitialized_; + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); +}; + +#endif + +#if defined(__WINDOWS_DS__) + +class RtApiDs : public RtApi +{ +public: + RtApiDs(); + ~RtApiDs(); + RtAudio::Api getCurrentApi(void) { return RtAudio::WINDOWS_DS; } + unsigned int getDeviceCount(void); + unsigned int getDefaultOutputDevice(void); + unsigned int getDefaultInputDevice(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + + // This function is intended for internal use only. It must be + // public because it is called by the internal callback handler, + // which is not a member of RtAudio. External use of this function + // will most likely produce highly undesireable results! + void callbackEvent(void); + +private: + bool coInitialized_; + bool buffersRolling; + long duplexPrerollBytes; + std::vector dsDevices; + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); +}; + +#endif + +#if defined(__WINDOWS_WASAPI__) + +struct IMMDeviceEnumerator; + +class RtApiWasapi : public RtApi +{ +public: + RtApiWasapi(); + virtual ~RtApiWasapi(); + + RtAudio::Api getCurrentApi(void) { return RtAudio::WINDOWS_WASAPI; } + unsigned int getDeviceCount(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + unsigned int getDefaultOutputDevice(void); + unsigned int getDefaultInputDevice(void); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + +private: + bool coInitialized_; + IMMDeviceEnumerator * deviceEnumerator_; + + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); + + static DWORD WINAPI runWasapiThread(void * wasapiPtr); + static DWORD WINAPI stopWasapiThread(void * wasapiPtr); + static DWORD WINAPI abortWasapiThread(void * wasapiPtr); + void wasapiThread(); +}; + +#endif + +#if defined(__LINUX_ALSA__) + +class RtApiAlsa : public RtApi +{ +public: + RtApiAlsa(); + ~RtApiAlsa(); + RtAudio::Api getCurrentApi() { return RtAudio::LINUX_ALSA; } + unsigned int getDeviceCount(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + + // This function is intended for internal use only. It must be + // public because it is called by the internal callback handler, + // which is not a member of RtAudio. External use of this function + // will most likely produce highly undesireable results! + void callbackEvent(void); + +private: + std::vector devices_; + void saveDeviceInfo(void); + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); +}; + +#endif + +#if defined(__LINUX_PULSE__) + +class RtApiPulse : public RtApi +{ +public: + ~RtApiPulse(); + RtAudio::Api getCurrentApi() { return RtAudio::LINUX_PULSE; } + unsigned int getDeviceCount(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + + // This function is intended for internal use only. It must be + // public because it is called by the internal callback handler, + // which is not a member of RtAudio. External use of this function + // will most likely produce highly undesireable results! + void callbackEvent(void); + +private: + std::vector devices_; + void saveDeviceInfo(void); + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); +}; + +#endif + +#if defined(__LINUX_OSS__) + +class RtApiOss : public RtApi +{ +public: + RtApiOss(); + ~RtApiOss(); + RtAudio::Api getCurrentApi() { return RtAudio::LINUX_OSS; } + unsigned int getDeviceCount(void); + RtAudio::DeviceInfo getDeviceInfo(unsigned int device); + void closeStream(void); + void startStream(void); + void stopStream(void); + void abortStream(void); + + // This function is intended for internal use only. It must be + // public because it is called by the internal callback handler, + // which is not a member of RtAudio. External use of this function + // will most likely produce highly undesireable results! + void callbackEvent(void); + +private: + bool probeDeviceOpen(unsigned int device, StreamMode mode, unsigned int channels, + unsigned int firstChannel, unsigned int sampleRate, + RtAudioFormat format, unsigned int * bufferSize, + RtAudio::StreamOptions * options); +}; + +#endif + +#if defined(__RTAUDIO_DUMMY__) + +class RtApiDummy : public RtApi +{ +public: + RtApiDummy() + { + errorText_ = "RtApiDummy: This class provides no functionality."; + error(RtAudioError::WARNING); + } + RtAudio::Api getCurrentApi(void) { return RtAudio::RTAUDIO_DUMMY; } + unsigned int getDeviceCount(void) { return 0; } + RtAudio::DeviceInfo getDeviceInfo(unsigned int /*device*/) + { + RtAudio::DeviceInfo info; + return info; + } + void closeStream(void) {} + void startStream(void) {} + void stopStream(void) {} + void abortStream(void) {} + +private: + bool probeDeviceOpen(unsigned int /*device*/, StreamMode /*mode*/, unsigned int /*channels*/, + unsigned int /*firstChannel*/, unsigned int /*sampleRate*/, + RtAudioFormat /*format*/, unsigned int * /*bufferSize*/, + RtAudio::StreamOptions * /*options*/) { return false; } +}; + +#endif + +#endif + +// Indentation settings for Vim and Emacs +// +// Local Variables: +// c-basic-offset: 2 +// indent-tabs-mode: nil +// End: +// +// vim: et sts=2 sw=2 diff --git a/sources/LabSound/src/backends/RtAudio/RtAudio_LICENSE.txt b/sources/LabSound/src/backends/RtAudio/RtAudio_LICENSE.txt new file mode 100644 index 00000000..4a65d978 --- /dev/null +++ b/sources/LabSound/src/backends/RtAudio/RtAudio_LICENSE.txt @@ -0,0 +1,33 @@ +RtAudio provides a common API (Application Programming Interface) +for realtime audio input/output across Linux (native ALSA, Jack, +and OSS), Macintosh OS X (CoreAudio and Jack), and Windows +(DirectSound, ASIO and WASAPI) operating systems. + +RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/ + +RtAudio: realtime audio i/o C++ classes +Copyright (c) 2001-2014 Gary P. Scavone + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation files +(the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +Any person wishing to distribute modifications to the Software is +asked to send the modifications to the original developer so that +they can be incorporated into the canonical version. This is, +however, not a binding provision of this license. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.cpp b/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.cpp new file mode 100644 index 00000000..795b5b0a --- /dev/null +++ b/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.cpp @@ -0,0 +1,368 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#define LABSOUND_ENABLE_LOGGING + +#include "AudioDevice_Miniaudio.h" + +#include "internal/Assertions.h" +#include "internal/VectorMath.h" + +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioNode.h" + +#include "LabSound/extended/Logging.h" + +//#define MA_DEBUG_OUTPUT +#define MINIAUDIO_IMPLEMENTATION +#include "miniaudio.h" + +namespace lab +{ + +//////////////////////////////////////////////////// +// Platform/backend specific static functions // +//////////////////////////////////////////////////// + +const float kLowThreshold = -1.0f; +const float kHighThreshold = 1.0f; +const int kRenderQuantum = AudioNode::ProcessingSizeInFrames; + +/// @TODO - the AudioDeviceInfo wants to support specific sample rates, but miniaudio only tells min and max +/// miniaudio also has a concept of minChannels, which LabSound ignores + + +namespace +{ + ma_context g_context; + static std::vector g_devices; + static bool g_must_init = true; + + void init_context() + { + if (g_must_init) + { + LOG_TRACE("[LabSound] init_context() must_init"); + if (ma_context_init(NULL, 0, NULL, &g_context) != MA_SUCCESS) + { + LOG_ERROR("[LabSound] init_context(): Failed to initialize miniaudio context"); + return; + } + LOG_TRACE("[LabSound] init_context() succeeded"); + g_must_init = false; + } + } +} + +void PrintAudioDeviceList() +{ + if (!g_devices.size()) + LOG_INFO("No devices detected"); + else + for (auto & device : g_devices) + { + LOG_INFO("[%d] %s\n----------------------\n", device.index, device.identifier.c_str()); + LOG_INFO(" ins:%d outs:%d default_in:%s default:out:%s\n", device.num_input_channels, device.num_output_channels, device.is_default_input?"yes":"no", device.is_default_output?"yes":"no"); + LOG_INFO(" nominal samplerate: %f\n", device.nominal_samplerate); + for (float f : device.supported_samplerates) + LOG_INFO(" %f\n", f); + } +} + +std::vector AudioDevice::MakeAudioDeviceList() +{ + init_context(); + static bool probed = false; + if (probed) + return g_devices; + + probed = true; + + ma_result result; + ma_device_info * pPlaybackDeviceInfos; + ma_uint32 playbackDeviceCount; + ma_device_info * pCaptureDeviceInfos; + ma_uint32 captureDeviceCount; + ma_uint32 iDevice; + + result = ma_context_get_devices(&g_context, &pPlaybackDeviceInfos, &playbackDeviceCount, &pCaptureDeviceInfos, &captureDeviceCount); + if (result != MA_SUCCESS) + { + LOG_ERROR("Failed to retrieve audio device information.\n"); + return {}; + } + + for (iDevice = 0; iDevice < playbackDeviceCount; ++iDevice) + { + AudioDeviceInfo lab_device_info; + lab_device_info.index = (int32_t) g_devices.size(); + lab_device_info.identifier = pPlaybackDeviceInfos[iDevice].name; + + if (ma_context_get_device_info(&g_context, ma_device_type_playback, + &pPlaybackDeviceInfos[iDevice].id, ma_share_mode_shared, &pPlaybackDeviceInfos[iDevice]) + != MA_SUCCESS) + continue; + + lab_device_info.num_output_channels = pPlaybackDeviceInfos[iDevice].maxChannels; + lab_device_info.num_input_channels = 0; + lab_device_info.supported_samplerates.push_back(static_cast(pPlaybackDeviceInfos[iDevice].minSampleRate)); + lab_device_info.supported_samplerates.push_back(static_cast(pPlaybackDeviceInfos[iDevice].maxSampleRate)); + lab_device_info.nominal_samplerate = static_cast(pPlaybackDeviceInfos[iDevice].maxSampleRate); + lab_device_info.is_default_output = iDevice == 0; + lab_device_info.is_default_input = false; + + g_devices.push_back(lab_device_info); + } + + for (iDevice = 0; iDevice < captureDeviceCount; ++iDevice) + { + AudioDeviceInfo lab_device_info; + lab_device_info.index = (int32_t) g_devices.size(); + lab_device_info.identifier = pCaptureDeviceInfos[iDevice].name; + + if (ma_context_get_device_info(&g_context, ma_device_type_capture, + &pPlaybackDeviceInfos[iDevice].id, ma_share_mode_exclusive, &pPlaybackDeviceInfos[iDevice]) + != MA_SUCCESS) + continue; + + lab_device_info.num_output_channels = 0; + lab_device_info.num_input_channels = 2; // pCaptureDeviceInfos[iDevice].maxChannels; + lab_device_info.supported_samplerates.push_back(static_cast(pCaptureDeviceInfos[iDevice].minSampleRate)); + lab_device_info.supported_samplerates.push_back(static_cast(pCaptureDeviceInfos[iDevice].maxSampleRate)); + lab_device_info.nominal_samplerate = 48000.f; // static_cast(pCaptureDeviceInfos[iDevice].maxSampleRate); + lab_device_info.is_default_output = false; + lab_device_info.is_default_input = iDevice == 0; + + g_devices.push_back(lab_device_info); + } + + return g_devices; +} + +AudioDeviceIndex AudioDevice::GetDefaultOutputAudioDeviceIndex() noexcept +{ + auto devices = MakeAudioDeviceList(); + size_t c = devices.size(); + for (uint32_t i = 0; i < c; ++i) + if (devices[i].is_default_output) + return {i, true}; + return {0, false}; +} + +AudioDeviceIndex AudioDevice::GetDefaultInputAudioDeviceIndex() noexcept +{ + auto devices = MakeAudioDeviceList(); + size_t c = devices.size(); + for (uint32_t i = 0; i < c; ++i) + if (devices[i].is_default_input) + return {i, true}; + return {0, false}; +} + +namespace +{ + void outputCallback(ma_device * pDevice, void * pOutput, const void * pInput, ma_uint32 frameCount) + { + // Buffer is nBufferFrames * channels, interleaved + float * fBufOut = (float *) pOutput; + AudioDevice_Miniaudio * ad = reinterpret_cast(pDevice->pUserData); + memset(fBufOut, 0, sizeof(float) * frameCount * ad->outputConfig.desired_channels); + ad->render(frameCount, pOutput, const_cast(pInput)); + } +} + +AudioDevice * AudioDevice::MakePlatformSpecificDevice(AudioDeviceRenderCallback & callback, + const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig) +{ + return new AudioDevice_Miniaudio(callback, outputConfig, inputConfig); +} + +AudioDevice_Miniaudio::AudioDevice_Miniaudio(AudioDeviceRenderCallback & callback, + const AudioStreamConfig & _outputConfig, const AudioStreamConfig & _inputConfig) + : _callback(callback) + , outputConfig(_outputConfig) + , inputConfig(_inputConfig) +{ + auto device_list = AudioDevice::MakeAudioDeviceList(); + PrintAudioDeviceList(); + + //ma_device_config deviceConfig = ma_device_config_init(ma_device_type_duplex); + ma_device_config deviceConfig = ma_device_config_init(ma_device_type_playback); + deviceConfig.playback.format = ma_format_f32; + deviceConfig.playback.channels = outputConfig.desired_channels; + deviceConfig.sampleRate = static_cast(outputConfig.desired_samplerate); + deviceConfig.capture.format = ma_format_f32; + deviceConfig.capture.channels = inputConfig.desired_channels; + deviceConfig.dataCallback = outputCallback; + deviceConfig.performanceProfile = ma_performance_profile_low_latency; + deviceConfig.pUserData = this; + +#ifdef __WINDOWS_WASAPI__ + deviceConfig.wasapi.noAutoConvertSRC = true; +#endif + + if (ma_device_init(&g_context, &deviceConfig, &_device) != MA_SUCCESS) + { + LOG_ERROR("Unable to open audio playback device"); + return; + } + + authoritativeDeviceSampleRateAtRuntime = outputConfig.desired_samplerate; + + samplingInfo.epoch[0] = samplingInfo.epoch[1] = std::chrono::high_resolution_clock::now(); + + _ring = new cinder::RingBufferT(); + _ring->resize(static_cast(authoritativeDeviceSampleRateAtRuntime)); // ad hoc. hold one second + _scratch = reinterpret_cast(malloc(sizeof(float) * kRenderQuantum * inputConfig.desired_channels)); +} + +AudioDevice_Miniaudio::~AudioDevice_Miniaudio() +{ + stop(); + ma_device_uninit(&_device); + ma_context_uninit(&g_context); + g_must_init = true; + delete _renderBus; + delete _inputBus; + delete _ring; + if (_scratch) + free(_scratch); +} + +void AudioDevice_Miniaudio::backendReinitialize() +{ + auto device_list = AudioDevice::MakeAudioDeviceList(); + PrintAudioDeviceList(); + + //ma_device_config deviceConfig = ma_device_config_init(ma_device_type_duplex); + ma_device_config deviceConfig = ma_device_config_init(ma_device_type_playback); + deviceConfig.playback.format = ma_format_f32; + deviceConfig.playback.channels = outputConfig.desired_channels; + deviceConfig.sampleRate = static_cast(outputConfig.desired_samplerate); + deviceConfig.capture.format = ma_format_f32; + deviceConfig.capture.channels = inputConfig.desired_channels; + deviceConfig.dataCallback = outputCallback; + deviceConfig.performanceProfile = ma_performance_profile_low_latency; + deviceConfig.pUserData = this; + +#ifdef __WINDOWS_WASAPI__ + deviceConfig.wasapi.noAutoConvertSRC = true; +#endif + + if (ma_device_init(&g_context, &deviceConfig, &_device) != MA_SUCCESS) + { + LOG_ERROR("Unable to open audio playback device"); + return; + } +} + + +void AudioDevice_Miniaudio::start() +{ + ASSERT(authoritativeDeviceSampleRateAtRuntime != 0.f); // something went very wrong + if (ma_device_start(&_device) != MA_SUCCESS) + { + LOG_ERROR("Unable to start audio device"); + } +} + +void AudioDevice_Miniaudio::stop() +{ + if (ma_device_stop(&_device) != MA_SUCCESS) + { + LOG_ERROR("Unable to stop audio device"); + } +} + +bool AudioDevice_Miniaudio::isRunning() const +{ + return ma_device_is_started(&_device); +} + + +// Pulls on our provider to get rendered audio stream. +void AudioDevice_Miniaudio::render(int numberOfFrames_, void * outputBuffer, void * inputBuffer) +{ + int numberOfFrames = numberOfFrames_; + if (!_renderBus) + { + _renderBus = new AudioBus(outputConfig.desired_channels, kRenderQuantum, true); + _renderBus->setSampleRate(authoritativeDeviceSampleRateAtRuntime); + } + + if (!_inputBus && inputConfig.desired_channels) + { + _inputBus = new AudioBus(inputConfig.desired_channels, kRenderQuantum, true); + _inputBus->setSampleRate(authoritativeDeviceSampleRateAtRuntime); + } + + float * pIn = static_cast(inputBuffer); + float * pOut = static_cast(outputBuffer); + + int in_channels = inputConfig.desired_channels; + int out_channels = outputConfig.desired_channels; + + if (pIn && numberOfFrames * in_channels) + _ring->write(pIn, numberOfFrames * in_channels); + + while (numberOfFrames > 0) + { + if (_remainder > 0) + { + // copy samples to output buffer. There might have been some rendered frames + // left over from the previous numberOfFrames, so start by moving those into + // the output buffer. + + // miniaudio expects interleaved data, this loop leverages the vclip operation + // to copy, interleave, and clip in one pass. + + int samples = _remainder < numberOfFrames ? _remainder : numberOfFrames; + for (int i = 0; i < out_channels; ++i) + { + int src_stride = 1; // de-interleaved + int dst_stride = out_channels; // interleaved + AudioChannel * channel = _renderBus->channel(i); + VectorMath::vclip(channel->data() + kRenderQuantum - _remainder, src_stride, + &kLowThreshold, &kHighThreshold, + pOut + i, dst_stride, samples); + } + pOut += out_channels * samples; + + numberOfFrames -= samples; // deduct samples actually copied to output + _remainder -= samples; // deduct samples remaining from last render() invocation + } + else + { + if (in_channels) + { + // miniaudio provides the input data in interleaved form, vclip is used here to de-interleave + + _ring->read(_scratch, in_channels * kRenderQuantum); + for (int i = 0; i < in_channels; ++i) + { + int src_stride = in_channels; // interleaved + int dst_stride = 1; // de-interleaved + AudioChannel * channel = _inputBus->channel(i); + VectorMath::vclip(_scratch + i, src_stride, + &kLowThreshold, &kHighThreshold, + channel->mutableData(), dst_stride, kRenderQuantum); + } + } + + // Update sampling info for use by the render graph + const int32_t index = 1 - (samplingInfo.current_sample_frame & 1); + const uint64_t t = samplingInfo.current_sample_frame & ~1; + samplingInfo.sampling_rate = authoritativeDeviceSampleRateAtRuntime; + samplingInfo.current_sample_frame = t + kRenderQuantum + index; + samplingInfo.current_time = samplingInfo.current_sample_frame / static_cast(samplingInfo.sampling_rate); + samplingInfo.epoch[index] = std::chrono::high_resolution_clock::now(); + + // generate new data + _callback.render(_inputBus, _renderBus, kRenderQuantum, samplingInfo); + _remainder = kRenderQuantum; + } + } +} + +} // namespace lab diff --git a/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.h b/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.h new file mode 100644 index 00000000..3fb8ef21 --- /dev/null +++ b/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.h @@ -0,0 +1,234 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#ifndef labsound_audiodevice_miniaudio_hpp +#define labsound_audiodevice_miniaudio_hpp + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioNode.h" + +#include +#define MA_NO_DECODING +#define MA_NO_ENCODING +#define MA_NO_GENERATION +//#define MA_DEBUG_OUTPUT +#include "miniaudio.h" +#include +#include + +namespace cinder +{ + + // Ringbuffer (aka circular buffer) data structure for use in concurrent audio scenarios. + // Other than minor modifications, this ringbuffer is a copy of Tim Blechmann's fine work, found as the base + // structure of boost::lockfree::spsc_queue (ringbuffer_base). Whereas the boost::lockfree data structures + // are meant for a wide range of applications / archs, this version specifically caters to audio processing. + // The implementation remains lock-free and thread-safe within a single write thread / single read thread context. + // Copyright (c) 2014, The Cinder Project + // https://github.com/cinder/Cinder/blob/master/COPYING + + template + class RingBufferT + { + public: + // Constructs a RingBufferT with size = 0 + RingBufferT() + : mData(nullptr) + , mAllocatedSize(0) + , mWriteIndex(0) + , mReadIndex(0) + { + } + + // Constructs a RingBufferT with \a count maximum elements. + RingBufferT(size_t count) + : mAllocatedSize(0) + { + resize(count); + } + + RingBufferT(RingBufferT && other) + : mData(other.mData) + , mAllocatedSize(other.mAllocatedSize) + , mWriteIndex(0) + , mReadIndex(0) + { + other.mData = nullptr; + other.mAllocatedSize = 0; + } + + ~RingBufferT() + { + if (mData) free(mData); + } + + // Resizes the container to contain \a count maximum elements. Invalidates the internal buffer and resets read / write indices to 0. \note Must be synchronized with both read and write threads. + void resize(size_t count) + { + size_t allocatedSize = count + 1; // one bin is used to distinguish between the read and write indices when full. + + if (mAllocatedSize) + mData = (T *) std::realloc(mData, allocatedSize * sizeof(T)); + else + mData = (T *) std::calloc(allocatedSize, sizeof(T)); + + assert(mData); + + mAllocatedSize = allocatedSize; + clear(); + } + + // Invalidates the internal buffer and resets read / write indices to 0. Must be synchronized with both read and write threads. + void clear() + { + mWriteIndex = 0; + mReadIndex = 0; + } + + // Returns the maximum number of elements. + size_t getSize() const + { + return mAllocatedSize - 1; + } + + // Returns the number of elements available for writing. Only safe to call from the write thread. + size_t getAvailableWrite() const + { + return getAvailableWrite(mWriteIndex, mReadIndex); + } + + // Returns the number of elements available for reading. Only safe to call from the read thread. + size_t getAvailableRead() const + { + return getAvailableRead(mWriteIndex, mReadIndex); + } + + // Only safe to call from the write thread. + bool write(const T * array, size_t count) + { + const size_t writeIndex = mWriteIndex.load(std::memory_order_relaxed); + const size_t readIndex = mReadIndex.load(std::memory_order_acquire); + + if (count > getAvailableWrite(writeIndex, readIndex)) + return false; + + size_t writeIndexAfter = writeIndex + count; + + if (writeIndex + count > mAllocatedSize) + { + size_t countA = mAllocatedSize - writeIndex; + size_t countB = count - countA; + + std::memcpy(mData + writeIndex, array, countA * sizeof(T)); + std::memcpy(mData, array + countA, countB * sizeof(T)); + writeIndexAfter -= mAllocatedSize; + } + else + { + std::memcpy(mData + writeIndex, array, count * sizeof(T)); + if (writeIndexAfter == mAllocatedSize) + writeIndexAfter = 0; + } + + mWriteIndex.store(writeIndexAfter, std::memory_order_release); + return true; + } + + // Only safe to call from the read thread. + bool read(T * array, size_t count) + { + const size_t writeIndex = mWriteIndex.load(std::memory_order_acquire); + const size_t readIndex = mReadIndex.load(std::memory_order_relaxed); + + if (count > getAvailableRead(writeIndex, readIndex)) + return false; + + size_t readIndexAfter = readIndex + count; + + if (readIndex + count > mAllocatedSize) + { + size_t countA = mAllocatedSize - readIndex; + size_t countB = count - countA; + + std::memcpy(array, mData + readIndex, countA * sizeof(T)); + std::memcpy(array + countA, mData, countB * sizeof(T)); + + readIndexAfter -= mAllocatedSize; + } + else + { + std::memcpy(array, mData + readIndex, count * sizeof(T)); + if (readIndexAfter == mAllocatedSize) + readIndexAfter = 0; + } + + mReadIndex.store(readIndexAfter, std::memory_order_release); + return true; + } + + private: + size_t getAvailableWrite(size_t writeIndex, size_t readIndex) const + { + size_t result = readIndex - writeIndex - 1; + if (writeIndex >= readIndex) + result += mAllocatedSize; + + return result; + } + + size_t getAvailableRead(size_t writeIndex, size_t readIndex) const + { + if (writeIndex >= readIndex) + return writeIndex - readIndex; + + return writeIndex + mAllocatedSize - readIndex; + } + + T * mData; + size_t mAllocatedSize; + std::atomic mWriteIndex, mReadIndex; + }; + +} + +namespace lab +{ + +class AudioDevice_Miniaudio : public AudioDevice +{ + cinder::RingBufferT * _ring = nullptr; + float * _scratch = nullptr; + AudioDeviceRenderCallback & _callback; + AudioBus * _renderBus = nullptr; + AudioBus * _inputBus = nullptr; + ma_device _device; + int _remainder = 0; + SamplingInfo samplingInfo; + +public: + +#ifdef _MSC_VER + // satisfy ma_device alignment requirements for msvc. + void * operator new(size_t i) { return _mm_malloc(i, 64); } + void operator delete(void * p) { _mm_free(p); } +#endif + + AudioDevice_Miniaudio(AudioDeviceRenderCallback &, const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig); + virtual ~AudioDevice_Miniaudio(); + + AudioStreamConfig outputConfig; + AudioStreamConfig inputConfig; + float authoritativeDeviceSampleRateAtRuntime{0.f}; + + // AudioDevice Interface + void render(int numberOfFrames, void * outputBuffer, void * inputBuffer); + virtual void start() override final; + virtual void stop() override final; + virtual bool isRunning() const override final; + virtual void backendReinitialize() override final; +}; + +} // namespace lab + +#endif // labsound_audiodevice_miniaudio_hpp diff --git a/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.mm b/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.mm new file mode 100644 index 00000000..128f9178 --- /dev/null +++ b/sources/LabSound/src/backends/miniaudio/AudioDevice_Miniaudio.mm @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2020, The LabSound Authors. All rights reserved. + +#include "AudioDevice_Miniaudio.cpp" + diff --git a/sources/LabSound/src/core/AnalyserNode.cpp b/sources/LabSound/src/core/AnalyserNode.cpp new file mode 100644 index 00000000..273af512 --- /dev/null +++ b/sources/LabSound/src/core/AnalyserNode.cpp @@ -0,0 +1,187 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AnalyserNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/extended/RealtimeAnalyser.h" +#include "LabSound/extended/Registry.h" +#include "internal/Assertions.h" +#include + +namespace lab +{ +struct AnalyserNode::Detail +{ + Detail() = default; + ~Detail() + { + delete m_analyser; + } + RealtimeAnalyser * m_analyser = nullptr; + + std::shared_ptr _fftSize; + std::shared_ptr _minDecibels; + std::shared_ptr _maxDecibels; + std::shared_ptr _smoothingTimeConstant; +}; + +void AnalyserNode::shared_construction(int fftSize) +{ + _detail = new Detail; + + _detail->m_analyser = new RealtimeAnalyser((uint32_t) fftSize); + + _detail->_fftSize = std::make_shared("fftSize", "FFTS", AudioSetting::Type::Integer); + _detail->_minDecibels = std::make_shared("minDecibels", "MNDB", AudioSetting::Type::Float); + _detail->_maxDecibels = std::make_shared("maxDecibels", "MXDB", AudioSetting::Type::Float); + _detail->_smoothingTimeConstant = std::make_shared("smoothingTimeConstant", "STIM", AudioSetting::Type::Float); + + _detail->_fftSize->setUint32(static_cast(fftSize)); + _detail->_fftSize->setValueChanged( + [this]() { + delete _detail->m_analyser; + _detail->m_analyser = new RealtimeAnalyser(_detail->_fftSize->valueUint32()); + + // restore other values + _detail->m_analyser->setMinDecibels(_detail->_minDecibels->valueFloat()); + _detail->m_analyser->setMaxDecibels(_detail->_maxDecibels->valueFloat()); + }); + + _detail->_minDecibels->setFloat(-100.f); + _detail->_minDecibels->setValueChanged( + [this]() { + _detail->m_analyser->setMinDecibels(_detail->_minDecibels->valueFloat()); + }); + + _detail->_maxDecibels->setFloat(-30.f); + _detail->_maxDecibels->setValueChanged( + [this]() { + _detail->m_analyser->setMaxDecibels(_detail->_minDecibels->valueFloat()); + }); + + _detail->_smoothingTimeConstant->setFloat(0.8f); + _detail->_smoothingTimeConstant->setValueChanged( + [this]() { + _detail->m_analyser->setSmoothingTimeConstant(_detail->_smoothingTimeConstant->valueFloat()); + }); + + m_settings.push_back(_detail->_fftSize); + m_settings.push_back(_detail->_minDecibels); + m_settings.push_back(_detail->_maxDecibels); + m_settings.push_back(_detail->_smoothingTimeConstant); + + // N.B.: inputs and outputs added by AudioBasicInspectorNode... no need to create here. + initialize(); +} + +AnalyserNode::AnalyserNode(AudioContext & ac, int fftSize) + : AudioBasicInspectorNode(ac, 1) +{ + shared_construction(fftSize); + initialize(); +} + +AnalyserNode::AnalyserNode(AudioContext & ac) + : AudioBasicInspectorNode(ac, 1) +{ + shared_construction(1024u); + initialize(); +} + +AnalyserNode::~AnalyserNode() +{ + uninitialize(); +} + +void AnalyserNode::setMinDecibels(double k) +{ + _detail->_minDecibels->setFloat(static_cast(k)); +} +double AnalyserNode::minDecibels() const +{ + return _detail->m_analyser->minDecibels(); +} + +void AnalyserNode::setMaxDecibels(double k) +{ + _detail->_maxDecibels->setFloat(static_cast(k)); +} +double AnalyserNode::maxDecibels() const +{ + return _detail->m_analyser->maxDecibels(); +} + +void AnalyserNode::setSmoothingTimeConstant(double k) +{ + _detail->_smoothingTimeConstant->setFloat(static_cast(k)); +} +double AnalyserNode::smoothingTimeConstant() const +{ + return _detail->m_analyser->smoothingTimeConstant(); +} + +void AnalyserNode::setFftSize(ContextRenderLock &, int sz) +{ + _detail->_fftSize->setUint32(static_cast(sz)); +} +size_t AnalyserNode::fftSize() const +{ + return _detail->m_analyser->fftSize(); +} + +size_t AnalyserNode::frequencyBinCount() const +{ + return _detail->m_analyser->frequencyBinCount(); +} +void AnalyserNode::getFloatFrequencyData(std::vector & array) +{ + _detail->m_analyser->getFloatFrequencyData(array); +} +void AnalyserNode::getFloatTimeDomainData(std::vector & array) +{ + _detail->m_analyser->getFloatTimeDomainData(array); +} +void AnalyserNode::getByteTimeDomainData(std::vector & array) +{ + _detail->m_analyser->getByteTimeDomainData(array); +} + +void AnalyserNode::getByteFrequencyData(std::vector & array, bool resample) +{ + if (array.size() == frequencyBinCount()) + resample = false; + + _detail->m_analyser->getByteFrequencyData(array, resample); +} + +void AnalyserNode::process(ContextRenderLock & r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + AudioBus * inputBus = input(0)->bus(r); + + if (!isInitialized() || !input(0)->isConnected() || !inputBus) + { + if (outputBus) + outputBus->zero(); + return; + } + + // Give the analyser all the audio which is passing through this AudioNode. + _detail->m_analyser->writeInput(r, inputBus, bufferSize); + + if (inputBus != outputBus) + { + outputBus->copyFrom(*inputBus); + } +} + +void AnalyserNode::reset(ContextRenderLock &) +{ + _detail->m_analyser->reset(); +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioBasicInspectorNode.cpp b/sources/LabSound/src/core/AudioBasicInspectorNode.cpp new file mode 100644 index 00000000..c3ed9f19 --- /dev/null +++ b/sources/LabSound/src/core/AudioBasicInspectorNode.cpp @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2012, Intel Corporation. All rights reserved. +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBasicInspectorNode.h" +#include "LabSound/core/AnalyserNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" + +namespace lab +{ + +AudioBasicInspectorNode::AudioBasicInspectorNode(AudioContext & ac, int outputChannelCount) + : AudioNode(ac) +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, outputChannelCount))); + initialize(); +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioBasicProcessorNode.cpp b/sources/LabSound/src/core/AudioBasicProcessorNode.cpp new file mode 100644 index 00000000..376ddd76 --- /dev/null +++ b/sources/LabSound/src/core/AudioBasicProcessorNode.cpp @@ -0,0 +1,109 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioProcessor.h" + +#include "internal/Assertions.h" + +namespace lab +{ + +AudioBasicProcessorNode::AudioBasicProcessorNode(AudioContext & ac) + : AudioNode(ac) +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + + // The subclass must create m_processor. +} + +void AudioBasicProcessorNode::initialize() +{ + if (isInitialized()) + return; + + ASSERT(processor()); + processor()->initialize(); + + AudioNode::initialize(); +} + +void AudioBasicProcessorNode::uninitialize() +{ + if (!isInitialized()) + return; + + ASSERT(processor()); + processor()->uninitialize(); + + AudioNode::uninitialize(); +} + +void AudioBasicProcessorNode::process(ContextRenderLock & r, int bufferSize) +{ + AudioBus * destinationBus = output(0)->bus(r); + + if (!isInitialized() || !processor()) + destinationBus->zero(); + else + { + AudioBus * sourceBus = input(0)->bus(r); + + // FIXME: if we take "tail time" into account, then we can avoid calling processor()->process() once the tail dies down. + if (!input(0)->isConnected()) + { + sourceBus->zero(); + return; + } + + int srcChannelCount = sourceBus->numberOfChannels(); + int dstChannelCount = destinationBus->numberOfChannels(); + if (srcChannelCount != dstChannelCount) + { + output(0)->setNumberOfChannels(r, srcChannelCount); + destinationBus = output(0)->bus(r); + } + + // process entire buffer + processor()->process(r, sourceBus, destinationBus, bufferSize); + } +} + + +void AudioBasicProcessorNode::reset(ContextRenderLock &) +{ + if (processor()) + processor()->reset(); +} + +int AudioBasicProcessorNode::numberOfChannels() +{ + return output(0)->numberOfChannels(); +} + +double AudioBasicProcessorNode::tailTime(ContextRenderLock & r) const +{ + return m_processor->tailTime(r); +} + +double AudioBasicProcessorNode::latencyTime(ContextRenderLock & r) const +{ + return m_processor->latencyTime(r); +} + +AudioProcessor * AudioBasicProcessorNode::processor() +{ + return m_processor.get(); +} + +AudioProcessor * AudioBasicProcessorNode::processor() const +{ + return m_processor.get(); +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioBus.cpp b/sources/LabSound/src/core/AudioBus.cpp new file mode 100644 index 00000000..a0224159 --- /dev/null +++ b/sources/LabSound/src/core/AudioBus.cpp @@ -0,0 +1,827 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "internal/Assertions.h" +#include "internal/DenormalDisabler.h" +#include "internal/VectorMath.h" +#include "libsamplerate/include/samplerate.h" + +#include +#include +#include + +namespace lab +{ + +using namespace VectorMath; + +const unsigned MaxBusChannels = 32; + +AudioBus::AudioBus(int numberOfChannels, int length, bool allocate) + : m_length(length) +{ + ASSERT(numberOfChannels <= MaxBusChannels); + if (numberOfChannels > MaxBusChannels) + return; + + for (int i = 0; i < numberOfChannels; ++i) + { + AudioChannel * newChannel; + if (allocate) + newChannel = new AudioChannel(length); + else + newChannel = new AudioChannel(nullptr, length); + + m_channels.emplace_back(std::unique_ptr(newChannel)); + } +} + +void AudioBus::setChannelMemory(int channelIndex, float * storage, int length) +{ + if (channelIndex < m_channels.size()) + { + channel(channelIndex)->set(storage, length); + m_length = length; // @fixme - verify that this length matches all the other channel lengths + } +} + +void AudioBus::resizeSmaller(int newLength) +{ + ASSERT(newLength <= m_length); + if (newLength <= m_length) + { + m_length = newLength; + } + + for (int i = 0; i < m_channels.size(); ++i) + { + m_channels[i]->resizeSmaller(newLength); + } +} + +void AudioBus::zero() +{ + for (int i = 0; i < m_channels.size(); ++i) + { + m_channels[i]->zero(); + } +} + +AudioChannel * AudioBus::channelByType(Channel channelType) +{ + // For now we only support canonical channel layouts... + if (m_layout != LayoutCanonical) return 0; + + switch (numberOfChannels()) + { + case Channels::Mono: + if (channelType == Channel::Mono || channelType == Channel::Left || channelType == Channel::First) + { + return channel(static_cast(Channel::Left)); + } + return 0; + + case Channels::Stereo: + switch (channelType) + { + case Channel::Left: + case Channel::Right: + return channel(static_cast(channelType)); + default: + return 0; + } + + case Channels::Quad: + switch (channelType) + { + case Channel::Left: + case Channel::Right: + case Channel::SurroundLeft: + case Channel::SurroundRight: + return channel(static_cast(channelType)); + default: + return 0; + } + + case Channels::Surround_5_0: + switch (channelType) + { + case Channel::Left: + case Channel::Right: + case Channel::Center: + case Channel::SurroundLeft: + case Channel::SurroundRight: + return channel(static_cast(channelType)); + default: + return 0; + } + + case Channels::Surround_5_1: + switch (channelType) + { + case Channel::Left: + case Channel::Right: + case Channel::Center: + case Channel::LFE: + case Channel::SurroundLeft: + case Channel::SurroundRight: + return channel(static_cast(channelType)); + default: + return 0; + } + + case Channels::Surround_7_1: + switch (channelType) + { + case Channel::Left: + case Channel::Right: + case Channel::Center: + case Channel::LFE: + case Channel::SurroundLeft: + case Channel::SurroundRight: + case Channel::BackLeft: + case Channel::BackRight: + return channel(static_cast(channelType)); + default: + return 0; + } + } + + ASSERT_NOT_REACHED(); + return 0; +} + +const AudioChannel * AudioBus::channelByType(Channel type) const +{ + return const_cast(this)->channelByType(type); +} + +// Returns true if the channel count and frame-size match. +bool AudioBus::topologyMatches(const AudioBus & bus) const +{ + if (numberOfChannels() != bus.numberOfChannels()) + return false; // channel mismatch + + // Make sure source bus has enough frames. + if (length() > bus.length()) + return false; // frame-size mismatch + + return true; +} + +std::unique_ptr AudioBus::createBufferFromRange(const AudioBus * sourceBuffer, int startFrame, int endFrame) +{ + int numberOfSourceFrames = sourceBuffer->length(); + int numberOfChannels = sourceBuffer->numberOfChannels(); + + // Sanity checking + bool isRangeSafe = startFrame < endFrame && endFrame <= numberOfSourceFrames; + ASSERT(isRangeSafe); + + if (!isRangeSafe) + { + return nullptr; + } + + int rangeLength = endFrame - startFrame; + + std::unique_ptr audioBus(new AudioBus(numberOfChannels, rangeLength)); + audioBus->setSampleRate(sourceBuffer->sampleRate()); + + for (int i = 0; i < numberOfChannels; ++i) + { + audioBus->channel(i)->copyFromRange(sourceBuffer->channel(i), startFrame, endFrame); + } + + return audioBus; +} + +std::unique_ptr AudioBus::createByCloning(const AudioBus * sourceBus) +{ + const int numberOfSourceFrames = sourceBus->length(); + const int numberOfChannels = sourceBus->numberOfChannels(); + + std::unique_ptr clonedBus(new AudioBus(numberOfChannels, numberOfSourceFrames)); + clonedBus->setSampleRate(sourceBus->sampleRate()); + + for (int i = 0; i < numberOfChannels; ++i) + { + clonedBus->channel(i)->copyFromRange(sourceBus->channel(i), 0, numberOfSourceFrames); + } + + return clonedBus; +} + +float AudioBus::maxAbsValue() const +{ + float max = 0.0f; + for (int i = 0; i < numberOfChannels(); ++i) + { + max = std::max(max, channel(i)->maxAbsValue()); + } + + return max; +} + +void AudioBus::normalize() +{ + float max = maxAbsValue(); + if (max) scale(1.0f / max); +} + +void AudioBus::scale(float scale) +{ + for (int i = 0; i < numberOfChannels(); ++i) + { + channel(i)->scale(scale); + } +} + +// Just copies the samples from the source bus to this one. +// This is just a simple copy if the number of channels match, otherwise a mixup or mixdown is done. +// For now, we just support mixup from mono -> stereo and mixdown from stereo -> mono. +void AudioBus::copyFrom(const AudioBus & sourceBus, ChannelInterpretation channelInterpretation) +{ + if (&sourceBus == this) return; + + int numberOfSourceChannels = sourceBus.numberOfChannels(); + int numberOfDestinationChannels = numberOfChannels(); + + if (numberOfDestinationChannels == numberOfSourceChannels) + { + for (int i = 0; i < numberOfSourceChannels; ++i) + { + channel(i)->copyFrom(sourceBus.channel(i)); + } + } + else + { + switch (channelInterpretation) + { + case ChannelInterpretation::Speakers: speakersCopyFrom(sourceBus); break; + case ChannelInterpretation::Discrete: discreteCopyFrom(sourceBus); break; + default: + ASSERT_NOT_REACHED(); + } + } +} + +void AudioBus::sumFrom(const AudioBus & sourceBus, ChannelInterpretation channelInterpretation) +{ + if (&sourceBus == this) return; + + int numberOfSourceChannels = sourceBus.numberOfChannels(); + int numberOfDestinationChannels = numberOfChannels(); + + if (numberOfDestinationChannels == numberOfSourceChannels) + { + for (int i = 0; i < numberOfSourceChannels; ++i) + { + channel(i)->sumFrom(sourceBus.channel(i)); + } + } + else + { + switch (channelInterpretation) + { + case ChannelInterpretation::Speakers: speakersSumFrom(sourceBus); break; + case ChannelInterpretation::Discrete: discreteSumFrom(sourceBus); break; + default: + ASSERT_NOT_REACHED(); + } + } +} + +void AudioBus::speakersCopyFrom(const AudioBus & sourceBus) +{ + // FIXME: Implement down mixing 5.1 to stereo. + // https://bugs.webkit.org/show_bug.cgi?id=79192 + + const int numberOfSourceChannels = sourceBus.numberOfChannels(); + const int numberOfDestinationChannels = numberOfChannels(); + + if (numberOfDestinationChannels == Channels::Stereo && numberOfSourceChannels == Channels::Mono) + { + // Handle mono -> stereo case (for now simply copy mono channel into both left and right) + // FIXME: Really we should apply an equal-power scaling factor here, since we're effectively panning center... + const AudioChannel * sourceChannel = sourceBus.channel(0); + channelByType(Channel::Left)->copyFrom(sourceChannel); + channelByType(Channel::Right)->copyFrom(sourceChannel); + } + else if (numberOfDestinationChannels == Channels::Mono && numberOfSourceChannels == Channels::Stereo) + { + // Handle stereo -> mono case. output = 0.5 * (input.L + input.R). + AudioBus & sourceBusSafe = const_cast(sourceBus); + + const float * sourceL = sourceBusSafe.channelByType(Channel::Left)->data(); + const float * sourceR = sourceBusSafe.channelByType(Channel::Right)->data(); + + float * destination = channelByType(Channel::Left)->mutableData(); + vadd(sourceL, 1, sourceR, 1, destination, 1, length()); + float scale = 0.5; + vsmul(destination, 1, &scale, destination, 1, length()); + } + else if (numberOfDestinationChannels == Channels::Surround_5_1 && numberOfSourceChannels == Channels::Mono) + { + // Handle mono -> 5.1 case, copy mono channel to center. + channelByType(Channel::Center)->copyFrom(sourceBus.channel(0)); + channelByType(Channel::Left)->zero(); + channelByType(Channel::Right)->zero(); + channelByType(Channel::LFE)->zero(); + channelByType(Channel::SurroundLeft)->zero(); + channelByType(Channel::SurroundRight)->zero(); + } + else if (numberOfDestinationChannels == Channels::Mono && numberOfSourceChannels == Channels::Surround_5_1) + { + // Handle 5.1 -> mono case. + zero(); + speakersSumFrom5_1_ToMono(sourceBus); + } + else if (numberOfDestinationChannels == Channels::Surround_7_1 && numberOfSourceChannels == Channels::Mono) + { + // Handle mono -> 7.1 case, copy mono channel to center. + channelByType(Channel::Center)->copyFrom(sourceBus.channel(0)); + channelByType(Channel::Left)->zero(); + channelByType(Channel::Right)->zero(); + channelByType(Channel::LFE)->zero(); + channelByType(Channel::SurroundLeft)->zero(); + channelByType(Channel::SurroundRight)->zero(); + channelByType(Channel::BackLeft)->zero(); + channelByType(Channel::BackRight)->zero(); + } + else if (numberOfDestinationChannels == Channels::Mono && numberOfSourceChannels == Channels::Surround_7_1) + { + // Handle 7.1 -> mono case. + zero(); + speakersSumFrom7_1_ToMono(sourceBus); + } + else + { + // Fallback for unknown combinations. + discreteCopyFrom(sourceBus); + } +} + +void AudioBus::speakersSumFrom(const AudioBus & sourceBus) +{ + // FIXME: Implement down mixing 5.1 && 7.1 to stereo. + // https://bugs.webkit.org/show_bug.cgi?id=79192 + + const int numberOfSourceChannels = sourceBus.numberOfChannels(); + const int numberOfDestinationChannels = numberOfChannels(); + + if (numberOfDestinationChannels == Channels::Stereo && numberOfSourceChannels == Channels::Mono) + { + // Handle mono -> stereo case (summing mono channel into both left and right). + const AudioChannel * sourceChannel = sourceBus.channel(0); + channelByType(Channel::Left)->sumFrom(sourceChannel); + channelByType(Channel::Right)->sumFrom(sourceChannel); + } + else if (numberOfDestinationChannels == Channels::Mono && numberOfSourceChannels == Channels::Stereo) + { + // Handle stereo -> mono case. output += 0.5 * (input.L + input.R). + AudioBus & sourceBusSafe = const_cast(sourceBus); + + const float * sourceL = sourceBusSafe.channelByType(Channel::Left)->data(); + const float * sourceR = sourceBusSafe.channelByType(Channel::Right)->data(); + + float * destination = channelByType(Channel::Left)->mutableData(); + float scale = 0.5; + vsma(sourceL, 1, &scale, destination, 1, length()); + vsma(sourceR, 1, &scale, destination, 1, length()); + } + else if (numberOfDestinationChannels == Channels::Surround_5_1 && numberOfSourceChannels == Channels::Mono) + { + // Handle mono -> 5.1 case, sum mono channel into center. + channelByType(Channel::Center)->sumFrom(sourceBus.channel(0)); + } + else if (numberOfDestinationChannels == Channels::Mono && numberOfSourceChannels == Channels::Surround_5_1) + { + // Handle 5.1 -> mono case. + speakersSumFrom5_1_ToMono(sourceBus); + } + else if (numberOfDestinationChannels == Channels::Surround_7_1 && numberOfSourceChannels == Channels::Mono) + { + // Handle mono -> 7.1 case, sum mono channel into center. + channelByType(Channel::Center)->sumFrom(sourceBus.channel(0)); + } + else if (numberOfDestinationChannels == Channels::Mono && numberOfSourceChannels == Channels::Surround_7_1) + { + // Handle 7.1 -> mono case. + speakersSumFrom7_1_ToMono(sourceBus); + } + else + { + // Fallback for unknown combinations. + discreteSumFrom(sourceBus); + } +} + +void AudioBus::speakersSumFrom5_1_ToMono(const AudioBus & sourceBus) +{ + AudioBus & sourceBusSafe = const_cast(sourceBus); + + const float * sourceL = sourceBusSafe.channelByType(Channel::Left)->data(); + const float * sourceR = sourceBusSafe.channelByType(Channel::Right)->data(); + const float * sourceC = sourceBusSafe.channelByType(Channel::Center)->data(); + const float * sourceSL = sourceBusSafe.channelByType(Channel::SurroundLeft)->data(); + const float * sourceSR = sourceBusSafe.channelByType(Channel::SurroundRight)->data(); + + float * destination = channelByType(Channel::Left)->mutableData(); + + AudioFloatArray temp(length()); + float * tempData = temp.data(); + + // Sum in L and R. + vadd(sourceL, 1, sourceR, 1, tempData, 1, length()); + float scale = 0.7071f; + vsmul(tempData, 1, &scale, tempData, 1, length()); + vadd(tempData, 1, destination, 1, destination, 1, length()); + + // Sum in SL and SR. + vadd(sourceSL, 1, sourceSR, 1, tempData, 1, length()); + scale = 0.5; + vsmul(tempData, 1, &scale, tempData, 1, length()); + vadd(tempData, 1, destination, 1, destination, 1, length()); + + // Sum in center. + vadd(sourceC, 1, destination, 1, destination, 1, length()); +} + +void AudioBus::speakersSumFrom7_1_ToMono(const AudioBus & sourceBus) +{ + AudioBus & sourceBusSafe = const_cast(sourceBus); + + const float * sourceL = sourceBusSafe.channelByType(Channel::Left)->data(); + const float * sourceR = sourceBusSafe.channelByType(Channel::Right)->data(); + const float * sourceC = sourceBusSafe.channelByType(Channel::Center)->data(); + const float * sourceSL = sourceBusSafe.channelByType(Channel::SurroundLeft)->data(); + const float * sourceSR = sourceBusSafe.channelByType(Channel::SurroundRight)->data(); + const float * sourceBL = sourceBusSafe.channelByType(Channel::BackLeft)->data(); + const float * sourceBR = sourceBusSafe.channelByType(Channel::BackRight)->data(); + + float * destination = channelByType(Channel::Left)->mutableData(); + + AudioFloatArray temp(length()); + float * tempData = temp.data(); + + // Sum in L and R. + vadd(sourceL, 1, sourceR, 1, tempData, 1, length()); + float scale = 0.7071f; + vsmul(tempData, 1, &scale, tempData, 1, length()); + vadd(tempData, 1, destination, 1, destination, 1, length()); + + // Sum in SL and SR. + vadd(sourceSL, 1, sourceSR, 1, tempData, 1, length()); + scale = 0.5; + vsmul(tempData, 1, &scale, tempData, 1, length()); + vadd(tempData, 1, destination, 1, destination, 1, length()); + + // Sum in BL and BR. + vadd(sourceBL, 1, sourceBR, 1, tempData, 1, length()); + scale = 0.5; + vsmul(tempData, 1, &scale, tempData, 1, length()); + vadd(tempData, 1, destination, 1, destination, 1, length()); + + // Sum in center. + vadd(sourceC, 1, destination, 1, destination, 1, length()); +} + +void AudioBus::discreteCopyFrom(const AudioBus & sourceBus) +{ + const int numberOfSourceChannels = sourceBus.numberOfChannels(); + const int numberOfDestinationChannels = numberOfChannels(); + + if (numberOfDestinationChannels < numberOfSourceChannels) + { + // Down-mix by copying channels and dropping the remaining. + for (int i = 0; i < numberOfDestinationChannels; ++i) + { + channel(i)->copyFrom(sourceBus.channel(i)); + } + } + else if (numberOfDestinationChannels > numberOfSourceChannels) + { + // Up-mix by copying as many channels as we have, then zeroing remaining channels. + for (int i = 0; i < numberOfSourceChannels; ++i) + { + channel(i)->copyFrom(sourceBus.channel(i)); + } + + for (int i = numberOfSourceChannels; i < numberOfDestinationChannels; ++i) + { + channel(i)->zero(); + } + } +} + +void AudioBus::discreteSumFrom(const AudioBus & sourceBus) +{ + const int numberOfSourceChannels = sourceBus.numberOfChannels(); + const int numberOfDestinationChannels = numberOfChannels(); + + if (numberOfDestinationChannels < numberOfSourceChannels) + { + // Down-mix by summing channels and dropping the remaining. + for (int i = 0; i < numberOfDestinationChannels; ++i) + { + channel(i)->sumFrom(sourceBus.channel(i)); + } + } + else if (numberOfDestinationChannels > numberOfSourceChannels) + { + // Up-mix by summing as many channels as we have. + for (int i = 0; i < numberOfSourceChannels; ++i) + { + channel(i)->sumFrom(sourceBus.channel(i)); + } + } +} + +void AudioBus::copyWithGainFrom(const AudioBus & sourceBus, float * lastMixGain, float targetGain) +{ + if (!topologyMatches(sourceBus)) + { + // happens if a connection has been made, but the channel count has yet to be propagated. + zero(); + return; + } + + if (sourceBus.isSilent()) + { + zero(); + return; + } + + const int numberOfChannels = static_cast(m_channels.size()); + ASSERT(numberOfChannels <= MaxBusChannels); + if (numberOfChannels > MaxBusChannels) return; + + // If it is copying from the same bus and no need to change gain, just return. + if ((this == &sourceBus) && (*lastMixGain == targetGain) && (targetGain == 1)) + { + return; + } + + AudioBus & sourceBusSafe = const_cast(sourceBus); + const float * sources[MaxBusChannels]; + float * destinations[MaxBusChannels]; + + for (int i = 0; i < numberOfChannels; ++i) + { + sources[i] = sourceBusSafe.channel(i)->data(); + destinations[i] = channel(i)->mutableData(); + } + + // We don't want to suddenly change the gain from mixing one time slice to the next, + // so we "de-zipper" by slowly changing the gain each sample-frame until we've achieved the target gain. + + // Take master bus gain into account as well as the targetGain. + float totalDesiredGain = static_cast(m_busGain * targetGain); + + // First time, snap directly to totalDesiredGain. + float gain = static_cast(m_isFirstTime ? totalDesiredGain : *lastMixGain); + m_isFirstTime = false; + + const float DezipperRate = 0.005f; + int framesToProcess = length(); + + // If the gain is within epsilon of totalDesiredGain, we can skip dezippering. + // FIXME: this value may need tweaking. + const float epsilon = 0.001f; + float gainDiff = fabs(totalDesiredGain - gain); + + // Number of frames to de-zipper before we are close enough to the target gain. + // FIXME: framesToDezipper could be smaller when target gain is close enough within this process loop. + int framesToDezipper = (gainDiff < epsilon) ? 0 : framesToProcess; + + if (framesToDezipper) + { + if (!m_dezipperGainValues.get() || m_dezipperGainValues->size() < framesToDezipper) + { + m_dezipperGainValues = std::unique_ptr(new AudioFloatArray(framesToDezipper)); + } + + float * gainValues = m_dezipperGainValues->data(); + + for (int i = 0; i < framesToDezipper; ++i) + { + gain += (totalDesiredGain - gain) * DezipperRate; + + // FIXME: If we are clever enough in calculating the framesToDezipper value, we can probably get + // rid of this DenormalDisabler::flushDenormalFloatToZero() call. + gain = DenormalDisabler::flushDenormalFloatToZero(gain); + *gainValues++ = gain; + } + + for (int channelIndex = 0; channelIndex < numberOfChannels; ++channelIndex) + { + vmul(sources[channelIndex], 1, m_dezipperGainValues->data(), 1, destinations[channelIndex], 1, framesToDezipper); + sources[channelIndex] += framesToDezipper; + destinations[channelIndex] += framesToDezipper; + } + } + else + { + gain = totalDesiredGain; + } + + // Apply constant gain after de-zippering has converged on target gain. + if (framesToDezipper < framesToProcess) + { + for (int channelIndex = 0; channelIndex < numberOfChannels; ++channelIndex) + { + vsmul(sources[channelIndex], 1, &gain, destinations[channelIndex], 1, framesToProcess - framesToDezipper); + } + } + + // Save the target gain as the starting point for next time around. + *lastMixGain = gain; +} + +void AudioBus::copyWithSampleAccurateGainValuesFrom(const AudioBus & sourceBus, float * gainValues, int numberOfGainValues) +{ + // Make sure we're processing from the same type of bus. + // We *are* able to process from mono -> stereo + if (sourceBus.numberOfChannels() != Channels::Mono && !topologyMatches(sourceBus)) + { + ASSERT_NOT_REACHED(); + return; + } + + if (!gainValues || numberOfGainValues > sourceBus.length()) + { + ASSERT_NOT_REACHED(); + return; + } + + if (sourceBus.length() == numberOfGainValues && sourceBus.length() == length() && sourceBus.isSilent()) + { + zero(); + return; + } + + // We handle both the 1 -> N and N -> N case here. + const float * source = sourceBus.channel(0)->data(); + for (int channelIndex = 0; channelIndex < numberOfChannels(); ++channelIndex) + { + if (sourceBus.numberOfChannels() == numberOfChannels()) + { + source = sourceBus.channel(channelIndex)->data(); + } + vmul(source, 1, gainValues, 1, channel(channelIndex)->mutableData(), 1, numberOfGainValues); + } +} + +std::unique_ptr AudioBus::createBySampleRateConverting(const AudioBus * sourceBus, bool mixToMono, float newSampleRate) +{ + // sourceBus's sample-rate must be known. + ASSERT(sourceBus && sourceBus->sampleRate()); + + if (!sourceBus || !sourceBus->sampleRate()) + { + return nullptr; + } + + double sourceSampleRate = sourceBus->sampleRate(); + float destinationSampleRate = static_cast(newSampleRate); + double sampleRateRatio = sourceSampleRate / destinationSampleRate; + int numberOfSourceChannels = sourceBus->numberOfChannels(); + + if (numberOfSourceChannels == Channels::Mono) + { + mixToMono = false; // already mono + } + + if (sourceSampleRate == destinationSampleRate) + { + // No sample-rate conversion is necessary. + if (mixToMono) return AudioBus::createByMixingToMono(sourceBus); + + // Return exact copy. + return AudioBus::createBufferFromRange(sourceBus, 0, sourceBus->length()); + } + + if (sourceBus->isSilent()) + { + std::unique_ptr silentBus(new AudioBus(numberOfSourceChannels, static_cast(sourceBus->length() / sampleRateRatio))); + silentBus->setSampleRate(newSampleRate); + return silentBus; + } + + // First, mix to mono (if necessary) then sample-rate convert. + const AudioBus * resamplerSourceBus; + std::unique_ptr mixedMonoBus; + if (mixToMono) + { + mixedMonoBus = AudioBus::createByMixingToMono(sourceBus); + resamplerSourceBus = mixedMonoBus.get(); + } + else + { + // Directly resample without down-mixing. + resamplerSourceBus = sourceBus; + } + + // Calculate destination length based on the sample-rates. + int sourceLength = resamplerSourceBus->length(); + int destinationLength = static_cast(sourceLength / sampleRateRatio); + + // Create destination bus with same number of channels. + int numberOfDestinationChannels = resamplerSourceBus->numberOfChannels(); + std::unique_ptr destinationBus(new AudioBus(numberOfDestinationChannels, destinationLength)); + + // Sample-rate convert each channel. + for (int i = 0; i < numberOfDestinationChannels; ++i) + { + SRC_DATA convert; + convert.data_in = resamplerSourceBus->channel(i)->data(); + convert.data_out = destinationBus->channel(i)->mutableData(); + convert.input_frames = sourceLength; + convert.output_frames = destinationLength; + convert.input_frames_used = 0; + convert.output_frames_gen = 0; + convert.end_of_input = 0; + convert.src_ratio = 1. / sampleRateRatio; + int result = src_simple(&convert, SRC_SINC_FASTEST, 1); + if (result != 0) + { + std::unique_ptr silentBus(new AudioBus(numberOfSourceChannels, static_cast(sourceBus->length() / sampleRateRatio))); + silentBus->setSampleRate(newSampleRate); + return silentBus; + } + } + + destinationBus->clearSilentFlag(); + destinationBus->setSampleRate(newSampleRate); + return destinationBus; +} + +std::unique_ptr AudioBus::createByMixingToMono(const AudioBus * sourceBus) +{ + if (sourceBus->isSilent()) + { + return std::unique_ptr(new AudioBus(Channels::Mono, sourceBus->length())); + } + + switch (sourceBus->numberOfChannels()) + { + case Channels::Mono: + // Simply create an exact copy. + return AudioBus::createBufferFromRange(sourceBus, 0, sourceBus->length()); + default: + { + const int n = sourceBus->length(); + const int m = sourceBus->numberOfChannels(); + std::unique_ptr destinationBus(new AudioBus(Channels::Mono, n)); + float * destination = destinationBus->channel(0)->mutableData(); + + // Do the mono mixdown. + for (int i = 0; i < n; ++i) + { + destination[i] = 0.0; + + for (int j = 0; j < m; ++j) + { + const float * source = sourceBus->channel(j)->data(); + destination[j] += source[j]; + } + + destination[i] /= m; + } + + destinationBus->clearSilentFlag(); + destinationBus->setSampleRate(sourceBus->sampleRate()); + + return destinationBus; + } + } + + ASSERT_NOT_REACHED(); + + return nullptr; +} + +bool AudioBus::isSilent() const +{ + for (int i = 0; i < m_channels.size(); ++i) + { + if (!m_channels[i]->isSilent()) + { + return false; + } + } + return true; +} + +void AudioBus::clearSilentFlag() +{ + for (int i = 0; i < m_channels.size(); ++i) + { + m_channels[i]->clearSilentFlag(); + } +} + +} // end namespace lab diff --git a/sources/LabSound/src/core/AudioChannel.cpp b/sources/LabSound/src/core/AudioChannel.cpp new file mode 100644 index 00000000..b9833f40 --- /dev/null +++ b/sources/LabSound/src/core/AudioChannel.cpp @@ -0,0 +1,97 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/Assertions.h" +#include "internal/VectorMath.h" + +#include "LabSound/core/AudioChannel.h" + +#include +#include + +namespace lab +{ +void AudioChannel::resizeSmaller(int newLength) +{ + ASSERT(newLength <= m_length); + if (newLength <= m_length) m_length = newLength; +} + +void AudioChannel::scale(float scale) +{ + if (isSilent()) return; + VectorMath::vsmul(data(), 1, &scale, mutableData(), 1, length()); +} + +void AudioChannel::copyFrom(const AudioChannel * sourceChannel) +{ + bool isSafe = (sourceChannel && sourceChannel->length() >= length()); + ASSERT(isSafe); + if (!isSafe) return; + + if (sourceChannel->isSilent()) + { + zero(); + return; + } + memcpy(mutableData(), sourceChannel->data(), sizeof(float) * length()); +} + +void AudioChannel::copyFromRange(const AudioChannel * sourceChannel, int startFrame, int endFrame) +{ + // Check that range is safe for reading from sourceChannel. + bool isRangeSafe = sourceChannel && startFrame < endFrame && endFrame <= sourceChannel->length(); + ASSERT(isRangeSafe); + if (!isRangeSafe) return; + + if (sourceChannel->isSilent() && isSilent()) return; + + // Check that this channel has enough space. + size_t rangeLength = endFrame - startFrame; + bool isRangeLengthSafe = rangeLength <= length(); + ASSERT(isRangeLengthSafe); + + if (!isRangeLengthSafe) return; + + const float * source = sourceChannel->data(); + float * destination = mutableData(); + + if (sourceChannel->isSilent()) + { + if (rangeLength == length()) + zero(); + else + memset(destination, 0, sizeof(float) * rangeLength); + } + else + memcpy(destination, source + startFrame, sizeof(float) * rangeLength); +} + +void AudioChannel::sumFrom(const AudioChannel * sourceChannel) +{ + bool isSafe = sourceChannel && sourceChannel->length() >= length(); + ASSERT(isSafe); + + if (!isSafe) return; + + if (sourceChannel->isSilent()) return; + if (isSilent()) + { + copyFrom(sourceChannel); + } + else + { + VectorMath::vadd(data(), 1, sourceChannel->data(), 1, mutableData(), 1, length()); + } +} + +float AudioChannel::maxAbsValue() const +{ + if (isSilent()) return 0; + float max = 0; + VectorMath::vmaxmgv(data(), 1, &max, length()); + return max; +} + +} // lab diff --git a/sources/LabSound/src/core/AudioContext.cpp b/sources/LabSound/src/core/AudioContext.cpp new file mode 100644 index 00000000..8f2c4d14 --- /dev/null +++ b/sources/LabSound/src/core/AudioContext.cpp @@ -0,0 +1,673 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AnalyserNode.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioHardwareInputNode.h" +#include "LabSound/core/AudioListener.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/NullDeviceNode.h" +#include "LabSound/core/OscillatorNode.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" + +#include "concurrentqueue/concurrentqueue.h" +#include "libnyquist/Encoders.h" + +#include +#include +#include + +namespace lab +{ +enum class ConnectionOperationKind : int +{ + Disconnect = 0, + Connect, + FinishDisconnect +}; + +struct PendingNodeConnection +{ + ConnectionOperationKind type; + std::shared_ptr destination; + std::shared_ptr source; + int destIndex = 0; + int srcIndex = 0; + float duration = 0.1f; + + PendingNodeConnection() = default; + ~PendingNodeConnection() = default; +}; + +struct PendingParamConnection +{ + ConnectionOperationKind type; + std::shared_ptr destination; + std::shared_ptr source; + int destIndex = 0; + + PendingParamConnection() = default; + ~PendingParamConnection() = default; +}; + +struct AudioContext::Internals +{ + Internals(bool a) + : autoDispatchEvents(a) + { + } + ~Internals() = default; + + bool autoDispatchEvents; + moodycamel::ConcurrentQueue> enqueuedEvents; + moodycamel::ConcurrentQueue pendingNodeConnections; + moodycamel::ConcurrentQueue pendingParamConnections; + + std::vector debugBuffer; + const int debugBufferCapacity = 1024 * 1024; + int debugBufferIndex = 0; + + void appendDebugBuffer(AudioBus* bus, int channel, int count) + { + if (!bus || bus->numberOfChannels() < channel || !count) + return; + + if (!debugBuffer.size()) + { + debugBuffer.resize(debugBufferCapacity); + memset(debugBuffer.data(), 0, debugBufferCapacity); + } + + if (debugBufferIndex + count > debugBufferCapacity) + debugBufferIndex = 0; + + memcpy(debugBuffer.data() + debugBufferIndex, bus->channel(channel)->data(), sizeof(float) * count); + debugBufferIndex += count; + } + + void flushDebugBuffer(char const* const wavFilePath) + { + if (!debugBufferIndex || !wavFilePath) + return; + + nqr::AudioData fileData; + fileData.samples.resize(debugBufferIndex + 32); + fileData.channelCount = 1; + float* dst = fileData.samples.data(); + memcpy(dst, debugBuffer.data(), sizeof(float) * debugBufferIndex); + fileData.sampleRate = static_cast(44100); + fileData.sourceFormat = nqr::PCM_FLT; + nqr::EncoderParams params = { 1, nqr::PCM_FLT, nqr::DITHER_NONE }; + int err = nqr::encode_wav_to_disk(params, &fileData, wavFilePath); + debugBufferIndex = 0; + } +}; + +void AudioContext::appendDebugBuffer(AudioBus* bus, int channel, int count) +{ + m_internal->appendDebugBuffer(bus, channel, count); +} + +void AudioContext::flushDebugBuffer(char const* const wavFilePath) +{ + m_internal->flushDebugBuffer(wavFilePath); +} + +AudioContext::AudioContext(bool isOffline, bool autoDispatchEvents) + : m_isOfflineContext(isOffline) +{ + static std::atomic id {1}; + m_internal.reset(new AudioContext::Internals(autoDispatchEvents)); + m_listener.reset(new AudioListener()); + m_audioContextInterface = std::make_shared(this, id); + ++id; + + if (isOffline) + { + updateThreadShouldRun = 1; + graphKeepAlive = 0; + } +} + +AudioContext::~AudioContext() +{ + LOG_TRACE("Begin AudioContext::~AudioContext()"); + + m_audioContextInterface.reset(); + + if (!isOfflineContext()) + graphKeepAlive = 0.25f; + + updateThreadShouldRun = 0; + cv.notify_all(); + + if (graphUpdateThread.joinable()) + graphUpdateThread.join(); + + m_listener.reset(); + + uninitialize(); + +#if USE_ACCELERATE_FFT + FFTFrame::cleanup(); +#endif + + ASSERT(!m_isInitialized); + ASSERT(!m_automaticPullNodes.size()); + ASSERT(!m_renderingAutomaticPullNodes.size()); + + LOG_INFO("Finish AudioContext::~AudioContext()"); +} + +void AudioContext::lazyInitialize() +{ + if (m_isInitialized) + return; + + // Don't allow the context to initialize a second time after it's already been explicitly uninitialized. + ASSERT(!m_isAudioThreadFinished); + if (m_isAudioThreadFinished) + return; + + if (m_device.get()) + { + if (!isOfflineContext()) + { + // This starts the audio thread and all audio rendering. + // The destination node's provideInput() method will now be called repeatedly to render audio. + // Each time provideInput() is called, a portion of the audio stream is rendered. + + graphKeepAlive = 0.25f; // pump the graph for the first 0.25 seconds + graphUpdateThread = std::thread(&AudioContext::update, this); + device_callback->start(); + } + + cv.notify_all(); + m_isInitialized = true; + } + else + { + LOG_ERROR("m_device not specified"); + ASSERT(m_device); + } +} + +void AudioContext::uninitialize() +{ + LOG_TRACE("AudioContext::uninitialize()"); + + if (!m_isInitialized) + return; + + // for the case where an OfflineAudioDestinationNode needs to update the graph: + updateAutomaticPullNodes(); + + // This stops the audio thread and all audio rendering. + device_callback->stop(); + + // Don't allow the context to initialize a second time after it's already been explicitly uninitialized. + m_isAudioThreadFinished = true; + + updateAutomaticPullNodes(); // added for the case where an NullDeviceNode needs to update the graph + + m_isInitialized = false; +} + +bool AudioContext::isInitialized() const +{ + return m_isInitialized; +} + +void AudioContext::handlePreRenderTasks(ContextRenderLock & r) +{ + // these may be null during application exit. + if (!r.context() || !m_audioContextInterface) + return; + + // At the beginning of every render quantum, update the graph. + + m_audioContextInterface->_currentTime = currentTime(); + + // check for pending connections + if (m_internal->pendingParamConnections.size_approx() > 0 || + m_internal->pendingNodeConnections.size_approx() > 0) + { + // take a graph lock until the queues are cleared + ContextGraphLock gLock(this, "AudioContext::handlePreRenderTasks()"); + + // resolve parameter connections + PendingParamConnection param_connection; + while (m_internal->pendingParamConnections.try_dequeue(param_connection)) + { + if (param_connection.type == ConnectionOperationKind::Connect) + { + AudioParam::connect(gLock, + param_connection.destination, + param_connection.source->output(param_connection.destIndex)); + + // if unscheduled, the source should start to play as soon as possible + if (!param_connection.source->isScheduledNode()) + param_connection.source->_scheduler.start(0); + } + else + AudioParam::disconnect(gLock, + param_connection.destination, + param_connection.source->output(param_connection.destIndex)); + } + + // resolve node connections + PendingNodeConnection node_connection; + std::vector requeued_connections; + while (m_internal->pendingNodeConnections.try_dequeue(node_connection)) + { + switch (node_connection.type) + { + case ConnectionOperationKind::Connect: + { + AudioNodeInput::connect(gLock, + node_connection.destination->input(node_connection.destIndex), + node_connection.source->output(node_connection.srcIndex)); + + if (!node_connection.source->isScheduledNode()) + node_connection.source->_scheduler.start(0); + } + break; + + case ConnectionOperationKind::Disconnect: + { + node_connection.type = ConnectionOperationKind::FinishDisconnect; + requeued_connections.push_back(node_connection); // save for later + if (node_connection.source) + { + // if source and destination are specified, then don't ramp out the destination + // source will be completely disconnected + node_connection.source->scheduleDisconnect(); + } + else if (node_connection.destination) + { + // destination will be completely disconnected + node_connection.destination->scheduleDisconnect(); + } + } + break; + + case ConnectionOperationKind::FinishDisconnect: + { + if (node_connection.duration > 0) + { + node_connection.duration -= AudioNode::ProcessingSizeInFrames / sampleRate(); + requeued_connections.push_back(node_connection); + continue; + } + + if (node_connection.source && node_connection.destination) + { + //if (!node_connection.destination->disconnectionReady() || !node_connection.source->disconnectionReady()) + // requeued_connections.push_back(node_connection); + //else + AudioNodeInput::disconnect(gLock, node_connection.destination->input(node_connection.destIndex), node_connection.source->output(node_connection.srcIndex)); + } + else if (node_connection.destination) + { + //if (!node_connection.destination->disconnectionReady()) + // requeued_connections.push_back(node_connection); + //else + for (int in = 0; in < node_connection.destination->numberOfInputs(); ++in) + { + auto input= node_connection.destination->input(in); + if (input) + AudioNodeInput::disconnectAll(gLock, input); + } + } + else if (node_connection.source) + { + //if (!node_connection.destination->disconnectionReady()) + // requeued_connections.push_back(node_connection); + //else + for (int out = 0; out < node_connection.source->numberOfOutputs(); ++out) + { + auto output = node_connection.source->output(out); + if (output) + AudioNodeOutput::disconnectAll(gLock, output); + } + } + } + break; + } + } + + // We have incompletely connected nodes, so next time the thread ticks we can re-check them + for (auto & sc : requeued_connections) + m_internal->pendingNodeConnections.enqueue(sc); + } + + AudioSummingJunction::handleDirtyAudioSummingJunctions(r); + updateAutomaticPullNodes(); +} + +void AudioContext::handlePostRenderTasks(ContextRenderLock & r) +{ + ASSERT(r.context()); + AudioSummingJunction::handleDirtyAudioSummingJunctions(r); + updateAutomaticPullNodes(); +} + +void AudioContext::synchronizeConnections(int timeOut_ms) +{ + cv.notify_all(); + + // don't synch if the context is suspended as that will simply max out the timeout + if (!device_callback->isRunning()) + return; + + while (m_internal->pendingNodeConnections.size_approx() > 0 && timeOut_ms > 0) + { + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + timeOut_ms -= 5; + } +} + + +void AudioContext::connect(std::shared_ptr destination, std::shared_ptr source, int destIdx, int srcIdx) +{ + if (!destination) + throw std::runtime_error("Cannot connect to null destination"); + if (!source) + throw std::runtime_error("Cannot connect from null source"); + if (srcIdx > source->numberOfOutputs()) + throw std::out_of_range("Output index greater than available outputs"); + if (destIdx > destination->numberOfInputs()) + throw std::out_of_range("Input index greater than available inputs"); + m_internal->pendingNodeConnections.enqueue({ConnectionOperationKind::Connect, destination, source, destIdx, srcIdx}); +} + +void AudioContext::disconnect(std::shared_ptr destination, std::shared_ptr source, int destIdx, int srcIdx) +{ + if (!destination && !source) + return; + if (source && srcIdx > source->numberOfOutputs()) + throw std::out_of_range("Output index greater than available outputs"); + if (destination && destIdx > destination->numberOfInputs()) + throw std::out_of_range("Input index greater than available inputs"); + m_internal->pendingNodeConnections.enqueue({ConnectionOperationKind::Disconnect, destination, source, destIdx, srcIdx}); +} + +void AudioContext::disconnect(std::shared_ptr node, int index) +{ + if (!node) + return; + m_internal->pendingNodeConnections.enqueue({ConnectionOperationKind::Disconnect, node, std::shared_ptr(), index, 0}); +} + +bool AudioContext::isConnected(std::shared_ptr destination, std::shared_ptr source) +{ + if (!destination || !source) + return false; + + AudioNode* n = source.get(); + for (int i = 0; i < destination->numberOfInputs(); ++i) + { + auto c = destination->input(i); + if (c->destinationNode() == n) + return true; + } + + return false; +} + + +void AudioContext::connectParam(std::shared_ptr param, std::shared_ptr driver, int index) +{ + if (!param) + throw std::invalid_argument("No parameter specified"); + if (!driver) + throw std::invalid_argument("No driving node supplied"); + if (index >= driver->numberOfOutputs()) + throw std::out_of_range("Output index greater than available outputs on the driver"); + m_internal->pendingParamConnections.enqueue({ConnectionOperationKind::Connect, param, driver, index}); +} + + +// connect a named parameter on a node to receive the indexed output of a node +void AudioContext::connectParam(std::shared_ptr destinationNode, char const*const parameterName, + std::shared_ptr driver, int index) +{ + if (!parameterName) + throw std::invalid_argument("No parameter specified"); + + std::shared_ptr param = destinationNode->param(parameterName); + if (!param) + throw std::invalid_argument("Parameter not found on node"); + + if (!driver) + throw std::invalid_argument("No driving node supplied"); + + if (index >= driver->numberOfOutputs()) + throw std::out_of_range("Output index greater than available outputs on the driver"); + + m_internal->pendingParamConnections.enqueue({ConnectionOperationKind::Connect, param, driver, index}); +} + + +void AudioContext::disconnectParam(std::shared_ptr param, std::shared_ptr driver, int index) +{ + if (!param) + throw std::invalid_argument("No parameter specified"); + + if (index >= driver->numberOfOutputs()) + throw std::out_of_range("Output index greater than available outputs on the driver"); + + m_internal->pendingParamConnections.enqueue({ConnectionOperationKind::Disconnect, param, driver, index}); +} + +void AudioContext::update() +{ + if (!m_isOfflineContext) { LOG_TRACE("Begin UpdateGraphThread"); } + + const float frameLengthInMilliseconds = (sampleRate() / (float) AudioNode::ProcessingSizeInFrames) / 1000.f; // = ~0.345ms @ 44.1k/128 + const float graphTickDurationMs = frameLengthInMilliseconds * 16; // = ~5.5ms + const uint32_t graphTickDurationUs = static_cast(graphTickDurationMs * 1000.f); // = ~5550us + + ASSERT(frameLengthInMilliseconds); + ASSERT(graphTickDurationMs); + ASSERT(graphTickDurationUs); + + // graphKeepAlive keeps the thread alive momentarily (letting tail tasks + // finish) even updateThreadShouldRun has been signaled. + while (updateThreadShouldRun != 0 || graphKeepAlive > 0) + { + if (updateThreadShouldRun > 0) + --updateThreadShouldRun; + + // A `unique_lock` automatically acquires a lock on construction. The purpose of + // this mutex is to synchronize updates to the graph from the main thread, + // primarily through `connect(...)` and `disconnect(...)`. + std::unique_lock lk; + + if (!m_isOfflineContext) + { + lk = std::unique_lock(m_updateMutex); + cv.wait_until(lk, std::chrono::steady_clock::now() + std::chrono::microseconds(5000)); // awake every five milliseconds + } + + if (m_internal->autoDispatchEvents) + dispatchEvents(); + + { + const double now = currentTime(); + const float delta = static_cast(now - lastGraphUpdateTime); + lastGraphUpdateTime = static_cast(now); + graphKeepAlive -= delta; + } + + if (lk.owns_lock()) + lk.unlock(); + + if (!updateThreadShouldRun) + break; + } + + if (!m_isOfflineContext) { LOG_TRACE("End UpdateGraphThread"); } +} + +void AudioContext::addAutomaticPullNode(std::shared_ptr node) +{ + std::lock_guard lock(m_updateMutex); + if (m_automaticPullNodes.find(node) == m_automaticPullNodes.end()) + { + m_automaticPullNodes.insert(node); + m_automaticPullNodesNeedUpdating = true; + if (!node->isScheduledNode()) + { + node->_scheduler.start(0); + } + } +} + +void AudioContext::removeAutomaticPullNode(std::shared_ptr node) +{ + std::lock_guard lock(m_updateMutex); + auto it = m_automaticPullNodes.find(node); + if (it != m_automaticPullNodes.end()) + { + m_automaticPullNodes.erase(it); + m_automaticPullNodesNeedUpdating = true; + } +} + +void AudioContext::updateAutomaticPullNodes() +{ + /// @TODO this seems like work for the update thread. + /// m_automaticPullNodesNeedUpdating can go away in favor of + /// add and remove doing a cv.notify. + /// m_automaticPullNodes should be an add/remove vector + /// m_renderingAutomaticPullNodes should be the actual live vector + if (m_automaticPullNodesNeedUpdating) + { + std::lock_guard lock(m_updateMutex); + + // Copy from m_automaticPullNodes to m_renderingAutomaticPullNodes. + m_renderingAutomaticPullNodes.resize(m_automaticPullNodes.size()); + + unsigned j = 0; + for (auto i = m_automaticPullNodes.begin(); i != m_automaticPullNodes.end(); ++i, ++j) + { + m_renderingAutomaticPullNodes[j] = *i; + } + + m_automaticPullNodesNeedUpdating = false; + } +} + +void AudioContext::processAutomaticPullNodes(ContextRenderLock & r, int framesToProcess) +{ + for (unsigned i = 0; i < m_renderingAutomaticPullNodes.size(); ++i) + { + m_renderingAutomaticPullNodes[i]->processIfNecessary(r, framesToProcess); + } +} + +void AudioContext::enqueueEvent(std::function & fn) +{ + m_internal->enqueuedEvents.enqueue(fn); + cv.notify_all(); // processing thread must dispatch events +} + +void AudioContext::dispatchEvents() +{ + std::function event_fn; + while (m_internal->enqueuedEvents.try_dequeue(event_fn)) + { + if (event_fn) event_fn(); + } +} + +void AudioContext::setDeviceNode(std::shared_ptr device) +{ + m_device = device; + + if (auto * callback = dynamic_cast(device.get())) + { + device_callback = callback; + } +} + +std::shared_ptr AudioContext::device() +{ + return m_device; +} + +bool AudioContext::isOfflineContext() const +{ + return m_isOfflineContext; +} + +std::shared_ptr AudioContext::listener() +{ + return m_listener; +} + +double AudioContext::currentTime() const +{ + return device_callback->getSamplingInfo().current_time; +} + +uint64_t AudioContext::currentSampleFrame() const +{ + return device_callback->getSamplingInfo().current_sample_frame; +} + +double AudioContext::predictedCurrentTime() const +{ + auto info = device_callback->getSamplingInfo(); + uint64_t t = info.current_sample_frame; + double val = t / info.sampling_rate; + auto t2 = std::chrono::high_resolution_clock::now(); + int index = t & 1; + + if (!info.epoch[index].time_since_epoch().count()) + return val; + + std::chrono::duration elapsed = std::chrono::high_resolution_clock::now() - info.epoch[index]; + return val + elapsed.count(); +} + +float AudioContext::sampleRate() const +{ + // sampleRate is called during AudioNode construction to initialize the + // scheduler, but DeviceNodes are not scheduled. + // during construction of DeviceNodes, the device_callback will not yet be + // ready, so bail out. + if (!device_callback) + return 0; + + return device_callback->getSamplingInfo().sampling_rate; +} + +void AudioContext::startOfflineRendering() +{ + if (!m_isOfflineContext) + throw std::runtime_error("context was not constructed for offline rendering"); + + m_isInitialized = true; + device_callback->start(); +} + +void AudioContext::suspend() +{ + device_callback->stop(); +} + +// if the context was suspended, resume the progression of time and processing in the audio context +void AudioContext::resume() +{ + device_callback->start(); +} + + +} // End namespace lab diff --git a/sources/LabSound/src/core/AudioDevice.cpp b/sources/LabSound/src/core/AudioDevice.cpp new file mode 100644 index 00000000..92067ff4 --- /dev/null +++ b/sources/LabSound/src/core/AudioDevice.cpp @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioSourceProvider.h" +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" +#include "internal/DenormalDisabler.h" + +// Non platform-specific helper functions + +using namespace lab; + +void lab::pull_graph(AudioContext * ctx, AudioNodeInput * required_inlet, AudioBus * src, AudioBus * dst, int frames, + const SamplingInfo & info, AudioHardwareInput * optional_hardware_input) +{ + // The audio system might still be invoking callbacks during shutdown, so bail out if so. + if (!ctx) + return; + + // bail if shutting down. + auto ac = ctx->audioContextInterface().lock(); + if (!ac) + return; + + ASSERT(required_inlet); + + ContextRenderLock renderLock(ctx, "lab::pull_graph"); + if (!renderLock.context()) return; // return if couldn't acquire lock + + if (!ctx->isInitialized()) + { + dst->zero(); + return; + } + + // Denormals can slow down audio processing. + // Use an RAII object to protect all AudioNodes processed within this scope. + + /// @TODO under what circumstance do they arise? + /// If they come from input data such as loaded WAV files, they should be corrected + /// at source. If they can result from signal processing; again, where? The + /// signal processing should not produce denormalized values. + + DenormalDisabler denormalDisabler; + + // Let the context take care of any business at the start of each render quantum. + ctx->handlePreRenderTasks(renderLock); + + // Prepare the local audio input provider for this render quantum. + if (optional_hardware_input && src) + { + optional_hardware_input->set(src); + } + + // process the graph by pulling the inputs, which will recurse the entire processing graph. + AudioBus * renderedBus = required_inlet->pull(renderLock, dst, frames); + + if (!renderedBus) + { + dst->zero(); + } + else if (renderedBus != dst) + { + // in-place processing was not possible - so copy + dst->copyFrom(*renderedBus); + } + + // Process nodes which need extra help because they are not connected to anything, + // but still have work to do + ctx->processAutomaticPullNodes(renderLock, frames); + + // Let the context take care of any business at the end of each render quantum. + ctx->handlePostRenderTasks(renderLock); +} diff --git a/sources/LabSound/src/core/AudioHardwareDeviceNode.cpp b/sources/LabSound/src/core/AudioHardwareDeviceNode.cpp new file mode 100644 index 00000000..e4b282be --- /dev/null +++ b/sources/LabSound/src/core/AudioHardwareDeviceNode.cpp @@ -0,0 +1,152 @@ +// SPDX-License-Identifier: BSD-3-Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioHardwareDeviceNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioDevice.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSourceProvider.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/DenormalDisabler.h" + +#include + +using namespace lab; + +///////////////////////////////// +// AudioHardwareDeviceNode // +///////////////////////////////// + +AudioHardwareDeviceNode::AudioHardwareDeviceNode(AudioContext & context, + const AudioStreamConfig & outputConfig, + const AudioStreamConfig & inputConfig) + : AudioNode(context) + , m_context(&context) + , outConfig(outputConfig) + , inConfig(inputConfig) +{ + // Ensure that input and output sample rates match + if (inputConfig.device_index != -1 && outputConfig.device_index != -1) + { + ASSERT(outputConfig.desired_samplerate == inputConfig.desired_samplerate); + } + + m_platformAudioDevice = std::unique_ptr(AudioDevice::MakePlatformSpecificDevice(*this, outputConfig, inputConfig)); + + LOG_INFO("MakePlatformSpecificDevice() \n" + "\t* Sample Rate: %f \n" + "\t* Input Channels: %i \n" + "\t* Output Channels: %i ", + outputConfig.desired_samplerate, inputConfig.desired_channels, outputConfig.desired_channels); + + if (inputConfig.device_index != -1) + { + m_audioHardwareInput = new AudioHardwareInput(inputConfig.desired_channels); + } + + // This is the "final node" in the chain. It will pull on all others from this input. + addInput(std::make_unique(this)); + + // Node-specific default mixing rules. + //m_channelCount = outputConfig.desired_channels; + m_channelCountMode = ChannelCountMode::Explicit; + m_channelInterpretation = ChannelInterpretation::Speakers; + + ContextGraphLock glock(&context, "AudioHardwareDeviceNode"); + AudioNode::setChannelCount(glock, outputConfig.desired_channels); + + // Info is provided by the backend every frame, but some nodes need to be constructed + // with a valid sample rate before the first frame so we make our best guess here + last_info = {}; + last_info.sampling_rate = outputConfig.desired_samplerate; + + initialize(); +} + +AudioHardwareDeviceNode::~AudioHardwareDeviceNode() +{ + uninitialize(); +} + +void AudioHardwareDeviceNode::initialize() +{ + if (!isInitialized()) + AudioNode::initialize(); +} + +void AudioHardwareDeviceNode::uninitialize() +{ + if (!isInitialized()) return; + m_platformAudioDevice->stop(); + AudioNode::uninitialize(); + m_platformAudioDevice.reset(); +} + +void AudioHardwareDeviceNode::start() +{ + initialize(); // presumably called by the context + + if (isInitialized()) + { + m_platformAudioDevice->start(); + } +} + +void AudioHardwareDeviceNode::backendReinitialize() +{ + m_platformAudioDevice->backendReinitialize(); +} + +void AudioHardwareDeviceNode::stop() +{ + m_platformAudioDevice->stop(); +} + +bool AudioHardwareDeviceNode::isRunning() const +{ + return m_platformAudioDevice->isRunning(); +} + +const SamplingInfo & AudioHardwareDeviceNode::getSamplingInfo() const +{ + return last_info; +} + +const AudioStreamConfig & AudioHardwareDeviceNode::getOutputConfig() const +{ + return outConfig; +} + +const AudioStreamConfig & AudioHardwareDeviceNode::getInputConfig() const +{ + return inConfig; +} + +void AudioHardwareDeviceNode::reset(ContextRenderLock &) +{ + m_platformAudioDevice->stop(); + m_platformAudioDevice->start(); +}; + +void AudioHardwareDeviceNode::render(AudioBus * src, AudioBus * dst, int frames, const SamplingInfo & info) +{ + ProfileScope selfProfile(totalTime); + ProfileScope profile(graphTime); + pull_graph(m_context, input(0).get(), src, dst, frames, info, m_audioHardwareInput); + last_info = info; + profile.finalize(); // ensure profile is not prematurely destructed + selfProfile.finalize(); +} + +AudioSourceProvider * AudioHardwareDeviceNode::AudioHardwareInputProvider() +{ + return static_cast(m_audioHardwareInput); +} diff --git a/sources/LabSound/src/core/AudioHardwareInputNode.cpp b/sources/LabSound/src/core/AudioHardwareInputNode.cpp new file mode 100644 index 00000000..6fd28b86 --- /dev/null +++ b/sources/LabSound/src/core/AudioHardwareInputNode.cpp @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: BSD-3-Clause +// Copyright (C) 2012, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioHardwareInputNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSourceProvider.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Logging.h" +#include "LabSound/extended/Registry.h" + +#include + +namespace lab +{ + +AudioHardwareInputNode::AudioHardwareInputNode(AudioContext & ac, AudioSourceProvider * audioSourceProvider) + : AudioNode(ac) + , m_audioSourceProvider(audioSourceProvider) +{ + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); // Num output channels will be re-configured in process + initialize(); +} + + +AudioHardwareInputNode::~AudioHardwareInputNode() +{ + uninitialize(); +} + +void AudioHardwareInputNode::process(ContextRenderLock &r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + + // This used to be the function of a manual call to setFormat() + if (m_sourceNumberOfChannels == 0) + { + auto DeviceAsAudioNode = r.context()->device(); + + if (auto DeviceAsRenderCallback = std::dynamic_pointer_cast(DeviceAsAudioNode)) + { + auto inputConfig = DeviceAsRenderCallback->getInputConfig(); + m_sourceNumberOfChannels = inputConfig.desired_channels; + output(0)->setNumberOfChannels(r, m_sourceNumberOfChannels); // Reconfigure the output's number of channels. + outputBus = output(0)->bus(r); // outputBus pointer was invalidated + } + } + + if (!m_audioSourceProvider) + { + outputBus->zero(); + return; + } + + if (m_sourceNumberOfChannels != outputBus->numberOfChannels()) + { + outputBus->zero(); + return; + } + + // Use a tryLock() to avoid contention in the real-time audio thread. + // If we fail to acquire the lock then the MediaStream must be in the middle of + // a format change, so we output silence in this case. + if (r.context()) + { + // provide entire buffer + m_audioSourceProvider->provideInput(outputBus, bufferSize); + } + else + { + // We failed to acquire the lock. + outputBus->zero(); + } +} + +void AudioHardwareInputNode::reset(ContextRenderLock & r) +{ +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioListener.cpp b/sources/LabSound/src/core/AudioListener.cpp new file mode 100644 index 00000000..900e83fc --- /dev/null +++ b/sources/LabSound/src/core/AudioListener.cpp @@ -0,0 +1,53 @@ +// License: BSD 2 Clause +// Copyright (C) 2018, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioListener.h" + +namespace lab +{ +AudioListener::AudioListener() + : m_dopplerFactor(std::make_shared("dopplerFactor", "DPLR", 1.f, 0.01f, 100.f)) + , m_speedOfSound(std::make_shared("speedOfSound", "SPED", 343.f, 1.f, 10000.f)) + , m_forwardX(std::make_shared("forwardX", "FWDX", 0.f, -1.e6f, 1.e6f)) + , m_forwardY(std::make_shared("forwardY", "FWDY", 0.f, -1.e6f, 1.e6f)) + , m_forwardZ(std::make_shared("forwardZ", "FWDZ", -1.f, -1.e6f, 1.e6f)) + , m_upX(std::make_shared("upX", "UP X", 0.f, -1.f, 1.f)) + , m_upY(std::make_shared("upY", "UP Y", 1.f, -1.f, 1.f)) + , m_upZ(std::make_shared("upZ", "UP Z", 0.f, -1.f, 1.f)) + , m_velocityX(std::make_shared("velocityX", "VELX", 0.f, -1000.f, 1000.f)) + , m_velocityY(std::make_shared("velocityY", "VELY", 0.f, -1000.f, 1000.f)) + , m_velocityZ(std::make_shared("velocityZ", "VELZ", 0.f, -1000.f, 1000.f)) + , m_positionX(std::make_shared("positionX", "POSX", 0.f, -1.e6f, 1.e6f)) + , m_positionY(std::make_shared("positionY", "POSY", 0.f, -1.e6f, 1.e6f)) + , m_positionZ(std::make_shared("positionZ", "POSZ", 0.f, -1.e6f, 1.e6f)) +{ +} + +void AudioListener::setForward(const FloatPoint3D & fwd) +{ + m_forwardX->setValue(fwd.x); + m_forwardY->setValue(fwd.y); + m_forwardZ->setValue(fwd.z); +} + +void AudioListener::setUpVector(const FloatPoint3D & upVector) +{ + m_upX->setValue(upVector.x); + m_upY->setValue(upVector.y); + m_upZ->setValue(upVector.z); +} + +void AudioListener::setPosition(const FloatPoint3D & position) +{ + m_positionX->setValue(position.x); + m_positionY->setValue(position.y); + m_positionZ->setValue(position.z); +} + +void AudioListener::setVelocity(const FloatPoint3D & velocity) +{ + m_velocityX->setValue(velocity.x); + m_velocityY->setValue(velocity.y); + m_velocityZ->setValue(velocity.z); +} +} diff --git a/sources/LabSound/src/core/AudioNode.cpp b/sources/LabSound/src/core/AudioNode.cpp new file mode 100644 index 00000000..b68fa074 --- /dev/null +++ b/sources/LabSound/src/core/AudioNode.cpp @@ -0,0 +1,617 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioNode.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" + +using namespace std; + +//#define ASN_PRINT(...) +#define ASN_PRINT(a) printf(a) + +namespace lab +{ + + +const char* schedulingStateName(SchedulingState s) +{ + switch (s) + { + case SchedulingState::UNSCHEDULED: return "UNSCHEDULED"; + case SchedulingState::SCHEDULED: return "SCHEDULED"; + case SchedulingState::FADE_IN: return "FADE_IN"; + case SchedulingState::PLAYING: return "PLAYING"; + case SchedulingState::STOPPING: return "STOPPING"; + case SchedulingState::RESETTING: return "RESETTING"; + case SchedulingState::FINISHING: return "FINISHING"; + case SchedulingState::FINISHED: return "FINISHED"; + } + return "Unknown"; +} + + +const int start_envelope = 64; +const int end_envelope = 64; + +AudioNodeScheduler::AudioNodeScheduler(float sampleRate) + : _epoch(0) + , _startWhen(std::numeric_limits::max()) + , _stopWhen(std::numeric_limits::max()) + , _sampleRate(sampleRate) +{ +} + +bool AudioNodeScheduler::update(ContextRenderLock & r, int epoch_length) +{ + uint64_t proposed_epoch = r.context()->currentSampleFrame(); + if (_epoch >= proposed_epoch) + return false; + + _epoch = proposed_epoch; + _renderOffset = 0; + _renderLength = epoch_length; + + switch (_playbackState) + { + case SchedulingState::UNSCHEDULED: + break; + + case SchedulingState::SCHEDULED: + // start has been called, start looking for the start time + if (_startWhen <= _epoch) + { + // exactly on start, or late, get going straight away + _renderOffset = 0; + _renderLength = epoch_length; + _playbackState = SchedulingState::FADE_IN; + ASN_PRINT("fade in\n"); + } + else if (_startWhen < _epoch + epoch_length) + { + // start falls within the frame + _renderOffset = static_cast(_startWhen - _epoch); + _renderLength = epoch_length - _renderOffset; + _playbackState = SchedulingState::FADE_IN; + ASN_PRINT("fade in\n"); + } + + /// @TODO the case of a start and stop within one epoch needs to be special + /// cased, to fit this current architecture, there'd be a FADE_IN_OUT scheduling + /// state so that the envelope can be correctly applied. + // FADE_IN_OUT would transition to UNSCHEDULED. + break; + + case SchedulingState::FADE_IN: + // start time has been achieved, there'll be one quantum with fade in applied. + _renderOffset = 0; + _playbackState = SchedulingState::PLAYING; + ASN_PRINT("playing\n"); + // fall through to PLAYING to allow render length to be adjusted if stop-start is less than one quantum length + + case SchedulingState::PLAYING: + /// @TODO include the end envelope in the stop check so that a scheduled stop that + /// spans this quantum and the next ends in the current quantum + + if (_stopWhen <= _epoch) + { + // exactly on start, or late, stop straight away, render a whole frame of fade out + _renderLength = epoch_length - _renderOffset; + _playbackState = SchedulingState::STOPPING; + ASN_PRINT("stopping\n"); + } + else if (_stopWhen < _epoch + epoch_length) + { + // stop falls within the frame + _renderOffset = 0; + _renderLength = static_cast(_stopWhen - _epoch); + _playbackState = SchedulingState::STOPPING; + ASN_PRINT("stopping\n"); + } + + // do not fall through to STOPPING because one quantum must render the fade out effect + break; + + case SchedulingState::STOPPING: + if (_epoch + epoch_length >= _stopWhen) + { + // scheduled stop has occured, so make sure stop doesn't immediately trigger again + _stopWhen = std::numeric_limits::max(); + _playbackState = SchedulingState::UNSCHEDULED; + if(_onEnded) + r.context()->enqueueEvent(_onEnded); + ASN_PRINT("unscheduled\n"); + } + break; + + case SchedulingState::RESETTING: + break; + case SchedulingState::FINISHING: + break; + case SchedulingState::FINISHED: + break; + } + + ASSERT(_renderOffset < epoch_length); + return true; +} + +void AudioNodeScheduler::start(double when) +{ + // irrespective of start state, onStart will be called if possible + // to allow a node to use subsequent starts as a hint + if (_onStart) + _onStart(when); + + // if already scheduled or playing, nothing to do + if (_playbackState == SchedulingState::SCHEDULED || + _playbackState == SchedulingState::PLAYING) + return; + + // start cancels stop + _stopWhen = std::numeric_limits::max(); + + // treat non finite, or max values as a cancellation of stopping or resetting + if (!std::isfinite(when) || when == std::numeric_limits::max()) + { + if (_playbackState == SchedulingState::STOPPING || + _playbackState == SchedulingState::RESETTING) + { + _playbackState = SchedulingState::PLAYING; + } + return; + } + + _startWhen = _epoch + static_cast(when * _sampleRate); + _playbackState = SchedulingState::SCHEDULED; +} + +void AudioNodeScheduler::stop(double when) +{ + // if the node is on the way to a terminal state do nothing + if (_playbackState >= SchedulingState::STOPPING) + return; + + // treat non-finite, and FLT_MAX as stop cancellation, if already playing + if (!std::isfinite(when) || when == std::numeric_limits::max()) + { + // stop at a non-finite time means don't stop. + _stopWhen = std::numeric_limits::max(); // cancel stop + if (_playbackState == SchedulingState::STOPPING) + { + // if in the process of stopping, set it back to scheduling to start immediately + _playbackState = SchedulingState::SCHEDULED; + _startWhen = 0; + } + + return; + } + + // clamp timing to now or the future + if (when < 0) + when = 0; + + // let the scheduler know when to activate the STOPPING state + _stopWhen = _epoch + static_cast(when * _sampleRate); +} + +void AudioNodeScheduler::reset() +{ + _startWhen = std::numeric_limits::max(); + _stopWhen = std::numeric_limits::max(); + if (_playbackState != SchedulingState::UNSCHEDULED) + _playbackState = SchedulingState::RESETTING; +} + +void AudioNodeScheduler::finish(ContextRenderLock & r) +{ + if (_playbackState < SchedulingState::PLAYING) + _playbackState = SchedulingState::FINISHING; + else if (_playbackState >= SchedulingState::PLAYING && + _playbackState < SchedulingState::FINISHED) + _playbackState = SchedulingState::FINISHING; + + r.context()->enqueueEvent(_onEnded); +} + + + +AudioNode::AudioNode(AudioContext & ac) + : _scheduler(ac.sampleRate()) +{ } + + + +AudioNode::~AudioNode() +{ + uninitialize(); +} + +void AudioNode::initialize() +{ + m_isInitialized = true; +} + +void AudioNode::uninitialize() +{ + m_isInitialized = false; +} + +void AudioNode::reset(ContextRenderLock& r) +{ + _scheduler.reset(); +} + +void AudioNode::addInput(ContextGraphLock&, std::unique_ptr input) +{ + m_inputs.emplace_back(std::move(input)); +} + +void AudioNode::addOutput(ContextGraphLock&, std::unique_ptr output) +{ + m_outputs.emplace_back(std::move(output)); +} + +void AudioNode::addInput(std::unique_ptr input) +{ + m_inputs.emplace_back(std::move(input)); +} + +void AudioNode::addOutput(std::unique_ptr output) +{ + m_outputs.emplace_back(std::move(output)); +} + +std::shared_ptr AudioNode::output(char const* const str) +{ + for (auto & i : m_outputs) + { + if (i->name() == str) + return i; + } + return {}; +} + + +// safe without a Render lock because vector is immutable +std::shared_ptr AudioNode::input(int i) +{ + if (i < m_inputs.size()) return m_inputs[i]; + return nullptr; +} + +// safe without a Render lock because vector is immutable +std::shared_ptr AudioNode::output(int i) +{ + if (i < m_outputs.size()) return m_outputs[i]; + return nullptr; +} + +int AudioNode::channelCount() +{ + ASSERT(m_channelCount != 0); + return m_channelCount; +} + +void AudioNode::setChannelCount(ContextGraphLock & g, int channelCount) +{ + if (!g.context()) + { + throw std::invalid_argument("No context specified"); + } + + if (m_channelCount != channelCount) + { + m_channelCount = channelCount; + if (m_channelCountMode != ChannelCountMode::Max) + { + for (auto& input : m_inputs) + input->changedOutputs(g); + } + } +} + +void AudioNode::setChannelCountMode(ContextGraphLock & g, ChannelCountMode mode) +{ + if (mode >= ChannelCountMode::End || !g.context()) + { + throw std::invalid_argument("No context specified"); + } + + if (m_channelCountMode != mode) + { + m_channelCountMode = mode; + for (auto& input : m_inputs) + input->changedOutputs(g); + } +} + +void AudioNode::processIfNecessary(ContextRenderLock & r, int bufferSize) +{ + if (!isInitialized()) + return; + + auto ac = r.context(); + if (!ac) + return; + + // outputs cache results in their busses. + // if the scheduler's recorded epoch is the same as the context's, the node + // shall bail out as it has been processed once already this epoch. + + if (!_scheduler.update(r, bufferSize)) + return; + + ProfileScope selfScope(totalTime); + graphTime.zero(); + + if (isScheduledNode() && + (_scheduler._playbackState < SchedulingState::FADE_IN || + _scheduler._playbackState == SchedulingState::FINISHED)) + { + silenceOutputs(r); + return; + } + + + // there may need to be silence at the beginning or end of the current quantum. + + int start_zero_count = _scheduler._renderOffset; + int final_zero_start = _scheduler._renderOffset + _scheduler._renderLength; + int final_zero_count = bufferSize - final_zero_start; + + // if the input counts need to match the output counts, + // do it here before pulling inputs + conformChannelCounts(); + + // get inputs in preparation for processing + { + ProfileScope scope(graphTime); + pullInputs(r, bufferSize); + scope.finalize(); // ensure the scope is not prematurely destructed + } + + // ensure all requested channel count updates have been resolved + for (auto& out : m_outputs) + out->updateRenderingState(r); + + // initialize the busses with start and final zeroes. + if (start_zero_count) + { + for (auto & out : m_outputs) + for (int i = 0; i < out->numberOfChannels(); ++i) + memset(out->bus(r)->channel(i)->mutableData(), 0, sizeof(float) * start_zero_count); + } + + if (final_zero_count) + { + for (auto & out : m_outputs) + for (int i = 0; i < out->numberOfChannels(); ++i) + memset(out->bus(r)->channel(i)->mutableData() + final_zero_start, 0, sizeof(float) * final_zero_count); + } + + // do the signal processing + + process(r, bufferSize); + + // clean pops resulting from starting or stopping + +#define OOS(x) (float(x) / float(steps)) + if (start_zero_count > 0 || _scheduler._playbackState == SchedulingState::FADE_IN) + { + int steps = start_envelope; + int damp_start = start_zero_count; + int damp_end = start_zero_count + steps; + if (damp_end > bufferSize) + { + damp_end = bufferSize; + steps = bufferSize - start_zero_count; + } + + // damp out the first samples + if (damp_end > 0) + for (auto & out : m_outputs) + for (int i = 0; i < out->bus(r)->numberOfChannels(); ++i) + { + float* data = out->bus(r)->channel(i)->mutableData(); + for (int j = damp_start; j < damp_end; ++j) + data[j] *= OOS(j - damp_start); + } + } + + if (final_zero_count > 0 || _scheduler._playbackState == SchedulingState::STOPPING) + { + int steps = end_envelope; + int damp_end, damp_start; + if (!final_zero_count) + { + damp_end = bufferSize - final_zero_count; + damp_start = damp_end - steps; + } + else + { + damp_end = bufferSize - final_zero_count; + damp_start = damp_end - steps; + } + + if (damp_start < 0) + { + damp_start = 0; + steps = damp_end; + } + + // damp out the last samples + if (steps > 0) + { + //printf("out: %d %d\n", damp_start, damp_end); + for (auto& out : m_outputs) + for (int i = 0; i < out->numberOfChannels(); ++i) + { + float* data = out->bus(r)->channel(i)->mutableData(); + for (int j = damp_start; j < damp_end; ++j) + data[j] *= OOS(damp_end - j); + } + } + } + + unsilenceOutputs(r); + selfScope.finalize(); // ensure profile is not prematurely destructed +} + +void AudioNode::conformChannelCounts() +{ + return; + + // no generic count conforming. nodes are responsible if they are going to do it at all +/* + int inputChannelCount = input->numberOfChannels(r); + + bool channelCountChanged = false; + for (int i = 0; i < numberOfOutputs() && !channelCountChanged; ++i) + { + channelCountChanged = isInitialized() && inputChannelCount != output(i)->numberOfChannels(); + } + + if (channelCountChanged) + { + uninitialize(); + for (int i = 0; i < numberOfOutputs(); ++i) + { + // This will propagate the channel count to any nodes connected further down the chain... + output(i)->setNumberOfChannels(r, inputChannelCount); + } + initialize(); + } + */ +} + +void AudioNode::checkNumberOfChannelsForInput(ContextRenderLock & r, AudioNodeInput * input) +{ + ASSERT(r.context()); + + if (!input || input != this->input(0).get()) + return; + + for (auto & in : m_inputs) + { + if (in.get() == input) + { + input->updateInternalBus(r); + break; + } + } +} + +bool AudioNode::propagatesSilence(ContextRenderLock& r) const +{ + return _scheduler._playbackState < SchedulingState::FADE_IN || + _scheduler._playbackState == SchedulingState::FINISHED; +} + +void AudioNode::pullInputs(ContextRenderLock & r, int bufferSize) +{ + ASSERT(r.context()); + + // Process all of the AudioNodes connected to our inputs. + for (auto & in : m_inputs) + { + in->pull(r, 0, bufferSize); + } +} + +bool AudioNode::inputsAreSilent(ContextRenderLock & r) +{ + for (auto & in : m_inputs) + { + if (!in->bus(r)->isSilent()) + { + return false; + } + } + return true; +} + +void AudioNode::silenceOutputs(ContextRenderLock & r) +{ + for (auto out : m_outputs) + { + out->bus(r)->zero(); + } +} + +void AudioNode::unsilenceOutputs(ContextRenderLock & r) +{ + for (auto out : m_outputs) + { + out->bus(r)->clearSilentFlag(); + } +} + +std::shared_ptr AudioNode::param(char const * const str) +{ + for (auto & p : m_params) + { + if (!strcmp(str, p->name().c_str())) + return p; + } + return {}; +} + +std::shared_ptr AudioNode::setting(char const * const str) +{ + for (auto & p : m_settings) + { + if (!strcmp(str, p->name().c_str())) + return p; + } + return {}; +} + +std::vector AudioNode::paramNames() const +{ + std::vector ret; + for (auto & p : m_params) + { + ret.push_back(p->name()); + } + return ret; +} +std::vector AudioNode::paramShortNames() const +{ + std::vector ret; + for (auto & p : m_params) + { + ret.push_back(p->shortName()); + } + return ret; +} + +std::vector AudioNode::settingNames() const +{ + std::vector ret; + for (auto & p : m_settings) + { + ret.push_back(p->name()); + } + return ret; +} +std::vector AudioNode::settingShortNames() const +{ + std::vector ret; + for (auto & p : m_settings) + { + ret.push_back(p->shortName()); + } + return ret; +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioNodeInput.cpp b/sources/LabSound/src/core/AudioNodeInput.cpp new file mode 100644 index 00000000..b0cc234f --- /dev/null +++ b/sources/LabSound/src/core/AudioNodeInput.cpp @@ -0,0 +1,185 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/Mixing.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" + +#include +#include + +using namespace std; + +namespace lab +{ + +AudioNodeInput::AudioNodeInput(AudioNode * node, int processingSizeInFrames) + : AudioSummingJunction() + , m_destinationNode(node) +{ + // Set to mono by default. + m_internalSummingBus = std::unique_ptr(new AudioBus(Channels::Mono, processingSizeInFrames)); +} + +AudioNodeInput::~AudioNodeInput() +{ +} + +void AudioNodeInput::connect(ContextGraphLock & g, std::shared_ptr junction, std::shared_ptr toOutput) +{ + if (!junction || !toOutput || !junction->destinationNode()) + return; + + // return if input is already connected to this output. + if (junction->isConnected(toOutput)) return; + + toOutput->addInput(g, junction); + junction->junctionConnectOutput(toOutput); +} + +void AudioNodeInput::disconnect(ContextGraphLock & g, std::shared_ptr junction, std::shared_ptr toOutput) +{ + ASSERT(g.context()); + if (!junction || !junction->destinationNode() || !toOutput) + return; + + if (junction->isConnected(toOutput)) + { + junction->junctionDisconnectOutput(toOutput); + toOutput->removeInput(g, junction); + } +} + +void AudioNodeInput::disconnectAll(ContextGraphLock & g, std::shared_ptr fromInput) +{ + ASSERT(g.context()); + if (!fromInput || !fromInput->destinationNode()) + return; + + for (auto i : fromInput->m_connectedOutputs) + { + auto o = i.lock(); + if (o) + { + fromInput->junctionDisconnectOutput(o); + o->removeInput(g, fromInput); + } + } +} + +void AudioNodeInput::updateInternalBus(ContextRenderLock & r) +{ + int numberOfInputChannels = numberOfChannels(r); + + if (numberOfInputChannels == m_internalSummingBus->numberOfChannels()) + return; + + m_internalSummingBus = std::unique_ptr(new AudioBus(numberOfInputChannels, AudioNode::ProcessingSizeInFrames)); +} + +int AudioNodeInput::numberOfChannels(ContextRenderLock & r) const +{ + ChannelCountMode mode = destinationNode()->channelCountMode(); + + if (mode == ChannelCountMode::Explicit) + { + return destinationNode()->channelCount(); + } + + // Find the number of channels of the connection with the largest number of channels. + int maxChannels = 1; // one channel is the minimum allowed + + int c = numberOfRenderingConnections(r); + for (int i = 0; i < c; ++i) + { + auto output = renderingOutput(r, i); + if (output) + { + int c = output->bus(r)->numberOfChannels(); + if (c > maxChannels) + maxChannels = c; + } + } + + if (mode == ChannelCountMode::ClampedMax) + { + maxChannels = min(maxChannels, destinationNode()->channelCount()); + } + + return maxChannels; +} + +AudioBus * AudioNodeInput::bus(ContextRenderLock & r) +{ + // Handle single connection specially to allow for in-place processing. + // note: The webkit sources check for max, but I can't see how that's correct + + // @tofix - did I miss part of the merge? + if (numberOfRenderingConnections(r) == 1) // && node()->channelCountMode() == ChannelCountMode::Max) + { + std::shared_ptr output = renderingOutput(r, 0); + if (output) + { + return output->bus(r); + } + } + + // Multiple connections case (or no connections). + return m_internalSummingBus.get(); +} + +AudioBus * AudioNodeInput::pull(ContextRenderLock & r, AudioBus * inPlaceBus, int bufferSize) +{ + updateRenderingState(r); + m_destinationNode->checkNumberOfChannelsForInput(r, this); + + size_t num_connections = numberOfRenderingConnections(r); + + // Handle single connection case. + if (num_connections == 1) + { + // If this input is simply passing data through, then immediately delegate the pull request to it. + auto output = renderingOutput(r, 0); + if (output) + { + return output->pull(r, inPlaceBus, bufferSize); + } + + num_connections = 0; // if there's a single input, but it has no output; treat this input as silent. + } + + if (num_connections == 0) + { + // Generate silence if we're not connected to anything, and return the silent bus + /// @TODO a possible optimization is to flag silence and propagate it to consumers of this input. + m_internalSummingBus->zero(); + return m_internalSummingBus.get(); + } + + // multiple connections + m_internalSummingBus->zero(); + + for (int i = 0; i < num_connections; ++i) + { + auto output = renderingOutput(r, i); + if (output) + { + // Render audio from this output. + AudioBus * connectionBus = output->pull(r, 0, bufferSize); + + // Sum, with unity-gain. + m_internalSummingBus->sumFrom(*connectionBus); + } + } + return m_internalSummingBus.get(); +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioNodeOutput.cpp b/sources/LabSound/src/core/AudioNodeOutput.cpp new file mode 100644 index 00000000..2167cdce --- /dev/null +++ b/sources/LabSound/src/core/AudioNodeOutput.cpp @@ -0,0 +1,224 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioParam.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" + +#include + +using namespace std; + +namespace lab +{ + +namespace +{ + std::mutex outputMutex; +} + +AudioNodeOutput::AudioNodeOutput(AudioNode * node, int numberOfChannels, int processingSizeInFrames) + : m_sourceNode(node) + , m_numberOfChannels(numberOfChannels) + , m_desiredNumberOfChannels(numberOfChannels) + , m_inPlaceBus(0) + , m_renderingFanOutCount(0) + , m_renderingParamFanOutCount(0) +{ + m_internalBus.reset(new AudioBus(numberOfChannels, processingSizeInFrames)); +} + +AudioNodeOutput::AudioNodeOutput(AudioNode * node, char const * const name, int numberOfChannels, int processingSizeInFrames) + : m_sourceNode(node) + , m_name(name) + , m_numberOfChannels(numberOfChannels) + , m_desiredNumberOfChannels(numberOfChannels) + , m_inPlaceBus(0) + , m_renderingFanOutCount(0) + , m_renderingParamFanOutCount(0) +{ + m_internalBus.reset(new AudioBus(numberOfChannels, processingSizeInFrames)); +} + +AudioNodeOutput::~AudioNodeOutput() +{ +} + +void AudioNodeOutput::setNumberOfChannels(ContextRenderLock & r, int numberOfChannels) +{ + if (m_numberOfChannels == numberOfChannels) return; + m_desiredNumberOfChannels = numberOfChannels; + m_internalBus.reset(new AudioBus(numberOfChannels, AudioNode::ProcessingSizeInFrames)); +} + +void AudioNodeOutput::updateInternalBus() +{ + if (numberOfChannels() == m_internalBus->numberOfChannels()) + return; + + m_internalBus.reset(new AudioBus(numberOfChannels(), AudioNode::ProcessingSizeInFrames)); +} + +void AudioNodeOutput::updateRenderingState(ContextRenderLock & r) +{ + if (m_numberOfChannels != m_desiredNumberOfChannels) + { + ASSERT(r.context()); + m_numberOfChannels = m_desiredNumberOfChannels; + updateInternalBus(); + propagateChannelCount(r); + } + m_renderingFanOutCount = fanOutCount(); + m_renderingParamFanOutCount = paramFanOutCount(); +} + +void AudioNodeOutput::propagateChannelCount(ContextRenderLock & r) +{ + if (isChannelCountKnown()) + { + ASSERT(r.context()); + + // Announce to any nodes we're connected to that we changed our channel count for its input. + for (auto in : m_inputs) + { + auto connectionNode = in->destinationNode(); + connectionNode->checkNumberOfChannelsForInput(r, in.get()); + } + } +} + +AudioBus * AudioNodeOutput::pull(ContextRenderLock & r, AudioBus * inPlaceBus, int bufferSize) +{ + ASSERT(r.context()); + ASSERT(m_renderingFanOutCount > 0 || m_renderingParamFanOutCount > 0); + + m_internalBus->setSampleRate(r.context()->sampleRate()); + bus(r)->setSampleRate(r.context()->sampleRate()); + + // Causes our AudioNode to process if it hasn't already for this render quantum. + // We try to do in-place processing (using inPlaceBus) if at all possible, + // but we can't process in-place if we're connected to more than one input (fan-out > 1). + // In this case pull() is called multiple times per rendering quantum, and the processIfNecessary() call below will + // cause our node to process() only the first time, caching the output in m_internalOutputBus for subsequent calls. + + updateRenderingState(r); + + bool useInPlaceBus = inPlaceBus && inPlaceBus->numberOfChannels() == numberOfChannels() && (m_renderingFanOutCount + m_renderingParamFanOutCount) == 1; + + // Setup the actual destination bus for processing when our node's process() method gets called in processIfNecessary() below. + m_inPlaceBus = useInPlaceBus ? inPlaceBus : 0; + + auto n = sourceNode(); + if (!n) + return bus(r); + + n->processIfNecessary(r, bufferSize); + return bus(r); +} + +AudioBus * AudioNodeOutput::bus(ContextRenderLock & r) const +{ + // only legal during rendering because an in-place bus might have been supplied to pull + ASSERT(r.context()); + return m_inPlaceBus ? m_inPlaceBus : m_internalBus.get(); +} + +int AudioNodeOutput::fanOutCount() +{ + return static_cast(m_inputs.size()); +} + +int AudioNodeOutput::paramFanOutCount() +{ + return static_cast(m_params.size()); +} + +int AudioNodeOutput::renderingFanOutCount() const +{ + return m_renderingFanOutCount; +} + +int AudioNodeOutput::renderingParamFanOutCount() const +{ + return m_renderingParamFanOutCount; +} + +void AudioNodeOutput::addInput(ContextGraphLock & g, std::shared_ptr input) +{ + if (!input) + return; + + m_inputs.emplace_back(input); + input->setDirty(); +} + +void AudioNodeOutput::removeInput(ContextGraphLock & g, std::shared_ptr input) +{ + if (!input) + return; + + for (std::vector>::iterator i = m_inputs.begin(); i != m_inputs.end(); ++i) + { + if (input == *i) + { + input->setDirty(); + i = m_inputs.erase(i); + if (i == m_inputs.end()) break; + } + } +} + +void AudioNodeOutput::disconnectAllInputs(ContextGraphLock & g, std::shared_ptr self) +{ + ASSERT(g.context()); + + // AudioNodeInput::disconnect() changes m_inputs by calling removeInput(). + while (self->m_inputs.size()) + { + auto ptr = self->m_inputs.rbegin(); + AudioNodeInput::disconnect(g, *ptr, self); + } +} + +void AudioNodeOutput::addParam(ContextGraphLock & g, std::shared_ptr param) +{ + if (!param) + return; + + m_params.insert(param); +} + +void AudioNodeOutput::removeParam(ContextGraphLock & g, std::shared_ptr param) +{ + if (!param) + return; + + auto it = m_params.find(param); + if (it != m_params.end()) + m_params.erase(it); +} + +void AudioNodeOutput::disconnectAllParams(ContextGraphLock & g, std::shared_ptr self) +{ + // AudioParam::disconnect() changes m_params by calling removeParam(). + while (self->m_params.size()) + { + auto param = self->m_params.begin(); + (*param)->disconnect(g, *param, self); + } +} + +void AudioNodeOutput::disconnectAll(ContextGraphLock & g, std::shared_ptr self) +{ + self->disconnectAllInputs(g, self); + self->disconnectAllParams(g, self); +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioParam.cpp b/sources/LabSound/src/core/AudioParam.cpp new file mode 100644 index 00000000..31adfa64 --- /dev/null +++ b/sources/LabSound/src/core/AudioParam.cpp @@ -0,0 +1,218 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioParam.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/Macros.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" + +#include + +using namespace lab; + +AudioBus const* const AudioParam::bus() const +{ + return m_internalSummingBus.get(); +} + + +const double AudioParam::DefaultSmoothingConstant = 0.05; +const double AudioParam::SnapThreshold = 0.001; + +AudioParam::AudioParam(const std::string & name, const std::string & shortName, double defaultValue, double minValue, double maxValue, unsigned units) + : AudioSummingJunction() + , m_name(name) + , m_shortName(shortName) + , m_value(defaultValue) + , m_defaultValue(defaultValue) + , m_minValue(minValue) + , m_maxValue(maxValue) + , m_units(units) + , m_smoothedValue(defaultValue) + , m_smoothingConstant(DefaultSmoothingConstant) +{ +} + +AudioParam::~AudioParam() {} + +float AudioParam::value() const +{ + return static_cast(m_value); +} + +void AudioParam::setValue(float value) +{ + if (!std::isnan(value) && !std::isinf(value)) + m_value = value; +} + +float AudioParam::smoothedValue() +{ + return static_cast(m_smoothedValue); +} + +bool AudioParam::smooth(ContextRenderLock & r) +{ + // If values have been explicitly scheduled on the timeline, then use the exact value. + // Smoothing effectively is performed by the timeline. + bool useTimelineValue = false; + if (r.context()) + m_value = m_timeline.valueForContextTime(r, static_cast(m_value), useTimelineValue); + + if (m_smoothedValue == m_value) + { + // Smoothed value has already approached and snapped to value. + return true; + } + + if (useTimelineValue) + m_smoothedValue = m_value; + else + { + // Dezipper - exponential approach. + m_smoothedValue += (m_value - m_smoothedValue) * m_smoothingConstant; + + // If we get close enough then snap to actual value. + if (fabs(m_smoothedValue - m_value) < SnapThreshold) // @fixme: the threshold needs to be adjustable depending on range - but this is OK general purpose value. + m_smoothedValue = m_value; + } + + return false; +} + +float AudioParam::finalValue(ContextRenderLock & r) +{ + float value; + calculateFinalValues(r, &value, 1, false); + return value; +} + +void AudioParam::calculateSampleAccurateValues(ContextRenderLock & r, float * values, int numberOfValues) +{ + bool isSafe = r.context() && values && numberOfValues; + if (!isSafe) + return; + + calculateFinalValues(r, values, numberOfValues, true); +} + +void AudioParam::calculateFinalValues(ContextRenderLock & r, float * values, int numberOfValues, bool sampleAccurate) +{ + bool isSafe = r.context() && values && numberOfValues; + if (!isSafe) + return; + + // The calculated result will be the "intrinsic" value summed with all audio-rate connections. + + if (sampleAccurate) + { + // Calculate sample-accurate (a-rate) intrinsic values. + calculateTimelineValues(r, values, numberOfValues); + } + else + { + // Calculate control-rate (k-rate) intrinsic value. + bool hasValue; + float timelineValue = m_timeline.valueForContextTime(r, static_cast(m_value), hasValue); + + if (hasValue) + m_value = timelineValue; + + values[0] = static_cast(m_value); + } + + // if there are rendering connections, be sure they are ready + updateRenderingState(r); + + int connectionCount = numberOfRenderingConnections(r); + if (!connectionCount) + return; + + // Now sum all of the audio-rate connections together (unity-gain summing junction). + // Note that parameter connections would normally be mono, so mix down to mono if necessary. + + // LabSound: For some reason a bus was temporarily created here and the results discarded. + // Bug still exists in WebKit top of tree. + if (m_internalSummingBus && m_internalSummingBus->length() < numberOfValues) + m_internalSummingBus.reset(); + + if (!m_internalSummingBus) + m_internalSummingBus.reset(new AudioBus(1, numberOfValues)); + + // point the summing bus at the values array + m_internalSummingBus->setChannelMemory(0, values, numberOfValues); + + for (int i = 0; i < connectionCount; ++i) + { + auto output = renderingOutput(r, i); + + ASSERT(output); + + // Render audio from this output. + AudioBus * connectionBus = output->pull(r, nullptr, AudioNode::ProcessingSizeInFrames); + + // Sum, with unity-gain. + /// @TODO it was surprising in practice that the inputs are summed, as opposed to simply overriding. + /// Summing might be useful, but pure override should be an option as well. + /// The case in point was to construct a vibrato around A440 by making an oscillator provide + /// a signal with frequency 4, bias 440, amplitude 10, and supply that as an override to the frequency of + /// a second oscillator. Since it's summed, the solution that works is that the first oscillator should + /// have a bias of zero. It seems like sum or override should be a setting of some sort... + m_internalSummingBus->sumFrom(*connectionBus); + } +} + +void AudioParam::calculateTimelineValues(ContextRenderLock & r, float * values, int numberOfValues) +{ + // Calculate values for this render quantum. + // Normally numberOfValues will equal AudioNode::ProcessingSizeInFrames (the render quantum size). + double sampleRate = r.context()->sampleRate(); + double startTime = r.context()->currentTime(); + double endTime = startTime + numberOfValues / sampleRate; + + // Note we're running control rate at the sample-rate. + // Pass in the current value as default value. + m_value = m_timeline.valuesForTimeRange(startTime, endTime, static_cast(m_value), values, numberOfValues, sampleRate, sampleRate); +} + +void AudioParam::connect(ContextGraphLock & g, std::shared_ptr param, std::shared_ptr output) +{ + if (!output) + return; + + if (param->isConnected(output)) + return; + + param->junctionConnectOutput(output); + output->addParam(g, param); +} + +void AudioParam::disconnect(ContextGraphLock & g, std::shared_ptr param, std::shared_ptr output) +{ + if (!param || !output) + return; + + if (param->isConnected(output)) + { + param->junctionDisconnectOutput(output); + } + output->removeParam(g, param); +} + +void AudioParam::disconnectAll(ContextGraphLock & g, std::shared_ptr param) +{ + for (auto i : param->m_connectedOutputs) + { + auto j = i.lock(); + if (j) + j->removeParam(g, param); + } + param->junctionDisconnectAllOutputs(); +} diff --git a/sources/LabSound/src/core/AudioParamTimeline.cpp b/sources/LabSound/src/core/AudioParamTimeline.cpp new file mode 100644 index 00000000..5d0e0f96 --- /dev/null +++ b/sources/LabSound/src/core/AudioParamTimeline.cpp @@ -0,0 +1,406 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioParamTimeline.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNode.h" +#include "LabSound/core/Macros.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" + +#include + +using namespace std; + +namespace lab +{ + +//@tofix - is there any reason this should be per object instead of static? +namespace +{ + std::mutex m_eventsMutex; +} + +void AudioParamTimeline::setValueAtTime(float value, float time) +{ + insertEvent(ParamEvent(ParamEvent::SetValue, value, time, 0, 0, {})); +} + +void AudioParamTimeline::linearRampToValueAtTime(float value, float time) +{ + insertEvent(ParamEvent(ParamEvent::LinearRampToValue, value, time, 0, 0, {})); +} + +void AudioParamTimeline::exponentialRampToValueAtTime(float value, float time) +{ + insertEvent(ParamEvent(ParamEvent::ExponentialRampToValue, value, time, 0, 0, {})); +} + +void AudioParamTimeline::setTargetAtTime(float target, float time, float timeConstant) +{ + insertEvent(ParamEvent(ParamEvent::SetTarget, target, time, timeConstant, 0, {})); +} + +void AudioParamTimeline::setValueCurveAtTime(std::vector & curve, float time, float duration) +{ + insertEvent(ParamEvent(ParamEvent::SetValueCurve, 0, time, 0, duration, curve)); +} + +static bool isValidNumber(float x) +{ + return !std::isnan(x) && !std::isinf(x); +} + +void AudioParamTimeline::insertEvent(const ParamEvent & event) +{ + // Sanity check the event. Be super careful we're not getting infected with NaN or Inf. + bool isValid = event.type() < ParamEvent::LastType + && isValidNumber(event.value()) + && isValidNumber(event.time()) + && isValidNumber(event.timeConstant()) + && isValidNumber(event.duration()) + && event.duration() >= 0; + + ASSERT(isValid); + + if (!isValid) + return; + + std::lock_guard lock(m_eventsMutex); + + unsigned i = 0; + float insertTime = event.time(); + + for (i = 0; i < m_events.size(); ++i) + { + + if (event.type() == ParamEvent::SetValueCurve) + { + // If this event is a SetValueCurve, make sure it doesn't overlap any existing + // event. It's ok if the SetValueCurve starts at the same time as the end of some other + // duration. + double endTime = event.time() + event.duration(); + if (m_events[i].time() > event.time() && m_events[i].time() < endTime) + { + throw std::runtime_error("ParamEvent::SetValueCurve overlaps existing"); + } + } + else + { + // Otherwise, make sure this event doesn't overlap any existing SetValueCurve event. + if (m_events[i].type() == ParamEvent::SetValueCurve) + { + double endTime = m_events[i].time() + m_events[i].duration(); + if (event.time() >= m_events[i].time() && event.time() < endTime) + { + throw std::runtime_error("ParamEvent::SetValueCurve overlaps existing"); + } + } + } + + // Overwrite same event type and time. + if (m_events[i].time() == insertTime && m_events[i].type() == event.type()) + { + m_events[i] = event; + return; + } + + if (m_events[i].time() > insertTime) + { + break; + } + } + + m_events.insert(m_events.begin() + i, event); +} + +void AudioParamTimeline::cancelScheduledValues(float startTime) +{ + std::lock_guard lock(m_eventsMutex); + + // Remove all events starting at startTime. + for (unsigned i = 0; i < m_events.size(); ++i) + { + if (m_events[i].time() >= startTime) + { + m_events.erase(m_events.begin() + i, m_events.end()); + break; + } + } +} + +float AudioParamTimeline::valueForContextTime(ContextRenderLock & r, float defaultValue, bool & hasValue) +{ + auto context = r.context(); + if (!context) + return defaultValue; + + std::unique_lock lock(m_eventsMutex, std::try_to_lock); + if (!lock.owns_lock() || !m_events.size() || context->currentTime() < m_events[0].time()) + { + hasValue = false; + return defaultValue; + } + + // Ask for just a single value. + double sampleRate = context->sampleRate(); + double startTime = context->currentTime(); + double endTime = startTime + 1.1 / sampleRate; // time just beyond one sample-frame + double controlRate = sampleRate / AudioNode::ProcessingSizeInFrames; // one parameter change per render quantum + float value = valuesForTimeRange(startTime, endTime, defaultValue, &value, 1, sampleRate, controlRate); + + hasValue = true; + return value; +} + +float AudioParamTimeline::valuesForTimeRange( + double startTime, + double endTime, + float defaultValue, + float * values, + size_t numberOfValues, + double sampleRate, + double controlRate) +{ + float value = valuesForTimeRangeImpl(startTime, endTime, defaultValue, values, numberOfValues, sampleRate, controlRate); + return value; +} + +float AudioParamTimeline::valuesForTimeRangeImpl( + double startTime, + double endTime, + float defaultValue, + float * values, + size_t numberOfValues, + double sampleRate, + double controlRate) +{ + if (!values) + return defaultValue; + + // Return default value if there are no events matching the desired time range. + std::unique_lock lock(m_eventsMutex, std::try_to_lock); + if (!lock.owns_lock() || !m_events.size() || endTime <= m_events[0].time()) + { + for (unsigned i = 0; i < numberOfValues; ++i) + values[i] = defaultValue; + return defaultValue; + } + + // Maintain a running time and index for writing the values buffer. + double currentTime = startTime; + unsigned writeIndex = 0; + + // If first event is after startTime then fill initial part of values buffer with defaultValue + // until we reach the first event time. + double firstEventTime = m_events[0].time(); + if (firstEventTime > startTime) + { + double fillToTime = std::min(endTime, firstEventTime); + size_t fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - startTime, sampleRate); + fillToFrame = std::min(fillToFrame, numberOfValues); + for (; writeIndex < fillToFrame; ++writeIndex) + values[writeIndex] = defaultValue; + + currentTime = fillToTime; + } + + float value = defaultValue; + + // Go through each event and render the value buffer where the times overlap, + // stopping when we've rendered all the requested values. + // FIXME: could try to optimize by avoiding having to iterate starting from the very first event + // and keeping track of a "current" event index. + int n = static_cast(m_events.size()); + for (int i = 0; i < n && writeIndex < numberOfValues; ++i) + { + ParamEvent & event = m_events[i]; + ParamEvent * nextEvent = i < n - 1 ? &(m_events[i + 1]) : 0; + + // Wait until we get a more recent event. + if (nextEvent && nextEvent->time() < currentTime) + continue; + + float value1 = event.value(); + double time1 = event.time(); + float value2 = nextEvent ? nextEvent->value() : value1; + double time2 = nextEvent ? nextEvent->time() : endTime + 1; + + double deltaTime = time2 - time1; + float k = static_cast(deltaTime > 0 ? 1 / deltaTime : 0); + double sampleFrameTimeIncr = 1 / sampleRate; + + double fillToTime = std::min(endTime, time2); + size_t fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - startTime, sampleRate); + fillToFrame = std::min(fillToFrame, numberOfValues); + + ParamEvent::Type nextEventType = nextEvent ? static_cast(nextEvent->type()) : ParamEvent::LastType /* unknown */; + + // First handle linear and exponential ramps which require looking ahead to the next event. + if (nextEventType == ParamEvent::LinearRampToValue) + { + for (; writeIndex < fillToFrame; ++writeIndex) + { + float x = static_cast(currentTime - time1) * k; + value = (1 - x) * value1 + x * value2; + values[writeIndex] = value; + currentTime += sampleFrameTimeIncr; + } + } + else if (nextEventType == ParamEvent::ExponentialRampToValue) + { + if (value1 <= 0 || value2 <= 0) + { + // Handle negative values error case by propagating previous value. + for (; writeIndex < fillToFrame; ++writeIndex) + values[writeIndex] = value; + } + else + { + float numSampleFrames = static_cast(deltaTime * sampleRate); + // The value goes exponentially from value1 to value2 in a duration of deltaTime seconds (corresponding to numSampleFrames). + // Compute the per-sample multiplier. + float multiplier = powf(value2 / value1, 1 / numSampleFrames); + + // Set the starting value of the exponential ramp. This is the same as multiplier ^ + // AudioUtilities::timeToSampleFrame(currentTime - time1, sampleRate), but is more + // accurate, especially if multiplier is close to 1. + value = value1 * powf(value2 / value1, AudioUtilities::timeToSampleFrame(currentTime - time1, sampleRate) / numSampleFrames); + + for (; writeIndex < fillToFrame; ++writeIndex) + { + values[writeIndex] = value; + value *= multiplier; + currentTime += sampleFrameTimeIncr; + } + } + } + else + { + // Handle event types not requiring looking ahead to the next event. + switch (event.type()) + { + case ParamEvent::SetValue: + case ParamEvent::LinearRampToValue: + case ParamEvent::ExponentialRampToValue: + { + currentTime = fillToTime; + + // Simply stay at a constant value. + value = event.value(); + for (; writeIndex < fillToFrame; ++writeIndex) + values[writeIndex] = value; + + break; + } + + case ParamEvent::SetTarget: + { + currentTime = fillToTime; + + // Exponential approach to target value with given time constant. + float target = event.value(); + float timeConstant = event.timeConstant(); + float discreteTimeConstant = static_cast(AudioUtilities::discreteTimeConstantForSampleRate(timeConstant, controlRate)); + + for (; writeIndex < fillToFrame; ++writeIndex) + { + values[writeIndex] = value; + value += (target - value) * discreteTimeConstant; + } + + break; + } + + case ParamEvent::SetValueCurve: + { + std::vector & curve = event.curve(); + float * curveData = curve.size() > 0 ? curve.data() : 0; + size_t numberOfCurvePoints = curve.size() > 0 ? curve.size() : 0; + + // Curve events have duration, so don't just use next event time. + float duration = event.duration(); + + // How much to step the curve index for each frame. This is basically the term + // (N - 1)/Td in the specification. + float curvePointsPerFrame = static_cast((numberOfCurvePoints - 1) / duration / sampleRate); + + if (curve.size() == 0 || !curveData || !numberOfCurvePoints || duration <= 0 || sampleRate <= 0) + { + // Error condition - simply propagate previous value. + currentTime = fillToTime; + for (; writeIndex < fillToFrame; ++writeIndex) + values[writeIndex] = value; + break; + } + + // Save old values and recalculate information based on the curve's duration + // instead of the next event time. + size_t nextEventFillToFrame = fillToFrame; + double nextEventFillToTime = fillToTime; + fillToTime = std::min(endTime, time1 + duration); + + // |fillToTime| can be greater than |startTime| when the end of the + // setValueCurve automation has been reached, but the next automation has not + // yet started. In this case, |fillToTime| is clipped to |time1|+|duration| + // above, but |startTime| will keep increasing (because the current time is + // increasing). + fillToFrame = AudioUtilities::timeToSampleFrame(std::max(0.0, fillToTime - startTime), sampleRate); + + fillToFrame = std::min(fillToFrame, numberOfValues); + + // Index into the curve data using a floating-point value. + // We're scaling the number of curve points by the duration (see curvePointsPerFrame). + float curveVirtualIndex = 0; + if (time1 < currentTime) + { + // Index somewhere in the middle of the curve data. + // Don't use timeToSampleFrame() since we want the exact floating-point frame. + float frameOffset = static_cast((currentTime - time1) * sampleRate); + curveVirtualIndex = curvePointsPerFrame * frameOffset; + } + + // Render the stretched curve data using nearest neighbor sampling. + // Oversampled curve data can be provided if smoothness is desired. + for (; writeIndex < fillToFrame; ++writeIndex) + { + // Ideally we'd use round() from MathExtras, but we're in a tight loop here + // and we're trading off precision for extra speed. + unsigned curveIndex = static_cast(0.5 + curveVirtualIndex); + + curveVirtualIndex += curvePointsPerFrame; + + // Bounds check. + if (curveIndex < numberOfCurvePoints) + value = curveData[curveIndex]; + + values[writeIndex] = value; + } + + // If there's any time left after the duration of this event and the start + // of the next, then just propagate the last value. + for (; writeIndex < nextEventFillToFrame; ++writeIndex) + values[writeIndex] = value; + + // Re-adjust current time + currentTime = nextEventFillToTime; + + break; + } + } + } + } + + // If there's any time left after processing the last event then just propagate the last value + // to the end of the values buffer. + for (; writeIndex < numberOfValues; ++writeIndex) + values[writeIndex] = value; + + return value; +} + +} // namespace lab diff --git a/sources/LabSound/src/core/AudioSummingJunction.cpp b/sources/LabSound/src/core/AudioSummingJunction.cpp new file mode 100644 index 00000000..dd198ccc --- /dev/null +++ b/sources/LabSound/src/core/AudioSummingJunction.cpp @@ -0,0 +1,136 @@ +// License: BSD 2 Clause +// Copyright (C) 2012, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioSummingJunction.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeOutput.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include "internal/Assertions.h" + +#include +#include + +#include "LabSound/core/ConcurrentQueue.h" + +namespace lab +{ + +lab::ConcurrentQueue> s_dirtySummingJunctions; + +namespace +{ + std::mutex junctionMutex; +} + +void AudioSummingJunction::handleDirtyAudioSummingJunctions(ContextRenderLock & r) +{ + ASSERT(r.context()); + std::shared_ptr asj; + while (s_dirtySummingJunctions.try_pop(asj)) + asj->updateRenderingState(r); +} + +AudioSummingJunction::AudioSummingJunction() + : m_renderingStateNeedUpdating(false) +{ +} + +AudioSummingJunction::~AudioSummingJunction() {} + +bool AudioSummingJunction::isConnected(std::shared_ptr o) const +{ + std::lock_guard lock(junctionMutex); + + for (auto i : m_connectedOutputs) + if (i.lock() == o) + return true; + + return false; +} + +int AudioSummingJunction::numberOfRenderingConnections(ContextRenderLock &) const +{ + int count = 0; + for (auto i : m_renderingOutputs) + { + if (!i.expired()) + ++count; + } + return count; +} + +void AudioSummingJunction::junctionConnectOutput(std::shared_ptr o) +{ + if (!o) + return; + + std::lock_guard lock(junctionMutex); + + for (std::vector>::iterator i = m_connectedOutputs.begin(); i != m_connectedOutputs.end();) + if (i->expired()) + i = m_connectedOutputs.erase(i); + else + i++; + + for (auto i : m_connectedOutputs) + if (i.lock() == o) + return; + + m_connectedOutputs.push_back(o); + m_renderingStateNeedUpdating = true; +} + +void AudioSummingJunction::junctionDisconnectOutput(std::shared_ptr o) +{ + if (!o) + return; + + std::lock_guard lock(junctionMutex); + + for (std::vector>::iterator i = m_connectedOutputs.begin(); i != m_connectedOutputs.end(); ++i) + if (!i->expired() && i->lock() == o) + { + m_connectedOutputs.erase(i); + m_renderingStateNeedUpdating = true; + break; + } +} + +void AudioSummingJunction::junctionDisconnectAllOutputs() +{ + std::lock_guard lock(junctionMutex); + m_connectedOutputs.clear(); + m_renderingStateNeedUpdating = true; +} + +void AudioSummingJunction::changedOutputs(ContextGraphLock &) +{ + if (!m_renderingStateNeedUpdating) + { + m_renderingStateNeedUpdating = true; + } +} + +void AudioSummingJunction::updateRenderingState(ContextRenderLock & r) +{ + if (r.context() && m_renderingStateNeedUpdating) + { + std::lock_guard lock(junctionMutex); + + // Copy from m_outputs to m_renderingOutputs. + m_renderingOutputs.clear(); + for (std::vector>::iterator i = m_connectedOutputs.begin(); i != m_connectedOutputs.end(); ++i) + if (!i->expired()) + { + m_renderingOutputs.push_back(*i); + i->lock()->updateRenderingState(r); + } + + m_renderingStateNeedUpdating = false; + } +} + +} // namespace lab diff --git a/sources/LabSound/src/core/BiquadFilterNode.cpp b/sources/LabSound/src/core/BiquadFilterNode.cpp new file mode 100644 index 00000000..0227832f --- /dev/null +++ b/sources/LabSound/src/core/BiquadFilterNode.cpp @@ -0,0 +1,262 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/BiquadFilterNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Biquad.h" +#include + +namespace lab +{ + +static char const * const s_filter_types[FilterType::_FilterTypeCount + 1] = { + "None", + "Low Pass", "High Pass", "Band Pass", "Low Shelf", "High Shelf", "Peaking", "Notch", "All Pass", + nullptr}; + +class BiquadFilterNode::BiquadFilterNodeInternal : public AudioProcessor +{ + friend class BiquadFilterNode; + +public: + + BiquadFilterNodeInternal() : AudioProcessor() + { + the_filter.reset(new Biquad()); + + m_frequency = std::make_shared("frequency", "FREQ", 350.0, 10.0, 22500); + m_q = std::make_shared("Q", "Q ", 1, 0.0001, 1000.0); + m_gain = std::make_shared("gain", "GAIN", 0.0, -40, 40); + m_detune = std::make_shared("detune", "DTUN", 0.0, -4800, 4800); + + m_type = std::make_shared("type", "TYPE", s_filter_types); + m_type->setEnumeration(static_cast(FilterType::LOWPASS)); + + m_type->setValueChanged([this]() { + uint32_t type = m_type->valueUint32(); + if (type > static_cast(FilterType::ALLPASS)) throw std::out_of_range("Filter type exceeds index of known types"); + m_hasJustReset = true; // reset filter coeffs + }); + } + + virtual ~BiquadFilterNodeInternal() + { + } + + virtual void initialize() override {} + virtual void uninitialize() override {} + + virtual void process(ContextRenderLock & r, const lab::AudioBus * sourceBus, lab::AudioBus * destinationBus, int framesToProcess) override + { + checkForDirtyCoefficients(r); + updateCoefficientsIfNecessary(r, true, false); + the_filter->process(sourceBus->channel(0)->data(), destinationBus->channel(0)->mutableData(), framesToProcess); + } + + virtual void reset() override {} + virtual double tailTime(ContextRenderLock & r) const override { return 0.25f; } // fixed 250ms + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + // To prevent audio glitches when parameters are changed, + // dezippering is used to slowly change the parameters. + // |useSmoothing| implies that we want to update using the + // smoothed values. Otherwise the final target values are + // used. If |forceUpdate| is true, we update the coefficients even + // if they are not dirty. (Used when computing the frequency + // response.) + void checkForDirtyCoefficients(ContextRenderLock & r) + { + // Deal with smoothing / de-zippering. Start out assuming filter parameters are not changing. + // The BiquadDSPKernel objects rely on this value to see if they need to re-compute their internal filter coefficients. + m_filterCoefficientsDirty = false; + m_hasSampleAccurateValues = false; + + if (m_frequency->hasSampleAccurateValues() || m_q->hasSampleAccurateValues() || m_gain->hasSampleAccurateValues() || m_detune->hasSampleAccurateValues()) + { + m_filterCoefficientsDirty = true; + m_hasSampleAccurateValues = true; + } + else + { + // Snap to exact values first time after reset, then smooth for subsequent changes. + if (m_hasJustReset) + { + m_frequency->resetSmoothedValue(); + m_q->resetSmoothedValue(); + m_gain->resetSmoothedValue(); + m_detune->resetSmoothedValue(); + m_filterCoefficientsDirty = true; + m_hasJustReset = false; + } + else + { + // Smooth all of the filter parameters. If they haven't yet converged to their target value then mark coefficients as dirty. + bool isStable1 = m_frequency->smooth(r); + bool isStable2 = m_q->smooth(r); + bool isStable3 = m_gain->smooth(r); + bool isStable4 = m_detune->smooth(r); + if (!(isStable1 && isStable2 && isStable3 && isStable4)) m_filterCoefficientsDirty = true; + } + } + } + + void updateCoefficientsIfNecessary(ContextRenderLock & r, bool useSmoothing, bool forceUpdate) + { + /* bool isStable1 = */ m_frequency->smooth(r); + /* bool isStable2 = */ m_q->smooth(r); + /* bool isStable3 = */ m_gain->smooth(r); + /* bool isStable4 = */ m_detune->smooth(r); + + if (forceUpdate || m_filterCoefficientsDirty) + { + double freq; + double q_val; + double gain; + double detune; + + if (m_hasSampleAccurateValues) + { + /// @fixme these values should be per sample, not per quantum + freq = m_frequency->finalValue(r); + q_val = m_q->finalValue(r); + gain = m_gain->finalValue(r); + detune = m_detune->finalValue(r); + } + else if (useSmoothing) + { + /// @fixme these values should be per sample, not per quantum + freq = m_frequency->smoothedValue(); + q_val = m_q->smoothedValue(); + gain = m_gain->smoothedValue(); + detune = m_detune->smoothedValue(); + } + else + { + freq = m_frequency->value(); + q_val = m_q->value(); + gain = m_gain->value(); + detune = m_detune->value(); + } + + // Convert from Hertz to normalized frequency 0 -> 1. + double nyquist = r.context()->sampleRate() * 0.5f; + double normalizedFrequency = freq / nyquist; + + // Offset frequency by detune + if (detune) + { + normalizedFrequency *= std::pow(2.0, detune / 1200.0); + } + + // Configure the biquad with the new filter parameters for the appropriate type of filter. + // clang-format off + switch (m_type->valueUint32()) + { + case FilterType::LOWPASS: the_filter->setLowpassParams(normalizedFrequency, q_val); break; + case FilterType::HIGHPASS: the_filter->setHighpassParams(normalizedFrequency, q_val); break; + case FilterType::BANDPASS: the_filter->setBandpassParams(normalizedFrequency, q_val); break; + case FilterType::LOWSHELF: the_filter->setLowShelfParams(normalizedFrequency, gain); break; + case FilterType::HIGHSHELF: the_filter->setHighShelfParams(normalizedFrequency, gain); break; + case FilterType::PEAKING: the_filter->setPeakingParams(normalizedFrequency, q_val, gain); break; + case FilterType::NOTCH: the_filter->setNotchParams(normalizedFrequency, q_val); break; + case FilterType::ALLPASS: the_filter->setAllpassParams(normalizedFrequency, q_val); break; + default: break; + } + // clang-format on + } + } + + void getFrequencyResponse(ContextRenderLock & r, const std::vector & frequencyHz, std::vector & magResponse, std::vector & phaseResponse) + { + if (!frequencyHz.size() || !magResponse.size() || !phaseResponse.size()) + return; + + size_t n = std::min(frequencyHz.size(), std::min(magResponse.size(), phaseResponse.size())); + + // @todo + if (n) + { + // std::unique_ptr responseKernel(new BiquadDSPKernel(this)); + // responseKernel->getFrequencyResponse(r, nFrequencies, frequencyHz, magResponse, phaseResponse); + //biquadProcessor()->getFrequencyResponse(r, n, &frequencyHz[0], &magResponse[0], &phaseResponse[0]); + } + } + + // so DSP kernels know when to re-compute coefficients + bool m_filterCoefficientsDirty {true}; + + // Set to true if any of the filter parameters are sample-accurate. + bool m_hasSampleAccurateValues {false}; + + bool m_hasJustReset {true}; + + std::shared_ptr m_type; + std::shared_ptr m_frequency; + std::shared_ptr m_q; + std::shared_ptr m_gain; + std::shared_ptr m_detune; + + std::unique_ptr the_filter; +}; + +BiquadFilterNode::BiquadFilterNode(AudioContext& ac) : AudioBasicProcessorNode(ac) +{ + biquad_impl = new BiquadFilterNodeInternal(); + m_processor.reset(biquad_impl); + + m_params.push_back(biquad_impl->m_frequency); + m_params.push_back(biquad_impl->m_q); + m_params.push_back(biquad_impl->m_gain); + m_params.push_back(biquad_impl->m_detune); + m_settings.push_back(biquad_impl->m_type); + initialize(); +} + +BiquadFilterNode::~BiquadFilterNode() +{ + if (isInitialized()) uninitialize(); +} + +void BiquadFilterNode::setType(FilterType type) +{ + biquad_impl->m_type->setUint32(uint32_t(type)); +} + +void BiquadFilterNode::getFrequencyResponse(ContextRenderLock & r, const std::vector & frequencyHz, std::vector & magResponse, std::vector & phaseResponse) +{ + biquad_impl->getFrequencyResponse(r, frequencyHz, magResponse, phaseResponse); +} + +FilterType BiquadFilterNode::type() const +{ + return (FilterType) biquad_impl->m_type->valueUint32(); +} + +std::shared_ptr BiquadFilterNode::frequency() +{ + return biquad_impl->m_frequency; +} + +std::shared_ptr BiquadFilterNode::q() +{ + return biquad_impl->m_q; +} + +std::shared_ptr BiquadFilterNode::gain() +{ + return biquad_impl->m_gain; +} + +std::shared_ptr BiquadFilterNode::detune() +{ + return biquad_impl->m_detune; +} + +} // namespace lab diff --git a/sources/LabSound/src/core/ChannelMergerNode.cpp b/sources/LabSound/src/core/ChannelMergerNode.cpp new file mode 100644 index 00000000..5d359774 --- /dev/null +++ b/sources/LabSound/src/core/ChannelMergerNode.cpp @@ -0,0 +1,70 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/ChannelMergerNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" + +using namespace std; + +namespace lab +{ + +ChannelMergerNode::ChannelMergerNode(AudioContext& ac, int numberOfInputs_) + : AudioNode(ac), m_desiredNumberOfOutputChannels(1) +{ + addInputs(numberOfInputs_); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + initialize(); +} + +void ChannelMergerNode::addInputs(int n) +{ + // Create the requested number of inputs. + for (int i = 0; i < n; ++i) + addInput(std::unique_ptr(new AudioNodeInput(this))); +} + +void ChannelMergerNode::process(ContextRenderLock & r, int bufferSize) +{ + auto output = this->output(0); + ASSERT_UNUSED(bufferSize, bufferSize == output->bus(r)->length()); + + if (m_desiredNumberOfOutputChannels != output->numberOfChannels()) + { + output->setNumberOfChannels(r, m_desiredNumberOfOutputChannels); + } + + // Merge all the channels from all the inputs into one output. + uint32_t outputChannelIndex = 0; + for (int i = 0; i < numberOfInputs(); ++i) + { + auto input = this->input(i); + + if (input->isConnected()) + { + size_t numberOfInputChannels = input->bus(r)->numberOfChannels(); + + // Merge channels from this particular input. + for (int j = 0; j < numberOfInputChannels; ++j) + { + AudioChannel * inputChannel = input->bus(r)->channel(j); + AudioChannel * outputChannel = output->bus(r)->channel(outputChannelIndex); + + outputChannel->copyFrom(inputChannel); + ++outputChannelIndex; + } + } + } + + ASSERT(outputChannelIndex == output->numberOfChannels()); +} + + +} // namespace lab diff --git a/sources/LabSound/src/core/ChannelSplitterNode.cpp b/sources/LabSound/src/core/ChannelSplitterNode.cpp new file mode 100644 index 00000000..3d366c63 --- /dev/null +++ b/sources/LabSound/src/core/ChannelSplitterNode.cpp @@ -0,0 +1,65 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/ChannelSplitterNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" + +namespace lab +{ + +ChannelSplitterNode::ChannelSplitterNode(AudioContext& ac, int numberOfOutputs_) + : AudioNode(ac) +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutputs(numberOfOutputs_); + initialize(); +} + +void ChannelSplitterNode::addOutputs(int numberOfOutputs_) +{ + // Create a fixed number of outputs (able to handle the maximum number of channels fed to an input). + for (int i = 0; i < numberOfOutputs_; ++i) + { + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + } +} + +void ChannelSplitterNode::process(ContextRenderLock & r, int bufferSize) +{ + AudioBus * source = input(0)->bus(r); + ASSERT(source); + ASSERT_UNUSED(bufferSize, bufferSize == source->length()); + + size_t numberOfSourceChannels = source->numberOfChannels(); + + for (int i = 0; i < numberOfOutputs(); ++i) + { + AudioBus * destination = output(i)->bus(r); + ASSERT(destination); + + if (i < numberOfSourceChannels) + { + // Split the channel out if it exists in the source. + // It would be nice to avoid the copy and simply pass along pointers, but this becomes extremely difficult with fanout and fanin. + destination->channel(0)->copyFrom(source->channel(i)); + } + else if (output(i)->renderingFanOutCount() > 0) + { + // Only bother zeroing out the destination if it's connected to anything + destination->zero(); + } + } +} + +void ChannelSplitterNode::reset(ContextRenderLock &) +{ +} + +} // namespace lab diff --git a/sources/LabSound/src/core/ConvolverNode.cpp b/sources/LabSound/src/core/ConvolverNode.cpp new file mode 100644 index 00000000..6a57c11d --- /dev/null +++ b/sources/LabSound/src/core/ConvolverNode.cpp @@ -0,0 +1,302 @@ + +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/ConvolverNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" +#include "internal/VectorMath.h" +#include + +namespace lab +{ + +using std::isinf; +using std::isnan; + +// from _SoundPipe_FFT.cpp +struct sp_conv; +struct sp_data; +struct sp_ftbl; +typedef float SPFLOAT; +int sp_create(sp_data ** spp); +int sp_destroy(sp_data ** spp); +int sp_conv_compute(sp_data * sp, sp_conv * p, SPFLOAT * in, SPFLOAT * out); +int sp_conv_create(sp_conv ** p); +int sp_conv_destroy(sp_conv ** p); +int sp_conv_init(sp_data * sp, sp_conv * p, sp_ftbl * ft, SPFLOAT iPartLen); +int sp_ftbl_destroy(sp_ftbl ** ft); +int sp_ftbl_bind(sp_data * sp, sp_ftbl ** ft, SPFLOAT * tbl, size_t size); + +//------------------------------------------------------------------------------ +// calculateNormalizationScale is adapted from webkit's Reverb.cpp, and carried the license: +// Empirical gain calibration tested across many impulse responses to ensure +// perceived volume is same as dry (unprocessed) signal +const float GainCalibration = -58; +const float GainCalibrationSampleRate = 44100; + +// A minimum power value to when normalizing a silent (or very quiet) impulse response +const float MinPower = 0.000125f; + +// calculateNormalizationScale license: BSD 3 Clause, Copyright (C) 2010, Google Inc. All rights reserved. +static float calculateNormalizationScale(AudioBus * response) +{ + // Normalize by RMS power + size_t numberOfChannels = response->numberOfChannels(); + int length = response->length(); + + float power = 0; + + for (int i = 0; i < numberOfChannels; ++i) + { + float channelPower = 0; + VectorMath::vsvesq(response->channel(i)->data(), 1, &channelPower, length); + power += channelPower; + } + + power = sqrt(power / (numberOfChannels * length)); + + // Protect against accidental overload + if (isinf(power) || isnan(power) || power < MinPower) + power = MinPower; + + float scale = 1 / power; + + scale *= powf(10, GainCalibration * 0.05f); // calibrate to make perceived volume same as unprocessed + + // Scale depends on sample-rate. + if (response->sampleRate()) + scale *= GainCalibrationSampleRate / response->sampleRate(); + + // True-stereo compensation + if (response->numberOfChannels() == Channels::Quad) + scale *= 0.5f; + + return scale; +} +//------------------------------------------------------------------------------ + +ConvolverNode::ReverbKernel::ReverbKernel(ReverbKernel && rh) noexcept + : conv(rh.conv) + , ft(rh.ft) +{ + rh.conv = nullptr; + rh.ft = nullptr; +} + +ConvolverNode::ReverbKernel::~ReverbKernel() +{ + if (ft) + lab::sp_ftbl_destroy(&ft); + + if (conv) + lab::sp_conv_destroy(&conv); +} + +ConvolverNode::ConvolverNode(AudioContext& ac) + : AudioScheduledSourceNode(ac) + , _normalize(std::make_shared("normalize", "NRML", AudioSetting::Type::Bool)) + , _impulseResponseClip(std::make_shared("impulseResponse", "IMPL", AudioSetting::Type::Bus)) +{ + _swap_ready = false; + + m_settings.push_back(_impulseResponseClip); + m_settings.push_back(_normalize); + _normalize->setBool(true); + + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 0))); + + lab::sp_create(&_sp); + + _impulseResponseClip->setValueChanged([this]() { + this->_activateNewImpulse(); + }); + + initialize(); +} + +ConvolverNode::~ConvolverNode() +{ + _kernels.clear(); + lab::sp_destroy(&_sp); + uninitialize(); +} + +bool ConvolverNode::normalize() const +{ + return _normalize->valueBool(); +} +void ConvolverNode::setNormalize(bool new_n) +{ + bool n = normalize(); + if (new_n == n) + return; + + auto clip = _impulseResponseClip->valueBus(); + if (clip) + { + size_t len = clip->length(); + if (n && _scale != 1.f) + { + // undo previous normalization + float s = 1.f / _scale; + for (int i = 0; i < clip->numberOfChannels(); ++i) + { + float * data = clip->channel(i)->mutableData(); + for (int j = 0; j < len; ++j) + data[j] *= s; + } + } + if (!n) + { + // wasn't previously normalized, so normalize + _scale = calculateNormalizationScale(clip.get()); + for (int i = 0; i < clip->numberOfChannels(); ++i) + { + float * data = clip->channel(i)->mutableData(); + for (int j = 0; j < len; ++j) + data[j] *= _scale; + } + } + } + + _normalize->setBool(new_n); +} + +void ConvolverNode::setImpulse(std::shared_ptr bus) +{ + if (!bus) + return; + + auto new_bus = AudioBus::createByCloning(bus.get()); + _impulseResponseClip->setBus(new_bus.get()); // setBus will invoke _activatNewImpulse() +} + +void ConvolverNode::_activateNewImpulse() +{ + auto clip = _impulseResponseClip->valueBus(); + size_t len = clip->length(); + _scale = 1; + if (normalize()) + { + _scale = calculateNormalizationScale(clip.get()); + for (int i = 0; i < clip->numberOfChannels(); ++i) + { + float * data = clip->channel(i)->mutableData(); + for (int j = 0; j < len; ++j) + data[j] *= _scale; + } + } + + { + std::unique_lock kernel_guard(_kernel_mutex); + int c = static_cast(clip->numberOfChannels()); + for (int i = 0; i < c; ++i) + { + // create one kernel per IR channel + ReverbKernel kernel; + + // ft doesn't own the data; it does retain a pointer to it. + sp_ftbl_bind(_sp, &kernel.ft, + clip->channel(0)->mutableData(), clip->channel(0)->length()); + + sp_conv_create(&kernel.conv); + sp_conv_init(_sp, kernel.conv, kernel.ft, 8192); + + _pending_kernels.emplace_back(std::move(kernel)); + } + _swap_ready = true; + } + + start(0); +} + +std::shared_ptr ConvolverNode::getImpulse() const +{ + return _impulseResponseClip->valueBus(); +} + +void ConvolverNode::process(ContextRenderLock & r, int bufferSize) +{ + if (_swap_ready) { + // this could cause an audio hiccough when swapping, but it's necessary to avoid a race + std::unique_lock kernel_guard(_kernel_mutex); + _swap_ready = false; + std::swap(_kernels, _pending_kernels); + _pending_kernels.clear(); + } + + AudioBus * outputBus = output(0)->bus(r); + AudioBus * inputBus = input(0)->bus(r); + + if (!isInitialized() || !outputBus || !inputBus || !inputBus->numberOfChannels() || !_kernels.size()) + { + outputBus->zero(); + return; + } + + // if the user never specified the number of output channels, make it match the input + if (!outputBus->numberOfChannels()) + { + output(0)->setNumberOfChannels(r, inputBus->numberOfChannels()); + outputBus = output(0)->bus(r); // set number of channels invalidates the pointer + } + + int quantumFrameOffset = _scheduler._renderOffset; + int nonSilentFramesToProcess = _scheduler._renderLength; + + int numInputChannels = static_cast(inputBus->numberOfChannels()); + int numOutputChannels = static_cast(outputBus->numberOfChannels()); + int numReverbChannels = static_cast(_kernels.size()); + + if (!nonSilentFramesToProcess) + { + outputBus->zero(); + return; + } + + /// @todo should a situation such as 1:2:1 be invalid, or should it be powersum(1:1:1, 1:2:1)? + /// at the moment, this routine trivially does 1:1:1 only. + + for (int i = 0; i < numOutputChannels; ++i) + { + int kernel = i < numReverbChannels ? i : numReverbChannels - 1; + lab::sp_conv * conv = _kernels[kernel].conv; + float* destP = outputBus->channel(i)->mutableData() + _scheduler._renderOffset; + + // Start rendering at the correct offset. + destP += quantumFrameOffset; + { + AudioBus * input_bus = input(0)->bus(r); + int in_channel = i < numInputChannels ? i : numInputChannels - 1; + float const* data = input_bus->channel(in_channel)->data() + quantumFrameOffset; + size_t c = input_bus->channel(in_channel)->length(); + for (int j = 0; j < _scheduler._renderLength; ++j) + { + lab::SPFLOAT in = j < c ? data[j] : 0.f; // don't read off the end of the input buffer + lab::SPFLOAT out = 0.f; + lab::sp_conv_compute(_sp, conv, &in, &out); + *destP++ = out; + } + } + } + + _now += double(_scheduler._renderLength) / r.context()->sampleRate(); + outputBus->clearSilentFlag(); +} + +void ConvolverNode::reset(ContextRenderLock &) +{ + _kernels.clear(); +} + +bool ConvolverNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} + +} // lab::Sound diff --git a/sources/LabSound/src/core/DelayNode.cpp b/sources/LabSound/src/core/DelayNode.cpp new file mode 100644 index 00000000..e297997e --- /dev/null +++ b/sources/LabSound/src/core/DelayNode.cpp @@ -0,0 +1,39 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/DelayNode.h" +#include "LabSound/core/AudioBasicProcessorNode.h" +#include "LabSound/core/AudioProcessor.h" +#include "LabSound/extended/Registry.h" + +#include "internal/AudioDSPKernel.h" +#include "internal/DelayProcessor.h" + +namespace lab +{ + +DelayNode::DelayNode(AudioContext& ac, double maxDelayTime) + : AudioBasicProcessorNode(ac) +{ + if (maxDelayTime < 0) + maxDelayTime = 0; // delay node can't predict the future + + m_processor = std::make_unique(ac.sampleRate(), maxDelayTime); + + m_settings.push_back(delayProcessor()->delayTime()); + + initialize(); +} + +std::shared_ptr DelayNode::delayTime() +{ + return delayProcessor()->delayTime(); +} + +DelayProcessor * DelayNode::delayProcessor() +{ + return static_cast(processor()); +} + +} // lab diff --git a/sources/LabSound/src/core/DynamicsCompressorNode.cpp b/sources/LabSound/src/core/DynamicsCompressorNode.cpp new file mode 100644 index 00000000..fbfa6b17 --- /dev/null +++ b/sources/LabSound/src/core/DynamicsCompressorNode.cpp @@ -0,0 +1,125 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/DynamicsCompressorNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" +#include "internal/DynamicsCompressor.h" + +using namespace std; + +namespace lab +{ + +DynamicsCompressorNode::DynamicsCompressorNode(AudioContext& ac) + : AudioNode(ac) +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 2))); + + m_threshold = make_shared("threshold", "THRS", -24, -100, 0); + m_knee = make_shared("knee", "KNEE", 30, 0, 40); + m_ratio = make_shared("ratio", "RATE", 12, 1, 20); + m_reduction = make_shared("reduction", "REDC", 0, -20, 0); + m_attack = make_shared("attack", "ATCK", 0.003, 0, 1); + m_release = make_shared("release", "RELS", 0.250, 0, 1); + + m_params.push_back(m_threshold); + m_params.push_back(m_knee); + m_params.push_back(m_ratio); + m_params.push_back(m_reduction); + m_params.push_back(m_attack); + m_params.push_back(m_release); + + initialize(); +} + +DynamicsCompressorNode::~DynamicsCompressorNode() +{ + uninitialize(); +} + +void DynamicsCompressorNode::process(ContextRenderLock &r, int bufferSize) +{ + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + float threshold = m_threshold->value(); + float knee = m_knee->value(); + float ratio = m_ratio->value(); + float attack = m_attack->value(); + float release = m_release->value(); + + m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamThreshold, threshold); + m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamKnee, knee); + m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamRatio, ratio); + m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamAttack, attack); + m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamRelease, release); + + int numberOfSourceChannels = input(0)->numberOfChannels(r); + int numberOfActiveBusChannels = input(0)->bus(r)->numberOfChannels(); + if (numberOfActiveBusChannels != numberOfSourceChannels) + { + checkNumberOfChannelsForInput(r, input(0).get()); + } + + int numberOfDestChannels = output(0)->numberOfChannels(); + if (numberOfDestChannels != numberOfActiveBusChannels) + { + output(0)->setNumberOfChannels(r, numberOfActiveBusChannels); + output(0)->updateRenderingState(r); + numberOfDestChannels = output(0)->numberOfChannels(); + } + + AudioBus* outputBus = output(0)->bus(r); + ASSERT(outputBus && outputBus->numberOfChannels() == numberOfDestChannels); + + m_dynamicsCompressor->process(r, input(0)->bus(r), outputBus, bufferSize, _scheduler._renderOffset, _scheduler._renderLength); + + float reduction = m_dynamicsCompressor->parameterValue(DynamicsCompressor::ParamReduction); + m_reduction->setValue(reduction); +} + +void DynamicsCompressorNode::reset(ContextRenderLock &) +{ + m_dynamicsCompressor->reset(); +} + +void DynamicsCompressorNode::initialize() +{ + if (isInitialized()) + return; + + m_dynamicsCompressor.reset(new DynamicsCompressor(2)); + + AudioNode::initialize(); +} + +void DynamicsCompressorNode::uninitialize() +{ + if (!isInitialized()) + return; + + AudioNode::uninitialize(); + + m_dynamicsCompressor.reset(); +} + +double DynamicsCompressorNode::tailTime(ContextRenderLock & r) const +{ + return m_dynamicsCompressor->tailTime(r); +} + +double DynamicsCompressorNode::latencyTime(ContextRenderLock & r) const +{ + return m_dynamicsCompressor->latencyTime(r); +} + +} // end namespace lab diff --git a/sources/LabSound/src/core/GainNode.cpp b/sources/LabSound/src/core/GainNode.cpp new file mode 100644 index 00000000..5a1de2b9 --- /dev/null +++ b/sources/LabSound/src/core/GainNode.cpp @@ -0,0 +1,104 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/GainNode.h" +#include "LabSound/core/AudioArray.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" + +namespace lab +{ + +GainNode::GainNode(AudioContext& ac) + : AudioNode(ac) + , m_lastGain(1.f) + , m_sampleAccurateGainValues(AudioNode::ProcessingSizeInFrames) // FIXME: can probably share temp buffer in context +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + + m_gain = std::make_shared("gain", "GAIN", 1.0, 0.0, 10000.0); + m_params.push_back(m_gain); + + initialize(); +} + +GainNode::~GainNode() +{ + uninitialize(); +} + +void GainNode::process(ContextRenderLock &r, int bufferSize) +{ + // FIXME: for some cases there is a nice optimization to avoid processing here, and let the gain change + // happen in the summing junction input of the AudioNode we're connected to. + // Then we can avoid all of the following: + + AudioBus * outputBus = output(0)->bus(r); + ASSERT(outputBus); + + + if (!isInitialized() || !input(0)->isConnected()) + { + outputBus->zero(); + return; + } + + + AudioBus* inputBus = input(0)->bus(r); + const int inputBusChannelCount = inputBus->numberOfChannels(); + if (!inputBusChannelCount) + { + outputBus->zero(); + return; + } + + int outputBusChannelCount = outputBus->numberOfChannels(); + if (inputBusChannelCount != outputBusChannelCount) + { + output(0)->setNumberOfChannels(r, inputBusChannelCount); + outputBusChannelCount = inputBusChannelCount; + outputBus = output(0)->bus(r); + } + + if (gain()->hasSampleAccurateValues()) + { + // Apply sample-accurate gain scaling for precise envelopes, grain windows, etc. + ASSERT(bufferSize <= m_sampleAccurateGainValues.size()); + if (bufferSize <= m_sampleAccurateGainValues.size()) + { + float* gainValues_base = m_sampleAccurateGainValues.data(); + float* gainValues = gainValues_base + _scheduler._renderOffset; + gain()->calculateSampleAccurateValues(r, gainValues, _scheduler._renderLength); + if (_scheduler._renderOffset > 0) + memset(gainValues_base, 0, sizeof(float) * _scheduler._renderOffset); + int bzero_start = _scheduler._renderOffset + _scheduler._renderLength; + if (bzero_start < bufferSize) + memset(gainValues_base + bzero_start, 0, sizeof(float) * bufferSize - bzero_start); + outputBus->copyWithSampleAccurateGainValuesFrom(*inputBus, m_sampleAccurateGainValues.data(), bufferSize); + } + } + else + { + // Apply the gain with de-zippering into the output bus. + outputBus->copyWithGainFrom(*inputBus, &m_lastGain, gain()->value()); + } + + outputBus->clearSilentFlag(); +} + +void GainNode::reset(ContextRenderLock & r) +{ + // Snap directly to desired gain. + m_lastGain = gain()->value(); +} + + +} // namespace lab diff --git a/sources/LabSound/src/core/NullDeviceNode.cpp b/sources/LabSound/src/core/NullDeviceNode.cpp new file mode 100644 index 00000000..fed74b0e --- /dev/null +++ b/sources/LabSound/src/core/NullDeviceNode.cpp @@ -0,0 +1,209 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/NullDeviceNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Logging.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" + +#include + +using namespace lab; + +static const int offlineRenderSizeQuantum = AudioNode::ProcessingSizeInFrames; + +NullDeviceNode::NullDeviceNode(AudioContext & ac, + const AudioStreamConfig & outputConfig, double lengthSeconds) + : AudioNode(ac) + , m_numChannels(outputConfig.desired_channels) + , m_lengthSeconds(lengthSeconds) + , m_context(&ac) + , outConfig(outputConfig) +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + + m_renderBus = std::unique_ptr(new AudioBus(m_numChannels, offlineRenderSizeQuantum)); + + m_channelCount = m_numChannels; + m_channelCountMode = ChannelCountMode::Explicit; + m_channelInterpretation = ChannelInterpretation::Discrete; + + // We need to partially fill the the info struct here so that the context's graph thread + // has enough initial info to make connections/disconnections appropriately + info = {}; + info.sampling_rate = outConfig.desired_samplerate; + info.epoch[0] = info.epoch[1] = std::chrono::high_resolution_clock::now(); + + ContextGraphLock glock(&ac, "NullDeviceNode"); + AudioNode::setChannelCount(glock, m_numChannels); + initialize(); +} + +NullDeviceNode::~NullDeviceNode() +{ + uninitialize(); +} + +void NullDeviceNode::initialize() +{ + if (isInitialized()) return; + AudioNode::initialize(); +} + +void NullDeviceNode::uninitialize() +{ + if (!isInitialized()) return; + + if (m_renderThread.joinable()) + { + m_renderThread.join(); + } + + AudioNode::uninitialize(); +} + +void NullDeviceNode::start() +{ + if (!m_startedRendering) + { + m_startedRendering = true; + shouldExit = false; + + m_renderThread = std::thread(&NullDeviceNode::offlineRender, this); + + // @tofix - ability to update main thread from here. Currently blocks until complete + if (m_renderThread.joinable()) + { + m_renderThread.join(); + } + + LOG_TRACE("offline rendering completed"); + + if (m_context->offlineRenderCompleteCallback) + { + m_context->offlineRenderCompleteCallback(); + } + + m_startedRendering = false; + } + else + { + LOG_WARN("NullDeviceNode rendering already started"); + } +} + +void NullDeviceNode::stop() +{ + shouldExit = true; +} + +bool NullDeviceNode::isRunning() const +{ + return m_startedRendering; +} + +void NullDeviceNode::render(AudioBus * src, AudioBus * dst, int frames, const SamplingInfo & info) +{ + ProfileScope profile(graphTime); + totalTime.zero(); + + pull_graph(m_context, input(0).get(), src, dst, frames, info, nullptr); + profile.finalize(); // ensure profile is not prematurely destructed +} + +const SamplingInfo & NullDeviceNode::getSamplingInfo() const +{ + return info; +} + +const AudioStreamConfig & NullDeviceNode::getOutputConfig() const +{ + return outConfig; +} + +const AudioStreamConfig & NullDeviceNode::getInputConfig() const +{ + static AudioStreamConfig conf; + return conf; +} + +void NullDeviceNode::offlineRender() +{ + ASSERT(m_renderBus.get()); + if (!m_renderBus.get()) + return; + + bool isRenderBusAllocated = m_renderBus->length() >= offlineRenderSizeQuantum; + ASSERT(isRenderBusAllocated); + if (!isRenderBusAllocated) + return; + + bool isAudioContextInitialized = m_context->isInitialized(); + ASSERT(isAudioContextInitialized); + if (!isAudioContextInitialized) + return; + + // Break up the desired length into smaller "render quantum" sized pieces. + int framesToProcess = static_cast((m_lengthSeconds * outConfig.desired_samplerate) / offlineRenderSizeQuantum); + + LOG_TRACE("offline rendering started"); + + while (framesToProcess > 0 && !shouldExit) + { + m_context->update(); + render(0, m_renderBus.get(), offlineRenderSizeQuantum, info); + + // Update sampling info + const int index = 1 - (info.current_sample_frame & 1); + const uint64_t t = info.current_sample_frame & ~1; + info.current_sample_frame = t + offlineRenderSizeQuantum + index; + info.current_time = info.current_sample_frame / static_cast(info.sampling_rate); + info.epoch[index] += std::chrono::nanoseconds {static_cast( + 1.e9 * (double) framesToProcess / (double) offlineRenderSizeQuantum)}; + + framesToProcess--; + } +} + +void NullDeviceNode::offlineRenderFrames(size_t framesToProcess) +{ + ASSERT(framesToProcess % offlineRenderSizeQuantum == 0); + + ASSERT(m_renderBus.get()); + if (!m_renderBus.get()) + return; + + bool isRenderBusAllocated = m_renderBus->length() >= offlineRenderSizeQuantum; + ASSERT(isRenderBusAllocated); + if (!isRenderBusAllocated) + return; + + bool isAudioContextInitialized = m_context->isInitialized(); + ASSERT(isAudioContextInitialized); + if (!isAudioContextInitialized) + return; + + //LOG_TRACE("offline render processing"); + + while (framesToProcess > 0 && !shouldExit) + { + m_context->update(); + render(0, m_renderBus.get(), offlineRenderSizeQuantum, info); + + // Update sampling info + const int index = 1 - (info.current_sample_frame & 1); + const uint64_t t = info.current_sample_frame & ~1; + info.current_sample_frame = t + offlineRenderSizeQuantum + index; + info.current_time = info.current_sample_frame / static_cast(info.sampling_rate); + info.epoch[index] += std::chrono::nanoseconds {static_cast( + 1.e9 * (double)framesToProcess / (double)offlineRenderSizeQuantum) }; + + framesToProcess -= offlineRenderSizeQuantum; + } +} diff --git a/sources/LabSound/src/core/OscillatorNode.cpp b/sources/LabSound/src/core/OscillatorNode.cpp new file mode 100644 index 00000000..733210d6 --- /dev/null +++ b/sources/LabSound/src/core/OscillatorNode.cpp @@ -0,0 +1,287 @@ +// License: BSD 2 Clause +// Copyright (C) 2012, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/OscillatorNode.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/WaveTable.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/VectorMath.h" + +#include +//#include + +using namespace lab; + +// https://www.musicdsp.org/en/latest/Synthesis/13-sine-calculation.html +// phase should be between between -LAB_PI and +LAB_PI +inline float burk_fast_sine(const double phase) +{ + // Factorial coefficients. + const float IF3 = 1.f / (2 * 3); + const float IF5 = IF3 / (4 * 5); + const float IF7 = IF5 / (6 * 7); + const float IF9 = IF7 / (8 * 9); + const float IF11 = IF9 / (10 * 11); + + // Wrap phase back into region where results are more accurate. + double x = (phase > +LAB_HALF_PI) ? +(LAB_PI - phase) + : ((phase < -LAB_HALF_PI) ? -(LAB_PI + phase) : phase); + + double x2 = (x * x); + + // Taylor expansion out to x**11/11! factored into multiply-adds + return static_cast( + x * (x2 * (x2 * (x2 * (x2 * ((x2 * (-IF11)) + IF9) - IF7) + IF5) - IF3) + 1) + ); +} + +static char const * const s_types[] = {"None", "Sine", "FastSine", "Square", "Sawtooth", "Triangle", "Custom", nullptr}; + +OscillatorNode::OscillatorNode(AudioContext & ac) + : AudioScheduledSourceNode(ac) + , m_phaseIncrements(AudioNode::ProcessingSizeInFrames) + , m_detuneValues(AudioNode::ProcessingSizeInFrames) +{ + m_type = std::make_shared("type", "TYPE", s_types); + m_frequency = std::make_shared("frequency", "FREQ", 440, 0, 100000); + m_detune = std::make_shared("detune", "DTUN", 0, -4800, 4800); + m_amplitude = std::make_shared("amplitude", "AMPL", 1, 0, 100000); + m_bias = std::make_shared("bias", "BIAS", 0, -1000000, 100000); + + m_params.push_back(m_frequency); + m_params.push_back(m_amplitude); + m_params.push_back(m_bias); + m_params.push_back(m_detune); + + m_type->setValueChanged([this]() { setType(OscillatorType(m_type->valueUint32())); }); + m_settings.push_back(m_type); + + setType(OscillatorType::SINE); + + // An oscillator is always mono. + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + initialize(); +} + +OscillatorNode::~OscillatorNode() +{ + uninitialize(); +} + +OscillatorType OscillatorNode::type() const +{ + return OscillatorType(m_type->valueUint32()); +} + +void OscillatorNode::setType(OscillatorType type) +{ + m_type->setUint32(static_cast(type)); +} + +void OscillatorNode::process_oscillator(ContextRenderLock & r, int bufferSize, int offset, int count) +{ + AudioBus * outputBus = output(0)->bus(r); + if (!r.context() || !isInitialized() || !outputBus->numberOfChannels()) + { + outputBus->zero(); + return; + } + + const float sample_rate = r.context()->sampleRate(); + + int quantumFrameOffset = offset; + int nonSilentFramesToProcess = count; + + if (!nonSilentFramesToProcess) + { + outputBus->zero(); + return; + } + + nonSilentFramesToProcess += quantumFrameOffset; + + if (bufferSize > m_phaseIncrements.size()) m_phaseIncrements.allocate(bufferSize); + if (bufferSize > m_detuneValues.size()) m_detuneValues.allocate(bufferSize); + if (bufferSize > m_amplitudeValues.size()) m_amplitudeValues.allocate(bufferSize); + if (bufferSize > m_biasValues.size()) m_biasValues.allocate(bufferSize); + + + // calculate phase increments + float* phaseIncrements = m_phaseIncrements.data(); + + if (m_frequency->hasSampleAccurateValues()) + { + // Get the sample-accurate frequency values in preparation for conversion to phase increments. + // They will be converted to phase increments below. + m_frequency->calculateSampleAccurateValues(r, phaseIncrements, nonSilentFramesToProcess); + } + else + { + // Handle ordinary parameter smoothing/de-zippering if there are no scheduled changes. + m_frequency->smooth(r); + float frequency = m_frequency->smoothedValue(); + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + phaseIncrements[i] = frequency; + } + } + + if (m_detune->hasSampleAccurateValues()) + { + // Get the sample-accurate detune values. + float* detuneValues = m_detuneValues.data(); + float* offset_detunes = detuneValues + +quantumFrameOffset; + m_detune->calculateSampleAccurateValues(r, offset_detunes, nonSilentFramesToProcess); + + // Convert from cents to rate scalar and perform detuning + float k = 1.f / 1200.f; + VectorMath::vsmul(offset_detunes, 1, &k, offset_detunes, 1, nonSilentFramesToProcess); + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + phaseIncrements[i] *= powf(2, detuneValues[i]); // FIXME: converting to expf() will be faster. + } + } + else + { + // Handle ordinary parameter smoothing/de-zippering if there are no scheduled changes. + m_detune->smooth(r); + float detune = m_detune->smoothedValue(); + if (fabsf(detune) > 0.01f) + { + float detuneScale = powf(2, detune / 1200); + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + phaseIncrements[i] *= detuneScale; + } + } + + // convert frequencies to phase increments + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + phaseIncrements[i] = static_cast(2.f * static_cast(LAB_PI)* phaseIncrements[i] / sample_rate); + } + + // fetch the amplitudes + float* amplitudes = m_amplitudeValues.data(); + if (m_amplitude->hasSampleAccurateValues()) + { + m_amplitude->calculateSampleAccurateValues(r, amplitudes + quantumFrameOffset, nonSilentFramesToProcess); + } + else + { + m_amplitude->smooth(r); + float amp = m_amplitude->smoothedValue(); + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + amplitudes[i] = amp; + } + + // fetch the bias values + float* bias = m_biasValues.data(); + if (m_bias->hasSampleAccurateValues()) + { + m_bias->calculateSampleAccurateValues(r, bias + quantumFrameOffset, nonSilentFramesToProcess); + } + else + { + m_bias->smooth(r); + float b = m_bias->smoothedValue(); + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + bias[i] = b; + } + } + + // calculate and write the wave + float* destP = outputBus->channel(0)->mutableData(); + + OscillatorType type = static_cast(m_type->valueUint32()); + switch (type) + { + case OscillatorType::SINE: + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + destP[i] = static_cast(bias[i] + amplitudes[i] * static_cast(sin(phase))); + phase += phaseIncrements[i]; + if (phase > 2. * static_cast(LAB_PI)) phase -= 2. * static_cast(LAB_PI); + } + break; + + case OscillatorType::FAST_SINE: + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + destP[i] = burk_fast_sine(phase); + phase += phaseIncrements[i]; + if (phase > static_cast(LAB_PI)) phase -= static_cast(LAB_TAU); + } + break; + + case OscillatorType::SQUARE: + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + float amp = amplitudes[i]; + destP[i] = static_cast(bias[i] + (phase < static_cast(LAB_PI) ? amp : -amp)); + phase += phaseIncrements[i]; + if (phase > 2. * static_cast(LAB_PI)) + phase -= 2. * static_cast(LAB_PI); + } + break; + + case OscillatorType::SAWTOOTH: + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + float amp = amplitudes[i]; + destP[i] = static_cast(bias[i] + amp - (amp / static_cast(LAB_PI)* phase)); + phase += phaseIncrements[i]; + if (phase > 2. * static_cast(LAB_PI)) + phase -= 2. * static_cast(LAB_PI); + } + break; + + case OscillatorType::TRIANGLE: + for (int i = quantumFrameOffset; i < nonSilentFramesToProcess; ++i) + { + float amp = amplitudes[i]; + if (phase < static_cast(LAB_PI)) + destP[i] = static_cast(bias[i] - amp + (2.f * amp / static_cast(LAB_PI))* phase); + else + destP[i] = static_cast(bias[i] + 3.f * amp - (2.f * amp / static_cast(LAB_PI))* phase); + + phase += phaseIncrements[i]; + if (phase > 2. * static_cast(LAB_PI)) + phase -= 2. * static_cast(LAB_PI); + } + break; + + default: break; // other types do nothing + } + + outputBus->clearSilentFlag(); +} + +void OscillatorNode::process(ContextRenderLock & r, int bufferSize) +{ + OscillatorType type = static_cast(m_type->valueUint32()); + if (type != OscillatorType::CUSTOM) + { + process_oscillator(r, bufferSize, _scheduler._renderOffset, _scheduler._renderLength); + return; + } + + return; +} + +bool OscillatorNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} diff --git a/sources/LabSound/src/core/PannerNode.cpp b/sources/LabSound/src/core/PannerNode.cpp new file mode 100644 index 00000000..71898911 --- /dev/null +++ b/sources/LabSound/src/core/PannerNode.cpp @@ -0,0 +1,573 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/PannerNode.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/SampledAudioNode.h" +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" +#include "internal/Cone.h" +#include "internal/Distance.h" +#include "internal/EqualPowerPanner.h" +#include "internal/HRTFDatabaseLoader.h" +#include "internal/HRTFPanner.h" +#include "internal/Panner.h" + +using namespace std; + +namespace lab +{ + +template +static void fixNANs(T & x) +{ + if (std::isnan(T(x)) || std::isinf(x)) + x = T(0); +} + +static char const * const s_distance_models[lab::DistanceEffect::ModelType::_Count + 1] = { + "Linear", "Inverse", "Exponential", nullptr}; +static char const * const s_panning_models[lab::PanningMode::_PanningModeCount + 1] = { + "Linear", "Inverse", "Exponential", nullptr}; + +PannerNode::PannerNode(AudioContext & ac, const std::string & searchPath) + : AudioNode(ac) + , m_orientationX(std::make_shared("orientationX", "OR X", 0.f, -1.f, 1.f)) + , m_orientationY(std::make_shared("orientationY", "OR Y", 0.f, -1.f, 1.f)) + , m_orientationZ(std::make_shared("orientationZ", "OR Z", 0.f, -1.f, 1.f)) + , m_velocityX(std::make_shared("velocityX", "VELX", 0.f, -1000.f, 1000.f)) + , m_velocityY(std::make_shared("velocityY", "VELY", 0.f, -1000.f, 1000.f)) + , m_velocityZ(std::make_shared("velocityZ", "VELZ", 0.f, -1000.f, 1000.f)) + , m_positionX(std::make_shared("positionX", "POSX", 0.f, -1.e6f, 1.e6f)) + , m_positionY(std::make_shared("positionY", "POSY", 0.f, -1.e6f, 1.e6f)) + , m_positionZ(std::make_shared("positionZ", "POSZ", 0.f, -1.e6f, 1.e6f)) + , m_distanceModel(std::make_shared("distanceModel", "DSTM", s_distance_models)) + , m_refDistance(std::make_shared("refDistance", "REFD", AudioSetting::Type::Float)) + , m_maxDistance(std::make_shared("maxDistance", "MAXD", AudioSetting::Type::Float)) + , m_rolloffFactor(std::make_shared("rolloffFactor", "ROLL", AudioSetting::Type::Float)) + , m_coneInnerAngle(std::make_shared("coneInnerAngle", "CONI", AudioSetting::Type::Float)) + , m_coneOuterAngle(std::make_shared("coneOuterAngle", "CONO", AudioSetting::Type::Float)) + , m_panningModel(std::make_shared("panningMode", "PANM", s_panning_models)) + , m_sampleRate(ac.sampleRate()) +{ + if (searchPath.length()) + { + auto stripSlash = [&](const std::string & path) -> std::string { + if (path[path.size() - 1] == '/' || path[path.size() - 1] == '\\') + return path.substr(0, path.size() - 1); + return path; + }; + LOG_INFO("Initializing HRTF Database"); + m_hrtfDatabaseLoader = HRTFDatabaseLoader::MakeHRTFLoaderSingleton(m_sampleRate, stripSlash(searchPath)); + } + + m_distanceEffect.reset(new DistanceEffect()); + m_coneEffect.reset(new ConeEffect()); + + addInput(unique_ptr(new AudioNodeInput(this))); + addOutput(unique_ptr(new AudioNodeOutput(this, 2))); + + m_distanceGain = std::make_shared("distanceGain", "DGAN", 1.0, 0.0, 1.0); + m_coneGain = std::make_shared("coneGain", "CNGN", 1.0, 0.0, 1.0); + + m_params.push_back(m_distanceGain); + m_params.push_back(m_coneGain); + + m_distanceModel->setValueChanged( + [this]() { + DistanceEffect::ModelType model(static_cast(m_distanceModel->valueUint32())); + switch (model) + { + case DistanceEffect::ModelLinear: + case DistanceEffect::ModelInverse: + case DistanceEffect::ModelExponential: + m_distanceEffect->setModel(model, true); + break; + + default: + throw std::invalid_argument("invalid distance model"); + break; + } + }); + m_settings.push_back(m_distanceModel); + + m_refDistance->setValueChanged( + [this]() { + m_distanceEffect->setRefDistance(m_refDistance->valueFloat()); + }); + m_settings.push_back(m_refDistance); + + m_maxDistance->setValueChanged( + [this]() { + m_distanceEffect->setMaxDistance(m_maxDistance->valueFloat()); + }); + m_settings.push_back(m_maxDistance); + + m_rolloffFactor->setValueChanged( + [this]() { + m_distanceEffect->setRolloffFactor(m_maxDistance->valueFloat()); + }); + m_settings.push_back(m_rolloffFactor); + + m_coneInnerAngle->setValueChanged( + [this]() { + m_coneEffect->setInnerAngle(m_coneInnerAngle->valueFloat()); + }); + m_settings.push_back(m_coneInnerAngle); + + m_coneOuterAngle->setValueChanged( + [this]() { + m_coneEffect->setOuterAngle(m_coneOuterAngle->valueFloat()); + }); + m_settings.push_back(m_coneOuterAngle); + + m_panningModel->setUint32(static_cast(EQUALPOWER)); + m_panningModel->setValueChanged( + [this]() { + setPanningModel(static_cast(m_panningModel->valueUint32())); + }); + + // Node-specific default mixing rules. + m_channelCount = 2; + m_channelCountMode = ChannelCountMode::ClampedMax; + m_channelInterpretation = ChannelInterpretation::Speakers; + + initialize(); +} + +PannerNode::~PannerNode() +{ + uninitialize(); +} + +void PannerNode::initialize() +{ + if (isInitialized()) return; + + switch (static_cast(m_panningModel->valueUint32())) + { + case PanningMode::EQUALPOWER: + m_panner = std::unique_ptr(new EqualPowerPanner(m_sampleRate)); + break; + case PanningMode::HRTF: + m_panner = std::unique_ptr(new HRTFPanner(m_sampleRate)); + break; + default: + throw std::runtime_error("invalid panning model"); + } + + AudioNode::initialize(); +} + +void PannerNode::uninitialize() +{ + if (!isInitialized()) + return; + + m_panner.reset(); + + AudioNode::uninitialize(); +} + +void PannerNode::setOrientation(const FloatPoint3D & fwd) +{ + m_orientationX->setValue(fwd.x); + m_orientationY->setValue(fwd.y); + m_orientationZ->setValue(fwd.z); +} + +void PannerNode::setPosition(const FloatPoint3D & position) +{ + m_positionX->setValue(position.x); + m_positionY->setValue(position.y); + m_positionZ->setValue(position.z); +} + +void PannerNode::setVelocity(const FloatPoint3D & velocity) +{ + m_velocityX->setValue(velocity.x); + m_velocityY->setValue(velocity.y); + m_velocityZ->setValue(velocity.z); +} + +void PannerNode::process(ContextRenderLock & r, int bufferSize) +{ + AudioBus * destination = output(0)->bus(r); + + if (!isInitialized() || !input(0)->isConnected() || !m_panner.get()) + { + destination->zero(); + return; + } + + AudioBus * source = input(0)->bus(r); + + if (!source) + { + destination->zero(); + return; + } + + // HRTFDatabase should be loaded before proceeding for offline audio context + if (static_cast(m_panningModel->valueUint32()) == PanningMode::HRTF && !m_hrtfDatabaseLoader->isLoaded()) + { + if (r.context()->isOfflineContext()) + { + m_hrtfDatabaseLoader->waitForLoaderThreadCompletion(); + } + else + { + destination->zero(); + return; + } + } + + // Apply the panning effect. + double azimuth; + double elevation; + getAzimuthElevation(r, &azimuth, &elevation); + + m_panner->pan(r, azimuth, elevation, source + _scheduler._renderOffset, destination + _scheduler._renderOffset, _scheduler._renderLength); + + // Get the distance and cone gain. + float totalGain = distanceConeGain(r); + + // Snap to desired gain at the beginning. + if (m_lastGain == -1.f) + m_lastGain = totalGain; + + // Apply gain in-place with de-zippering. + destination->copyWithGainFrom(*destination, &m_lastGain, totalGain); +} + +void PannerNode::reset(ContextRenderLock &) +{ + m_lastGain = -1.0; // force to snap to initial gain + if (m_panner.get()) + m_panner->reset(); +} + +PanningMode PannerNode::panningModel() const +{ + return static_cast(m_panningModel->valueUint32()); +} + +void PannerNode::setPanningModel(PanningMode model) +{ + if (model != PanningMode::EQUALPOWER && model != PanningMode::HRTF) + throw std::invalid_argument("Unknown panning model specified"); + + ASSERT(m_sampleRate); + + PanningMode curr = static_cast(m_panningModel->valueUint32()); + if (!m_panner.get() || model != curr) + { + m_panningModel->setUint32(static_cast(model)); + + switch (model) + { + case PanningMode::EQUALPOWER: + m_panner = std::unique_ptr(new EqualPowerPanner(m_sampleRate)); + break; + case PanningMode::HRTF: + m_panner = std::unique_ptr(new HRTFPanner(m_sampleRate)); + break; + default: + throw std::invalid_argument("invalid panning model"); + } + } +} + +void PannerNode::setDistanceModel(DistanceModel model) +{ + m_distanceModel->setUint32(static_cast(model)); +} +PannerNode::DistanceModel PannerNode::distanceModel() +{ + return static_cast(m_distanceModel->valueUint32()); +} + +void PannerNode::getAzimuthElevation(ContextRenderLock & r, double * outAzimuth, double * outElevation) +{ + // FIXME: we should cache azimuth and elevation (if possible), so we only re-calculate if a change has been made. + + double azimuth = 0.0; + + auto listener = r.context()->listener(); + + // Calculate the source-listener vector + /// @fixme these values should be per sample, not per quantum + FloatPoint3D listenerPosition = { + listener->positionX()->value(), + listener->positionY()->value(), + listener->positionZ()->value()}; + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D sourceListener = { + positionX()->value(), + positionY()->value(), + positionZ()->value()}; + + sourceListener = normalize(sourceListener - listenerPosition); + + if (is_zero(sourceListener)) + { + // degenerate case if source and listener are at the same point + *outAzimuth = 0.0; + *outElevation = 0.0; + return; + } + + // Align axes + /// @fixme these values should be per sample, not per quantum + FloatPoint3D listenerFront = normalize(FloatPoint3D{ + listener->forwardX()->value(), + listener->forwardY()->value(), + listener->forwardZ()->value()}); + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D listenerUp = { + listener->upX()->value(), + listener->upY()->value(), + listener->upZ()->value()}; + + FloatPoint3D listenerRight = normalize(cross(listenerFront, listenerUp)); + FloatPoint3D up = cross(listenerRight, listenerFront); + + float upProjection = dot(sourceListener, up); + + FloatPoint3D projectedSource = normalize(sourceListener - upProjection * up); + + azimuth = 180.0 * acos(dot(projectedSource, listenerRight)) / static_cast(LAB_PI); + fixNANs(azimuth); // avoid illegal values + + // Source in front or behind the listener + double frontBack = dot(projectedSource, listenerFront); + if (frontBack < 0.0) + azimuth = 360.0 - azimuth; + + // Make azimuth relative to "front" and not "right" listener vector + if ((azimuth >= 0.0) && (azimuth <= 270.0)) + azimuth = 90.0 - azimuth; + else + azimuth = 450.0 - azimuth; + + // Elevation + double elevation = 90.0 - 180.0 * acos(dot(sourceListener, up)) / static_cast(LAB_PI); + fixNANs(elevation); // avoid illegal values + + if (elevation > 90.0) + elevation = 180.0 - elevation; + else if (elevation < -90.0) + elevation = -180.0 - elevation; + + if (outAzimuth) + *outAzimuth = azimuth; + if (outElevation) + *outElevation = elevation; +} + +float PannerNode::dopplerRate(ContextRenderLock & r) +{ + double dopplerShift = 1.0; + + auto listener = r.context()->listener(); + + // FIXME: optimize for case when neither source nor listener has changed... + /// @fixme these values should be per sample, not per quantum + double dopplerFactor = listener->dopplerFactor()->value(); + + if (dopplerFactor > 0.0) + { + /// @fixme should be a setting + double speedOfSound = listener->speedOfSound()->value(); + + /// @fixme these values should be per sample, not per quantum + const FloatPoint3D sourceVelocity = { + velocityX()->value(), + velocityY()->value(), + velocityZ()->value()}; + /// @fixme these values should be per sample, not per quantum + const FloatPoint3D listenerVelocity = { + listener->velocityX()->value(), + listener->velocityY()->value(), + listener->velocityZ()->value()}; + + // Don't bother if both source and listener have no velocity + bool sourceHasVelocity = !is_zero(sourceVelocity); + bool listenerHasVelocity = !is_zero(listenerVelocity); + + if (sourceHasVelocity || listenerHasVelocity) + { + // Calculate the source to listener vector + /// @fixme these values should be per sample, not per quantum + FloatPoint3D listenerPosition = { + listener->positionX()->value(), + listener->positionY()->value(), + listener->positionZ()->value()}; + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D sourceToListener = { + positionX()->value(), + positionY()->value(), + positionZ()->value()}; + + sourceToListener = sourceToListener - listenerPosition; + + double sourceListenerMagnitude = magnitude(sourceToListener); + + double listenerProjection = dot(sourceToListener, listenerVelocity) / sourceListenerMagnitude; + double sourceProjection = dot(sourceToListener, sourceVelocity) / sourceListenerMagnitude; + + listenerProjection = -listenerProjection; + sourceProjection = -sourceProjection; + + double scaledSpeedOfSound = speedOfSound / dopplerFactor; + listenerProjection = min(listenerProjection, scaledSpeedOfSound); + sourceProjection = min(sourceProjection, scaledSpeedOfSound); + + dopplerShift = ((speedOfSound - dopplerFactor * listenerProjection) / (speedOfSound - dopplerFactor * sourceProjection)); + fixNANs(dopplerShift); // avoid illegal values + + // Limit the pitch shifting to 4 octaves up and 3 octaves down. + if (dopplerShift > 16.0) + dopplerShift = 16.0; + else if (dopplerShift < 0.125) + dopplerShift = 0.125; + } + } + + return static_cast(dopplerShift); +} + +float PannerNode::distanceConeGain(ContextRenderLock & r) +{ + auto listener = r.context()->listener(); + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D listenerPosition = { + listener->positionX()->value(), + listener->positionY()->value(), + listener->positionZ()->value()}; + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D position = { + positionX()->value(), + positionY()->value(), + positionZ()->value()}; + + double listenerDistance = magnitude(position - listenerPosition); // "distanceTo" + + double distanceGain = m_distanceEffect->gain(listenerDistance); + + m_distanceGain->setValue(static_cast(distanceGain)); + + // FIXME: could optimize by caching coneGain + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D orientation = { + orientationX()->value(), + orientationY()->value(), + orientationZ()->value()}; + + double coneGain = m_coneEffect->gain(position, orientation, listenerPosition); + + m_coneGain->setValue(static_cast(coneGain)); + + return float(distanceGain * coneGain); +} + +void PannerNode::notifyAudioSourcesConnectedToNode(ContextRenderLock & r, AudioNode * node) +{ + ASSERT(node); + if (!node) + return; + + // Go through all inputs to this node. + for (int i = 0; i < node->numberOfInputs(); ++i) + { + auto input = node->input(i); + + // For each input, go through all of its connections, looking for SampledAudioNodes. + for (int j = 0; j < input->numberOfRenderingConnections(r); ++j) + { + auto connectedOutput = input->renderingOutput(r, j); + AudioNode * connectedNode = connectedOutput->sourceNode(); + notifyAudioSourcesConnectedToNode(r, connectedNode); // recurse + } + } +} + +float PannerNode::refDistance() +{ + return static_cast(m_distanceEffect->refDistance()); +} +void PannerNode::setRefDistance(float refDistance) +{ + m_refDistance->setFloat(refDistance); +} + +float PannerNode::maxDistance() +{ + return static_cast(m_distanceEffect->maxDistance()); +} +void PannerNode::setMaxDistance(float maxDistance) +{ + m_maxDistance->setFloat(maxDistance); +} + +float PannerNode::rolloffFactor() +{ + return static_cast(m_distanceEffect->rolloffFactor()); +} +void PannerNode::setRolloffFactor(float rolloffFactor) +{ + m_rolloffFactor->setFloat(rolloffFactor); +} + +float PannerNode::coneInnerAngle() const +{ + return static_cast(m_coneEffect->innerAngle()); +} +void PannerNode::setConeInnerAngle(float angle) +{ + m_coneInnerAngle->setFloat(angle); +} + +float PannerNode::coneOuterAngle() const +{ + return static_cast(m_coneEffect->outerAngle()); +} +void PannerNode::setConeOuterAngle(float angle) +{ + m_coneOuterAngle->setFloat(angle); +} + +float PannerNode::coneOuterGain() const +{ + return static_cast(m_coneEffect->outerGain()); +} +void PannerNode::setConeOuterGain(float angle) +{ + m_coneEffect->setOuterGain(angle); +} + +double PannerNode::tailTime(ContextRenderLock & r) const +{ + return m_panner ? m_panner->tailTime(r) : 0; +} +double PannerNode::latencyTime(ContextRenderLock & r) const +{ + return m_panner ? m_panner->latencyTime(r) : 0; +} + +} // namespace lab diff --git a/sources/LabSound/src/core/RealtimeAnalyser.cpp b/sources/LabSound/src/core/RealtimeAnalyser.cpp new file mode 100644 index 00000000..fd949c2c --- /dev/null +++ b/sources/LabSound/src/core/RealtimeAnalyser.cpp @@ -0,0 +1,338 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/WindowFunctions.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/RealtimeAnalyser.h" +#include "LabSound/extended/Util.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/FFTFrame.h" +#include "internal/VectorMath.h" + +#include +#include +#include + +using namespace std; + +namespace lab +{ + +const double RealtimeAnalyser::DefaultSmoothingTimeConstant = 0.8; +const double RealtimeAnalyser::DefaultMinDecibels = -100; +const double RealtimeAnalyser::DefaultMaxDecibels = -30; + +// All FFT implementations are expected to handle power-of-two sizes MinFFTSize <= size <= MaxFFTSize. +const int RealtimeAnalyser::DefaultFFTSize = 2048; +const int RealtimeAnalyser::MinFFTSize = 32; +const int RealtimeAnalyser::MaxFFTSize = 2048; +const int RealtimeAnalyser::InputBufferSize = RealtimeAnalyser::MaxFFTSize * 2; + +RealtimeAnalyser::RealtimeAnalyser(int fftSize) + : m_inputBuffer(InputBufferSize) + , m_writeIndex(0) + , m_smoothingTimeConstant(DefaultSmoothingTimeConstant) + , m_minDecibels(DefaultMinDecibels) + , m_maxDecibels(DefaultMaxDecibels) +{ + uint32_t size = max(min(RoundNextPow2(fftSize), MaxFFTSize), MinFFTSize); + m_fftSize = size; + + m_analysisFrame = std::unique_ptr(new FFTFrame(size)); + + // m_magnitudeBuffer has size = fftSize / 2 because it contains floats reduced from complex values in m_analysisFrame. + m_magnitudeBuffer.allocate(size / 2); +} + +RealtimeAnalyser::~RealtimeAnalyser() {} + +void RealtimeAnalyser::reset() +{ + m_writeIndex = 0; + m_inputBuffer.zero(); + m_magnitudeBuffer.zero(); +} + +void RealtimeAnalyser::setFftSize(int fftSize) +{ + m_writeIndex = 0; + + int size = max(min(RoundNextPow2(fftSize), MaxFFTSize), MinFFTSize); + m_fftSize = size; + + m_analysisFrame = std::unique_ptr(new FFTFrame(size)); + + m_inputBuffer.zero(); + m_magnitudeBuffer.allocate(size / 2); +} + +void RealtimeAnalyser::writeInput(ContextRenderLock & r, AudioBus * bus, int framesToProcess) +{ + bool isBusGood = bus && bus->numberOfChannels() > 0 && bus->channel(0)->length() >= framesToProcess && r.context(); + if (!isBusGood) + return; + + // FIXME : allow to work with non-FFTSize divisible chunking + bool isDestinationGood = m_writeIndex < m_inputBuffer.size() && m_writeIndex + framesToProcess <= m_inputBuffer.size(); + ASSERT(isDestinationGood); + if (!isDestinationGood) + return; + + // copy data for analysis + const float * source = bus->channel(0)->data(); + float * dest = m_inputBuffer.data() + m_writeIndex; + + // The source has already been sanity checked with isBusGood above. + memcpy(dest, source, sizeof(float) * framesToProcess); + + // Sum all channels in one if numberOfChannels > 1. + const size_t numberOfChannels = bus->numberOfChannels(); + if (numberOfChannels > 1) + { + for (int i = 1; i < numberOfChannels; i++) + { + source = bus->channel(i)->data(); + VectorMath::vadd(dest, 1, source, 1, dest, 1, framesToProcess); + } + const float scale = 1.f / numberOfChannels; + VectorMath::vsmul(dest, 1, &scale, dest, 1, framesToProcess); + } + + m_writeIndex += framesToProcess; + if (m_writeIndex >= InputBufferSize) + m_writeIndex = 0; +} + +void RealtimeAnalyser::doFFTAnalysis() +{ + // Unroll the input buffer into a temporary buffer, where we'll apply an analysis window followed by an FFT. + uint32_t fftSize = this->fftSize(); + + AudioFloatArray temporaryBuffer(fftSize); + float * inputBuffer = m_inputBuffer.data(); + float * tempP = temporaryBuffer.data(); + + // Take the previous fftSize values from the input buffer and copy into the temporary buffer. + size_t writeIndex = m_writeIndex; + if (writeIndex < fftSize) + { + memcpy(tempP, inputBuffer + writeIndex - fftSize + InputBufferSize, sizeof(*tempP) * (fftSize - writeIndex)); + memcpy(tempP + fftSize - writeIndex, inputBuffer, sizeof(*tempP) * writeIndex); + } + else + { + memcpy(tempP, inputBuffer + writeIndex - fftSize, sizeof(*tempP) * fftSize); + } + + // Window the input samples. + ApplyWindowFunctionInplace(WindowFunction::blackman, tempP, fftSize); + + // Do the analysis. + m_analysisFrame->computeForwardFFT(tempP); + + float * realP = m_analysisFrame->realData(); + float * imagP = m_analysisFrame->imagData(); + + // Erase the packed nyquist component. + imagP[0] = 0; + + // Normalize so than an input sine wave at 0dBfs registers as 0dBfs (undo FFT scaling factor). + const double magnitudeScale = 1.0 / DefaultFFTSize; + + // A value of 0 does no averaging with the previous result. Larger values produce slower, but smoother changes. + double k = m_smoothingTimeConstant; + k = max(0.0, k); + k = min(1.0, k); + + // Convert the analysis data from complex to magnitude and average with the previous result. + float * destination = magnitudeBuffer().data(); + size_t n = magnitudeBuffer().size(); + for (size_t i = 0; i < n; ++i) + { + std::complex c(realP[i], imagP[i]); + double scalarMagnitude = abs(c) * magnitudeScale; + destination[i] = float(k * destination[i] + (1 - k) * scalarMagnitude); + } +} + +void RealtimeAnalyser::getFloatFrequencyData(std::vector & destinationArray) +{ + if (!destinationArray.size()) + return; + + doFFTAnalysis(); + + // Convert from linear magnitude to floating-point decibels. + const double minDecibels = m_minDecibels; + size_t sourceLength = magnitudeBuffer().size(); + size_t len = min(sourceLength, destinationArray.size()); + if (len > 0) + { + const float * source = magnitudeBuffer().data(); + for (size_t i = 0; i < len; ++i) + { + float linearValue = source[i]; + double dbMag = !linearValue ? minDecibels : AudioUtilities::linearToDecibels(linearValue); + destinationArray[i] = float(dbMag); + } + } +} + +void RealtimeAnalyser::getByteFrequencyData(std::vector & destinationArray, bool resample) +{ + if (!destinationArray.size() || !magnitudeBuffer().size()) + return; + + doFFTAnalysis(); + + size_t len = destinationArray.size(); + uint8_t * dest = &destinationArray[0]; + std::vector result; + if (destinationArray.size() == frequencyBinCount()) + resample = false; + else + { + if (resample) { + len = frequencyBinCount(); + result.resize(len); + dest = &result[0]; + } + } + + // Convert from linear magnitude to unsigned-byte decibels. + size_t sourceLength = magnitudeBuffer().size(); + const double rangeScaleFactor = m_maxDecibels == m_minDecibels ? 1 : 1 / (m_maxDecibels - m_minDecibels); + const double minDecibels = m_minDecibels; + + const float * source = magnitudeBuffer().data(); + for (size_t i = 0; i < len; ++i) + { + float linearValue = source[i]; + double dbMag = !linearValue ? minDecibels : AudioUtilities::linearToDecibels(linearValue); + + // The range m_minDecibels to m_maxDecibels will be scaled to byte values from 0 to UCHAR_MAX. + double scaledValue = UCHAR_MAX * (dbMag - minDecibels) * rangeScaleFactor; + + // Clip to valid range. + if (scaledValue < 0) + scaledValue = 0; + if (scaledValue > UCHAR_MAX) + scaledValue = UCHAR_MAX; + + dest[i] = static_cast(scaledValue); + } + if (!resample) + return; + + uint8_t * normalized_data = dest; + dest = &destinationArray[0]; + + size_t src_size = frequencyBinCount(); + size_t dst_size = destinationArray.size(); + + if (dst_size > src_size) + { + // upsample via linear interpolation + size_t steps = dst_size; + float u_step = 1.f / static_cast(steps); + float u = 0; + for (size_t step = 0; step < steps; ++step, u += u_step) + { + float t = u * src_size; + size_t u0 = static_cast(t); + t = t - static_cast(u0); + dest[step] = static_cast(normalized_data[u0] * t + normalized_data[u0 + 1] * (1.f - t)); + } + } + else + { + // down sample by taking the max of accumulated bins, stepped across using Bresenham. + // @cbb a convolution like lanczos would be better if the bins are to be treated as splines + float d_src = static_cast(src_size); + float d_dst = static_cast(dst_size); + float d_err = d_dst / d_src; + memset(&dest[0], 0, dst_size); + size_t u = 0; + float error = 0; + for (size_t step = 0; step < src_size - 1 && u < dst_size; ++step) + { + dest[u] = std::max(dest[u], normalized_data[step]); + error += d_err; + if (error > 0.5f) + { + ++u; + error -= 1.f; + } + ASSERT(u < src_size); + } + } +} + +// LabSound begin +void RealtimeAnalyser::getFloatTimeDomainData(std::vector & destinationArray) +{ + if (!destinationArray.size()) + return; + + size_t fftSize = this->fftSize(); + size_t len = min(fftSize, destinationArray.size()); + if (len > 0) + { + bool isInputBufferGood = m_inputBuffer.size() == InputBufferSize && m_inputBuffer.size() > fftSize; + ASSERT(isInputBufferGood); + if (!isInputBufferGood) + return; + + float * inputBuffer = m_inputBuffer.data(); + size_t writeIndex = m_writeIndex; + + for (size_t i = 0; i < len; ++i) + // Buffer access is protected due to modulo operation. + destinationArray[i] = inputBuffer[(i + writeIndex - fftSize + InputBufferSize) % InputBufferSize]; + } +} +// LabSound end + +void RealtimeAnalyser::getByteTimeDomainData(std::vector & destinationArray) +{ + if (!destinationArray.size()) + return; + + size_t fftSize = this->fftSize(); + size_t len = min(fftSize, destinationArray.size()); + if (len > 0) + { + bool isInputBufferGood = m_inputBuffer.size() == InputBufferSize && m_inputBuffer.size() > fftSize; + ASSERT(isInputBufferGood); + if (!isInputBufferGood) + return; + + float * inputBuffer = m_inputBuffer.data(); + size_t writeIndex = m_writeIndex; + + for (size_t i = 0; i < len; ++i) + { + // Buffer access is protected due to modulo operation. + float value = inputBuffer[(i + writeIndex - fftSize + InputBufferSize) % InputBufferSize]; + + // Scale from nominal -1 -> +1 to unsigned byte. + double scaledValue = AudioNode::ProcessingSizeInFrames * (value + 1); + + // Clip to valid range. + if (scaledValue < 0) + scaledValue = 0; + if (scaledValue > UCHAR_MAX) + scaledValue = UCHAR_MAX; + + destinationArray[i] = static_cast(scaledValue); + } + } +} + +} // namespace lab diff --git a/sources/LabSound/src/core/SampledAudioNode.cpp b/sources/LabSound/src/core/SampledAudioNode.cpp new file mode 100644 index 00000000..5e57f598 --- /dev/null +++ b/sources/LabSound/src/core/SampledAudioNode.cpp @@ -0,0 +1,563 @@ + +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +/// @TODO allow for reversed playback + +#include "LabSound/core/SampledAudioNode.h" + +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/VectorMath.h" +#include "internal/Assertions.h" + +#include "concurrentqueue/concurrentqueue.h" +#include "libsamplerate/include/samplerate.h" + +using namespace lab; + +namespace lab { + + /* + * outputs silence when no source bus is playing + * overall playing state govered by audioscheduledsourcenode + * onended is dispatched both when the node is stopped, and when the end of a buffer is reached + * start/stop(when) + */ + + struct SRC_Resampler + { + SRC_STATE* sampler = nullptr; + SRC_DATA data; + + SRC_Resampler() = delete; + SRC_Resampler(SRC_STATE* s) : sampler(s) + { + memset(&data, 0, sizeof(data)); + } + + ~SRC_Resampler() + { + if (sampler) + src_delete(sampler); + } + }; + + + struct SampledAudioNode::Scheduled + { + double when; // in context temporal frame + int32_t grain_start; // in source bus temporal frame + int32_t grain_end; + int32_t cursor; + int loopCount; // -1 means forever, 0 means play once, 1 means repeat once -2 is a sentinel value meaning clear the schedule + std::shared_ptr sourceBus; + std::vector> resampler; // there is one resampler per source channel + }; + + struct SampledAudioNode::Internals + { + explicit Internals(AudioContext& ac_) + : greatest_cursor(-1) + , ac(ac_.audioContextInterface()) + { + } + ~Internals() = default; + moodycamel::ConcurrentQueue incoming; + std::vector scheduled; + int32_t greatest_cursor = -1; + std::weak_ptr ac; + bool bus_setting_updated = false; + }; + + SampledAudioNode::SampledAudioNode(AudioContext& ac) + : AudioScheduledSourceNode(ac), _internals(new Internals(ac)) + { + m_sourceBus = std::make_shared("sourceBus", "SBUS", AudioSetting::Type::Bus); + m_settings.push_back(m_sourceBus); + m_sourceBus->setValueChanged([this]() { + this->_internals->bus_setting_updated = true; + }); + + m_playbackRate = std::make_shared("playbackRate", "RATE", 1.0, 0.0, 1024); + m_params.push_back(m_playbackRate); + + m_detune = std::make_shared("detune", "DTUNE", 0.0, 0.0, 1200.f); + m_params.push_back(m_detune); + + m_dopplerRate = std::make_shared("dopplerRate", "DPLR", 1.0, 0.0, 1200.f); + m_params.push_back(m_dopplerRate); + + // Default to a single stereo output, per ABSN. A call to setBus() will set the number of output channels to that of the bus. + addOutput(std::unique_ptr(new AudioNodeOutput(this, 2))); + + initialize(); + } + + SampledAudioNode::~SampledAudioNode() + { + clearSchedules(); + delete _internals; + + if (isInitialized()) + uninitialize(); + } + + void SampledAudioNode::clearSchedules() + { + Scheduled s; + while (_internals->incoming.try_dequeue(s)) {} + _internals->incoming.enqueue({ 0., 0,0,0, -2 }); + } + + void SampledAudioNode::setBus(ContextRenderLock& r, std::shared_ptr sourceBus) + { + // loop count of -3 means set the bus. + _internals->incoming.enqueue({ 0, 0, 0, 0, -3, sourceBus }); + initialize(); + + // set the pending pointer, so that a synchronous call to getBus will reflect + // the value last scheduled. This eliminates a confusing sitatuion where getBus + // will not be useful until the scheduling queue is serviced + m_pendingSourceBus = sourceBus; + } + + void SampledAudioNode::start(float when) + { + std::shared_ptr bus = m_pendingSourceBus; + if (!bus) + return; + + auto ac = _internals->ac.lock(); + if (!ac) + return; + + when = static_cast(when - ac->currentTime()); + + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + _internals->incoming.enqueue({when, 0, bus->length(), 0, 0}); + initialize(); + } + + void SampledAudioNode::start(float when, int loopCount) + { + std::shared_ptr bus = m_pendingSourceBus; + if (!bus) + return; + + auto ac = _internals->ac.lock(); + if (!ac) + return; + + when = static_cast(when - ac->currentTime()); + + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + _internals->incoming.enqueue({when, 0, bus->length(), 0, loopCount}); + initialize(); + } + + void SampledAudioNode::start(float when, float grainOffset, int loopCount) + { + std::shared_ptr bus = m_pendingSourceBus; + if (!bus) + return; + + auto ac = _internals->ac.lock(); + if (!ac) + return; + + when = static_cast(when - ac->currentTime()); + + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + float r = bus->sampleRate(); + int32_t grainStart = static_cast(grainOffset * r); + int32_t grainEnd = bus->length(); + if (grainStart < grainEnd) + { + _internals->incoming.enqueue({when, + grainStart, grainEnd, grainStart, + loopCount}); + } + initialize(); + } + + void SampledAudioNode::start(float when, float grainOffset, float grainDuration, int loopCount) + { + std::shared_ptr bus = m_pendingSourceBus; + if (!bus) + return; + + auto ac = _internals->ac.lock(); + if (!ac) + return; + + when = static_cast(when - ac->currentTime()); + + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + float r = bus->sampleRate(); + int32_t grainStart = static_cast(grainOffset * r); + int32_t grainEnd = grainStart + static_cast(grainDuration * r); + if (grainEnd > bus->length()) + grainEnd = bus->length() - grainStart; + if (grainStart < grainEnd) + { + _internals->incoming.enqueue({when, + grainStart, grainEnd, grainStart, + loopCount}); + } + initialize(); + } + + void SampledAudioNode::schedule(float when) + { + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + std::shared_ptr bus = m_pendingSourceBus; + if (bus) + _internals->incoming.enqueue({when, 0, bus->length(), 0, 0}); + + initialize(); + } + + void SampledAudioNode::schedule(float when, int loopCount) + { + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + std::shared_ptr bus = m_pendingSourceBus; + if (bus) + _internals->incoming.enqueue({when, 0, bus->length(), 0, loopCount}); + + initialize(); + } + + void SampledAudioNode::schedule(float when, float grainOffset, int loopCount) + { + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + std::shared_ptr bus = m_pendingSourceBus; + if (bus) { + float r = bus->sampleRate(); + int32_t grainStart = static_cast(grainOffset * r); + int32_t grainEnd = bus->length(); + if (grainStart < grainEnd) + { + _internals->incoming.enqueue({when, + grainStart, grainEnd, grainStart, + loopCount}); + } + } + + initialize(); + } + + void SampledAudioNode::schedule(float when, float grainOffset, float grainDuration, int loopCount) + { + if (!isPlayingOrScheduled()) + _scheduler.start(0.); + + std::shared_ptr bus = m_pendingSourceBus; + if (!bus) { + float r = bus->sampleRate(); + int32_t grainStart = static_cast(grainOffset * r); + int32_t grainEnd = grainStart + static_cast(grainDuration * r); + if (grainEnd > bus->length()) + grainEnd = bus->length() - grainStart; + if (grainStart < grainEnd) + { + _internals->incoming.enqueue({when, + grainStart, grainEnd, grainStart, + loopCount}); + } + } + + initialize(); + } + + bool SampledAudioNode::renderSample(ContextRenderLock& r, Scheduled& schedule, size_t destinationSampleOffset, size_t frameSize) + { + std::shared_ptr srcBus = m_sourceBus->valueBus(); + AudioBus* dstBus = output(0)->bus(r); + size_t dstChannelCount = dstBus->numberOfChannels(); + size_t srcChannelCount = srcBus->numberOfChannels(); + ASSERT(dstChannelCount == srcChannelCount); + + float* buffer = dstBus->channel(0)->mutableData(); + float rate = totalPitchRate(r); + if (fabsf(rate - 1.f) < 1e-3f) + { + // no pitch modification + int write_index = (int) destinationSampleOffset; + while (write_index < AudioNode::ProcessingSizeInFrames) + { + int count = AudioNode::ProcessingSizeInFrames - write_index; + int remainder = schedule.grain_end - schedule.cursor; + bool ending = remainder < count; + count = std::min(count, remainder); + + for (int i = 0; i < srcChannelCount; ++i) + { + float* buffer = dstBus->channel(i)->mutableData(); + VectorMath::vadd(srcBus->channel(i)->data() + schedule.cursor, 1, + buffer + write_index, 1, buffer + write_index, 1, count); + } + + schedule.cursor += count; + write_index += count; + + if (ending) + { + schedule.cursor = schedule.grain_start; // reset to start + + if (schedule.loopCount > 0) + schedule.loopCount--; + else if (schedule.loopCount < 0) + { + // infinite looping + } + else + { + schedule.loopCount = -3; // signal retirement of the schedule + break; // and stop the write loop + } + } + } + } + else + { + while (schedule.resampler.size() < srcBus->numberOfChannels()) + { + // samplers are expensive to allocate, so if there's one to recycle, use it + if (_resamplers.size()) + { + auto resampler = _resamplers.back(); + schedule.resampler.push_back(resampler); + _resamplers.pop_back(); + src_reset(resampler->sampler); + memset(&resampler->data, 0, sizeof(resampler->data)); + } + else + { + int err = 0; + schedule.resampler.push_back(std::make_shared(src_new(SRC_LINEAR, 1, &err))); + } + } + if (schedule.resampler.size() >= srcBus->numberOfChannels()) + { + // pitch modification + int write_index = (int) destinationSampleOffset; + while (write_index < AudioNode::ProcessingSizeInFrames) + { + int count = AudioNode::ProcessingSizeInFrames - write_index; + int remainder = schedule.grain_end - schedule.cursor; + bool ending = remainder < count; + + int src_increment = 0; + int dst_increment = 0; + for (int i = 0; i < srcChannelCount; ++i) + { + SRC_DATA* src_data = &schedule.resampler[i]->data; + float* buffer = dstBus->channel(i)->mutableData(); + + src_data->data_in = srcBus->channel(i)->data() + schedule.cursor; + src_data->input_frames = remainder; + std::array buff; + src_data->data_out = buff.data(); + src_data->output_frames = AudioNode::ProcessingSizeInFrames; + src_data->src_ratio = 1. / rate; + src_data->end_of_input = ending ? 1 : 0; + src_process(schedule.resampler[i]->sampler, src_data); + VectorMath::vadd(buff.data(), 1, buffer + write_index, 1, buffer + write_index, 1, count); + src_increment = src_data->input_frames_used; + dst_increment = src_data->output_frames_gen; + } + schedule.cursor += src_increment; + write_index += dst_increment; + + ending |= (src_increment == 0) || (dst_increment == 0); + + if (ending) + { + schedule.cursor = schedule.grain_start; // reset to start + + if (schedule.loopCount > 0) + schedule.loopCount--; + else if (schedule.loopCount < 0) + { + // infinite looping, nothing to do + } + else + { + schedule.loopCount = -3; // signal retirement of the schedule + break; // and stop the write loop + } + } + } + } + } + + //r.context()->appendDebugBuffer(dstBus, 0, AudioNode::ProcessingSizeInFrames); + dstBus->clearSilentFlag(); + return true; + } + + + void SampledAudioNode::process(ContextRenderLock& r, int framesToProcess) + { + if (_internals->bus_setting_updated) { + _internals->bus_setting_updated = false; + setBus(r, m_sourceBus->valueBus()); + } + _internals->greatest_cursor = -1; + + AudioBus* dstBus = output(0)->bus(r); + size_t dstChannelCount = dstBus->numberOfChannels(); + std::shared_ptr srcBus = m_sourceBus->valueBus(); + + // move requested starts to the internal schedule if there's a source bus. + // if there's no source bus, the schedule requests are discarded. + { + Scheduled s; + while (_internals->incoming.try_dequeue(s)) + { + if (s.loopCount == -3) + { + m_retainedSourceBus = s.sourceBus; + m_sourceBus->setBus(s.sourceBus.get()); + srcBus = s.sourceBus; + this->_internals->bus_setting_updated = false; // setting bus causes this -3 state to occur so clear it immediately + } + else if (s.loopCount == -2) + { + _internals->scheduled.clear(); + } + else if (srcBus) + { + _internals->scheduled.push_back(s); + } + } + } + + // zero out the buffer for summing, or for silence + for (int i = 0; i < dstChannelCount; ++i) + output(0)->bus(r)->zero(); + + // silence the outputs if there's nothing to play. + int schedule_count = static_cast(_internals->scheduled.size()); + if (!schedule_count || !srcBus) + return; + + // if there's something to play, conform the output channel count. + int srcChannelCount = srcBus->numberOfChannels(); + if (dstChannelCount != srcChannelCount) + { + output(0)->setNumberOfChannels(r, srcChannelCount); + dstChannelCount = srcChannelCount; + dstBus = output(0)->bus(r); + } + + // compute the frame timing in samples and seconds + uint64_t quantumStartFrame = r.context()->currentSampleFrame(); + uint64_t quantumEndFrame = quantumStartFrame + AudioNode::ProcessingSizeInFrames; + double quantumDuration = static_cast(AudioNode::ProcessingSizeInFrames) / r.context()->sampleRate(); + double quantumStartTime = r.context()->currentTime(); + double quantumEndTime = quantumStartTime + quantumDuration; + + // is anything playing in this quantum? + for (int i = 0; i < schedule_count; ++i) + { + Scheduled& s = _internals->scheduled.at(i); + if (s.when < quantumDuration) // has s.when counted down to within this quantum? + { + int32_t offset = (s.when < quantumStartTime) ? 0 : static_cast(s.when * r.context()->sampleRate()); + renderSample(r, s, (size_t) offset, AudioNode::ProcessingSizeInFrames); + output(0)->bus(r)->clearSilentFlag(); + if (s.cursor > _internals->greatest_cursor) + _internals->greatest_cursor = s.cursor; + } + + // keep counting the scheduled item down + s.when -= quantumDuration; + } + + // retire any schedules whose loopcount is -2, which means that renderSample signalled a finish + for (int i = 0; i < schedule_count; ++i) + { + Scheduled& s = _internals->scheduled.at(i); + if (s.loopCount < -1) + { + while (s.resampler.size()) + { + _resamplers.push_back(s.resampler.back()); // resamplers are expensive to construct, so cache them + s.resampler.pop_back(); + } + + if (schedule_count - 1 > i) + _internals->scheduled.at(i) = _internals->scheduled.at(schedule_count - 1); + _internals->scheduled.pop_back(); + --schedule_count; + + if (_scheduler._onEnded) + r.context()->enqueueEvent(_scheduler._onEnded); + } + } + } + + int32_t SampledAudioNode::getCursor() const + { + return _internals->greatest_cursor; + } + + + /// @TODO change the interface: + /// // if true is returned, rate_array[0] applies to the entire quantum + /// // if the computed total rate has any illegal values, true will be returned, and a default rate of 1.f + /// bool SampledAudioNode::totalPitchRate(ContextRenderLock& r, float*& rate); + float SampledAudioNode::totalPitchRate(ContextRenderLock& r) + { + std::shared_ptr srcBus = m_sourceBus->valueBus(); + + // if there's no bus, pitchrate is defaulted. + if (!srcBus) + return 1.f; + + double sampleRateFactor = sampleRateFactor = srcBus->sampleRate() / r.context()->sampleRate(); + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + double basePitchRate = playbackRate()->value(); + + /// @fixme these values should be per sample, not per quantum + double totalRate = m_dopplerRate->value() * sampleRateFactor * basePitchRate; + totalRate *= pow(2, detune()->value() / 1200); + + // Sanity check the total rate. It's very important that the resampler not get any bad rate values. + totalRate = std::max(0.0, totalRate); + + // Revisit these lower bounds if ever this node can compute ultra low resampling rates. + if (totalRate < 1.e-2f) + totalRate = 1; // a value of zero is considered an illegal value so the default is imposed + totalRate = std::min(100.0, totalRate); + + bool isTotalRateValid = !std::isnan(totalRate) && !std::isinf(totalRate); + if (!isTotalRateValid) + totalRate = 1.0; + + return (float) totalRate; + } + +} // namespace lab diff --git a/sources/LabSound/src/core/StereoPannerNode.cpp b/sources/LabSound/src/core/StereoPannerNode.cpp new file mode 100644 index 00000000..2db11da1 --- /dev/null +++ b/sources/LabSound/src/core/StereoPannerNode.cpp @@ -0,0 +1,324 @@ +// License: BSD 2 Clause +// Copyright (C) 2014, The Chromium Authors. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/StereoPannerNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/Mixing.h" +#include "LabSound/core/SampledAudioNode.h" +#include "LabSound/extended/Util.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/Panner.h" + +namespace lab +{ + +class Spatializer +{ + +public: + // @tofix - this only supports equal power + enum PanningModel + { + PanningModelEqualPower = 0 + }; + + Spatializer(const float sampleRate, PanningModel model) + { + // Convert smoothing time (50ms) to a per-sample time value. + m_smoothingConstant = AudioUtilities::discreteTimeConstantForSampleRate(SmoothingTimeConstant, sampleRate); + } + + virtual ~Spatializer() + { + } + + // Handle sample-accurate panning by AudioParam automation. + virtual void panWithSampleAccurateValues(const AudioBus * inputBus, AudioBus * outputBus, const float * panValues, int framesToProcess) + { + size_t numberOfInputChannels = inputBus->numberOfChannels(); + + bool isInputSafe = inputBus && (inputBus->numberOfChannels() == Channels::Mono || + inputBus->numberOfChannels() == Channels::Stereo) && framesToProcess <= inputBus->length(); + + ASSERT(isInputSafe); + + if (!isInputSafe) + return; + + bool isOutputSafe = outputBus && outputBus->numberOfChannels() == Channels::Stereo && framesToProcess <= outputBus->length(); + + ASSERT(isOutputSafe); + + if (!isOutputSafe) + return; + + const float * sourceL = inputBus->channel(0)->data(); + const float * sourceR = numberOfInputChannels > Channels::Mono ? inputBus->channel(1)->data() : sourceL; + + float * destinationL = outputBus->channelByType(Channel::Left)->mutableData(); + float * destinationR = outputBus->channelByType(Channel::Right)->mutableData(); + + if (!sourceL || !sourceR || !destinationL || !destinationR) + return; + + double gainL, gainR, panRadian; + size_t n = framesToProcess; + + // For mono source case. + if (numberOfInputChannels == Channels::Mono) + { + while (n--) + { + float inputL = *sourceL++; + + m_pan = clampTo(*panValues++, -1.0, 1.0); + + // Pan from left to right [-1; 1] will be normalized as [0; 1]. + panRadian = (m_pan * 0.5 + 0.5) * LAB_HALF_PI; + + gainL = std::cos(panRadian); + gainR = std::sin(panRadian); + + *destinationL++ = static_cast(inputL * gainL); + *destinationR++ = static_cast(inputL * gainR); + } + } + // For stereo source case. + else + { + while (n--) + { + float inputL = *sourceL++; + float inputR = *sourceR++; + + m_pan = clampTo(*panValues++, -1.0, 1.0); + + // Normalize [-1; 0] to [0; 1]. Do nothing when [0; 1]. + panRadian = (m_pan <= 0 ? m_pan + 1 : m_pan) * LAB_HALF_PI; + + gainL = std::cos(panRadian); + gainR = std::sin(panRadian); + + if (m_pan <= 0) + { + *destinationL++ = static_cast(inputL + inputR * gainL); + *destinationR++ = static_cast(inputR * gainR); + } + else + { + *destinationL++ = static_cast(inputL * gainL); + *destinationR++ = static_cast(inputR + inputL * gainR); + } + } + } + } + + // Handle de-zippered panning to a target value. + virtual void panToTargetValue(const AudioBus * inputBus, AudioBus * outputBus, float panValue, size_t framesToProcess) + { + size_t numberOfInputChannels = inputBus->numberOfChannels(); + + bool isInputSafe = inputBus && (inputBus->numberOfChannels() == Channels::Mono || inputBus->numberOfChannels() == Channels::Stereo) && framesToProcess <= inputBus->length(); + + ASSERT(isInputSafe); + + if (!isInputSafe) + return; + + bool isOutputSafe = outputBus && framesToProcess <= outputBus->length(); + + ASSERT(isOutputSafe); + + if (!isOutputSafe) + return; + + const float * sourceL = inputBus->channel(0)->data(); + const float * sourceR = numberOfInputChannels > Channels::Mono ? inputBus->channel(1)->data() : sourceL; + + float * destinationL = outputBus->channelByType(Channel::Left)->mutableData(); + float * destinationR = outputBus->channelByType(Channel::Right)->mutableData(); + + if (!sourceL || !sourceR || !destinationL || !destinationR) + return; + + float targetPan = clampTo(panValue, -1.f, 1.f); + + // Don't de-zipper on first render call. + if (m_isFirstRender) + { + m_isFirstRender = false; + m_pan = targetPan; + } + + double gainL, gainR, panRadian; + const double smoothingConstant = m_smoothingConstant; + size_t n = framesToProcess; + + // For mono source case. + if (numberOfInputChannels == Channels::Mono) + { + while (n--) + { + float inputL = *sourceL++; + + m_pan += (targetPan - m_pan) * smoothingConstant; + + // Pan from left to right [-1; 1] will be normalized as [0; 1]. + panRadian = (m_pan * 0.5 + 0.5) * LAB_HALF_PI; + + gainL = std::cos(panRadian); + gainR = std::sin(panRadian); + + *destinationL++ = static_cast(inputL * gainL); + *destinationR++ = static_cast(inputL * gainR); + } + } + // For stereo source case. + else + { + while (n--) + { + float inputL = *sourceL++; + float inputR = *sourceR++; + + m_pan += (targetPan - m_pan) * smoothingConstant; + + // Normalize [-1; 0] to [0; 1] for the left pan position (<= 0), and + // do nothing when [0; 1]. + + panRadian = (m_pan <= 0 ? m_pan + 1 : m_pan) * LAB_HALF_PI; + + gainL = std::cos(panRadian); + gainR = std::sin(panRadian); + + // The pan value should be checked every sample when de-zippering. + // See crbug.com/470559. + if (m_pan <= 0) + { + // When [-1; 0], keep left channel intact and equal-power pan the + // right channel only. + *destinationL++ = static_cast(inputL + inputR * gainL); + *destinationR++ = static_cast(inputR * gainR); + } + else + { + // When [0; 1], keep right channel intact and equal-power pan the + // left channel only. + *destinationL++ = static_cast(inputL * gainL); + *destinationR++ = static_cast(inputR + inputL * gainR); + } + } + } + } + + virtual void reset() + { + // No-op + } + + virtual double tailTime(ContextRenderLock & r) const { return 0; } + virtual double latencyTime(ContextRenderLock & r) const { return 0; } + +private: + bool m_isFirstRender = true; + double m_pan = 0.0; + + double m_smoothingConstant; + + // Use a 50ms smoothing / de-zippering time-constant. + const float SmoothingTimeConstant = 0.050f; +}; + +using namespace std; + +StereoPannerNode::StereoPannerNode(AudioContext& ac) + : AudioNode(ac) +{ + m_sampleAccuratePanValues.reset(new AudioFloatArray(AudioNode::ProcessingSizeInFrames)); + + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 2))); + + m_stereoPanner.reset(new Spatializer(ac.sampleRate(), Spatializer::PanningModelEqualPower)); + + m_pan = std::make_shared("pan", "PAN", 0.5, 0.0, 1.0); + m_params.push_back(m_pan); + + initialize(); +} + +StereoPannerNode::~StereoPannerNode() +{ + uninitialize(); +} + +void StereoPannerNode::process(ContextRenderLock & r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !input(0)->isConnected() || !m_stereoPanner.get()) + { + outputBus->zero(); + return; + } + + AudioBus * inputBus = input(0)->bus(r); + + if (!inputBus) + { + inputBus->zero(); + return; + } + + if (m_pan->hasSampleAccurateValues()) + { + // Apply sample-accurate panning specified by AudioParam automation. + ASSERT(bufferSize <= m_sampleAccuratePanValues->size()); + + if (bufferSize <= m_sampleAccuratePanValues->size()) + { + float * panValues = m_sampleAccuratePanValues->data(); + m_pan->calculateSampleAccurateValues(r, panValues, bufferSize); + m_stereoPanner->panWithSampleAccurateValues(inputBus, outputBus, panValues, bufferSize); + } + } + else + { + m_stereoPanner->panToTargetValue(inputBus, outputBus, m_pan->value(), bufferSize); + } + + outputBus->clearSilentFlag(); +} + +void StereoPannerNode::reset(ContextRenderLock &) +{ + // No-op +} + +void StereoPannerNode::initialize() +{ + if (isInitialized()) + return; + + AudioNode::initialize(); +} + +void StereoPannerNode::uninitialize() +{ + if (!isInitialized()) + return; + + AudioNode::uninitialize(); +} + +} // namespace lab diff --git a/sources/LabSound/src/core/WaveShaperNode.cpp b/sources/LabSound/src/core/WaveShaperNode.cpp new file mode 100644 index 00000000..de054fab --- /dev/null +++ b/sources/LabSound/src/core/WaveShaperNode.cpp @@ -0,0 +1,116 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/WaveShaperNode.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/extended/Registry.h" +#include "internal/Assertions.h" +#include +#include +#include +#include + +namespace lab { + +WaveShaperNode::WaveShaperNode(AudioContext& ac) +: AudioNode(ac) +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + initialize(); +} + +WaveShaperNode::~WaveShaperNode() +{ + if (m_newCurve) + { + // @TODO mutex + delete m_newCurve; + } +} + +void WaveShaperNode::setCurve(std::vector & curve) +{ + std::vector* new_curve = new std::vector(); + *new_curve = curve; + if (m_newCurve) + { + // @TODO mutex + std::vector* x = nullptr; + std::swap(x, m_newCurve); + delete x; + } + m_newCurve = new_curve; +} + +void WaveShaperNode::processBuffer(ContextRenderLock&, const float* source, float* destination, int framesToProcess) +{ + float const* curveData = m_curve.data(); + int curveLength = static_cast(m_curve.size()); + + ASSERT(curveData); + + if (!curveData || !curveLength) + { + memcpy(destination, source, sizeof(float) * framesToProcess); + return; + } + + // Apply waveshaping curve. + for (int i = 0; i < framesToProcess; ++i) + { + const float input = source[i]; + + // Calculate an index based on input -1 -> +1 with 0 being at the center of the curve data. + int index = static_cast((curveLength * (input + 1)) / 2); + + // Clip index to the input range of the curve. + // This takes care of input outside of nominal range -1 -> +1 + index = std::max(index, 0); + index = std::min(index, curveLength - 1); + destination[i] = curveData[index]; + } +} + +void WaveShaperNode::process(ContextRenderLock & r, int bufferSize) +{ + if (m_newCurve) + { + // @TODO mutex + std::vector* x = nullptr; + std::swap(x, m_newCurve); + m_curve = *x; + delete x; + } + + AudioBus* destinationBus = output(0)->bus(r); + if (!isInitialized() || !m_curve.size()) + { + destinationBus->zero(); + return; + } + + AudioBus* sourceBus = input(0)->bus(r); + if (!input(0)->isConnected()) + { + destinationBus->zero(); + return; + } + + int srcChannelCount = sourceBus->numberOfChannels(); + int dstChannelCount = destinationBus->numberOfChannels(); + if (srcChannelCount != dstChannelCount) + { + output(0)->setNumberOfChannels(r, srcChannelCount); + destinationBus = output(0)->bus(r); + } + + for (int i = 0; i < srcChannelCount; ++i) + { + processBuffer(r, sourceBus->channel(i)->data(), destinationBus->channel(i)->mutableData(), bufferSize); + } +} + +} // namespace lab diff --git a/sources/LabSound/src/core/WaveTable.cpp b/sources/LabSound/src/core/WaveTable.cpp new file mode 100644 index 00000000..85bc91d7 --- /dev/null +++ b/sources/LabSound/src/core/WaveTable.cpp @@ -0,0 +1,288 @@ +// License: BSD 3 Clause +// Copyright (C) 2012, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/WaveTable.h" +#include "LabSound/core/AudioArray.h" +#include "LabSound/core/OscillatorNode.h" + +#include "internal/Assertions.h" +#include "internal/FFTFrame.h" +#include "internal/VectorMath.h" + +#include +#include +#include +#include + +// The number of bands per octave. Each octave will have this many entries in the wave tables. +const unsigned kNumberOfOctaveBands = 3; + +// The max length of a periodic wave. This must be a power of two greater than or equal to 2048 and +// must be supported by the FFT routines. +const unsigned kMaxPeriodicWaveSize = 16384; + +const float CentsPerRange = 1200 / kNumberOfOctaveBands; + +namespace lab +{ + +using namespace VectorMath; + +WaveTable::WaveTable(const float sampleRate, OscillatorType basicWaveform) + : m_centsPerRange(CentsPerRange) + , m_sampleRate(sampleRate) +{ + float nyquist = 0.5f * m_sampleRate; + m_lowestFundamentalFrequency = nyquist / maxNumberOfPartials(); + m_rateScale = periodicWaveSize() / m_sampleRate; + + // Compute the number of ranges needed to cover the entire frequency range, assuming + // kNumberOfOctaveBands per octave. + m_numberOfRanges = static_cast(0.5f + kNumberOfOctaveBands * log2f(static_cast(periodicWaveSize()))); + + generateBasicWaveform(basicWaveform); +} + +WaveTable::WaveTable(const float sampleRate, OscillatorType basicWaveform, std::vector & real, std::vector & imag) + : m_centsPerRange(CentsPerRange) + , m_sampleRate(sampleRate) +{ + float nyquist = 0.5f * m_sampleRate; + m_lowestFundamentalFrequency = nyquist / maxNumberOfPartials(); + m_rateScale = periodicWaveSize() / m_sampleRate; + + // Compute the number of ranges needed to cover the entire frequency range, assuming + // kNumberOfOctaveBands per octave. + m_numberOfRanges = static_cast(0.5f + kNumberOfOctaveBands * log2f(static_cast(periodicWaveSize()))); + + bool isGood = real.size() == imag.size() && real.size() > 0; + + if (isGood) + { + createBandLimitedTables(&real[0], &imag[0], static_cast(real.size())); + } + else + { + throw std::runtime_error("Bad FFT data"); + } +} + +WaveTable::~WaveTable() +{ +} + +unsigned WaveTable::periodicWaveSize() const +{ + // Choose an appropriate wave size for the given sample rate. This allows us to use shorter + // FFTs when possible to limit the complexity. The breakpoints here are somewhat arbitrary, but + // we want sample rates around 44.1 kHz or so to have a size of 4096 to preserve backward + // compatibility. + if (m_sampleRate <= 24000) return 2048; + if (m_sampleRate <= 88200) return 4096; + + return kMaxPeriodicWaveSize; +} + +void WaveTable::waveDataForFundamentalFrequency(float fundamentalFrequency, float *& lowerWaveData, float *& higherWaveData, float & tableInterpolationFactor) +{ + // Negative frequencies are allowed, in which case we alias to the positive frequency. + fundamentalFrequency = std::abs(fundamentalFrequency); + + // Calculate the pitch range. + float ratio = fundamentalFrequency > 0 ? fundamentalFrequency / m_lowestFundamentalFrequency : 0.5f; + float centsAboveLowestFrequency = log2f(ratio) * 1200; + + // Add one to round-up to the next range just in time to truncate partials before aliasing occurs. + float pitchRange = 1 + centsAboveLowestFrequency / m_centsPerRange; + + pitchRange = std::max(pitchRange, 0.0f); + pitchRange = std::min(pitchRange, static_cast(numberOfRanges() - 1)); + + // The words "lower" and "higher" refer to the table data having the lower and higher numbers of partials. + // It's a little confusing since the range index gets larger the more partials we cull out. + // So the lower table data will have a larger range index. + int rangeIndex1 = static_cast(pitchRange); + int rangeIndex2 = rangeIndex1 < numberOfRanges() - 1 ? rangeIndex1 + 1 : rangeIndex1; + + lowerWaveData = m_bandLimitedTables[rangeIndex2]->data(); + higherWaveData = m_bandLimitedTables[rangeIndex1]->data(); + + // Ranges from 0 -> 1 to interpolate between lower -> higher. + tableInterpolationFactor = pitchRange - rangeIndex1; +} + +int WaveTable::maxNumberOfPartials() const +{ + return periodicWaveSize() / 2; +} + +int WaveTable::numberOfPartialsForRange(int rangeIndex) const +{ + // Number of cents below nyquist where we cull partials. + float centsToCull = rangeIndex * m_centsPerRange; + + // A value from 0 -> 1 representing what fraction of the partials to keep. + float cullingScale = powf(2, -centsToCull / 1200.f); + + // The very top range will have all the partials culled. + int numberOfPartials = static_cast(cullingScale * maxNumberOfPartials()); + + return numberOfPartials; +} + +// Convert into time-domain wave tables. +// One table is created for each range for non-aliasing playback at different playback rates. +// Thus, higher ranges have more high-frequency partials culled out. +void WaveTable::createBandLimitedTables(const float * realData, const float * imagData, int numberOfComponents) +{ + float normalizationScale = 1.f; + + int fftSize = periodicWaveSize(); + int halfSize = fftSize / 2 + 1; + int i; + + numberOfComponents = std::min(numberOfComponents, halfSize); + + m_bandLimitedTables.reserve(numberOfRanges()); + + for (int rangeIndex = 0; rangeIndex < numberOfRanges(); ++rangeIndex) + { + + // This FFTFrame is used to cull partials (represented by frequency bins). + FFTFrame frame(fftSize); + float * realP = frame.realData(); + float * imagP = frame.imagData(); + + // Copy from loaded frequency data and generate the complex conjugate because of the way the + // inverse FFT is defined versus the values in the arrays. Note also that although the IFFT + // does a scaling by 1/N, we take care of this when the normalization scaling is done. + float minusOne = -1; + memcpy(realP, realData, numberOfComponents * sizeof(*realP)); + vsmul(imagData, 1, &minusOne, imagP, 1, numberOfComponents); + + // Find the starting bin where we should start culling. We need to clear out the highest + // frequencies to band-limit the waveform. + int numberOfPartials = numberOfPartialsForRange(rangeIndex); + + // If fewer components were provided than 1/2 FFT size, then clear the remaining bins. + // We also need to cull the aliasing partials for this pitch range. + for (i = std::min(numberOfComponents, numberOfPartials + 1); i < halfSize; ++i) + { + realP[i] = 0; + imagP[i] = 0; + } + + // Clear packed-nyquist and any DC-offset. + realP[0] = 0; + imagP[0] = 0; + + // Create the band-limited table. + m_bandLimitedTables.push_back(std::unique_ptr(new lab::AudioFloatArray(periodicWaveSize()))); + + // Apply an inverse FFT to generate the time-domain table data. + float * data = m_bandLimitedTables[rangeIndex]->data(); + frame.computeInverseFFT(data); + + // For the first range (which has the highest power), calculate its peak value then compute normalization scale. + if (!rangeIndex) + { + float maxValue; + vmaxmgv(data, 1, &maxValue, fftSize); + + if (maxValue) + normalizationScale = 1.0f / maxValue; + } + + // Apply normalization scale. + vsmul(data, 1, &normalizationScale, data, 1, fftSize); + } +} + +void WaveTable::generateBasicWaveform(OscillatorType shape) +{ + unsigned fftSize = periodicWaveSize(); + unsigned halfSize = fftSize / 2; + + lab::AudioFloatArray real(halfSize); + lab::AudioFloatArray imag(halfSize); + float * realP = real.data(); + float * imagP = imag.data(); + + // Clear DC and Nyquist. + realP[0] = 0; + imagP[0] = 0; + + for (unsigned n = 1; n < halfSize; ++n) + { + float piFactor = 2 / (n * static_cast(LAB_PI)); + + // All waveforms are odd functions with a positive slope at time 0. Hence the coefficients + // for cos() are always 0. + + // Fourier coefficients according to standard definition: + // b = 1/pi*integrate(f(x)*sin(n*x), x, -pi, pi) + // = 2/pi*integrate(f(x)*sin(n*x), x, 0, pi) + // since f(x) is an odd function. + + float b; // Coefficient for sin(). + + // Calculate Fourier coefficients depending on the shape. Note that the overall scaling + // (magnitude) of the waveforms is normalized in createBandLimitedTables(). + switch (shape) + { + case OscillatorType::SINE: + // Standard sine wave function. + b = (n == 1) ? 1.f : 0; + break; + case OscillatorType::SQUARE: + // Square-shaped waveform with the first half its maximum value and the second half its + // minimum value. + // + // See http://mathworld.wolfram.com/FourierSeriesSquareWave.html + // + // b[n] = 2/n/pi*(1-(-1)^n) + // = 4/n/pi for n odd and 0 otherwise. + // = 2*(2/(n*pi)) for n odd + b = (n & 1) ? 2 * piFactor : 0; + break; + case OscillatorType::SAWTOOTH: + // Sawtooth-shaped waveform with the first half ramping from zero to maximum and the + // second half from minimum to zero. + // + // b[n] = -2*(-1)^n/pi/n + // = (2/(n*pi))*(-1)^(n+1) + b = piFactor * ((n & 1) ? 1 : -1); + break; + case OscillatorType::TRIANGLE: + // Triangle-shaped waveform going from 0 at time 0 to 1 at time pi/2 and back to 0 at + // time pi. + // + // See http://mathworld.wolfram.com/FourierSeriesTriangleWave.html + // + // b[n] = 8*sin(pi*k/2)/(pi*k)^2 + // = 8/pi^2/n^2*(-1)^((n-1)/2) for n odd and 0 otherwise + // = 2*(2/(n*pi))^2 * (-1)^((n-1)/2) + if (n & 1) + { + b = 2 * (piFactor * piFactor) * ((((n - 1) >> 1) & 1) ? -1 : 1); + } + else + { + b = 0; + } + break; + default: + ASSERT_NOT_REACHED(); + b = 0; + break; + } + + realP[n] = 0; + imagP[n] = b; + } + + createBandLimitedTables(realP, imagP, halfSize); +} + +} // namespace lab diff --git a/sources/LabSound/src/core/_SoundPipe_FFT.cpp b/sources/LabSound/src/core/_SoundPipe_FFT.cpp new file mode 100644 index 00000000..89f40a1f --- /dev/null +++ b/sources/LabSound/src/core/_SoundPipe_FFT.cpp @@ -0,0 +1,3636 @@ + +/* +------------------------------------------------------------------------------- +Soundpipe is a lightweight music DSP library written in C. It aims to provide +a set of high-quality DSP modules for composers, sound designers, and creative coders. + +------------------------------------------------------------------------------- +This file is a distillation of Soundpipe's impulse convolution filter for the +purpose of providing a clean and reliable implementation to underpin Lab::Sound's +ReverbConvolverNode. In order to avoid conflicting with symbols when Soundpipe is +being used in its entirety, the subset used by the ReverbConvolverNode has +been namespaced within lab::Sound to hide it. + +------------------------------------------------------------------------------- +The Soundpipe license is as follows: + +The MIT License (MIT) + +Copyright (c) 2015 Paul Batchelor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +------------------------------------------------------------------------------- +*/ + +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +// disable unreferenced local variable, 32 to 64 bit cast warnings, double to float warnings +#pragma warning(disable : 4101) +#pragma warning(disable : 4244) +#pragma warning(disable : 4305) +#endif + +namespace lab +{ + +typedef float SPFLOAT; +#define SP_OK 1 +#define SP_NOT_OK 0 + +typedef struct sp_auxdata +{ + size_t size; + void * ptr; +} sp_auxdata; + +typedef struct sp_data +{ + SPFLOAT * out; + int sr; + int nchan; + unsigned long len; + unsigned long pos; + uint32_t rand; +} sp_data; + +typedef struct +{ + char state; + SPFLOAT val; +} sp_param; + +int sp_auxdata_alloc(sp_auxdata * aux, size_t size); +int sp_auxdata_free(sp_auxdata * aux); + +int sp_create(sp_data ** spp); +int sp_destroy(sp_data ** spp); + +typedef struct +{ + SPFLOAT * utbl; + int16_t * BRLow; + int16_t * BRLowCpx; +} sp_fft; + +void sp_fft_init(sp_fft * fft, int M); +void sp_fftr(sp_fft * fft, SPFLOAT * buf, int FFTsize); +void sp_ifftr(sp_fft * fft, SPFLOAT * buf, int FFTsize); +void sp_fft_destroy(sp_fft * fft); + +#define SP_FT_MAXLEN 0x1000000L +#define SP_FT_PHMASK 0x0FFFFFFL + +typedef struct sp_ftbl +{ + size_t size; + uint32_t lobits; + uint32_t lomask; + SPFLOAT lodiv; + SPFLOAT sicvt; + SPFLOAT * tbl; + char del; +} sp_ftbl; + +typedef struct +{ + SPFLOAT aOut[1]; + SPFLOAT aIn; + SPFLOAT iPartLen; + SPFLOAT iSkipSamples; + SPFLOAT iTotLen; + int initDone; + int nChannels; + int cnt; + int nPartitions; + int partSize; + int rbCnt; + SPFLOAT * tmpBuf; + SPFLOAT * ringBuf; + SPFLOAT * IR_Data[1]; + SPFLOAT * outBuffers[1]; + sp_auxdata auxData; + sp_ftbl * ftbl; + sp_fft fft; +} sp_conv; + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* fft's with M bigger than this bust primary cache */ +#define MCACHE (11 - (sizeof(SPFLOAT) / 8)) + +/* some math constants to 40 decimal places */ +#define MYPI 3.141592653589793238462643383279502884197 /* pi */ +#define MYROOT2 1.414213562373095048801688724209698078569 /* sqrt(2) */ +#define MYCOSPID8 0.9238795325112867561281831893967882868224 /* cos(pi/8) */ +#define MYSINPID8 0.3826834323650897717284599840303988667613 /* sin(pi/8) */ + +// interger power of two +template +T POW2(T m) +{ + return T(1) << m; +} + +/* initialize constants in ftable */ +int sp_ftbl_init(sp_data * sp, sp_ftbl * ft, size_t size) +{ + ft->size = size; + ft->sicvt = 1.0 * SP_FT_MAXLEN / sp->sr; + ft->lobits = log2(SP_FT_MAXLEN / size); + ft->lomask = (1 << ft->lobits) - 1; + ft->lodiv = 1.0 / (1 << ft->lobits); + ft->del = 1; + return SP_OK; +} + +int sp_ftbl_bind(sp_data * sp, sp_ftbl ** ft, SPFLOAT * tbl, size_t size) +{ + *ft = (sp_ftbl *) malloc(sizeof(sp_ftbl)); + sp_ftbl * ftp = *ft; + ftp->tbl = tbl; + sp_ftbl_init(sp, ftp, size); + ftp->del = 0; + return SP_OK; +} + +int sp_ftbl_destroy(sp_ftbl ** ft) +{ + sp_ftbl * ftp = *ft; + if (ftp->del) free(ftp->tbl); + free(*ft); + return SP_OK; +} + +int sp_create(sp_data ** spp) +{ + *spp = (sp_data *) malloc(sizeof(sp_data)); + sp_data * sp = *spp; + sp->nchan = 1; + SPFLOAT * out = (SPFLOAT *) malloc(sizeof(SPFLOAT) * sp->nchan); + *out = 0; + sp->out = out; + sp->sr = 44100; + sp->len = 5 * sp->sr; + sp->pos = 0; + sp->rand = 0; + return 0; +} + +int sp_destroy(sp_data ** spp) +{ + sp_data * sp = *spp; + free(sp->out); + free(*spp); + return 0; +} + +int sp_auxdata_alloc(sp_auxdata * aux, size_t size) +{ + aux->ptr = malloc(size); + aux->size = size; + memset(aux->ptr, 0, size); + return SP_OK; +} + +int sp_auxdata_free(sp_auxdata * aux) +{ + free(aux->ptr); + return SP_OK; +} + +/* + * conv + * + * This code has been extracted from the Csound opcode "ftconv". + * It has been modified to work as a Soundpipe module. + * + * Original Author(s): Istvan Varga + * Year: 2005 + * Location: Opcodes/ftconv.c + * + */ + +static void multiply_fft_buffers(SPFLOAT * outBuf, SPFLOAT * ringBuf, + SPFLOAT * IR_Data, int partSize, int nPartitions, + int ringBuf_startPos) +{ + SPFLOAT re, im, re1, re2, im1, im2; + SPFLOAT *rbPtr, *irPtr, *outBufPtr, *outBufEndPm2, *rbEndP; + + /* note: partSize must be at least 2 samples */ + partSize <<= 1; + outBufEndPm2 = (SPFLOAT *) outBuf + (int) (partSize - 2); + rbEndP = (SPFLOAT *) ringBuf + (int) (partSize * nPartitions); + rbPtr = &(ringBuf[ringBuf_startPos]); + irPtr = IR_Data; + outBufPtr = outBuf; + memset(outBuf, 0, sizeof(SPFLOAT) * (partSize)); + do + { + /* wrap ring buffer position */ + if (rbPtr >= rbEndP) + rbPtr = ringBuf; + outBufPtr = outBuf; + *(outBufPtr++) += *(rbPtr++) * *(irPtr++); /* convolve DC */ + *(outBufPtr++) += *(rbPtr++) * *(irPtr++); /* convolve Nyquist */ + re1 = *(rbPtr++); + im1 = *(rbPtr++); + re2 = *(irPtr++); + im2 = *(irPtr++); + re = re1 * re2 - im1 * im2; + im = re1 * im2 + re2 * im1; + while (outBufPtr < outBufEndPm2) + { + /* complex multiply */ + re1 = rbPtr[0]; + im1 = rbPtr[1]; + re2 = irPtr[0]; + im2 = irPtr[1]; + outBufPtr[0] += re; + outBufPtr[1] += im; + re = re1 * re2 - im1 * im2; + im = re1 * im2 + re2 * im1; + re1 = rbPtr[2]; + im1 = rbPtr[3]; + re2 = irPtr[2]; + im2 = irPtr[3]; + outBufPtr[2] += re; + outBufPtr[3] += im; + re = re1 * re2 - im1 * im2; + im = re1 * im2 + re2 * im1; + outBufPtr += 4; + rbPtr += 4; + irPtr += 4; + } + outBufPtr[0] += re; + outBufPtr[1] += im; + } while (--nPartitions); +} + +static int buf_bytes_alloc(int nChannels, int partSize, int nPartitions) +{ + int nSmps; + + nSmps = (partSize << 1); /* tmpBuf */ + nSmps += ((partSize << 1) * nPartitions); /* ringBuf */ + nSmps += ((partSize << 1) * nChannels * nPartitions); /* IR_Data */ + nSmps += ((partSize << 1) * nChannels); /* outBuffers */ + + return ((int) sizeof(SPFLOAT) * nSmps); +} + +static void set_buf_pointers(sp_conv * p, + int nChannels, int partSize, int nPartitions) +{ + SPFLOAT * ptr; + int i; + + ptr = (SPFLOAT *) (p->auxData.ptr); + p->tmpBuf = ptr; + ptr += (partSize << 1); + p->ringBuf = ptr; + ptr += ((partSize << 1) * nPartitions); + for (i = 0; i < nChannels; i++) + { + p->IR_Data[i] = ptr; + ptr += ((partSize << 1) * nPartitions); + } + for (i = 0; i < nChannels; i++) + { + p->outBuffers[i] = ptr; + ptr += (partSize << 1); + } +} + +int sp_conv_create(sp_conv ** p) +{ + *p = (sp_conv *) malloc(sizeof(sp_conv)); + return SP_OK; +} + +int sp_conv_destroy(sp_conv ** p) +{ + sp_conv * pp = *p; + sp_auxdata_free(&pp->auxData); + sp_fft_destroy(&pp->fft); + free(*p); + return SP_OK; +} + +int sp_conv_init(sp_data * sp, sp_conv * p, sp_ftbl * ft, SPFLOAT iPartLen) +{ + int i, j, k, n, nBytes, skipSamples; + SPFLOAT FFTscale; + + p->iTotLen = ft->size; + p->iSkipSamples = 0; + p->iPartLen = iPartLen; + + p->nChannels = 1; + /* partition length */ + p->partSize = (int) lrintf(p->iPartLen); + if (p->partSize < 4 || (p->partSize & (p->partSize - 1)) != 0) + { + fprintf(stderr, "conv: invalid partition size.\n"); + return SP_NOT_OK; + } + + sp_fft_init(&p->fft, (int) log2(p->partSize << 1)); + n = (int) ft->size / p->nChannels; + skipSamples = (int) lrintf(p->iSkipSamples); + n -= skipSamples; + + if (lrintf(p->iTotLen) > 0 && n > lrintf(p->iTotLen)) + { + n = (int) lrintf(p->iTotLen); + } + + if (n <= 0) + { + fprintf(stderr, "uh oh.\n"); + return SP_NOT_OK; + } + + p->nPartitions = (n + (p->partSize - 1)) / p->partSize; + /* calculate the amount of aux space to allocate (in bytes) */ + nBytes = buf_bytes_alloc(p->nChannels, p->partSize, p->nPartitions); + sp_auxdata_alloc(&p->auxData, nBytes); + /* if skipping samples: check for possible truncation of IR */ + /* initialise buffer pointers */ + set_buf_pointers(p, p->nChannels, p->partSize, p->nPartitions); + /* clear ring buffer to zero */ + n = (p->partSize << 1) * p->nPartitions; + memset(p->ringBuf, 0, n * sizeof(SPFLOAT)); + p->cnt = 0; + p->rbCnt = 0; + FFTscale = 1.0; + for (j = 0; j < p->nChannels; j++) + { + /* table read position */ + i = (skipSamples * p->nChannels) + j; + /* IR write position */ + n = (p->partSize << 1) * (p->nPartitions - 1); + do + { + for (k = 0; k < p->partSize; k++) + { + if (i >= 0 && i < (int) ft->size) + { + p->IR_Data[j][n + k] = ft->tbl[i] * FFTscale; + } + else + { + p->IR_Data[j][n + k] = 0.0; + } + i += p->nChannels; + } + /* pad second half of IR to zero */ + for (k = p->partSize; k < (p->partSize << 1); k++) + { + p->IR_Data[j][n + k] = 0.0; + } + /* calculate FFT */ + sp_fftr(&p->fft, &(p->IR_Data[j][n]), (p->partSize << 1)); + n -= (p->partSize << 1); + } while (n >= 0); + } + /* clear output buffers to zero */ + for (j = 0; j < p->nChannels; j++) + { + for (i = 0; i < (p->partSize << 1); i++) + p->outBuffers[j][i] = 0.0; + } + p->initDone = 1; + + return SP_OK; +} + +int sp_conv_compute(sp_data * sp, sp_conv * p, SPFLOAT * in, SPFLOAT * out) +{ + SPFLOAT *x, *rBuf; + int i, n, nSamples, rBufPos; + + nSamples = p->partSize; + rBuf = &(p->ringBuf[p->rbCnt * (nSamples << 1)]); + /* store input signal in buffer */ + rBuf[p->cnt] = *in; + /* copy output signals from buffer */ + *out = p->outBuffers[0][p->cnt]; + + /* is input buffer full ? */ + if (++p->cnt < nSamples) + { + return SP_OK; + } + /* reset buffer position */ + p->cnt = 0; + /* calculate FFT of input */ + for (i = nSamples; i < (nSamples << 1); i++) + { + /* Zero padding */ + rBuf[i] = 0.0; + } + sp_fftr(&p->fft, rBuf, (nSamples << 1)); + /* update ring buffer position */ + p->rbCnt++; + + if (p->rbCnt >= p->nPartitions) + { + p->rbCnt = 0; + } + + rBufPos = p->rbCnt * (nSamples << 1); + rBuf = &(p->ringBuf[rBufPos]); + /* PB: will only loop once since nChannels == 1*/ + for (n = 0; n < p->nChannels; n++) + { + /* multiply complex arrays */ + multiply_fft_buffers(p->tmpBuf, p->ringBuf, p->IR_Data[n], + nSamples, p->nPartitions, rBufPos); + /* inverse FFT */ + sp_ifftr(&p->fft, p->tmpBuf, (nSamples << 1)); + /* copy to output buffer, overlap with "tail" of previous block */ + x = &(p->outBuffers[n][0]); + for (i = 0; i < nSamples; i++) + { + x[i] = p->tmpBuf[i] + x[i + nSamples]; + x[i + nSamples] = p->tmpBuf[i + nSamples]; + } + } + return SP_OK; +} + +/* + FFT library + based on public domain code by John Green + original version is available at + http://hyperarchive.lcs.mit.edu/ + /HyperArchive/Archive/dev/src/ffts-for-risc-2-c.hqx + ported to Csound by Istvan Varga, 2005 +*/ + +/***************************************************** +* routines to initialize tables used by fft routines * +*****************************************************/ + +static void fftCosInit(int M, SPFLOAT * Utbl) +{ + /* Compute Utbl, the cosine table for ffts */ + /* of size (pow(2,M)/4 +1) */ + /* INPUTS */ + /* M = log2 of fft size */ + /* OUTPUTS */ + /* *Utbl = cosine table */ + unsigned int fftN = POW2(M); + unsigned int i1; + + Utbl[0] = 1.0; + for (i1 = 1; i1 < fftN / 4; i1++) + Utbl[i1] = cos((2.0 * M_PI * (SPFLOAT) i1) / (SPFLOAT) fftN); + Utbl[fftN / 4] = 0.0; +} + +void fftBRInit(int M, int16_t * BRLow) +{ + /* Compute BRLow, the bit reversed table for ffts */ + /* of size pow(2,M/2 -1) */ + /* INPUTS */ + /* M = log2 of fft size */ + /* OUTPUTS */ + /* *BRLow = bit reversed counter table */ + int Mroot_1 = M / 2 - 1; + int Nroot_1 = POW2(Mroot_1); + int i1; + int bitsum; + int bitmask; + int bit; + + for (i1 = 0; i1 < Nroot_1; i1++) + { + bitsum = 0; + bitmask = 1; + for (bit = 1; bit <= Mroot_1; bitmask <<= 1, bit++) + if (i1 & bitmask) + bitsum = bitsum + (Nroot_1 >> bit); + BRLow[i1] = bitsum; + } +} + +/***************** +* parts of ffts1 * +*****************/ + +static void bitrevR2(SPFLOAT * ioptr, int M, int16_t * BRLow) +{ + /*** bit reverse and first radix 2 stage of forward or inverse fft ***/ + SPFLOAT f0r; + SPFLOAT f0i; + SPFLOAT f1r; + SPFLOAT f1i; + SPFLOAT f2r; + SPFLOAT f2i; + SPFLOAT f3r; + SPFLOAT f3i; + SPFLOAT f4r; + SPFLOAT f4i; + SPFLOAT f5r; + SPFLOAT f5i; + SPFLOAT f6r; + SPFLOAT f6i; + SPFLOAT f7r; + SPFLOAT f7i; + SPFLOAT t0r; + SPFLOAT t0i; + SPFLOAT t1r; + SPFLOAT t1i; + SPFLOAT * p0r; + SPFLOAT * p1r; + SPFLOAT * IOP; + SPFLOAT * iolimit; + int Colstart; + int iCol; + unsigned int posA; + unsigned int posAi; + unsigned int posB; + unsigned int posBi; + + const unsigned int Nrems2 = POW2((M + 3) / 2); + const unsigned int Nroot_1_ColInc = POW2(M) - Nrems2; + const unsigned int Nroot_1 = POW2(M / 2 - 1) - 1; + const unsigned int ColstartShift = (M + 1) / 2 + 1; + + posA = POW2(M); /* 1/2 of POW2(M) complexes */ + posAi = posA + 1; + posB = posA + 2; + posBi = posB + 1; + + iolimit = ioptr + Nrems2; + for (; ioptr < iolimit; ioptr += POW2(M / 2 + 1)) + { + for (Colstart = Nroot_1; Colstart >= 0; Colstart--) + { + iCol = Nroot_1; + p0r = ioptr + Nroot_1_ColInc + BRLow[Colstart] * 4; + IOP = ioptr + (Colstart << ColstartShift); + p1r = IOP + BRLow[iCol] * 4; + f0r = *(p0r); + f0i = *(p0r + 1); + f1r = *(p0r + posA); + f1i = *(p0r + posAi); + for (; iCol > Colstart;) + { + f2r = *(p0r + 2); + f2i = *(p0r + (2 + 1)); + f3r = *(p0r + posB); + f3i = *(p0r + posBi); + f4r = *(p1r); + f4i = *(p1r + 1); + f5r = *(p1r + posA); + f5i = *(p1r + posAi); + f6r = *(p1r + 2); + f6i = *(p1r + (2 + 1)); + f7r = *(p1r + posB); + f7i = *(p1r + posBi); + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + t1r = f2r + f3r; + t1i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + f0r = f4r + f5r; + f0i = f4i + f5i; + f5r = f4r - f5r; + f5i = f4i - f5i; + f2r = f6r + f7r; + f2i = f6i + f7i; + f7r = f6r - f7r; + f7i = f6i - f7i; + + *(p1r) = t0r; + *(p1r + 1) = t0i; + *(p1r + 2) = f1r; + *(p1r + (2 + 1)) = f1i; + *(p1r + posA) = t1r; + *(p1r + posAi) = t1i; + *(p1r + posB) = f3r; + *(p1r + posBi) = f3i; + *(p0r) = f0r; + *(p0r + 1) = f0i; + *(p0r + 2) = f5r; + *(p0r + (2 + 1)) = f5i; + *(p0r + posA) = f2r; + *(p0r + posAi) = f2i; + *(p0r + posB) = f7r; + *(p0r + posBi) = f7i; + + p0r -= Nrems2; + f0r = *(p0r); + f0i = *(p0r + 1); + f1r = *(p0r + posA); + f1i = *(p0r + posAi); + iCol -= 1; + p1r = IOP + BRLow[iCol] * 4; + } + f2r = *(p0r + 2); + f2i = *(p0r + (2 + 1)); + f3r = *(p0r + posB); + f3i = *(p0r + posBi); + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + t1r = f2r + f3r; + t1i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + + *(p0r) = t0r; + *(p0r + 1) = t0i; + *(p0r + 2) = f1r; + *(p0r + (2 + 1)) = f1i; + *(p0r + posA) = t1r; + *(p0r + posAi) = t1i; + *(p0r + posB) = f3r; + *(p0r + posBi) = f3i; + } + } +} + +static void fft2pt(SPFLOAT * ioptr) +{ + /*** RADIX 2 fft ***/ + SPFLOAT f0r, f0i, f1r, f1i; + SPFLOAT t0r, t0i; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[2]; + f1i = ioptr[3]; + + /* Butterflys */ + /* + f0 - - t0 + f1 - 1 - f1 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + /* store result */ + ioptr[0] = t0r; + ioptr[1] = t0i; + ioptr[2] = f1r; + ioptr[3] = f1i; +} + +static void fft4pt(SPFLOAT * ioptr) +{ + /*** RADIX 4 fft ***/ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT t0r, t0i, t1r, t1i; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[4]; + f1i = ioptr[5]; + f2r = ioptr[2]; + f2i = ioptr[3]; + f3r = ioptr[6]; + f3i = ioptr[7]; + + /* Butterflys */ + /* + f0 - - t0 - - f0 + f1 - 1 - f1 - - f1 + f2 - - f2 - 1 - f2 + f3 - 1 - t1 - -i - f3 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = t0i - f2i; + + f3r = f1r - t1i; + f3i = f1i + t1r; + f1r = f1r + t1i; + f1i = f1i - t1r; + + /* store result */ + ioptr[0] = f0r; + ioptr[1] = f0i; + ioptr[2] = f1r; + ioptr[3] = f1i; + ioptr[4] = f2r; + ioptr[5] = f2i; + ioptr[6] = f3r; + ioptr[7] = f3i; +} + +static void fft8pt(SPFLOAT * ioptr) +{ + /*** RADIX 8 fft ***/ + SPFLOAT w0r = (SPFLOAT)(1.0 / MYROOT2); /* cos(pi/4) */ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[8]; + f1i = ioptr[9]; + f2r = ioptr[4]; + f2i = ioptr[5]; + f3r = ioptr[12]; + f3i = ioptr[13]; + f4r = ioptr[2]; + f4i = ioptr[3]; + f5r = ioptr[10]; + f5i = ioptr[11]; + f6r = ioptr[6]; + f6i = ioptr[7]; + f7r = ioptr[14]; + f7i = ioptr[15]; + /* Butterflys */ + /* + f0 - - t0 - - f0 - - f0 + f1 - 1 - f1 - - f1 - - f1 + f2 - - f2 - 1 - f2 - - f2 + f3 - 1 - t1 - -i - f3 - - f3 + f4 - - t0 - - f4 - 1 - t0 + f5 - 1 - f5 - - f5 - w3 - f4 + f6 - - f6 - 1 - f6 - -i - t1 + f7 - 1 - t1 - -i - f7 - iw3- f6 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = t0i - f2i; + + f3r = f1r - t1i; + f3i = f1i + t1r; + f1r = f1r + t1i; + f1i = f1i - t1r; + + t0r = f4r + f5r; + t0i = f4i + f5i; + f5r = f4r - f5r; + f5i = f4i - f5i; + + t1r = f6r - f7r; + t1i = f6i - f7i; + f6r = f6r + f7r; + f6i = f6i + f7i; + + f4r = t0r + f6r; + f4i = t0i + f6i; + f6r = t0r - f6r; + f6i = t0i - f6i; + + f7r = f5r - t1i; + f7i = f5i + t1r; + f5r = f5r + t1i; + f5i = f5i - t1r; + + t0r = f0r - f4r; + t0i = f0i - f4i; + f0r = f0r + f4r; + f0i = f0i + f4i; + + t1r = f2r - f6i; + t1i = f2i + f6r; + f2r = f2r + f6i; + f2i = f2i - f6r; + + f4r = f1r - f5r * w0r - f5i * w0r; + f4i = f1i + f5r * w0r - f5i * w0r; + f1r = f1r * Two - f4r; + f1i = f1i * Two - f4i; + + f6r = f3r + f7r * w0r - f7i * w0r; + f6i = f3i + f7r * w0r + f7i * w0r; + f3r = f3r * Two - f6r; + f3i = f3i * Two - f6i; + + /* store result */ + ioptr[0] = f0r; + ioptr[1] = f0i; + ioptr[2] = f1r; + ioptr[3] = f1i; + ioptr[4] = f2r; + ioptr[5] = f2i; + ioptr[6] = f3r; + ioptr[7] = f3i; + ioptr[8] = t0r; + ioptr[9] = t0i; + ioptr[10] = f4r; + ioptr[11] = f4i; + ioptr[12] = t1r; + ioptr[13] = t1i; + ioptr[14] = f6r; + ioptr[15] = f6i; +} + +static void bfR2(SPFLOAT * ioptr, int M, int NDiffU) +{ + /*** 2nd radix 2 stage ***/ + unsigned int pos; + unsigned int posi; + unsigned int pinc; + unsigned int pnext; + unsigned int NSameU; + unsigned int SameUCnt; + + SPFLOAT * pstrt; + SPFLOAT *p0r, *p1r, *p2r, *p3r; + + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + + pinc = NDiffU * 2; /* 2 floats per complex */ + pnext = pinc * 4; + pos = 2; + posi = pos + 1; + NSameU = POW2(M) / 4 / NDiffU; /* 4 Us at a time */ + pstrt = ioptr; + p0r = pstrt; + p1r = pstrt + pinc; + p2r = p1r + pinc; + p3r = p2r + pinc; + + /* Butterflys */ + /* + f0 - - f4 + f1 - 1 - f5 + f2 - - f6 + f3 - 1 - f7 + */ + /* Butterflys */ + /* + f0 - - f4 + f1 - 1 - f5 + f2 - - f6 + f3 - 1 - f7 + */ + + for (SameUCnt = NSameU; SameUCnt > 0; SameUCnt--) + { + + f0r = *p0r; + f1r = *p1r; + f0i = *(p0r + 1); + f1i = *(p1r + 1); + f2r = *p2r; + f3r = *p3r; + f2i = *(p2r + 1); + f3i = *(p3r + 1); + + f4r = f0r + f1r; + f4i = f0i + f1i; + f5r = f0r - f1r; + f5i = f0i - f1i; + + f6r = f2r + f3r; + f6i = f2i + f3i; + f7r = f2r - f3r; + f7i = f2i - f3i; + + *p0r = f4r; + *(p0r + 1) = f4i; + *p1r = f5r; + *(p1r + 1) = f5i; + *p2r = f6r; + *(p2r + 1) = f6i; + *p3r = f7r; + *(p3r + 1) = f7i; + + f0r = *(p0r + pos); + f1i = *(p1r + posi); + f0i = *(p0r + posi); + f1r = *(p1r + pos); + f2r = *(p2r + pos); + f3i = *(p3r + posi); + f2i = *(p2r + posi); + f3r = *(p3r + pos); + + f4r = f0r + f1i; + f4i = f0i - f1r; + f5r = f0r - f1i; + f5i = f0i + f1r; + + f6r = f2r + f3i; + f6i = f2i - f3r; + f7r = f2r - f3i; + f7i = f2i + f3r; + + *(p0r + pos) = f4r; + *(p0r + posi) = f4i; + *(p1r + pos) = f5r; + *(p1r + posi) = f5i; + *(p2r + pos) = f6r; + *(p2r + posi) = f6i; + *(p3r + pos) = f7r; + *(p3r + posi) = f7i; + + p0r += pnext; + p1r += pnext; + p2r += pnext; + p3r += pnext; + } +} + +static void bfR4(SPFLOAT * ioptr, int M, int NDiffU) +{ + /*** 1 radix 4 stage ***/ + unsigned int pos; + unsigned int posi; + unsigned int pinc; + unsigned int pnext; + unsigned int pnexti; + unsigned int NSameU; + unsigned int SameUCnt; + + SPFLOAT * pstrt; + SPFLOAT *p0r, *p1r, *p2r, *p3r; + + SPFLOAT w1r = 1.0 / MYROOT2; /* cos(pi/4) */ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t1r, t1i; + const SPFLOAT Two = 2.0; + + pinc = NDiffU * 2; /* 2 floats per complex */ + pnext = pinc * 4; + pnexti = pnext + 1; + pos = 2; + posi = pos + 1; + NSameU = POW2(M) / 4 / NDiffU; /* 4 pts per butterfly */ + pstrt = ioptr; + p0r = pstrt; + p1r = pstrt + pinc; + p2r = p1r + pinc; + p3r = p2r + pinc; + + /* Butterflys */ + /* + f0 - - f0 - - f4 + f1 - 1 - f5 - - f5 + f2 - - f6 - 1 - f6 + f3 - 1 - f3 - -i - f7 + */ + /* Butterflys */ + /* + f0 - - f4 - - f4 + f1 - -i - t1 - - f5 + f2 - - f2 - w1 - f6 + f3 - -i - f7 - iw1- f7 + */ + + f0r = *p0r; + f1r = *p1r; + f2r = *p2r; + f3r = *p3r; + f0i = *(p0r + 1); + f1i = *(p1r + 1); + f2i = *(p2r + 1); + f3i = *(p3r + 1); + + f5r = f0r - f1r; + f5i = f0i - f1i; + f0r = f0r + f1r; + f0i = f0i + f1i; + + f6r = f2r + f3r; + f6i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + + for (SameUCnt = NSameU - 1; SameUCnt > 0; SameUCnt--) + { + + f7r = f5r - f3i; + f7i = f5i + f3r; + f5r = f5r + f3i; + f5i = f5i - f3r; + + f4r = f0r + f6r; + f4i = f0i + f6i; + f6r = f0r - f6r; + f6i = f0i - f6i; + + f2r = *(p2r + pos); + f2i = *(p2r + posi); + f1r = *(p1r + pos); + f1i = *(p1r + posi); + f3i = *(p3r + posi); + f0r = *(p0r + pos); + f3r = *(p3r + pos); + f0i = *(p0r + posi); + + *p3r = f7r; + *p0r = f4r; + *(p3r + 1) = f7i; + *(p0r + 1) = f4i; + *p1r = f5r; + *p2r = f6r; + *(p1r + 1) = f5i; + *(p2r + 1) = f6i; + + f7r = f2r - f3i; + f7i = f2i + f3r; + f2r = f2r + f3i; + f2i = f2i - f3r; + + f4r = f0r + f1i; + f4i = f0i - f1r; + t1r = f0r - f1i; + t1i = f0i + f1r; + + f5r = t1r - f7r * w1r + f7i * w1r; + f5i = t1i - f7r * w1r - f7i * w1r; + f7r = t1r * Two - f5r; + f7i = t1i * Two - f5i; + + f6r = f4r - f2r * w1r - f2i * w1r; + f6i = f4i + f2r * w1r - f2i * w1r; + f4r = f4r * Two - f6r; + f4i = f4i * Two - f6i; + + f3r = *(p3r + pnext); + f0r = *(p0r + pnext); + f3i = *(p3r + pnexti); + f0i = *(p0r + pnexti); + f2r = *(p2r + pnext); + f2i = *(p2r + pnexti); + f1r = *(p1r + pnext); + f1i = *(p1r + pnexti); + + *(p2r + pos) = f6r; + *(p1r + pos) = f5r; + *(p2r + posi) = f6i; + *(p1r + posi) = f5i; + *(p3r + pos) = f7r; + *(p0r + pos) = f4r; + *(p3r + posi) = f7i; + *(p0r + posi) = f4i; + + f6r = f2r + f3r; + f6i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + + f5r = f0r - f1r; + f5i = f0i - f1i; + f0r = f0r + f1r; + f0i = f0i + f1i; + + p3r += pnext; + p0r += pnext; + p1r += pnext; + p2r += pnext; + } + f7r = f5r - f3i; + f7i = f5i + f3r; + f5r = f5r + f3i; + f5i = f5i - f3r; + + f4r = f0r + f6r; + f4i = f0i + f6i; + f6r = f0r - f6r; + f6i = f0i - f6i; + + f2r = *(p2r + pos); + f2i = *(p2r + posi); + f1r = *(p1r + pos); + f1i = *(p1r + posi); + f3i = *(p3r + posi); + f0r = *(p0r + pos); + f3r = *(p3r + pos); + f0i = *(p0r + posi); + + *p3r = f7r; + *p0r = f4r; + *(p3r + 1) = f7i; + *(p0r + 1) = f4i; + *p1r = f5r; + *p2r = f6r; + *(p1r + 1) = f5i; + *(p2r + 1) = f6i; + + f7r = f2r - f3i; + f7i = f2i + f3r; + f2r = f2r + f3i; + f2i = f2i - f3r; + + f4r = f0r + f1i; + f4i = f0i - f1r; + t1r = f0r - f1i; + t1i = f0i + f1r; + + f5r = t1r - f7r * w1r + f7i * w1r; + f5i = t1i - f7r * w1r - f7i * w1r; + f7r = t1r * Two - f5r; + f7i = t1i * Two - f5i; + + f6r = f4r - f2r * w1r - f2i * w1r; + f6i = f4i + f2r * w1r - f2i * w1r; + f4r = f4r * Two - f6r; + f4i = f4i * Two - f6i; + + *(p2r + pos) = f6r; + *(p1r + pos) = f5r; + *(p2r + posi) = f6i; + *(p1r + posi) = f5i; + *(p3r + pos) = f7r; + *(p0r + pos) = f4r; + *(p3r + posi) = f7i; + *(p0r + posi) = f4i; +} + +static void bfstages(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int Ustride, + int NDiffU, int StageCnt) +{ + /*** RADIX 8 Stages ***/ + unsigned int pos; + unsigned int posi; + unsigned int pinc; + unsigned int pnext; + unsigned int NSameU; + int Uinc; + int Uinc2; + int Uinc4; + unsigned int DiffUCnt; + unsigned int SameUCnt; + unsigned int U2toU3; + + SPFLOAT * pstrt; + SPFLOAT *p0r, *p1r, *p2r, *p3r; + SPFLOAT *u0r, *u0i, *u1r, *u1i, *u2r, *u2i; + + SPFLOAT w0r, w0i, w1r, w1i, w2r, w2i, w3r, w3i; + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + + pinc = NDiffU * 2; /* 2 floats per complex */ + pnext = pinc * 8; + pos = pinc * 4; + posi = pos + 1; + NSameU = POW2(M) / 8 / NDiffU; /* 8 pts per butterfly */ + Uinc = (int) NSameU * Ustride; + Uinc2 = Uinc * 2; + Uinc4 = Uinc * 4; + U2toU3 = (POW2(M) / 8) * Ustride; + for (; StageCnt > 0; StageCnt--) + { + + u0r = &Utbl[0]; + u0i = &Utbl[POW2(M - 2) * Ustride]; + u1r = u0r; + u1i = u0i; + u2r = u0r; + u2i = u0i; + + w0r = *u0r; + w0i = *u0i; + w1r = *u1r; + w1i = *u1i; + w2r = *u2r; + w2i = *u2i; + w3r = *(u2r + U2toU3); + w3i = *(u2i - U2toU3); + + pstrt = ioptr; + + p0r = pstrt; + p1r = pstrt + pinc; + p2r = p1r + pinc; + p3r = p2r + pinc; + + /* Butterflys */ + /* + f0 - - t0 - - f0 - - f0 + f1 - w0- f1 - - f1 - - f1 + f2 - - f2 - w1- f2 - - f4 + f3 - w0- t1 - iw1- f3 - - f5 + + f4 - - t0 - - f4 - w2- t0 + f5 - w0- f5 - - f5 - w3- t1 + f6 - - f6 - w1- f6 - iw2- f6 + f7 - w0- t1 - iw1- f7 - iw3- f7 + */ + + for (DiffUCnt = NDiffU; DiffUCnt > 0; DiffUCnt--) + { + f0r = *p0r; + f0i = *(p0r + 1); + f1r = *p1r; + f1i = *(p1r + 1); + for (SameUCnt = NSameU - 1; SameUCnt > 0; SameUCnt--) + { + f2r = *p2r; + f2i = *(p2r + 1); + f3r = *p3r; + f3i = *(p3r + 1); + + t0r = f0r + f1r * w0r + f1i * w0i; + t0i = f0i - f1r * w0i + f1i * w0r; + f1r = f0r * Two - t0r; + f1i = f0i * Two - t0i; + + f4r = *(p0r + pos); + f4i = *(p0r + posi); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + + f6r = *(p2r + pos); + f6i = *(p2r + posi); + f7r = *(p3r + pos); + f7i = *(p3r + posi); + + t1r = f2r - f3r * w0r - f3i * w0i; + t1i = f2i + f3r * w0i - f3i * w0r; + f2r = f2r * Two - t1r; + f2i = f2i * Two - t1i; + + f0r = t0r + f2r * w1r + f2i * w1i; + f0i = t0i - f2r * w1i + f2i * w1r; + f2r = t0r * Two - f0r; + f2i = t0i * Two - f0i; + + f3r = f1r + t1r * w1i - t1i * w1r; + f3i = f1i + t1r * w1r + t1i * w1i; + f1r = f1r * Two - f3r; + f1i = f1i * Two - f3i; + + t0r = f4r + f5r * w0r + f5i * w0i; + t0i = f4i - f5r * w0i + f5i * w0r; + f5r = f4r * Two - t0r; + f5i = f4i * Two - t0i; + + t1r = f6r - f7r * w0r - f7i * w0i; + t1i = f6i + f7r * w0i - f7i * w0r; + f6r = f6r * Two - t1r; + f6i = f6i * Two - t1i; + + f4r = t0r + f6r * w1r + f6i * w1i; + f4i = t0i - f6r * w1i + f6i * w1r; + f6r = t0r * Two - f4r; + f6i = t0i * Two - f4i; + + f7r = f5r + t1r * w1i - t1i * w1r; + f7i = f5i + t1r * w1r + t1i * w1i; + f5r = f5r * Two - f7r; + f5i = f5i * Two - f7i; + + t0r = f0r - f4r * w2r - f4i * w2i; + t0i = f0i + f4r * w2i - f4i * w2r; + f0r = f0r * Two - t0r; + f0i = f0i * Two - t0i; + + t1r = f1r - f5r * w3r - f5i * w3i; + t1i = f1i + f5r * w3i - f5i * w3r; + f1r = f1r * Two - t1r; + f1i = f1i * Two - t1i; + + *(p0r + pos) = t0r; + *(p1r + pos) = t1r; + *(p0r + posi) = t0i; + *(p1r + posi) = t1i; + *p0r = f0r; + *p1r = f1r; + *(p0r + 1) = f0i; + *(p1r + 1) = f1i; + + p0r += pnext; + f0r = *p0r; + f0i = *(p0r + 1); + + p1r += pnext; + + f1r = *p1r; + f1i = *(p1r + 1); + + f4r = f2r - f6r * w2i + f6i * w2r; + f4i = f2i - f6r * w2r - f6i * w2i; + f6r = f2r * Two - f4r; + f6i = f2i * Two - f4i; + + f5r = f3r - f7r * w3i + f7i * w3r; + f5i = f3i - f7r * w3r - f7i * w3i; + f7r = f3r * Two - f5r; + f7i = f3i * Two - f5i; + + *p2r = f4r; + *p3r = f5r; + *(p2r + 1) = f4i; + *(p3r + 1) = f5i; + *(p2r + pos) = f6r; + *(p3r + pos) = f7r; + *(p2r + posi) = f6i; + *(p3r + posi) = f7i; + + p2r += pnext; + p3r += pnext; + } + + f2r = *p2r; + f2i = *(p2r + 1); + f3r = *p3r; + f3i = *(p3r + 1); + + t0r = f0r + f1r * w0r + f1i * w0i; + t0i = f0i - f1r * w0i + f1i * w0r; + f1r = f0r * Two - t0r; + f1i = f0i * Two - t0i; + + f4r = *(p0r + pos); + f4i = *(p0r + posi); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + + f6r = *(p2r + pos); + f6i = *(p2r + posi); + f7r = *(p3r + pos); + f7i = *(p3r + posi); + + t1r = f2r - f3r * w0r - f3i * w0i; + t1i = f2i + f3r * w0i - f3i * w0r; + f2r = f2r * Two - t1r; + f2i = f2i * Two - t1i; + + f0r = t0r + f2r * w1r + f2i * w1i; + f0i = t0i - f2r * w1i + f2i * w1r; + f2r = t0r * Two - f0r; + f2i = t0i * Two - f0i; + + f3r = f1r + t1r * w1i - t1i * w1r; + f3i = f1i + t1r * w1r + t1i * w1i; + f1r = f1r * Two - f3r; + f1i = f1i * Two - f3i; + + if ((int) DiffUCnt == NDiffU / 2) + Uinc4 = -Uinc4; + + u0r += Uinc4; + u0i -= Uinc4; + u1r += Uinc2; + u1i -= Uinc2; + u2r += Uinc; + u2i -= Uinc; + + pstrt += 2; + + t0r = f4r + f5r * w0r + f5i * w0i; + t0i = f4i - f5r * w0i + f5i * w0r; + f5r = f4r * Two - t0r; + f5i = f4i * Two - t0i; + + t1r = f6r - f7r * w0r - f7i * w0i; + t1i = f6i + f7r * w0i - f7i * w0r; + f6r = f6r * Two - t1r; + f6i = f6i * Two - t1i; + + f4r = t0r + f6r * w1r + f6i * w1i; + f4i = t0i - f6r * w1i + f6i * w1r; + f6r = t0r * Two - f4r; + f6i = t0i * Two - f4i; + + f7r = f5r + t1r * w1i - t1i * w1r; + f7i = f5i + t1r * w1r + t1i * w1i; + f5r = f5r * Two - f7r; + f5i = f5i * Two - f7i; + + w0r = *u0r; + w0i = *u0i; + w1r = *u1r; + w1i = *u1i; + + if ((int) DiffUCnt <= NDiffU / 2) + w0r = -w0r; + + t0r = f0r - f4r * w2r - f4i * w2i; + t0i = f0i + f4r * w2i - f4i * w2r; + f0r = f0r * Two - t0r; + f0i = f0i * Two - t0i; + + f4r = f2r - f6r * w2i + f6i * w2r; + f4i = f2i - f6r * w2r - f6i * w2i; + f6r = f2r * Two - f4r; + f6i = f2i * Two - f4i; + + *(p0r + pos) = t0r; + *p2r = f4r; + *(p0r + posi) = t0i; + *(p2r + 1) = f4i; + w2r = *u2r; + w2i = *u2i; + *p0r = f0r; + *(p2r + pos) = f6r; + *(p0r + 1) = f0i; + *(p2r + posi) = f6i; + + p0r = pstrt; + p2r = pstrt + pinc + pinc; + + t1r = f1r - f5r * w3r - f5i * w3i; + t1i = f1i + f5r * w3i - f5i * w3r; + f1r = f1r * Two - t1r; + f1i = f1i * Two - t1i; + + f5r = f3r - f7r * w3i + f7i * w3r; + f5i = f3i - f7r * w3r - f7i * w3i; + f7r = f3r * Two - f5r; + f7i = f3i * Two - f5i; + + *(p1r + pos) = t1r; + *p3r = f5r; + *(p1r + posi) = t1i; + *(p3r + 1) = f5i; + w3r = *(u2r + U2toU3); + w3i = *(u2i - U2toU3); + *p1r = f1r; + *(p3r + pos) = f7r; + *(p1r + 1) = f1i; + *(p3r + posi) = f7i; + + p1r = pstrt + pinc; + p3r = p2r + pinc; + } + NSameU /= 8; + Uinc /= 8; + Uinc2 /= 8; + Uinc4 = Uinc * 4; + NDiffU *= 8; + pinc *= 8; + pnext *= 8; + pos *= 8; + posi = pos + 1; + } +} + +static void fftrecurs(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int Ustride, int NDiffU, + int StageCnt) +{ + /* recursive bfstages calls to maximize on chip cache efficiency */ + int i1; + + if (M <= (int) MCACHE) /* fits on chip ? */ + bfstages(ioptr, M, Utbl, Ustride, NDiffU, StageCnt); /* RADIX 8 Stages */ + else + { + for (i1 = 0; i1 < 8; i1++) + { + fftrecurs(&ioptr[i1 * POW2(M - 3) * 2], M - 3, Utbl, 8 * Ustride, + NDiffU, StageCnt - 1); /* RADIX 8 Stages */ + } + bfstages(ioptr, M, Utbl, Ustride, POW2(M - 3), 1); /* RADIX 8 Stage */ + } +} + +#if 0 +static void ffts1(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int16_t * BRLow) +{ + /* Compute in-place complex fft on the rows of the input array */ + /* INPUTS */ + /* *ioptr = input data array */ + /* M = log2 of fft size (ex M=10 for 1024 point fft) */ + /* *Utbl = cosine table */ + /* *BRLow = bit reversed counter table */ + /* OUTPUTS */ + /* *ioptr = output data array */ + + int StageCnt; + int NDiffU; + + switch (M) + { + case 0: + break; + case 1: + fft2pt(ioptr); /* a 2 pt fft */ + break; + case 2: + fft4pt(ioptr); /* a 4 pt fft */ + break; + case 3: + fft8pt(ioptr); /* an 8 pt fft */ + break; + default: + bitrevR2(ioptr, M, BRLow); /* bit reverse and first radix 2 stage */ + StageCnt = (M - 1) / 3; /* number of radix 8 stages */ + NDiffU = 2; /* one radix 2 stage already complete */ + if ((M - 1 - (StageCnt * 3)) == 1) + { + bfR2(ioptr, M, NDiffU); /* 1 radix 2 stage */ + NDiffU *= 2; + } + if ((M - 1 - (StageCnt * 3)) == 2) + { + bfR4(ioptr, M, NDiffU); /* 1 radix 4 stage */ + NDiffU *= 4; + } + if (M <= (int) MCACHE) + bfstages(ioptr, M, Utbl, 1, NDiffU, StageCnt); /* RADIX 8 Stages */ + else + fftrecurs(ioptr, M, Utbl, 1, NDiffU, StageCnt); /* RADIX 8 Stages */ + } +} +#endif + +/****************** +* parts of iffts1 * +******************/ + +static void scbitrevR2(SPFLOAT * ioptr, int M, int16_t * BRLow, SPFLOAT scale) +{ + /*** scaled bit reverse and first radix 2 stage forward or inverse fft ***/ + SPFLOAT f0r; + SPFLOAT f0i; + SPFLOAT f1r; + SPFLOAT f1i; + SPFLOAT f2r; + SPFLOAT f2i; + SPFLOAT f3r; + SPFLOAT f3i; + SPFLOAT f4r; + SPFLOAT f4i; + SPFLOAT f5r; + SPFLOAT f5i; + SPFLOAT f6r; + SPFLOAT f6i; + SPFLOAT f7r; + SPFLOAT f7i; + SPFLOAT t0r; + SPFLOAT t0i; + SPFLOAT t1r; + SPFLOAT t1i; + SPFLOAT * p0r; + SPFLOAT * p1r; + SPFLOAT * IOP; + SPFLOAT * iolimit; + int Colstart; + int iCol; + unsigned int posA; + unsigned int posAi; + unsigned int posB; + unsigned int posBi; + + const unsigned int Nrems2 = POW2((M + 3) / 2); + const unsigned int Nroot_1_ColInc = POW2(M) - Nrems2; + const unsigned int Nroot_1 = POW2(M / 2 - 1) - 1; + const unsigned int ColstartShift = (M + 1) / 2 + 1; + + posA = POW2(M); /* 1/2 of POW2(M) complexes */ + posAi = posA + 1; + posB = posA + 2; + posBi = posB + 1; + + iolimit = ioptr + Nrems2; + for (; ioptr < iolimit; ioptr += POW2(M / 2 + 1)) + { + for (Colstart = Nroot_1; Colstart >= 0; Colstart--) + { + iCol = Nroot_1; + p0r = ioptr + Nroot_1_ColInc + BRLow[Colstart] * 4; + IOP = ioptr + (Colstart << ColstartShift); + p1r = IOP + BRLow[iCol] * 4; + f0r = *(p0r); + f0i = *(p0r + 1); + f1r = *(p0r + posA); + f1i = *(p0r + posAi); + for (; iCol > Colstart;) + { + f2r = *(p0r + 2); + f2i = *(p0r + (2 + 1)); + f3r = *(p0r + posB); + f3i = *(p0r + posBi); + f4r = *(p1r); + f4i = *(p1r + 1); + f5r = *(p1r + posA); + f5i = *(p1r + posAi); + f6r = *(p1r + 2); + f6i = *(p1r + (2 + 1)); + f7r = *(p1r + posB); + f7i = *(p1r + posBi); + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + t1r = f2r + f3r; + t1i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + f0r = f4r + f5r; + f0i = f4i + f5i; + f5r = f4r - f5r; + f5i = f4i - f5i; + f2r = f6r + f7r; + f2i = f6i + f7i; + f7r = f6r - f7r; + f7i = f6i - f7i; + + *(p1r) = scale * t0r; + *(p1r + 1) = scale * t0i; + *(p1r + 2) = scale * f1r; + *(p1r + (2 + 1)) = scale * f1i; + *(p1r + posA) = scale * t1r; + *(p1r + posAi) = scale * t1i; + *(p1r + posB) = scale * f3r; + *(p1r + posBi) = scale * f3i; + *(p0r) = scale * f0r; + *(p0r + 1) = scale * f0i; + *(p0r + 2) = scale * f5r; + *(p0r + (2 + 1)) = scale * f5i; + *(p0r + posA) = scale * f2r; + *(p0r + posAi) = scale * f2i; + *(p0r + posB) = scale * f7r; + *(p0r + posBi) = scale * f7i; + + p0r -= Nrems2; + f0r = *(p0r); + f0i = *(p0r + 1); + f1r = *(p0r + posA); + f1i = *(p0r + posAi); + iCol -= 1; + p1r = IOP + BRLow[iCol] * 4; + } + f2r = *(p0r + 2); + f2i = *(p0r + (2 + 1)); + f3r = *(p0r + posB); + f3i = *(p0r + posBi); + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + t1r = f2r + f3r; + t1i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + + *(p0r) = scale * t0r; + *(p0r + 1) = scale * t0i; + *(p0r + 2) = scale * f1r; + *(p0r + (2 + 1)) = scale * f1i; + *(p0r + posA) = scale * t1r; + *(p0r + posAi) = scale * t1i; + *(p0r + posB) = scale * f3r; + *(p0r + posBi) = scale * f3i; + } + } +} + +static void ifft2pt(SPFLOAT * ioptr, SPFLOAT scale) +{ + /*** RADIX 2 ifft ***/ + SPFLOAT f0r, f0i, f1r, f1i; + SPFLOAT t0r, t0i; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[2]; + f1i = ioptr[3]; + + /* Butterflys */ + /* + f0 - - t0 + f1 - 1 - f1 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + /* store result */ + ioptr[0] = scale * t0r; + ioptr[1] = scale * t0i; + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; +} + +static void ifft4pt(SPFLOAT * ioptr, SPFLOAT scale) +{ + /*** RADIX 4 ifft ***/ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT t0r, t0i, t1r, t1i; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[4]; + f1i = ioptr[5]; + f2r = ioptr[2]; + f2i = ioptr[3]; + f3r = ioptr[6]; + f3i = ioptr[7]; + + /* Butterflys */ + /* + f0 - - t0 - - f0 + f1 - 1 - f1 - - f1 + f2 - - f2 - 1 - f2 + f3 - 1 - t1 - i - f3 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = t0i - f2i; + + f3r = f1r + t1i; + f3i = f1i - t1r; + f1r = f1r - t1i; + f1i = f1i + t1r; + + /* store result */ + ioptr[0] = scale * f0r; + ioptr[1] = scale * f0i; + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; + ioptr[4] = scale * f2r; + ioptr[5] = scale * f2i; + ioptr[6] = scale * f3r; + ioptr[7] = scale * f3i; +} + +static void ifft8pt(SPFLOAT * ioptr, SPFLOAT scale) +{ + /*** RADIX 8 ifft ***/ + SPFLOAT w0r = 1.0 / MYROOT2; /* cos(pi/4) */ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[8]; + f1i = ioptr[9]; + f2r = ioptr[4]; + f2i = ioptr[5]; + f3r = ioptr[12]; + f3i = ioptr[13]; + f4r = ioptr[2]; + f4i = ioptr[3]; + f5r = ioptr[10]; + f5i = ioptr[11]; + f6r = ioptr[6]; + f6i = ioptr[7]; + f7r = ioptr[14]; + f7i = ioptr[15]; + + /* Butterflys */ + /* + f0 - - t0 - - f0 - - f0 + f1 - 1 - f1 - - f1 - - f1 + f2 - - f2 - 1 - f2 - - f2 + f3 - 1 - t1 - i - f3 - - f3 + f4 - - t0 - - f4 - 1 - t0 + f5 - 1 - f5 - - f5 - w3 - f4 + f6 - - f6 - 1 - f6 - i - t1 + f7 - 1 - t1 - i - f7 - iw3- f6 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = t0i - f2i; + + f3r = f1r + t1i; + f3i = f1i - t1r; + f1r = f1r - t1i; + f1i = f1i + t1r; + + t0r = f4r + f5r; + t0i = f4i + f5i; + f5r = f4r - f5r; + f5i = f4i - f5i; + + t1r = f6r - f7r; + t1i = f6i - f7i; + f6r = f6r + f7r; + f6i = f6i + f7i; + + f4r = t0r + f6r; + f4i = t0i + f6i; + f6r = t0r - f6r; + f6i = t0i - f6i; + + f7r = f5r + t1i; + f7i = f5i - t1r; + f5r = f5r - t1i; + f5i = f5i + t1r; + + t0r = f0r - f4r; + t0i = f0i - f4i; + f0r = f0r + f4r; + f0i = f0i + f4i; + + t1r = f2r + f6i; + t1i = f2i - f6r; + f2r = f2r - f6i; + f2i = f2i + f6r; + + f4r = f1r - f5r * w0r + f5i * w0r; + f4i = f1i - f5r * w0r - f5i * w0r; + f1r = f1r * Two - f4r; + f1i = f1i * Two - f4i; + + f6r = f3r + f7r * w0r + f7i * w0r; + f6i = f3i - f7r * w0r + f7i * w0r; + f3r = f3r * Two - f6r; + f3i = f3i * Two - f6i; + + /* store result */ + ioptr[0] = scale * f0r; + ioptr[1] = scale * f0i; + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; + ioptr[4] = scale * f2r; + ioptr[5] = scale * f2i; + ioptr[6] = scale * f3r; + ioptr[7] = scale * f3i; + ioptr[8] = scale * t0r; + ioptr[9] = scale * t0i; + ioptr[10] = scale * f4r; + ioptr[11] = scale * f4i; + ioptr[12] = scale * t1r; + ioptr[13] = scale * t1i; + ioptr[14] = scale * f6r; + ioptr[15] = scale * f6i; +} + +static void ibfR2(SPFLOAT * ioptr, int M, int NDiffU) +{ + /*** 2nd radix 2 stage ***/ + unsigned int pos; + unsigned int posi; + unsigned int pinc; + unsigned int pnext; + unsigned int NSameU; + unsigned int SameUCnt; + + SPFLOAT * pstrt; + SPFLOAT *p0r, *p1r, *p2r, *p3r; + + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + + pinc = NDiffU * 2; /* 2 floats per complex */ + pnext = pinc * 4; + pos = 2; + posi = pos + 1; + NSameU = POW2(M) / 4 / NDiffU; /* 4 Us at a time */ + pstrt = ioptr; + p0r = pstrt; + p1r = pstrt + pinc; + p2r = p1r + pinc; + p3r = p2r + pinc; + + /* Butterflys */ + /* + f0 - - f4 + f1 - 1 - f5 + f2 - - f6 + f3 - 1 - f7 + */ + /* Butterflys */ + /* + f0 - - f4 + f1 - 1 - f5 + f2 - - f6 + f3 - 1 - f7 + */ + + for (SameUCnt = NSameU; SameUCnt > 0; SameUCnt--) + { + + f0r = *p0r; + f1r = *p1r; + f0i = *(p0r + 1); + f1i = *(p1r + 1); + f2r = *p2r; + f3r = *p3r; + f2i = *(p2r + 1); + f3i = *(p3r + 1); + + f4r = f0r + f1r; + f4i = f0i + f1i; + f5r = f0r - f1r; + f5i = f0i - f1i; + + f6r = f2r + f3r; + f6i = f2i + f3i; + f7r = f2r - f3r; + f7i = f2i - f3i; + + *p0r = f4r; + *(p0r + 1) = f4i; + *p1r = f5r; + *(p1r + 1) = f5i; + *p2r = f6r; + *(p2r + 1) = f6i; + *p3r = f7r; + *(p3r + 1) = f7i; + + f0r = *(p0r + pos); + f1i = *(p1r + posi); + f0i = *(p0r + posi); + f1r = *(p1r + pos); + f2r = *(p2r + pos); + f3i = *(p3r + posi); + f2i = *(p2r + posi); + f3r = *(p3r + pos); + + f4r = f0r - f1i; + f4i = f0i + f1r; + f5r = f0r + f1i; + f5i = f0i - f1r; + + f6r = f2r - f3i; + f6i = f2i + f3r; + f7r = f2r + f3i; + f7i = f2i - f3r; + + *(p0r + pos) = f4r; + *(p0r + posi) = f4i; + *(p1r + pos) = f5r; + *(p1r + posi) = f5i; + *(p2r + pos) = f6r; + *(p2r + posi) = f6i; + *(p3r + pos) = f7r; + *(p3r + posi) = f7i; + + p0r += pnext; + p1r += pnext; + p2r += pnext; + p3r += pnext; + } +} + +static void ibfR4(SPFLOAT * ioptr, int M, int NDiffU) +{ + /*** 1 radix 4 stage ***/ + unsigned int pos; + unsigned int posi; + unsigned int pinc; + unsigned int pnext; + unsigned int pnexti; + unsigned int NSameU; + unsigned int SameUCnt; + + SPFLOAT * pstrt; + SPFLOAT *p0r, *p1r, *p2r, *p3r; + + SPFLOAT w1r = 1.0 / MYROOT2; /* cos(pi/4) */ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t1r, t1i; + const SPFLOAT Two = 2.0; + + pinc = NDiffU * 2; /* 2 floats per complex */ + pnext = pinc * 4; + pnexti = pnext + 1; + pos = 2; + posi = pos + 1; + NSameU = POW2(M) / 4 / NDiffU; /* 4 pts per butterfly */ + pstrt = ioptr; + p0r = pstrt; + p1r = pstrt + pinc; + p2r = p1r + pinc; + p3r = p2r + pinc; + + /* Butterflys */ + /* + f0 - - f0 - - f4 + f1 - 1 - f5 - - f5 + f2 - - f6 - 1 - f6 + f3 - 1 - f3 - -i - f7 + */ + /* Butterflys */ + /* + f0 - - f4 - - f4 + f1 - -i - t1 - - f5 + f2 - - f2 - w1 - f6 + f3 - -i - f7 - iw1- f7 + */ + + f0r = *p0r; + f1r = *p1r; + f2r = *p2r; + f3r = *p3r; + f0i = *(p0r + 1); + f1i = *(p1r + 1); + f2i = *(p2r + 1); + f3i = *(p3r + 1); + + f5r = f0r - f1r; + f5i = f0i - f1i; + f0r = f0r + f1r; + f0i = f0i + f1i; + + f6r = f2r + f3r; + f6i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + + for (SameUCnt = NSameU - 1; SameUCnt > 0; SameUCnt--) + { + + f7r = f5r + f3i; + f7i = f5i - f3r; + f5r = f5r - f3i; + f5i = f5i + f3r; + + f4r = f0r + f6r; + f4i = f0i + f6i; + f6r = f0r - f6r; + f6i = f0i - f6i; + + f2r = *(p2r + pos); + f2i = *(p2r + posi); + f1r = *(p1r + pos); + f1i = *(p1r + posi); + f3i = *(p3r + posi); + f0r = *(p0r + pos); + f3r = *(p3r + pos); + f0i = *(p0r + posi); + + *p3r = f7r; + *p0r = f4r; + *(p3r + 1) = f7i; + *(p0r + 1) = f4i; + *p1r = f5r; + *p2r = f6r; + *(p1r + 1) = f5i; + *(p2r + 1) = f6i; + + f7r = f2r + f3i; + f7i = f2i - f3r; + f2r = f2r - f3i; + f2i = f2i + f3r; + + f4r = f0r - f1i; + f4i = f0i + f1r; + t1r = f0r + f1i; + t1i = f0i - f1r; + + f5r = t1r - f7r * w1r - f7i * w1r; + f5i = t1i + f7r * w1r - f7i * w1r; + f7r = t1r * Two - f5r; + f7i = t1i * Two - f5i; + + f6r = f4r - f2r * w1r + f2i * w1r; + f6i = f4i - f2r * w1r - f2i * w1r; + f4r = f4r * Two - f6r; + f4i = f4i * Two - f6i; + + f3r = *(p3r + pnext); + f0r = *(p0r + pnext); + f3i = *(p3r + pnexti); + f0i = *(p0r + pnexti); + f2r = *(p2r + pnext); + f2i = *(p2r + pnexti); + f1r = *(p1r + pnext); + f1i = *(p1r + pnexti); + + *(p2r + pos) = f6r; + *(p1r + pos) = f5r; + *(p2r + posi) = f6i; + *(p1r + posi) = f5i; + *(p3r + pos) = f7r; + *(p0r + pos) = f4r; + *(p3r + posi) = f7i; + *(p0r + posi) = f4i; + + f6r = f2r + f3r; + f6i = f2i + f3i; + f3r = f2r - f3r; + f3i = f2i - f3i; + + f5r = f0r - f1r; + f5i = f0i - f1i; + f0r = f0r + f1r; + f0i = f0i + f1i; + + p3r += pnext; + p0r += pnext; + p1r += pnext; + p2r += pnext; + } + f7r = f5r + f3i; + f7i = f5i - f3r; + f5r = f5r - f3i; + f5i = f5i + f3r; + + f4r = f0r + f6r; + f4i = f0i + f6i; + f6r = f0r - f6r; + f6i = f0i - f6i; + + f2r = *(p2r + pos); + f2i = *(p2r + posi); + f1r = *(p1r + pos); + f1i = *(p1r + posi); + f3i = *(p3r + posi); + f0r = *(p0r + pos); + f3r = *(p3r + pos); + f0i = *(p0r + posi); + + *p3r = f7r; + *p0r = f4r; + *(p3r + 1) = f7i; + *(p0r + 1) = f4i; + *p1r = f5r; + *p2r = f6r; + *(p1r + 1) = f5i; + *(p2r + 1) = f6i; + + f7r = f2r + f3i; + f7i = f2i - f3r; + f2r = f2r - f3i; + f2i = f2i + f3r; + + f4r = f0r - f1i; + f4i = f0i + f1r; + t1r = f0r + f1i; + t1i = f0i - f1r; + + f5r = t1r - f7r * w1r - f7i * w1r; + f5i = t1i + f7r * w1r - f7i * w1r; + f7r = t1r * Two - f5r; + f7i = t1i * Two - f5i; + + f6r = f4r - f2r * w1r + f2i * w1r; + f6i = f4i - f2r * w1r - f2i * w1r; + f4r = f4r * Two - f6r; + f4i = f4i * Two - f6i; + + *(p2r + pos) = f6r; + *(p1r + pos) = f5r; + *(p2r + posi) = f6i; + *(p1r + posi) = f5i; + *(p3r + pos) = f7r; + *(p0r + pos) = f4r; + *(p3r + posi) = f7i; + *(p0r + posi) = f4i; +} + +static void ibfstages(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int Ustride, + int NDiffU, int StageCnt) +{ + /*** RADIX 8 Stages ***/ + unsigned int pos; + unsigned int posi; + unsigned int pinc; + unsigned int pnext; + unsigned int NSameU; + int Uinc; + int Uinc2; + int Uinc4; + unsigned int DiffUCnt; + unsigned int SameUCnt; + unsigned int U2toU3; + + SPFLOAT * pstrt; + SPFLOAT *p0r, *p1r, *p2r, *p3r; + SPFLOAT *u0r, *u0i, *u1r, *u1i, *u2r, *u2i; + + SPFLOAT w0r, w0i, w1r, w1i, w2r, w2i, w3r, w3i; + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + + pinc = NDiffU * 2; /* 2 floats per complex */ + pnext = pinc * 8; + pos = pinc * 4; + posi = pos + 1; + NSameU = POW2(M) / 8 / NDiffU; /* 8 pts per butterfly */ + Uinc = (int) NSameU * Ustride; + Uinc2 = Uinc * 2; + Uinc4 = Uinc * 4; + U2toU3 = (POW2(M) / 8) * Ustride; + for (; StageCnt > 0; StageCnt--) + { + + u0r = &Utbl[0]; + u0i = &Utbl[POW2(M - 2) * Ustride]; + u1r = u0r; + u1i = u0i; + u2r = u0r; + u2i = u0i; + + w0r = *u0r; + w0i = *u0i; + w1r = *u1r; + w1i = *u1i; + w2r = *u2r; + w2i = *u2i; + w3r = *(u2r + U2toU3); + w3i = *(u2i - U2toU3); + + pstrt = ioptr; + + p0r = pstrt; + p1r = pstrt + pinc; + p2r = p1r + pinc; + p3r = p2r + pinc; + + /* Butterflys */ + /* + f0 - - t0 - - f0 - - f0 + f1 - w0- f1 - - f1 - - f1 + f2 - - f2 - w1- f2 - - f4 + f3 - w0- t1 - iw1- f3 - - f5 + + f4 - - t0 - - f4 - w2- t0 + f5 - w0- f5 - - f5 - w3- t1 + f6 - - f6 - w1- f6 - iw2- f6 + f7 - w0- t1 - iw1- f7 - iw3- f7 + */ + + for (DiffUCnt = NDiffU; DiffUCnt > 0; DiffUCnt--) + { + f0r = *p0r; + f0i = *(p0r + 1); + f1r = *p1r; + f1i = *(p1r + 1); + for (SameUCnt = NSameU - 1; SameUCnt > 0; SameUCnt--) + { + f2r = *p2r; + f2i = *(p2r + 1); + f3r = *p3r; + f3i = *(p3r + 1); + + t0r = f0r + f1r * w0r - f1i * w0i; + t0i = f0i + f1r * w0i + f1i * w0r; + f1r = f0r * Two - t0r; + f1i = f0i * Two - t0i; + + f4r = *(p0r + pos); + f4i = *(p0r + posi); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + + f6r = *(p2r + pos); + f6i = *(p2r + posi); + f7r = *(p3r + pos); + f7i = *(p3r + posi); + + t1r = f2r - f3r * w0r + f3i * w0i; + t1i = f2i - f3r * w0i - f3i * w0r; + f2r = f2r * Two - t1r; + f2i = f2i * Two - t1i; + + f0r = t0r + f2r * w1r - f2i * w1i; + f0i = t0i + f2r * w1i + f2i * w1r; + f2r = t0r * Two - f0r; + f2i = t0i * Two - f0i; + + f3r = f1r + t1r * w1i + t1i * w1r; + f3i = f1i - t1r * w1r + t1i * w1i; + f1r = f1r * Two - f3r; + f1i = f1i * Two - f3i; + + t0r = f4r + f5r * w0r - f5i * w0i; + t0i = f4i + f5r * w0i + f5i * w0r; + f5r = f4r * Two - t0r; + f5i = f4i * Two - t0i; + + t1r = f6r - f7r * w0r + f7i * w0i; + t1i = f6i - f7r * w0i - f7i * w0r; + f6r = f6r * Two - t1r; + f6i = f6i * Two - t1i; + + f4r = t0r + f6r * w1r - f6i * w1i; + f4i = t0i + f6r * w1i + f6i * w1r; + f6r = t0r * Two - f4r; + f6i = t0i * Two - f4i; + + f7r = f5r + t1r * w1i + t1i * w1r; + f7i = f5i - t1r * w1r + t1i * w1i; + f5r = f5r * Two - f7r; + f5i = f5i * Two - f7i; + + t0r = f0r - f4r * w2r + f4i * w2i; + t0i = f0i - f4r * w2i - f4i * w2r; + f0r = f0r * Two - t0r; + f0i = f0i * Two - t0i; + + t1r = f1r - f5r * w3r + f5i * w3i; + t1i = f1i - f5r * w3i - f5i * w3r; + f1r = f1r * Two - t1r; + f1i = f1i * Two - t1i; + + *(p0r + pos) = t0r; + *(p0r + posi) = t0i; + *p0r = f0r; + *(p0r + 1) = f0i; + + p0r += pnext; + f0r = *p0r; + f0i = *(p0r + 1); + + *(p1r + pos) = t1r; + *(p1r + posi) = t1i; + *p1r = f1r; + *(p1r + 1) = f1i; + + p1r += pnext; + + f1r = *p1r; + f1i = *(p1r + 1); + + f4r = f2r - f6r * w2i - f6i * w2r; + f4i = f2i + f6r * w2r - f6i * w2i; + f6r = f2r * Two - f4r; + f6i = f2i * Two - f4i; + + f5r = f3r - f7r * w3i - f7i * w3r; + f5i = f3i + f7r * w3r - f7i * w3i; + f7r = f3r * Two - f5r; + f7i = f3i * Two - f5i; + + *p2r = f4r; + *(p2r + 1) = f4i; + *(p2r + pos) = f6r; + *(p2r + posi) = f6i; + + p2r += pnext; + + *p3r = f5r; + *(p3r + 1) = f5i; + *(p3r + pos) = f7r; + *(p3r + posi) = f7i; + + p3r += pnext; + } + + f2r = *p2r; + f2i = *(p2r + 1); + f3r = *p3r; + f3i = *(p3r + 1); + + t0r = f0r + f1r * w0r - f1i * w0i; + t0i = f0i + f1r * w0i + f1i * w0r; + f1r = f0r * Two - t0r; + f1i = f0i * Two - t0i; + + f4r = *(p0r + pos); + f4i = *(p0r + posi); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + + f6r = *(p2r + pos); + f6i = *(p2r + posi); + f7r = *(p3r + pos); + f7i = *(p3r + posi); + + t1r = f2r - f3r * w0r + f3i * w0i; + t1i = f2i - f3r * w0i - f3i * w0r; + f2r = f2r * Two - t1r; + f2i = f2i * Two - t1i; + + f0r = t0r + f2r * w1r - f2i * w1i; + f0i = t0i + f2r * w1i + f2i * w1r; + f2r = t0r * Two - f0r; + f2i = t0i * Two - f0i; + + f3r = f1r + t1r * w1i + t1i * w1r; + f3i = f1i - t1r * w1r + t1i * w1i; + f1r = f1r * Two - f3r; + f1i = f1i * Two - f3i; + + if ((int) DiffUCnt == NDiffU / 2) + Uinc4 = -Uinc4; + + u0r += Uinc4; + u0i -= Uinc4; + u1r += Uinc2; + u1i -= Uinc2; + u2r += Uinc; + u2i -= Uinc; + + pstrt += 2; + + t0r = f4r + f5r * w0r - f5i * w0i; + t0i = f4i + f5r * w0i + f5i * w0r; + f5r = f4r * Two - t0r; + f5i = f4i * Two - t0i; + + t1r = f6r - f7r * w0r + f7i * w0i; + t1i = f6i - f7r * w0i - f7i * w0r; + f6r = f6r * Two - t1r; + f6i = f6i * Two - t1i; + + f4r = t0r + f6r * w1r - f6i * w1i; + f4i = t0i + f6r * w1i + f6i * w1r; + f6r = t0r * Two - f4r; + f6i = t0i * Two - f4i; + + f7r = f5r + t1r * w1i + t1i * w1r; + f7i = f5i - t1r * w1r + t1i * w1i; + f5r = f5r * Two - f7r; + f5i = f5i * Two - f7i; + + w0r = *u0r; + w0i = *u0i; + w1r = *u1r; + w1i = *u1i; + + if ((int) DiffUCnt <= NDiffU / 2) + w0r = -w0r; + + t0r = f0r - f4r * w2r + f4i * w2i; + t0i = f0i - f4r * w2i - f4i * w2r; + f0r = f0r * Two - t0r; + f0i = f0i * Two - t0i; + + f4r = f2r - f6r * w2i - f6i * w2r; + f4i = f2i + f6r * w2r - f6i * w2i; + f6r = f2r * Two - f4r; + f6i = f2i * Two - f4i; + + *(p0r + pos) = t0r; + *p2r = f4r; + *(p0r + posi) = t0i; + *(p2r + 1) = f4i; + w2r = *u2r; + w2i = *u2i; + *p0r = f0r; + *(p2r + pos) = f6r; + *(p0r + 1) = f0i; + *(p2r + posi) = f6i; + + p0r = pstrt; + p2r = pstrt + pinc + pinc; + + t1r = f1r - f5r * w3r + f5i * w3i; + t1i = f1i - f5r * w3i - f5i * w3r; + f1r = f1r * Two - t1r; + f1i = f1i * Two - t1i; + + f5r = f3r - f7r * w3i - f7i * w3r; + f5i = f3i + f7r * w3r - f7i * w3i; + f7r = f3r * Two - f5r; + f7i = f3i * Two - f5i; + + *(p1r + pos) = t1r; + *p3r = f5r; + *(p1r + posi) = t1i; + *(p3r + 1) = f5i; + w3r = *(u2r + U2toU3); + w3i = *(u2i - U2toU3); + *p1r = f1r; + *(p3r + pos) = f7r; + *(p1r + 1) = f1i; + *(p3r + posi) = f7i; + + p1r = pstrt + pinc; + p3r = p2r + pinc; + } + NSameU /= 8; + Uinc /= 8; + Uinc2 /= 8; + Uinc4 = Uinc * 4; + NDiffU *= 8; + pinc *= 8; + pnext *= 8; + pos *= 8; + posi = pos + 1; + } +} + +static void ifftrecurs(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int Ustride, + int NDiffU, int StageCnt) +{ + /* recursive bfstages calls to maximize on chip cache efficiency */ + int i1; + + if (M <= (int) MCACHE) + ibfstages(ioptr, M, Utbl, Ustride, NDiffU, StageCnt); /* RADIX 8 Stages */ + else + { + for (i1 = 0; i1 < 8; i1++) + { + ifftrecurs(&ioptr[i1 * POW2(M - 3) * 2], M - 3, Utbl, 8 * Ustride, + NDiffU, StageCnt - 1); /* RADIX 8 Stages */ + } + ibfstages(ioptr, M, Utbl, Ustride, POW2(M - 3), 1); /* RADIX 8 Stage */ + } +} + +#if 0 +static void iffts1(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int16_t * BRLow) +{ + /* Compute in-place inverse complex fft on the rows of the input array */ + /* INPUTS */ + /* *ioptr = input data array */ + /* M = log2 of fft size */ + /* *Utbl = cosine table */ + /* *BRLow = bit reversed counter table */ + /* OUTPUTS */ + /* *ioptr = output data array */ + + int StageCnt; + int NDiffU; + const SPFLOAT scale = 1.0 / POW2(M); + + switch (M) + { + case 0: + break; + case 1: + ifft2pt(ioptr, scale); /* a 2 pt fft */ + break; + case 2: + ifft4pt(ioptr, scale); /* a 4 pt fft */ + break; + case 3: + ifft8pt(ioptr, scale); /* an 8 pt fft */ + break; + default: + /* bit reverse and first radix 2 stage */ + scbitrevR2(ioptr, M, BRLow, scale); + StageCnt = (M - 1) / 3; /* number of radix 8 stages */ + NDiffU = 2; /* one radix 2 stage already complete */ + if ((M - 1 - (StageCnt * 3)) == 1) + { + ibfR2(ioptr, M, NDiffU); /* 1 radix 2 stage */ + NDiffU *= 2; + } + if ((M - 1 - (StageCnt * 3)) == 2) + { + ibfR4(ioptr, M, NDiffU); /* 1 radix 4 stage */ + NDiffU *= 4; + } + if (M <= (int) MCACHE) + ibfstages(ioptr, M, Utbl, 1, NDiffU, StageCnt); /* RADIX 8 Stages */ + else + ifftrecurs(ioptr, M, Utbl, 1, NDiffU, StageCnt); /* RADIX 8 Stages */ + } +} +#endif + +/****************** +* parts of rffts1 * +******************/ + +static void rfft1pt(SPFLOAT * ioptr) +{ + /*** RADIX 2 rfft ***/ + SPFLOAT f0r, f0i; + SPFLOAT t0r, t0i; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + + /* finish rfft */ + t0r = f0r + f0i; + t0i = f0r - f0i; + + /* store result */ + ioptr[0] = t0r; + ioptr[1] = t0i; +} + +static void rfft2pt(SPFLOAT * ioptr) +{ + /*** RADIX 4 rfft ***/ + SPFLOAT f0r, f0i, f1r, f1i; + SPFLOAT t0r, t0i; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[2]; + f1i = ioptr[3]; + + /* Butterflys */ + /* + f0 - - t0 + f1 - 1 - f1 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f1i - f0i; + /* finish rfft */ + f0r = t0r + t0i; + f0i = t0r - t0i; + + /* store result */ + ioptr[0] = f0r; + ioptr[1] = f0i; + ioptr[2] = f1r; + ioptr[3] = f1i; +} + +static void rfft4pt(SPFLOAT * ioptr) +{ + /*** RADIX 8 rfft ***/ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT t0r, t0i, t1r, t1i; + SPFLOAT w0r = 1.0 / MYROOT2; /* cos(pi/4) */ + const SPFLOAT Two = 2.0; + const SPFLOAT scale = 0.5; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[4]; + f1i = ioptr[5]; + f2r = ioptr[2]; + f2i = ioptr[3]; + f3r = ioptr[6]; + f3i = ioptr[7]; + + /* Butterflys */ + /* + f0 - - t0 - - f0 + f1 - 1 - f1 - - f1 + f2 - - f2 - 1 - f2 + f3 - 1 - t1 - -i - f3 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = f2i - t0i; /* neg for rfft */ + + f3r = f1r - t1i; + f3i = f1i + t1r; + f1r = f1r + t1i; + f1i = f1i - t1r; + + /* finish rfft */ + t0r = f0r + f0i; /* compute Re(x[0]) */ + t0i = f0r - f0i; /* compute Re(x[N/2]) */ + + t1r = f1r + f3r; + t1i = f1i - f3i; + f0r = f1i + f3i; + f0i = f3r - f1r; + + f1r = t1r + w0r * f0r + w0r * f0i; + f1i = t1i - w0r * f0r + w0r * f0i; + f3r = Two * t1r - f1r; + f3i = f1i - Two * t1i; + + /* store result */ + ioptr[4] = f2r; + ioptr[5] = f2i; + ioptr[0] = t0r; + ioptr[1] = t0i; + + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; + ioptr[6] = scale * f3r; + ioptr[7] = scale * f3i; +} + +static void rfft8pt(SPFLOAT * ioptr) +{ + /*** RADIX 16 rfft ***/ + SPFLOAT w0r = 1.0 / MYROOT2; /* cos(pi/4) */ + SPFLOAT w1r = MYCOSPID8; /* cos(pi/8) */ + SPFLOAT w1i = MYSINPID8; /* sin(pi/8) */ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + const SPFLOAT scale = 0.5; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + f1r = ioptr[8]; + f1i = ioptr[9]; + f2r = ioptr[4]; + f2i = ioptr[5]; + f3r = ioptr[12]; + f3i = ioptr[13]; + f4r = ioptr[2]; + f4i = ioptr[3]; + f5r = ioptr[10]; + f5i = ioptr[11]; + f6r = ioptr[6]; + f6i = ioptr[7]; + f7r = ioptr[14]; + f7i = ioptr[15]; + /* Butterflys */ + /* + f0 - - t0 - - f0 - - f0 + f1 - 1 - f1 - - f1 - - f1 + f2 - - f2 - 1 - f2 - - f2 + f3 - 1 - t1 - -i - f3 - - f3 + f4 - - t0 - - f4 - 1 - t0 + f5 - 1 - f5 - - f5 - w3 - f4 + f6 - - f6 - 1 - f6 - -i - t1 + f7 - 1 - t1 - -i - f7 - iw3- f6 + */ + + t0r = f0r + f1r; + t0i = f0i + f1i; + f1r = f0r - f1r; + f1i = f0i - f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = t0i - f2i; + + f3r = f1r - t1i; + f3i = f1i + t1r; + f1r = f1r + t1i; + f1i = f1i - t1r; + + t0r = f4r + f5r; + t0i = f4i + f5i; + f5r = f4r - f5r; + f5i = f4i - f5i; + + t1r = f6r - f7r; + t1i = f6i - f7i; + f6r = f6r + f7r; + f6i = f6i + f7i; + + f4r = t0r + f6r; + f4i = t0i + f6i; + f6r = t0r - f6r; + f6i = t0i - f6i; + + f7r = f5r - t1i; + f7i = f5i + t1r; + f5r = f5r + t1i; + f5i = f5i - t1r; + + t0r = f0r - f4r; + t0i = f4i - f0i; /* neg for rfft */ + f0r = f0r + f4r; + f0i = f0i + f4i; + + t1r = f2r - f6i; + t1i = f2i + f6r; + f2r = f2r + f6i; + f2i = f2i - f6r; + + f4r = f1r - f5r * w0r - f5i * w0r; + f4i = f1i + f5r * w0r - f5i * w0r; + f1r = f1r * Two - f4r; + f1i = f1i * Two - f4i; + + f6r = f3r + f7r * w0r - f7i * w0r; + f6i = f3i + f7r * w0r + f7i * w0r; + f3r = f3r * Two - f6r; + f3i = f3i * Two - f6i; + + /* finish rfft */ + f5r = f0r + f0i; /* compute Re(x[0]) */ + f5i = f0r - f0i; /* compute Re(x[N/2]) */ + + f0r = f2r + t1r; + f0i = f2i - t1i; + f7r = f2i + t1i; + f7i = t1r - f2r; + + f2r = f0r + w0r * f7r + w0r * f7i; + f2i = f0i - w0r * f7r + w0r * f7i; + t1r = Two * f0r - f2r; + t1i = f2i - Two * f0i; + + f0r = f1r + f6r; + f0i = f1i - f6i; + f7r = f1i + f6i; + f7i = f6r - f1r; + + f1r = f0r + w1r * f7r + w1i * f7i; + f1i = f0i - w1i * f7r + w1r * f7i; + f6r = Two * f0r - f1r; + f6i = f1i - Two * f0i; + + f0r = f3r + f4r; + f0i = f3i - f4i; + f7r = f3i + f4i; + f7i = f4r - f3r; + + f3r = f0r + w1i * f7r + w1r * f7i; + f3i = f0i - w1r * f7r + w1i * f7i; + f4r = Two * f0r - f3r; + f4i = f3i - Two * f0i; + + /* store result */ + ioptr[8] = t0r; + ioptr[9] = t0i; + ioptr[0] = f5r; + ioptr[1] = f5i; + + ioptr[4] = scale * f2r; + ioptr[5] = scale * f2i; + ioptr[12] = scale * t1r; + ioptr[13] = scale * t1i; + + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; + ioptr[6] = scale * f3r; + ioptr[7] = scale * f3i; + ioptr[10] = scale * f4r; + ioptr[11] = scale * f4i; + ioptr[14] = scale * f6r; + ioptr[15] = scale * f6i; +} + +static void frstage(SPFLOAT * ioptr, int M, SPFLOAT * Utbl) +{ + /* Finish RFFT */ + + unsigned int pos; + unsigned int posi; + unsigned int diffUcnt; + + SPFLOAT *p0r, *p1r; + SPFLOAT *u0r, *u0i; + + SPFLOAT w0r, w0i; + SPFLOAT f0r, f0i, f1r, f1i, f4r, f4i, f5r, f5i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + + pos = POW2(M - 1); + posi = pos + 1; + + p0r = ioptr; + p1r = ioptr + pos / 2; + + u0r = Utbl + POW2(M - 3); + + w0r = *u0r; + f0r = *(p0r); + f0i = *(p0r + 1); + f4r = *(p0r + pos); + f4i = *(p0r + posi); + f1r = *(p1r); + f1i = *(p1r + 1); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + + t0r = Two * f0r + Two * f0i; /* compute Re(x[0]) */ + t0i = Two * f0r - Two * f0i; /* compute Re(x[N/2]) */ + t1r = f4r + f4r; + t1i = -f4i - f4i; + + f0r = f1r + f5r; + f0i = f1i - f5i; + f4r = f1i + f5i; + f4i = f5r - f1r; + + f1r = f0r + w0r * f4r + w0r * f4i; + f1i = f0i - w0r * f4r + w0r * f4i; + f5r = Two * f0r - f1r; + f5i = f1i - Two * f0i; + + *(p0r) = t0r; + *(p0r + 1) = t0i; + *(p0r + pos) = t1r; + *(p0r + posi) = t1i; + *(p1r) = f1r; + *(p1r + 1) = f1i; + *(p1r + pos) = f5r; + *(p1r + posi) = f5i; + + u0r = Utbl + 1; + u0i = Utbl + (POW2(M - 2) - 1); + + w0r = *u0r; + w0i = *u0i; + + p0r = (ioptr + 2); + p1r = (ioptr + (POW2(M - 2) - 1) * 2); + + /* Butterflys */ + /* + f0 - t0 - - f0 + f5 - t1 - w0 - f5 + + f1 - t0 - - f1 + f4 - t1 -iw0 - f4 + */ + + for (diffUcnt = POW2(M - 3) - 1; diffUcnt > 0; diffUcnt--) + { + + f0r = *(p0r); + f0i = *(p0r + 1); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + f1r = *(p1r); + f1i = *(p1r + 1); + f4r = *(p0r + pos); + f4i = *(p0r + posi); + + t0r = f0r + f5r; + t0i = f0i - f5i; + t1r = f0i + f5i; + t1i = f5r - f0r; + + f0r = t0r + w0r * t1r + w0i * t1i; + f0i = t0i - w0i * t1r + w0r * t1i; + f5r = Two * t0r - f0r; + f5i = f0i - Two * t0i; + + t0r = f1r + f4r; + t0i = f1i - f4i; + t1r = f1i + f4i; + t1i = f4r - f1r; + + f1r = t0r + w0i * t1r + w0r * t1i; + f1i = t0i - w0r * t1r + w0i * t1i; + f4r = Two * t0r - f1r; + f4i = f1i - Two * t0i; + + *(p0r) = f0r; + *(p0r + 1) = f0i; + *(p1r + pos) = f5r; + *(p1r + posi) = f5i; + + w0r = *++u0r; + w0i = *--u0i; + + *(p1r) = f1r; + *(p1r + 1) = f1i; + *(p0r + pos) = f4r; + *(p0r + posi) = f4i; + + p0r += 2; + p1r -= 2; + } +} + +static void rffts1(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int16_t * BRLow) +{ + /* Compute in-place real fft on the rows of the input array */ + /* The result is the complex spectra of the positive frequencies */ + /* except the location for the first complex number contains the real */ + /* values for DC and Nyquest */ + /* INPUTS */ + /* *ioptr = real input data array */ + /* M = log2 of fft size */ + /* *Utbl = cosine table */ + /* *BRLow = bit reversed counter table */ + /* OUTPUTS */ + /* *ioptr = output data array in the following order */ + /* Re(x[0]), Re(x[N/2]), Re(x[1]), Im(x[1]), Re(x[2]), Im(x[2]), */ + /* ... Re(x[N/2-1]), Im(x[N/2-1]). */ + + SPFLOAT scale; + int StageCnt; + int NDiffU; + + M = M - 1; + switch (M) + { + case -1: + break; + case 0: + rfft1pt(ioptr); /* a 2 pt fft */ + break; + case 1: + rfft2pt(ioptr); /* a 4 pt fft */ + break; + case 2: + rfft4pt(ioptr); /* an 8 pt fft */ + break; + case 3: + rfft8pt(ioptr); /* a 16 pt fft */ + break; + default: + scale = 0.5; + /* bit reverse and first radix 2 stage */ + scbitrevR2(ioptr, M, BRLow, scale); + StageCnt = (M - 1) / 3; /* number of radix 8 stages */ + NDiffU = 2; /* one radix 2 stage already complete */ + if ((M - 1 - (StageCnt * 3)) == 1) + { + bfR2(ioptr, M, NDiffU); /* 1 radix 2 stage */ + NDiffU *= 2; + } + if ((M - 1 - (StageCnt * 3)) == 2) + { + bfR4(ioptr, M, NDiffU); /* 1 radix 4 stage */ + NDiffU *= 4; + } + if (M <= (int) MCACHE) + bfstages(ioptr, M, Utbl, 2, NDiffU, StageCnt); /* RADIX 8 Stages */ + else + fftrecurs(ioptr, M, Utbl, 2, NDiffU, StageCnt); /* RADIX 8 Stages */ + frstage(ioptr, M + 1, Utbl); + } +} + +/******************* +* parts of riffts1 * +*******************/ + +static void rifft1pt(SPFLOAT * ioptr, SPFLOAT scale) +{ + /*** RADIX 2 rifft ***/ + SPFLOAT f0r, f0i; + SPFLOAT t0r, t0i; + + /* bit reversed load */ + f0r = ioptr[0]; + f0i = ioptr[1]; + + /* finish rfft */ + t0r = f0r + f0i; + t0i = f0r - f0i; + + /* store result */ + ioptr[0] = scale * t0r; + ioptr[1] = scale * t0i; +} + +static void rifft2pt(SPFLOAT * ioptr, SPFLOAT scale) +{ + /*** RADIX 4 rifft ***/ + SPFLOAT f0r, f0i, f1r, f1i; + SPFLOAT t0r, t0i; + const SPFLOAT Two = 2.0; + + /* bit reversed load */ + t0r = ioptr[0]; + t0i = ioptr[1]; + f1r = Two * ioptr[2]; + f1i = Two * ioptr[3]; + + /* start rifft */ + f0r = t0r + t0i; + f0i = t0r - t0i; + /* Butterflys */ + /* + f0 - - t0 + f1 - 1 - f1 + */ + + t0r = f0r + f1r; + t0i = f0i - f1i; + f1r = f0r - f1r; + f1i = f0i + f1i; + + /* store result */ + ioptr[0] = scale * t0r; + ioptr[1] = scale * t0i; + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; +} + +static void rifft4pt(SPFLOAT * ioptr, SPFLOAT scale) +{ + /*** RADIX 8 rifft ***/ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT t0r, t0i, t1r, t1i; + SPFLOAT w0r = 1.0 / MYROOT2; /* cos(pi/4) */ + const SPFLOAT Two = 2.0; + + /* bit reversed load */ + t0r = ioptr[0]; + t0i = ioptr[1]; + f2r = ioptr[2]; + f2i = ioptr[3]; + f1r = Two * ioptr[4]; + f1i = Two * ioptr[5]; + f3r = ioptr[6]; + f3i = ioptr[7]; + + /* start rfft */ + f0r = t0r + t0i; /* compute Re(x[0]) */ + f0i = t0r - t0i; /* compute Re(x[N/2]) */ + + t1r = f2r + f3r; + t1i = f2i - f3i; + t0r = f2r - f3r; + t0i = f2i + f3i; + + f2r = t1r - w0r * t0r - w0r * t0i; + f2i = t1i + w0r * t0r - w0r * t0i; + f3r = Two * t1r - f2r; + f3i = f2i - Two * t1i; + + /* Butterflys */ + /* + f0 - - t0 - - f0 + f1 - 1 - f1 - - f1 + f2 - - f2 - 1 - f2 + f3 - 1 - t1 - i - f3 + */ + + t0r = f0r + f1r; + t0i = f0i - f1i; + f1r = f0r - f1r; + f1i = f0i + f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = t0i - f2i; + + f3r = f1r + t1i; + f3i = f1i - t1r; + f1r = f1r - t1i; + f1i = f1i + t1r; + + /* store result */ + ioptr[0] = scale * f0r; + ioptr[1] = scale * f0i; + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; + ioptr[4] = scale * f2r; + ioptr[5] = scale * f2i; + ioptr[6] = scale * f3r; + ioptr[7] = scale * f3i; +} + +static void rifft8pt(SPFLOAT * ioptr, SPFLOAT scale) +{ + /*** RADIX 16 rifft ***/ + SPFLOAT w0r = (SPFLOAT)(1.0 / MYROOT2); /* cos(pi/4) */ + SPFLOAT w1r = MYCOSPID8; /* cos(pi/8) */ + SPFLOAT w1i = MYSINPID8; /* sin(pi/8) */ + SPFLOAT f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i; + SPFLOAT f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + + /* bit reversed load */ + t0r = ioptr[0]; + t0i = ioptr[1]; + f4r = ioptr[2]; + f4i = ioptr[3]; + f2r = ioptr[4]; + f2i = ioptr[5]; + f6r = ioptr[6]; + f6i = ioptr[7]; + f1r = Two * ioptr[8]; + f1i = Two * ioptr[9]; + f5r = ioptr[10]; + f5i = ioptr[11]; + f3r = ioptr[12]; + f3i = ioptr[13]; + f7r = ioptr[14]; + f7i = ioptr[15]; + + /* start rfft */ + f0r = t0r + t0i; /* compute Re(x[0]) */ + f0i = t0r - t0i; /* compute Re(x[N/2]) */ + + t0r = f2r + f3r; + t0i = f2i - f3i; + t1r = f2r - f3r; + t1i = f2i + f3i; + + f2r = t0r - w0r * t1r - w0r * t1i; + f2i = t0i + w0r * t1r - w0r * t1i; + f3r = Two * t0r - f2r; + f3i = f2i - Two * t0i; + + t0r = f4r + f7r; + t0i = f4i - f7i; + t1r = f4r - f7r; + t1i = f4i + f7i; + + f4r = t0r - w1i * t1r - w1r * t1i; + f4i = t0i + w1r * t1r - w1i * t1i; + f7r = Two * t0r - f4r; + f7i = f4i - Two * t0i; + + t0r = f6r + f5r; + t0i = f6i - f5i; + t1r = f6r - f5r; + t1i = f6i + f5i; + + f6r = t0r - w1r * t1r - w1i * t1i; + f6i = t0i + w1i * t1r - w1r * t1i; + f5r = Two * t0r - f6r; + f5i = f6i - Two * t0i; + + /* Butterflys */ + /* + f0 - - t0 - - f0 - - f0 + f1* - 1 - f1 - - f1 - - f1 + f2 - - f2 - 1 - f2 - - f2 + f3 - 1 - t1 - i - f3 - - f3 + f4 - - t0 - - f4 - 1 - t0 + f5 - 1 - f5 - - f5 - w3 - f4 + f6 - - f6 - 1 - f6 - i - t1 + f7 - 1 - t1 - i - f7 - iw3- f6 + */ + + t0r = f0r + f1r; + t0i = f0i - f1i; + f1r = f0r - f1r; + f1i = f0i + f1i; + + t1r = f2r - f3r; + t1i = f2i - f3i; + f2r = f2r + f3r; + f2i = f2i + f3i; + + f0r = t0r + f2r; + f0i = t0i + f2i; + f2r = t0r - f2r; + f2i = t0i - f2i; + + f3r = f1r + t1i; + f3i = f1i - t1r; + f1r = f1r - t1i; + f1i = f1i + t1r; + + t0r = f4r + f5r; + t0i = f4i + f5i; + f5r = f4r - f5r; + f5i = f4i - f5i; + + t1r = f6r - f7r; + t1i = f6i - f7i; + f6r = f6r + f7r; + f6i = f6i + f7i; + + f4r = t0r + f6r; + f4i = t0i + f6i; + f6r = t0r - f6r; + f6i = t0i - f6i; + + f7r = f5r + t1i; + f7i = f5i - t1r; + f5r = f5r - t1i; + f5i = f5i + t1r; + + t0r = f0r - f4r; + t0i = f0i - f4i; + f0r = f0r + f4r; + f0i = f0i + f4i; + + t1r = f2r + f6i; + t1i = f2i - f6r; + f2r = f2r - f6i; + f2i = f2i + f6r; + + f4r = f1r - f5r * w0r + f5i * w0r; + f4i = f1i - f5r * w0r - f5i * w0r; + f1r = f1r * Two - f4r; + f1i = f1i * Two - f4i; + + f6r = f3r + f7r * w0r + f7i * w0r; + f6i = f3i - f7r * w0r + f7i * w0r; + f3r = f3r * Two - f6r; + f3i = f3i * Two - f6i; + + /* store result */ + ioptr[0] = scale * f0r; + ioptr[1] = scale * f0i; + ioptr[2] = scale * f1r; + ioptr[3] = scale * f1i; + ioptr[4] = scale * f2r; + ioptr[5] = scale * f2i; + ioptr[6] = scale * f3r; + ioptr[7] = scale * f3i; + ioptr[8] = scale * t0r; + ioptr[9] = scale * t0i; + ioptr[10] = scale * f4r; + ioptr[11] = scale * f4i; + ioptr[12] = scale * t1r; + ioptr[13] = scale * t1i; + ioptr[14] = scale * f6r; + ioptr[15] = scale * f6i; +} + +static void ifrstage(SPFLOAT * ioptr, int M, SPFLOAT * Utbl) +{ + /* Start RIFFT */ + + unsigned int pos; + unsigned int posi; + unsigned int diffUcnt; + + SPFLOAT *p0r, *p1r; + SPFLOAT *u0r, *u0i; + + SPFLOAT w0r, w0i; + SPFLOAT f0r, f0i, f1r, f1i, f4r, f4i, f5r, f5i; + SPFLOAT t0r, t0i, t1r, t1i; + const SPFLOAT Two = 2.0; + + pos = POW2(M - 1); + posi = pos + 1; + + p0r = ioptr; + p1r = ioptr + pos / 2; + + u0r = Utbl + POW2(M - 3); + + w0r = *u0r; + f0r = *(p0r); + f0i = *(p0r + 1); + f4r = *(p0r + pos); + f4i = *(p0r + posi); + f1r = *(p1r); + f1i = *(p1r + 1); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + + t0r = f0r + f0i; + t0i = f0r - f0i; + t1r = f4r + f4r; + t1i = -f4i - f4i; + + f0r = f1r + f5r; + f0i = f1i - f5i; + f4r = f1r - f5r; + f4i = f1i + f5i; + + f1r = f0r - w0r * f4r - w0r * f4i; + f1i = f0i + w0r * f4r - w0r * f4i; + f5r = Two * f0r - f1r; + f5i = f1i - Two * f0i; + + *(p0r) = t0r; + *(p0r + 1) = t0i; + *(p0r + pos) = t1r; + *(p0r + posi) = t1i; + *(p1r) = f1r; + *(p1r + 1) = f1i; + *(p1r + pos) = f5r; + *(p1r + posi) = f5i; + + u0r = Utbl + 1; + u0i = Utbl + (POW2(M - 2) - 1); + + w0r = *u0r; + w0i = *u0i; + + p0r = (ioptr + 2); + p1r = (ioptr + (POW2(M - 2) - 1) * 2); + + /* Butterflys */ + /* + f0 - t0 - f0 + f1 - t1 -w0- f1 + + f2 - t0 - f2 + f3 - t1 -iw0- f3 + */ + + for (diffUcnt = POW2(M - 3) - 1; diffUcnt > 0; diffUcnt--) + { + + f0r = *(p0r); + f0i = *(p0r + 1); + f5r = *(p1r + pos); + f5i = *(p1r + posi); + f1r = *(p1r); + f1i = *(p1r + 1); + f4r = *(p0r + pos); + f4i = *(p0r + posi); + + t0r = f0r + f5r; + t0i = f0i - f5i; + t1r = f0r - f5r; + t1i = f0i + f5i; + + f0r = t0r - w0i * t1r - w0r * t1i; + f0i = t0i + w0r * t1r - w0i * t1i; + f5r = Two * t0r - f0r; + f5i = f0i - Two * t0i; + + t0r = f1r + f4r; + t0i = f1i - f4i; + t1r = f1r - f4r; + t1i = f1i + f4i; + + f1r = t0r - w0r * t1r - w0i * t1i; + f1i = t0i + w0i * t1r - w0r * t1i; + f4r = Two * t0r - f1r; + f4i = f1i - Two * t0i; + + *(p0r) = f0r; + *(p0r + 1) = f0i; + *(p1r + pos) = f5r; + *(p1r + posi) = f5i; + + w0r = *++u0r; + w0i = *--u0i; + + *(p1r) = f1r; + *(p1r + 1) = f1i; + *(p0r + pos) = f4r; + *(p0r + posi) = f4i; + + p0r += 2; + p1r -= 2; + } +} + +static void riffts1(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int16_t * BRLow) +{ + /* Compute in-place real ifft on the rows of the input array */ + /* data order as from rffts1 */ + /* INPUTS */ + /* *ioptr = input data array in the following order */ + /* M = log2 of fft size */ + /* Re(x[0]), Re(x[N/2]), Re(x[1]), Im(x[1]), */ + /* Re(x[2]), Im(x[2]), ... Re(x[N/2-1]), Im(x[N/2-1]). */ + /* *Utbl = cosine table */ + /* *BRLow = bit reversed counter table */ + /* OUTPUTS */ + /* *ioptr = real output data array */ + + SPFLOAT scale; + int StageCnt; + int NDiffU; + + scale = (SPFLOAT)(1.0 / (double) ((int) POW2(M))); + M = M - 1; + switch (M) + { + case -1: + break; + case 0: + rifft1pt(ioptr, scale); /* a 2 pt fft */ + break; + case 1: + rifft2pt(ioptr, scale); /* a 4 pt fft */ + break; + case 2: + rifft4pt(ioptr, scale); /* an 8 pt fft */ + break; + case 3: + rifft8pt(ioptr, scale); /* a 16 pt fft */ + break; + default: + ifrstage(ioptr, M + 1, Utbl); + /* bit reverse and first radix 2 stage */ + scbitrevR2(ioptr, M, BRLow, scale); + StageCnt = (M - 1) / 3; /* number of radix 8 stages */ + NDiffU = 2; /* one radix 2 stage already complete */ + if ((M - 1 - (StageCnt * 3)) == 1) + { + ibfR2(ioptr, M, NDiffU); /* 1 radix 2 stage */ + NDiffU *= 2; + } + if ((M - 1 - (StageCnt * 3)) == 2) + { + ibfR4(ioptr, M, NDiffU); /* 1 radix 4 stage */ + NDiffU *= 4; + } + if (M <= (int) MCACHE) + ibfstages(ioptr, M, Utbl, 2, NDiffU, StageCnt); /* RADIX 8 Stages */ + else + ifftrecurs(ioptr, M, Utbl, 2, NDiffU, StageCnt); /* RADIX 8 Stages */ + } +} + +void sp_fft_init(sp_fft * fft, int M) +{ + SPFLOAT * utbl; + int16_t * BRLow; + int16_t * BRLowCpx; + + /* init cos table */ + utbl = (SPFLOAT *) malloc((POW2(M) / 4 + 1) * sizeof(SPFLOAT)); + fftCosInit(M, utbl); + + BRLowCpx = (int16_t *) malloc(POW2(M / 2 - 1) * sizeof(int16_t)); + fftBRInit(M, BRLowCpx); + + /* init bit reversed table for real FFT */ + BRLow = (int16_t *) malloc(POW2((M - 1) / 2 - 1) * sizeof(int16_t)); + fftBRInit(M - 1, BRLow); + + fft->BRLow = BRLow; + fft->BRLowCpx = BRLowCpx; + fft->utbl = utbl; +} + +void sp_fftr(sp_fft * fft, SPFLOAT * buf, int FFTsize) +{ + int M = log2(FFTsize); + rffts1(buf, M, fft->utbl, fft->BRLow); +} + +void sp_ifftr(sp_fft * fft, SPFLOAT * buf, int FFTsize) +{ + int M = log2(FFTsize); + riffts1(buf, M, fft->utbl, fft->BRLow); +} + +void sp_fft_destroy(sp_fft * fft) +{ + free(fft->utbl); + free(fft->BRLow); + free(fft->BRLowCpx); +} + +} // lab diff --git a/sources/LabSound/src/extended/ADSRNode.cpp b/sources/LabSound/src/extended/ADSRNode.cpp new file mode 100644 index 00000000..d8d2b5ee --- /dev/null +++ b/sources/LabSound/src/extended/ADSRNode.cpp @@ -0,0 +1,281 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/extended/ADSRNode.h" +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioProcessor.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/extended/Registry.h" + +#include "internal/VectorMath.h" + +#include +#include + +using namespace lab; + +namespace lab +{ + /////////////////////////////////////////// + // ADSRNode::ADSRNodeImpl Implementation // + /////////////////////////////////////////// + + class ADSRNode::ADSRNodeImpl : public lab::AudioProcessor + { + public: + float cached_sample_rate; + struct LerpTarget { float t, dvdt; }; + std:: deque _lerp; + + ADSRNodeImpl() : AudioProcessor() + { + envelope.reserve(AudioNode::ProcessingSizeInFrames * 4); + + m_gate = std::make_shared("gate", "GATE", 0, 0, 1); + + m_oneShot = std::make_shared("oneShot", "ONE!", AudioSetting::Type::Bool); + m_oneShot->setBool(true); + + m_attackTime = std::make_shared("attackTime", "ATKT", AudioSetting::Type::Float); + m_attackTime->setFloat(1.125f); // 125ms + + m_attackLevel = std::make_shared("attackLevel", "ATKL", AudioSetting::Type::Float); + m_attackLevel->setFloat(1.0f); // 1.0f + + m_decayTime = std::make_shared("decayTime", "DCYT", AudioSetting::Type::Float); + m_decayTime->setFloat(0.125f); // 125ms + + m_sustainTime = std::make_shared("sustainTime", "SUST", AudioSetting::Type::Float); + m_sustainTime->setFloat(0.125f); // 125ms + + m_sustainLevel = std::make_shared("sustainLevel", "SUSL", AudioSetting::Type::Float); + m_sustainLevel->setFloat(0.5f); // 0.5f + + m_releaseTime = std::make_shared("ReleaseTime", "RELT", AudioSetting::Type::Float); + m_releaseTime->setFloat(0.125f); // 125ms + } + + virtual ~ADSRNodeImpl() {} + + virtual void initialize() override { } + virtual void uninitialize() override { } + + // Processes the source to destination bus. The number of channels must match in source and destination. + virtual void process(ContextRenderLock & r, const lab::AudioBus * sourceBus, lab::AudioBus* destinationBus, int framesToProcess) override + { + using std::deque; + + if (!destinationBus->numberOfChannels()) + return; + + if (!sourceBus->numberOfChannels()) + { + destinationBus->zero(); + return; + } + + if (framesToProcess != _gateArray.size()) + _gateArray.resize(framesToProcess); + if (envelope.size() != framesToProcess) + envelope.resize(framesToProcess); + + // scan the gate signal + const bool gate_is_connected = m_gate->hasSampleAccurateValues(); + if (gate_is_connected) + { + m_gate->calculateSampleAccurateValues(r, _gateArray.data(), framesToProcess); + + // threshold the gate to on or off + for (int i = 0; i < framesToProcess; ++i) + _gateArray[i] = _gateArray[i] > 0 ? 1.f : 0.f; + } + else + { + float g = m_gate->value(); + // threshold the gate to on or off + for (int i = 0; i < framesToProcess; ++i) + _gateArray[i] = g > 0 ? 1.f : 0.f; + } + + bool oneshot = m_oneShot->valueBool(); // false mains gate controls AS, otherwise, sustain param controls S + + cached_sample_rate = r.context()->sampleRate(); + for (int i = 0; i < framesToProcess; ++i) + { + if (_currentGate == 0 && _gateArray[i] > 0) + { + // attack begin + _currentGate = 1; + _lerp.clear(); // forget all previous lerps + float attackLevel = m_attackLevel->valueFloat(); + float attackDelta = m_attackLevel->valueFloat() - currentEnvelope; + float attackRatio = attackDelta / attackLevel; + float attackSteps = m_attackTime->valueFloat() * attackRatio * cached_sample_rate; + float attackStepSize = attackDelta / attackSteps; + + _lerp.emplace_back(LerpTarget{ attackSteps, attackStepSize }); + + float sustainLevel = m_sustainLevel->valueFloat(); + float decaySteps = m_decayTime->valueFloat() * cached_sample_rate; + float decayStepSize = (sustainLevel - attackLevel) / decaySteps; + _lerp.emplace_back(LerpTarget{ decaySteps, decayStepSize }); + + if (!gate_is_connected || oneshot) + { + // if the gate is not connected, automate the sustain and release. + float sustainSteps = m_sustainTime->valueFloat() * cached_sample_rate; + _lerp.emplace_back(LerpTarget{ sustainSteps, 0.f }); + float releaseSteps = m_releaseTime->valueFloat() * cached_sample_rate; + _lerp.emplace_back(LerpTarget{ releaseSteps, -sustainLevel / releaseSteps }); + } + envelope[i] = currentEnvelope; + } + else if (_currentGate > 0 && _gateArray[i] == 0) + { + // release begin + _currentGate = 0; + _lerp.clear(); // forget all previous lerps + float releaseSteps = m_releaseTime->valueFloat() * cached_sample_rate; + _lerp.emplace_back(LerpTarget{ releaseSteps, -currentEnvelope / releaseSteps }); + envelope[i] = currentEnvelope; + } + else + { + bool assigned = false; + while (_lerp.size()) + { + LerpTarget& front = _lerp.front(); + if (front.t > 0) + { + currentEnvelope += front.dvdt; + envelope[i] = currentEnvelope; + front.t -= 1.f; + assigned = true; + break; + } + else + _lerp.pop_front(); + } + if (!assigned) + envelope[i] = currentEnvelope; + } + } + + destinationBus->copyWithSampleAccurateGainValuesFrom(*sourceBus, envelope.data(), framesToProcess); + } + + virtual void reset() override { } + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + float _currentGate{ 0.0 }; + + float currentEnvelope{ 0.f }; + std::vector envelope; + + std::vector _gateArray; + + std::shared_ptr m_gate; + + std::shared_ptr m_oneShot; + std::shared_ptr m_attackTime; + std::shared_ptr m_attackLevel; + std::shared_ptr m_decayTime; + std::shared_ptr m_sustainTime; + std::shared_ptr m_sustainLevel; + std::shared_ptr m_releaseTime; + }; + + ///////////////////// + // Public ADSRNode // + ///////////////////// + + ADSRNode::ADSRNode(AudioContext& ac) + : AudioNode(ac), adsr_impl(new ADSRNodeImpl) + { + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + + m_params.push_back(adsr_impl->m_gate); + m_settings.push_back(adsr_impl->m_oneShot); + m_settings.push_back(adsr_impl->m_attackTime); + m_settings.push_back(adsr_impl->m_attackLevel); + m_settings.push_back(adsr_impl->m_decayTime); + m_settings.push_back(adsr_impl->m_sustainLevel); + m_settings.push_back(adsr_impl->m_sustainTime); + m_settings.push_back(adsr_impl->m_releaseTime); + + initialize(); + } + + ADSRNode::~ADSRNode() + { + uninitialize(); + delete adsr_impl; + } + + std::shared_ptr ADSRNode::gate() const + { + return adsr_impl->m_gate; + } + + void ADSRNode::set(float attack_time, float attack_level, float decay_time, float sustain_time, float sustain_level, float release_time) + { + adsr_impl->m_attackTime->setFloat(attack_time); + adsr_impl->m_attackLevel->setFloat(attack_level); + adsr_impl->m_decayTime->setFloat(decay_time); + adsr_impl->m_sustainTime->setFloat(sustain_time); + adsr_impl->m_sustainLevel->setFloat(sustain_level); + adsr_impl->m_releaseTime->setFloat(release_time); + } + + // clang-format off + std::shared_ptr ADSRNode::oneShot() const { return adsr_impl->m_oneShot; } + std::shared_ptr ADSRNode::attackTime() const { return adsr_impl->m_attackTime; } + std::shared_ptr ADSRNode::attackLevel() const { return adsr_impl->m_attackLevel; } + std::shared_ptr ADSRNode::decayTime() const { return adsr_impl->m_decayTime; } + std::shared_ptr ADSRNode::sustainTime() const { return adsr_impl->m_sustainTime; } + std::shared_ptr ADSRNode::sustainLevel() const { return adsr_impl->m_sustainLevel; } + std::shared_ptr ADSRNode::releaseTime() const { return adsr_impl->m_releaseTime; } + //clang-format on + + bool ADSRNode::finished(ContextRenderLock& r) + { + if (!r.context()) + return true; + + double now = r.context()->currentTime(); + return adsr_impl->_lerp.size() > 0; + } + + void ADSRNode::process(ContextRenderLock& r, int bufferSize) + { + AudioBus* destinationBus = output(0)->bus(r); + AudioBus* sourceBus = input(0)->bus(r); + if (!isInitialized() || !input(0)->isConnected()) + { + destinationBus->zero(); + return; + } + + int numberOfInputChannels = input(0)->numberOfChannels(r); + if (numberOfInputChannels != output(0)->numberOfChannels()) + { + output(0)->setNumberOfChannels(r, numberOfInputChannels); + destinationBus = output(0)->bus(r); + } + + // process entire buffer + adsr_impl->process(r, sourceBus, destinationBus, bufferSize); + } + + void ADSRNode::reset(ContextRenderLock&) + { + gate()->setValue(0.f); + } + + +} // End namespace lab diff --git a/sources/LabSound/src/extended/AudioFileReader.cpp b/sources/LabSound/src/extended/AudioFileReader.cpp new file mode 100644 index 00000000..f3b84196 --- /dev/null +++ b/sources/LabSound/src/extended/AudioFileReader.cpp @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/Assertions.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/Mixing.h" + +#include "LabSound/extended/AudioFileReader.h" + +#include "libnyquist/Decoders.h" + +#include +#include + +namespace detail +{ +std::shared_ptr LoadInternal(nqr::AudioData * audioData, bool mixToMono) +{ + int numSamples = static_cast(audioData->samples.size()); + if (!numSamples) return nullptr; + + int length = int(numSamples / audioData->channelCount); + const int busChannelCount = mixToMono ? 1 : (audioData->channelCount); + + std::vector planarSamples(numSamples); + + // Create AudioBus where we'll put the PCM audio data + std::shared_ptr audioBus(new lab::AudioBus(busChannelCount, length)); + audioBus->setSampleRate((float) audioData->sampleRate); + + // Deinterleave stereo into LabSound/WebAudio planar channel layout + nqr::DeinterleaveChannels(audioData->samples.data(), planarSamples.data(), length, audioData->channelCount, length); + + // Mix to mono if stereo -- easier to do in place instead of using libnyquist helper functions + // because we've already deinterleaved + if (audioData->channelCount == lab::Channels::Stereo && mixToMono) + { + float * destinationMono = audioBus->channel(0)->mutableData(); + float * leftSamples = planarSamples.data(); + float * rightSamples = planarSamples.data() + length; + + for (int i = 0; i < length; i++) + { + destinationMono[i] = 0.5f * (leftSamples[i] + rightSamples[i]); + } + } + else + { + for (int i = 0; i < busChannelCount; ++i) + { + std::memcpy(audioBus->channel(i)->mutableData(), planarSamples.data() + (i * length), length * sizeof(float)); + } + } + + delete audioData; + + return audioBus; +} +} + +namespace lab +{ + +nqr::NyquistIO nyquist_io; +std::mutex g_fileIOMutex; + +std::shared_ptr MakeBusFromFile(const char * filePath, bool mixToMono) +{ + std::lock_guard lock(g_fileIOMutex); + nqr::AudioData * audioData = new nqr::AudioData(); + try + { + nyquist_io.Load(audioData, std::string(filePath)); + } + catch (...) + { + // use empty pointer as load failure sentinel + /// @TODO report loading error + return {}; + } + + return detail::LoadInternal(audioData, mixToMono); +} + +std::shared_ptr MakeBusFromFile(const std::string & path, bool mixToMono) +{ + return MakeBusFromFile(path.c_str(), mixToMono); +} + +std::shared_ptr MakeBusFromFile(const char * filePath, bool mixToMono, float targetSampleRate) +{ + auto bus = MakeBusFromFile(filePath, false); + if (bus) + { + return AudioBus::createBySampleRateConverting(bus.get(), mixToMono, targetSampleRate); + } + return bus; +} + +std::shared_ptr MakeBusFromFile(const std::string & path, bool mixToMono, float targetSampleRate) +{ + return MakeBusFromFile(path.c_str(), mixToMono, targetSampleRate); +} + + +std::shared_ptr MakeBusFromMemory(const std::vector & buffer, bool mixToMono) +{ + std::lock_guard lock(g_fileIOMutex); + nqr::AudioData * audioData = new nqr::AudioData(); + nyquist_io.Load(audioData, buffer); + return detail::LoadInternal(audioData, mixToMono); +} + +std::shared_ptr MakeBusFromMemory(const std::vector & buffer, const std::string & extension, bool mixToMono) +{ + std::lock_guard lock(g_fileIOMutex); + nqr::AudioData * audioData = new nqr::AudioData(); + nyquist_io.Load(audioData, extension, buffer); + return detail::LoadInternal(audioData, mixToMono); +} + +} // end namespace lab diff --git a/sources/LabSound/src/extended/BPMDelay.cpp b/sources/LabSound/src/extended/BPMDelay.cpp new file mode 100644 index 00000000..92bb2bab --- /dev/null +++ b/sources/LabSound/src/extended/BPMDelay.cpp @@ -0,0 +1,93 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioProcessor.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/BPMDelayNode.h" + +#include +#include + +using namespace lab; + +namespace lab +{ +inline int TempoSyncToIndex(TempoSync in) +{ + switch (in) + { + case TS_32: + return 0; + case TS_16T: + return 1; + case TS_32D: + return 2; + case TS_16: + return 3; + case TS_8T: + return 4; + case TS_16D: + return 5; + case TS_8: + return 6; + case TS_4T: + return 7; + case TS_8D: + return 8; + case TS_4: + return 9; + case TS_2T: + return 10; + case TS_4D: + return 11; + case TS_2: + return 12; + case TS_2D: + return 13; + default: + return 0; + } +} + +BPMDelay::BPMDelay(AudioContext & ac, float tempo) + : lab::DelayNode(ac, 8.0f) + , tempo(tempo) +{ + times = { + 1.f / 8.f, + (1.f / 4.f) * 2.f / 3.f, + (1.f / 8.f) * 3.f / 2.f, + 1.f / 4.f, + (1.f / 2.f) * 2.f / 3.f, + (1.f / 4.f) * 3.f / 2.f, + 1.f / 2.f, + 1.f * 2.f / 3.f, + (1.f / 2.f) * 3.f / 2.f, + 1.0f, + 2.f * 2.f / 3.f, + 1.f * 3.f / 2.f, + 2.f, + 3.f}; + + SetDelayIndex(TempoSync::TS_8); +} + +BPMDelay::~BPMDelay() +{ +} + +void BPMDelay::SetDelayIndex(TempoSync value) +{ + if (value >= TempoSync::TS_32 && value <= TempoSync::TS_2D) + { + noteDivision = TempoSyncToIndex(value); + recomputeDelay(); + } + else + throw std::invalid_argument("Delay index out of bounds"); +} +} diff --git a/sources/LabSound/src/extended/ClipNode.cpp b/sources/LabSound/src/extended/ClipNode.cpp new file mode 100644 index 00000000..117df5a1 --- /dev/null +++ b/sources/LabSound/src/extended/ClipNode.cpp @@ -0,0 +1,165 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioProcessor.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/Macros.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/ClipNode.h" +#include "LabSound/extended/Registry.h" + +#include "internal/VectorMath.h" + +#include +#include + +using namespace lab; + +namespace lab +{ + +///////////////////////////////////// +// Private ClipNode Implementation // +///////////////////////////////////// + +static char const * const s_ClipModes[ClipNode::Mode::_Count + 1] = {"Clip", "Tanh", nullptr}; + +class ClipNode::ClipNodeInternal : public lab::AudioProcessor +{ +public: + ClipNodeInternal(ClipNode * owner) + : AudioProcessor() + , _owner(owner) + { + auto fMax = std::numeric_limits::max(); + aVal = std::make_shared("a", "A ", -1.0, -fMax, fMax); + bVal = std::make_shared("b", "B ", 1.0, -fMax, fMax); + mode = std::make_shared("mode", "MODE", s_ClipModes); + mode->setUint32(static_cast(ClipNode::CLIP)); + } + + virtual ~ClipNodeInternal() {} + + virtual void initialize() override {} + virtual void uninitialize() override {} + + // Processes the source to destination bus. + virtual void process(ContextRenderLock & r, + const lab::AudioBus * sourceBus, lab::AudioBus * destinationBus, + int framesToProcess) override + { + int srcChannels = (int) sourceBus->numberOfChannels(); + int dstChannels = (int) destinationBus->numberOfChannels(); + if (dstChannels != srcChannels) + { + _owner->output(0)->setNumberOfChannels(r, srcChannels); + destinationBus = _owner->output(0)->bus(r); + /// @todo no need to pass in the destination bus since owner is retained. + /// @todo perhaps flatten out AudioProcessor as well, as it's not adding anything particularly + } + + if (!srcChannels) + { + destinationBus->zero(); + return; + } + + ClipNode::Mode clipMode = static_cast(mode->valueUint32()); + + if (clipMode == ClipNode::TANH) + { + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + float outputGain = aVal->value(); + float inputGain = bVal->value(); + + for (int channelIndex = 0; channelIndex < dstChannels; ++channelIndex) + { + int srcIndex = srcChannels < channelIndex ? srcChannels : channelIndex; + float const * source = sourceBus->channel(srcIndex)->data(); + float * destination = destinationBus->channel(channelIndex)->mutableData(); + for (int i = 0; i < framesToProcess; ++i) + { + *destination++ = outputGain * tanhf(inputGain * source[i]); + } + } + } + else + { + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + float minf = aVal->value(); + float maxf = bVal->value(); + + for (int channelIndex = 0; channelIndex < dstChannels; ++channelIndex) + { + int srcIndex = srcChannels < channelIndex ? srcChannels : channelIndex; + float const * source = sourceBus->channel(srcIndex)->data(); + float * destination = destinationBus->channel(channelIndex)->mutableData(); + for (int i = 0; i < framesToProcess; ++i) + { + float d = source[i]; + + if (d < minf) + d = minf; + else if (d > maxf) + d = maxf; + + *destination++ = d; + } + } + } + } + + virtual void reset() override {} + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + ClipNode * _owner = nullptr; + std::shared_ptr aVal; + std::shared_ptr bVal; + std::shared_ptr mode; +}; + +///////////////////// +// Public ClipNode // +///////////////////// + +ClipNode::ClipNode(AudioContext & ac) + : lab::AudioBasicProcessorNode(ac) +{ + internalNode = new ClipNodeInternal(this); + m_processor.reset(internalNode); + + m_params.push_back(internalNode->aVal); + m_params.push_back(internalNode->bVal); + m_settings.push_back(internalNode->mode); + + initialize(); +} + +ClipNode::~ClipNode() +{ + uninitialize(); +} + +void ClipNode::setMode(Mode m) +{ + internalNode->mode->setUint32(uint32_t(m)); +} + +std::shared_ptr ClipNode::aVal() +{ + return internalNode->aVal; +} +std::shared_ptr ClipNode::bVal() +{ + return internalNode->bVal; +} + +} // end namespace lab diff --git a/sources/LabSound/src/extended/DiodeNode.cpp b/sources/LabSound/src/extended/DiodeNode.cpp new file mode 100644 index 00000000..6ca974d1 --- /dev/null +++ b/sources/LabSound/src/extended/DiodeNode.cpp @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/extended/DiodeNode.h" +#include "LabSound/extended/Registry.h" + +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/Macros.h" +#include + +namespace lab +{ + +// Based on the DiodeNode found at the BBC Radiophonic Workshop +// http://webaudio.prototyping.bbc.co.uk/ring-modulator/ + +DiodeNode::DiodeNode(AudioContext & ac) + : WaveShaperNode(ac) + , _distortion(std::make_shared("distortion", "DSTR", AudioSetting::Type::Float)) + , _vb(std::make_shared("vb", "VB ", AudioSetting::Type::Float)) + , _vl(std::make_shared("vl", "VL ", AudioSetting::Type::Float)) +{ + _vb->setFloat(0.2f); + _vl->setFloat(0.4f); + setDistortion(1.f); + m_settings.push_back(_distortion); + m_settings.push_back(_vb); + m_settings.push_back(_vl); + + _distortion->setValueChanged([this]() { + this->_precalc(); + }); + _vb->setValueChanged([this]() { + this->_precalc(); + }); + _vl->setValueChanged([this]() { + this->_precalc(); + }); + + initialize(); +} + +void DiodeNode::setDistortion(float distortion) +{ + // We increase the distortion by increasing the gradient of the linear portion of the waveshaper's curve. + _distortion->setFloat(distortion); + _precalc(); +} + +void DiodeNode::_precalc() +{ + // The non-linear waveshaper curve describes the transformation between an input signal and an output signal. + // Calculate a 1024-point curve following equation (2) from Parker's paper. + + float h = _distortion->valueFloat(); + + const int samples = 1024; + + std::vector wsCurve; + wsCurve.resize(samples); + + float vb_ = _vb->valueFloat(); + float vl_ = _vl->valueFloat(); + + float s = float(samples); + for (int i = 0; i < samples; ++i) + { + // convert the index to a voltage of range -1 to 1 + float v = fabsf((float(i) - s / 2.0f) / (s / 2.0f)); + if (v <= vb_) + v = 0; + else if ((vb_ < v) && (v <= vl_)) + v = h * powf(v - vb_, 2.0f) / (2 * vl_ - 2.0f * vb_); + else + v = h * v - h * vl_ + (h * ((powf(vl_ - vb_, 2.0f)) / (2.0f * vl_ - 2.0f * vb_))); + wsCurve[i] = v; + } + + setCurve(wsCurve); +} + +} // lab diff --git a/sources/LabSound/src/extended/FunctionNode.cpp b/sources/LabSound/src/extended/FunctionNode.cpp new file mode 100644 index 00000000..a723d5bc --- /dev/null +++ b/sources/LabSound/src/extended/FunctionNode.cpp @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/FunctionNode.h" +#include "LabSound/extended/Registry.h" + +using namespace std; +using namespace lab; + +namespace lab +{ + +FunctionNode::FunctionNode(AudioContext & ac, int channels) + : AudioScheduledSourceNode(ac) +{ + addOutput(std::unique_ptr(new AudioNodeOutput(this, channels))); + initialize(); +} + +FunctionNode::~FunctionNode() +{ + uninitialize(); +} + +void FunctionNode::process(ContextRenderLock & r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !outputBus->numberOfChannels() || !_function) + { + outputBus->zero(); + return; + } + + int quantumFrameOffset = _scheduler._renderOffset; + int nonSilentFramesToProcess = _scheduler._renderLength; + + if (!nonSilentFramesToProcess) + { + outputBus->zero(); + return; + } + + for (int i = 0; i < outputBus->numberOfChannels(); ++i) + { + float * destP = outputBus->channel(i)->mutableData(); + + // Start rendering at the correct offset. + destP += quantumFrameOffset; + _function(r, this, static_cast(i), destP, nonSilentFramesToProcess); + } + + _now += double(bufferSize) / r.context()->sampleRate(); + outputBus->clearSilentFlag(); +} + +void FunctionNode::reset(ContextRenderLock & r) +{ + // No-op +} + +bool FunctionNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} + +} // namespace lab diff --git a/sources/LabSound/src/extended/GranulationNode.cpp b/sources/LabSound/src/extended/GranulationNode.cpp new file mode 100644 index 00000000..d1e005ab --- /dev/null +++ b/sources/LabSound/src/extended/GranulationNode.cpp @@ -0,0 +1,193 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/extended/GranulationNode.h" +#include "LabSound/extended/Registry.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/WindowFunctions.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Util.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" + +using namespace lab; + +GranulationNode::GranulationNode(AudioContext & ac) : AudioScheduledSourceNode(ac) +{ + // Sample that will be granulated + grainSourceBus = std::make_shared("GrainSource", "GSRC", AudioSetting::Type::Bus); + + // Windowing function that will be applied as an evelope to each grain during playback + windowFunc = std::make_shared("WindowFunction", "WINF", s_window_types); + windowFunc->setEnumeration(static_cast(WindowFunction::bartlett), true); + + // Total number of grains that will be allocated + numGrains = std::make_shared("NumGrains", "NGRN", 8.f, 1.f, 256.f, 1); + + // Duration of each grain in seconds (currently fixed but ideally will be configurable per-grain) + grainDuration = std::make_shared("GrainDuration", "GDUR", 0.1f, 0.01f, 0.5f); + + // The min/max positional offset (given in a normalized 0-1 range) from which a grain should + // be sampled from grainSourceBus. These numbers are used to inform the range of a random + // number generator. + grainPositionMin = std::make_shared("PositionMin", "GMIN", 0.0f, 0.0f, 0.99f); + grainPositionMax = std::make_shared("PositionMax", "GMAX", 1.0f, 0.01f, 1.0f); + + // How fast the grain should play, given as a multiplier. Useful for pitch-shifting effects. + grainPlaybackFreq = std::make_shared("PlaybackFrequency", "FREQ", 1.0f, 0.01f, 12.0f); + + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + + initialize(); +} + +GranulationNode::~GranulationNode() +{ + uninitialize(); +} + +void GranulationNode::reset(ContextRenderLock&) +{ + +} + +bool GranulationNode::RenderGranulation(ContextRenderLock & r, AudioBus * out_bus, int destinationFrameOffset, int numberOfFrames) +{ + if (!r.context()) + return false; + + // Sanity check destinationFrameOffset, numberOfFrames. + const int destinationLength = out_bus->length(); + + bool isLengthGood = destinationLength <= 4096 && numberOfFrames <= 4096; + ASSERT(isLengthGood); + if (!isLengthGood) + return false; + + bool isOffsetGood = destinationFrameOffset <= destinationLength && destinationFrameOffset + numberOfFrames <= destinationLength; + ASSERT(isOffsetGood); + if (!isOffsetGood) + return false; + + if (!out_bus) return false; + + float * mono_destination = out_bus->channel(0)->mutableData(); + + // @fixme - this vector + std::vector grain_sum_buffer(numberOfFrames, 0.f); + + { + for (int i = 0; i < grain_pool.size(); ++i) + { + grain_pool[i].tick(grain_sum_buffer.data(), static_cast(grain_sum_buffer.size())); + } + + for (int f = 0; f < numberOfFrames; ++f) + { + grain_sum_buffer[f] /= static_cast(grain_pool.size()); + mono_destination[f] = grain_sum_buffer[f]; // @todo - memcpy + } + + // Optional grain culling when they're "done" + // if (!grain_pool.empty()) + // { + // auto it = std::remove_if(std::begin(grain_pool), std::end(grain_pool), [this](const grain & g) + // { + // return g.in_use; + // }); + // grain_pool.erase(it, std::end(grain_pool)); + // } + } + + out_bus->clearSilentFlag(); + + return true; +} + +bool GranulationNode::setGrainSource(ContextRenderLock & r, std::shared_ptr buffer) +{ + ASSERT(grainSourceBus); + + // Granulation Settings Sanity Check + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + std::cout << "GranulationNode::WindowFunction " << s_window_types[windowFunc->valueUint32()] << std::endl; + std::cout << "GranulationNode::numGrains " << numGrains->value() << std::endl; + std::cout << "GranulationNode::grainDuration " << grainDuration->value() << std::endl; + std::cout << "GranulationNode::grainPositionMin " << grainPositionMin->value() << std::endl; + std::cout << "GranulationNode::grainPositionMax " << grainPositionMax->value() << std::endl; + std::cout << "GranulationNode::grainPlaybackFreq " << grainPlaybackFreq->value() << std::endl; + + grainSourceBus->setBus(buffer.get()); + output(0)->setNumberOfChannels(r, buffer ? buffer->numberOfChannels() : 0); + + // Compute useful values + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + const float grain_duration_seconds = grainDuration->value(); + const uint64_t grain_duration_samples = static_cast(grain_duration_seconds * r.context()->sampleRate()); + + // Setup window/envelope + std::vector grain_window(grain_duration_samples, 1.f); + lab::ApplyWindowFunctionInplace(static_cast(windowFunc->valueUint32()), grain_window.data(), static_cast(grain_window.size())); + + window_bus.reset(new lab::AudioBus(1, static_cast(grain_duration_samples))); + window_bus->setSampleRate(r.context()->sampleRate()); + + float * windowData = window_bus->channel(0)->mutableData(); + for (uint32_t sample = 0; sample < grain_window.size(); ++sample) + { + windowData[sample] = grain_window[sample]; + } + + // Setup grains + UniformRandomGenerator rnd; + auto sample_to_granulate = grainSourceBus->valueBus(); + /// @fixme should be setting + for (int i = 0; i < numGrains->value(); ++i) + { + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + const float random_pos_offset = rnd.random_float(grainPositionMin->value(), grainPositionMax->value()); + grain_pool.emplace_back(grain(sample_to_granulate, window_bus, r.context()->sampleRate(), random_pos_offset, grain_duration_seconds, grainPlaybackFreq->value())); + } + + return true; +} + +void GranulationNode::process(ContextRenderLock& r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !outputBus->numberOfChannels()) + { + outputBus->zero(); + return; + } + + int quantumFrameOffset = _scheduler._renderOffset; + int bufferFramesToProcess = _scheduler._renderLength; + + if (!bufferFramesToProcess) + { + outputBus->zero(); + return; + } + + if (!RenderGranulation(r, outputBus, quantumFrameOffset, bufferFramesToProcess)) + { + outputBus->zero(); + return; + } + outputBus->clearSilentFlag(); +} + +bool GranulationNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} diff --git a/sources/LabSound/src/extended/LabSound.cpp b/sources/LabSound/src/extended/LabSound.cpp new file mode 100644 index 00000000..854a31eb --- /dev/null +++ b/sources/LabSound/src/extended/LabSound.cpp @@ -0,0 +1,446 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/LabSound.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioHardwareDeviceNode.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Logging.h" +#include "LabSound/extended/Registry.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + +#if defined(_MSC_VER) +#pragma warning(disable:4996) +#endif + +namespace lab +{ +const std::vector MakeAudioDeviceList() +{ + LOG_TRACE("MakeAudioDeviceList()"); + return AudioDevice::MakeAudioDeviceList(); +} + +const AudioDeviceIndex GetDefaultOutputAudioDeviceIndex() +{ + LOG_TRACE("GetDefaultOutputAudioDeviceIndex()"); + return AudioDevice::GetDefaultOutputAudioDeviceIndex(); +} + +const AudioDeviceIndex GetDefaultInputAudioDeviceIndex() +{ + LOG_TRACE("GetDefaultInputAudioDeviceIndex()"); + return AudioDevice::GetDefaultInputAudioDeviceIndex(); +} + +std::unique_ptr MakeRealtimeAudioContext( + const AudioStreamConfig & outputConfig, const AudioStreamConfig & inputConfig) +{ + LOG_TRACE("MakeRealtimeAudioContext()"); + + std::unique_ptr ctx(new lab::AudioContext(false)); + ctx->setDeviceNode(std::make_shared(*ctx.get(), outputConfig, inputConfig)); + ctx->lazyInitialize(); + return ctx; +} + +std::unique_ptr MakeOfflineAudioContext( + const AudioStreamConfig & offlineConfig, double recordTimeMilliseconds) +{ + LOG_TRACE("MakeOfflineAudioContext(duration)"); + + const double secondsToRun = recordTimeMilliseconds * 0.001; + + std::unique_ptr ctx(new lab::AudioContext(true)); + ctx->setDeviceNode(std::make_shared(*ctx.get(), offlineConfig, secondsToRun)); + ctx->lazyInitialize(); + return ctx; +} + +OfflineContext MakeOfflineAudioContext(const AudioStreamConfig & offlineConfig) +{ + LOG_TRACE("MakeOfflineAudioContext()"); + OfflineContext ret; + ret.context = std::make_unique(true); + + auto dev = std::make_shared( + *ret.context.get(), + offlineConfig, + std::numeric_limits::max()); + ret.context->setDeviceNode(dev); + ret.context->lazyInitialize(); + ret.device = dev.get(); + return ret; +} + +void OfflineContext::process(size_t samples) +{ + if (!device || !samples) + return; + + lab::NullDeviceNode * dev = reinterpret_cast(device); + dev->offlineRenderFrames(samples); +} + + +std::shared_ptr MakeAudioHardwareInputNode(ContextRenderLock & r) +{ + LOG_TRACE("MakeAudioHardwareInputNode()"); + + auto device = r.context()->device(); + + if (device) + { + if (auto * hardwareDevice = dynamic_cast(device.get())) + { + std::shared_ptr inputNode( + new AudioHardwareInputNode(*r.context(), hardwareDevice->AudioHardwareInputProvider())); + return inputNode; + } + else + { + throw std::runtime_error("Cannot create AudioHardwareInputNode. Context does not own an AudioHardwareInputNode."); + } + } + return {}; +} + +AudioStreamConfig GetDefaultInputAudioDeviceConfiguration() +{ + AudioStreamConfig inputConfig; + + const std::vector audioDevices = lab::MakeAudioDeviceList(); + /*const AudioDeviceIndex default_output_device =*/ lab::GetDefaultOutputAudioDeviceIndex(); + const AudioDeviceIndex default_input_device = lab::GetDefaultInputAudioDeviceIndex(); + + AudioDeviceInfo defaultInputInfo; + for (auto& info : audioDevices) + { + if (info.index == default_input_device.index) + defaultInputInfo = info; + } + + if (defaultInputInfo.index == -1) + throw std::invalid_argument("the default audio input device was requested but none were found"); + + inputConfig.device_index = defaultInputInfo.index; + inputConfig.desired_channels = std::min(uint32_t(1), defaultInputInfo.num_input_channels); + inputConfig.desired_samplerate = defaultInputInfo.nominal_samplerate; + return inputConfig; +} + +AudioStreamConfig GetDefaultOutputAudioDeviceConfiguration() +{ + AudioStreamConfig outputConfig; + + const std::vector audioDevices = lab::MakeAudioDeviceList(); + const AudioDeviceIndex default_output_device = lab::GetDefaultOutputAudioDeviceIndex(); + const AudioDeviceIndex default_input_device = lab::GetDefaultInputAudioDeviceIndex(); + + AudioDeviceInfo defaultOutputInfo; + for (auto& info : audioDevices) + { + if (info.index == default_output_device.index) + defaultOutputInfo = info; + } + + if (defaultOutputInfo.index == -1) + throw std::invalid_argument("the default audio output device was requested but none were found"); + + outputConfig.device_index = defaultOutputInfo.index; + outputConfig.desired_channels = std::min(uint32_t(2), defaultOutputInfo.num_output_channels); + outputConfig.desired_samplerate = defaultOutputInfo.nominal_samplerate; + return outputConfig; +} + + +} // lab + +/////////////////////// +// Logging Utilities // +/////////////////////// + +/* + * Copyright (c) 2017 rxi + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#define LOG_USE_COLOR + +static struct { + void *udata; + log_LockFn lock; + FILE *fp; + int level; + int quiet; +} L; + + +static const char *level_names[] = { + "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" +}; + +#ifdef LOG_USE_COLOR +static const char *level_colors[] = { + "\x1b[94m", "\x1b[36m", "\x1b[32m", "\x1b[33m", "\x1b[31m", "\x1b[35m" +}; +#endif + + +static void lock(void) { + if (L.lock) { + L.lock(L.udata, 1); + } +} + + +static void unlock(void) { + if (L.lock) { + L.lock(L.udata, 0); + } +} + + +void log_set_udata(void *udata) { + L.udata = udata; +} + + +void log_set_lock(log_LockFn fn) { + L.lock = fn; +} + + +void log_set_fp(FILE *fp) { + L.fp = fp; +} + + +void log_set_level(int level) { + L.level = level; +} + + +void log_set_quiet(int enable) { + L.quiet = enable ? 1 : 0; +} + + +void LabSoundLog(int level, const char *file, int line, const char *fmt, ...) { + if (level < L.level) { + return; + } + + /* Acquire lock */ + lock(); + + /* Get current time */ + time_t t = time(NULL); + struct tm *lt = localtime(&t); + + /* Log to stderr */ + if (!L.quiet) { + va_list args; + char buf[16]; + buf[strftime(buf, sizeof(buf), "%H:%M:%S", lt)] = '\0'; +#ifdef LOG_USE_COLOR + fprintf( + stderr, "%s %s%-5s\x1b[0m \x1b[90m%s:%d:\x1b[0m ", + buf, level_colors[level], level_names[level], file, line); +#else + fprintf(stderr, "%s %-5s %s:%d: ", buf, level_names[level], file, line); +#endif + va_start(args, fmt); + vfprintf(stderr, fmt, args); + va_end(args); + fprintf(stderr, "\n"); + fflush(stderr); + } + + /* Log to file */ + if (L.fp) { + va_list args; + char buf[32]; + buf[strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", lt)] = '\0'; + fprintf(L.fp, "%s %-5s %s:%d: ", buf, level_names[level], file, line); + va_start(args, fmt); + vfprintf(L.fp, fmt, args); + va_end(args); + fprintf(L.fp, "\n"); + fflush(L.fp); + } + + /* Release lock */ + unlock(); +} + +void LabSoundAssertLog(const char * file_, int line, const char * function_, const char * assertion_) +{ + const char * file = file_ ? file_ : "Unknown source file"; + const char * function = function_ ? function_ : ""; + const char * assertion = assertion_ ? assertion_ : "Assertion failed"; + printf("Assertion: %s:%s:%d - %s\n", function, file, line, assertion); +} + +std::once_flag register_all_flag; +void LabSoundRegistryInit(lab::NodeRegistry& reg) +{ + using namespace lab; + + std::call_once(register_all_flag, [®]() { + + // core + + reg.Register(AnalyserNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new AnalyserNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(AudioHardwareDeviceNode::static_name(), + [](AudioContext& ac)->AudioNode* { return nullptr; }, + [](AudioNode* n) { delete n; }); + + reg.Register(AudioHardwareInputNode::static_name(), + [](AudioContext& ac)->AudioNode* { return nullptr; }, + [](AudioNode* n) { delete n; }); + + reg.Register(BiquadFilterNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new BiquadFilterNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(ChannelMergerNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new ChannelMergerNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(ChannelSplitterNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new ChannelSplitterNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(ConvolverNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new ConvolverNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(DelayNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new DelayNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(DynamicsCompressorNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new DynamicsCompressorNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register("GainNode", + [](AudioContext& ac)->AudioNode* { return new GainNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(NullDeviceNode::static_name(), + [](AudioContext& ac)->AudioNode* { return nullptr; }, + [](AudioNode* n) { delete n; }); + + reg.Register(OscillatorNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new OscillatorNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(PannerNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new PannerNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(SampledAudioNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new SampledAudioNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(StereoPannerNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new StereoPannerNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(WaveShaperNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new WaveShaperNode(ac); }, + [](AudioNode* n) { delete n; }); + + // extended + + reg.Register(ADSRNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new ADSRNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(ClipNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new ClipNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(DiodeNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new DiodeNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(FunctionNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new FunctionNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(GranulationNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new GranulationNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(NoiseNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new NoiseNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(PWMNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new PWMNode(ac); }, + [](AudioNode* n) { delete n; }); + + //reg.Register(PdNode::static_name()); + + reg.Register(PolyBLEPNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new PolyBLEPNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(PowerMonitorNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new PowerMonitorNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(RecorderNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new RecorderNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(SfxrNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new SfxrNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(SpectralMonitorNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new SpectralMonitorNode(ac); }, + [](AudioNode* n) { delete n; }); + + reg.Register(SupersawNode::static_name(), + [](AudioContext& ac)->AudioNode* { return new SupersawNode(ac); }, + [](AudioNode* n) { delete n; }); + }); +} + diff --git a/sources/LabSound/src/extended/NoiseNode.cpp b/sources/LabSound/src/extended/NoiseNode.cpp new file mode 100644 index 00000000..aa889122 --- /dev/null +++ b/sources/LabSound/src/extended/NoiseNode.cpp @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/extended/NoiseNode.h" +#include "LabSound/extended/Registry.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" + +using namespace std; +using namespace lab; + +namespace lab +{ + +static char const * const s_noiseTypes[NoiseNode::NoiseType::_Count + 1] = { + "White", "Pink", "Brown", nullptr}; + +NoiseNode::NoiseNode(AudioContext & ac) + : AudioScheduledSourceNode(ac) + , _type(std::make_shared("type", "TYPE", s_noiseTypes)) +{ + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + m_settings.push_back(_type); + initialize(); +} + +NoiseNode::~NoiseNode() +{ + uninitialize(); +} + +void NoiseNode::setType(NoiseType type) +{ + if (type >= NoiseType::_Count) + throw std::out_of_range("Noise argument exceeds known noise types"); + + _type->setUint32(uint32_t(type)); +} + +NoiseNode::NoiseType NoiseNode::type() const +{ + return NoiseType(_type->valueUint32()); +} + +void NoiseNode::process(ContextRenderLock &r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !outputBus->numberOfChannels()) + { + outputBus->zero(); + return; + } + + int quantumFrameOffset = _scheduler._renderOffset; + int nonSilentFramesToProcess = _scheduler._renderLength; + + if (!nonSilentFramesToProcess) + { + outputBus->zero(); + return; + } + + float * destP = outputBus->channel(0)->mutableData(); + + // Start rendering at the correct offset. + destP += quantumFrameOffset; + int n = nonSilentFramesToProcess; + + switch (NoiseType(_type->valueUint32())) + { + // reference: http://noisehack.com/generate-noise-web-audio-api/ + case WHITE: + while (n--) + { + float white = ((float) ((whiteSeed & 0x7fffffff) - 0x40000000)) * (float) (1.0f / 0x40000000); + white = (white * 0.5f) - 1.0f; + *destP++ = white; + whiteSeed = whiteSeed * 435898247 + 382842987; + } + break; + case PINK: + while (n--) + { + float white = ((float) ((whiteSeed & 0x7fffffff) - 0x40000000)) * (float) (1.0f / 0x40000000); + white = (white * 0.5f) - 1.0f; + whiteSeed = whiteSeed * 435898247 + 382842987; + + pink0 = 0.99886f * pink0 + white * 0.0555179f; + pink1 = 0.99332f * pink1 + white * 0.0750759f; + pink2 = 0.96900f * pink2 + white * 0.1538520f; + pink3 = 0.86650f * pink3 + white * 0.3104856f; + pink4 = 0.55000f * pink4 + white * 0.5329522f; + pink5 = -0.7616f * pink5 - white * 0.0168980f; + *destP++ = (pink0 + pink1 + pink2 + pink3 + pink4 + pink5 + pink6 + (white * 0.5362f)) * 0.11f; // .11 roughly compensates gain + pink6 = white * 0.115926f; + } + break; + case BROWN: + while (n--) + { + float white = ((float) ((whiteSeed & 0x7fffffff) - 0x40000000)) * (float) (1.0f / 0x40000000); + white = (white * 0.5f) - 1.0f; + whiteSeed = whiteSeed * 435898247 + 382842987; + float brown = (lastBrown + (0.02f * white)) / 1.02f; + *destP++ = brown * 3.5f; // roughly compensate for gain + lastBrown = brown; + } + break; + default: + throw std::invalid_argument("Invalid type specified"); + } + outputBus->clearSilentFlag(); +} + +void NoiseNode::reset(ContextRenderLock &) +{ +} + +bool NoiseNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} + +} // namespace lab diff --git a/sources/LabSound/src/extended/PWMNode.cpp b/sources/LabSound/src/extended/PWMNode.cpp new file mode 100644 index 00000000..36580c88 --- /dev/null +++ b/sources/LabSound/src/extended/PWMNode.cpp @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioProcessor.h" + +#include "LabSound/extended/PWMNode.h" +#include "LabSound/extended/Registry.h" + +#include + +using namespace lab; + +namespace lab +{ + +//////////////////////////////////// +// Private PWMNode Implementation // +//////////////////////////////////// + +class PWMNode::PWMNodeInternal : public lab::AudioProcessor +{ + +public: + PWMNodeInternal() + : AudioProcessor() + { + } + + virtual ~PWMNodeInternal() {} + + virtual void initialize() override {} + + virtual void uninitialize() override {} + + // Processes the source to destination bus. + virtual void process(ContextRenderLock &, + const lab::AudioBus * source, lab::AudioBus * destination, + int framesToProcess) override + { + if (!source->numberOfChannels() || !destination->numberOfChannels()) + return; + + const float * carrierP = source->channelByType(Channel::Left)->data(); + const float * modP = source->channelByType(Channel::Right)->data(); + + if (!modP && carrierP) + { + destination->copyFrom(*source); + } + else if (modP && carrierP) + { + float * destP = destination->channel(0)->mutableData(); + int n = framesToProcess; + while (n--) + { + float carrier = *carrierP++; + float mod = *modP++; + *destP++ = (carrier > mod) ? 1.0f : -1.0f; + } + } + } + + virtual void reset() override {} + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } +}; + +//////////////////// +// Public PWMNode // +//////////////////// + +PWMNode::PWMNode(AudioContext & ac) + : lab::AudioBasicProcessorNode(ac) +{ + addInput(std::unique_ptr(new AudioNodeInput(this))); + m_processor.reset(new PWMNodeInternal()); + internalNode = static_cast(m_processor.get()); // Currently unused + initialize(); +} + +PWMNode::~PWMNode() +{ + uninitialize(); +} +} diff --git a/sources/LabSound/src/extended/PdNode.cpp b/sources/LabSound/src/extended/PdNode.cpp new file mode 100644 index 00000000..5229f0e2 --- /dev/null +++ b/sources/LabSound/src/extended/PdNode.cpp @@ -0,0 +1,166 @@ + +// Copyright (c) 2003-2013 Nick Porcino, All rights reserved. +// License is MIT: http://opensource.org/licenses/MIT + +#ifdef PD + +#include "PdNode.h" +#include "LabSound.h" + +#include "AudioBus.h" +#include "AudioNodeInput.h" +#include "AudioNodeOutput.h" +#include "AudioProcessor.h" +#include "LabSound/extended/Registry.h" + +#include "PdBase.hpp" +#include "z_libpd.h" + +#include + +namespace lab +{ + +class PdNode::PdNodeInternal : public lab::AudioProcessor +{ +public: + PdNodeInternal(float sampleRate) + : AudioProcessor(sampleRate) + , numChannels(2) + , pdBuffSize(128) + { + } + + virtual ~PdNodeInternal() + { + } + + // AudioProcessor interface + virtual void initialize() + { + } + + virtual void uninitialize() {} + + // Processes the source to destination bus. The number of channels must match in source and destination. + virtual void process(const lab::AudioBus * source, lab::AudioBus * destination, size_t framesToProcess) + { + if (!numChannels) + return; + + int ticks = framesToProcess >> blockSizeAsLog; // this is a faster way of computing (inNumberFrames / blockSize) + const float * inData = source->channel(0)->data(); + float * outData = destination->channel(0)->mutableData(); + pd.processFloat(ticks, inData, outData); + } + + // Resets filter state + virtual void reset() {} + + virtual void setNumberOfChannels(unsigned i) + { + numChannels = i; + } + + virtual double tailTime() const { return 0; } + virtual double latencyTime() const { return 0; } + + // return true on successful initialization + bool initPure(const int numInChannels, const int numOutChannels, + const int sampleRate, const int ticksPerBuffer); + + /// print + virtual void print(const std::string & message); + + pd::PdBase pd; + + int numChannels; + int pdBuffSize; + int blockSizeAsLog; +}; + +namespace +{ + //http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogObvious + int log2int(int x) + { + if (x < 1) + { + return -1; + } + int y = 1; + while (x >>= 1) + { + ++y; + } + return y; + } +} // anon + +// return true on successful initialization +bool PdNode::PdNodeInternal::initPure(const int numInChannels, const int numOutChannels, + const int sampleRate, const int ticksPerBuffer) +{ + + if (!pd.init(numInChannels, numOutChannels, sampleRate)) + { + return false; + } + blockSizeAsLog = log2int(libpd_blocksize()); + + // subscribe to receive source names + pd.subscribe("toOF"); + pd.subscribe("env"); + + // add the data/pd folder to the search path + pd.addToSearchPath("pd"); + + // audio processing on + pd.computeAudio(true); + + return true; +} + +//-------------------------------------------------------------- +void PdNode::PdNodeInternal::print(const std::string & message) +{ + std::cout << message << std::endl; +} + +pd::PdBase & PdNode::pd() const +{ + return data->pd; +} + +PdNode::PdNode(lab::AudioContext * context, float sampleRate) + : lab::AudioBasicProcessorNode(context, sampleRate) + , data(new PdNodeInternal(sampleRate)) +{ + // Initially setup as lowpass filter. + m_processor = std::move(std::unique_ptr(data)); + + setNodeType((AudioNode::NodeType) lab::NodeTypePd); + + addInput(adoptPtr(new lab::AudioNodeInput(this))); + addOutput(adoptPtr(new lab::AudioNodeOutput(this, 2))); // 2 stereo + + data->initPure(2, 2, sampleRate, 128); + + initialize(); +} + +PdNode::~PdNode() +{ + data->numChannels = 0; // ensure there if there is a latent callback pending, pd is not invoked + data = 0; + uninitialize(); +} + +bool PdNode::propagatesSilence() const +{ + return !data->pd.isInited(); +} + +} // LabSound + +#endif diff --git a/sources/LabSound/src/extended/PeakCompNode.cpp b/sources/LabSound/src/extended/PeakCompNode.cpp new file mode 100644 index 00000000..bf6efd49 --- /dev/null +++ b/sources/LabSound/src/extended/PeakCompNode.cpp @@ -0,0 +1,277 @@ +// License: The MIT License +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. +// Copyright (C) 2013, Two Big Ears Ltd (http://twobigears.com) + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioProcessor.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/PeakCompNode.h" + +#include "internal/VectorMath.h" + +#include "LabSound/core/Macros.h" + +#include +#include + +using namespace lab; + +namespace lab +{ + +///////////////////////////////////////// +// Prviate PeakCompNode Implementation // +///////////////////////////////////////// + +class PeakCompNode::PeakCompNodeInternal : public AudioProcessor +{ + +public: + PeakCompNodeInternal() : AudioProcessor() + { + m_threshold = std::make_shared("threshold", "THRS", 0, 0, -1e6f); + m_ratio = std::make_shared("ratio", "RATI", 1, 0, 10); + m_attack = std::make_shared("attack", "ATCK", 0.001f, 0, 1000); + m_release = std::make_shared("release", "RELS", 0.001f, 0, 1000); + m_makeup = std::make_shared("makeup", "MAKE", 0, 0, 60); + m_knee = std::make_shared("knee", "KNEE", 0, 0, 1); + + for (int i = 0; i < 2; i++) + { + kneeRecursive[i] = 0.f; + attackRecursive[i] = 0.f; + releaseRecursive[i] = 0.f; + } + } + + virtual ~PeakCompNodeInternal() {} + + virtual void initialize() override {} + + virtual void uninitialize() override {} + + // Processes the source to destination bus. The number of channels must match in source and destination. + virtual void process(ContextRenderLock & r, const lab::AudioBus * sourceBus, lab::AudioBus * destinationBus, int framesToProcess) override + { + int sourceNumChannels = sourceBus->numberOfChannels(); + int destNumChannels = destinationBus->numberOfChannels(); + + if (!destNumChannels) + return; + + // Get sample rate + internalSampleRate = r.context()->sampleRate(); + oneOverSampleRate = 1.0 / internalSampleRate; + + // copy attributes to run time variables + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + float v = m_threshold->value(); + if (v <= 0) + { + // dB to linear (could use the function from m_pd.h) + threshold = powf(10.f, (v * 0.05f)); + } + else + threshold = 0; + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + v = m_ratio->value(); + if (v >= 1) + { + ratio = 1.f / v; + } + else + ratio = 1; + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + v = m_attack->value(); + if (v >= 0.001f) + { + attack = v * 0.001; + } + else + attack = 0.000001; + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + v = m_release->value(); + if (v >= 0.001f) + { + release = v * 0.001; + } + else + release = 0.000001; + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + v = m_makeup->value(); + // dB to linear (could use the function from m_pd.h) + makeupGain = powf(10.f, (v * 0.05f)); + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + v = m_knee->value(); + if (v >= 0 && v <= 1) + { + // knee value (0 to 1) is scaled from 0 (hard) to 0.02 (smooth). Could be scaled to a larger number. + knee = v * 0.02; + } + + // calc coefficients from run time vars + kneeCoeffs = exp(0. - (oneOverSampleRate / knee)); + kneeCoeffsMinus = 1. - kneeCoeffs; + + attackCoeffs = exp(0. - (oneOverSampleRate / attack)); + attackCoeffsMinus = 1. - attackCoeffs; + + releaseCoeff = exp(0. - (oneOverSampleRate / release)); + releaseCoeffMinus = 1. - releaseCoeff; + + // Handle both the 1 -> N and N -> N case here. + const float * source[16]; + for (int i = 0; i < sourceNumChannels; ++i) + { + if (sourceBus->numberOfChannels() == sourceNumChannels) + source[i] = sourceBus->channel(i)->data(); + else + source[i] = sourceBus->channel(0)->data(); + } + + float * dest[16]; + for (int i = 0; i < destNumChannels; ++i) + dest[i] = destinationBus->channel(i)->mutableData(); + + for (int i = 0; i < framesToProcess; ++i) + { + float peakEnv = 0; + for (int j = 0; j < sourceNumChannels; ++j) + { + peakEnv += source[j][i]; + } + // Release recursive + releaseRecursive[0] = (releaseCoeffMinus * peakEnv) + (releaseCoeff * std::max(peakEnv, float(releaseRecursive[1]))); + + // Attack recursive + attackRecursive[0] = ((attackCoeffsMinus * releaseRecursive[0]) + (attackCoeffs * attackRecursive[1])) + 0.000001f; // avoid div by 0 + + // Knee smoothening and gain reduction + kneeRecursive[0] = (kneeCoeffsMinus * std::max(std::min(((threshold + (ratio * (attackRecursive[0] - threshold))) / attackRecursive[0]), 1.), 0.)) + (kneeCoeffs * kneeRecursive[1]); + + int k = std::min(sourceNumChannels, destNumChannels); + for (int j = 0; j < k; ++j) + { + dest[j][i] = static_cast(source[j][i] * kneeRecursive[0] * makeupGain); + } + } + + releaseRecursive[1] = releaseRecursive[0]; + attackRecursive[1] = attackRecursive[0]; + kneeRecursive[1] = kneeRecursive[0]; + } + + float internalSampleRate; + double oneOverSampleRate; + + // Arrays for delay lines + double kneeRecursive[2]; + double attackRecursive[2]; + double releaseRecursive[2]; + + double attack; + double release; + double ratio; + double threshold; + + double knee; + double kneeCoeffs; + double kneeCoeffsMinus; + + double attackCoeffs; + double attackCoeffsMinus; + + double releaseCoeff; + double releaseCoeffMinus; + + double makeupGain; + + // Resets filter state + virtual void reset() override + { + // @tofix + } + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + + std::shared_ptr m_threshold; + std::shared_ptr m_ratio; + std::shared_ptr m_attack; + std::shared_ptr m_release; + std::shared_ptr m_makeup; + std::shared_ptr m_knee; +}; + +std::shared_ptr PeakCompNode::threshold() const +{ + return internalNode->m_threshold; +} + +std::shared_ptr PeakCompNode::ratio() const +{ + return internalNode->m_ratio; +} + +std::shared_ptr PeakCompNode::attack() const +{ + return internalNode->m_attack; +} + +std::shared_ptr PeakCompNode::release() const +{ + return internalNode->m_release; +} + +std::shared_ptr PeakCompNode::makeup() const +{ + return internalNode->m_makeup; +} + +std::shared_ptr PeakCompNode::knee() const +{ + return internalNode->m_knee; +} + +///////////////////////// +// Public PeakCompNode // +///////////////////////// + +PeakCompNode::PeakCompNode(AudioContext & ac) + : lab::AudioBasicProcessorNode(ac) +{ + m_processor.reset(new PeakCompNodeInternal()); + + internalNode = static_cast(m_processor.get()); + + m_params.push_back(internalNode->m_threshold); + m_params.push_back(internalNode->m_ratio); + m_params.push_back(internalNode->m_attack); + m_params.push_back(internalNode->m_release); + m_params.push_back(internalNode->m_makeup); + m_params.push_back(internalNode->m_knee); + + initialize(); +} + +PeakCompNode::~PeakCompNode() +{ + uninitialize(); +} + +} // End namespace lab diff --git a/sources/LabSound/src/extended/PingPongDelayNode.cpp b/sources/LabSound/src/extended/PingPongDelayNode.cpp new file mode 100644 index 00000000..31f213f7 --- /dev/null +++ b/sources/LabSound/src/extended/PingPongDelayNode.cpp @@ -0,0 +1,90 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioProcessor.h" +#include "LabSound/core/Macros.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/PingPongDelayNode.h" +#include "LabSound/extended/Util.h" + +#include + +using namespace lab; + +namespace lab +{ +PingPongDelayNode::PingPongDelayNode(AudioContext & ac, float tempo) +{ + input = std::make_shared(ac); + output = std::make_shared(ac); + + leftDelay = std::make_shared(ac, tempo); + rightDelay = std::make_shared(ac, tempo); + + splitterGain = std::make_shared(ac); + wetGain = std::make_shared(ac); + feedbackGain = std::make_shared(ac); + + merger = std::make_shared(ac, 2); + splitter = std::make_shared(ac, 2); + + SetDelayIndex(TempoSync::TS_8); + SetFeedback(0.5f); + SetLevel(1.0f); +} + +void PingPongDelayNode::SetTempo(float t) +{ + tempo = t; + leftDelay->SetTempo(tempo); + rightDelay->SetTempo(tempo); +} + +void PingPongDelayNode::SetFeedback(float f) +{ + auto clamped = clampTo(f, 0.0f, 1.0f); + feedbackGain->gain()->setValue(clamped); +} + +void PingPongDelayNode::SetLevel(float f) +{ + auto clamped = clampTo(f, 0.0f, 1.0f); + wetGain->gain()->setValue(clamped); +} + +void PingPongDelayNode::SetDelayIndex(TempoSync value) +{ + leftDelay->SetDelayIndex(value); + rightDelay->SetDelayIndex(value); +} + +void PingPongDelayNode::BuildSubgraph(AudioContext & ac) +{ + // Input into splitter + ac.connect(splitter, input, 0, 0); + + ac.connect(splitterGain, splitter, 0, 0); + ac.connect(splitterGain, splitter, 1, 0); + + ac.connect(wetGain, splitterGain, 0, 0); + splitterGain->gain()->setValue(0.5f); + + ac.connect(leftDelay, wetGain, 0, 0); + ac.connect(leftDelay, feedbackGain, 0, 0); + + ac.connect(rightDelay, leftDelay, 0, 0); + ac.connect(feedbackGain, rightDelay, 0, 0); + + ac.connect(merger, leftDelay, 0, 0); + ac.connect(merger, rightDelay, 0, 1); + + ac.connect(output, merger, 0, 0); + + // Activate with input->output + ac.connect(output, input, 0, 0); +} +} diff --git a/sources/LabSound/src/extended/PolyBLEPNode.cpp b/sources/LabSound/src/extended/PolyBLEPNode.cpp new file mode 100644 index 00000000..49df379e --- /dev/null +++ b/sources/LabSound/src/extended/PolyBLEPNode.cpp @@ -0,0 +1,482 @@ +// License: BSD 2 Clause +// Copyright (C) 2020+, The LabSound Authors. All rights reserved. + +#include "LabSound/extended/PolyBLEPNode.h" +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/Registry.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioContext.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/WaveTable.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/VectorMath.h" + +#include + +using namespace lab; + +// clang-format off + +// Adapted from "Phaseshaping Oscillator Algorithms for Musical Sound +// Synthesis" by Jari Kleimola, Victor Lazzarini, Joseph Timoney, and Vesa +// Valimaki. http://www.acoustics.hut.fi/publications/papers/smc2010-phaseshaping/ + +template +inline int64_t bitwise_or_zero(const T & x) { return static_cast(x) | 0; } + +template +inline T square(const T & x) { return x * x; } + +inline double blep(const double t, const double dt) +{ + if (t < dt) return -square(t / dt - 1); + else if (t > 1 - dt) return square((t - 1) / dt + 1); + else return 0.0; +} + +inline double blamp(double t, const double dt) +{ + if (t < dt) + { + t = t / dt - 1.0; + return -1.0 / 3.0 * square(t) * t; + } + else if (t > 1.0 - dt) + { + t = (t - 1.0) / dt + 1.0; + return 1.0 / 3.0 * square(t) * t; + } + else return 0.0; +} + +// PolyBLEP, a quasi-bandlimited oscillator +class lab::PolyBlepImpl +{ + double half() const + { + double t2 = t + 0.5; + t2 -= bitwise_or_zero(t2); + + double y = (t < 0.5 ? 2 * std::sin(LAB_TAU * t) - 2 / LAB_PI : -2 / LAB_PI); + y += LAB_TAU * freqInSecondsPerSample * (blamp(t, freqInSecondsPerSample) + blamp(t2, freqInSecondsPerSample)); + + return amplitude * y; + } + + double full() const + { + double _t = this->t + 0.25; + _t -= bitwise_or_zero(_t); + + double y = 2 * std::sin(LAB_PI * _t) - 4 / LAB_PI; + y += LAB_TAU * freqInSecondsPerSample * blamp(_t, freqInSecondsPerSample); + + return amplitude * y; + } + + double tri() const + { + double t1 = t + 0.25; + t1 -= bitwise_or_zero(t1); + + double t2 = t + 0.75; + t2 -= bitwise_or_zero(t2); + + double y = t * 4; + + if (y >= 3) + { + y -= 4; + } + else if (y > 1) + { + y = 2 - y; + } + + y += 4 * freqInSecondsPerSample * (blamp(t1, freqInSecondsPerSample) - blamp(t2, freqInSecondsPerSample)); + + return amplitude * y; + } + + double tri2() const + { + double pulseWidth = std::fmax(0.0001, std::fmin(0.9999, this->pulseWidth)); + + double t1 = t + 0.5 * pulseWidth; + t1 -= bitwise_or_zero(t1); + + double t2 = t + 1 - 0.5 * pulseWidth; + t2 -= bitwise_or_zero(t2); + + double y = t * 2; + + if (y >= 2 - pulseWidth) + { + y = (y - 2) / pulseWidth; + } + else if (y >= pulseWidth) + { + y = 1 - (y - pulseWidth) / (1 - pulseWidth); + } + else + { + y /= pulseWidth; + } + + y += freqInSecondsPerSample / (pulseWidth - pulseWidth * pulseWidth) * (blamp(t1, freqInSecondsPerSample) - blamp(t2, freqInSecondsPerSample)); + + return amplitude * y; + } + + double trip() const + { + double t1 = t + 0.75 + 0.5 * pulseWidth; + t1 -= bitwise_or_zero(t1); + + double y; + if (t1 >= pulseWidth) + { + y = -pulseWidth; + } + else + { + y = 4 * t1; + y = (y >= 2 * pulseWidth ? 4 - y / pulseWidth - pulseWidth : y / pulseWidth - pulseWidth); + } + + if (pulseWidth > 0) + { + double t2 = t1 + 1 - 0.5 * pulseWidth; + t2 -= bitwise_or_zero(t2); + + double t3 = t1 + 1 - pulseWidth; + t3 -= bitwise_or_zero(t3); + y += 2 * freqInSecondsPerSample / pulseWidth * (blamp(t1, freqInSecondsPerSample) - 2 * blamp(t2, freqInSecondsPerSample) + blamp(t3, freqInSecondsPerSample)); + } + return amplitude * y; + } + + double trap() const + { + double y = 4 * t; + if (y >= 3) + { + y -= 4; + } + else if (y > 1) + { + y = 2 - y; + } + y = std::fmax(-1, std::fmin(1, 2 * y)); + + double t1 = t + 0.125; + t1 -= bitwise_or_zero(t1); + + double t2 = t1 + 0.5; + t2 -= bitwise_or_zero(t2); + + // Triangle #1 + y += 4 * freqInSecondsPerSample * (blamp(t1, freqInSecondsPerSample) - blamp(t2, freqInSecondsPerSample)); + + t1 = t + 0.375; + t1 -= bitwise_or_zero(t1); + + t2 = t1 + 0.5; + t2 -= bitwise_or_zero(t2); + + // Triangle #2 + y += 4 * freqInSecondsPerSample * (blamp(t1, freqInSecondsPerSample) - blamp(t2, freqInSecondsPerSample)); + + return amplitude * y; + } + + double trap2() const + { + double pulseWidth = std::fmin(0.9999, this->pulseWidth); + double scale = 1 / (1 - pulseWidth); + + double y = 4 * t; + if (y >= 3) + { + y -= 4; + } + else if (y > 1) + { + y = 2 - y; + } + y = std::fmax(-1, std::fmin(1, scale * y)); + + double t1 = t + 0.25 - 0.25 * pulseWidth; + t1 -= bitwise_or_zero(t1); + + double t2 = t1 + 0.5; + t2 -= bitwise_or_zero(t2); + + // Triangle #1 + y += scale * 2 * freqInSecondsPerSample * (blamp(t1, freqInSecondsPerSample) - blamp(t2, freqInSecondsPerSample)); + + t1 = t + 0.25 + 0.25 * pulseWidth; + t1 -= bitwise_or_zero(t1); + + t2 = t1 + 0.5; + t2 -= bitwise_or_zero(t2); + + // Triangle #2 + y += scale * 2 * freqInSecondsPerSample * (blamp(t1, freqInSecondsPerSample) - blamp(t2, freqInSecondsPerSample)); + + return amplitude * y; + } + + double sqr() const + { + double t2 = t + 0.5; + t2 -= bitwise_or_zero(t2); + + double y = t < 0.5 ? 1 : -1; + y += blep(t, freqInSecondsPerSample) - blep(t2, freqInSecondsPerSample); + + return amplitude * y; + } + + double sqr2() const + { + double t1 = t + 0.875 + 0.25 * (pulseWidth - 0.5); + t1 -= bitwise_or_zero(t1); + + double t2 = t + 0.375 + 0.25 * (pulseWidth - 0.5); + t2 -= bitwise_or_zero(t2); + + // Square #1 + double y = t1 < 0.5 ? 1 : -1; + + y += blep(t1, freqInSecondsPerSample) - blep(t2, freqInSecondsPerSample); + + t1 += 0.5 * (1 - pulseWidth); + t1 -= bitwise_or_zero(t1); + + t2 += 0.5 * (1 - pulseWidth); + t2 -= bitwise_or_zero(t2); + + // Square #2 + y += t1 < 0.5 ? 1 : -1; + + y += blep(t1, freqInSecondsPerSample) - blep(t2, freqInSecondsPerSample); + + return amplitude * 0.5 * y; + } + + double rect() const + { + double t2 = t + 1 - pulseWidth; + t2 -= bitwise_or_zero(t2); + + double y = -2 * pulseWidth; + if (t < pulseWidth) + { + y += 2; + } + + y += blep(t, freqInSecondsPerSample) - blep(t2, freqInSecondsPerSample); + + return amplitude * y; + } + + double saw() const + { + double _t = t + 0.5; + _t -= bitwise_or_zero(_t); + + double y = 2 * _t - 1; + y -= blep(_t, freqInSecondsPerSample); + + return amplitude * y; + } + + double ramp() const + { + double _t = t; + _t -= bitwise_or_zero(_t); + + double y = 1 - 2 * _t; + y += blep(_t, freqInSecondsPerSample); + + return amplitude * y; + } + + PolyBLEPType type; + + double sampleRate; + double freqInSecondsPerSample; + double amplitude {1.f}; // Frequency dependent gain [0.0..1.0] + double pulseWidth; // [0.0..1.0] + double t {0.0}; // The current phase [0.0..1.0) of the oscillator. + + void setFrequencyInSecondsPerSample(double time) { freqInSecondsPerSample = time; } + +public: + + PolyBlepImpl(double _sampleRate = LABSOUND_DEFAULT_SAMPLERATE) : sampleRate(_sampleRate) + { + setWaveform(PolyBLEPType::TRIANGLE); + setFrequency(440.0); + setPulseWidth(0.5); + } + + ~PolyBlepImpl() = default; + + double get() const + { + switch (type) + { + case PolyBLEPType::TRIANGLE: return tri(); + case PolyBLEPType::SQUARE: return sqr(); + case PolyBLEPType::RECTANGLE: return rect(); + case PolyBLEPType::SAWTOOTH: return saw(); + case PolyBLEPType::RAMP: return ramp(); + case PolyBLEPType::MODIFIED_TRIANGLE: return tri2(); + case PolyBLEPType::MODIFIED_SQUARE: return sqr2(); + case PolyBLEPType::HALF_WAVE_RECTIFIED_SINE: return half(); + case PolyBLEPType::FULL_WAVE_RECTIFIED_SINE: return full(); + case PolyBLEPType::TRIANGULAR_PULSE: return trip(); + case PolyBLEPType::TRAPEZOID_FIXED: return trap(); + case PolyBLEPType::TRAPEZOID_VARIABLE: return trap2(); + default: return 0.0; + } + } + + void incrementPhase() + { + t += freqInSecondsPerSample; + t -= bitwise_or_zero(t); + } + + double getPhaseAndIncrement() + { + const double sample = get(); + incrementPhase(); + return sample; + } + + void syncToPhase(const double phase) + { + t = phase; + if (t >= 0.0) t -= bitwise_or_zero(t); + else t += 1.0 - bitwise_or_zero(t); + } + + void setFrequency(const double freqInHz) { setFrequencyInSecondsPerSample(freqInHz / sampleRate); } + void setPulseWidth(const double pw) { pulseWidth = pw; } + void setWaveform(const PolyBLEPType waveform) { type = waveform; } + void setSampleRate(float sr) { sampleRate = sr; } + double getFreqInHz() const { return freqInSecondsPerSample * sampleRate; } +}; + +// clang-format on + +static char const * const s_polyblep_types[] = { + "Triangle", "Square", "Sawtooth", "Ramp", "Modified_Triangle", "Modified_Square", "Half Wave Rectified Sine", + "Full Wave Rectified Sine", "Triangular Pulse", "Trapezoid Fixed", "Trapezoid Variable", + nullptr}; + +PolyBLEPNode::PolyBLEPNode(AudioContext & ac) + : AudioScheduledSourceNode(ac) +{ + m_type = std::make_shared("type", "TYPE", s_polyblep_types); + m_frequency = std::make_shared("frequency", "FREQ", 440, 0, 100000); + m_amplitude = std::make_shared("amplitude", "AMPL", 1, 0, 100000); + + m_params.push_back(m_frequency); + m_params.push_back(m_amplitude); + + m_type->setValueChanged([this]() { setType(PolyBLEPType(m_type->valueUint32())); }); + m_settings.push_back(m_type); + + // An oscillator is always mono. + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + + polyblep.reset(new PolyBlepImpl()); // @fixme - needs sample rate + setType(PolyBLEPType::TRIANGLE); + initialize(); +} + +PolyBLEPNode::~PolyBLEPNode() +{ + uninitialize(); +} + +PolyBLEPType PolyBLEPNode::type() const +{ + return PolyBLEPType(m_type->valueUint32()); +} + +void PolyBLEPNode::setType(PolyBLEPType type) +{ + m_type->setUint32(static_cast(type)); +} + +void PolyBLEPNode::processPolyBLEP(ContextRenderLock & r, int bufferSize, int offset, int count) +{ + AudioBus * outputBus = output(0)->bus(r); + if (!r.context() || !isInitialized() || !outputBus->numberOfChannels()) + { + outputBus->zero(); + return; + } + + const float sample_rate = r.context()->sampleRate(); + polyblep->setSampleRate(sample_rate); + + int nonSilentFramesToProcess = count; + + if (!nonSilentFramesToProcess) + { + outputBus->zero(); + return; + } + + if (bufferSize > m_amplitudeValues.size()) m_amplitudeValues.allocate(bufferSize); + + // fetch the amplitudes + float * amplitudes = m_amplitudeValues.data(); + if (m_amplitude->hasSampleAccurateValues()) + { + m_amplitude->calculateSampleAccurateValues(r, amplitudes, bufferSize); + } + else + { + m_amplitude->smooth(r); + float amp = m_amplitude->smoothedValue(); + for (int i = 0; i < bufferSize; ++i) amplitudes[i] = amp; + } + + // calculate and write the wave + float* destination = outputBus->channel(0)->mutableData() + offset; + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + polyblep->setFrequency(m_frequency->value()); + polyblep->setWaveform(static_cast(m_type->valueUint32())); + + for (int i = offset; i < offset + nonSilentFramesToProcess; ++i) + { + destination[i] = (amplitudes[i] * static_cast(polyblep->getPhaseAndIncrement())); + } + + outputBus->clearSilentFlag(); +} + +void PolyBLEPNode::process(ContextRenderLock & r, int bufferSize) +{ + return processPolyBLEP(r, bufferSize, _scheduler._renderOffset, _scheduler._renderLength); +} + +bool PolyBLEPNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} diff --git a/sources/LabSound/src/extended/PowerMonitorNode.cpp b/sources/LabSound/src/extended/PowerMonitorNode.cpp new file mode 100644 index 00000000..8e378c4c --- /dev/null +++ b/sources/LabSound/src/extended/PowerMonitorNode.cpp @@ -0,0 +1,107 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (c) 2013 Nick Porcino, All rights reserved. + +#include "LabSound/extended/PowerMonitorNode.h" +#include "LabSound/extended/Registry.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/Macros.h" + +namespace lab +{ + +using namespace lab; + +PowerMonitorNode::PowerMonitorNode(AudioContext & ac) + : AudioBasicInspectorNode(ac, 2) + , _db(0) + , _windowSize(std::make_shared("windowSize", "WNDW", AudioSetting::Type::Integer)) +{ + _windowSize->setUint32(128); + m_settings.push_back(_windowSize); + initialize(); +} + +PowerMonitorNode::~PowerMonitorNode() +{ + uninitialize(); +} + +void PowerMonitorNode::windowSize(int ws) +{ + _windowSize->setUint32(static_cast(ws)); +} + +int PowerMonitorNode::windowSize() const +{ + return _windowSize->valueUint32(); +} + +void PowerMonitorNode::process(ContextRenderLock & r, int bufferSize) +{ + // deal with the output in case the power monitor node is embedded in a signal chain for some reason. + // It's merely a pass through though. + + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !input(0)->isConnected()) + { + if (outputBus) + outputBus->zero(); + return; + } + + AudioBus * bus = input(0)->bus(r); + bool isBusGood = bus && bus->numberOfChannels() > 0 && bus->channel(0)->length() >= bufferSize; + if (!isBusGood) + { + outputBus->zero(); + return; + } + + // specific to this node + { + std::vector channels; + int numberOfChannels = bus->numberOfChannels(); + for (int i = 0; i < numberOfChannels; ++i) + { + channels.push_back(bus->channel(i)->data()); + } + + int start = static_cast(bufferSize) - static_cast(_windowSize->valueUint32()); + int end = static_cast(bufferSize); + if (start < 0) + start = 0; + + float power = 0; + for (int c = 0; c < numberOfChannels; ++c) + for (int i = start; i < end; ++i) + { + float p = channels[c][i]; + power += p * p; + } + float rms = sqrtf(power / (numberOfChannels * bufferSize)); + + // Protect against accidental overload due to bad values in input stream + const float kMinPower = 0.000125f; + if (std::isinf(power) || std::isnan(power) || power < kMinPower) + power = kMinPower; + + // db is 20 * log10(rms/Vref) where Vref is 1.0 + _db = 20.0f * logf(rms) / logf(10.0f); + } + // to here + + if (bus != outputBus) + outputBus->copyFrom(*bus); +} + +void PowerMonitorNode::reset(ContextRenderLock &) +{ + _db = 0; +} + +} // namespace lab diff --git a/sources/LabSound/src/extended/RecorderNode.cpp b/sources/LabSound/src/extended/RecorderNode.cpp new file mode 100644 index 00000000..975526fb --- /dev/null +++ b/sources/LabSound/src/extended/RecorderNode.cpp @@ -0,0 +1,234 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/LabSound.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/extended/RecorderNode.h" +#include "internal/Assertions.h" +#include "LabSound/extended/Registry.h" + +#include "libnyquist/Encoders.h" + +using namespace lab; + +RecorderNode::RecorderNode(AudioContext& r, int channelCount) + : AudioNode(r) +{ + m_sampleRate = r.sampleRate(); + m_channelCount = channelCount; + m_channelCountMode = ChannelCountMode::Explicit; + m_channelInterpretation = ChannelInterpretation::Discrete; + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + initialize(); +} + +RecorderNode::RecorderNode(AudioContext & ac, const AudioStreamConfig & outConfig) + : AudioNode(ac) +{ + m_sampleRate = outConfig.desired_samplerate; + m_channelCount = outConfig.desired_channels; + m_channelCountMode = ChannelCountMode::Explicit; + m_channelInterpretation = ChannelInterpretation::Discrete; + addInput(std::unique_ptr(new AudioNodeInput(this))); + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + initialize(); +} + +RecorderNode::~RecorderNode() +{ + uninitialize(); +} + + +void RecorderNode::process(ContextRenderLock & r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + AudioBus * inputBus = input(0)->bus(r); + + bool has_input = inputBus != nullptr && input(0)->isConnected() && inputBus->numberOfChannels() > 0; + if ((!isInitialized() || !has_input) && outputBus) + { + outputBus->zero(); + } + + if (!has_input) + { + // nothing to record. + if (outputBus) + outputBus->zero(); + return; + } + + // the recorder will conform the number of output channels to the number of input + // in order that it can function as a pass-through node. + const int inputBusNumChannels = inputBus->numberOfChannels(); + int outputBusNumChannels = inputBusNumChannels; + if (outputBus) + { + outputBusNumChannels = outputBus->numberOfChannels(); + + if (inputBusNumChannels != outputBusNumChannels) + { + output(0)->setNumberOfChannels(r, inputBusNumChannels); + outputBusNumChannels = inputBusNumChannels; + outputBus = output(0)->bus(r); + } + } + + if (m_recording) + { + const int numChannels = std::min(inputBusNumChannels, outputBusNumChannels); + + std::vector channels; + for (int i = 0; i < numChannels; ++i) + { + channels.push_back(inputBus->channel(i)->data()); + } + + if (m_data.size() < numChannels) + { + // allocate the recording buffers lazily when the number of input channels is finally known + for (int i = 0; i < numChannels; ++i) + { + m_data.emplace_back(std::vector()); + m_data[i].reserve(1024 * 1024); + } + } + + // copy the output. @TODO this should be a memcpy + std::lock_guard lock(m_mutex); + for (int c = 0; c < numChannels; ++c) + { + for (int i = 0; i < bufferSize; ++i) + m_data[c].push_back(channels[c][i]); + } + } + + // pass through + if (outputBus) + outputBus->copyFrom(*inputBus); +} + + +float RecorderNode::recordedLengthInSeconds() const +{ + size_t recordedChannelCount = m_data.size(); + if (!recordedChannelCount) + return 0; + + size_t numSamples = m_data[0].size(); + return numSamples / m_sampleRate; +} + + +bool RecorderNode::writeRecordingToWav(const std::string & filenameWithWavExtension, bool mixToMono) +{ + size_t recordedChannelCount = m_data.size(); + if (!recordedChannelCount) return false; + size_t numSamples = m_data[0].size(); + if (!numSamples) return false; + + std::unique_ptr fileData(new nqr::AudioData()); + + std::vector> clear_data; + for (int i = 0; i < recordedChannelCount; ++i) + clear_data.emplace_back(std::vector()); + + { + std::lock_guard lock(m_mutex); + m_data.swap(clear_data); + } + + if (recordedChannelCount == 1) + { + // only one channel recorded + fileData->samples.resize(numSamples); + fileData->channelCount = 1; + float* dst = fileData->samples.data(); + memcpy(dst, clear_data[0].data(), sizeof(float) * numSamples); + } + else if (recordedChannelCount > 1 && mixToMono) + { + // Mix channels to mono if requested, and there's more than one input channel. + fileData->samples.resize(numSamples); + fileData->channelCount = 1; + float* dst = fileData->samples.data(); + for (size_t i = 0; i < numSamples; i++) + { + dst[i] = 0; + for (size_t j = 0; j < m_channelCount; ++j) + dst[i] += clear_data[j][i]; + dst[i] *= 1.f / static_cast(m_channelCount); + } + } + else + { + // straight through + fileData->samples.resize(numSamples * recordedChannelCount); + fileData->channelCount = static_cast(recordedChannelCount); + float* dst = fileData->samples.data(); + for (size_t i = 0; i < numSamples; i++) + { + for (size_t j = 0; j < recordedChannelCount; ++j) + *dst++ = clear_data[j][i]; + } + } + + fileData->sampleRate = static_cast(m_sampleRate); + fileData->sourceFormat = nqr::PCM_FLT; + + nqr::EncoderParams params = {static_cast(recordedChannelCount), nqr::PCM_FLT, nqr::DITHER_NONE}; + bool result = nqr::EncoderError::NoError == nqr::encode_wav_to_disk(params, fileData.get(), filenameWithWavExtension); + return result; +} + +std::unique_ptr RecorderNode::createBusFromRecording(bool mixToMono) +{ + std::lock_guard lock(m_mutex); + + int numSamples = static_cast(m_data[0].size()); + if (!numSamples) return {}; + + const int result_channel_count = mixToMono ? 1 : m_channelCount; + + // Create AudioBus where we'll put the PCM audio data + std::unique_ptr result_audioBus(new lab::AudioBus(result_channel_count, numSamples)); + result_audioBus->setSampleRate(m_sampleRate); + + // Mix channels to mono if requested, and there's more than one input channel. + if (m_channelCount > 1 && mixToMono) + { + float* destinationMono = result_audioBus->channel(0)->mutableData(); + + for (int i = 0; i < numSamples; i++) + { + destinationMono[i] = 0; + for (size_t j = 0; j < m_channelCount; ++j) + destinationMono[i] += m_data[j][i]; + destinationMono[i] *= 1.f / static_cast(m_channelCount); + } + } + else + { + for (int i = 0; i < result_channel_count; ++i) + { + memcpy(result_audioBus->channel(i)->mutableData(), m_data[0].data(), numSamples * sizeof(float)); + } + } + + for (int i = 0; i < m_data.size(); ++i) + m_data[i].clear(); + + return result_audioBus; +} + + +void RecorderNode::reset(ContextRenderLock & r) +{ + std::lock_guard lock(m_mutex); + for (int i = 0; i < m_data.size(); ++i) + m_data[i].clear(); +} diff --git a/sources/LabSound/src/extended/Registry.cpp b/sources/LabSound/src/extended/Registry.cpp new file mode 100644 index 00000000..a80a869b --- /dev/null +++ b/sources/LabSound/src/extended/Registry.cpp @@ -0,0 +1,72 @@ + +#include "LabSound/extended/Registry.h" + +#include +#include +#include +#include + + +void LabSoundRegistryInit(lab::NodeRegistry&); + +namespace lab { + +std::once_flag instance_flag; +NodeRegistry& NodeRegistry::Instance() +{ + static NodeRegistry s_registry; + std::call_once(instance_flag, []() { LabSoundRegistryInit(s_registry); }); + return s_registry; +} + +struct NodeDescriptor +{ + std::string name; + CreateNodeFn c; + DeleteNodeFn d; +}; + +struct NodeRegistry::Detail +{ + std::map descriptors; +}; + + +NodeRegistry::NodeRegistry() : +_detail(new Detail()) +{ +} + +NodeRegistry::~NodeRegistry() +{ + delete _detail; +} + +bool NodeRegistry::Register(char const* const name, CreateNodeFn c, DeleteNodeFn d) +{ + printf("Registering %s\n", name); + _detail->descriptors[name] = { name, c, d }; + return true; +} + +std::vector NodeRegistry::Names() const +{ + std::vector names; + for (const auto& i : _detail->descriptors) + names.push_back(i.second.name); + + return names; +} + +lab::AudioNode* NodeRegistry::Create(const std::string& n, lab::AudioContext& ac) +{ + auto i = _detail->descriptors.find(n); + if (i == _detail->descriptors.end()) + return nullptr; + + return i->second.c(ac); +} + + + +} // lab diff --git a/sources/LabSound/src/extended/SfxrNode.cpp b/sources/LabSound/src/extended/SfxrNode.cpp new file mode 100644 index 00000000..d694205c --- /dev/null +++ b/sources/LabSound/src/extended/SfxrNode.cpp @@ -0,0 +1,1180 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. +// This files contains portions of sfxr. The original code contained the following notes and license + +/* + (http://www.drpetter.se/project_sfxr.html) + + ----------------------------- + sfxr - sound effect generator + ----------------------------- + by DrPetter, 2007-12-14 + developed for LD48#10 + ----------------------------- + + + Basic usage: + + Start the application, then hit + some of the buttons on the left + side to generate random sounds + matching the button descriptions. + + Press "Export .WAV" to save the + current sound as a WAV audio file. + Click the buttons below to change + WAV format in terms of bits per + sample and sample rate. + + If you find a sound that is sort + of interesting but not quite what + you want, you can drag some sliders + around until it sounds better. + + The Randomize button generates + something completely random. + + Mutate slightly alters the current + parameters to automatically create + a variation of the sound. + + + + Advanced usage: + + Figure out what each slider does and + use them to adjust particular aspects + of the current sound... + + Press the right mouse button on a slider + to reset it to a value of zero. + + Press Space or Enter to play the current sound. + + The Save/Load sound buttons allow saving + and loading of program parameters to work + on a sound over several sessions. + + Volume setting is saved with the sound and + exported to WAV. If you increase it too much + there's a risk of clipping. + + Some parameters influence the sound during + playback (particularly when using a non-zero + repeat speed), and dragging these sliders + can cause some interesting effects. + To record this you will need to use an external + recording application, for instance Audacity. + Set the recording source in that application + to "Wave", "Stereo Mix", "Mixed Output" or similar. + + Using an external sound editor to capture and edit + sound can also be used to string several sounds + together for more complex results. + + Parameter description: + - The top four buttons select base waveform + - First four parameters control the volume envelope + Attack is the beginning of the sound, + longer attack means a smoother start. + Sustain is how long the volume is held constant + before fading out. + Increase Sustain Punch to cause a popping + effect with increased (and falling) volume + during the sustain phase. + Decay is the fade-out time. + - Next six are for controlling the sound pitch or + frequency. + Start frequency is pretty obvious. Has a large + impact on the overall sound. + Min frequency represents a cutoff that stops all + sound if it's passed during a downward slide. + Slide sets the speed at which the frequency should + be swept (up or down). + Delta slide is the "slide of slide", or rate of change + in the slide speed. + Vibrato depth/speed makes for an oscillating + frequency effect at various strengths and rates. + - Then we have two parameters for causing an abrupt + change in pitch after a ceratin delay. + Amount is pitch change (up or down) + and Speed indicates time to wait before changing + the pitch. + - Following those are two parameters specific to the + squarewave waveform. + The duty cycle of a square describes its shape + in terms of how large the positive vs negative + sections are. It can be swept up or down by + changing the second parameter. + - Repeat speed, when not zero, causes the frequency + and duty parameters to be reset at regular intervals + while the envelope and filter continue unhindered. + This can make for some interesting pulsating effects. + - Phaser offset overlays a delayed copy of the audio + stream on top of itself, resulting in a kind of tight + reverb or sci-fi effect. + This parameter can also be swept like many others. + - Finally, the bottom five sliders control two filters + which are applied after all other effects. + The first one is a resonant lowpass filter which has + a sweepable cutoff frequency. + The other is a highpass filter which can be used to + remove undesired low frequency hum in "light" sounds. + + + ---------------------- + + + License + ------- + + Basically, I don't care what you do with it, anything goes. + + To please all the troublesome folks who request a formal license, + I attach the "MIT license" as follows: + + -- + + Copyright (c) 2007 Tomas Pettersson + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + + + ---------------------- + + http://www.drpetter.se + + drpetter@gmail.com + + ---------------------- + +*/ + +#include "LabSound/core/AudioNodeOutput.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/SfxrNode.h" +#include "LabSound/extended/Registry.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioSetting.h" + +#include +#include +#include +#include +#include + +using namespace std; +using namespace lab; +using namespace lab; + +inline uint32_t rnd(uint32_t n) +{ + if (n == 1) + return ((rand() & 0x7fff) > 0x3fff) ? 1 : 0; + return rand() % (n + 1); +} + +#define PI 3.14159265f + +inline float frnd(float range) +{ + return (float) rnd(10000) / 10000 * range; +} + +inline float rndr(float from, float to) +{ + return frnd(1) * (to - from) + from; +} + +inline float sqr(float a) +{ + return a * a; +} +inline float cube(float a) +{ + return a * a * a; +} +inline float flurp(float a) +{ + return a / (1.0f - a); +} + +class SfxrNode::Sfxr +{ +public: + int wave_type; + + float p_base_freq; + float p_freq_limit; + float p_freq_ramp; + float p_freq_dramp; + float p_duty; + float p_duty_ramp; + + float p_vib_strength; + float p_vib_speed; + float p_vib_delay; + + float p_env_attack; + float p_env_sustain; + float p_env_decay; + float p_env_punch; + + bool filter_on; + float p_lpf_resonance; + float p_lpf_freq; + float p_lpf_ramp; + float p_hpf_freq; + float p_hpf_ramp; + + float p_pha_offset; + float p_pha_ramp; + + float p_repeat_speed; + + float p_arp_speed; + float p_arp_mod; + + float master_vol; + + float sound_vol; + + bool playing_sample; + int phase; + double fperiod; + double fmaxperiod; + double fslide; + double fdslide; + int period; + float square_duty; + float square_slide; + int env_stage; + int env_time; + int env_length[3]; + float env_vol; + float fphase; + float fdphase; + int iphase; + float phaser_buffer[1024]; + int ipp; + float noise_buffer[32]; + float fltp; + float fltdp; + float fltw; + float fltw_d; + float fltdmp; + float fltphp; + float flthp; + float flthp_d; + float vib_phase; + float vib_speed; + float vib_amp; + int rep_time; + int rep_limit; + int arp_time; + int arp_limit; + double arp_mod; + + int wav_bits; + int wav_freq; + + int file_sampleswritten; + float filesample; + int fileacc; + + void ResetParams(); + void ResetSample(bool restart); + void PlaySample(); + void SynthSample(size_t length, float * buffer, FILE * file); +}; + +void SfxrNode::Sfxr::ResetParams() +{ + wave_type = 0; + + p_base_freq = 0.3f; + p_freq_limit = 0.0f; + p_freq_ramp = 0.0f; + p_freq_dramp = 0.0f; + p_duty = 0.0f; + p_duty_ramp = 0.0f; + + p_vib_strength = 0.0f; + p_vib_speed = 0.0f; + p_vib_delay = 0.0f; + + p_env_attack = 0.0f; + p_env_sustain = 0.3f; + p_env_decay = 0.4f; + p_env_punch = 0.0f; + + filter_on = false; + p_lpf_resonance = 0.0f; + p_lpf_freq = 1.0f; + p_lpf_ramp = 0.0f; + p_hpf_freq = 0.0f; + p_hpf_ramp = 0.0f; + + p_pha_offset = 0.0f; + p_pha_ramp = 0.0f; + + p_repeat_speed = 0.0f; + + p_arp_speed = 0.0f; + p_arp_mod = 0.0f; + + wav_bits = 16; + wav_freq = 44100; + sound_vol = 0.5f; + master_vol = 0.05f; +} + +void SfxrNode::Sfxr::ResetSample(bool restart) +{ + if (!restart) + phase = 0; + fperiod = 100.0 / (p_base_freq * p_base_freq + 0.001); + period = (int) fperiod; + fmaxperiod = 100.0 / (p_freq_limit * p_freq_limit + 0.001); + fslide = 1.0 - pow((double) p_freq_ramp, 3.0) * 0.01; + fdslide = -pow((double) p_freq_dramp, 3.0) * 0.000001; + square_duty = 0.5f - p_duty * 0.5f; + square_slide = -p_duty_ramp * 0.00005f; + if (p_arp_mod >= 0.0f) + arp_mod = 1.0 - pow((double) p_arp_mod, 2.0) * 0.9; + else + arp_mod = 1.0 + pow((double) p_arp_mod, 2.0) * 10.0; + arp_time = 0; + arp_limit = (int) (pow(1.0f - p_arp_speed, 2.0f) * 20000 + 32); + if (p_arp_speed == 1.0f) + arp_limit = 0; + if (!restart) + { + // reset filter + fltp = 0.0f; + fltdp = 0.0f; + fltw = pow(p_lpf_freq, 3.0f) * 0.1f; + fltw_d = 1.0f + p_lpf_ramp * 0.0001f; + fltdmp = 5.0f / (1.0f + pow(p_lpf_resonance, 2.0f) * 20.0f) * (0.01f + fltw); + if (fltdmp > 0.8f) fltdmp = 0.8f; + fltphp = 0.0f; + flthp = pow(p_hpf_freq, 2.0f) * 0.1f; + flthp_d = 1.0f + p_hpf_ramp * 0.0003f; + // reset vibrato + vib_phase = 0.0f; + vib_speed = pow(p_vib_speed, 2.0f) * 0.01f; + vib_amp = p_vib_strength * 0.5f; + // reset envelope + env_vol = 0.0f; + env_stage = 0; + env_time = 0; + env_length[0] = (int) (p_env_attack * p_env_attack * 100000.0f); + env_length[1] = (int) (p_env_sustain * p_env_sustain * 100000.0f); + env_length[2] = (int) (p_env_decay * p_env_decay * 100000.0f); + + fphase = pow(p_pha_offset, 2.0f) * 1020.0f; + if (p_pha_offset < 0.0f) fphase = -fphase; + fdphase = pow(p_pha_ramp, 2.0f) * 1.0f; + if (p_pha_ramp < 0.0f) fdphase = -fdphase; + iphase = abs((int) fphase); + ipp = 0; + for (int i = 0; i < 1024; i++) + phaser_buffer[i] = 0.0f; + + for (int i = 0; i < 32; i++) + noise_buffer[i] = frnd(2.0f) - 1.0f; + + rep_time = 0; + rep_limit = (int) (pow(1.0f - p_repeat_speed, 2.0f) * 20000 + 32); + if (p_repeat_speed == 0.0f) + rep_limit = 0; + } +} + +void SfxrNode::Sfxr::PlaySample() +{ + ResetSample(false); + playing_sample = true; +} + +void SfxrNode::Sfxr::SynthSample(size_t length, float * buffer, FILE * file) +{ + for (int i = 0; i < length; i++) + { + if (!playing_sample) + break; + + rep_time++; + if (rep_limit != 0 && rep_time >= rep_limit) + { + rep_time = 0; + ResetSample(true); + } + + // frequency envelopes/arpeggios + arp_time++; + if (arp_limit != 0 && arp_time >= arp_limit) + { + arp_limit = 0; + fperiod *= arp_mod; + } + fslide += fdslide; + fperiod *= fslide; + if (fperiod > fmaxperiod) + { + fperiod = fmaxperiod; + if (p_freq_limit > 0.0f) + playing_sample = false; + } + float rfperiod = static_cast(fperiod); + if (vib_amp > 0.0f) + { + vib_phase += vib_speed; + rfperiod = static_cast(fperiod * (1.0 + sin(vib_phase) * vib_amp)); + } + period = (int) rfperiod; + if (period < 8) period = 8; + square_duty += square_slide; + if (square_duty < 0.0f) square_duty = 0.0f; + if (square_duty > 0.5f) square_duty = 0.5f; + // volume envelope + env_time++; + if (env_time > env_length[env_stage]) + { + env_time = 0; + env_stage++; + if (env_stage == 3) + playing_sample = false; + } + if (env_stage == 0) + env_vol = (float) env_time / env_length[0]; + if (env_stage == 1) + env_vol = 1.0f + pow(1.0f - (float) env_time / env_length[1], 1.0f) * 2.0f * p_env_punch; + if (env_stage == 2) + env_vol = 1.0f - (float) env_time / env_length[2]; + + // phaser step + fphase += fdphase; + iphase = abs((int) fphase); + if (iphase > 1023) iphase = 1023; + + if (flthp_d != 0.0f) + { + flthp *= flthp_d; + if (flthp < 0.00001f) flthp = 0.00001f; + if (flthp > 0.1f) flthp = 0.1f; + } + + float ssample = 0.0f; + for (int si = 0; si < 8; si++) // 8x supersampling + { + float sample = 0.0f; + phase++; + if (phase >= period) + { + // phase=0; + phase %= period; + if (wave_type == NOISE) + for (int i = 0; i < 32; i++) + noise_buffer[i] = frnd(2.0f) - 1.0f; + } + // base waveform + float fp = (float) phase / period; + switch (wave_type) + { + case 0: // square + if (fp < square_duty) + sample = 0.5f; + else + sample = -0.5f; + break; + case 1: // sawtooth + sample = 1.0f - fp * 2; + break; + case 2: // sine + sample = (float) sin(fp * 2 * PI); + break; + case 3: // noise + sample = noise_buffer[phase * 32 / period]; + break; + } + // lp filter + float pp = fltp; + fltw *= fltw_d; + if (fltw < 0.0f) fltw = 0.0f; + if (fltw > 0.1f) fltw = 0.1f; + if (p_lpf_freq != 1.0f) + { + fltdp += (sample - fltp) * fltw; + fltdp -= fltdp * fltdmp; + } + else + { + fltp = sample; + fltdp = 0.0f; + } + fltp += fltdp; + // hp filter + fltphp += fltp - pp; + fltphp -= fltphp * flthp; + sample = fltphp; + // phaser + phaser_buffer[ipp & 1023] = sample; + sample += phaser_buffer[(ipp - iphase + 1024) & 1023]; + ipp = (ipp + 1) & 1023; + // final accumulation and envelope application + ssample += sample * env_vol; + } + ssample = ssample / 8 * master_vol; + + ssample *= 2.0f * sound_vol; + + if (buffer != NULL) + { + if (ssample > 1.0f) ssample = 1.0f; + if (ssample < -1.0f) ssample = -1.0f; + *buffer++ = ssample; + } + if (file != NULL) + { + // quantize depending on format + // accumulate/count to accomodate variable sample rate? + ssample *= 4.0f; // arbitrary gain to get reasonable output volume... + if (ssample > 1.0f) ssample = 1.0f; + if (ssample < -1.0f) ssample = -1.0f; + filesample += ssample; + fileacc++; + if (wav_freq == 44100 || fileacc == 2) + { + filesample /= fileacc; + fileacc = 0; + if (wav_bits == 16) + { + short isample = (short) (filesample * 32000); + fwrite(&isample, 1, 2, file); + } + else + { + unsigned char isample = (unsigned char) (filesample * 127 + 128); + fwrite(&isample, 1, 1, file); + } + filesample = 0.0f; + } + file_sampleswritten++; + } + } +} + +// _______________________ +// Node Interface + +namespace lab +{ + +char const * const s_waveTypes[5] = {"Square", "Sawtooth", "Sine", "Noise", nullptr}; +char const * const s_presets[11] = { "Default", "Coin", "Laser", "Explosion", "Power Up", "Hit", "Jump", "Select", "Mutate", "Random", nullptr }; + + +SfxrNode::SfxrNode(AudioContext & ac) + : AudioScheduledSourceNode(ac) + , sfxr(new SfxrNode::Sfxr()) +{ + // Output is always mono. + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + + _preset = make_shared("preset", "SET ", s_presets); + _waveType = make_shared("waveType", "WAVE", s_waveTypes); + _attack = make_shared("attack", "ATCK", 0, 0, 1); + _sustainTime = make_shared("sustain", "SUS ", 0.3, 0, 1); + _sustainPunch = make_shared("sustainPunch", "SUSP", 0, 0, 1); + _startFrequency = make_shared("startFrequency", "SFRQ", 0.3, 0, 1); + _minFrequency = make_shared("minFrequency", "MFRQ", 0, 0, 1); + _decayTime = make_shared("decay", "DECY", 0.4f, 0, 1); + _slide = make_shared("slide", "SLID", 0, -1, 1); + _deltaSlide = make_shared("deltaSlide", "DSLD", 0, 0, 1); + _vibratoDepth = make_shared("vibratoDepth", "VIBD", 0, 0, 1); + _vibratoSpeed = make_shared("vibratoSpeed", "VIBS", 0, 0, 1); + _changeAmount = make_shared("changeAmount", "CHGA", 0, -1, 1); + _changeSpeed = make_shared("changeSpeed", "CHGS", 0, 0, 1); + _squareDuty = make_shared("squareDuty", "DUTY", 0, 0, 1); + _dutySweep = make_shared("dutySweep", "DSWP", 0, -1, 1); + _repeatSpeed = make_shared("repeatSpeed", "REPS", 0, 0, 1); + _phaserOffset = make_shared("phaserOffset", "PHSO", 0, -1, 1); + _phaserSweep = make_shared("phaserSweep", "PHSS", 0, -1, 1); + _lpFilterCutoff = make_shared("lpFiterCutoff", "LPFC", 1.0f, 0, 1); + _lpFilterCutoffSweep = make_shared("lpFilterCutoffSweep", "LPFS", 0, -1, 1); + _lpFiterResonance = make_shared("lpFiterResonance", "LPFR", 0, 0, 1); + _hpFilterCutoff = make_shared("hpFiterCutoff", "HPFC", 0, 0, 1); + _hpFilterCutoffSweep = make_shared("hpFilterCutoffSweep", "HPFS", 0, -1, 1); + + m_settings.push_back(_preset); + m_settings.push_back(_waveType); + m_params.push_back(_attack); + m_params.push_back(_sustainTime); + m_params.push_back(_sustainPunch); + m_params.push_back(_startFrequency); + m_params.push_back(_minFrequency); + m_params.push_back(_decayTime); + m_params.push_back(_slide); + m_params.push_back(_deltaSlide); + m_params.push_back(_vibratoDepth); + m_params.push_back(_vibratoSpeed); + m_params.push_back(_changeAmount); + m_params.push_back(_changeSpeed); + m_params.push_back(_squareDuty); + m_params.push_back(_dutySweep); + m_params.push_back(_repeatSpeed); + m_params.push_back(_phaserOffset); + m_params.push_back(_phaserSweep); + m_params.push_back(_lpFilterCutoff); + m_params.push_back(_lpFilterCutoffSweep); + m_params.push_back(_lpFiterResonance); + m_params.push_back(_hpFilterCutoff); + m_params.push_back(_hpFilterCutoffSweep); + + sfxr->ResetParams(); + sfxr->ResetSample(true); + sfxr->PlaySample(); + + _scheduler._onStart = [this](double when) + { + // when is ignored. + this->sfxr->ResetSample(true); + this->sfxr->PlaySample(); + }; + + initialize(); + + _preset->setValueChanged([this]() + { + int value = this->_preset->valueUint32(); + switch (value) + { + case 0: this->setDefaultBeep(); break; + case 1: this->coin(); break; + case 2: this->laser(); break; + case 3: this->explosion(); break; + case 4: this->powerUp(); break; + case 5: this->hit(); break; + case 6: this->jump(); break; + case 7: this->select(); break; + case 8: this->mutate(); break; + case 9: this->randomize(); break; + } + }); +} + +SfxrNode::~SfxrNode() +{ + uninitialize(); +} + +void SfxrNode::process(ContextRenderLock &r, int bufferSize) +{ + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !outputBus->numberOfChannels()) + { + outputBus->zero(); + return; + } + + int quantumFrameOffset = _scheduler._renderOffset; + int nonSilentFramesToProcess = _scheduler._renderLength; + + if (!nonSilentFramesToProcess) + { + outputBus->zero(); + return; + } + + float * destP = outputBus->channel(0)->mutableData(); + + // Start rendering at the correct offset. + destP += quantumFrameOffset; + int n = nonSilentFramesToProcess; + +#define UPDATE(typ, cur, val) \ + { \ + typ v = static_cast(val->value()); \ + if (sfxr->cur != v) \ + { \ + needUpdate = true; \ + sfxr->cur = v; \ + } \ + } + + bool needUpdate = false; + { + int v = _waveType->valueUint32(); + if (sfxr->wave_type != v) + { + needUpdate = true; + sfxr->wave_type = v; + } + } + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + UPDATE(float, p_base_freq, _startFrequency) + UPDATE(float, p_freq_limit, _minFrequency) + UPDATE(float, p_freq_ramp, _slide) + UPDATE(float, p_freq_dramp, _deltaSlide) + UPDATE(float, p_duty, _squareDuty) + UPDATE(float, p_duty_ramp, _dutySweep) + + UPDATE(float, p_vib_strength, _vibratoDepth) + UPDATE(float, p_vib_speed, _vibratoSpeed) + + UPDATE(float, p_env_attack, _attack) + UPDATE(float, p_env_sustain, _sustainTime) + UPDATE(float, p_env_decay, _decayTime) + UPDATE(float, p_env_punch, _sustainPunch) + + UPDATE(float, p_lpf_resonance, _lpFiterResonance) + sfxr->filter_on = sfxr->p_lpf_resonance > 0; + UPDATE(float, p_lpf_freq, _lpFilterCutoff) + UPDATE(float, p_lpf_ramp, _lpFilterCutoffSweep) + UPDATE(float, p_hpf_freq, _hpFilterCutoff) + UPDATE(float, p_hpf_ramp, _hpFilterCutoffSweep) + + UPDATE(float, p_pha_offset, _phaserOffset) + UPDATE(float, p_pha_ramp, _phaserSweep) + + UPDATE(float, p_repeat_speed, _repeatSpeed) + UPDATE(float, p_arp_speed, _changeSpeed) + UPDATE(float, p_arp_mod, _changeAmount) + + if (needUpdate) + sfxr->ResetSample(false); + +#undef UPDATE + + memset(destP, 0, sizeof(float) * n); + sfxr->SynthSample(n, destP, NULL); + + /// @TODO check - does this really need clamping? If yes, should there be a comopressor of some sort here? + while (n--) + { + float f = destP[n]; + if (f < -1.0f) + f = -1.0f; + else if (f > 1.0f) + f = 1.0f; + destP[n] = f; + } + + outputBus->clearSilentFlag(); +} + +void SfxrNode::reset(ContextRenderLock &) +{ +} + +bool SfxrNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} + +// ____________________________________ +// Some default sounds + +// parameters for default sounds found here - +// https://github.com/grumdrig/jsfxr/blob/master/sfxr.js + +void SfxrNode::setDefaultBeep() +{ + // Wave shape + _waveType->setEnumeration(SQUARE); + + // Envelope + _attack->setValue(0); + _sustainTime->setValue(0.3f); + _sustainPunch->setValue(0); + _decayTime->setValue(0.4f); + + // Tone + _startFrequency->setValue(0.3f); + _minFrequency->setValue(0); + _slide->setValue(0); + _deltaSlide->setValue(0); + + // Vibrato + _vibratoDepth->setValue(0); + _vibratoSpeed->setValue(0); + + // Tonal change + _changeAmount->setValue(0); + _changeSpeed->setValue(0); + + // Square wave duty (proportion of time signal is high vs. low) + _squareDuty->setValue(0); + _dutySweep->setValue(0); + + // Repeat + _repeatSpeed->setValue(0); + + // Flanger + _phaserOffset->setValue(0); + _phaserSweep->setValue(0); + + // Low-pass filter + _lpFilterCutoff->setValue(1); + _lpFilterCutoffSweep->setValue(0); + _lpFiterResonance->setValue(0); + _hpFilterCutoff->setValue(0); + _hpFilterCutoffSweep->setValue(0); + + // Sample parameters + sfxr->sound_vol = 0.5f; + sfxr->wav_freq = 44100; + sfxr->wav_bits = 16; +} + +void SfxrNode::coin() +{ + setDefaultBeep(); + _startFrequency->setValue(0.4f + frnd(0.5f)); + _attack->setValue(0); + _sustainTime->setValue(0.1f); + _decayTime->setValue(0.1f + frnd(0.4f)); + _sustainPunch->setValue(0.3f + frnd(0.3f)); + if (rnd(1)) + { + _changeSpeed->setValue(0.5f + frnd(0.2f)); + _changeAmount->setValue(0.2f + frnd(0.4f)); + } +} + +/// @TODO the audioParams should be read into buffers in the case that they are time varying +void SfxrNode::laser() +{ + setDefaultBeep(); + _waveType->setEnumeration(rnd(2)); + if (_waveType->valueUint32() == SINE && rnd(1)) + _waveType->setEnumeration(rnd(1)); + if (rnd(2) == 0) + { + _startFrequency->setValue(0.3f + frnd(0.6f)); + _minFrequency->setValue(frnd(0.1f)); + _slide->setValue(-0.35f - frnd(0.3f)); + } + else + { + ContextRenderLock r(nullptr, "laser"); + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + _startFrequency->setValue(0.5f + frnd(0.5f)); + _minFrequency->setValue(_startFrequency->value() - 0.2f - frnd(0.6f)); + if (_minFrequency->value() < 0.2f) _minFrequency->setValue(0.2f); + _slide->setValue(-0.15f - frnd(0.2f)); + } + if (rnd(1)) + { + _squareDuty->setValue(frnd(0.5f)); + _dutySweep->setValue(frnd(0.2f)); + } + else + { + _squareDuty->setValue(0.4f + frnd(0.5f)); + _dutySweep->setValue(-frnd(0.7f)); + } + _attack->setValue(0); + _sustainTime->setValue(0.1f + frnd(0.2f)); + _decayTime->setValue(frnd(0.4f)); + if (rnd(1)) + _sustainPunch->setValue(frnd(0.3f)); + if (rnd(2) == 0) + { + _phaserOffset->setValue(frnd(0.2f)); + _phaserSweep->setValue(-frnd(0.2f)); + } + _hpFilterCutoff->setValue(frnd(0.3f)); +} + +void SfxrNode::explosion() +{ + setDefaultBeep(); + _waveType->setEnumeration(NOISE); + if (rnd(1)) + { + _startFrequency->setValue(sqr(0.1f + frnd(0.4f))); + _slide->setValue(-0.1f + frnd(0.4f)); + } + else + { + _startFrequency->setValue(sqr(0.2f + frnd(0.7f))); + _slide->setValue(-0.2f - frnd(0.2f)); + } + if (rnd(4) == 0) + _slide->setValue(0); + if (rnd(2) == 0) + _repeatSpeed->setValue(0.3f + frnd(0.5f)); + _attack->setValue(0); + _sustainTime->setValue(0.1f + frnd(0.3f)); + _decayTime->setValue(frnd(0.5f)); + if (rnd(1)) + { + _phaserOffset->setValue(-0.3f + frnd(0.9f)); + _phaserSweep->setValue(-frnd(0.3f)); + } + _sustainPunch->setValue(0.2f + frnd(0.6f)); + if (rnd(1)) + { + _vibratoDepth->setValue(frnd(0.7f)); + _vibratoSpeed->setValue(frnd(0.6f)); + } + if (rnd(2) == 0) + { + _changeSpeed->setValue(0.6f + frnd(0.3f)); + _changeAmount->setValue(0.8f - frnd(1.6f)); + } +} + +void SfxrNode::powerUp() +{ + setDefaultBeep(); + if (rnd(1)) + { + _waveType->setEnumeration(SAWTOOTH); + _squareDuty->setValue(1); + } + else + { + _squareDuty->setValue(frnd(0.6f)); + } + _startFrequency->setValue(0.2f + frnd(0.3f)); + if (rnd(1)) + { + _slide->setValue(0.1f + frnd(0.4f)); + _repeatSpeed->setValue(0.4f + frnd(0.4f)); + } + else + { + _slide->setValue(0.05f + frnd(0.2f)); + if (rnd(1)) + { + _vibratoDepth->setValue(frnd(0.7f)); + _vibratoSpeed->setValue(frnd(0.6f)); + } + } + _attack->setValue(0); + _sustainTime->setValue(frnd(0.4f)); + _decayTime->setValue(0.1f + frnd(0.4f)); +} + +/// @TODO remove need for context lock see above +void SfxrNode::hit() +{ + setDefaultBeep(); + _waveType->setEnumeration(rnd(2)); + if (_waveType->valueUint32() == SINE) + _waveType->setEnumeration(NOISE); + if (_waveType->valueUint32() == SQUARE) + _squareDuty->setValue(frnd(0.6f)); + if (_waveType->valueUint32() == SAWTOOTH) + _squareDuty->setValue(1); + _startFrequency->setValue(0.2f + frnd(0.6f)); + _slide->setValue(-0.3f - frnd(0.4f)); + _attack->setValue(0); + _sustainTime->setValue(frnd(0.1f)); + _decayTime->setValue(0.1f + frnd(0.2f)); + if (rnd(1)) + _hpFilterCutoff->setValue(frnd(0.3f)); +} + +void SfxrNode::jump() +{ + setDefaultBeep(); + _waveType->setEnumeration(SQUARE); + _squareDuty->setValue(frnd(0.6f)); + _startFrequency->setValue(0.3f + frnd(0.3f)); + _slide->setValue(0.1f + frnd(0.2f)); + _attack->setValue(0); + _sustainTime->setValue(0.1f + frnd(0.3f)); + _decayTime->setValue(0.1f + frnd(0.2f)); + if (rnd(1)) + _hpFilterCutoff->setValue(frnd(0.3f)); + if (rnd(1)) + _lpFilterCutoff->setValue(1 - frnd(0.6f)); +} + +/// @TODO remove need for context lock see above +void SfxrNode::select() +{ + setDefaultBeep(); + _waveType->setEnumeration(rnd(1)); + if (_waveType->valueUint32() == SQUARE) + _squareDuty->setValue(frnd(0.6f)); + else + _squareDuty->setValue(1); + _startFrequency->setValue(0.2f + frnd(0.4f)); + _attack->setValue(0); + _sustainTime->setValue(0.1f + frnd(0.1f)); + _decayTime->setValue(frnd(0.2f)); + _hpFilterCutoff->setValue(0.1f); +} + +void SfxrNode::mutate() +{ + if (rnd(1)) _startFrequency->setValue(_startFrequency->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _slide->setValue(_slide->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _deltaSlide->setValue(_deltaSlide->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _squareDuty->setValue(_squareDuty->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _dutySweep->setValue(_dutySweep->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _vibratoDepth->setValue(_vibratoDepth->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _vibratoSpeed->setValue(_vibratoSpeed->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _attack->setValue(_attack->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _sustainTime->setValue(_sustainTime->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _decayTime->setValue(_decayTime->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _sustainPunch->setValue(_sustainPunch->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _lpFiterResonance->setValue(_lpFiterResonance->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _lpFilterCutoff->setValue(_lpFilterCutoff->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _lpFilterCutoffSweep->setValue(_lpFilterCutoffSweep->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _hpFilterCutoff->setValue(_hpFilterCutoff->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _hpFilterCutoffSweep->setValue(_hpFilterCutoffSweep->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _phaserOffset->setValue(_phaserOffset->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _phaserSweep->setValue(_phaserSweep->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _repeatSpeed->setValue(_repeatSpeed->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _changeSpeed->setValue(_changeSpeed->value() + frnd(0.1f) - 0.05f); + if (rnd(1)) _changeAmount->setValue(_changeAmount->value() + frnd(0.1f) - 0.05f); +} + +/// @TODO remove need for context lock see above +void SfxrNode::randomize() +{ + if (rnd(1)) + _startFrequency->setValue(cube(frnd(2) - 1) + 0.5f); + else + _startFrequency->setValue(sqr(frnd(1))); + _minFrequency->setValue(0); + _slide->setValue(powf(frnd(2) - 1, 5)); + if (_startFrequency->value() > 0.7 && _slide->value() > 0.2) + _slide->setValue(-_slide->value()); + if (_startFrequency->value() < 0.2 && _slide->value() < -0.05) + _slide->setValue(-_slide->value()); + _deltaSlide->setValue(powf(frnd(2) - 1, 3)); + _squareDuty->setValue(frnd(2) - 1); + _dutySweep->setValue(powf(frnd(2) - 1, 3)); + _vibratoDepth->setValue(powf(frnd(2) - 1, 3)); + _vibratoSpeed->setValue(rndr(-1, 1)); + _attack->setValue(cube(rndr(0, 1))); + _sustainTime->setValue(sqr(rndr(0, 1))); + _decayTime->setValue(rndr(0, 1)); + _sustainPunch->setValue(powf(frnd(0.8f), 2)); + if (_attack->value() + _sustainTime->value() + _decayTime->value() < 0.2f) + { + _sustainTime->setValue(_sustainTime->value() + 0.2f + frnd(0.3f)); + _decayTime->setValue(_decayTime->value() + 0.2f + frnd(0.3f)); + } + _lpFiterResonance->setValue(rndr(-1, 1)); + _lpFilterCutoff->setValue(1 - powf(frnd(1), 3)); + _lpFilterCutoffSweep->setValue(powf(frnd(2) - 1, 3)); + if (_lpFilterCutoff->value() < 0.1 && _lpFilterCutoffSweep->value() < -0.05f) + _lpFilterCutoffSweep->setValue(-_lpFilterCutoffSweep->value()); + _hpFilterCutoff->setValue(powf(frnd(1), 5)); + _hpFilterCutoffSweep->setValue(powf(frnd(2) - 1, 5)); + _phaserOffset->setValue(powf(frnd(2) - 1, 3)); + _phaserSweep->setValue(powf(frnd(2) - 1, 3)); + _repeatSpeed->setValue(frnd(2) - 1); + _changeSpeed->setValue(frnd(2) - 1); + _changeAmount->setValue(frnd(2) - 1); +} + +//------------------------------------------------------------------------ + +// Conversion math was found here https://github.com/grumdrig/jsfxr/blob/master/sfxr.js +// and inverted as necessary. + +const float OVERSAMPLING = 8.0f; + +float SfxrNode::envelopeTimeInSeconds(float p) +{ + return p * p * 100000.0f / 44100.0f; +} + +float SfxrNode::envelopeTimeInSfxrUnits(float p) +{ + return sqrtf(p * 44100.0f / 100000.0f); +} + +const float vibMagic = 44100 * 10 / 64.0f; +float SfxrNode::vibratoInSfxrUnits(float hz) +{ + float ret = hz * 100.0f; + ret /= vibMagic; + return sqrt(ret); +} +float SfxrNode::vibratoInHz(float sfxr) +{ + float ret = vibMagic * sqr(sfxr) / 100; + return ret; +} + +float SfxrNode::frequencyInSfxrUnits(float p) +{ + p /= OVERSAMPLING * 441.0f; + p -= 0.001f; + if (p < 0) p = 0; + return sqrt(p); +} +float SfxrNode::frequencyInHz(float sfxr) +{ + float p = sfxr * sfxr; + p += 0.001f; + p *= OVERSAMPLING * 441.0f; + return p; +} + +float SfxrNode::filterFreqInHz(float sfxr) +{ + if (sfxr >= 1.0f) + return 44100.0f; + + return OVERSAMPLING * 44100.0f * flurp(cube(sfxr) / 10); +} +float SfxrNode::filterFreqInSfxrUnits(float hz) +{ + if (hz >= 44100.0f) + return 1.0f; + + // if y = K x / (1 - x), then x = y / (y + K) + float s3 = hz / (hz + (OVERSAMPLING * 44100.0f)); + return powf(s3, 1.0f / 3.0f); +} + +//------------------------------------------------------------------------ + +void SfxrNode::setStartFrequencyInHz(float hz) +{ + _startFrequency->setValue(frequencyInSfxrUnits(hz)); +} + +void SfxrNode::setVibratoSpeedInHz(float hz) +{ + _vibratoSpeed->setValue(vibratoInSfxrUnits(hz)); +} + +} // namespace lab diff --git a/sources/LabSound/src/extended/SpatializationNode.cpp b/sources/LabSound/src/extended/SpatializationNode.cpp new file mode 100644 index 00000000..96207ce7 --- /dev/null +++ b/sources/LabSound/src/extended/SpatializationNode.cpp @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/FloatPoint3D.h" +#include "LabSound/core/PannerNode.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/SpatializationNode.h" + +namespace lab +{ + +namespace +{ + // http://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html + float distanceFromPointToLine(const FloatPoint3D & x0, const FloatPoint3D & x1, const FloatPoint3D & x2, float & t) + { + FloatPoint3D x2x1 = x2 - x1; + FloatPoint3D x1x0 = x1 - x0; + float l = magnitude(x2x1); + t = dot(-x1x0, x2x1) / (l * l); + + FloatPoint3D x0x1 = x0 - x1; + FloatPoint3D x0x2 = x0 - x2; + float d = magnitude(cross(x0x1, x0x2)) / magnitude(x2x1); + return d; + } +} + +void Occluders::setOccluder(int id, float x, float y, float z, float radius) +{ + Occluder o(x, y, z, radius); + occluders[id] = o; +} + +void Occluders::removeOccluder(int id) +{ + auto i = occluders.find(id); + if (i != occluders.end()) + occluders.erase(i); +} + +float Occluders::occlusion(const FloatPoint3D & sourcePos, const FloatPoint3D & listenerPos) const +{ + float occlusionAttenuation = 1.0f; + for (const auto & i : occluders) + { + FloatPoint3D occPos(i.second.x, i.second.y, i.second.z); + + float t; + float d = distanceFromPointToLine(occPos, listenerPos, sourcePos, t); + + if (t <= 0 || t >= 1) + continue; + + float maxAtten = i.second.maxAttenuation; + + if (d <= i.second.innerRadius) + { + occlusionAttenuation *= maxAtten; + } + else if (d <= i.second.outerRadius) + { + float inner = i.second.innerRadius; + float t = (d - inner) / (i.second.outerRadius - inner); + occlusionAttenuation *= maxAtten + (1.0f - maxAtten) * t; + } + } + return occlusionAttenuation; +} + +// @tofix - pass in HRTF loader path +SpatializationNode::SpatializationNode(AudioContext & ac) + : lab::PannerNode(ac) +{ + initialize(); +} + +void SpatializationNode::setOccluders(std::shared_ptr o) +{ + occluders = o; +} + +float SpatializationNode::distanceConeGain(ContextRenderLock & r) +{ + if (!r.context()) + return 1.f; + + auto listener = r.context()->listener(); + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D fwd = { + listener->forwardX()->value(), + listener->forwardY()->value(), + listener->forwardZ()->value()}; + + /// @fixme these values should be per sample, not per quantum + FloatPoint3D pos = { + positionX()->value(), + positionY()->value(), + positionZ()->value()}; + + float occlusionAttenuation = occluders ? occluders->occlusion(pos, fwd) : 1.0f; + return occlusionAttenuation * PannerNode::distanceConeGain(r); +} +} diff --git a/sources/LabSound/src/extended/SpectralMonitorNode.cpp b/sources/LabSound/src/extended/SpectralMonitorNode.cpp new file mode 100644 index 00000000..9c689143 --- /dev/null +++ b/sources/LabSound/src/extended/SpectralMonitorNode.cpp @@ -0,0 +1,235 @@ +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/WindowFunctions.h" + +#include "LabSound/extended/SpectralMonitorNode.h" +#include "LabSound/extended/Registry.h" + +#include +#include + +namespace lab +{ + +using namespace lab; + +////////////////////////////////////////////////////// +// Prviate FFT + SpectralMonitorNode Implementation // +////////////////////////////////////////////////////// + +// FFT class directly inspired by that in Cinder Audio 2. +struct FFT +{ +public: + FFT(int size) + : size(size) + { + oouraIp = (int *) calloc(2 + (int) sqrt(size / 2), sizeof(int)); + oouraW = (float *) calloc(size / 2, sizeof(float)); + } + + ~FFT() + { + free(oouraIp); + free(oouraW); + } + + // does an in place transform of waveform to real and imag. + // real values are on even, imag on odd + void forward(std::vector & waveform) + { + ooura::rdft(static_cast(size), 1, &waveform[0], oouraIp, oouraW); + } + + int size; + int * oouraIp; + float * oouraW; +}; + +class SpectralMonitorNode::SpectralMonitorNodeInternal +{ +public: + SpectralMonitorNodeInternal() + : windowSize(std::make_shared("windowSize", "WNDW", AudioSetting::Type::Integer)) + , fft(nullptr) + { + setWindowSize(512); + } + + ~SpectralMonitorNodeInternal() + { + delete fft; + } + + void setWindowSize(int s) + { + cursor = 0; + windowSize->setUint32(static_cast(s)); + + buffer.resize(s); + + for (int i = 0; i < s; ++i) + { + buffer[i] = 0; + } + + delete fft; + fft = new FFT(s); + } + + float _db; + + int cursor; + + std::vector buffer; + std::recursive_mutex magMutex; + + std::shared_ptr windowSize; + + FFT * fft; +}; + +//////////////////////////////// +// Public SpectralMonitorNode // +//////////////////////////////// + +SpectralMonitorNode::SpectralMonitorNode(AudioContext & ac) + : AudioBasicInspectorNode(ac, 2) + , internalNode(new SpectralMonitorNodeInternal()) +{ + m_settings.push_back(internalNode->windowSize); + initialize(); +} + +SpectralMonitorNode::~SpectralMonitorNode() +{ + uninitialize(); + delete internalNode; +} + +void SpectralMonitorNode::process(ContextRenderLock &r, int bufferSize) +{ + // deal with the output in case the power monitor node is embedded in a signal chain for some reason. + // It's merely a pass through though. + + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !input(0)->isConnected()) + { + if (outputBus) + outputBus->zero(); + return; + } + + AudioBus * bus = input(0)->bus(r); + bool isBusGood = bus && bus->numberOfChannels() > 0 && bus->channel(0)->length() >= bufferSize; + if (!isBusGood) + { + outputBus->zero(); + return; + } + + // specific to this node + { + std::vector channels; + int numberOfChannels = bus->numberOfChannels(); + for (int c = 0; c < numberOfChannels; ++c) + channels.push_back(bus->channel(c)->data()); + + int sz = internalNode->windowSize->valueUint32(); + + // if the fft is smaller than the quantum, just grab a chunk + if (sz < bufferSize) + { + internalNode->cursor = 0; + bufferSize = internalNode->windowSize->valueUint32(); + } + + // if the quantum overlaps the end of the window, just fill up the buffer + if (internalNode->cursor + bufferSize > sz) + bufferSize = sz - internalNode->cursor; + + { + std::lock_guard lock(internalNode->magMutex); + + internalNode->buffer.resize(sz); + + for (int i = 0; i < bufferSize; ++i) + { + internalNode->buffer[i + internalNode->cursor] = 0; + } + + for (int c = 0; c < numberOfChannels; ++c) + { + for (int i = 0; i < bufferSize; ++i) + { + float p = channels[c][i]; + internalNode->buffer[i + internalNode->cursor] += p; + } + } + } + + // advance the cursor + internalNode->cursor += bufferSize; + if (internalNode->cursor >= static_cast(internalNode->windowSize->valueUint32())) + internalNode->cursor = 0; + } + // to here + + if (bus != outputBus) + outputBus->copyFrom(*bus); +} + +void SpectralMonitorNode::reset(ContextRenderLock &) +{ + internalNode->setWindowSize(internalNode->windowSize->valueUint32()); +} + +void SpectralMonitorNode::spectralMag(std::vector & result) +{ + std::vector window; + + { + std::lock_guard lock(internalNode->magMutex); + window.swap(internalNode->buffer); + internalNode->setWindowSize(internalNode->windowSize->valueUint32()); + } + + // http://www.ni.com/white-paper/4844/en/ + ApplyWindowFunctionInplace(WindowFunction::blackman, window.data(), static_cast(window.size())); + internalNode->fft->forward(window); + + // similar to cinder audio2 Scope object, although Scope smooths spectral samples frame by frame + // remove nyquist component - the first imaginary component + window[1] = 0.0f; + + // compute normalized magnitude spectrum + /// @TODO @tofix - break this into vector Cartesian -> polar and then vector lowpass. skip lowpass if smoothing factor is very small + const float kMagScale = 1.0f; /// detail->windowSize; + for (int i = 0; i < window.size(); i += 2) + { + float re = window[i]; + float im = window[i + 1]; + window[i / 2] = sqrt(re * re + im * im) * kMagScale; + } + + result.swap(window); +} + +void SpectralMonitorNode::windowSize(unsigned int ws) +{ + internalNode->setWindowSize(ws); +} + +unsigned int SpectralMonitorNode::windowSize() const +{ + return internalNode->windowSize->valueUint32(); +} + +} // namespace lab diff --git a/sources/LabSound/src/extended/SupersawNode.cpp b/sources/LabSound/src/extended/SupersawNode.cpp new file mode 100644 index 00000000..0389c0c2 --- /dev/null +++ b/sources/LabSound/src/extended/SupersawNode.cpp @@ -0,0 +1,195 @@ + +// SPDX-License-Identifier: BSD-2-Clause +// Copyright (C) 2015, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioNodeInput.h" +#include "LabSound/core/AudioNodeOutput.h" +#include "LabSound/core/AudioSetting.h" +#include "LabSound/core/GainNode.h" +#include "LabSound/core/OscillatorNode.h" + +#include "LabSound/extended/AudioContextLock.h" +#include "LabSound/extended/SupersawNode.h" +#include "LabSound/extended/Registry.h" + +#include + +using namespace lab; + +namespace lab +{ + +////////////////////////////////////////// +// Private Supersaw Node Implementation // +////////////////////////////////////////// + +class SupersawNode::SupersawNodeInternal +{ +public: + SupersawNodeInternal(AudioContext & ac) + : cachedDetune(FLT_MAX) + , cachedFrequency(FLT_MAX) + { + gainNode = std::make_shared(ac); + sawCount = std::make_shared("sawCount", "SAWC", AudioSetting::Type::Integer); + sawCount->setUint32(1); + detune = std::make_shared("detune", "DTUN", 1.0, 0, 120); + frequency = std::make_shared("frequency", "FREQ", 440.0, 1.0f, sampleRate * 0.5f); + } + + ~SupersawNodeInternal() = default; + + void update(ContextRenderLock & r) + { + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + if (cachedFrequency != frequency->value()) + { + cachedFrequency = frequency->value(); + for (auto i : saws) + { + i->frequency()->setValue(cachedFrequency); + i->frequency()->resetSmoothedValue(); + } + } + + /// @fixme these values should be per sample, not per quantum + /// -or- they should be settings if they don't vary per sample + if (cachedDetune != detune->value()) + { + cachedDetune = detune->value(); + float n = cachedDetune / ((float) saws.size() - 1.0f); + for (size_t i = 0; i < saws.size(); ++i) + { + saws[i]->detune()->setValue(-cachedDetune + float(i) * 2 * n); + saws[i]->detune()->resetSmoothedValue(); + } + } + } + + void update(ContextRenderLock & r, bool okayToReallocate) + { + size_t currentN = saws.size(); + int n = int(sawCount->valueUint32() + 0.5f); + + auto context = r.context(); + + if (okayToReallocate && (n != currentN)) + { + sampleRate = r.context()->sampleRate(); + + // This implementation is similar to the technique illustrated here + // https://noisehack.com/how-to-build-supersaw-synth-web-audio-api/ + // + for (auto i : sawStorage) + { + context->disconnect(i, nullptr); + } + + sawStorage.clear(); + saws.clear(); + + for (int i = 0; i < n; ++i) + sawStorage.emplace_back(std::make_shared(*context)); + + for (int i = 0; i < n; ++i) + saws.push_back(sawStorage[i].get()); + + for (auto i : sawStorage) + { + i->setType(OscillatorType::SAWTOOTH); + context->connect(gainNode, i, 0, 0); + i->start(0); + } + + gainNode->gain()->setValue(1.f / float(n)); + + cachedFrequency = FLT_MAX; + cachedDetune = FLT_MAX; + } + + update(r); + } + + std::shared_ptr gainNode; + std::shared_ptr detune; + std::shared_ptr frequency; + std::shared_ptr sawCount; + +private: + float sampleRate; + float cachedDetune; + float cachedFrequency; + + std::vector> sawStorage; + std::vector saws; +}; + +////////////////////////// +// Public Supersaw Node // +////////////////////////// + +SupersawNode::SupersawNode(AudioContext & ac) + : AudioScheduledSourceNode(ac) +{ + internalNode.reset(new SupersawNodeInternal(ac)); + + m_params.push_back(internalNode->detune); + m_params.push_back(internalNode->frequency); + m_settings.push_back(internalNode->sawCount); + + addOutput(std::unique_ptr(new AudioNodeOutput(this, 1))); + initialize(); +} + +SupersawNode::~SupersawNode() +{ + uninitialize(); +} + +void SupersawNode::process(ContextRenderLock & r, int bufferSize) +{ + internalNode->update(r, true); + + AudioBus * outputBus = output(0)->bus(r); + + if (!isInitialized() || !outputBus->numberOfChannels()) + { + outputBus->zero(); + return; + } + + AudioBus * dst = nullptr; + internalNode->gainNode->input(0)->bus(r)->zero(); + /*AudioBus * renderedBus =*/ internalNode->gainNode->input(0)->pull(r, dst, bufferSize); + internalNode->gainNode->process(r, bufferSize); + AudioBus * inputBus = internalNode->gainNode->output(0)->bus(r); + outputBus->copyFrom(*inputBus); + outputBus->clearSilentFlag(); +} + +void SupersawNode::update(ContextRenderLock & r) +{ + internalNode->update(r, true); +} + +std::shared_ptr SupersawNode::detune() const +{ + return internalNode->detune; +} +std::shared_ptr SupersawNode::frequency() const +{ + return internalNode->frequency; +} +std::shared_ptr SupersawNode::sawCount() const +{ + return internalNode->sawCount; +} + +bool SupersawNode::propagatesSilence(ContextRenderLock & r) const +{ + return !isPlayingOrScheduled() || hasFinished(); +} + +} // End namespace lab diff --git a/sources/LabSound/src/internal/Assertions.h b/sources/LabSound/src/internal/Assertions.h new file mode 100644 index 00000000..8e9dadd0 --- /dev/null +++ b/sources/LabSound/src/internal/Assertions.h @@ -0,0 +1,58 @@ +// License: BSD 2 Clause +// Copyright (C) 2003+, Apple Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef LabSound_Assertions_h +#define LabSound_Assertions_h + +#include "LabSound/core/Macros.h" +#include "LabSound/extended/Logging.h" + +// FIXME: Change to use something other than ASSERT to avoid this conflict with the underlying platform +#if defined(LABSOUND_PLATFORM_WINDOWS) +#undef ASSERT +#define __func__ __FUNCTION__ +#endif + +#define CRASH() ((void) 0) + +#define ASSERT(assertion) \ + (!(assertion) ? \ + (LabSoundAssertLog(__FILE__, __LINE__, __func__, #assertion), \ + CRASH()) : \ + (void) 0) + +#define ASSERT_AT(assertion, file, line, function) \ + (!(assertion) ? \ + (LabSoundAssertLog(file, line, function, #assertion), \ + CRASH()) : \ + (void) 0) + +#define ASSERT_NOT_REACHED() \ + do \ + { \ + LabSoundAssertLog(__FILE__, __LINE__, __func__, 0); \ + CRASH(); \ + } while (0) + +#define ASSERT_WITH_MESSAGE(assertion, ...) \ + do \ + if (!(assertion)) \ + { \ + LabSoundAssertLog(__FILE__, __LINE__, __func__, #assertion); \ + CRASH(); \ + } \ + while (0) + +#define FATAL(...) \ + do \ + { \ + LabSoundLog(__FILE__, __LINE__, __VA_ARGS__); \ + CRASH(); \ + } while (0) + +#define ASSERT_UNUSED(variable, assertion) ASSERT(assertion) + +#define ASSERT_WITH_SECURITY_IMPLICATION(assertion) ASSERT(assertion) + +#endif diff --git a/sources/LabSound/src/internal/AudioDSPKernel.h b/sources/LabSound/src/internal/AudioDSPKernel.h new file mode 100644 index 00000000..368b652e --- /dev/null +++ b/sources/LabSound/src/internal/AudioDSPKernel.h @@ -0,0 +1,42 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioDSPKernel_h +#define AudioDSPKernel_h + +#include "LabSound/extended/AudioContextLock.h" + +namespace lab +{ + +class AudioDSPKernelProcessor; + +// AudioDSPKernel does the processing for one channel of an AudioDSPKernelProcessor. +class AudioDSPKernel +{ +public: + + AudioDSPKernel(AudioDSPKernelProcessor * kernelProcessor) : m_kernelProcessor(kernelProcessor) {} + AudioDSPKernel() = default; + + virtual ~AudioDSPKernel() {} + + // Subclasses must override process() to do the processing and reset() to reset DSP state. + virtual void process(ContextRenderLock &, const float * source, float * destination, int framesToProcess) = 0; + virtual void reset() = 0; + + AudioDSPKernelProcessor * processor() { return m_kernelProcessor; } + const AudioDSPKernelProcessor * processor() const { return m_kernelProcessor; } + + virtual double tailTime(ContextRenderLock & r) const = 0; + virtual double latencyTime(ContextRenderLock & r) const = 0; + +protected: + AudioDSPKernelProcessor * m_kernelProcessor {nullptr}; +}; + +} // namespace lab + +#endif // AudioDSPKernel_h + diff --git a/sources/LabSound/src/internal/AudioDSPKernelProcessor.h b/sources/LabSound/src/internal/AudioDSPKernelProcessor.h new file mode 100644 index 00000000..20ffb6ff --- /dev/null +++ b/sources/LabSound/src/internal/AudioDSPKernelProcessor.h @@ -0,0 +1,55 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef AudioDSPKernelProcessor_h +#define AudioDSPKernelProcessor_h + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/AudioProcessor.h" + +#include "internal/AudioDSPKernel.h" + +#include + +namespace lab +{ + +class AudioBus; +class AudioProcessor; + +// AudioDSPKernelProcessor processes one input -> one output (N channels each) +// It uses one AudioDSPKernel object per channel to do the processing, thus there is no cross-channel processing. +// Despite this limitation it turns out to be a very common and useful type of processor. + +class AudioDSPKernelProcessor : public AudioProcessor +{ +public: + // numberOfChannels may be later changed if object is not yet in an "initialized" state + AudioDSPKernelProcessor(); + virtual ~AudioDSPKernelProcessor() + { + if (isInitialized()) uninitialize(); + } + + // Subclasses create the appropriate type of processing kernel here. + // We'll call this to create a kernel for each channel. + virtual AudioDSPKernel * createKernel() = 0; + + // AudioProcessor methods + virtual void initialize() override; + virtual void uninitialize() override; + virtual void process(ContextRenderLock &, const AudioBus * source, AudioBus * destination, int framesToProcess) override; + virtual void reset() override; + + virtual double tailTime(ContextRenderLock & r) const override; + virtual double latencyTime(ContextRenderLock & r) const override; + +protected: + std::vector> m_kernels; + bool m_hasJustReset; +}; + +} // namespace lab + +#endif // AudioDSPKernelProcessor_h diff --git a/sources/LabSound/src/internal/AudioUtilities.h b/sources/LabSound/src/internal/AudioUtilities.h new file mode 100644 index 00000000..dcff315c --- /dev/null +++ b/sources/LabSound/src/internal/AudioUtilities.h @@ -0,0 +1,36 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef lab_audio_utilities_h +#define lab_audio_utilities_h + +#include +#include + +namespace lab +{ + +namespace AudioUtilities +{ + // Standard functions for converting to and from decibel values from linear. + float linearToDecibels(float); + float decibelsToLinear(float); + + // timeConstant is the time it takes a first-order linear time-invariant system + // to reach the value 1 - 1/e (around 63.2%) given a step input response. + // discreteTimeConstantForSampleRate() will return the discrete time-constant for the specific sampleRate. + double discreteTimeConstantForSampleRate(double timeConstant, double sampleRate); + + // Convert the time to a sample frame at the given sample rate. + + template + inline int timeToSampleFrame(T time, U sampleRate) + { + return static_cast(std::round(time * sampleRate)); + } +} + +} // lab + +#endif // lab_audio_utilities_h diff --git a/sources/LabSound/src/internal/Biquad.h b/sources/LabSound/src/internal/Biquad.h new file mode 100644 index 00000000..1ff21673 --- /dev/null +++ b/sources/LabSound/src/internal/Biquad.h @@ -0,0 +1,76 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef Biquad_h +#define Biquad_h + +#include "LabSound/core/AudioArray.h" + +#include "LabSound/core/Macros.h" + +#include +#include + +namespace lab +{ + +// A basic biquad (two-zero / two-pole digital filter) +// It can be configured to a number of common and very useful filters: +// lowpass, highpass, shelving, parameteric, notch, allpass, ... +class Biquad +{ +public: + Biquad(); + virtual ~Biquad(); + + void process(const float * sourceP, float * destP, int framesToProcess); + + // frequency is 0 - 1 normalized, resonance and dbGain are in decibels. + // Q is a unitless quality factor. + void setLowpassParams(double frequency, double resonance); + void setHighpassParams(double frequency, double resonance); + void setBandpassParams(double frequency, double Q); + void setLowShelfParams(double frequency, double dbGain); + void setHighShelfParams(double frequency, double dbGain); + void setPeakingParams(double frequency, double Q, double dbGain); + void setAllpassParams(double frequency, double Q); + void setNotchParams(double frequency, double Q); + + // Set the biquad coefficients given a single zero (other zero will be conjugate) + // and a single pole (other pole will be conjugate) + void setZeroPolePairs(const std::complex & zero, const std::complex & pole); + + // Set the biquad coefficients given a single pole (other pole will be conjugate) + // (The zeroes will be the inverse of the poles) + void setAllpassPole(const std::complex & pole); + + // Resets filter state + void reset(); + + // Filter response at a set of n frequencies. The magnitude and + // phase response are returned in magResponse and phaseResponse. + // The phase response is in radians. + void getFrequencyResponse(size_t nFrequencies, const float * frequency, float * magResponse, float * phaseResponse); + +private: + void setNormalizedCoefficients(double b0, double b1, double b2, double a0, double a1, double a2); + + // Filter coefficients. The filter is defined as + // y[n] + m_a1*y[n-1] + m_a2*y[n-2] = m_b0*x[n] + m_b1*x[n-1] + m_b2*x[n-2]. + double m_b0; + double m_b1; + double m_b2; + double m_a1; + double m_a2; + + // Filter memory + double m_x1; // input delayed by 1 sample + double m_x2; // input delayed by 2 samples + double m_y1; // output delayed by 1 sample + double m_y2; // output delayed by 2 samples +}; + +} // namespace lab + +#endif // Biquad_h diff --git a/sources/LabSound/src/internal/Cone.h b/sources/LabSound/src/internal/Cone.h new file mode 100644 index 00000000..c8d5f687 --- /dev/null +++ b/sources/LabSound/src/internal/Cone.h @@ -0,0 +1,41 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef Cone_h +#define Cone_h + +#include "LabSound/core/FloatPoint3D.h" + +namespace lab +{ + +// Cone gain is defined according to the OpenAL specification + +class ConeEffect +{ +public: + ConeEffect(); + + // Returns scalar gain for the given source/listener positions/orientations + double gain(FloatPoint3D sourcePosition, FloatPoint3D sourceOrientation, FloatPoint3D listenerPosition); + + // Angles in degrees + void setInnerAngle(double innerAngle) { m_innerAngle = innerAngle; } + double innerAngle() const { return m_innerAngle; } + + void setOuterAngle(double outerAngle) { m_outerAngle = outerAngle; } + double outerAngle() const { return m_outerAngle; } + + void setOuterGain(double outerGain) { m_outerGain = outerGain; } + double outerGain() const { return m_outerGain; } + +protected: + double m_innerAngle; + double m_outerAngle; + double m_outerGain; +}; + +} // namespace lab + +#endif // Cone_h diff --git a/sources/LabSound/src/internal/DelayDSPKernel.h b/sources/LabSound/src/internal/DelayDSPKernel.h new file mode 100644 index 00000000..996453f5 --- /dev/null +++ b/sources/LabSound/src/internal/DelayDSPKernel.h @@ -0,0 +1,52 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DelayDSPKernel_h +#define DelayDSPKernel_h + +#include "LabSound/core/AudioArray.h" + +#include "internal/AudioDSPKernel.h" +#include "internal/DelayProcessor.h" + +namespace lab +{ + +class DelayProcessor; + +class DelayDSPKernel : public AudioDSPKernel +{ +public: + explicit DelayDSPKernel(DelayProcessor *, float sampleRate); + DelayDSPKernel(double maxDelayTime, float sampleRate); + virtual ~DelayDSPKernel() {} + + virtual void process(ContextRenderLock &, const float * source, float * destination, int framesToProcess) override; + virtual void reset() override; + + double maxDelayTime() const { return m_maxDelayTime; } + + void setDelayFrames(double numberOfFrames) { m_desiredDelayFrames = numberOfFrames; } + + virtual double tailTime(ContextRenderLock & r) const override; + virtual double latencyTime(ContextRenderLock & r) const override; + +private: + AudioFloatArray m_buffer; + double m_maxDelayTime; + int m_writeIndex; + double m_currentDelayTime; + double m_smoothingRate; + bool m_firstTime; + double m_desiredDelayFrames; + + AudioFloatArray m_delayTimes; + + DelayProcessor * delayProcessor() { return static_cast(processor()); } + size_t bufferLengthForDelay(double delayTime, double sampleRate) const; +}; + +} // namespace lab + +#endif // DelayDSPKernel_h diff --git a/sources/LabSound/src/internal/DelayProcessor.h b/sources/LabSound/src/internal/DelayProcessor.h new file mode 100644 index 00000000..cbae7e6a --- /dev/null +++ b/sources/LabSound/src/internal/DelayProcessor.h @@ -0,0 +1,37 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DelayProcessor_h +#define DelayProcessor_h + +#include "LabSound/core/AudioSetting.h" + +#include "internal/AudioDSPKernelProcessor.h" + +namespace lab +{ + +class AudioDSPKernel; + +class DelayProcessor : public AudioDSPKernelProcessor +{ + std::shared_ptr m_delayTime; + double m_maxDelayTime; + float m_sampleRate; + +public: + DelayProcessor(float sampleRate, double maxDelayTime); + + virtual ~DelayProcessor(); + + virtual AudioDSPKernel * createKernel(); + + std::shared_ptr delayTime() const { return m_delayTime; } + + double maxDelayTime() { return m_maxDelayTime; } +}; + +} // namespace lab + +#endif // DelayProcessor_h diff --git a/sources/LabSound/src/internal/DenormalDisabler.h b/sources/LabSound/src/internal/DenormalDisabler.h new file mode 100644 index 00000000..d201c77c --- /dev/null +++ b/sources/LabSound/src/internal/DenormalDisabler.h @@ -0,0 +1,111 @@ +// License: BSD 2 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DenormalDisabler_h +#define DenormalDisabler_h + +#include "LabSound/core/Macros.h" + +// Deal with denormals. They can very seriously impact performance on x86. + +// Define HAVE_DENORMAL if we support flushing denormals to zero. +#if defined(LABSOUND_PLATFORM_WINDOWS) +#define HAVE_DENORMAL +#endif +#include + +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +#define HAVE_DENORMAL +#endif + +namespace lab +{ + +#ifdef HAVE_DENORMAL +class DenormalDisabler +{ +public: + DenormalDisabler() + : m_savedCSR(0) + { +#if defined(LABSOUND_PLATFORM_WINDOWS) + // Save the current state, and set mode to flush denormals. + // + // http://stackoverflow.com/questions/637175/possible-bug-in-controlfp-s-may-not-restore-control-word-correctly + _controlfp_s(&m_savedCSR, 0, 0); + unsigned int unused; + _controlfp_s(&unused, _DN_FLUSH, _MCW_DN); +#else + m_savedCSR = getCSR(); + setCSR(m_savedCSR | 0x8040); +#endif + } + + ~DenormalDisabler() + { +#if defined(LABSOUND_PLATFORM_WINDOWS) + unsigned int unused; + _controlfp_s(&unused, m_savedCSR, _MCW_DN); +#else + setCSR(m_savedCSR); +#endif + } + + // This is a nop if we can flush denormals to zero in hardware. + static inline float flushDenormalFloatToZero(float f) + { +#if defined(LABSOUND_PLATFORM_WINDOWS) && (!_M_IX86_FP) + // For systems using x87 instead of sse, there's no hardware support + // to flush denormals automatically. Hence, we need to flush + // denormals to zero manually. + return (fabs(f) < FLT_MIN) ? 0.0f : f; +#else + return f; +#endif + } + +private: +#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) + inline int getCSR() + { + int result; + asm volatile("stmxcsr %0" + : "=m"(result)); + return result; + } + + inline void setCSR(int a) + { + int temp = a; + asm volatile("ldmxcsr %0" + : + : "m"(temp)); + } + +#endif + + unsigned int m_savedCSR; +}; + +#else +// FIXME: add implementations for other architectures and compilers +class DenormalDisabler +{ +public: + DenormalDisabler() {} + + // Assume the worst case that other architectures and compilers + // need to flush denormals to zero manually. + static inline float flushDenormalFloatToZero(float f) + { + return (fabs(f) < FLT_MIN) ? 0.0f : f; + } +}; + +#endif + +} // lab + +#undef HAVE_DENORMAL +#endif // DenormalDisabler_h diff --git a/sources/LabSound/src/internal/Distance.h b/sources/LabSound/src/internal/Distance.h new file mode 100644 index 00000000..af58a233 --- /dev/null +++ b/sources/LabSound/src/internal/Distance.h @@ -0,0 +1,62 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef Distance_h +#define Distance_h + +namespace lab +{ + +// Distance models are defined according to the OpenAL specification: +// http://connect.creativelabs.com/openal/Documentation/OpenAL%201.1%20Specification.htm. +class DistanceEffect +{ + +public: + enum ModelType + { + ModelLinear = 0, + ModelInverse = 1, + ModelExponential = 2, + _Count = 3 + }; + + DistanceEffect(); + + // Returns scalar gain for the given distance the current distance model is used + double gain(double distance); + + ModelType model() { return m_model; } + + void setModel(ModelType model, bool clamped) + { + m_model = model; + m_isClamped = clamped; + } + + // Distance params + void setRefDistance(double refDistance) { m_refDistance = refDistance; } + void setMaxDistance(double maxDistance) { m_maxDistance = maxDistance; } + void setRolloffFactor(double rolloffFactor) { m_rolloffFactor = rolloffFactor; } + + double refDistance() const { return m_refDistance; } + double maxDistance() const { return m_maxDistance; } + double rolloffFactor() const { return m_rolloffFactor; } + +protected: + double linearGain(double distance); + double inverseGain(double distance); + double exponentialGain(double distance); + + ModelType m_model = ModelInverse; + + bool m_isClamped = true; + double m_refDistance = 1.0; + double m_maxDistance = 10000.0; + double m_rolloffFactor = 1.0; +}; + +} // namespace lab + +#endif // Distance_h diff --git a/sources/LabSound/src/internal/DynamicsCompressor.h b/sources/LabSound/src/internal/DynamicsCompressor.h new file mode 100644 index 00000000..645b6b68 --- /dev/null +++ b/sources/LabSound/src/internal/DynamicsCompressor.h @@ -0,0 +1,95 @@ +// License: BSD 3 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DynamicsCompressor_h +#define DynamicsCompressor_h + +#include "LabSound/core/AudioArray.h" + +#include "internal/DynamicsCompressorKernel.h" +#include "internal/ZeroPole.h" + +#include + +namespace lab +{ + +class AudioBus; + +// DynamicsCompressor implements a flexible audio dynamics compression effect such as +// is commonly used in musical production and game audio. It lowers the volume +// of the loudest parts of the signal and raises the volume of the softest parts, +// making the sound richer, fuller, and more controlled. + +class DynamicsCompressor +{ + +public: + enum + { + ParamThreshold, + ParamKnee, + ParamRatio, + ParamAttack, + ParamRelease, + ParamPreDelay, + ParamReleaseZone1, + ParamReleaseZone2, + ParamReleaseZone3, + ParamReleaseZone4, + ParamPostGain, + ParamFilterStageGain, + ParamFilterStageRatio, + ParamFilterAnchor, + ParamEffectBlend, + ParamReduction, + ParamLast + }; + + DynamicsCompressor(unsigned numberOfChannels); + + void process(ContextRenderLock &, const AudioBus * sourceBus, AudioBus * destinationBus, int bufferSize, int offset, int count); + void reset(); + void setNumberOfChannels(unsigned); + + void setParameterValue(unsigned parameterID, float value); + float parameterValue(unsigned parameterID); + + double tailTime(ContextRenderLock & r) const; + double latencyTime(ContextRenderLock & r) const; + +protected: + unsigned m_numberOfChannels; + + // m_parameters holds the tweakable compressor parameters. + float m_parameters[ParamLast]; + void initializeParameters(); + + // Emphasis filter controls. + float m_lastFilterStageRatio; + float m_lastAnchor; + float m_lastFilterStageGain; + + typedef struct + { + ZeroPole filters[4]; + } ZeroPoleFilterPack4; + + // Per-channel emphasis filters. + std::vector> m_preFilterPacks; + std::vector> m_postFilterPacks; + + std::unique_ptr m_sourceChannels; + std::unique_ptr m_destinationChannels; + + void setEmphasisStageParameters(unsigned stageIndex, float gain, float normalizedFrequency /* 0 -> 1 */); + void setEmphasisParameters(float gain, float anchorFreq, float filterStageRatio); + + // The core compressor. + DynamicsCompressorKernel m_compressor; +}; + +} // namespace lab + +#endif // DynamicsCompressor_h diff --git a/sources/LabSound/src/internal/DynamicsCompressorKernel.h b/sources/LabSound/src/internal/DynamicsCompressorKernel.h new file mode 100644 index 00000000..619387f1 --- /dev/null +++ b/sources/LabSound/src/internal/DynamicsCompressorKernel.h @@ -0,0 +1,116 @@ +// License: BSD 3 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef DynamicsCompressorKernel_h +#define DynamicsCompressorKernel_h + +#include "LabSound/core/AudioArray.h" + +#include +#include + +namespace lab +{ + +class ContextRenderLock; + +class DynamicsCompressorKernel +{ + +public: + DynamicsCompressorKernel(unsigned numberOfChannels); + + void setNumberOfChannels(unsigned); + + // Performs stereo-linked compression. + void process(ContextRenderLock &, + const float * sourceChannels[], + float * destinationChannels[], + unsigned numberOfChannels, + int framesToProcess, + + float dbThreshold, + float dbKnee, + float ratio, + float attackTime, + float releaseTime, + float preDelayTime, + float dbPostGain, + float effectBlend, + + float releaseZone1, + float releaseZone2, + float releaseZone3, + float releaseZone4); + + void reset(); + + unsigned latencyFrames() const { return m_lastPreDelayFrames; } + + float meteringGain() const { return m_meteringGain; } + +protected: + float m_detectorAverage; + float m_compressorGain; + + // Metering + float m_meteringReleaseK; + float m_meteringGain; + + // Lookahead section. + enum + { + MaxPreDelayFrames = 1024 + }; + enum + { + MaxPreDelayFramesMask = MaxPreDelayFrames - 1 + }; + enum + { + DefaultPreDelayFrames = 256 + }; // setPreDelayTime() will override this initial value + unsigned m_lastPreDelayFrames; + void setPreDelayTime(float time, float sampleRate); + + std::vector> m_preDelayBuffers; + + int m_preDelayReadIndex; + int m_preDelayWriteIndex; + + float m_maxAttackCompressionDiffDb; + + // Static compression curve. + float kneeCurve(float x, float k); + float saturate(float x, float k); + float slopeAt(float x, float k); + float kAtSlope(float desiredSlope); + + float updateStaticCurveParameters(float dbThreshold, float dbKnee, float ratio); + + // Amount of input change in dB required for 1 dB of output change. + // This applies to the portion of the curve above m_kneeThresholdDb (see below). + float m_ratio; + float m_slope; // Inverse ratio. + + // The input to output change below the threshold is linear 1:1. + float m_linearThreshold; + float m_dbThreshold; + + // m_dbKnee is the number of dB above the threshold before we enter the "ratio" portion of the curve. + // m_kneeThresholdDb = m_dbThreshold + m_dbKnee + // The portion between m_dbThreshold and m_kneeThresholdDb is the "soft knee" portion of the curve + // which transitions smoothly from the linear portion to the ratio portion. + float m_dbKnee; + float m_kneeThreshold; + float m_kneeThresholdDb; + float m_ykneeThresholdDb; + + // Internal parameter for the knee portion of the curve. + float m_K; +}; + +} // namespace lab + +#endif // DynamicsCompressorKernel_h diff --git a/sources/LabSound/src/internal/EqualPowerPanner.h b/sources/LabSound/src/internal/EqualPowerPanner.h new file mode 100644 index 00000000..a48af7ca --- /dev/null +++ b/sources/LabSound/src/internal/EqualPowerPanner.h @@ -0,0 +1,40 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef EqualPowerPanner_h +#define EqualPowerPanner_h + +#include "internal/Panner.h" + +namespace lab +{ + +// Common type of stereo panner as found in normal audio mixing equipment. +class EqualPowerPanner : public Panner +{ + +public: + EqualPowerPanner(const float sampleRate); + + virtual void pan(ContextRenderLock &, double azimuth, double elevation, + const AudioBus * inputBus, AudioBus * outputBuf, + int framesToProcess) override; + + virtual void reset() override { m_isFirstRender = true; } + + virtual double tailTime(ContextRenderLock & r) const override { return 0; } + virtual double latencyTime(ContextRenderLock & r) const override { return 0; } + +private: + // For smoothing / de-zippering + bool m_isFirstRender = true; + double m_smoothingConstant; + + double m_gainL = 0.0; + double m_gainR = 0.0; +}; + +} // namespace lab + +#endif diff --git a/sources/LabSound/src/internal/FFTConvolver.h b/sources/LabSound/src/internal/FFTConvolver.h new file mode 100644 index 00000000..c61284ca --- /dev/null +++ b/sources/LabSound/src/internal/FFTConvolver.h @@ -0,0 +1,50 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef FFTConvolver_h +#define FFTConvolver_h + +#include "LabSound/core/AudioArray.h" + +#include "internal/FFTFrame.h" + +namespace lab +{ + +class FFTConvolver +{ +public: + // fftSize must be a power of two + FFTConvolver(int fftSize); + + // For now, with multiple calls to Process(), framesToProcess MUST add up EXACTLY to fftSize / 2 + // + // FIXME: Later, we can do more sophisticated buffering to relax this requirement... + // + // The input to output latency is equal to fftSize / 2 + // + // Processing in-place is allowed... + void process(FFTFrame * fftKernel, const float * sourceP, float * destP, int framesToProcess); + + void reset(); + + int fftSize() const { return m_frame.fftSize(); } + +private: + FFTFrame m_frame; + + // Buffer input until we get fftSize / 2 samples then do an FFT + size_t m_readWriteIndex; + AudioFloatArray m_inputBuffer; + + // Stores output which we read a little at a time + AudioFloatArray m_outputBuffer; + + // Saves the 2nd half of the FFT buffer, so we can do an overlap-add with the 1st half of the next one + AudioFloatArray m_lastOverlapBuffer; +}; + +} // namespace lab + +#endif // FFTConvolver_h diff --git a/sources/LabSound/src/internal/FFTFrame.h b/sources/LabSound/src/internal/FFTFrame.h new file mode 100644 index 00000000..e61ea58f --- /dev/null +++ b/sources/LabSound/src/internal/FFTFrame.h @@ -0,0 +1,112 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef FFTFrame_h +#define FFTFrame_h + +#include "LabSound/core/AudioArray.h" + +#include "LabSound/core/Macros.h" + +#include +#include + +#if defined(LABSOUND_PLATFORM_OSX) && !defined(USE_KISS_FFT) + #define USE_ACCELERATE_FFT 1 +#else + #define USE_ACCELERATE_FFT 0 +#endif + +#if USE_ACCELERATE_FFT + #include +#endif + +#if defined(USE_KISS_FFT) +#include +#include +#endif + +namespace lab +{ + +// Defines the interface for an "FFT frame", an object which is able to perform a forward +// and reverse FFT, internally storing the resultant frequency-domain data. +class FFTFrame +{ + +public: + FFTFrame(); // creates a blank/empty frame for later use with createInterpolatedFrame() + FFTFrame(int fftSize); + + // Copy + FFTFrame(const FFTFrame & frame); + ~FFTFrame(); + + void computeForwardFFT(const float * data); + void computeInverseFFT(float * data); + void multiply(const FFTFrame & frame); // multiplies ourself with frame : effectively operator*=() + + float * realData() const; + float * imagData() const; + + void print(); // for debugging + + // The remaining public methods have cross-platform implementations: + + // Interpolates from frame1 -> frame2 as x goes from 0.0 -> 1.0 + static std::unique_ptr createInterpolatedFrame(const FFTFrame & frame1, const FFTFrame & frame2, double x); + + void doPaddedFFT(const float * data, int dataSize); // zero-padding with dataSize <= fftSize + double extractAverageGroupDelay(); + void addConstantGroupDelay(double sampleFrameDelay); + + int fftSize() const { return m_FFTSize; } + int log2FFTSize() const { return m_log2FFTSize; } + +#if USE_ACCELERATE_FFT + static void cleanup(); +#endif + +private: + int m_FFTSize; + int m_log2FFTSize; + + void interpolateFrequencyComponents(const FFTFrame & frame1, const FFTFrame & frame2, double x); + +#if USE_ACCELERATE_FFT + DSPSplitComplex & dspSplitComplex() + { + return m_frame; + } + DSPSplitComplex dspSplitComplex() const { return m_frame; } + + static FFTSetup fftSetupForSize(int fftSize); + + static FFTSetup * fftSetups; + + FFTSetup m_FFTSetup; + + DSPSplitComplex m_frame; + AudioFloatArray m_realData; + AudioFloatArray m_imagData; +#endif + +#if defined(USE_KISS_FFT) + kiss_fftr_cfg mFFT; + kiss_fftr_cfg mIFFT; + + kiss_fft_cpx * m_cpxInputData; + kiss_fft_cpx * m_cpxOutputData; + + std::vector mOutputBuffer; + + AudioFloatArray m_realData; + AudioFloatArray m_imagData; +#endif + +}; + +} // namespace lab + +#endif // FFTFrame_h diff --git a/sources/LabSound/src/internal/HRTFDatabase.h b/sources/LabSound/src/internal/HRTFDatabase.h new file mode 100644 index 00000000..80d44aff --- /dev/null +++ b/sources/LabSound/src/internal/HRTFDatabase.h @@ -0,0 +1,42 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef HRTFDatabase_h +#define HRTFDatabase_h + +#include "LabSound/extended/Util.h" +#include "internal/HRTFElevation.h" + +#include + +namespace lab +{ + +class HRTFKernel; +class HRTFDatabase +{ + + NO_MOVE(HRTFDatabase); + +public: + HRTFDatabase(float sampleRate, const std::string & searchPath); + + // getKernelsFromAzimuthElevation() returns a left and right ear kernel, and an interpolated left and right frame delay for the given azimuth and elevation. + // azimuthBlend must be in the range 0 -> 1. + // Valid values for azimuthIndex are 0 -> HRTFElevation::NumberOfTotalAzimuths - 1 (corresponding to angles of 0 -> 360). + // Valid values for elevationAngle are MinElevation -> MaxElevation. + void getKernelsFromAzimuthElevation(double azimuthBlend, unsigned azimuthIndex, double elevationAngle, HRTFKernel *& kernelL, HRTFKernel *& kernelR, double & frameDelayL, double & frameDelayR); + + // Returns the number of different azimuth angles. + static unsigned numberOfAzimuths() { return HRTFElevation::NumberOfTotalAzimuths; } + +private: + std::vector> m_elevations; + + std::unique_ptr info; +}; + +} // namespace lab + +#endif // HRTFDatabase_h diff --git a/sources/LabSound/src/internal/HRTFDatabaseLoader.h b/sources/LabSound/src/internal/HRTFDatabaseLoader.h new file mode 100644 index 00000000..058bcf87 --- /dev/null +++ b/sources/LabSound/src/internal/HRTFDatabaseLoader.h @@ -0,0 +1,80 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef HRTFDatabaseLoader_h +#define HRTFDatabaseLoader_h + +#include "internal/HRTFDatabase.h" + +#include +#include +#include + +namespace lab +{ + +// HRTFDatabaseLoader will asynchronously load the default HRTFDatabase in a new thread. + +class HRTFDatabaseLoader +{ + +public: + // Both constructor and destructor must be called from the main thread. + // It's expected that the singletons will be accessed instead. + // @CBB the guts of the loader should be a private singleton, so that the loader can be constructed without a factory + explicit HRTFDatabaseLoader(float sampleRate, const std::string & searchPath); + + // Lazily creates the singleton HRTFDatabaseLoader (if not already created) and starts loading asynchronously (when created the first time). + // Returns the singleton HRTFDatabaseLoader. + // Must be called from the main thread. + static std::shared_ptr MakeHRTFLoaderSingleton(float sampleRate, const std::string & searchPath); + + // Returns the singleton HRTFDatabaseLoader. + static std::shared_ptr loader() { return s_loader; } + + // Both constructor and destructor must be called from the main thread. + ~HRTFDatabaseLoader(); + + // Returns true once the default database has been completely loaded. + bool isLoaded() const; + + // waitForLoaderThreadCompletion() may be called more than once and is thread-safe. + void waitForLoaderThreadCompletion(); + + HRTFDatabase * database() { return m_hrtfDatabase.get(); } + + float databaseSampleRate() const { return m_databaseSampleRate; } + + // Called in asynchronous loading thread. + void load(); + + // defaultHRTFDatabase() gives access to the loaded database. + // This can be called from any thread, but it is the callers responsibilty to call this while the context (and thus HRTFDatabaseLoader) + // is still alive. Otherwise this will return 0. + static HRTFDatabase * defaultHRTFDatabase(); + +private: + static void databaseLoaderEntry(HRTFDatabaseLoader * threadData); + + // If it hasn't already been loaded, creates a new thread and initiates asynchronous loading of the default database. + // This must be called from the main thread. + void loadAsynchronously(); + + static std::shared_ptr s_loader; // singleton + std::unique_ptr m_hrtfDatabase; + + // Holding a m_threadLock is required when accessing m_databaseLoaderThread. + std::mutex m_threadLock; + std::thread m_databaseLoaderThread; + std::condition_variable m_loadingCondition; + bool m_loading; + + float m_databaseSampleRate; + + std::string searchPath; +}; + +} // namespace lab + +#endif // HRTFDatabaseLoader_h diff --git a/sources/LabSound/src/internal/HRTFElevation.h b/sources/LabSound/src/internal/HRTFElevation.h new file mode 100644 index 00000000..a2abc7ce --- /dev/null +++ b/sources/LabSound/src/internal/HRTFElevation.h @@ -0,0 +1,81 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef HRTFElevation_h +#define HRTFElevation_h + +#include "LabSound/extended/Util.h" + +#include "internal/HRTFKernel.h" + +#include + +namespace lab +{ + +// HRTFElevation contains all of the HRTFKernels (one left ear and one right ear per azimuth angle) for a particular elevation. +class HRTFElevation +{ + +public: + // Loads and returns an HRTFElevation with the given HRTF database subject name and elevation from resources. + // Normally, there will only be a single HRTF database set, but this API supports the possibility of multiple ones with different names. + // Interpolated azimuths will be generated based on InterpolationFactor. + // Valid values for elevation are -45 -> +90 in 15 degree increments. + static std::unique_ptr createForSubject(HRTFDatabaseInfo * info, int elevation); + + // Given two HRTFElevations, and an interpolation factor x: 0 -> 1, returns an interpolated HRTFElevation. + static std::unique_ptr createByInterpolatingSlices(HRTFDatabaseInfo * info, HRTFElevation * hrtfElevation1, HRTFElevation * hrtfElevation2, float x); + + // Returns the list of left or right ear HRTFKernels for all the azimuths going from 0 to 360 degrees. + HRTFKernelList * kernelListL() { return m_kernelListL.get(); } + HRTFKernelList * kernelListR() { return m_kernelListR.get(); } + + double elevationAngle() const { return m_elevationAngle; } + unsigned numberOfAzimuths() const { return NumberOfTotalAzimuths; } + + // Returns the left and right kernels for the given azimuth index. + // The interpolated delays based on azimuthBlend: 0 -> 1 are returned in frameDelayL and frameDelayR. + void getKernelsFromAzimuth(double azimuthBlend, unsigned azimuthIndex, HRTFKernel *& kernelL, HRTFKernel *& kernelR, double & frameDelayL, double & frameDelayR); + + // Spacing, in degrees, between every azimuth loaded from resource. + static const unsigned AzimuthSpacing; + + // Number of azimuths loaded from resource. + static const unsigned NumberOfRawAzimuths; + + // Interpolates by this factor to get the total number of azimuths from every azimuth loaded from resource. + static const unsigned InterpolationFactor; + + // Total number of azimuths after interpolation. + static const unsigned NumberOfTotalAzimuths; + + // Given a specific azimuth and elevation angle, returns the left and right HRTFKernel. + // Valid values for azimuth are 0 -> 345 in 15 degree increments. + // Valid values for elevation are -45 -> +90 in 15 degree increments. + // Returns true on success. + static bool calculateKernelsForAzimuthElevation(HRTFDatabaseInfo * info, int azimuth, int elevation, std::shared_ptr & kernelL, std::shared_ptr & kernelR); + + // Given a specific azimuth and elevation angle, returns the left and right HRTFKernel in kernelL and kernelR. + // This method averages the measured response using symmetry of azimuth (for example by averaging the -30.0 and +30.0 azimuth responses). + // Returns true on success. + static bool calculateSymmetricKernelsForAzimuthElevation(HRTFDatabaseInfo * info, int azimuth, int elevation, std::shared_ptr & kernelL, std::shared_ptr & kernelR); + +private: + HRTFElevation(HRTFDatabaseInfo * info, std::unique_ptr kernelListL, std::unique_ptr kernelListR, int elevation) + : m_kernelListL(std::move(kernelListL)) + , m_kernelListR(std::move(kernelListR)) + , m_elevationAngle(elevation) + { + } + + std::unique_ptr m_kernelListL; + std::unique_ptr m_kernelListR; + + double m_elevationAngle; +}; + +} // namespace lab + +#endif // HRTFElevation_h diff --git a/sources/LabSound/src/internal/HRTFKernel.h b/sources/LabSound/src/internal/HRTFKernel.h new file mode 100644 index 00000000..4cff88f0 --- /dev/null +++ b/sources/LabSound/src/internal/HRTFKernel.h @@ -0,0 +1,60 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef HRTFKernel_h +#define HRTFKernel_h + +#include "internal/FFTFrame.h" +#include + +namespace lab +{ + +class AudioChannel; + +// HRTF stands for Head-Related Transfer Function. +// HRTFKernel is a frequency-domain representation of an impulse-response used as part of the spatialized panning system. +// For a given azimuth / elevation angle there will be one HRTFKernel for the left ear transfer function, and one for the right ear. +// The leading delay (average group delay) for each impulse response is extracted: +// m_fftFrame is the frequency-domain representation of the impulse response with the delay removed +// m_frameDelay is the leading delay of the original impulse response. +class HRTFKernel +{ +public: + // Note: this is destructive on the passed in AudioChannel. + // The length of channel must be a power of two. + HRTFKernel(AudioChannel *, int fftSize, float sampleRate); + + HRTFKernel(std::unique_ptr fftFrame, float frameDelay, float sampleRate) + : m_fftFrame(std::move(fftFrame)) + , m_frameDelay(frameDelay) + , m_sampleRate(sampleRate) + { + } + + FFTFrame * fftFrame() { return m_fftFrame.get(); } + + int fftSize() const { return m_fftFrame->fftSize(); } + float frameDelay() const { return m_frameDelay; } + + // Converts back into impulse-response form. + std::unique_ptr createImpulseResponse(); + + float sampleRate() const { return m_sampleRate; } + +private: + // Note: this is destructive on the passed in AudioChannel. + std::unique_ptr m_fftFrame; + float m_frameDelay; + float m_sampleRate; +}; + +typedef std::vector> HRTFKernelList; + +// Given two HRTFKernels, and an interpolation factor x: 0 -> 1, returns an interpolated HRTFKernel. +std::unique_ptr MakeInterpolatedKernel(HRTFKernel * kernel1, HRTFKernel * kernel2, float x); + +} // namespace lab + +#endif // HRTFKernel_h diff --git a/sources/LabSound/src/internal/HRTFPanner.h b/sources/LabSound/src/internal/HRTFPanner.h new file mode 100644 index 00000000..f605e3b1 --- /dev/null +++ b/sources/LabSound/src/internal/HRTFPanner.h @@ -0,0 +1,86 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef HRTFPanner_h +#define HRTFPanner_h + +#include "internal/DelayDSPKernel.h" +#include "internal/FFTConvolver.h" +#include "internal/Panner.h" + +namespace lab +{ + +class HRTFPanner : public Panner +{ + +public: + HRTFPanner(const float sampleRate); + virtual ~HRTFPanner(); + + // Panner + virtual void pan(ContextRenderLock &, double azimuth, double elevation, const AudioBus * inputBus, AudioBus * outputBus, int framesToProcess) override; + virtual void reset() override; + + uint32_t fftSize() const { return fftSizeForSampleRate(m_sampleRate); } + static uint32_t fftSizeForSampleRate(float sampleRate); + + virtual double tailTime(ContextRenderLock & r) const override; + virtual double latencyTime(ContextRenderLock & r) const override; + +private: + // Given an azimuth angle in the range -180 -> +180, returns the corresponding azimuth index for the database, + // and azimuthBlend which is an interpolation value from 0 -> 1. + int calculateDesiredAzimuthIndexAndBlend(double azimuth, double & azimuthBlend); + + // We maintain two sets of convolvers for smooth cross-faded interpolations when + // then azimuth and elevation are dynamically changing. + // When the azimuth and elevation are not changing, we simply process with one of the two sets. + // Initially we use CrossfadeSelection1 corresponding to m_convolverL1 and m_convolverR1. + // Whenever the azimuth or elevation changes, a crossfade is initiated to transition + // to the new position. So if we're currently processing with CrossfadeSelection1, then + // we transition to CrossfadeSelection2 (and vice versa). + // If we're in the middle of a transition, then we wait until it is complete before + // initiating a new transition. + + // Selects either the convolver set (m_convolverL1, m_convolverR1) or (m_convolverL2, m_convolverR2). + enum CrossfadeSelection + { + CrossfadeSelection1, + CrossfadeSelection2 + }; + + CrossfadeSelection m_crossfadeSelection; + + // azimuth/elevation for CrossfadeSelection1. + int m_azimuthIndex1; + double m_elevation1; + + // azimuth/elevation for CrossfadeSelection2. + int m_azimuthIndex2; + double m_elevation2; + + // A crossfade value 0 <= m_crossfadeX <= 1. + float m_crossfadeX; + + // Per-sample-frame crossfade value increment. + float m_crossfadeIncr; + + FFTConvolver m_convolverL1; + FFTConvolver m_convolverR1; + FFTConvolver m_convolverL2; + FFTConvolver m_convolverR2; + + DelayDSPKernel m_delayLineL; + DelayDSPKernel m_delayLineR; + + AudioFloatArray m_tempL1; + AudioFloatArray m_tempR1; + AudioFloatArray m_tempL2; + AudioFloatArray m_tempR2; +}; + +} // namespace lab + +#endif // HRTFPanner_h diff --git a/sources/LabSound/src/internal/Panner.h b/sources/LabSound/src/internal/Panner.h new file mode 100644 index 00000000..cf5ea08e --- /dev/null +++ b/sources/LabSound/src/internal/Panner.h @@ -0,0 +1,36 @@ +// License: BSD 3 Clause +// Copyright (C) 2009, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef Panner_h +#define Panner_h + +#include +#include + +namespace lab +{ + +class AudioBus; +class ContextRenderLock; + +// clang-format off +class Panner +{ +public: + Panner(const float sampleRate, PanningMode mode) : m_sampleRate(sampleRate) , m_panningModel(mode) {} + virtual ~Panner() {}; + PanningMode panningModel() const { return m_panningModel; } + virtual void pan(ContextRenderLock & r, double azimuth, double elevation, const AudioBus * inputBus, AudioBus * outputBus, int framesToProcess) = 0; + virtual void reset() = 0; + virtual double tailTime(ContextRenderLock & r) const = 0; + virtual double latencyTime(ContextRenderLock & r) const = 0; +protected: + float m_sampleRate {0.f}; + PanningMode m_panningModel; +}; +// clang-format on + +} + +#endif diff --git a/sources/LabSound/src/internal/VectorMath.h b/sources/LabSound/src/internal/VectorMath.h new file mode 100644 index 00000000..e59b57c4 --- /dev/null +++ b/sources/LabSound/src/internal/VectorMath.h @@ -0,0 +1,44 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef VectorMath_h +#define VectorMath_h + +#include + +// Defines the interface for several vector math functions whose implementation will ideally be optimized. + +namespace lab +{ + +namespace VectorMath +{ + // Vector scalar multiply and then add. + void vsma(const float * sourceP, int sourceStride, const float * scale, float * destP, int destStride, int framesToProcess); + + void vsmul(const float * sourceP, int sourceStride, const float * scale, float * destP, int destStride, int framesToProcess); + void vadd(const float * source1P, int sourceStride1, const float * source2P, int sourceStride2, float * destP, int destStride, int framesToProcess); + void vintlve(const float * realSrcP, const float * imagSrcP, float * destP, int framesToProcess); // for KissFFT + void vdeintlve(const float * sourceP, float * realDestP, float * imagDestP, int framesToProcess); // for KissFFT + + // Finds the maximum magnitude of a float vector. + void vmaxmgv(const float * sourceP, int sourceStride, float * maxP, int framesToProcess); + + // Sums the squares of a float vector's elements. + void vsvesq(const float * sourceP, int sourceStride, float * sumP, int framesToProcess); + + // For an element-by-element multiply of two float vectors. + void vmul(const float * source1P, int sourceStride1, const float * source2P, int sourceStride2, float * destP, int destStride, int framesToProcess); + + // Multiplies two complex vectors. + void zvmul(const float * real1P, const float * imag1P, const float * real2P, const float * imag2P, float * realDestP, float * imagDestP, int framesToProcess); + + // Copies elements while clipping values to the threshold inputs. + void vclip(const float * sourceP, int sourceStride, const float * lowThresholdP, const float * highThresholdP, float * destP, int destStride, int framesToProcess); + +} // namespace VectorMath + +} // namespace lab + +#endif // VectorMath_h diff --git a/sources/LabSound/src/internal/ZeroPole.h b/sources/LabSound/src/internal/ZeroPole.h new file mode 100644 index 00000000..6487de58 --- /dev/null +++ b/sources/LabSound/src/internal/ZeroPole.h @@ -0,0 +1,42 @@ +// License: BSD 3 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#ifndef ZeroPole_h +#define ZeroPole_h + +#include + +namespace lab +{ + +// ZeroPole is a simple filter with one zero and one pole. +class ZeroPole +{ + float m_zero = 0.f; + float m_pole = 0.f; + float m_lastX = 0.f; + float m_lastY = 0.f; + +public: + ZeroPole() {} + + void process(const float * source, float * destination, int bufferSize, int offset, int count); + + // Reset filter state. + void reset() + { + m_lastX = 0; + m_lastY = 0; + } + + void setZero(float zero) { m_zero = zero; } + void setPole(float pole) { m_pole = pole; } + + float zero() const { return m_zero; } + float pole() const { return m_pole; } +}; + +} // namespace lab + +#endif // ZeroPole_h diff --git a/sources/LabSound/src/internal/src/AudioDSPKernelProcessor.cpp b/sources/LabSound/src/internal/src/AudioDSPKernelProcessor.cpp new file mode 100644 index 00000000..764568b4 --- /dev/null +++ b/sources/LabSound/src/internal/src/AudioDSPKernelProcessor.cpp @@ -0,0 +1,97 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/AudioDSPKernelProcessor.h" +#include "internal/Assertions.h" +#include "internal/AudioDSPKernel.h" +#include + +namespace lab +{ + +// setNumberOfChannels() may later be called if the object is not yet in an "initialized" state. +AudioDSPKernelProcessor::AudioDSPKernelProcessor() + : AudioProcessor() + , m_hasJustReset(true) +{ +} + +void AudioDSPKernelProcessor::initialize() +{ + if (isInitialized()) + return; + + m_initialized = true; + m_hasJustReset = true; +} + +void AudioDSPKernelProcessor::uninitialize() +{ + if (!isInitialized()) + return; + + m_kernels.clear(); + m_initialized = false; +} + +void AudioDSPKernelProcessor::process(ContextRenderLock & r, const AudioBus * source, AudioBus * destination, int framesToProcess) +{ + ASSERT(source && destination); + if (!source || !destination) + return; + + if (!isInitialized()) + { + destination->zero(); + return; + } + + size_t src_channels = source->numberOfChannels(); + size_t dst_channels = destination->numberOfChannels(); + size_t kernel_count = std::min(src_channels, dst_channels); + + if (m_kernels.size() != dst_channels) + { + m_kernels.clear(); + for (int i = 0; i < dst_channels; ++i) + m_kernels.push_back(std::unique_ptr(createKernel())); + } + + bool channelCountMatches = source->numberOfChannels() == destination->numberOfChannels() && source->numberOfChannels() == m_kernels.size(); + ASSERT(channelCountMatches); + if (!channelCountMatches) + return; + + for (unsigned i = 0; i < m_kernels.size(); ++i) + m_kernels[i]->process(r, source->channel(i)->data(), + destination->channel(i)->mutableData(), framesToProcess); +} + +// Resets filter state +void AudioDSPKernelProcessor::reset() +{ + if (!isInitialized()) + return; + + // Forces snap to parameter values - first time. + // Any processing depending on this value must set it to false at the appropriate time. + m_hasJustReset = true; + + for (unsigned i = 0; i < m_kernels.size(); ++i) + m_kernels[i]->reset(); +} + +double AudioDSPKernelProcessor::tailTime(ContextRenderLock & r) const +{ + // It is expected that all the kernels have the same tailTime. + return !m_kernels.empty() ? (*m_kernels.begin())->tailTime(r) : 0; +} + +double AudioDSPKernelProcessor::latencyTime(ContextRenderLock & r) const +{ + // It is expected that all the kernels have the same latencyTime. + return !m_kernels.empty() ? (*m_kernels.begin())->latencyTime(r) : 0; +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/AudioUtilities.cpp b/sources/LabSound/src/internal/src/AudioUtilities.cpp new file mode 100644 index 00000000..efb2114e --- /dev/null +++ b/sources/LabSound/src/internal/src/AudioUtilities.cpp @@ -0,0 +1,26 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/AudioUtilities.h" +#include "internal/Assertions.h" + +#include "LabSound/core/Macros.h" + +float lab::AudioUtilities::decibelsToLinear(float decibels) +{ + return std::pow(10.f, 0.05f * decibels); +} + +float lab::AudioUtilities::linearToDecibels(float linear) +{ + // It's not possible to calculate decibels for a zero linear value since it would be -Inf. + // -1000.0 dB represents a very tiny linear value in case we ever reach this case. + if (!linear) return -1000.0; + return (20.f * std::log10(linear)); +} + +double lab::AudioUtilities::discreteTimeConstantForSampleRate(double timeConstant, double sampleRate) +{ + return 1.0 - std::exp(-1.0 / (sampleRate * timeConstant)); +} diff --git a/sources/LabSound/src/internal/src/Biquad.cpp b/sources/LabSound/src/internal/src/Biquad.cpp new file mode 100644 index 00000000..2d881083 --- /dev/null +++ b/sources/LabSound/src/internal/src/Biquad.cpp @@ -0,0 +1,487 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/Biquad.h" +#include "internal/DenormalDisabler.h" + +#include "LabSound/core/Macros.h" + +#include +#include + +using namespace std; + +namespace lab +{ + +Biquad::Biquad() +{ + // Initialize as pass-thru (straight-wire, no filter effect) + setNormalizedCoefficients(1, 0, 0, 1, 0, 0); + reset(); // clear filter memory +} + +Biquad::~Biquad() { } + +void Biquad::process(const float * sourceP, float * destP, int framesToProcess) +{ + int n = framesToProcess; + + // Biquad needs to be double precision at 48khz for frequencies less than 500Hz + // according to multiple references. + + // Create local copies of member variables + double x1 = m_x1; + double x2 = m_x2; + double y1 = m_y1; + double y2 = m_y2; + + double b0 = m_b0; + double b1 = m_b1; + double b2 = m_b2; + double a1 = m_a1; + double a2 = m_a2; + + while (n--) + { + float x = *sourceP++; + float y = static_cast(b0 * x + b1 * x1 + b2 * x2 - a1 * y1 - a2 * y2); + + *destP++ = y; + + // Update state variables + x2 = x1; + x1 = x; + y2 = y1; + y1 = y; + } + + m_x1 = x1;// DenormalDisabler::flushDenormalFloatToZero(x1); + m_x2 = x2;// DenormalDisabler::flushDenormalFloatToZero(x2); + m_y1 = y1;// DenormalDisabler::flushDenormalFloatToZero(y1); + m_y2 = y2;// DenormalDisabler::flushDenormalFloatToZero(y2); + + m_b0 = b0; + m_b1 = b1; + m_b2 = b2; + m_a1 = a1; + m_a2 = a2; +} + +void Biquad::reset() +{ + m_x1 = m_x2 = m_y1 = m_y2 = 0; +} + +void Biquad::setLowpassParams(double cutoff, double resonance) +{ + // Limit cutoff to 0 to 1. + cutoff = std::max(0.0, std::min(cutoff, 1.0)); + + if (cutoff == 1) + { + // When cutoff is 1, the z-transform is 1. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } + else if (cutoff > 0) + { + // Compute biquad coefficients for lowpass filter + resonance = std::max(0.0, resonance); // can't go negative + double g = pow(10.0, 0.05 * resonance); + double d = sqrt((4 - sqrt(16 - 16 / (g * g))) / 2); + + double theta = static_cast(LAB_PI) * cutoff; + double sn = 0.5 * d * sin(theta); + double beta = 0.5 * (1 - sn) / (1 + sn); + double gamma = (0.5 + beta) * cos(theta); + double alpha = 0.25 * (0.5 + beta - gamma); + + double b0 = 2 * alpha; + double b1 = 2 * 2 * alpha; + double b2 = 2 * alpha; + double a1 = 2 * -gamma; + double a2 = 2 * beta; + + setNormalizedCoefficients(b0, b1, b2, 1, a1, a2); + } + else + { + // When cutoff is zero, nothing gets through the filter, so set + // coefficients up correctly. + setNormalizedCoefficients(0, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setHighpassParams(double cutoff, double resonance) +{ + // Limit cutoff to 0 to 1. + cutoff = std::max(0.0, std::min(cutoff, 1.0)); + + if (cutoff == 1) + { + // The z-transform is 0. + setNormalizedCoefficients(0, 0, 0, + 1, 0, 0); + } + else if (cutoff > 0) + { + // Compute biquad coefficients for highpass filter + resonance = std::max(0.0, resonance); // can't go negative + double g = pow(10.0, 0.05 * resonance); + double d = sqrt((4 - sqrt(16 - 16 / (g * g))) / 2); + + double theta = static_cast(LAB_PI) * cutoff; + double sn = 0.5 * d * sin(theta); + double beta = 0.5 * (1 - sn) / (1 + sn); + double gamma = (0.5 + beta) * cos(theta); + double alpha = 0.25 * (0.5 + beta + gamma); + + double b0 = 2 * alpha; + double b1 = 2 * -2 * alpha; + double b2 = 2 * alpha; + double a1 = 2 * -gamma; + double a2 = 2 * beta; + + setNormalizedCoefficients(b0, b1, b2, 1, a1, a2); + } + else + { + // When cutoff is zero, we need to be careful because the above + // gives a quadratic divided by the same quadratic, with poles + // and zeros on the unit circle in the same place. When cutoff + // is zero, the z-transform is 1. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setNormalizedCoefficients(double b0, double b1, double b2, double a0, double a1, double a2) +{ + double a0Inverse = 1 / a0; + + m_b0 = b0 * a0Inverse; + m_b1 = b1 * a0Inverse; + m_b2 = b2 * a0Inverse; + m_a1 = a1 * a0Inverse; + m_a2 = a2 * a0Inverse; +} + +void Biquad::setLowShelfParams(double frequency, double dbGain) +{ + // Clip frequencies to between 0 and 1, inclusive. + frequency = std::max(0.0, std::min(frequency, 1.0)); + + double A = pow(10.0, dbGain / 40); + + if (frequency == 1) + { + // The z-transform is a constant gain. + setNormalizedCoefficients(A * A, 0, 0, + 1, 0, 0); + } + else if (frequency > 0) + { + double w0 = static_cast(LAB_PI) * frequency; + double S = 1; // filter slope (1 is max value) + double alpha = 0.5 * sin(w0) * sqrt((A + 1 / A) * (1 / S - 1) + 2); + double k = cos(w0); + double k2 = 2 * sqrt(A) * alpha; + double aPlusOne = A + 1; + double aMinusOne = A - 1; + + double b0 = A * (aPlusOne - aMinusOne * k + k2); + double b1 = 2 * A * (aMinusOne - aPlusOne * k); + double b2 = A * (aPlusOne - aMinusOne * k - k2); + double a0 = aPlusOne + aMinusOne * k + k2; + double a1 = -2 * (aMinusOne + aPlusOne * k); + double a2 = aPlusOne + aMinusOne * k - k2; + + setNormalizedCoefficients(b0, b1, b2, a0, a1, a2); + } + else + { + // When frequency is 0, the z-transform is 1. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setHighShelfParams(double frequency, double dbGain) +{ + // Clip frequencies to between 0 and 1, inclusive. + frequency = std::max(0.0, std::min(frequency, 1.0)); + + double A = pow(10.0, dbGain / 40); + + if (frequency == 1) + { + // The z-transform is 1. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } + else if (frequency > 0) + { + double w0 = static_cast(LAB_PI) * frequency; + double S = 1; // filter slope (1 is max value) + double alpha = 0.5 * sin(w0) * sqrt((A + 1 / A) * (1 / S - 1) + 2); + double k = cos(w0); + double k2 = 2 * sqrt(A) * alpha; + double aPlusOne = A + 1; + double aMinusOne = A - 1; + + double b0 = A * (aPlusOne + aMinusOne * k + k2); + double b1 = -2 * A * (aMinusOne + aPlusOne * k); + double b2 = A * (aPlusOne + aMinusOne * k - k2); + double a0 = aPlusOne - aMinusOne * k + k2; + double a1 = 2 * (aMinusOne - aPlusOne * k); + double a2 = aPlusOne - aMinusOne * k - k2; + + setNormalizedCoefficients(b0, b1, b2, a0, a1, a2); + } + else + { + // When frequency = 0, the filter is just a gain, A^2. + setNormalizedCoefficients(A * A, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setPeakingParams(double frequency, double Q, double dbGain) +{ + // Clip frequencies to between 0 and 1, inclusive. + frequency = std::max(0.0, std::min(frequency, 1.0)); + + // Don't let Q go negative, which causes an unstable filter. + Q = std::max(0.0, Q); + + double A = pow(10.0, dbGain / 40); + + if (frequency > 0 && frequency < 1) + { + if (Q > 0) + { + double w0 = static_cast(LAB_PI) * frequency; + double alpha = sin(w0) / (2 * Q); + double k = cos(w0); + + double b0 = 1 + alpha * A; + double b1 = -2 * k; + double b2 = 1 - alpha * A; + double a0 = 1 + alpha / A; + double a1 = -2 * k; + double a2 = 1 - alpha / A; + + setNormalizedCoefficients(b0, b1, b2, a0, a1, a2); + } + else + { + // When Q = 0, the above formulas have problems. If we look at + // the z-transform, we can see that the limit as Q->0 is A^2, so + // set the filter that way. + setNormalizedCoefficients(A * A, 0, 0, + 1, 0, 0); + } + } + else + { + // When frequency is 0 or 1, the z-transform is 1. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setAllpassParams(double frequency, double Q) +{ + // Clip frequencies to between 0 and 1, inclusive. + frequency = std::max(0.0, std::min(frequency, 1.0)); + + // Don't let Q go negative, which causes an unstable filter. + Q = std::max(0.0, Q); + + if (frequency > 0 && frequency < 1) + { + if (Q > 0) + { + double w0 = static_cast(LAB_PI) * frequency; + double alpha = sin(w0) / (2 * Q); + double k = cos(w0); + + double b0 = 1 - alpha; + double b1 = -2 * k; + double b2 = 1 + alpha; + double a0 = 1 + alpha; + double a1 = -2 * k; + double a2 = 1 - alpha; + + setNormalizedCoefficients(b0, b1, b2, a0, a1, a2); + } + else + { + // When Q = 0, the above formulas have problems. If we look at + // the z-transform, we can see that the limit as Q->0 is -1, so + // set the filter that way. + setNormalizedCoefficients(-1, 0, 0, + 1, 0, 0); + } + } + else + { + // When frequency is 0 or 1, the z-transform is 1. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setNotchParams(double frequency, double Q) +{ + // Clip frequencies to between 0 and 1, inclusive. + frequency = std::max(0.0, std::min(frequency, 1.0)); + + // Don't let Q go negative, which causes an unstable filter. + Q = std::max(0.0, Q); + + if (frequency > 0 && frequency < 1) + { + if (Q > 0) + { + double w0 = static_cast(LAB_PI) * frequency; + double alpha = sin(w0) / (2 * Q); + double k = cos(w0); + + double b0 = 1; + double b1 = -2 * k; + double b2 = 1; + double a0 = 1 + alpha; + double a1 = -2 * k; + double a2 = 1 - alpha; + + setNormalizedCoefficients(b0, b1, b2, a0, a1, a2); + } + else + { + // When Q = 0, the above formulas have problems. If we look at + // the z-transform, we can see that the limit as Q->0 is 0, so + // set the filter that way. + setNormalizedCoefficients(0, 0, 0, + 1, 0, 0); + } + } + else + { + // When frequency is 0 or 1, the z-transform is 1. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setBandpassParams(double frequency, double Q) +{ + // No negative frequencies allowed. + frequency = std::max(0.0, frequency); + + // Don't let Q go negative, which causes an unstable filter. + Q = std::max(0.0, Q); + + if (frequency > 0 && frequency < 1) + { + double w0 = static_cast(LAB_PI) * frequency; + if (Q > 0) + { + double alpha = sin(w0) / (2 * Q); + double k = cos(w0); + + double b0 = alpha; + double b1 = 0; + double b2 = -alpha; + double a0 = 1 + alpha; + double a1 = -2 * k; + double a2 = 1 - alpha; + + setNormalizedCoefficients(b0, b1, b2, a0, a1, a2); + } + else + { + // When Q = 0, the above formulas have problems. If we look at + // the z-transform, we can see that the limit as Q->0 is 1, so + // set the filter that way. + setNormalizedCoefficients(1, 0, 0, + 1, 0, 0); + } + } + else + { + // When the cutoff is zero, the z-transform approaches 0, if Q + // > 0. When both Q and cutoff are zero, the z-transform is + // pretty much undefined. What should we do in this case? + // For now, just make the filter 0. When the cutoff is 1, the + // z-transform also approaches 0. + setNormalizedCoefficients(0, 0, 0, + 1, 0, 0); + } +} + +void Biquad::setZeroPolePairs(const complex & zero, const complex & pole) +{ + double b0 = 1; + double b1 = -2 * zero.real(); + + double zeroMag = abs(zero); + double b2 = zeroMag * zeroMag; + + double a1 = -2 * pole.real(); + + double poleMag = abs(pole); + double a2 = poleMag * poleMag; + setNormalizedCoefficients(b0, b1, b2, 1, a1, a2); +} + +void Biquad::setAllpassPole(const complex & pole) +{ + complex zero = complex(1, 0) / pole; + setZeroPolePairs(zero, pole); +} + +void Biquad::getFrequencyResponse(size_t nFrequencies, + const float * frequency, + float * magResponse, + float * phaseResponse) +{ + // Evaluate the Z-transform of the filter at given normalized + // frequency from 0 to 1. (1 corresponds to the Nyquist + // frequency.) + // + // The z-transform of the filter is + // + // H(z) = (b0 + b1*z^(-1) + b2*z^(-2))/(1 + a1*z^(-1) + a2*z^(-2)) + // + // Evaluate as + // + // b0 + (b1 + b2*z1)*z1 + // -------------------- + // 1 + (a1 + a2*z1)*z1 + // + // with z1 = 1/z and z = exp(j*pi*frequency). Hence z1 = exp(-j*pi*frequency) + + // Make local copies of the coefficients as a micro-optimization. + double b0 = m_b0; + double b1 = m_b1; + double b2 = m_b2; + double a1 = m_a1; + double a2 = m_a2; + + for (size_t k = 0; k < nFrequencies; ++k) + { + double omega = -static_cast(LAB_PI) * frequency[k]; + complex z = complex(cos(omega), sin(omega)); + complex numerator = b0 + (b1 + b2 * z) * z; + complex denominator = complex(1, 0) + (a1 + a2 * z) * z; + complex response = numerator / denominator; + magResponse[k] = static_cast(abs(response)); + phaseResponse[k] = static_cast(atan2(imag(response), real(response))); + } +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/Cone.cpp b/sources/LabSound/src/internal/src/Cone.cpp new file mode 100644 index 00000000..d526a355 --- /dev/null +++ b/sources/LabSound/src/internal/src/Cone.cpp @@ -0,0 +1,57 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/Cone.h" +#include "LabSound/core/Macros.h" + +namespace lab +{ + +ConeEffect::ConeEffect() + : m_innerAngle(360.0) + , m_outerAngle(360.0) + , m_outerGain(0.0) +{ +} + +double ConeEffect::gain(FloatPoint3D sourcePosition, FloatPoint3D sourceOrientation, FloatPoint3D listenerPosition) +{ + if (is_zero(sourceOrientation) || ((m_innerAngle == 360.0) && (m_outerAngle == 360.0))) + return 1.0; // no cone specified - unity gain + + // Normalized source-listener vector + FloatPoint3D sourceToListener = listenerPosition - sourcePosition; + sourceToListener = normalize(sourceToListener); + + FloatPoint3D normalizedSourceOrientation = sourceOrientation; + normalizedSourceOrientation = normalize(normalizedSourceOrientation); + + // Angle between the source orientation vector and the source-listener vector + double dotProduct = dot(sourceToListener, normalizedSourceOrientation); + double angle = 180.0 * acos(dotProduct) / static_cast(LAB_PI); + double absAngle = fabs(angle); + + // Divide by 2.0 here since API is entire angle (not half-angle) + double absInnerAngle = fabs(m_innerAngle) / 2.0; + double absOuterAngle = fabs(m_outerAngle) / 2.0; + double gain = 1.0; + + if (absAngle <= absInnerAngle) + // No attenuation + gain = 1.0; + else if (absAngle >= absOuterAngle) + // Max attenuation + gain = m_outerGain; + else + { + // Between inner and outer cones + // inner -> outer, x goes from 0 -> 1 + double x = (absAngle - absInnerAngle) / (absOuterAngle - absInnerAngle); + gain = (1.0 - x) + m_outerGain * x; + } + + return gain; +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/DelayDSPKernel.cpp b/sources/LabSound/src/internal/src/DelayDSPKernel.cpp new file mode 100644 index 00000000..bf7910c2 --- /dev/null +++ b/sources/LabSound/src/internal/src/DelayDSPKernel.cpp @@ -0,0 +1,179 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioNode.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/DelayDSPKernel.h" + +#include + +using namespace std; + +namespace lab +{ + +const float SmoothingTimeConstant = 0.020f; // 20ms + +DelayDSPKernel::DelayDSPKernel(DelayProcessor * processor, float sampleRate) + : AudioDSPKernel(processor) + , m_writeIndex(0) + , m_firstTime(true) + , m_delayTimes(AudioNode::ProcessingSizeInFrames) +{ + ASSERT(processor); + if (!processor) + return; + + m_maxDelayTime = processor->maxDelayTime(); + ASSERT(m_maxDelayTime >= 0); + if (m_maxDelayTime < 0) + return; + + m_buffer.allocate(bufferLengthForDelay(m_maxDelayTime, sampleRate)); + m_buffer.zero(); + + m_smoothingRate = AudioUtilities::discreteTimeConstantForSampleRate(SmoothingTimeConstant, sampleRate); +} + +DelayDSPKernel::DelayDSPKernel(double maxDelayTime, float sampleRate) + : AudioDSPKernel() + , m_maxDelayTime(maxDelayTime) + , m_writeIndex(0) + , m_firstTime(true) +{ + ASSERT(maxDelayTime > 0.0); + if (maxDelayTime <= 0.0) + return; + + size_t bufferLength = bufferLengthForDelay(maxDelayTime, sampleRate); + ASSERT(bufferLength); + if (!bufferLength) + return; + + m_buffer.allocate(bufferLength); + m_buffer.zero(); + + m_smoothingRate = AudioUtilities::discreteTimeConstantForSampleRate(SmoothingTimeConstant, sampleRate); +} + +size_t DelayDSPKernel::bufferLengthForDelay(double maxDelayTime, double sampleRate) const +{ + // Compute the length of the buffer needed to handle a max delay of |maxDelayTime|. One is + // added to handle the case where the actual delay equals the maximum delay. + return 1 + AudioUtilities::timeToSampleFrame(maxDelayTime, sampleRate); +} + +void DelayDSPKernel::process(ContextRenderLock & r, const float * source, float * destination, int framesToProcess) +{ + size_t bufferLength = m_buffer.size(); + float * buffer = m_buffer.data(); + + ASSERT(bufferLength); + if (!bufferLength) + return; + + ASSERT(source && destination); + if (!source || !destination) + return; + + float sampleRate = r.context()->sampleRate(); + double delayTime = 0; + float * delayTimes = m_delayTimes.data(); + double maxTime = maxDelayTime(); + +#if 1 + /// @TODO before deleting the else clause here, is there a legitimate reason to have the delayTime be automated? + /// is it not just a setting? If it's actually an audio rate signal, then delayTime should be switched back + /// from AudioSetting to AudioParam. + delayTime = delayProcessor() ? delayProcessor()->delayTime()->valueFloat() : m_desiredDelayFrames / sampleRate; + + // Make sure the delay time is in a valid range. + delayTime = min(maxTime, delayTime); + delayTime = max(0.0, delayTime); + + if (m_firstTime) + { + m_currentDelayTime = delayTime; + m_firstTime = false; + } + bool sampleAccurate = false; +#else + bool sampleAccurate = delayProcessor() && delayProcessor()->delayTime()->hasSampleAccurateValues(); + + if (sampleAccurate) + delayProcessor()->delayTime()->calculateSampleAccurateValues(r, delayTimes, framesToProcess); + else + { + delayTime = delayProcessor() ? delayProcessor()->delayTime()->finalValue(r) : m_desiredDelayFrames / sampleRate; + + // Make sure the delay time is in a valid range. + delayTime = min(maxTime, delayTime); + delayTime = max(0.0, delayTime); + + if (m_firstTime) + { + m_currentDelayTime = delayTime; + m_firstTime = false; + } + } +#endif + + for (int i = 0; i < framesToProcess; ++i) + { + if (sampleAccurate) + { + delayTime = delayTimes[i]; + delayTime = std::min(maxTime, delayTime); + delayTime = std::max(0.0, delayTime); + m_currentDelayTime = delayTime; + } + else + { + // Approach desired delay time. + m_currentDelayTime += (delayTime - m_currentDelayTime) * m_smoothingRate; + } + + double desiredDelayFrames = m_currentDelayTime * sampleRate; + + double readPosition = m_writeIndex + bufferLength - desiredDelayFrames; + if (readPosition >= bufferLength) + readPosition -= bufferLength; + + // Linearly interpolate in-between delay times. + int readIndex1 = static_cast(readPosition); + int readIndex2 = (readIndex1 + 1) % bufferLength; + double interpolationFactor = readPosition - readIndex1; + + double input = static_cast(*source++); + buffer[m_writeIndex] = static_cast(input); + m_writeIndex = (m_writeIndex + 1) % bufferLength; + + double sample1 = buffer[readIndex1]; + double sample2 = buffer[readIndex2]; + + double output = (1.0 - interpolationFactor) * sample1 + interpolationFactor * sample2; + + *destination++ = static_cast(output); + } +} + +void DelayDSPKernel::reset() +{ + m_firstTime = true; + m_buffer.zero(); +} + +double DelayDSPKernel::tailTime(ContextRenderLock & r) const +{ + return m_maxDelayTime; +} + +double DelayDSPKernel::latencyTime(ContextRenderLock & r) const +{ + return 0; +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/DelayProcessor.cpp b/sources/LabSound/src/internal/src/DelayProcessor.cpp new file mode 100644 index 00000000..5066d6ee --- /dev/null +++ b/sources/LabSound/src/internal/src/DelayProcessor.cpp @@ -0,0 +1,33 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/DelayProcessor.h" +#include "internal/AudioDSPKernelProcessor.h" +#include "internal/DelayDSPKernel.h" + +using namespace std; + +namespace lab +{ + +DelayProcessor::DelayProcessor(float sampleRate, double maxDelayTime) + : AudioDSPKernelProcessor() + , m_maxDelayTime(maxDelayTime) + , m_sampleRate(sampleRate) +{ + m_delayTime = std::make_shared("delayTime", "DELY", AudioSetting::Type::Float); +} + +DelayProcessor::~DelayProcessor() +{ + if (isInitialized()) + uninitialize(); +} + +AudioDSPKernel * DelayProcessor::createKernel() +{ + return new DelayDSPKernel(this, m_sampleRate); +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/Distance.cpp b/sources/LabSound/src/internal/src/Distance.cpp new file mode 100644 index 00000000..efd245ae --- /dev/null +++ b/sources/LabSound/src/internal/src/Distance.cpp @@ -0,0 +1,61 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/Distance.h" +#include "internal/Assertions.h" + +#include +#include + +using namespace std; + +namespace lab +{ + +DistanceEffect::DistanceEffect() +{ +} + +double DistanceEffect::gain(double distance) +{ + // don't go beyond maximum distance + distance = min(distance, m_maxDistance); + + // if clamped, don't get closer than reference distance + if (m_isClamped) + distance = max(distance, m_refDistance); + + switch (m_model) + { + default: + case ModelLinear: + return linearGain(distance); + case ModelInverse: + return inverseGain(distance); + case ModelExponential: + return exponentialGain(distance); + } + ASSERT_NOT_REACHED(); + return 0.0; +} + +double DistanceEffect::linearGain(double distance) +{ + // We want a gain that decreases linearly from m_refDistance to + // m_maxDistance. The gain is 1 at m_refDistance. + return (1.0 - m_rolloffFactor * (distance - m_refDistance) / (m_maxDistance - m_refDistance)); +} + +double DistanceEffect::inverseGain(double distance) +{ + return m_refDistance / (m_refDistance + m_rolloffFactor * (distance - m_refDistance)); +} + +double DistanceEffect::exponentialGain(double distance) +{ + return pow(distance / m_refDistance, -m_rolloffFactor); +} + +} // namespace lab + diff --git a/sources/LabSound/src/internal/src/DynamicsCompressor.cpp b/sources/LabSound/src/internal/src/DynamicsCompressor.cpp new file mode 100644 index 00000000..731a2a49 --- /dev/null +++ b/sources/LabSound/src/internal/src/DynamicsCompressor.cpp @@ -0,0 +1,263 @@ +// License: BSD 3 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/DynamicsCompressor.h" +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" + +#include "LabSound/core/AudioBus.h" +#include "LabSound/extended/AudioContextLock.h" + +#include "LabSound/core/Macros.h" + +namespace lab +{ + +using namespace AudioUtilities; + +DynamicsCompressor::DynamicsCompressor(unsigned numberOfChannels) + : m_numberOfChannels(numberOfChannels) + , m_compressor(numberOfChannels) +{ + // Uninitialized state - for parameter recalculation. + m_lastFilterStageRatio = -1; + m_lastAnchor = -1; + m_lastFilterStageGain = -1; + + setNumberOfChannels(numberOfChannels); + initializeParameters(); +} + +void DynamicsCompressor::setParameterValue(unsigned parameterID, float value) +{ + ASSERT(parameterID < ParamLast); + if (parameterID < ParamLast) + m_parameters[parameterID] = value; +} + +void DynamicsCompressor::initializeParameters() +{ + // Initializes compressor to default values. + + m_parameters[ParamThreshold] = -24; // dB + m_parameters[ParamKnee] = 30; // dB + m_parameters[ParamRatio] = 12; // unit-less + m_parameters[ParamAttack] = 0.003f; // seconds + m_parameters[ParamRelease] = 0.250f; // seconds + m_parameters[ParamPreDelay] = 0.006f; // seconds + + // Release zone values 0 -> 1. + m_parameters[ParamReleaseZone1] = 0.09f; + m_parameters[ParamReleaseZone2] = 0.16f; + m_parameters[ParamReleaseZone3] = 0.42f; + m_parameters[ParamReleaseZone4] = 0.98f; + + m_parameters[ParamFilterStageGain] = 4.4f; // dB + m_parameters[ParamFilterStageRatio] = 2; + m_parameters[ParamFilterAnchor] = 15000.f / 22500.f; // dimitri sample rate + + m_parameters[ParamPostGain] = 0; // dB + m_parameters[ParamReduction] = 0; // dB + + // Linear crossfade (0 -> 1). + m_parameters[ParamEffectBlend] = 1; +} + +float DynamicsCompressor::parameterValue(unsigned parameterID) +{ + ASSERT(parameterID < ParamLast); + return m_parameters[parameterID]; +} + +void DynamicsCompressor::setEmphasisStageParameters(unsigned stageIndex, float gain, float normalizedFrequency /* 0 -> 1 */) +{ + float gk = 1 - gain / 20; + float f1 = normalizedFrequency * gk; + float f2 = normalizedFrequency / gk; + float r1 = expf(-f1 * static_cast(LAB_PI)); + float r2 = expf(-f2 * static_cast(LAB_PI)); + + ASSERT(m_numberOfChannels == m_preFilterPacks.size()); + + for (unsigned i = 0; i < m_numberOfChannels; ++i) + { + // Set pre-filter zero and pole to create an emphasis filter. + ZeroPole & preFilter = m_preFilterPacks[i]->filters[stageIndex]; + preFilter.setZero(r1); + preFilter.setPole(r2); + + // Set post-filter with zero and pole reversed to create the de-emphasis filter. + // If there were no compressor kernel in between, they would cancel each other out (allpass filter). + ZeroPole & postFilter = m_postFilterPacks[i]->filters[stageIndex]; + postFilter.setZero(r2); + postFilter.setPole(r1); + } +} + +void DynamicsCompressor::setEmphasisParameters(float gain, float anchorFreq, float filterStageRatio) +{ + setEmphasisStageParameters(0, gain, anchorFreq); + setEmphasisStageParameters(1, gain, anchorFreq / filterStageRatio); + setEmphasisStageParameters(2, gain, anchorFreq / (filterStageRatio * filterStageRatio)); + setEmphasisStageParameters(3, gain, anchorFreq / (filterStageRatio * filterStageRatio * filterStageRatio)); +} + +void DynamicsCompressor::process(ContextRenderLock & r, const AudioBus * sourceBus, AudioBus * destinationBus, int bufferSize, int offset, int count) +{ + int numberOfDestChannels = destinationBus->numberOfChannels(); + int numberOfSourceChannels = sourceBus->numberOfChannels(); + + if (!numberOfSourceChannels) + { + destinationBus->zero(); + return; + } + + if (numberOfDestChannels != m_numberOfChannels) + { + setNumberOfChannels(numberOfSourceChannels); + numberOfDestChannels = numberOfSourceChannels; + for (int i = 0; i < numberOfDestChannels; ++i) + { + m_sourceChannels[i] = sourceBus->channel(i)->data(); + m_destinationChannels[i] = destinationBus->channel(i)->mutableData(); + } + } + + for (int i = 0; i < numberOfDestChannels; ++i) + { + m_sourceChannels[i] = sourceBus->channel(i)->data(); + m_destinationChannels[i] = destinationBus->channel(i)->mutableData(); + } + + float filterStageGain = parameterValue(ParamFilterStageGain); + float filterStageRatio = parameterValue(ParamFilterStageRatio); + float anchor = parameterValue(ParamFilterAnchor); + + if (filterStageGain != m_lastFilterStageGain || filterStageRatio != m_lastFilterStageRatio || anchor != m_lastAnchor) + { + m_lastFilterStageGain = filterStageGain; + m_lastFilterStageRatio = filterStageRatio; + m_lastAnchor = anchor; + + setEmphasisParameters(filterStageGain, anchor, filterStageRatio); + } + + // Apply pre-emphasis filter. + // Note that the final three stages are computed in-place in the destination buffer. + for (int i = 0; i < numberOfDestChannels; ++i) + { + const float * sourceData = m_sourceChannels[i]; + float * destinationData = m_destinationChannels[i]; + ZeroPole * preFilters = m_preFilterPacks[i]->filters; + + preFilters[0].process(sourceData, destinationData, bufferSize, offset, count); + preFilters[1].process(destinationData, destinationData, bufferSize, offset, count); + preFilters[2].process(destinationData, destinationData, bufferSize, offset, count); + preFilters[3].process(destinationData, destinationData, bufferSize, offset, count); + } + + float dbThreshold = parameterValue(ParamThreshold); + float dbKnee = parameterValue(ParamKnee); + float ratio = parameterValue(ParamRatio); + float attackTime = parameterValue(ParamAttack); + float releaseTime = parameterValue(ParamRelease); + float preDelayTime = parameterValue(ParamPreDelay); + + // This is effectively a master volume on the compressed signal (pre-blending). + float dbPostGain = parameterValue(ParamPostGain); + + // Linear blending value from dry to completely processed (0 -> 1) + // 0 means the signal is completely unprocessed. + // 1 mixes in only the compressed signal. + float effectBlend = parameterValue(ParamEffectBlend); + + float releaseZone1 = parameterValue(ParamReleaseZone1); + float releaseZone2 = parameterValue(ParamReleaseZone2); + float releaseZone3 = parameterValue(ParamReleaseZone3); + float releaseZone4 = parameterValue(ParamReleaseZone4); + + // Apply compression to the pre-filtered signal. The processing is performed in place. + m_compressor.process(r, + m_sourceChannels.get(), + m_destinationChannels.get(), + numberOfDestChannels, + bufferSize, + dbThreshold, + dbKnee, + ratio, + attackTime, + releaseTime, + preDelayTime, + dbPostGain, + effectBlend, + releaseZone1, + releaseZone2, + releaseZone3, + releaseZone4); + + // Update the compression amount. + setParameterValue(ParamReduction, m_compressor.meteringGain()); + + // Apply de-emphasis filter. + for (int i = 0; i < numberOfDestChannels; ++i) + { + float * destinationData = m_destinationChannels[i]; + ZeroPole * postFilters = m_postFilterPacks[i]->filters; + + postFilters[0].process(destinationData, destinationData, bufferSize, offset, count); + postFilters[1].process(destinationData, destinationData, bufferSize, offset, count); + postFilters[2].process(destinationData, destinationData, bufferSize, offset, count); + postFilters[3].process(destinationData, destinationData, bufferSize, offset, count); + } +} + +void DynamicsCompressor::reset() +{ + m_lastFilterStageRatio = -1; // for recalc + m_lastAnchor = -1; + m_lastFilterStageGain = -1; + + for (unsigned channel = 0; channel < m_numberOfChannels; ++channel) + { + for (unsigned stageIndex = 0; stageIndex < 4; ++stageIndex) + { + m_preFilterPacks[channel]->filters[stageIndex].reset(); + m_postFilterPacks[channel]->filters[stageIndex].reset(); + } + } + + m_compressor.reset(); +} + +void DynamicsCompressor::setNumberOfChannels(unsigned numberOfChannels) +{ + if (m_preFilterPacks.size() == numberOfChannels) + return; + + m_preFilterPacks.clear(); + m_postFilterPacks.clear(); + for (unsigned i = 0; i < numberOfChannels; ++i) + { + m_preFilterPacks.push_back(std::unique_ptr(new ZeroPoleFilterPack4())); + m_postFilterPacks.push_back(std::unique_ptr(new ZeroPoleFilterPack4())); + } + + m_sourceChannels = std::unique_ptr(new const float *[numberOfChannels]); + m_destinationChannels = std::unique_ptr(new float *[numberOfChannels]); + + m_compressor.setNumberOfChannels(numberOfChannels); + m_numberOfChannels = numberOfChannels; +} + +double DynamicsCompressor::tailTime(ContextRenderLock & r) const +{ + return 0; +} +double DynamicsCompressor::latencyTime(ContextRenderLock & r) const +{ + return m_compressor.latencyFrames() / static_cast(r.context()->sampleRate()); +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/DynamicsCompressorKernel.cpp b/sources/LabSound/src/internal/src/DynamicsCompressorKernel.cpp new file mode 100644 index 00000000..f48bccdd --- /dev/null +++ b/sources/LabSound/src/internal/src/DynamicsCompressorKernel.cpp @@ -0,0 +1,470 @@ +// License: BSD 3 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/Macros.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/DenormalDisabler.h" +#include "internal/DynamicsCompressorKernel.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include +#include + +using namespace std; + +namespace lab +{ + +using namespace AudioUtilities; + +// Metering hits peaks instantly, but releases this fast (in seconds). +const float meteringReleaseTimeConstant = 0.325f; + +const float uninitializedValue = -1; + +DynamicsCompressorKernel::DynamicsCompressorKernel(unsigned numberOfChannels) + : m_lastPreDelayFrames(DefaultPreDelayFrames) + , m_preDelayReadIndex(0) + , m_preDelayWriteIndex(DefaultPreDelayFrames) + , m_ratio(uninitializedValue) + , m_slope(uninitializedValue) + , m_linearThreshold(uninitializedValue) + , m_dbThreshold(uninitializedValue) + , m_dbKnee(uninitializedValue) + , m_kneeThreshold(uninitializedValue) + , m_kneeThresholdDb(uninitializedValue) + , m_ykneeThresholdDb(uninitializedValue) + , m_K(uninitializedValue) +{ + setNumberOfChannels(numberOfChannels); + + // Initializes most member variables + reset(); +} + +void DynamicsCompressorKernel::setNumberOfChannels(unsigned numberOfChannels) +{ + + if (m_preDelayBuffers.size() == numberOfChannels) + return; + + m_preDelayBuffers.clear(); + for (unsigned i = 0; i < numberOfChannels; ++i) + m_preDelayBuffers.push_back(std::unique_ptr(new AudioFloatArray(MaxPreDelayFrames))); +} + +void DynamicsCompressorKernel::setPreDelayTime(float preDelayTime, float sampleRate) +{ + // Re-configure look-ahead section pre-delay if delay time has changed. + int preDelayFrames = static_cast(preDelayTime * sampleRate); + if (preDelayFrames > MaxPreDelayFrames - 1) + preDelayFrames = MaxPreDelayFrames - 1; + + if (m_lastPreDelayFrames != preDelayFrames) + { + m_lastPreDelayFrames = preDelayFrames; + for (unsigned i = 0; i < m_preDelayBuffers.size(); ++i) + m_preDelayBuffers[i]->zero(); + + m_preDelayReadIndex = 0; + m_preDelayWriteIndex = preDelayFrames; + } +} + +// Exponential curve for the knee. +// It is 1st derivative matched at m_linearThreshold and asymptotically approaches the value m_linearThreshold + 1 / k. +float DynamicsCompressorKernel::kneeCurve(float x, float k) +{ + // Linear up to threshold. + if (x < m_linearThreshold) + return x; + + return m_linearThreshold + (1 - expf(-k * (x - m_linearThreshold))) / k; +} + +// Full compression curve with constant ratio after knee. +float DynamicsCompressorKernel::saturate(float x, float k) +{ + float y; + + if (x < m_kneeThreshold) + y = kneeCurve(x, k); + else + { + // Constant ratio after knee. + float xDb = linearToDecibels(x); + float yDb = m_ykneeThresholdDb + m_slope * (xDb - m_kneeThresholdDb); + + y = decibelsToLinear(yDb); + } + + return y; +} + +// Approximate 1st derivative with input and output expressed in dB. +// This slope is equal to the inverse of the compression "ratio". +// In other words, a compression ratio of 20 would be a slope of 1/20. +float DynamicsCompressorKernel::slopeAt(float x, float k) +{ + if (x < m_linearThreshold) + return 1; + + float x2 = x * 1.001f; + + float xDb = linearToDecibels(x); + float x2Db = linearToDecibels(x2); + + float yDb = linearToDecibels(kneeCurve(x, k)); + float y2Db = linearToDecibels(kneeCurve(x2, k)); + + float m = (y2Db - yDb) / (x2Db - xDb); + + return m; +} + +float DynamicsCompressorKernel::kAtSlope(float desiredSlope) +{ + float xDb = m_dbThreshold + m_dbKnee; + float x = decibelsToLinear(xDb); + + // Approximate k given initial values. + float minK = 0.1f; + float maxK = 10000; + float k = 5; + + for (int i = 0; i < 15; ++i) + { + // A high value for k will more quickly asymptotically approach a slope of 0. + float slope = slopeAt(x, k); + + if (slope < desiredSlope) + { + // k is too high. + maxK = k; + } + else + { + // k is too low. + minK = k; + } + + // Re-calculate based on geometric mean. + k = sqrtf(minK * maxK); + } + + return k; +} + +float DynamicsCompressorKernel::updateStaticCurveParameters(float dbThreshold, float dbKnee, float ratio) +{ + if (dbThreshold != m_dbThreshold || dbKnee != m_dbKnee || ratio != m_ratio) + { + // Threshold and knee. + m_dbThreshold = dbThreshold; + m_linearThreshold = decibelsToLinear(dbThreshold); + m_dbKnee = dbKnee; + + // Compute knee parameters. + m_ratio = ratio; + m_slope = 1 / m_ratio; + + float k = kAtSlope(1 / m_ratio); + + m_kneeThresholdDb = dbThreshold + dbKnee; + m_kneeThreshold = decibelsToLinear(m_kneeThresholdDb); + + m_ykneeThresholdDb = linearToDecibels(kneeCurve(m_kneeThreshold, k)); + + m_K = k; + } + return m_K; +} + +void DynamicsCompressorKernel::process(ContextRenderLock & r, + const float * sourceChannels[], + float * destinationChannels[], + unsigned numberOfChannels, + int framesToProcess, + float dbThreshold, + float dbKnee, + float ratio, + float attackTime, + float releaseTime, + float preDelayTime, + float dbPostGain, + float effectBlend, /* equal power crossfade */ + float releaseZone1, + float releaseZone2, + float releaseZone3, + float releaseZone4) +{ + ASSERT(m_preDelayBuffers.size() == numberOfChannels); + + float sampleRate = r.context()->sampleRate(); + + m_meteringReleaseK = static_cast(discreteTimeConstantForSampleRate(meteringReleaseTimeConstant, sampleRate)); + + float dryMix = 1 - effectBlend; + float wetMix = effectBlend; + + float k = updateStaticCurveParameters(dbThreshold, dbKnee, ratio); + + // Makeup gain. + float fullRangeGain = saturate(1, k); + float fullRangeMakeupGain = 1 / fullRangeGain; + + // Empirical/perceptual tuning. + fullRangeMakeupGain = powf(fullRangeMakeupGain, 0.6f); + + float masterLinearGain = decibelsToLinear(dbPostGain) * fullRangeMakeupGain; + + // Attack parameters. + attackTime = max(0.001f, attackTime); + float attackFrames = attackTime * sampleRate; + + // Release parameters. + float releaseFrames = sampleRate * releaseTime; + + // Detector release time. + float satReleaseTime = 0.0025f; + float satReleaseFrames = satReleaseTime * sampleRate; + + // Create a smooth function which passes through four points. + + // Polynomial of the form + // y = a + b*x + c*x^2 + d*x^3 + e*x^4; + + float y1 = releaseFrames * releaseZone1; + float y2 = releaseFrames * releaseZone2; + float y3 = releaseFrames * releaseZone3; + float y4 = releaseFrames * releaseZone4; + + // All of these coefficients were derived for 4th order polynomial curve fitting where the y values + // match the evenly spaced x values as follows: (y1 : x == 0, y2 : x == 1, y3 : x == 2, y4 : x == 3) + float kA = 0.9999999999999998f * y1 + 1.8432219684323923e-16f * y2 - 1.9373394351676423e-16f * y3 + 8.824516011816245e-18f * y4; + float kB = -1.5788320352845888f * y1 + 2.3305837032074286f * y2 - 0.9141194204840429f * y3 + 0.1623677525612032f * y4; + float kC = 0.5334142869106424f * y1 - 1.272736789213631f * y2 + 0.9258856042207512f * y3 - 0.18656310191776226f * y4; + float kD = 0.08783463138207234f * y1 - 0.1694162967925622f * y2 + 0.08588057951595272f * y3 - 0.00429891410546283f * y4; + float kE = -0.042416883008123074f * y1 + 0.1115693827987602f * y2 - 0.09764676325265872f * y3 + 0.028494263462021576f * y4; + + // x ranges from 0 -> 3 0 1 2 3 + // -15 -10 -5 0db + + // y calculates adaptive release frames depending on the amount of compression. + + setPreDelayTime(preDelayTime, r.context()->sampleRate()); + + const int nDivisionFrames = 32; + + const int nDivisions = framesToProcess / nDivisionFrames; + + unsigned frameIndex = 0; + for (int i = 0; i < nDivisions; ++i) + { + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Calculate desired gain + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // Fix gremlins. + if (std::isnan(m_detectorAverage)) + m_detectorAverage = 1; + if (std::isinf(m_detectorAverage)) + m_detectorAverage = 1; + + float desiredGain = m_detectorAverage; + + // Pre-warp so we get desiredGain after sin() warp below. + float scaledDesiredGain = asinf(desiredGain) / (0.5f * static_cast(LAB_PI)); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Deal with envelopes + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // envelopeRate is the rate we slew from current compressor level to the desired level. + // The exact rate depends on if we're attacking or releasing and by how much. + float envelopeRate; + + bool isReleasing = scaledDesiredGain > m_compressorGain; + + // compressionDiffDb is the difference between current compression level and the desired level. + float compressionDiffDb = linearToDecibels(m_compressorGain / scaledDesiredGain); + + if (isReleasing) + { + // Release mode - compressionDiffDb should be negative dB + m_maxAttackCompressionDiffDb = -1; + + // Fix gremlins. + if (isnan(compressionDiffDb)) + compressionDiffDb = -1; + if (isinf(compressionDiffDb)) + compressionDiffDb = -1; + + // Adaptive release - higher compression (lower compressionDiffDb) releases faster. + + // Contain within range: -12 -> 0 then scale to go from 0 -> 3 + float x = compressionDiffDb; + x = max(-12.0f, x); + x = min(0.0f, x); + x = 0.25f * (x + 12); + + // Compute adaptive release curve using 4th order polynomial. + // Normal values for the polynomial coefficients would create a monotonically increasing function. + float x2 = x * x; + float x3 = x2 * x; + float x4 = x2 * x2; + float releaseFrames = kA + kB * x + kC * x2 + kD * x3 + kE * x4; + +#define kSpacingDb 5 + float dbPerFrame = kSpacingDb / releaseFrames; + + envelopeRate = decibelsToLinear(dbPerFrame); + } + else + { + // Attack mode - compressionDiffDb should be positive dB + + // Fix gremlins. + if (isnan(compressionDiffDb)) + compressionDiffDb = 1; + if (isinf(compressionDiffDb)) + compressionDiffDb = 1; + + // As long as we're still in attack mode, use a rate based off + // the largest compressionDiffDb we've encountered so far. + if (m_maxAttackCompressionDiffDb == -1 || m_maxAttackCompressionDiffDb < compressionDiffDb) + m_maxAttackCompressionDiffDb = compressionDiffDb; + + float effAttenDiffDb = max(0.5f, m_maxAttackCompressionDiffDb); + + float x = 0.25f / effAttenDiffDb; + envelopeRate = 1 - powf(x, 1 / attackFrames); + } + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Inner loop - calculate shaped power average - apply compression. + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + { + int preDelayReadIndex = m_preDelayReadIndex; + int preDelayWriteIndex = m_preDelayWriteIndex; + float detectorAverage = m_detectorAverage; + float compressorGain = m_compressorGain; + + int loopFrames = nDivisionFrames; + while (loopFrames--) + { + float compressorInput = 0; + + // Predelay signal, computing compression amount from un-delayed version. + for (unsigned i = 0; i < numberOfChannels; ++i) + { + float * delayBuffer = m_preDelayBuffers[i]->data(); + float undelayedSource = sourceChannels[i][frameIndex]; + delayBuffer[preDelayWriteIndex] = undelayedSource; + + float absUndelayedSource = undelayedSource > 0 ? undelayedSource : -undelayedSource; + if (compressorInput < absUndelayedSource) + compressorInput = absUndelayedSource; + } + + // Calculate shaped power on undelayed input. + + float scaledInput = compressorInput; + float absInput = scaledInput > 0 ? scaledInput : -scaledInput; + + // Put through shaping curve. + // This is linear up to the threshold, then enters a "knee" portion followed by the "ratio" portion. + // The transition from the threshold to the knee is smooth (1st derivative matched). + // The transition from the knee to the ratio portion is smooth (1st derivative matched). + float shapedInput = saturate(absInput, k); + + float attenuation = absInput <= 0.0001f ? 1 : shapedInput / absInput; + + float attenuationDb = -linearToDecibels(attenuation); + attenuationDb = max(2.0f, attenuationDb); + + float dbPerFrame = attenuationDb / satReleaseFrames; + + float satReleaseRate = decibelsToLinear(dbPerFrame) - 1; + + bool isRelease = (attenuation > detectorAverage); + float rate = isRelease ? satReleaseRate : 1; + + detectorAverage += (attenuation - detectorAverage) * rate; + detectorAverage = min(1.0f, detectorAverage); + + // Fix gremlins. + if (isnan(detectorAverage)) + detectorAverage = 1; + if (isinf(detectorAverage)) + detectorAverage = 1; + + // Exponential approach to desired gain. + if (envelopeRate < 1) + { + // Attack - reduce gain to desired. + compressorGain += (scaledDesiredGain - compressorGain) * envelopeRate; + } + else + { + // Release - exponentially increase gain to 1.0 + compressorGain *= envelopeRate; + compressorGain = min(1.0f, compressorGain); + } + + // Warp pre-compression gain to smooth out sharp exponential transition points. + float postWarpCompressorGain = sinf(0.5f * static_cast(LAB_PI) * compressorGain); + + // Calculate total gain using master gain and effect blend. + float totalGain = dryMix + wetMix * masterLinearGain * postWarpCompressorGain; + + // Calculate metering. + float dbRealGain = 20 * log10(postWarpCompressorGain); + if (dbRealGain < m_meteringGain) + m_meteringGain = dbRealGain; + else + m_meteringGain += (dbRealGain - m_meteringGain) * m_meteringReleaseK; + + // Apply final gain. + for (unsigned i = 0; i < numberOfChannels; ++i) + { + float * delayBuffer = m_preDelayBuffers[i]->data(); + destinationChannels[i][frameIndex] = delayBuffer[preDelayReadIndex] * totalGain; + } + + frameIndex++; + preDelayReadIndex = (preDelayReadIndex + 1) & MaxPreDelayFramesMask; + preDelayWriteIndex = (preDelayWriteIndex + 1) & MaxPreDelayFramesMask; + } + + // Locals back to member variables. + m_preDelayReadIndex = preDelayReadIndex; + m_preDelayWriteIndex = preDelayWriteIndex; + m_detectorAverage = DenormalDisabler::flushDenormalFloatToZero(detectorAverage); + m_compressorGain = DenormalDisabler::flushDenormalFloatToZero(compressorGain); + } + } +} + +void DynamicsCompressorKernel::reset() +{ + m_detectorAverage = 0; + m_compressorGain = 1; + m_meteringGain = 1; + + // Predelay section. + for (unsigned i = 0; i < m_preDelayBuffers.size(); ++i) + m_preDelayBuffers[i]->zero(); + + m_preDelayReadIndex = 0; + m_preDelayWriteIndex = DefaultPreDelayFrames; + + m_maxAttackCompressionDiffDb = -1; // uninitialized state +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/EqualPowerPanner.cpp b/sources/LabSound/src/internal/src/EqualPowerPanner.cpp new file mode 100644 index 00000000..460be0a3 --- /dev/null +++ b/sources/LabSound/src/internal/src/EqualPowerPanner.cpp @@ -0,0 +1,153 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/Macros.h" +#include "LabSound/core/Mixing.h" + +#include "internal/Assertions.h" +#include "internal/AudioUtilities.h" +#include "internal/EqualPowerPanner.h" + +#include "LabSound/extended/AudioContextLock.h" + +#include + +// Use a 50ms smoothing / de-zippering time-constant. +const float SmoothingTimeConstant = 0.050f; + +using namespace std; + +namespace lab +{ + +EqualPowerPanner::EqualPowerPanner(const float sampleRate) + : Panner(sampleRate, PanningMode::EQUALPOWER) +{ +} + +void EqualPowerPanner::pan(ContextRenderLock & r, double azimuth, double /*elevation*/, const AudioBus * inputBus, AudioBus * outputBus, int framesToProcess) +{ + m_smoothingConstant = AudioUtilities::discreteTimeConstantForSampleRate(SmoothingTimeConstant, r.context()->sampleRate()); + + bool isInputSafe = inputBus && (inputBus->numberOfChannels() == Channels::Mono || inputBus->numberOfChannels() == Channels::Stereo) && framesToProcess <= inputBus->length(); + ASSERT(isInputSafe); + if (!isInputSafe) + return; + + unsigned numberOfInputChannels = inputBus->numberOfChannels(); + + bool isOutputSafe = outputBus && outputBus->numberOfChannels() == Channels::Stereo && framesToProcess <= outputBus->length(); + ASSERT(isOutputSafe); + if (!isOutputSafe) + return; + + const float * sourceL = inputBus->channelByType(Channel::Left)->data(); + const float * sourceR = numberOfInputChannels > 1 ? inputBus->channelByType(Channel::Right)->data() : sourceL; + float * destinationL = outputBus->channelByType(Channel::Left)->mutableData(); + float * destinationR = outputBus->channelByType(Channel::Right)->mutableData(); + + if (!sourceL || !sourceR || !destinationL || !destinationR) + return; + + // Clamp azimuth to allowed range of -180 -> +180. + azimuth = max(-180.0, azimuth); + azimuth = min(180.0, azimuth); + + // Alias the azimuth ranges behind us to in front of us: + // -90 -> -180 to -90 -> 0 and 90 -> 180 to 90 -> 0 + if (azimuth < -90) + azimuth = -180 - azimuth; + else if (azimuth > 90) + azimuth = 180 - azimuth; + + double desiredPanPosition; + double desiredGainL; + double desiredGainR; + + if (numberOfInputChannels == 1) + { // For mono source case. + // Pan smoothly from left to right with azimuth going from -90 -> +90 degrees. + desiredPanPosition = (azimuth + 90) / 180; + } + else + { // For stereo source case. + if (azimuth <= 0) + { // from -90 -> 0 + // sourceL -> destL and "equal-power pan" sourceR as in mono case + // by transforming the "azimuth" value from -90 -> 0 degrees into the range -90 -> +90. + desiredPanPosition = (azimuth + 90) / 90; + } + else + { // from 0 -> +90 + // sourceR -> destR and "equal-power pan" sourceL as in mono case + // by transforming the "azimuth" value from 0 -> +90 degrees into the range -90 -> +90. + desiredPanPosition = azimuth / 90; + } + } + + desiredGainL = cos(0.5 * static_cast(LAB_PI) * desiredPanPosition); + desiredGainR = sin(0.5 * static_cast(LAB_PI) * desiredPanPosition); + + // Don't de-zipper on first render call. + if (m_isFirstRender) + { + m_isFirstRender = false; + m_gainL = desiredGainL; + m_gainR = desiredGainR; + } + + // Cache in local variables. + double gainL = m_gainL; + double gainR = m_gainR; + + // Get local copy of smoothing constant. + const double SmoothingConstant = m_smoothingConstant; + + int n = framesToProcess; + + if (numberOfInputChannels == 1) + { // For mono source case. + while (n--) + { + float inputL = *sourceL++; + gainL += (desiredGainL - gainL) * SmoothingConstant; + gainR += (desiredGainR - gainR) * SmoothingConstant; + *destinationL++ = static_cast(inputL * gainL); + *destinationR++ = static_cast(inputL * gainR); + } + } + else + { // For stereo source case. + if (azimuth <= 0) + { // from -90 -> 0 + while (n--) + { + float inputL = *sourceL++; + float inputR = *sourceR++; + gainL += (desiredGainL - gainL) * SmoothingConstant; + gainR += (desiredGainR - gainR) * SmoothingConstant; + *destinationL++ = static_cast(inputL + inputR * gainL); + *destinationR++ = static_cast(inputR * gainR); + } + } + else + { // from 0 -> +90 + while (n--) + { + float inputL = *sourceL++; + float inputR = *sourceR++; + gainL += (desiredGainL - gainL) * SmoothingConstant; + gainR += (desiredGainR - gainR) * SmoothingConstant; + *destinationL++ = static_cast(inputL * gainL); + *destinationR++ = static_cast(inputR + inputL * gainR); + } + } + } + + m_gainL = gainL; + m_gainR = gainR; +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/FFTConvolver.cpp b/sources/LabSound/src/internal/src/FFTConvolver.cpp new file mode 100644 index 00000000..3347c62a --- /dev/null +++ b/sources/LabSound/src/internal/src/FFTConvolver.cpp @@ -0,0 +1,95 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/FFTConvolver.h" +#include "internal/Assertions.h" +#include "internal/VectorMath.h" + +namespace lab +{ + +using namespace VectorMath; + +FFTConvolver::FFTConvolver(int fftSize) + : m_frame(fftSize) + , m_readWriteIndex(0) + , m_inputBuffer(fftSize) // 2nd half of buffer is always zeroed + , m_outputBuffer(fftSize) + , m_lastOverlapBuffer(fftSize / 2) +{ +} + +void FFTConvolver::process(FFTFrame * fftKernel, const float * sourceP, float * destP, int framesToProcess) +{ + int halfSize = fftSize() / 2; + + // framesToProcess must be an exact multiple of halfSize, + // or halfSize is a multiple of framesToProcess when halfSize > framesToProcess. + bool isGood = !(halfSize % framesToProcess && framesToProcess % halfSize); + ASSERT(isGood); + + if (!isGood) + return; + + int numberOfDivisions = halfSize <= framesToProcess ? (framesToProcess / halfSize) : 1; + int divisionSize = numberOfDivisions == 1 ? framesToProcess : halfSize; + + for (int i = 0; i < numberOfDivisions; ++i, sourceP += divisionSize, destP += divisionSize) + { + // Copy samples to input buffer (note contraint above!) + float * inputP = m_inputBuffer.data(); + + // Sanity check + bool isCopyGood1 = sourceP && inputP && m_readWriteIndex + divisionSize <= m_inputBuffer.size(); + ASSERT(isCopyGood1); + if (!isCopyGood1) + return; + + memcpy(inputP + m_readWriteIndex, sourceP, sizeof(float) * divisionSize); + + // Copy samples from output buffer + float * outputP = m_outputBuffer.data(); + + // Sanity check + bool isCopyGood2 = destP && outputP && m_readWriteIndex + divisionSize <= m_outputBuffer.size(); + ASSERT(isCopyGood2); + if (!isCopyGood2) + return; + + memcpy(destP, outputP + m_readWriteIndex, sizeof(float) * divisionSize); + m_readWriteIndex += divisionSize; + + // Check if it's time to perform the next FFT + if (m_readWriteIndex == halfSize) + { + + // The input buffer is now filled (get frequency-domain version) + m_frame.computeForwardFFT(m_inputBuffer.data()); + m_frame.multiply(*fftKernel); + m_frame.computeInverseFFT(m_outputBuffer.data()); + + // Overlap-add 1st half from previous time + vadd(m_outputBuffer.data(), 1, m_lastOverlapBuffer.data(), 1, m_outputBuffer.data(), 1, halfSize); + + // Finally, save 2nd half of result + bool isCopyGood3 = m_outputBuffer.size() == 2 * halfSize && m_lastOverlapBuffer.size() == halfSize; + ASSERT(isCopyGood3); + if (!isCopyGood3) + return; + + memcpy(m_lastOverlapBuffer.data(), m_outputBuffer.data() + halfSize, sizeof(float) * halfSize); + + // Reset index back to start for next time + m_readWriteIndex = 0; + } + } +} + +void FFTConvolver::reset() +{ + m_lastOverlapBuffer.zero(); + m_readWriteIndex = 0; +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/FFTFrame.cpp b/sources/LabSound/src/internal/src/FFTFrame.cpp new file mode 100644 index 00000000..83bff330 --- /dev/null +++ b/sources/LabSound/src/internal/src/FFTFrame.cpp @@ -0,0 +1,254 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/extended/Logging.h" + +#include "internal/FFTFrame.h" + +#ifndef NDEBUG +#include +#endif + +#include "LabSound/core/Macros.h" +#include + +namespace lab +{ + +typedef std::complex Complex; + +void FFTFrame::doPaddedFFT(const float * data, int dataSize) +{ + // Zero-pad the impulse response + AudioFloatArray paddedResponse(fftSize()); // zero-initialized + paddedResponse.copyToRange(data, 0, dataSize); + + // Get the frequency-domain version of padded response + computeForwardFFT(paddedResponse.data()); +} + +std::unique_ptr FFTFrame::createInterpolatedFrame(const FFTFrame & frame1, const FFTFrame & frame2, double x) +{ + std::unique_ptr newFrame(new FFTFrame(frame1.fftSize())); + + newFrame->interpolateFrequencyComponents(frame1, frame2, x); + + // In the time-domain, the 2nd half of the response must be zero, to avoid circular convolution aliasing... + int fftSize = newFrame->fftSize(); + AudioFloatArray buffer(fftSize); + newFrame->computeInverseFFT(buffer.data()); + buffer.zeroRange(fftSize / 2, fftSize); + + // Put back into frequency domain. + newFrame->computeForwardFFT(buffer.data()); + + return newFrame; +} + +void FFTFrame::interpolateFrequencyComponents(const FFTFrame & frame1, const FFTFrame & frame2, double interp) +{ + // FIXME : with some work, this method could be optimized + + float * realP = realData(); + float * imagP = imagData(); + + const float * realP1 = frame1.realData(); + const float * imagP1 = frame1.imagData(); + const float * realP2 = frame2.realData(); + const float * imagP2 = frame2.imagData(); + + m_FFTSize = frame1.fftSize(); + m_log2FFTSize = frame1.log2FFTSize(); + + double s1base = (1.0 - interp); + double s2base = interp; + + double phaseAccum = 0.0; + double lastPhase1 = 0.0; + double lastPhase2 = 0.0; + + realP[0] = static_cast(s1base * realP1[0] + s2base * realP2[0]); + imagP[0] = static_cast(s1base * imagP1[0] + s2base * imagP2[0]); + + int n = m_FFTSize / 2; + + for (int i = 1; i < n; ++i) + { + Complex c1(realP1[i], imagP1[i]); + Complex c2(realP2[i], imagP2[i]); + + double mag1 = abs(c1); + double mag2 = abs(c2); + + // Interpolate magnitudes in decibels + double mag1db = 20.0 * log10(mag1); + double mag2db = 20.0 * log10(mag2); + + double s1 = s1base; + double s2 = s2base; + + double magdbdiff = mag1db - mag2db; + + // Empirical tweak to retain higher-frequency zeroes + double threshold = (i > 16) ? 5.0 : 2.0; + + if (magdbdiff < -threshold && mag1db < 0.0) + { + s1 = pow(s1, 0.75); + s2 = 1.0 - s1; + } + else if (magdbdiff > threshold && mag2db < 0.0) + { + s2 = pow(s2, 0.75); + s1 = 1.0 - s2; + } + + // Average magnitude by decibels instead of linearly + double magdb = s1 * mag1db + s2 * mag2db; + double mag = pow(10.0, 0.05 * magdb); + + // Now, deal with phase + double phase1 = arg(c1); + double phase2 = arg(c2); + + double deltaPhase1 = phase1 - lastPhase1; + double deltaPhase2 = phase2 - lastPhase2; + lastPhase1 = phase1; + lastPhase2 = phase2; + + // Unwrap phase deltas + if (deltaPhase1 > static_cast(LAB_PI)) + deltaPhase1 -= 2.0 * static_cast(LAB_PI); + if (deltaPhase1 < -static_cast(LAB_PI)) + deltaPhase1 += 2.0 * static_cast(LAB_PI); + if (deltaPhase2 > static_cast(LAB_PI)) + deltaPhase2 -= 2.0 * static_cast(LAB_PI); + if (deltaPhase2 < -static_cast(LAB_PI)) + deltaPhase2 += 2.0 * static_cast(LAB_PI); + + // Blend group-delays + double deltaPhaseBlend; + + if (deltaPhase1 - deltaPhase2 > static_cast(LAB_PI)) + deltaPhaseBlend = s1 * deltaPhase1 + s2 * (2.0 * static_cast(LAB_PI) + deltaPhase2); + else if (deltaPhase2 - deltaPhase1 > static_cast(LAB_PI)) + deltaPhaseBlend = s1 * (2.0 * static_cast(LAB_PI) + deltaPhase1) + s2 * deltaPhase2; + else + deltaPhaseBlend = s1 * deltaPhase1 + s2 * deltaPhase2; + + phaseAccum += deltaPhaseBlend; + + // Unwrap + if (phaseAccum > static_cast(LAB_PI)) + phaseAccum -= 2.0 * static_cast(LAB_PI); + if (phaseAccum < -static_cast(LAB_PI)) + phaseAccum += 2.0 * static_cast(LAB_PI); + + Complex c = std::polar(mag, phaseAccum); + + realP[i] = static_cast(c.real()); + imagP[i] = static_cast(c.imag()); + } +} + +double FFTFrame::extractAverageGroupDelay() +{ + float * realP = realData(); + float * imagP = imagData(); + + double aveSum = 0.0; + double weightSum = 0.0; + double lastPhase = 0.0; + + int halfSize = fftSize() / 2; + + const double kSamplePhaseDelay = (2.0 * static_cast(LAB_PI)) / double(fftSize()); + + // Calculate weighted average group delay + for (int i = 0; i < halfSize; i++) + { + Complex c(realP[i], imagP[i]); + double mag = abs(c); + double phase = arg(c); + + double deltaPhase = phase - lastPhase; + lastPhase = phase; + + // Unwrap + if (deltaPhase < -static_cast(LAB_PI)) + deltaPhase += 2.0 * static_cast(LAB_PI); + if (deltaPhase > static_cast(LAB_PI)) + deltaPhase -= 2.0 * static_cast(LAB_PI); + + aveSum += mag * deltaPhase; + weightSum += mag; + } + + // Note how we invert the phase delta wrt frequency since this is how group delay is defined + double ave = aveSum / weightSum; + double aveSampleDelay = -ave / kSamplePhaseDelay; + + // Leave 20 sample headroom (for leading edge of impulse) + if (aveSampleDelay > 20.0) + aveSampleDelay -= 20.0; + + // Remove average group delay (minus 20 samples for headroom) + addConstantGroupDelay(-aveSampleDelay); + + // Remove DC offset + realP[0] = 0.0f; + + return aveSampleDelay; +} + +void FFTFrame::addConstantGroupDelay(double sampleFrameDelay) +{ + int halfSize = fftSize() / 2; + + float * realP = realData(); + float * imagP = imagData(); + + const double kSamplePhaseDelay = (2.0 * static_cast(LAB_PI)) / double(fftSize()); + + double phaseAdj = -sampleFrameDelay * kSamplePhaseDelay; + + // Add constant group delay + for (int i = 1; i < halfSize; i++) + { + Complex c(realP[i], imagP[i]); + double mag = abs(c); + double phase = arg(c); + + phase += i * phaseAdj; + + Complex c2 = std::polar(mag, phase); + + realP[i] = static_cast(c2.real()); + imagP[i] = static_cast(c2.imag()); + } +} + +#ifndef NDEBUG +void FFTFrame::print() +{ + FFTFrame & frame = *this; + float * realP = frame.realData(); + float * imagP = frame.imagData(); + LOG_INFO("**** \n"); + LOG_INFO("DC = %f : nyquist = %f\n", realP[0], imagP[0]); + + int n = m_FFTSize / 2; + + for (int i = 1; i < n; i++) + { + double mag = sqrt(realP[i] * realP[i] + imagP[i] * imagP[i]); + double phase = atan2(realP[i], imagP[i]); + + LOG_INFO("[%d] (%f %f)\n", i, mag, phase); + } + LOG_INFO("****\n"); +} +#endif // NDEBUG + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/FFTFrameKissFFT.cpp b/sources/LabSound/src/internal/src/FFTFrameKissFFT.cpp new file mode 100644 index 00000000..e85f25d1 --- /dev/null +++ b/sources/LabSound/src/internal/src/FFTFrameKissFFT.cpp @@ -0,0 +1,139 @@ +// License: BSD 2 Clause +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/Macros.h" +#include "internal/Assertions.h" + +#if defined(USE_KISS_FFT) + +#include "internal/FFTFrame.h" +#include "internal/VectorMath.h" + +#include +#include + +// To use this implementation, add USE_KISS_FFT=1 to the list of preprocessor defines +namespace lab +{ + +const int kMaxFFTPow2Size = 24; + +// Normal constructor: allocates for a given fftSize. +FFTFrame::FFTFrame(int fftSize) + : m_FFTSize(fftSize), m_log2FFTSize(static_cast(log2((double) fftSize))) + , mFFT(0), mIFFT(0), m_realData(fftSize / 2 + 1), m_imagData(fftSize / 2 + 1) +{ + // We only allow power of two. + ASSERT(1UL << m_log2FFTSize == m_FFTSize); + + const int mBinSize = m_FFTSize / 2 + 1; + + mFFT = kiss_fftr_alloc(m_FFTSize, 0, nullptr, nullptr); + mIFFT = kiss_fftr_alloc(m_FFTSize, 1, nullptr, nullptr); + + m_cpxInputData = new kiss_fft_cpx[mBinSize]; + m_cpxOutputData = new kiss_fft_cpx[mBinSize]; + + int nbytes = sizeof(float) * mBinSize; + + memset(realData(), 0, nbytes); + memset(imagData(), 0, nbytes); +} + +// Creates a blank/empty frame (interpolate() must later be called). +FFTFrame::FFTFrame() : m_FFTSize(0), m_log2FFTSize(0), mFFT(0), mIFFT(0) +{ +} + +// Copy constructor. +FFTFrame::FFTFrame(const FFTFrame & frame) + : m_FFTSize(frame.m_FFTSize), m_log2FFTSize(frame.m_log2FFTSize), mFFT(0), mIFFT(0), m_realData(frame.m_FFTSize / 2), m_imagData(frame.m_FFTSize / 2) +{ + mFFT = kiss_fftr_alloc(m_FFTSize, 0, nullptr, nullptr); + mIFFT = kiss_fftr_alloc(m_FFTSize, 1, nullptr, nullptr); + + const int mBinSize = m_FFTSize / 2 + 1; + + // Copy/setup frame data. + unsigned nbytes = sizeof(float) * mBinSize; + + memcpy(realData(), frame.realData(), nbytes); + memcpy(imagData(), frame.imagData(), nbytes); + + m_cpxInputData = new kiss_fft_cpx[mBinSize]; + m_cpxOutputData = new kiss_fft_cpx[mBinSize]; +} + +FFTFrame::~FFTFrame() +{ + KISS_FFT_FREE(mFFT); + KISS_FFT_FREE(mIFFT); + delete m_cpxInputData; + delete m_cpxOutputData; +} + +void FFTFrame::multiply(const FFTFrame & frame) +{ + FFTFrame & frame1 = *this; + FFTFrame & frame2 = const_cast(frame); + + float * realP1 = frame1.realData(); + float * imagP1 = frame1.imagData(); + const float * realP2 = frame2.realData(); + const float * imagP2 = frame2.imagData(); + + unsigned halfSize = fftSize() / 2; + float real0 = realP1[0]; + float imag0 = imagP1[0]; + VectorMath::zvmul(realP1, imagP1, realP2, imagP2, realP1, imagP1, halfSize); + + // Multiply the packed DC/nyquist component + realP1[0] = real0 * realP2[0]; + imagP1[0] = imag0 * imagP2[0]; +} + +void FFTFrame::computeForwardFFT(const float * data) +{ + kiss_fftr(mFFT, data, m_cpxOutputData); + + float * outputData = reinterpret_cast(m_cpxOutputData); // interleaved .r / .i + + // De-interleave to separate real and complex arrays. + VectorMath::vdeintlve(outputData, m_realData.data(), m_imagData.data(), m_FFTSize); +} + +void FFTFrame::computeInverseFFT(float * data) +{ + const uint32_t inputSize = m_FFTSize / 2 + 1; + + for (uint32_t i = 0; i < inputSize; ++i) + { + m_cpxInputData[i].r = m_realData.data()[i]; + m_cpxInputData[i].i = m_imagData.data()[i]; + } + + // Inverse-transform the (inputSize) points of data in each + // of (m_cpxInputData.r) and (m_cpxInputData.i) + float * outData = reinterpret_cast(m_cpxOutputData); // .r + .i + kiss_fftri(mIFFT, m_cpxInputData, outData); + + // Scale so that a forward then inverse FFT yields exactly the original data and + // store the resulting (m_FFTSize) points in (data). + // x == IFFT(FFT(x)) + const float scale = 1.0f / m_FFTSize; + VectorMath::vsmul(outData, 1, &scale, data, 1, m_FFTSize); +} + +float * FFTFrame::realData() const +{ + return const_cast(m_realData.data()); +} + +float * FFTFrame::imagData() const +{ + return const_cast(m_imagData.data()); +} + +} // namespace lab + +#endif // USE KISS FFT diff --git a/sources/LabSound/src/internal/src/HRTFDatabase.cpp b/sources/LabSound/src/internal/src/HRTFDatabase.cpp new file mode 100644 index 00000000..e1bb02b5 --- /dev/null +++ b/sources/LabSound/src/internal/src/HRTFDatabase.cpp @@ -0,0 +1,94 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/HRTFDatabase.h" +#include "internal/Assertions.h" +#include "internal/HRTFElevation.h" + +#include + +using namespace std; + +namespace lab +{ + +HRTFDatabase::HRTFDatabase(float sampleRate, const std::string & searchPath) +{ + info.reset(new HRTFDatabaseInfo("Composite", searchPath, sampleRate)); + + m_elevations.resize(info->numTotalElevations); + + int elevationIndex = 0; + for (int elevation = info->minElevation; elevation <= info->maxElevation; elevation += info->rawElevationAngleSpacing) + { + std::unique_ptr hrtfElevation = HRTFElevation::createForSubject(info.get(), elevation); + + // @tofix - removed ASSERT(hrtfElevation.get()); + if (!hrtfElevation.get()) return; + + m_elevations[elevationIndex] = std::move(hrtfElevation); + elevationIndex += info->interpolationFactor; + } + + // Go back and interpolate elevations + if (info->interpolationFactor > 1) + { + for (int i = 0; i < info->numTotalElevations; i += info->interpolationFactor) + { + int j = (i + info->interpolationFactor); + + if (j >= info->numTotalElevations) + { + j = i; // for last elevation interpolate with itself + } + + // Create the interpolated convolution kernels and delays. + for (int jj = 1; jj < info->interpolationFactor; ++jj) + { + float x = static_cast(jj) / static_cast(info->interpolationFactor); + m_elevations[i + jj] = HRTFElevation::createByInterpolatingSlices(info.get(), m_elevations[i].get(), m_elevations[j].get(), x); + ASSERT(m_elevations[i + jj].get()); + } + } + } +} + +void HRTFDatabase::getKernelsFromAzimuthElevation(double azimuthBlend, + unsigned azimuthIndex, + double elevationAngle, + HRTFKernel *& kernelL, + HRTFKernel *& kernelR, + double & frameDelayL, + double & frameDelayR) +{ + + size_t elevationIndex = info->indexFromElevationAngle(elevationAngle); + + ASSERT(elevationIndex < m_elevations.size() && m_elevations.size() > 0); + + if (!m_elevations.size()) + { + kernelL = 0; + kernelR = 0; + return; + } + + if (elevationIndex > m_elevations.size() - 1) + { + elevationIndex = m_elevations.size() - 1; + } + + HRTFElevation * hrtfElevation = m_elevations[elevationIndex].get(); + + ASSERT(hrtfElevation); + + if (!hrtfElevation) + { + throw std::runtime_error("Error getting hrtfElevation"); + } + + hrtfElevation->getKernelsFromAzimuth(azimuthBlend, azimuthIndex, kernelL, kernelR, frameDelayL, frameDelayR); +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/HRTFDatabaseLoader.cpp b/sources/LabSound/src/internal/src/HRTFDatabaseLoader.cpp new file mode 100644 index 00000000..9b41ab1f --- /dev/null +++ b/sources/LabSound/src/internal/src/HRTFDatabaseLoader.cpp @@ -0,0 +1,100 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/HRTFDatabaseLoader.h" +#include "internal/Assertions.h" +#include "internal/HRTFDatabase.h" + +#include + +namespace lab +{ + +// Singleton +std::shared_ptr HRTFDatabaseLoader::s_loader; + +std::shared_ptr HRTFDatabaseLoader::MakeHRTFLoaderSingleton(float sampleRate, const std::string & searchPath) +{ + if (!s_loader) + { + s_loader = std::make_shared(sampleRate, searchPath); + s_loader->loadAsynchronously(); + } + return s_loader; +} + +HRTFDatabaseLoader::HRTFDatabaseLoader(float sampleRate, const std::string & searchPath) + : m_loading(false) + , m_databaseSampleRate(sampleRate) + , searchPath(searchPath) +{ + ASSERT(!s_loader.get()); +} + +HRTFDatabaseLoader::~HRTFDatabaseLoader() +{ + waitForLoaderThreadCompletion(); + + if (m_databaseLoaderThread.joinable()) m_databaseLoaderThread.join(); + + m_hrtfDatabase.reset(); + + ASSERT(this == s_loader.get()); + + s_loader.reset(); +} + +// Asynchronously load the database in this thread. +void HRTFDatabaseLoader::databaseLoaderEntry(HRTFDatabaseLoader * threadData) +{ + std::lock_guard locker(threadData->m_threadLock); + HRTFDatabaseLoader * loader = reinterpret_cast(threadData); + ASSERT(loader); + + threadData->m_loading = true; + loader->load(); + threadData->m_loadingCondition.notify_one(); +} + +void HRTFDatabaseLoader::load() +{ + m_hrtfDatabase.reset(new HRTFDatabase(m_databaseSampleRate, searchPath)); + + if (!m_hrtfDatabase.get()) + { + LOG_ERROR("HRTF database not loaded"); + } +} + +void HRTFDatabaseLoader::loadAsynchronously() +{ + std::lock_guard lock(m_threadLock); + + if (!m_hrtfDatabase.get() && !m_loading) + { + m_databaseLoaderThread = std::thread(databaseLoaderEntry, this); + } +} + +bool HRTFDatabaseLoader::isLoaded() const +{ + return (m_hrtfDatabase.get() != nullptr); +} + +void HRTFDatabaseLoader::waitForLoaderThreadCompletion() +{ + std::unique_lock locker(m_threadLock); + while (!m_hrtfDatabase.get()) + { + m_loadingCondition.wait(locker); + } +} + +HRTFDatabase * HRTFDatabaseLoader::defaultHRTFDatabase() +{ + if (!s_loader) return nullptr; + return s_loader->database(); +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/HRTFElevation.cpp b/sources/LabSound/src/internal/src/HRTFElevation.cpp new file mode 100644 index 00000000..326996d4 --- /dev/null +++ b/sources/LabSound/src/internal/src/HRTFElevation.cpp @@ -0,0 +1,262 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/AudioBus.h" +#include "LabSound/extended/AudioFileReader.h" + +#include "internal/Assertions.h" +#include "internal/Biquad.h" +#include "internal/FFTFrame.h" +#include "internal/HRTFElevation.h" +#include "internal/HRTFPanner.h" + +#include +#include +#include +#include +#include + +using namespace std; + +#if defined(_MSC_VER) +#pragma warning(disable:4996) +#endif + +namespace lab +{ + +// The range of elevations for the IRCAM impulse responses varies depending on azimuth, but the minimum elevation appears to always be -45. +static int maxElevations[] = { + // Azimuth + 90, // 0 + 45, // 15 + 60, // 30 + 45, // 45 + 75, // 60 + 45, // 75 + 60, // 90 + 45, // 105 + 75, // 120 + 45, // 135 + 60, // 150 + 45, // 165 + 75, // 180 + 45, // 195 + 60, // 210 + 45, // 225 + 75, // 240 + 45, // 255 + 60, // 270 + 45, // 285 + 75, // 300 + 45, // 315 + 60, // 330 + 45 // 345 +}; + +const uint32_t HRTFElevation::AzimuthSpacing = 15; +const uint32_t HRTFElevation::NumberOfRawAzimuths = 360 / AzimuthSpacing; +const uint32_t HRTFElevation::InterpolationFactor = 8; +const uint32_t HRTFElevation::NumberOfTotalAzimuths = NumberOfRawAzimuths * InterpolationFactor; + +// Takes advantage of the symmetry and creates a composite version of the two measured versions. For example, we have both azimuth 30 and -30 degrees +// where the roles of left and right ears are reversed with respect to each other. +bool HRTFElevation::calculateSymmetricKernelsForAzimuthElevation(HRTFDatabaseInfo * info, int azimuth, int elevation, std::shared_ptr & kernelL, std::shared_ptr & kernelR) +{ + std::shared_ptr kernelL1; + std::shared_ptr kernelR1; + + bool success = calculateKernelsForAzimuthElevation(info, azimuth, elevation, kernelL1, kernelR1); + + if (!success) + return false; + + // And symmetric version + int symmetricAzimuth = !azimuth ? 0 : 360 - azimuth; + + std::shared_ptr kernelL2; + std::shared_ptr kernelR2; + + success = calculateKernelsForAzimuthElevation(info, symmetricAzimuth, elevation, kernelL2, kernelR2); + + if (!success) return false; + + // Notice L/R reversal in symmetric version. + kernelL = MakeInterpolatedKernel(kernelL1.get(), kernelR2.get(), 0.5f); + kernelR = MakeInterpolatedKernel(kernelR1.get(), kernelL2.get(), 0.5f); + + return true; +} + +bool HRTFElevation::calculateKernelsForAzimuthElevation(HRTFDatabaseInfo * info, int azimuth, int elevation, std::shared_ptr & kernelL, std::shared_ptr & kernelR) +{ + // Valid values for azimuth are 0 -> 345 in 15 degree increments. + // Valid values for elevation are -45 -> +90 in 15 degree increments. + + bool isAzimuthGood = azimuth >= 0 && azimuth <= 345 && (azimuth / 15) * 15 == azimuth; + ASSERT(isAzimuthGood); + if (!isAzimuthGood) return false; + + bool isElevationGood = elevation >= -45 && elevation <= 90 && (elevation / 15) * 15 == elevation; + ASSERT(isElevationGood); + if (!isElevationGood) return false; + + // Construct the resource name from the subject name, azimuth, and elevation, for example: + // "IRC_Composite_C_R0195_T015_P000" + int positiveElevation = elevation < 0 ? elevation + 360 : elevation; + + char tempStr[16]; + + // Located in $searchPath / [format] .wav + // @tofix - this assumes we want to open this path and read via libnyquist fopen. + // ... will need to change for Android. Maybe MakeBusFromInternalResource / along with a LoadInternalResources requried by LabSound + sprintf(tempStr, "%03d_P%03d", azimuth, positiveElevation); + std::string resourceName = info->searchPath + "/" + "IRC_" + info->subjectName + "_C_R0195_T" + tempStr + ".wav"; + + std::shared_ptr impulseResponse = lab::MakeBusFromFile(resourceName.c_str(), false); + + if (!impulseResponse) + { + LOG_ERROR("impulse not found %s (bad path?)", resourceName.c_str()); + return false; + } + + // The impulse files are 44.1k so we need to resample them if the graph is playing back at any other rate + if (info->sampleRate != 44100.0f) + { + std::unique_ptr resampledImpulseResponse = AudioBus::createBySampleRateConverting(impulseResponse.get(), false, info->sampleRate); + impulseResponse = std::move(resampledImpulseResponse); + // LOG_VERBOSE("converting %s impulse to %f hz", resourceName.c_str(), info->sampleRate); + } + + // Check number of channels. For now these are fixed and known. + bool isBusGood = (impulseResponse->numberOfChannels() == Channels::Stereo); + + ASSERT(isBusGood); + if (!isBusGood) + { + return false; + } + + AudioChannel * leftEarImpulseResponse = impulseResponse->channelByType(Channel::Left); + AudioChannel * rightEarImpulseResponse = impulseResponse->channelByType(Channel::Right); + + // Note that depending on the fftSize returned by the panner, we may be truncating the impulse response we just loaded in. + const int fftSize = HRTFPanner::fftSizeForSampleRate(info->sampleRate); + kernelL = std::make_shared(leftEarImpulseResponse, fftSize, info->sampleRate); + kernelR = std::make_shared(rightEarImpulseResponse, fftSize, info->sampleRate); + + return true; +} + +std::unique_ptr HRTFElevation::createForSubject(HRTFDatabaseInfo * info, int elevation) +{ + bool isElevationGood = elevation >= -45 && elevation <= 90 && (elevation / 15) * 15 == elevation; + ASSERT(isElevationGood); + + if (!isElevationGood) + return nullptr; + + std::unique_ptr kernelListL = std::unique_ptr(new HRTFKernelList(NumberOfTotalAzimuths)); + std::unique_ptr kernelListR = std::unique_ptr(new HRTFKernelList(NumberOfTotalAzimuths)); + + // Load convolution kernels from HRTF files. + int interpolatedIndex = 0; + for (uint32_t rawIndex = 0; rawIndex < NumberOfRawAzimuths; ++rawIndex) + { + // Don't let elevation exceed maximum for this azimuth. + int maxElevation = maxElevations[rawIndex]; + int actualElevation = min(elevation, maxElevation); + + bool success = calculateKernelsForAzimuthElevation(info, rawIndex * AzimuthSpacing, actualElevation, kernelListL->at(interpolatedIndex), kernelListR->at(interpolatedIndex)); + if (!success) + return nullptr; + + interpolatedIndex += InterpolationFactor; + } + + // Now go back and interpolate intermediate azimuth values. + for (uint32_t i = 0; i < NumberOfTotalAzimuths; i += InterpolationFactor) + { + int j = (i + InterpolationFactor) % NumberOfTotalAzimuths; + + // Create the interpolated convolution kernels and delays. + for (uint32_t jj = 1; jj < InterpolationFactor; ++jj) + { + float x = float(jj) / float(InterpolationFactor); // interpolate from 0 -> 1 + + (*kernelListL)[i + jj] = MakeInterpolatedKernel(kernelListL->at(i).get(), kernelListL->at(j).get(), x); + (*kernelListR)[i + jj] = MakeInterpolatedKernel(kernelListR->at(i).get(), kernelListR->at(j).get(), x); + } + } + + return std::unique_ptr(new HRTFElevation(info, std::move(kernelListL), std::move(kernelListR), elevation)); +} + +std::unique_ptr HRTFElevation::createByInterpolatingSlices(HRTFDatabaseInfo * info, HRTFElevation * hrtfElevation1, HRTFElevation * hrtfElevation2, float x) +{ + ASSERT(hrtfElevation1 && hrtfElevation2); + if (!hrtfElevation1 || !hrtfElevation2) + return nullptr; + + ASSERT(x >= 0.0 && x < 1.0); + + std::unique_ptr kernelListL = std::unique_ptr(new HRTFKernelList(NumberOfTotalAzimuths)); + std::unique_ptr kernelListR = std::unique_ptr(new HRTFKernelList(NumberOfTotalAzimuths)); + + HRTFKernelList * kernelListL1 = hrtfElevation1->kernelListL(); + HRTFKernelList * kernelListR1 = hrtfElevation1->kernelListR(); + HRTFKernelList * kernelListL2 = hrtfElevation2->kernelListL(); + HRTFKernelList * kernelListR2 = hrtfElevation2->kernelListR(); + + // Interpolate kernels of corresponding azimuths of the two elevations. + for (uint32_t i = 0; i < NumberOfTotalAzimuths; ++i) + { + (*kernelListL)[i] = MakeInterpolatedKernel(kernelListL1->at(i).get(), kernelListL2->at(i).get(), x); + (*kernelListR)[i] = MakeInterpolatedKernel(kernelListR1->at(i).get(), kernelListR2->at(i).get(), x); + } + + // Interpolate elevation angle. + double angle = (1.0 - x) * hrtfElevation1->elevationAngle() + x * hrtfElevation2->elevationAngle(); + + return std::unique_ptr(new HRTFElevation(info, std::move(kernelListL), std::move(kernelListR), (int) angle)); +} + +void HRTFElevation::getKernelsFromAzimuth(double azimuthBlend, unsigned azimuthIndex, HRTFKernel *& kernelL, HRTFKernel *& kernelR, double & frameDelayL, double & frameDelayR) +{ + bool checkAzimuthBlend = azimuthBlend >= 0.0 && azimuthBlend < 1.0; + ASSERT(checkAzimuthBlend); + if (!checkAzimuthBlend) + { + azimuthBlend = 0.0; + } + + size_t numKernels = m_kernelListL->size(); + + bool isIndexGood = azimuthIndex < numKernels; + ASSERT(isIndexGood); + if (!isIndexGood) + { + kernelL = 0; + kernelR = 0; + return; + } + + // Return the left and right kernels. + kernelL = m_kernelListL->at(azimuthIndex).get(); + kernelR = m_kernelListR->at(azimuthIndex).get(); + + frameDelayL = m_kernelListL->at(azimuthIndex)->frameDelay(); + frameDelayR = m_kernelListR->at(azimuthIndex)->frameDelay(); + + int azimuthIndex2 = (azimuthIndex + 1) % numKernels; + double frameDelay2L = m_kernelListL->at(azimuthIndex2)->frameDelay(); + double frameDelay2R = m_kernelListR->at(azimuthIndex2)->frameDelay(); + + // Linearly interpolate delays. + frameDelayL = (1.0 - azimuthBlend) * frameDelayL + azimuthBlend * frameDelay2L; + frameDelayR = (1.0 - azimuthBlend) * frameDelayR + azimuthBlend * frameDelay2R; +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/HRTFKernel.cpp b/sources/LabSound/src/internal/src/HRTFKernel.cpp new file mode 100644 index 00000000..8fecc734 --- /dev/null +++ b/sources/LabSound/src/internal/src/HRTFKernel.cpp @@ -0,0 +1,115 @@ +// License: BSD 3 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/HRTFKernel.h" +#include "internal/Assertions.h" +#include "internal/Biquad.h" +#include "internal/FFTFrame.h" + +#include "LabSound/core/AudioChannel.h" + +#include "LabSound/core/Macros.h" + +#include + +using namespace std; + +namespace lab +{ + +// Takes the input AudioChannel as an input impulse response and calculates the average group delay. +// This represents the initial delay before the most energetic part of the impulse response. +// The sample-frame delay is removed from the impulseP impulse response, and this value is returned. +// the length of the passed in AudioChannel must be a power of 2. +inline float ExtractAverageGroupDelay(AudioChannel * channel, int analysisFFTSize) +{ + ASSERT(channel); + + float * impulseP = channel->mutableData(); + + bool isSizeGood = channel->length() >= analysisFFTSize; + ASSERT(isSizeGood); + if (!isSizeGood) + return 0; + + // Check for power-of-2. + ASSERT(uint64_t(1) << static_cast(log2(analysisFFTSize)) == analysisFFTSize); + + FFTFrame estimationFrame(analysisFFTSize); + estimationFrame.computeForwardFFT(impulseP); + + float frameDelay = static_cast(estimationFrame.extractAverageGroupDelay()); + estimationFrame.computeInverseFFT(impulseP); + + return frameDelay; +} + +HRTFKernel::HRTFKernel(AudioChannel * channel, int fftSize, float sampleRate) + : m_frameDelay(0) + , m_sampleRate(sampleRate) +{ + ASSERT(channel); + + // Determine the leading delay (average group delay) for the response. + m_frameDelay = ExtractAverageGroupDelay(channel, fftSize / 2); + + float * impulseResponse = channel->mutableData(); + int responseLength = channel->length(); + + // We need to truncate to fit into 1/2 the FFT size (with zero padding) in order to do proper convolution. + int truncatedResponseLength = std::min(responseLength, fftSize / 2); // truncate if necessary to max impulse response length allowed by FFT + + // Quick fade-out (apply window) at truncation point + int numberOfFadeOutFrames = static_cast(sampleRate / 4410); // 10 sample-frames @44.1KHz sample-rate + ASSERT(numberOfFadeOutFrames < truncatedResponseLength); + + if (numberOfFadeOutFrames < truncatedResponseLength) + { + for (int i = truncatedResponseLength - numberOfFadeOutFrames; i < truncatedResponseLength; ++i) + { + float x = 1.0f - static_cast(i - (truncatedResponseLength - numberOfFadeOutFrames)) / numberOfFadeOutFrames; + impulseResponse[i] *= x; + } + } + + m_fftFrame = std::unique_ptr(new FFTFrame(fftSize)); + m_fftFrame->doPaddedFFT(impulseResponse, truncatedResponseLength); +} + +std::unique_ptr HRTFKernel::createImpulseResponse() +{ + std::unique_ptr channel(new AudioChannel(fftSize())); + FFTFrame fftFrame(*m_fftFrame); + + // Add leading delay back in. + fftFrame.addConstantGroupDelay(m_frameDelay); + fftFrame.computeInverseFFT(channel->mutableData()); + + return channel; +} + +// Interpolates two kernels with x: 0 -> 1 and returns the result. +std::unique_ptr MakeInterpolatedKernel(HRTFKernel * kernel1, HRTFKernel * kernel2, float x) +{ + ASSERT(kernel1 && kernel2); + if (!kernel1 || !kernel2) + return 0; + + ASSERT(x >= 0.0 && x < 1.0); + x = std::min(1.0f, std::max(0.0f, x)); + + float sampleRate1 = kernel1->sampleRate(); + float sampleRate2 = kernel2->sampleRate(); + + ASSERT(sampleRate1 == sampleRate2); + if (sampleRate1 != sampleRate2) + return 0; + + float frameDelay = (1 - x) * kernel1->frameDelay() + x * kernel2->frameDelay(); + + std::unique_ptr interpolatedFrame = FFTFrame::createInterpolatedFrame(*kernel1->fftFrame(), *kernel2->fftFrame(), x); + return std::unique_ptr(new HRTFKernel(std::move(interpolatedFrame), frameDelay, sampleRate1)); +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/HRTFPanner.cpp b/sources/LabSound/src/internal/src/HRTFPanner.cpp new file mode 100644 index 00000000..7753c971 --- /dev/null +++ b/sources/LabSound/src/internal/src/HRTFPanner.cpp @@ -0,0 +1,313 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/HRTFPanner.h" +#include "LabSound/core/AudioBus.h" +#include "LabSound/core/Macros.h" +#include "internal/Assertions.h" +#include "internal/FFTConvolver.h" +#include "internal/HRTFDatabase.h" +#include "internal/HRTFDatabaseLoader.h" + +#include + +using namespace std; + +namespace lab +{ + +// @fixme - will change for new HRTF databases +// The value of 2 milliseconds is larger than the largest delay which exists in any HRTFKernel from the default HRTFDatabase (0.0136 seconds). +// We ASSERT the delay values used in process() with this value. +const double MaxDelayTimeSeconds = 0.002; +const int UninitializedAzimuth = -1; +const uint32_t RenderingQuantum = AudioNode::ProcessingSizeInFrames; + +HRTFPanner::HRTFPanner(const float sampleRate) + : Panner(sampleRate, PanningMode::HRTF) + , m_crossfadeSelection(CrossfadeSelection1) + , m_azimuthIndex1(UninitializedAzimuth) + , m_elevation1(0) + , m_azimuthIndex2(UninitializedAzimuth) + , m_elevation2(0) + , m_crossfadeX(0) + , m_crossfadeIncr(0) + , m_convolverL1(fftSizeForSampleRate(sampleRate)) + , m_convolverR1(fftSizeForSampleRate(sampleRate)) + , m_convolverL2(fftSizeForSampleRate(sampleRate)) + , m_convolverR2(fftSizeForSampleRate(sampleRate)) + , m_delayLineL(MaxDelayTimeSeconds, sampleRate) + , m_delayLineR(MaxDelayTimeSeconds, sampleRate) + , m_tempL1(RenderingQuantum) + , m_tempR1(RenderingQuantum) + , m_tempL2(RenderingQuantum) + , m_tempR2(RenderingQuantum) +{ +} + +HRTFPanner::~HRTFPanner() +{ +} + +uint32_t HRTFPanner::fftSizeForSampleRate(float sampleRate) +{ + // The HRTF impulse responses (loaded as audio resources) are 512 sample-frames @44.1KHz. + // Currently, we truncate the impulse responses to half this size, but an FFT-size of twice impulse response size is needed (for convolution). + // So for sample rates around 44.1KHz an FFT size of 512 is good. We double the FFT-size only for sample rates at least double this. + ASSERT(sampleRate >= 44100 && sampleRate <= 96000.0); + return (sampleRate < 88200.0) ? 512 : 1024; +} + +void HRTFPanner::reset() +{ + m_convolverL1.reset(); + m_convolverR1.reset(); + m_convolverL2.reset(); + m_convolverR2.reset(); + m_delayLineL.reset(); + m_delayLineR.reset(); +} + +int HRTFPanner::calculateDesiredAzimuthIndexAndBlend(double azimuth, double & azimuthBlend) +{ + // Convert the azimuth angle from the range -180 -> +180 into the range 0 -> 360. + // The azimuth index may then be calculated from this positive value. + if (azimuth < 0) + azimuth += 360.0; + + HRTFDatabase * database = HRTFDatabaseLoader::defaultHRTFDatabase(); + ASSERT(database); + + int numberOfAzimuths = database->numberOfAzimuths(); + const double angleBetweenAzimuths = 360.0 / numberOfAzimuths; + + // Calculate the azimuth index and the blend (0 -> 1) for interpolation. + double desiredAzimuthIndexFloat = azimuth / angleBetweenAzimuths; + int desiredAzimuthIndex = static_cast(desiredAzimuthIndexFloat); + azimuthBlend = desiredAzimuthIndexFloat - static_cast(desiredAzimuthIndex); + + // We don't immediately start using this azimuth index, but instead approach this index from the last index we rendered at. + // This minimizes the clicks and graininess for moving sources which occur otherwise. + desiredAzimuthIndex = max(0, desiredAzimuthIndex); + desiredAzimuthIndex = min(numberOfAzimuths - 1, desiredAzimuthIndex); + return desiredAzimuthIndex; +} + +void HRTFPanner::pan(ContextRenderLock & r, double desiredAzimuth, double elevation, const AudioBus * inputBus, AudioBus * outputBus, int framesToProcess) +{ + int numInputChannels = inputBus ? inputBus->numberOfChannels() : 0; + + bool isInputGood = inputBus && numInputChannels >= Channels::Mono && numInputChannels <= Channels::Stereo; + ASSERT(isInputGood); + + bool isOutputGood = outputBus && outputBus->numberOfChannels() == Channels::Stereo && framesToProcess <= outputBus->length(); + ASSERT(isOutputGood); + + if (!isInputGood || !isOutputGood) + { + if (outputBus) + outputBus->zero(); + return; + } + + // This code only runs as long as the context is alive and after database has been loaded. + HRTFDatabase * database = HRTFDatabaseLoader::defaultHRTFDatabase(); + ASSERT(database); + + if (!database) + { + outputBus->zero(); + return; + } + + // IRCAM HRTF azimuths values from the loaded database is reversed from the panner's notion of azimuth. + double azimuth = -desiredAzimuth; + + bool isAzimuthGood = azimuth >= -180.0 && azimuth <= 180.0; + ASSERT(isAzimuthGood); + if (!isAzimuthGood) + { + outputBus->zero(); + return; + } + + // Normally, we'll just be dealing with mono sources. + // If we have a stereo input, implement stereo panning with left source processed by left HRTF, and right source by right HRTF. + const AudioChannel * inputChannelL = inputBus->channelByType(Channel::Left); + const AudioChannel * inputChannelR = numInputChannels > Channels::Mono ? inputBus->channelByType(Channel::Right) : 0; + + // Get source and destination pointers. + const float * sourceL = inputChannelL->data(); + const float * sourceR = numInputChannels > Channels::Mono ? inputChannelR->data() : sourceL; + + float * destinationL = outputBus->channelByType(Channel::Left)->mutableData(); + float * destinationR = outputBus->channelByType(Channel::Right)->mutableData(); + + double azimuthBlend; + int desiredAzimuthIndex = calculateDesiredAzimuthIndexAndBlend(azimuth, azimuthBlend); + + // Initially snap azimuth and elevation values to first values encountered. + if (m_azimuthIndex1 == UninitializedAzimuth) + { + m_azimuthIndex1 = desiredAzimuthIndex; + m_elevation1 = elevation; + } + + if (m_azimuthIndex2 == UninitializedAzimuth) + { + m_azimuthIndex2 = desiredAzimuthIndex; + m_elevation2 = elevation; + } + + // Cross-fade / transition over a period of around 45 milliseconds. + // This is an empirical value tuned to be a reasonable trade-off between + // smoothness and speed. + const double fadeFrames = r.context()->sampleRate() <= 48000 ? 2048 : 4096; + + // Check for azimuth and elevation changes, initiating a cross-fade if needed. + if (!m_crossfadeX && m_crossfadeSelection == CrossfadeSelection1) + { + if (desiredAzimuthIndex != m_azimuthIndex1 || elevation != m_elevation1) + { + // Cross-fade from 1 -> 2 + m_crossfadeIncr = static_cast(1 / fadeFrames); + m_azimuthIndex2 = desiredAzimuthIndex; + m_elevation2 = elevation; + } + } + + if (m_crossfadeX == 1 && m_crossfadeSelection == CrossfadeSelection2) + { + if (desiredAzimuthIndex != m_azimuthIndex2 || elevation != m_elevation2) + { + // Cross-fade from 2 -> 1 + m_crossfadeIncr = static_cast(-1 / fadeFrames); + m_azimuthIndex1 = desiredAzimuthIndex; + m_elevation1 = elevation; + } + } + + // This algorithm currently requires that we process in power-of-two size chunks at least RenderingQuantum. + ASSERT(uint64_t(1) << static_cast(log2(framesToProcess)) == framesToProcess); + ASSERT(framesToProcess >= RenderingQuantum); + + const int framesPerSegment = RenderingQuantum; + const int numberOfSegments = framesToProcess / framesPerSegment; + + for (int segment = 0; segment < numberOfSegments; ++segment) + { + // Get the HRTFKernels and interpolated delays. + HRTFKernel * kernelL1; + HRTFKernel * kernelR1; + HRTFKernel * kernelL2; + HRTFKernel * kernelR2; + + double frameDelayL1; + double frameDelayR1; + double frameDelayL2; + double frameDelayR2; + + database->getKernelsFromAzimuthElevation(azimuthBlend, m_azimuthIndex1, m_elevation1, kernelL1, kernelR1, frameDelayL1, frameDelayR1); + database->getKernelsFromAzimuthElevation(azimuthBlend, m_azimuthIndex2, m_elevation2, kernelL2, kernelR2, frameDelayL2, frameDelayR2); + + bool areKernelsGood = kernelL1 && kernelR1 && kernelL2 && kernelR2; + ASSERT(areKernelsGood); + + if (!areKernelsGood) + { + outputBus->zero(); + return; + } + + ASSERT(frameDelayL1 / r.context()->sampleRate() < MaxDelayTimeSeconds && frameDelayR1 / r.context()->sampleRate() < MaxDelayTimeSeconds); + ASSERT(frameDelayL2 / r.context()->sampleRate() < MaxDelayTimeSeconds && frameDelayR2 / r.context()->sampleRate() < MaxDelayTimeSeconds); + + // Crossfade inter-aural delays based on transitions. + double frameDelayL = (1 - m_crossfadeX) * frameDelayL1 + m_crossfadeX * frameDelayL2; + double frameDelayR = (1 - m_crossfadeX) * frameDelayR1 + m_crossfadeX * frameDelayR2; + + // Calculate the source and destination pointers for the current segment. + uint32_t offset = segment * framesPerSegment; + const float * segmentSourceL = sourceL + offset; + const float * segmentSourceR = sourceR + offset; + float * segmentDestinationL = destinationL + offset; + float * segmentDestinationR = destinationR + offset; + + // First run through delay lines for inter-aural time difference. + m_delayLineL.setDelayFrames(frameDelayL); + m_delayLineR.setDelayFrames(frameDelayR); + m_delayLineL.process(r, segmentSourceL, segmentDestinationL, framesPerSegment); + m_delayLineR.process(r, segmentSourceR, segmentDestinationR, framesPerSegment); + + bool needsCrossfading = m_crossfadeIncr; + + // Have the convolvers render directly to the final destination if we're not cross-fading. + float * convolutionDestinationL1 = needsCrossfading ? m_tempL1.data() : segmentDestinationL; + float * convolutionDestinationR1 = needsCrossfading ? m_tempR1.data() : segmentDestinationR; + float * convolutionDestinationL2 = needsCrossfading ? m_tempL2.data() : segmentDestinationL; + float * convolutionDestinationR2 = needsCrossfading ? m_tempR2.data() : segmentDestinationR; + + // Now do the convolutions. + // Note that we avoid doing convolutions on both sets of convolvers if we're not currently cross-fading. + if (m_crossfadeSelection == CrossfadeSelection1 || needsCrossfading) + { + m_convolverL1.process(kernelL1->fftFrame(), segmentDestinationL, convolutionDestinationL1, framesPerSegment); + m_convolverR1.process(kernelR1->fftFrame(), segmentDestinationR, convolutionDestinationR1, framesPerSegment); + } + + if (m_crossfadeSelection == CrossfadeSelection2 || needsCrossfading) + { + m_convolverL2.process(kernelL2->fftFrame(), segmentDestinationL, convolutionDestinationL2, framesPerSegment); + m_convolverR2.process(kernelR2->fftFrame(), segmentDestinationR, convolutionDestinationR2, framesPerSegment); + } + + if (needsCrossfading) + { + // Apply linear cross-fade. + float x = m_crossfadeX; + float incr = m_crossfadeIncr; + + for (uint32_t i = 0; i < framesPerSegment; ++i) + { + segmentDestinationL[i] = (1 - x) * convolutionDestinationL1[i] + x * convolutionDestinationL2[i]; + segmentDestinationR[i] = (1 - x) * convolutionDestinationR1[i] + x * convolutionDestinationR2[i]; + x += incr; + } + + // Update cross-fade value from local. + m_crossfadeX = x; + + if (m_crossfadeIncr > 0 && fabs(m_crossfadeX - 1) < m_crossfadeIncr) + { + // We've fully made the crossfade transition from 1 -> 2. + m_crossfadeSelection = CrossfadeSelection2; + m_crossfadeX = 1; + m_crossfadeIncr = 0; + } + else if (m_crossfadeIncr < 0 && fabs(m_crossfadeX) < -m_crossfadeIncr) + { + // We've fully made the crossfade transition from 2 -> 1. + m_crossfadeSelection = CrossfadeSelection1; + m_crossfadeX = 0; + m_crossfadeIncr = 0; + } + } + } +} + +double HRTFPanner::tailTime(ContextRenderLock & r) const +{ + // Because HRTFPanner is implemented with a DelayKernel and a FFTConvolver, the tailTime of the HRTFPanner + // is the sum of the tailTime of the DelayKernel and the tailTime of the FFTConvolver, which is MaxDelayTimeSeconds + // and fftSize() / 2, respectively. + return MaxDelayTimeSeconds + (fftSize() / 2) / static_cast(r.context()->sampleRate()); +} + +double HRTFPanner::latencyTime(ContextRenderLock & r) const +{ + // The latency of a FFTConvolver is also fftSize() / 2, and is in addition to its tailTime of the same value. + return (fftSize() / 2) / static_cast(r.context()->sampleRate()); +} + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/VectorMath.cpp b/sources/LabSound/src/internal/src/VectorMath.cpp new file mode 100644 index 00000000..38caf4f3 --- /dev/null +++ b/sources/LabSound/src/internal/src/VectorMath.cpp @@ -0,0 +1,789 @@ +// License: BSD 2 Clause +// Copyright (C) 2010, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "LabSound/core/Macros.h" +#include "internal/Assertions.h" + +#include "internal/VectorMath.h" + +#if defined(LABSOUND_PLATFORM_OSX) +#include +#endif + +#ifdef __SSE2__ +#include +#endif + +#if defined(ARM_NEON_INTRINSICS) +#include +#endif + +#include +#include +#include + +namespace lab +{ + +namespace VectorMath +{ + +#if defined(LABSOUND_PLATFORM_OSX) + // On the Mac we use the highly optimized versions in Accelerate.framework + // In 32-bit mode (__ppc__ or __i386__) includes which defines macros of the same name as + // our namespaced function names, so we must handle this case differently. Other architectures (64bit, ARM, etc.) do not include this header file. + + void vsmul(const float * sourceP, int sourceStride, const float * scale, float * destP, int destStride, int framesToProcess) + { +#if defined(__ppc__) || defined(__i386__) + ::vsmul(sourceP, sourceStride, scale, destP, destStride, framesToProcess); +#else + vDSP_vsmul(sourceP, sourceStride, scale, destP, destStride, framesToProcess); +#endif + } + + void vadd(const float * source1P, int sourceStride1, const float * source2P, int sourceStride2, float * destP, int destStride, int framesToProcess) + { +#if defined(__ppc__) || defined(__i386__) + ::vadd(source1P, sourceStride1, source2P, sourceStride2, destP, destStride, framesToProcess); +#else + vDSP_vadd(source1P, sourceStride1, source2P, sourceStride2, destP, destStride, framesToProcess); +#endif + } + + void vmul(const float * source1P, int sourceStride1, const float * source2P, int sourceStride2, float * destP, int destStride, int framesToProcess) + { +#if defined(__ppc__) || defined(__i386__) + ::vmul(source1P, sourceStride1, source2P, sourceStride2, destP, destStride, framesToProcess); +#else + vDSP_vmul(source1P, sourceStride1, source2P, sourceStride2, destP, destStride, framesToProcess); +#endif + } + + void zvmul(const float * real1P, const float * imag1P, const float * real2P, const float * imag2P, float * realDestP, float * imagDestP, int framesToProcess) + { + DSPSplitComplex sc1; + DSPSplitComplex sc2; + DSPSplitComplex dest; + sc1.realp = const_cast(real1P); + sc1.imagp = const_cast(imag1P); + sc2.realp = const_cast(real2P); + sc2.imagp = const_cast(imag2P); + dest.realp = realDestP; + dest.imagp = imagDestP; +#if defined(__ppc__) || defined(__i386__) + ::zvmul(&sc1, 1, &sc2, 1, &dest, 1, framesToProcess, 1); +#else + vDSP_zvmul(&sc1, 1, &sc2, 1, &dest, 1, framesToProcess, 1); +#endif + } + + void vsma(const float * sourceP, int sourceStride, const float * scale, float * destP, int destStride, int framesToProcess) + { + vDSP_vsma(sourceP, sourceStride, scale, destP, destStride, destP, destStride, framesToProcess); + } + + void vmaxmgv(const float * sourceP, int sourceStride, float * maxP, int framesToProcess) + { + vDSP_maxmgv(sourceP, sourceStride, maxP, framesToProcess); + } + + void vsvesq(const float * sourceP, int sourceStride, float * sumP, int framesToProcess) + { + vDSP_svesq(const_cast(sourceP), sourceStride, sumP, framesToProcess); + } + + void vclip(const float * sourceP, int sourceStride, const float * lowThresholdP, const float * highThresholdP, float * destP, int destStride, int framesToProcess) + { + vDSP_vclip(const_cast(sourceP), sourceStride, const_cast(lowThresholdP), const_cast(highThresholdP), destP, destStride, framesToProcess); + } +#else + + void vsma(const float * sourceP, int sourceStride, const float * scale, float * destP, int destStride, int framesToProcess) + { + int n = framesToProcess; + +#ifdef __SSE2__ + if ((sourceStride == 1) && (destStride == 1)) + { + float k = *scale; + + // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. + while ((reinterpret_cast(sourceP) & 0x0F) && n) + { + *destP += k * *sourceP; + sourceP++; + destP++; + n--; + } + + // Now the sourceP is aligned, use SSE. + int tailFrames = n % 4; + const float * endP = destP + n - tailFrames; + + __m128 pSource; + __m128 dest; + __m128 temp; + __m128 mScale = _mm_set_ps1(k); + + bool destAligned = !(reinterpret_cast(destP) & 0x0F); + +#define SSE2_MULT_ADD(loadInstr, storeInstr) \ + while (destP < endP) \ + { \ + pSource = _mm_load_ps(sourceP); \ + temp = _mm_mul_ps(pSource, mScale); \ + dest = _mm_##loadInstr##_ps(destP); \ + dest = _mm_add_ps(dest, temp); \ + _mm_##storeInstr##_ps(destP, dest); \ + sourceP += 4; \ + destP += 4; \ + } + + if (destAligned) + SSE2_MULT_ADD(load, store) + else + SSE2_MULT_ADD(loadu, storeu) + + n = tailFrames; + } +#elif defined(ARM_NEON_INTRINSICS) + if ((sourceStride == 1) && (destStride == 1)) + { + int tailFrames = n % 4; + const float * endP = destP + n - tailFrames; + + float32x4_t k = vdupq_n_f32(*scale); + while (destP < endP) + { + float32x4_t source = vld1q_f32(sourceP); + float32x4_t dest = vld1q_f32(destP); + + dest = vmlaq_f32(dest, source, k); + vst1q_f32(destP, dest); + + sourceP += 4; + destP += 4; + } + n = tailFrames; + } +#endif + while (n) + { + *destP += *sourceP * *scale; + sourceP += sourceStride; + destP += destStride; + n--; + } + } + + void vsmul(const float * sourceP, int sourceStride, const float * scale, float * destP, int destStride, int framesToProcess) + { + int n = framesToProcess; + +#ifdef __SSE2__ + if ((sourceStride == 1) && (destStride == 1)) + { + float k = *scale; + + // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. + while ((reinterpret_cast(sourceP) & 0x0F) && n) + { + *destP = k * *sourceP; + sourceP++; + destP++; + n--; + } + + // Now the sourceP address is aligned and start to apply SSE. + int group = n / 4; + __m128 mScale = _mm_set_ps1(k); + __m128 * pSource; + __m128 * pDest; + __m128 dest; + + if (reinterpret_cast(destP) & 0x0F) + { + while (group--) + { + pSource = reinterpret_cast<__m128 *>(const_cast(sourceP)); + dest = _mm_mul_ps(*pSource, mScale); + _mm_storeu_ps(destP, dest); + + sourceP += 4; + destP += 4; + } + } + else + { + while (group--) + { + pSource = reinterpret_cast<__m128 *>(const_cast(sourceP)); + pDest = reinterpret_cast<__m128 *>(destP); + *pDest = _mm_mul_ps(*pSource, mScale); + + sourceP += 4; + destP += 4; + } + } + + // Non-SSE handling for remaining frames which is less than 4. + n %= 4; + while (n) + { + *destP = k * *sourceP; + sourceP++; + destP++; + n--; + } + } + else + { // If strides are not 1, rollback to normal algorithm. +#elif defined(ARM_NEON_INTRINSICS) + if ((sourceStride == 1) && (destStride == 1)) + { + float k = *scale; + int tailFrames = n % 4; + const float * endP = destP + n - tailFrames; + + while (destP < endP) + { + float32x4_t source = vld1q_f32(sourceP); + vst1q_f32(destP, vmulq_n_f32(source, k)); + + sourceP += 4; + destP += 4; + } + n = tailFrames; + } +#endif + float k = *scale; + while (n--) + { + *destP = k * *sourceP; + sourceP += sourceStride; + destP += destStride; + } +#ifdef __SSE2__ + } +#endif + } + + void vadd(const float * source1P, int sourceStride1, const float * source2P, int sourceStride2, float * destP, int destStride, int framesToProcess) + { + int n = framesToProcess; + +#ifdef __SSE2__ + if ((sourceStride1 == 1) && (sourceStride2 == 1) && (destStride == 1)) + { + // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. + while ((reinterpret_cast(source1P) & 0x0F) && n) + { + *destP = *source1P + *source2P; + source1P++; + source2P++; + destP++; + n--; + } + + // Now the source1P address is aligned and start to apply SSE. + int group = n / 4; + __m128 * pSource1; + __m128 * pSource2; + __m128 * pDest; + __m128 source2; + __m128 dest; + + bool source2Aligned = !(reinterpret_cast(source2P) & 0x0F); + bool destAligned = !(reinterpret_cast(destP) & 0x0F); + + if (source2Aligned && destAligned) + { // all aligned + while (group--) + { + pSource1 = reinterpret_cast<__m128 *>(const_cast(source1P)); + pSource2 = reinterpret_cast<__m128 *>(const_cast(source2P)); + pDest = reinterpret_cast<__m128 *>(destP); + *pDest = _mm_add_ps(*pSource1, *pSource2); + + source1P += 4; + source2P += 4; + destP += 4; + } + } + else if (source2Aligned && !destAligned) + { // source2 aligned but dest not aligned + while (group--) + { + pSource1 = reinterpret_cast<__m128 *>(const_cast(source1P)); + pSource2 = reinterpret_cast<__m128 *>(const_cast(source2P)); + dest = _mm_add_ps(*pSource1, *pSource2); + _mm_storeu_ps(destP, dest); + + source1P += 4; + source2P += 4; + destP += 4; + } + } + else if (!source2Aligned && destAligned) + { // source2 not aligned but dest aligned + while (group--) + { + pSource1 = reinterpret_cast<__m128 *>(const_cast(source1P)); + source2 = _mm_loadu_ps(source2P); + pDest = reinterpret_cast<__m128 *>(destP); + *pDest = _mm_add_ps(*pSource1, source2); + + source1P += 4; + source2P += 4; + destP += 4; + } + } + else if (!source2Aligned && !destAligned) + { // both source2 and dest not aligned + while (group--) + { + pSource1 = reinterpret_cast<__m128 *>(const_cast(source1P)); + source2 = _mm_loadu_ps(source2P); + dest = _mm_add_ps(*pSource1, source2); + _mm_storeu_ps(destP, dest); + + source1P += 4; + source2P += 4; + destP += 4; + } + } + + // Non-SSE handling for remaining frames which is less than 4. + n %= 4; + while (n) + { + *destP = *source1P + *source2P; + source1P++; + source2P++; + destP++; + n--; + } + } + else + { // if strides are not 1, rollback to normal algorithm +#elif defined(ARM_NEON_INTRINSICS) + if ((sourceStride1 == 1) && (sourceStride2 == 1) && (destStride == 1)) + { + int tailFrames = n % 4; + const float * endP = destP + n - tailFrames; + + while (destP < endP) + { + float32x4_t source1 = vld1q_f32(source1P); + float32x4_t source2 = vld1q_f32(source2P); + vst1q_f32(destP, vaddq_f32(source1, source2)); + + source1P += 4; + source2P += 4; + destP += 4; + } + n = tailFrames; + } +#endif + while (n--) + { + *destP = *source1P + *source2P; + source1P += sourceStride1; + source2P += sourceStride2; + destP += destStride; + } +#ifdef __SSE2__ + } +#endif + } + + void vmul(const float * source1P, int sourceStride1, const float * source2P, int sourceStride2, float * destP, int destStride, int framesToProcess) + { + + int n = framesToProcess; + +#ifdef __SSE2__ + if ((sourceStride1 == 1) && (sourceStride2 == 1) && (destStride == 1)) + { + // If the source1P address is not 16-byte aligned, the first several frames (at most three) should be processed separately. + while ((reinterpret_cast(source1P) & 0x0F) && n) + { + *destP = *source1P * *source2P; + source1P++; + source2P++; + destP++; + n--; + } + + // Now the source1P address aligned and start to apply SSE. + int tailFrames = n % 4; + const float * endP = destP + n - tailFrames; + __m128 pSource1; + __m128 pSource2; + __m128 dest; + + bool source2Aligned = !(reinterpret_cast(source2P) & 0x0F); + bool destAligned = !(reinterpret_cast(destP) & 0x0F); + +#define SSE2_MULT(loadInstr, storeInstr) \ + while (destP < endP) \ + { \ + pSource1 = _mm_load_ps(source1P); \ + pSource2 = _mm_##loadInstr##_ps(source2P); \ + dest = _mm_mul_ps(pSource1, pSource2); \ + _mm_##storeInstr##_ps(destP, dest); \ + source1P += 4; \ + source2P += 4; \ + destP += 4; \ + } + + if (source2Aligned && destAligned) // Both aligned. + SSE2_MULT(load, store) + else if (source2Aligned && !destAligned) // Source2 is aligned but dest not. + SSE2_MULT(load, storeu) + else if (!source2Aligned && destAligned) // Dest is aligned but source2 not. + SSE2_MULT(loadu, store) + else // Neither aligned. + SSE2_MULT(loadu, storeu) + + n = tailFrames; + } +#elif defined(ARM_NEON_INTRINSICS) + if ((sourceStride1 == 1) && (sourceStride2 == 1) && (destStride == 1)) + { + int tailFrames = n % 4; + const float * endP = destP + n - tailFrames; + + while (destP < endP) + { + float32x4_t source1 = vld1q_f32(source1P); + float32x4_t source2 = vld1q_f32(source2P); + vst1q_f32(destP, vmulq_f32(source1, source2)); + + source1P += 4; + source2P += 4; + destP += 4; + } + n = tailFrames; + } +#endif + while (n) + { + *destP = *source1P * *source2P; + source1P += sourceStride1; + source2P += sourceStride2; + destP += destStride; + n--; + } + } + + void zvmul(const float * real1P, const float * imag1P, const float * real2P, const float * imag2P, float * realDestP, float * imagDestP, int framesToProcess) + { + int i = 0; +#ifdef __SSE2__ + // Only use the SSE optimization in the very common case that all addresses are 16-byte aligned. + // Otherwise, fall through to the scalar code below. + if (!(reinterpret_cast(real1P) & 0x0F) + && !(reinterpret_cast(imag1P) & 0x0F) + && !(reinterpret_cast(real2P) & 0x0F) + && !(reinterpret_cast(imag2P) & 0x0F) + && !(reinterpret_cast(realDestP) & 0x0F) + && !(reinterpret_cast(imagDestP) & 0x0F)) + { + + int endSize = framesToProcess - framesToProcess % 4; + while (i < endSize) + { + __m128 real1 = _mm_load_ps(real1P + i); + __m128 real2 = _mm_load_ps(real2P + i); + __m128 imag1 = _mm_load_ps(imag1P + i); + __m128 imag2 = _mm_load_ps(imag2P + i); + __m128 real = _mm_mul_ps(real1, real2); + real = _mm_sub_ps(real, _mm_mul_ps(imag1, imag2)); + __m128 imag = _mm_mul_ps(real1, imag2); + imag = _mm_add_ps(imag, _mm_mul_ps(imag1, real2)); + _mm_store_ps(realDestP + i, real); + _mm_store_ps(imagDestP + i, imag); + i += 4; + } + } +#elif defined(ARM_NEON_INTRINSICS) + int endSize = framesToProcess - framesToProcess % 4; + while (i < endSize) + { + float32x4_t real1 = vld1q_f32(real1P + i); + float32x4_t real2 = vld1q_f32(real2P + i); + float32x4_t imag1 = vld1q_f32(imag1P + i); + float32x4_t imag2 = vld1q_f32(imag2P + i); + + float32x4_t realResult = vmlsq_f32(vmulq_f32(real1, real2), imag1, imag2); + float32x4_t imagResult = vmlaq_f32(vmulq_f32(real1, imag2), imag1, real2); + + vst1q_f32(realDestP + i, realResult); + vst1q_f32(imagDestP + i, imagResult); + + i += 4; + } +#endif + for (; i < framesToProcess; ++i) + { + // Read and compute result before storing them, in case the + // destination is the same as one of the sources. + float realResult = real1P[i] * real2P[i] - imag1P[i] * imag2P[i]; + float imagResult = real1P[i] * imag2P[i] + imag1P[i] * real2P[i]; + + realDestP[i] = realResult; + imagDestP[i] = imagResult; + } + } + + void vsvesq(const float * sourceP, int sourceStride, float * sumP, int framesToProcess) + { + int n = framesToProcess; + float sum = 0; + +#ifdef __SSE2__ + if (sourceStride == 1) + { + // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. + while ((reinterpret_cast(sourceP) & 0x0F) && n) + { + float sample = *sourceP; + sum += sample * sample; + sourceP++; + n--; + } + + // Now the sourceP is aligned, use SSE. + int tailFrames = n % 4; + const float * endP = sourceP + n - tailFrames; + __m128 source; + __m128 mSum = _mm_setzero_ps(); + + while (sourceP < endP) + { + source = _mm_load_ps(sourceP); + source = _mm_mul_ps(source, source); + mSum = _mm_add_ps(mSum, source); + sourceP += 4; + } + + // Summarize the SSE results. + const float * groupSumP = reinterpret_cast(&mSum); + sum += groupSumP[0] + groupSumP[1] + groupSumP[2] + groupSumP[3]; + + n = tailFrames; + } +#elif defined(ARM_NEON_INTRINSICS) + if (sourceStride == 1) + { + int tailFrames = n % 4; + const float * endP = sourceP + n - tailFrames; + + float32x4_t fourSum = vdupq_n_f32(0); + while (sourceP < endP) + { + float32x4_t source = vld1q_f32(sourceP); + fourSum = vmlaq_f32(fourSum, source, source); + sourceP += 4; + } + float32x2_t twoSum = vadd_f32(vget_low_f32(fourSum), vget_high_f32(fourSum)); + + float groupSum[2]; + vst1_f32(groupSum, twoSum); + sum += groupSum[0] + groupSum[1]; + + n = tailFrames; + } +#endif + + while (n--) + { + float sample = *sourceP; + sum += sample * sample; + sourceP += sourceStride; + } + + ASSERT(sumP); + *sumP = sum; + } + + void vmaxmgv(const float * sourceP, int sourceStride, float * maxP, int framesToProcess) + { + int n = framesToProcess; + float max = 0; + +#ifdef __SSE2__ + if (sourceStride == 1) + { + // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. + while ((reinterpret_cast(sourceP) & 0x0F) && n) + { + max = std::max(max, fabsf(*sourceP)); + sourceP++; + n--; + } + + // Now the sourceP is aligned, use SSE. + int tailFrames = n % 4; + const float * endP = sourceP + n - tailFrames; + __m128 source; + __m128 mMax = _mm_setzero_ps(); + int mask = 0x7FFFFFFF; + __m128 mMask = _mm_set1_ps(*reinterpret_cast(&mask)); + + while (sourceP < endP) + { + source = _mm_load_ps(sourceP); + // Calculate the absolute value by anding source with mask, the sign bit is set to 0. + source = _mm_and_ps(source, mMask); + mMax = _mm_max_ps(mMax, source); + sourceP += 4; + } + + // Get max from the SSE results. + const float * groupMaxP = reinterpret_cast(&mMax); + max = std::max(max, groupMaxP[0]); + max = std::max(max, groupMaxP[1]); + max = std::max(max, groupMaxP[2]); + max = std::max(max, groupMaxP[3]); + + n = tailFrames; + } +#elif defined(ARM_NEON_INTRINSICS) + if (sourceStride == 1) + { + int tailFrames = n % 4; + const float * endP = sourceP + n - tailFrames; + + float32x4_t fourMax = vdupq_n_f32(0); + while (sourceP < endP) + { + float32x4_t source = vld1q_f32(sourceP); + fourMax = vmaxq_f32(fourMax, vabsq_f32(source)); + sourceP += 4; + } + float32x2_t twoMax = vmax_f32(vget_low_f32(fourMax), vget_high_f32(fourMax)); + + float groupMax[2]; + vst1_f32(groupMax, twoMax); + max = std::max(groupMax[0], groupMax[1]); + + n = tailFrames; + } +#endif + + while (n--) + { + max = std::max(max, fabsf(*sourceP)); + sourceP += sourceStride; + } + + ASSERT(maxP); + *maxP = max; + } + + void vclip(const float * sourceP, int sourceStride, const float * lowThresholdP, const float * highThresholdP, float * destP, int destStride, int framesToProcess) + { + int n = framesToProcess; + float lowThreshold = *lowThresholdP; + float highThreshold = *highThresholdP; + + // FIXME: Optimize for SSE2. +#if defined(ARM_NEON_INTRINSICS) + if ((sourceStride == 1) && (destStride == 1)) + { + int tailFrames = n % 4; + const float * endP = destP + n - tailFrames; + + float32x4_t low = vdupq_n_f32(lowThreshold); + float32x4_t high = vdupq_n_f32(highThreshold); + while (destP < endP) + { + float32x4_t source = vld1q_f32(sourceP); + vst1q_f32(destP, vmaxq_f32(vminq_f32(source, high), low)); + sourceP += 4; + destP += 4; + } + n = tailFrames; + } +#endif + while (n--) + { + *destP = std::max(std::min(*sourceP, highThreshold), lowThreshold); + sourceP += sourceStride; + destP += destStride; + } + } + +#endif // OS(DARWIN) + + void vintlve(const float * realSrcP, const float * imagSrcP, float * destP, int framesToProcess) + { + int i = 0; +#if defined(ARM_NEON_INTRINSICS) + int j = 0; + int endSize = framesToProcess - framesToProcess % 4; + int len = endSize / 2; + + while (i < len) + { + float32x4_t source1 = vld1q_f32(realSrcP); + float32x4_t source2 = vld1q_f32(imagSrcP); + float32x4x2_t source = vzipq_f32(source1, source2); + + vst1q_f32(destP + j, source.val[0]); + vst1q_f32(destP + j + 4, source.val[1]); + realSrcP += 4; + imagSrcP += 4; + + i += 4; + j += 8; + } +#endif + int lenTail = framesToProcess / 2; + for (; i < lenTail; ++i) + { + int baseIndex = 2 * i; + destP[baseIndex] = realSrcP[i]; + destP[baseIndex + 1] = imagSrcP[i]; + } + } + + void vdeintlve(const float * sourceP, float * realDestP, float * imagDestP, int framesToProcess) + { + int i = 0; +#if defined(ARM_NEON_INTRINSICS) + int j = 0; + int endSize = framesToProcess - framesToProcess % 4; + + while (i < endSize) + { + float32x4_t source1 = vld1q_f32(sourceP); + float32x4_t source2 = vld1q_f32(sourceP + 4); + + float32x4x2_t source = vuzpq_f32(source1, source2); + + vst1q_f32(realDestP + j, source.val[0]); + vst1q_f32(imagDestP + j, source.val[1]); + + sourceP += 8; + + i += 8; + j += 4; + } +#endif + int lenTail = framesToProcess / 2; + for (; i < lenTail; ++i) + { + int baseIndex = 2 * i; + realDestP[i] = sourceP[baseIndex]; + imagDestP[i] = sourceP[baseIndex + 1]; + } + } + +} // namespace VectorMath + +} // namespace lab diff --git a/sources/LabSound/src/internal/src/ZeroPole.cpp b/sources/LabSound/src/internal/src/ZeroPole.cpp new file mode 100644 index 00000000..d32c9023 --- /dev/null +++ b/sources/LabSound/src/internal/src/ZeroPole.cpp @@ -0,0 +1,48 @@ +// License: BSD 3 Clause +// Copyright (C) 2011, Google Inc. All rights reserved. +// Copyright (C) 2015+, The LabSound Authors. All rights reserved. + +#include "internal/ZeroPole.h" +#include "internal/DenormalDisabler.h" + +namespace lab +{ + +void ZeroPole::process(const float * source, float * destination, int bufferSize, int offset, int count) +{ + float zero = m_zero; + float pole = m_pole; + + // Gain compensation to make 0dB @ 0Hz + const float k1 = 1 / (1 - zero); + const float k2 = 1 - pole; + + // Member variables to locals. + float lastX = m_lastX; + float lastY = m_lastY; + + source += offset; + destination += offset; + + while (count--) + { + float input = *source++; + + // Zero + float output1 = k1 * (input - zero * lastX); + lastX = input; + + // Pole + float output2 = k2 * output1 + pole * lastY; + lastY = output2; + + *destination++ = output2; + } + + // Locals to member variables. Flush denormals here so we don't + // slow down the inner loop above. + m_lastX = DenormalDisabler::flushDenormalFloatToZero(lastX); + m_lastY = DenormalDisabler::flushDenormalFloatToZero(lastY); +} + +} // lab diff --git a/sources/LabSound/third_party/concurrentqueue/LICENSE.md b/sources/LabSound/third_party/concurrentqueue/LICENSE.md new file mode 100644 index 00000000..51933897 --- /dev/null +++ b/sources/LabSound/third_party/concurrentqueue/LICENSE.md @@ -0,0 +1,62 @@ +This license file applies to everything in this repository except that which +is explicitly annotated as being written by other authors, i.e. the Boost +queue (included in the benchmarks for comparison), Intel's TBB library (ditto), +dlib::pipe (ditto), +the CDSChecker tool (used for verification), the Relacy model checker (ditto), +and Jeff Preshing's semaphore implementation (used in the blocking queue) which +has a zlib license (embedded in lightweightsempahore.h). + +--- + +Simplified BSD License: + +Copyright (c) 2013-2016, Cameron Desrochers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this list of +conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other materials +provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- + +I have also chosen to dual-license under the Boost Software License as an alternative to +the Simplified BSD license above: + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/sources/LabSound/third_party/concurrentqueue/README.md b/sources/LabSound/third_party/concurrentqueue/README.md new file mode 100644 index 00000000..9f579820 --- /dev/null +++ b/sources/LabSound/third_party/concurrentqueue/README.md @@ -0,0 +1,484 @@ +# moodycamel::ConcurrentQueue + +An industrial-strength lock-free queue for C++. + +Note: If all you need is a single-producer, single-consumer queue, I have [one of those too][spsc]. + +## Features + +- Knock-your-socks-off [blazing fast performance][benchmarks]. +- Single-header implementation. Just drop it in your project. +- Fully thread-safe lock-free queue. Use concurrently from any number of threads. +- C++11 implementation -- elements are moved (instead of copied) where possible. +- Templated, obviating the need to deal exclusively with pointers -- memory is managed for you. +- No artificial limitations on element types or maximum count. +- Memory can be allocated once up-front, or dynamically as needed. +- Fully portable (no assembly; all is done through standard C++11 primitives). +- Supports super-fast bulk operations. +- Includes a low-overhead blocking version (BlockingConcurrentQueue). +- Exception safe. + +## Reasons to use + +There are not that many full-fledged lock-free queues for C++. Boost has one, but it's limited to objects with trivial +assignment operators and trivial destructors, for example. +Intel's TBB queue isn't lock-free, and requires trivial constructors too. +There're many academic papers that implement lock-free queues in C++, but usable source code is +hard to find, and tests even more so. + +This queue not only has less limitations than others (for the most part), but [it's also faster][benchmarks]. +It's been fairly well-tested, and offers advanced features like **bulk enqueueing/dequeueing** +(which, with my new design, is much faster than one element at a time, approaching and even surpassing +the speed of a non-concurrent queue even under heavy contention). + +In short, there was a lock-free queue shaped hole in the C++ open-source universe, and I set out +to fill it with the fastest, most complete, and well-tested design and implementation I could. +The result is `moodycamel::ConcurrentQueue` :-) + +## Reasons *not* to use + +The fastest synchronization of all is the kind that never takes place. Fundamentally, +concurrent data structures require some synchronization, and that takes time. Every effort +was made, of course, to minimize the overhead, but if you can avoid sharing data between +threads, do so! + +Why use concurrent data structures at all, then? Because they're gosh darn convenient! (And, indeed, +sometimes sharing data concurrently is unavoidable.) + +My queue is **not linearizable** (see the next section on high-level design). The foundations of +its design assume that producers are independent; if this is not the case, and your producers +co-ordinate amongst themselves in some fashion, be aware that the elements won't necessarily +come out of the queue in the same order they were put in *relative to the ordering formed by that co-ordination* +(but they will still come out in the order they were put in by any *individual* producer). If this affects +your use case, you may be better off with another implementation; either way, it's an important limitation +to be aware of. + +My queue is also **not NUMA aware**, and does a lot of memory re-use internally, meaning it probably doesn't +scale particularly well on NUMA architectures; however, I don't know of any other lock-free queue that *is* +NUMA aware (except for [SALSA][salsa], which is very cool, but has no publicly available implementation that I know of). + +Finally, the queue is **not sequentially consistent**; there *is* a happens-before relationship between when an element is put +in the queue and when it comes out, but other things (such as pumping the queue until it's empty) require more thought +to get right in all eventualities, because explicit memory ordering may have to be done to get the desired effect. In other words, +it can sometimes be difficult to use the queue correctly. This is why it's a good idea to follow the [samples][samples.md] where possible. +On the other hand, the upside of this lack of sequential consistency is better performance. + +## High-level design + +Elements are stored internally using contiguous blocks instead of linked lists for better performance. +The queue is made up of a collection of sub-queues, one for each producer. When a consumer +wants to dequeue an element, it checks all the sub-queues until it finds one that's not empty. +All of this is largely transparent to the user of the queue, however -- it mostly just worksTM. + +One particular consequence of this design, however, (which seems to be non-intuitive) is that if two producers +enqueue at the same time, there is no defined ordering between the elements when they're later dequeued. +Normally this is fine, because even with a fully linearizable queue there'd be a race between the producer +threads and so you couldn't rely on the ordering anyway. However, if for some reason you do extra explicit synchronization +between the two producer threads yourself, thus defining a total order between enqueue operations, you might expect +that the elements would come out in the same total order, which is a guarantee my queue does not offer. At that +point, though, there semantically aren't really two separate producers, but rather one that happens to be spread +across multiple threads. In this case, you can still establish a total ordering with my queue by creating +a single producer token, and using that from both threads to enqueue (taking care to synchronize access to the token, +of course, but there was already extra synchronization involved anyway). + +I've written a more detailed [overview of the internal design][blog], as well as [the full +nitty-gritty details of the design][design], on my blog. Finally, the +[source][source] itself is available for perusal for those interested in its implementation. + +## Basic use + +The entire queue's implementation is contained in **one header**, [`concurrentqueue.h`][concurrentqueue.h]. +Simply download and include that to use the queue. The blocking version is in a separate header, +[`blockingconcurrentqueue.h`][blockingconcurrentqueue.h], that depends on [`concurrentqueue.h`][concurrentqueue.h] and +[`lightweightsemaphore.h`][lightweightsemaphore.h]. The implementation makes use of certain key C++11 features, +so it requires a fairly recent compiler (e.g. VS2012+ or g++ 4.8; note that g++ 4.6 has a known bug with `std::atomic` +and is thus not supported). The algorithm implementations themselves are platform independent. + +Use it like you would any other templated queue, with the exception that you can use +it from many threads at once :-) + +Simple example: + + #include "concurrentqueue.h" + + moodycamel::ConcurrentQueue q; + q.enqueue(25); + + int item; + bool found = q.try_dequeue(item); + assert(found && item == 25); + +Description of basic methods: +- `ConcurrentQueue(size_t initialSizeEstimate)` + Constructor which optionally accepts an estimate of the number of elements the queue will hold +- `enqueue(T&& item)` + Enqueues one item, allocating extra space if necessary +- `try_enqueue(T&& item)` + Enqueues one item, but only if enough memory is already allocated +- `try_dequeue(T& item)` + Dequeues one item, returning true if an item was found or false if the queue appeared empty + +Note that it is up to the user to ensure that the queue object is completely constructed before +being used by any other threads (this includes making the memory effects of construction +visible, possibly via a memory barrier). Similarly, it's important that all threads have +finished using the queue (and the memory effects have fully propagated) before it is +destructed. + +There's usually two versions of each method, one "explicit" version that takes a user-allocated per-producer or +per-consumer token, and one "implicit" version that works without tokens. Using the explicit methods is almost +always faster (though not necessarily by a huge factor). Apart from performance, the primary distinction between them +is their sub-queue allocation behaviour for enqueue operations: Using the implicit enqueue methods causes an +automatically-allocated thread-local producer sub-queue to be allocated (it is marked for reuse once the thread exits). +Explicit producers, on the other hand, are tied directly to their tokens' lifetimes (and are also recycled as needed). + +Full API (pseudocode): + + # Allocates more memory if necessary + enqueue(item) : bool + enqueue(prod_token, item) : bool + enqueue_bulk(item_first, count) : bool + enqueue_bulk(prod_token, item_first, count) : bool + + # Fails if not enough memory to enqueue + try_enqueue(item) : bool + try_enqueue(prod_token, item) : bool + try_enqueue_bulk(item_first, count) : bool + try_enqueue_bulk(prod_token, item_first, count) : bool + + # Attempts to dequeue from the queue (never allocates) + try_dequeue(item&) : bool + try_dequeue(cons_token, item&) : bool + try_dequeue_bulk(item_first, max) : size_t + try_dequeue_bulk(cons_token, item_first, max) : size_t + + # If you happen to know which producer you want to dequeue from + try_dequeue_from_producer(prod_token, item&) : bool + try_dequeue_bulk_from_producer(prod_token, item_first, max) : size_t + + # A not-necessarily-accurate count of the total number of elements + size_approx() : size_t + +## Blocking version + +As mentioned above, a full blocking wrapper of the queue is provided that adds +`wait_dequeue` and `wait_dequeue_bulk` methods in addition to the regular interface. +This wrapper is extremely low-overhead, but slightly less fast than the non-blocking +queue (due to the necessary bookkeeping involving a lightweight semaphore). + +There are also timed versions that allow a timeout to be specified (either in microseconds +or with a `std::chrono` object). + +The only major caveat with the blocking version is that you must be careful not to +destroy the queue while somebody is waiting on it. This generally means you need to +know for certain that another element is going to come along before you call one of +the blocking methods. (To be fair, the non-blocking version cannot be destroyed while +in use either, but it can be easier to coordinate the cleanup.) + +Blocking example: + + #include "blockingconcurrentqueue.h" + + moodycamel::BlockingConcurrentQueue q; + std::thread producer([&]() { + for (int i = 0; i != 100; ++i) { + std::this_thread::sleep_for(std::chrono::milliseconds(i % 10)); + q.enqueue(i); + } + }); + std::thread consumer([&]() { + for (int i = 0; i != 100; ++i) { + int item; + q.wait_dequeue(item); + assert(item == i); + + if (q.wait_dequeue_timed(item, std::chrono::milliseconds(5))) { + ++i; + assert(item == i); + } + } + }); + producer.join(); + consumer.join(); + + assert(q.size_approx() == 0); + +## Advanced features + +#### Tokens + +The queue can take advantage of extra per-producer and per-consumer storage if +it's available to speed up its operations. This takes the form of "tokens": +You can create a consumer token and/or a producer token for each thread or task +(tokens themselves are not thread-safe), and use the methods that accept a token +as their first parameter: + + moodycamel::ConcurrentQueue q; + + moodycamel::ProducerToken ptok(q); + q.enqueue(ptok, 17); + + moodycamel::ConsumerToken ctok(q); + int item; + q.try_dequeue(ctok, item); + assert(item == 17); + +If you happen to know which producer you want to consume from (e.g. in +a single-producer, multi-consumer scenario), you can use the `try_dequeue_from_producer` +methods, which accept a producer token instead of a consumer token, and cut some overhead. + +Note that tokens work with the blocking version of the queue too. + +When producing or consuming many elements, the most efficient way is to: + +1. Use the bulk methods of the queue with tokens +2. Failing that, use the bulk methods without tokens +3. Failing that, use the single-item methods with tokens +4. Failing that, use the single-item methods without tokens + +Having said that, don't create tokens willy-nilly -- ideally there would be +one token (of each kind) per thread. The queue will work with what it is +given, but it performs best when used with tokens. + +Note that tokens aren't actually tied to any given thread; it's not technically +required that they be local to the thread, only that they be used by a single +producer/consumer at a time. + +#### Bulk operations + +Thanks to the [novel design][blog] of the queue, it's just as easy to enqueue/dequeue multiple +items as it is to do one at a time. This means that overhead can be cut drastically for +bulk operations. Example syntax: + + moodycamel::ConcurrentQueue q; + + int items[] = { 1, 2, 3, 4, 5 }; + q.enqueue_bulk(items, 5); + + int results[5]; // Could also be any iterator + size_t count = q.try_dequeue_bulk(results, 5); + for (size_t i = 0; i != count; ++i) { + assert(results[i] == items[i]); + } + +#### Preallocation (correctly using `try_enqueue`) + +`try_enqueue`, unlike just plain `enqueue`, will never allocate memory. If there's not enough room in the +queue, it simply returns false. The key to using this method properly, then, is to ensure enough space is +pre-allocated for your desired maximum element count. + +The constructor accepts a count of the number of elements that it should reserve space for. Because the +queue works with blocks of elements, however, and not individual elements themselves, the value to pass +in order to obtain an effective number of pre-allocated element slots is non-obvious. + +First, be aware that the count passed is rounded up to the next multiple of the block size. Note that the +default block size is 32 (this can be changed via the traits). Second, once a slot in a block has been +enqueued to, that slot cannot be re-used until the rest of the block has completely been completely filled +up and then completely emptied. This affects the number of blocks you need in order to account for the +overhead of partially-filled blocks. Third, each producer (whether implicit or explicit) claims and recycles +blocks in a different manner, which again affects the number of blocks you need to account for a desired number of +usable slots. + +Suppose you want the queue to be able to hold at least `N` elements at any given time. Without delving too +deep into the rather arcane implementation details, here are some simple formulas for the number of elements +to request for pre-allocation in such a case. Note the division is intended to be arithmetic division and not +integer division (in order for `ceil()` to work). + +For explicit producers (using tokens to enqueue): + + (ceil(N / BLOCK_SIZE) + 1) * MAX_NUM_PRODUCERS * BLOCK_SIZE + +For implicit producers (no tokens): + + (ceil(N / BLOCK_SIZE) - 1 + 2 * MAX_NUM_PRODUCERS) * BLOCK_SIZE + +When using mixed producer types: + + ((ceil(N / BLOCK_SIZE) - 1) * (MAX_EXPLICIT_PRODUCERS + 1) + 2 * (MAX_IMPLICIT_PRODUCERS + MAX_EXPLICIT_PRODUCERS)) * BLOCK_SIZE + +If these formulas seem rather inconvenient, you can use the constructor overload that accepts the minimum +number of elements (`N`) and the maximum number of explicit and implicit producers directly, and let it do the +computation for you. + +Finally, it's important to note that because the queue is only eventually consistent and takes advantage of +weak memory ordering for speed, there's always a possibility that under contention `try_enqueue` will fail +even if the queue is correctly pre-sized for the desired number of elements. (e.g. A given thread may think that +the queue's full even when that's no longer the case.) So no matter what, you still need to handle the failure +case (perhaps looping until it succeeds), unless you don't mind dropping elements. + +#### Exception safety + +The queue is exception safe, and will never become corrupted if used with a type that may throw exceptions. +The queue itself never throws any exceptions (operations fail gracefully (return false) if memory allocation +fails instead of throwing `std::bad_alloc`). + +It is important to note that the guarantees of exception safety only hold if the element type never throws +from its destructor, and that any iterators passed into the queue (for bulk operations) never throw either. +Note that in particular this means `std::back_inserter` iterators must be used with care, since the vector +being inserted into may need to allocate and throw a `std::bad_alloc` exception from inside the iterator; +so be sure to reserve enough capacity in the target container first if you do this. + +The guarantees are presently as follows: +- Enqueue operations are rolled back completely if an exception is thrown from an element's constructor. + For bulk enqueue operations, this means that elements are copied instead of moved (in order to avoid + having only some of the objects be moved in the event of an exception). Non-bulk enqueues always use + the move constructor if one is available. +- If the assignment operator throws during a dequeue operation (both single and bulk), the element(s) are + considered dequeued regardless. In such a case, the dequeued elements are all properly destructed before + the exception is propagated, but there's no way to get the elements themselves back. +- Any exception that is thrown is propagated up the call stack, at which point the queue is in a consistent + state. + +Note: If any of your type's copy constructors/move constructors/assignment operators don't throw, be sure +to annotate them with `noexcept`; this will avoid the exception-checking overhead in the queue where possible +(even with zero-cost exceptions, there's still a code size impact that has to be taken into account). + +#### Traits + +The queue also supports a traits template argument which defines various types, constants, +and the memory allocation and deallocation functions that are to be used by the queue. The typical pattern +to providing your own traits is to create a class that inherits from the default traits +and override only the values you wish to change. Example: + + struct MyTraits : public moodycamel::ConcurrentQueueDefaultTraits + { + static const size_t BLOCK_SIZE = 256; // Use bigger blocks + }; + + moodycamel::ConcurrentQueue q; + +#### How to dequeue types without calling the constructor + +The normal way to dequeue an item is to pass in an existing object by reference, which +is then assigned to internally by the queue (using the move-assignment operator if possible). +This can pose a problem for types that are +expensive to construct or don't have a default constructor; fortunately, there is a simple +workaround: Create a wrapper class that copies the memory contents of the object when it +is assigned by the queue (a poor man's move, essentially). Note that this only works if +the object contains no internal pointers. Example: + + struct MyObjectMover { + inline void operator=(MyObject&& obj) { + std::memcpy(data, &obj, sizeof(MyObject)); + + // TODO: Cleanup obj so that when it's destructed by the queue + // it doesn't corrupt the data of the object we just moved it into + } + + inline MyObject& obj() { return *reinterpret_cast(data); } + + private: + align(alignof(MyObject)) char data[sizeof(MyObject)]; + }; + +A less dodgy alternative, if moves are cheap but default construction is not, is to use a +wrapper that defers construction until the object is assigned, enabling use of the move +constructor: + + struct MyObjectMover { + inline void operator=(MyObject&& x) { + new (data) MyObject(std::move(x)); + created = true; + } + + inline MyObject& obj() { + assert(created); + return *reinterpret_cast(data); + } + + ~MyObjectMover() { + if (created) + obj().~MyObject(); + } + + private: + align(alignof(MyObject)) char data[sizeof(MyObject)]; + bool created = false; + }; + +## Samples + +There are some more detailed samples [here][samples.md]. The source of +the [unit tests][unittest-src] and [benchmarks][benchmark-src] are available for reference as well. + +## Benchmarks + +See my blog post for some [benchmark results][benchmarks] (including versus `boost::lockfree::queue` and `tbb::concurrent_queue`), +or run the benchmarks yourself (requires MinGW and certain GnuWin32 utilities to build on Windows, or a recent +g++ on Linux): + + cd build + make benchmarks + bin/benchmarks + +The short version of the benchmarks is that it's so fast (especially the bulk methods), that if you're actually +using the queue to *do* anything, the queue won't be your bottleneck. + +## Tests (and bugs) + +I've written quite a few unit tests as well as a randomized long-running fuzz tester. I also ran the +core queue algorithm through the [CDSChecker][cdschecker] C++11 memory model model checker. Some of the +inner algorithms were tested separately using the [Relacy][relacy] model checker, and full integration +tests were also performed with Relacy. +I've tested +on Linux (Fedora 19) and Windows (7), but only on x86 processors so far (Intel and AMD). The code was +written to be platform-independent, however, and should work across all processors and OSes. + +Due to the complexity of the implementation and the difficult-to-test nature of lock-free code in general, +there may still be bugs. If anyone is seeing buggy behaviour, I'd like to hear about it! (Especially if +a unit test for it can be cooked up.) Just open an issue on GitHub. + +## License + +I'm releasing the source of this repository (with the exception of third-party code, i.e. the Boost queue +(used in the benchmarks for comparison), Intel's TBB library (ditto), CDSChecker, Relacy, and Jeff Preshing's +cross-platform semaphore, which all have their own licenses) +under a simplified BSD license. I'm also dual-licensing under the Boost Software License. +See the [LICENSE.md][license] file for more details. + +Note that lock-free programming is a patent minefield, and this code may very +well violate a pending patent (I haven't looked), though it does not to my present knowledge. +I did design and implement this queue from scratch. + +## Diving into the code + +If you're interested in the source code itself, it helps to have a rough idea of how it's laid out. This +section attempts to describe that. + +The queue is formed of several basic parts (listed here in roughly the order they appear in the source). There's the +helper functions (e.g. for rounding to a power of 2). There's the default traits of the queue, which contain the +constants and malloc/free functions used by the queue. There's the producer and consumer tokens. Then there's the queue's +public API itself, starting with the constructor, destructor, and swap/assignment methods. There's the public enqueue methods, +which are all wrappers around a small set of private enqueue methods found later on. There's the dequeue methods, which are +defined inline and are relatively straightforward. + +Then there's all the main internal data structures. First, there's a lock-free free list, used for recycling spent blocks (elements +are enqueued to blocks internally). Then there's the block structure itself, which has two different ways of tracking whether +it's fully emptied or not (remember, given two parallel consumers, there's no way to know which one will finish first) depending on where it's used. +Then there's a small base class for the two types of internal SPMC producer queues (one for explicit producers that holds onto memory +but attempts to be faster, and one for implicit ones which attempt to recycle more memory back into the parent but is a little slower). +The explicit producer is defined first, then the implicit one. They both contain the same general four methods: One to enqueue, one to +dequeue, one to enqueue in bulk, and one to dequeue in bulk. (Obviously they have constructors and destructors too, and helper methods.) +The main difference between them is how the block handling is done (they both use the same blocks, but in different ways, and map indices +to them in different ways). + +Finally, there's the miscellaneous internal methods: There's the ones that handle the initial block pool (populated when the queue is constructed), +and an abstract block pool that comprises the initial pool and any blocks on the free list. There's ones that handle the producer list +(a lock-free add-only linked list of all the producers in the system). There's ones that handle the implicit producer lookup table (which +is really a sort of specialized TLS lookup). And then there's some helper methods for allocating and freeing objects, and the data members +of the queue itself, followed lastly by the free-standing swap functions. + + +[blog]: http://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++ +[design]: http://moodycamel.com/blog/2014/detailed-design-of-a-lock-free-queue +[samples.md]: https://github.com/cameron314/concurrentqueue/blob/master/samples.md +[source]: https://github.com/cameron314/concurrentqueue +[concurrentqueue.h]: https://github.com/cameron314/concurrentqueue/blob/master/concurrentqueue.h +[blockingconcurrentqueue.h]: https://github.com/cameron314/concurrentqueue/blob/master/blockingconcurrentqueue.h +[unittest-src]: https://github.com/cameron314/concurrentqueue/tree/master/tests/unittests +[benchmarks]: http://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++#benchmarks +[benchmark-src]: https://github.com/cameron314/concurrentqueue/tree/master/benchmarks +[license]: https://github.com/cameron314/concurrentqueue/blob/master/LICENSE.md +[cdschecker]: http://demsky.eecs.uci.edu/c11modelchecker.html +[relacy]: http://www.1024cores.net/home/relacy-race-detector +[spsc]: https://github.com/cameron314/readerwriterqueue +[salsa]: http://webee.technion.ac.il/~idish/ftp/spaa049-gidron.pdf diff --git a/sources/LabSound/third_party/concurrentqueue/concurrentqueue.h b/sources/LabSound/third_party/concurrentqueue/concurrentqueue.h new file mode 100644 index 00000000..ff3156f7 --- /dev/null +++ b/sources/LabSound/third_party/concurrentqueue/concurrentqueue.h @@ -0,0 +1,3742 @@ +// Provides a C++11 implementation of a multi-producer, multi-consumer lock-free queue. +// An overview, including benchmark results, is provided here: +// http://moodycamel.com/blog/2014/a-fast-general-purpose-lock-free-queue-for-c++ +// The full design is also described in excruciating detail at: +// http://moodycamel.com/blog/2014/detailed-design-of-a-lock-free-queue + +// Simplified BSD license: +// Copyright (c) 2013-2020, Cameron Desrochers. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// - Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// - Redistributions in binary form must reproduce the above copyright notice, this list of +// conditions and the following disclaimer in the documentation and/or other materials +// provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +// OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +// TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Also dual-licensed under the Boost Software License (see LICENSE.md) + +#pragma once + +#if defined(__GNUC__) +// Disable -Wconversion warnings (spuriously triggered when Traits::size_t and +// Traits::index_t are set to < 32 bits, causing integer promotion, causing warnings +// upon assigning any computed values) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" + +#ifdef MCDBGQ_USE_RELACY +#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" +#endif +#endif + +#if defined(_MSC_VER) && (!defined(_HAS_CXX17) || !_HAS_CXX17) +// VS2019 with /W4 warns about constant conditional expressions but unless /std=c++17 or higher +// does not support `if constexpr`, so we have no choice but to simply disable the warning +#pragma warning(push) +#pragma warning(disable: 4127) // conditional expression is constant +#endif + +#if defined(__APPLE__) +#include "TargetConditionals.h" +#endif + +#ifdef MCDBGQ_USE_RELACY +#include "relacy/relacy_std.hpp" +#include "relacy_shims.h" +// We only use malloc/free anyway, and the delete macro messes up `= delete` method declarations. +// We'll override the default trait malloc ourselves without a macro. +#undef new +#undef delete +#undef malloc +#undef free +#else +#include // Requires C++11. Sorry VS2010. +#include +#endif +#include // for max_align_t +#include +#include +#include +#include +#include +#include +#include // for CHAR_BIT +#include +#include // partly for __WINPTHREADS_VERSION if on MinGW-w64 w/ POSIX threading + +// Platform-specific definitions of a numeric thread ID type and an invalid value +namespace moodycamel { namespace details { + template struct thread_id_converter { + typedef thread_id_t thread_id_numeric_size_t; + typedef thread_id_t thread_id_hash_t; + static thread_id_hash_t prehash(thread_id_t const& x) { return x; } + }; +} } +#if defined(MCDBGQ_USE_RELACY) +namespace moodycamel { namespace details { + typedef std::uint32_t thread_id_t; + static const thread_id_t invalid_thread_id = 0xFFFFFFFFU; + static const thread_id_t invalid_thread_id2 = 0xFFFFFFFEU; + static inline thread_id_t thread_id() { return rl::thread_index(); } +} } +#elif defined(_WIN32) || defined(__WINDOWS__) || defined(__WIN32__) +// No sense pulling in windows.h in a header, we'll manually declare the function +// we use and rely on backwards-compatibility for this not to break +extern "C" __declspec(dllimport) unsigned long __stdcall GetCurrentThreadId(void); +namespace moodycamel { namespace details { + static_assert(sizeof(unsigned long) == sizeof(std::uint32_t), "Expected size of unsigned long to be 32 bits on Windows"); + typedef std::uint32_t thread_id_t; + static const thread_id_t invalid_thread_id = 0; // See http://blogs.msdn.com/b/oldnewthing/archive/2004/02/23/78395.aspx + static const thread_id_t invalid_thread_id2 = 0xFFFFFFFFU; // Not technically guaranteed to be invalid, but is never used in practice. Note that all Win32 thread IDs are presently multiples of 4. + static inline thread_id_t thread_id() { return static_cast(::GetCurrentThreadId()); } +} } +#elif defined(__arm__) || defined(_M_ARM) || defined(__aarch64__) || (defined(__APPLE__) && TARGET_OS_IPHONE) +namespace moodycamel { namespace details { + static_assert(sizeof(std::thread::id) == 4 || sizeof(std::thread::id) == 8, "std::thread::id is expected to be either 4 or 8 bytes"); + + typedef std::thread::id thread_id_t; + static const thread_id_t invalid_thread_id; // Default ctor creates invalid ID + + // Note we don't define a invalid_thread_id2 since std::thread::id doesn't have one; it's + // only used if MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED is defined anyway, which it won't + // be. + static inline thread_id_t thread_id() { return std::this_thread::get_id(); } + + template struct thread_id_size { }; + template<> struct thread_id_size<4> { typedef std::uint32_t numeric_t; }; + template<> struct thread_id_size<8> { typedef std::uint64_t numeric_t; }; + + template<> struct thread_id_converter { + typedef thread_id_size::numeric_t thread_id_numeric_size_t; +#ifndef __APPLE__ + typedef std::size_t thread_id_hash_t; +#else + typedef thread_id_numeric_size_t thread_id_hash_t; +#endif + + static thread_id_hash_t prehash(thread_id_t const& x) + { +#ifndef __APPLE__ + return std::hash()(x); +#else + return *reinterpret_cast(&x); +#endif + } + }; +} } +#else +// Use a nice trick from this answer: http://stackoverflow.com/a/8438730/21475 +// In order to get a numeric thread ID in a platform-independent way, we use a thread-local +// static variable's address as a thread identifier :-) +#if defined(__GNUC__) || defined(__INTEL_COMPILER) +#define MOODYCAMEL_THREADLOCAL __thread +#elif defined(_MSC_VER) +#define MOODYCAMEL_THREADLOCAL __declspec(thread) +#else +// Assume C++11 compliant compiler +#define MOODYCAMEL_THREADLOCAL thread_local +#endif +namespace moodycamel { namespace details { + typedef std::uintptr_t thread_id_t; + static const thread_id_t invalid_thread_id = 0; // Address can't be nullptr + static const thread_id_t invalid_thread_id2 = 1; // Member accesses off a null pointer are also generally invalid. Plus it's not aligned. + inline thread_id_t thread_id() { static MOODYCAMEL_THREADLOCAL int x; return reinterpret_cast(&x); } +} } +#endif + +// Constexpr if +#ifndef MOODYCAMEL_CONSTEXPR_IF +#if (defined(_MSC_VER) && defined(_HAS_CXX17) && _HAS_CXX17) || __cplusplus > 201402L +#define MOODYCAMEL_CONSTEXPR_IF if constexpr +#define MOODYCAMEL_MAYBE_UNUSED [[maybe_unused]] +#else +#define MOODYCAMEL_CONSTEXPR_IF if +#define MOODYCAMEL_MAYBE_UNUSED +#endif +#endif + +// Exceptions +#ifndef MOODYCAMEL_EXCEPTIONS_ENABLED +#if (defined(_MSC_VER) && defined(_CPPUNWIND)) || (defined(__GNUC__) && defined(__EXCEPTIONS)) || (!defined(_MSC_VER) && !defined(__GNUC__)) +#define MOODYCAMEL_EXCEPTIONS_ENABLED +#endif +#endif +#ifdef MOODYCAMEL_EXCEPTIONS_ENABLED +#define MOODYCAMEL_TRY try +#define MOODYCAMEL_CATCH(...) catch(__VA_ARGS__) +#define MOODYCAMEL_RETHROW throw +#define MOODYCAMEL_THROW(expr) throw (expr) +#else +#define MOODYCAMEL_TRY MOODYCAMEL_CONSTEXPR_IF (true) +#define MOODYCAMEL_CATCH(...) else MOODYCAMEL_CONSTEXPR_IF (false) +#define MOODYCAMEL_RETHROW +#define MOODYCAMEL_THROW(expr) +#endif + +#ifndef MOODYCAMEL_NOEXCEPT +#if !defined(MOODYCAMEL_EXCEPTIONS_ENABLED) +#define MOODYCAMEL_NOEXCEPT +#define MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr) true +#define MOODYCAMEL_NOEXCEPT_ASSIGN(type, valueType, expr) true +#elif defined(_MSC_VER) && defined(_NOEXCEPT) && _MSC_VER < 1800 +// VS2012's std::is_nothrow_[move_]constructible is broken and returns true when it shouldn't :-( +// We have to assume *all* non-trivial constructors may throw on VS2012! +#define MOODYCAMEL_NOEXCEPT _NOEXCEPT +#define MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr) (std::is_rvalue_reference::value && std::is_move_constructible::value ? std::is_trivially_move_constructible::value : std::is_trivially_copy_constructible::value) +#define MOODYCAMEL_NOEXCEPT_ASSIGN(type, valueType, expr) ((std::is_rvalue_reference::value && std::is_move_assignable::value ? std::is_trivially_move_assignable::value || std::is_nothrow_move_assignable::value : std::is_trivially_copy_assignable::value || std::is_nothrow_copy_assignable::value) && MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr)) +#elif defined(_MSC_VER) && defined(_NOEXCEPT) && _MSC_VER < 1900 +#define MOODYCAMEL_NOEXCEPT _NOEXCEPT +#define MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr) (std::is_rvalue_reference::value && std::is_move_constructible::value ? std::is_trivially_move_constructible::value || std::is_nothrow_move_constructible::value : std::is_trivially_copy_constructible::value || std::is_nothrow_copy_constructible::value) +#define MOODYCAMEL_NOEXCEPT_ASSIGN(type, valueType, expr) ((std::is_rvalue_reference::value && std::is_move_assignable::value ? std::is_trivially_move_assignable::value || std::is_nothrow_move_assignable::value : std::is_trivially_copy_assignable::value || std::is_nothrow_copy_assignable::value) && MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr)) +#else +#define MOODYCAMEL_NOEXCEPT noexcept +#define MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr) noexcept(expr) +#define MOODYCAMEL_NOEXCEPT_ASSIGN(type, valueType, expr) noexcept(expr) +#endif +#endif + +#ifndef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED +#ifdef MCDBGQ_USE_RELACY +#define MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED +#else +// VS2013 doesn't support `thread_local`, and MinGW-w64 w/ POSIX threading has a crippling bug: http://sourceforge.net/p/mingw-w64/bugs/445 +// g++ <=4.7 doesn't support thread_local either. +// Finally, iOS/ARM doesn't have support for it either, and g++/ARM allows it to compile but it's unconfirmed to actually work +#if (!defined(_MSC_VER) || _MSC_VER >= 1900) && (!defined(__MINGW32__) && !defined(__MINGW64__) || !defined(__WINPTHREADS_VERSION)) && (!defined(__GNUC__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && (!defined(__APPLE__) || !TARGET_OS_IPHONE) && !defined(__arm__) && !defined(_M_ARM) && !defined(__aarch64__) +// Assume `thread_local` is fully supported in all other C++11 compilers/platforms +//#define MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED // always disabled for now since several users report having problems with it on +#endif +#endif +#endif + +// VS2012 doesn't support deleted functions. +// In this case, we declare the function normally but don't define it. A link error will be generated if the function is called. +#ifndef MOODYCAMEL_DELETE_FUNCTION +#if defined(_MSC_VER) && _MSC_VER < 1800 +#define MOODYCAMEL_DELETE_FUNCTION +#else +#define MOODYCAMEL_DELETE_FUNCTION = delete +#endif +#endif + +namespace moodycamel { namespace details { +#ifndef MOODYCAMEL_ALIGNAS +// VS2013 doesn't support alignas or alignof, and align() requires a constant literal +#if defined(_MSC_VER) && _MSC_VER <= 1800 +#define MOODYCAMEL_ALIGNAS(alignment) __declspec(align(alignment)) +#define MOODYCAMEL_ALIGNOF(obj) __alignof(obj) +#define MOODYCAMEL_ALIGNED_TYPE_LIKE(T, obj) typename details::Vs2013Aligned::value, T>::type + template struct Vs2013Aligned { }; // default, unsupported alignment + template struct Vs2013Aligned<1, T> { typedef __declspec(align(1)) T type; }; + template struct Vs2013Aligned<2, T> { typedef __declspec(align(2)) T type; }; + template struct Vs2013Aligned<4, T> { typedef __declspec(align(4)) T type; }; + template struct Vs2013Aligned<8, T> { typedef __declspec(align(8)) T type; }; + template struct Vs2013Aligned<16, T> { typedef __declspec(align(16)) T type; }; + template struct Vs2013Aligned<32, T> { typedef __declspec(align(32)) T type; }; + template struct Vs2013Aligned<64, T> { typedef __declspec(align(64)) T type; }; + template struct Vs2013Aligned<128, T> { typedef __declspec(align(128)) T type; }; + template struct Vs2013Aligned<256, T> { typedef __declspec(align(256)) T type; }; +#else + template struct identity { typedef T type; }; +#define MOODYCAMEL_ALIGNAS(alignment) alignas(alignment) +#define MOODYCAMEL_ALIGNOF(obj) alignof(obj) +#define MOODYCAMEL_ALIGNED_TYPE_LIKE(T, obj) alignas(alignof(obj)) typename details::identity::type +#endif +#endif +} } + + +// TSAN can false report races in lock-free code. To enable TSAN to be used from projects that use this one, +// we can apply per-function compile-time suppression. +// See https://clang.llvm.org/docs/ThreadSanitizer.html#has-feature-thread-sanitizer +#define MOODYCAMEL_NO_TSAN +#if defined(__has_feature) + #if __has_feature(thread_sanitizer) + #undef MOODYCAMEL_NO_TSAN + #define MOODYCAMEL_NO_TSAN __attribute__((no_sanitize("thread"))) + #endif // TSAN +#endif // TSAN + +// Compiler-specific likely/unlikely hints +namespace moodycamel { namespace details { +#if defined(__GNUC__) + static inline bool (likely)(bool x) { return __builtin_expect((x), true); } + static inline bool (unlikely)(bool x) { return __builtin_expect((x), false); } +#else + static inline bool (likely)(bool x) { return x; } + static inline bool (unlikely)(bool x) { return x; } +#endif +} } + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG +#include "internal/concurrentqueue_internal_debug.h" +#endif + +namespace moodycamel { +namespace details { + template + struct const_numeric_max { + static_assert(std::is_integral::value, "const_numeric_max can only be used with integers"); + static const T value = std::numeric_limits::is_signed + ? (static_cast(1) << (sizeof(T) * CHAR_BIT - 1)) - static_cast(1) + : static_cast(-1); + }; + +#if defined(__GLIBCXX__) + typedef ::max_align_t std_max_align_t; // libstdc++ forgot to add it to std:: for a while +#else + typedef std::max_align_t std_max_align_t; // Others (e.g. MSVC) insist it can *only* be accessed via std:: +#endif + + // Some platforms have incorrectly set max_align_t to a type with <8 bytes alignment even while supporting + // 8-byte aligned scalar values (*cough* 32-bit iOS). Work around this with our own union. See issue #64. + typedef union { + std_max_align_t x; + long long y; + void* z; + } max_align_t; +} + +// Default traits for the ConcurrentQueue. To change some of the +// traits without re-implementing all of them, inherit from this +// struct and shadow the declarations you wish to be different; +// since the traits are used as a template type parameter, the +// shadowed declarations will be used where defined, and the defaults +// otherwise. +struct ConcurrentQueueDefaultTraits +{ + // General-purpose size type. std::size_t is strongly recommended. + typedef std::size_t size_t; + + // The type used for the enqueue and dequeue indices. Must be at least as + // large as size_t. Should be significantly larger than the number of elements + // you expect to hold at once, especially if you have a high turnover rate; + // for example, on 32-bit x86, if you expect to have over a hundred million + // elements or pump several million elements through your queue in a very + // short space of time, using a 32-bit type *may* trigger a race condition. + // A 64-bit int type is recommended in that case, and in practice will + // prevent a race condition no matter the usage of the queue. Note that + // whether the queue is lock-free with a 64-int type depends on the whether + // std::atomic is lock-free, which is platform-specific. + typedef std::size_t index_t; + + // Internally, all elements are enqueued and dequeued from multi-element + // blocks; this is the smallest controllable unit. If you expect few elements + // but many producers, a smaller block size should be favoured. For few producers + // and/or many elements, a larger block size is preferred. A sane default + // is provided. Must be a power of 2. + static const size_t BLOCK_SIZE = 32; + + // For explicit producers (i.e. when using a producer token), the block is + // checked for being empty by iterating through a list of flags, one per element. + // For large block sizes, this is too inefficient, and switching to an atomic + // counter-based approach is faster. The switch is made for block sizes strictly + // larger than this threshold. + static const size_t EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD = 32; + + // How many full blocks can be expected for a single explicit producer? This should + // reflect that number's maximum for optimal performance. Must be a power of 2. + static const size_t EXPLICIT_INITIAL_INDEX_SIZE = 32; + + // How many full blocks can be expected for a single implicit producer? This should + // reflect that number's maximum for optimal performance. Must be a power of 2. + static const size_t IMPLICIT_INITIAL_INDEX_SIZE = 32; + + // The initial size of the hash table mapping thread IDs to implicit producers. + // Note that the hash is resized every time it becomes half full. + // Must be a power of two, and either 0 or at least 1. If 0, implicit production + // (using the enqueue methods without an explicit producer token) is disabled. + static const size_t INITIAL_IMPLICIT_PRODUCER_HASH_SIZE = 32; + + // Controls the number of items that an explicit consumer (i.e. one with a token) + // must consume before it causes all consumers to rotate and move on to the next + // internal queue. + static const std::uint32_t EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE = 256; + + // The maximum number of elements (inclusive) that can be enqueued to a sub-queue. + // Enqueue operations that would cause this limit to be surpassed will fail. Note + // that this limit is enforced at the block level (for performance reasons), i.e. + // it's rounded up to the nearest block size. + static const size_t MAX_SUBQUEUE_SIZE = details::const_numeric_max::value; + + // The number of times to spin before sleeping when waiting on a semaphore. + // Recommended values are on the order of 1000-10000 unless the number of + // consumer threads exceeds the number of idle cores (in which case try 0-100). + // Only affects instances of the BlockingConcurrentQueue. + static const int MAX_SEMA_SPINS = 10000; + + +#ifndef MCDBGQ_USE_RELACY + // Memory allocation can be customized if needed. + // malloc should return nullptr on failure, and handle alignment like std::malloc. +#if defined(malloc) || defined(free) + // Gah, this is 2015, stop defining macros that break standard code already! + // Work around malloc/free being special macros: + static inline void* WORKAROUND_malloc(size_t size) { return malloc(size); } + static inline void WORKAROUND_free(void* ptr) { return free(ptr); } + static inline void* (malloc)(size_t size) { return WORKAROUND_malloc(size); } + static inline void (free)(void* ptr) { return WORKAROUND_free(ptr); } +#else + static inline void* malloc(size_t size) { return std::malloc(size); } + static inline void free(void* ptr) { return std::free(ptr); } +#endif +#else + // Debug versions when running under the Relacy race detector (ignore + // these in user code) + static inline void* malloc(size_t size) { return rl::rl_malloc(size, $); } + static inline void free(void* ptr) { return rl::rl_free(ptr, $); } +#endif +}; + + +// When producing or consuming many elements, the most efficient way is to: +// 1) Use one of the bulk-operation methods of the queue with a token +// 2) Failing that, use the bulk-operation methods without a token +// 3) Failing that, create a token and use that with the single-item methods +// 4) Failing that, use the single-parameter methods of the queue +// Having said that, don't create tokens willy-nilly -- ideally there should be +// a maximum of one token per thread (of each kind). +struct ProducerToken; +struct ConsumerToken; + +template class ConcurrentQueue; +template class BlockingConcurrentQueue; +class ConcurrentQueueTests; + + +namespace details +{ + struct ConcurrentQueueProducerTypelessBase + { + ConcurrentQueueProducerTypelessBase* next; + std::atomic inactive; + ProducerToken* token; + + ConcurrentQueueProducerTypelessBase() + : next(nullptr), inactive(false), token(nullptr) + { + } + }; + + template struct _hash_32_or_64 { + static inline std::uint32_t hash(std::uint32_t h) + { + // MurmurHash3 finalizer -- see https://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp + // Since the thread ID is already unique, all we really want to do is propagate that + // uniqueness evenly across all the bits, so that we can use a subset of the bits while + // reducing collisions significantly + h ^= h >> 16; + h *= 0x85ebca6b; + h ^= h >> 13; + h *= 0xc2b2ae35; + return h ^ (h >> 16); + } + }; + template<> struct _hash_32_or_64<1> { + static inline std::uint64_t hash(std::uint64_t h) + { + h ^= h >> 33; + h *= 0xff51afd7ed558ccd; + h ^= h >> 33; + h *= 0xc4ceb9fe1a85ec53; + return h ^ (h >> 33); + } + }; + template struct hash_32_or_64 : public _hash_32_or_64<(size > 4)> { }; + + static inline size_t hash_thread_id(thread_id_t id) + { + static_assert(sizeof(thread_id_t) <= 8, "Expected a platform where thread IDs are at most 64-bit values"); + return static_cast(hash_32_or_64::thread_id_hash_t)>::hash( + thread_id_converter::prehash(id))); + } + + template + static inline bool circular_less_than(T a, T b) + { +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable: 4554) +#endif + static_assert(std::is_integral::value && !std::numeric_limits::is_signed, "circular_less_than is intended to be used only with unsigned integer types"); + return static_cast(a - b) > static_cast(static_cast(1) << static_cast(sizeof(T) * CHAR_BIT - 1)); +#ifdef _MSC_VER +#pragma warning(pop) +#endif + } + + template + static inline char* align_for(char* ptr) + { + const std::size_t alignment = std::alignment_of::value; + return ptr + (alignment - (reinterpret_cast(ptr) % alignment)) % alignment; + } + + template + static inline T ceil_to_pow_2(T x) + { + static_assert(std::is_integral::value && !std::numeric_limits::is_signed, "ceil_to_pow_2 is intended to be used only with unsigned integer types"); + + // Adapted from http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 + --x; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + for (std::size_t i = 1; i < sizeof(T); i <<= 1) { + x |= x >> (i << 3); + } + ++x; + return x; + } + + template + static inline void swap_relaxed(std::atomic& left, std::atomic& right) + { + T temp = std::move(left.load(std::memory_order_relaxed)); + left.store(std::move(right.load(std::memory_order_relaxed)), std::memory_order_relaxed); + right.store(std::move(temp), std::memory_order_relaxed); + } + + template + static inline T const& nomove(T const& x) + { + return x; + } + + template + struct nomove_if + { + template + static inline T const& eval(T const& x) + { + return x; + } + }; + + template<> + struct nomove_if + { + template + static inline auto eval(U&& x) + -> decltype(std::forward(x)) + { + return std::forward(x); + } + }; + + template + static inline auto deref_noexcept(It& it) MOODYCAMEL_NOEXCEPT -> decltype(*it) + { + return *it; + } + +#if defined(__clang__) || !defined(__GNUC__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + template struct is_trivially_destructible : std::is_trivially_destructible { }; +#else + template struct is_trivially_destructible : std::has_trivial_destructor { }; +#endif + +#ifdef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED +#ifdef MCDBGQ_USE_RELACY + typedef RelacyThreadExitListener ThreadExitListener; + typedef RelacyThreadExitNotifier ThreadExitNotifier; +#else + struct ThreadExitListener + { + typedef void (*callback_t)(void*); + callback_t callback; + void* userData; + + ThreadExitListener* next; // reserved for use by the ThreadExitNotifier + }; + + + class ThreadExitNotifier + { + public: + static void subscribe(ThreadExitListener* listener) + { + auto& tlsInst = instance(); + listener->next = tlsInst.tail; + tlsInst.tail = listener; + } + + static void unsubscribe(ThreadExitListener* listener) + { + auto& tlsInst = instance(); + ThreadExitListener** prev = &tlsInst.tail; + for (auto ptr = tlsInst.tail; ptr != nullptr; ptr = ptr->next) { + if (ptr == listener) { + *prev = ptr->next; + break; + } + prev = &ptr->next; + } + } + + private: + ThreadExitNotifier() : tail(nullptr) { } + ThreadExitNotifier(ThreadExitNotifier const&) MOODYCAMEL_DELETE_FUNCTION; + ThreadExitNotifier& operator=(ThreadExitNotifier const&) MOODYCAMEL_DELETE_FUNCTION; + + ~ThreadExitNotifier() + { + // This thread is about to exit, let everyone know! + assert(this == &instance() && "If this assert fails, you likely have a buggy compiler! Change the preprocessor conditions such that MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED is no longer defined."); + for (auto ptr = tail; ptr != nullptr; ptr = ptr->next) { + ptr->callback(ptr->userData); + } + } + + // Thread-local + static inline ThreadExitNotifier& instance() + { + static thread_local ThreadExitNotifier notifier; + return notifier; + } + + private: + ThreadExitListener* tail; + }; +#endif +#endif + + template struct static_is_lock_free_num { enum { value = 0 }; }; + template<> struct static_is_lock_free_num { enum { value = ATOMIC_CHAR_LOCK_FREE }; }; + template<> struct static_is_lock_free_num { enum { value = ATOMIC_SHORT_LOCK_FREE }; }; + template<> struct static_is_lock_free_num { enum { value = ATOMIC_INT_LOCK_FREE }; }; + template<> struct static_is_lock_free_num { enum { value = ATOMIC_LONG_LOCK_FREE }; }; + template<> struct static_is_lock_free_num { enum { value = ATOMIC_LLONG_LOCK_FREE }; }; + template struct static_is_lock_free : static_is_lock_free_num::type> { }; + template<> struct static_is_lock_free { enum { value = ATOMIC_BOOL_LOCK_FREE }; }; + template struct static_is_lock_free { enum { value = ATOMIC_POINTER_LOCK_FREE }; }; +} + + +struct ProducerToken +{ + template + explicit ProducerToken(ConcurrentQueue& queue); + + template + explicit ProducerToken(BlockingConcurrentQueue& queue); + + ProducerToken(ProducerToken&& other) MOODYCAMEL_NOEXCEPT + : producer(other.producer) + { + other.producer = nullptr; + if (producer != nullptr) { + producer->token = this; + } + } + + inline ProducerToken& operator=(ProducerToken&& other) MOODYCAMEL_NOEXCEPT + { + swap(other); + return *this; + } + + void swap(ProducerToken& other) MOODYCAMEL_NOEXCEPT + { + std::swap(producer, other.producer); + if (producer != nullptr) { + producer->token = this; + } + if (other.producer != nullptr) { + other.producer->token = &other; + } + } + + // A token is always valid unless: + // 1) Memory allocation failed during construction + // 2) It was moved via the move constructor + // (Note: assignment does a swap, leaving both potentially valid) + // 3) The associated queue was destroyed + // Note that if valid() returns true, that only indicates + // that the token is valid for use with a specific queue, + // but not which one; that's up to the user to track. + inline bool valid() const { return producer != nullptr; } + + ~ProducerToken() + { + if (producer != nullptr) { + producer->token = nullptr; + producer->inactive.store(true, std::memory_order_release); + } + } + + // Disable copying and assignment + ProducerToken(ProducerToken const&) MOODYCAMEL_DELETE_FUNCTION; + ProducerToken& operator=(ProducerToken const&) MOODYCAMEL_DELETE_FUNCTION; + +private: + template friend class ConcurrentQueue; + friend class ConcurrentQueueTests; + +protected: + details::ConcurrentQueueProducerTypelessBase* producer; +}; + + +struct ConsumerToken +{ + template + explicit ConsumerToken(ConcurrentQueue& q); + + template + explicit ConsumerToken(BlockingConcurrentQueue& q); + + ConsumerToken(ConsumerToken&& other) MOODYCAMEL_NOEXCEPT + : initialOffset(other.initialOffset), lastKnownGlobalOffset(other.lastKnownGlobalOffset), itemsConsumedFromCurrent(other.itemsConsumedFromCurrent), currentProducer(other.currentProducer), desiredProducer(other.desiredProducer) + { + } + + inline ConsumerToken& operator=(ConsumerToken&& other) MOODYCAMEL_NOEXCEPT + { + swap(other); + return *this; + } + + void swap(ConsumerToken& other) MOODYCAMEL_NOEXCEPT + { + std::swap(initialOffset, other.initialOffset); + std::swap(lastKnownGlobalOffset, other.lastKnownGlobalOffset); + std::swap(itemsConsumedFromCurrent, other.itemsConsumedFromCurrent); + std::swap(currentProducer, other.currentProducer); + std::swap(desiredProducer, other.desiredProducer); + } + + // Disable copying and assignment + ConsumerToken(ConsumerToken const&) MOODYCAMEL_DELETE_FUNCTION; + ConsumerToken& operator=(ConsumerToken const&) MOODYCAMEL_DELETE_FUNCTION; + +private: + template friend class ConcurrentQueue; + friend class ConcurrentQueueTests; + +private: // but shared with ConcurrentQueue + std::uint32_t initialOffset; + std::uint32_t lastKnownGlobalOffset; + std::uint32_t itemsConsumedFromCurrent; + details::ConcurrentQueueProducerTypelessBase* currentProducer; + details::ConcurrentQueueProducerTypelessBase* desiredProducer; +}; + +// Need to forward-declare this swap because it's in a namespace. +// See http://stackoverflow.com/questions/4492062/why-does-a-c-friend-class-need-a-forward-declaration-only-in-other-namespaces +template +inline void swap(typename ConcurrentQueue::ImplicitProducerKVP& a, typename ConcurrentQueue::ImplicitProducerKVP& b) MOODYCAMEL_NOEXCEPT; + + +template +class ConcurrentQueue +{ +public: + typedef ::moodycamel::ProducerToken producer_token_t; + typedef ::moodycamel::ConsumerToken consumer_token_t; + + typedef typename Traits::index_t index_t; + typedef typename Traits::size_t size_t; + + static const size_t BLOCK_SIZE = static_cast(Traits::BLOCK_SIZE); + static const size_t EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD = static_cast(Traits::EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD); + static const size_t EXPLICIT_INITIAL_INDEX_SIZE = static_cast(Traits::EXPLICIT_INITIAL_INDEX_SIZE); + static const size_t IMPLICIT_INITIAL_INDEX_SIZE = static_cast(Traits::IMPLICIT_INITIAL_INDEX_SIZE); + static const size_t INITIAL_IMPLICIT_PRODUCER_HASH_SIZE = static_cast(Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE); + static const std::uint32_t EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE = static_cast(Traits::EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE); +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable: 4307) // + integral constant overflow (that's what the ternary expression is for!) +#pragma warning(disable: 4309) // static_cast: Truncation of constant value +#endif + static const size_t MAX_SUBQUEUE_SIZE = (details::const_numeric_max::value - static_cast(Traits::MAX_SUBQUEUE_SIZE) < BLOCK_SIZE) ? details::const_numeric_max::value : ((static_cast(Traits::MAX_SUBQUEUE_SIZE) + (BLOCK_SIZE - 1)) / BLOCK_SIZE * BLOCK_SIZE); +#ifdef _MSC_VER +#pragma warning(pop) +#endif + + static_assert(!std::numeric_limits::is_signed && std::is_integral::value, "Traits::size_t must be an unsigned integral type"); + static_assert(!std::numeric_limits::is_signed && std::is_integral::value, "Traits::index_t must be an unsigned integral type"); + static_assert(sizeof(index_t) >= sizeof(size_t), "Traits::index_t must be at least as wide as Traits::size_t"); + static_assert((BLOCK_SIZE > 1) && !(BLOCK_SIZE & (BLOCK_SIZE - 1)), "Traits::BLOCK_SIZE must be a power of 2 (and at least 2)"); + static_assert((EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD > 1) && !(EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD & (EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD - 1)), "Traits::EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD must be a power of 2 (and greater than 1)"); + static_assert((EXPLICIT_INITIAL_INDEX_SIZE > 1) && !(EXPLICIT_INITIAL_INDEX_SIZE & (EXPLICIT_INITIAL_INDEX_SIZE - 1)), "Traits::EXPLICIT_INITIAL_INDEX_SIZE must be a power of 2 (and greater than 1)"); + static_assert((IMPLICIT_INITIAL_INDEX_SIZE > 1) && !(IMPLICIT_INITIAL_INDEX_SIZE & (IMPLICIT_INITIAL_INDEX_SIZE - 1)), "Traits::IMPLICIT_INITIAL_INDEX_SIZE must be a power of 2 (and greater than 1)"); + static_assert((INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) || !(INITIAL_IMPLICIT_PRODUCER_HASH_SIZE & (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE - 1)), "Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE must be a power of 2"); + static_assert(INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0 || INITIAL_IMPLICIT_PRODUCER_HASH_SIZE >= 1, "Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE must be at least 1 (or 0 to disable implicit enqueueing)"); + +public: + // Creates a queue with at least `capacity` element slots; note that the + // actual number of elements that can be inserted without additional memory + // allocation depends on the number of producers and the block size (e.g. if + // the block size is equal to `capacity`, only a single block will be allocated + // up-front, which means only a single producer will be able to enqueue elements + // without an extra allocation -- blocks aren't shared between producers). + // This method is not thread safe -- it is up to the user to ensure that the + // queue is fully constructed before it starts being used by other threads (this + // includes making the memory effects of construction visible, possibly with a + // memory barrier). + explicit ConcurrentQueue(size_t capacity = 6 * BLOCK_SIZE) + : producerListTail(nullptr), + producerCount(0), + initialBlockPoolIndex(0), + nextExplicitConsumerId(0), + globalExplicitConsumerOffset(0) + { + implicitProducerHashResizeInProgress.clear(std::memory_order_relaxed); + populate_initial_implicit_producer_hash(); + populate_initial_block_list(capacity / BLOCK_SIZE + ((capacity & (BLOCK_SIZE - 1)) == 0 ? 0 : 1)); + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + // Track all the producers using a fully-resolved typed list for + // each kind; this makes it possible to debug them starting from + // the root queue object (otherwise wacky casts are needed that + // don't compile in the debugger's expression evaluator). + explicitProducers.store(nullptr, std::memory_order_relaxed); + implicitProducers.store(nullptr, std::memory_order_relaxed); +#endif + } + + // Computes the correct amount of pre-allocated blocks for you based + // on the minimum number of elements you want available at any given + // time, and the maximum concurrent number of each type of producer. + ConcurrentQueue(size_t minCapacity, size_t maxExplicitProducers, size_t maxImplicitProducers) + : producerListTail(nullptr), + producerCount(0), + initialBlockPoolIndex(0), + nextExplicitConsumerId(0), + globalExplicitConsumerOffset(0) + { + implicitProducerHashResizeInProgress.clear(std::memory_order_relaxed); + populate_initial_implicit_producer_hash(); + size_t blocks = (((minCapacity + BLOCK_SIZE - 1) / BLOCK_SIZE) - 1) * (maxExplicitProducers + 1) + 2 * (maxExplicitProducers + maxImplicitProducers); + populate_initial_block_list(blocks); + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + explicitProducers.store(nullptr, std::memory_order_relaxed); + implicitProducers.store(nullptr, std::memory_order_relaxed); +#endif + } + + // Note: The queue should not be accessed concurrently while it's + // being deleted. It's up to the user to synchronize this. + // This method is not thread safe. + ~ConcurrentQueue() + { + // Destroy producers + auto ptr = producerListTail.load(std::memory_order_relaxed); + while (ptr != nullptr) { + auto next = ptr->next_prod(); + if (ptr->token != nullptr) { + ptr->token->producer = nullptr; + } + destroy(ptr); + ptr = next; + } + + // Destroy implicit producer hash tables + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE != 0) { + auto hash = implicitProducerHash.load(std::memory_order_relaxed); + while (hash != nullptr) { + auto prev = hash->prev; + if (prev != nullptr) { // The last hash is part of this object and was not allocated dynamically + for (size_t i = 0; i != hash->capacity; ++i) { + hash->entries[i].~ImplicitProducerKVP(); + } + hash->~ImplicitProducerHash(); + (Traits::free)(hash); + } + hash = prev; + } + } + + // Destroy global free list + auto block = freeList.head_unsafe(); + while (block != nullptr) { + auto next = block->freeListNext.load(std::memory_order_relaxed); + if (block->dynamicallyAllocated) { + destroy(block); + } + block = next; + } + + // Destroy initial free list + destroy_array(initialBlockPool, initialBlockPoolSize); + } + + // Disable copying and copy assignment + ConcurrentQueue(ConcurrentQueue const&) MOODYCAMEL_DELETE_FUNCTION; + ConcurrentQueue& operator=(ConcurrentQueue const&) MOODYCAMEL_DELETE_FUNCTION; + + // Moving is supported, but note that it is *not* a thread-safe operation. + // Nobody can use the queue while it's being moved, and the memory effects + // of that move must be propagated to other threads before they can use it. + // Note: When a queue is moved, its tokens are still valid but can only be + // used with the destination queue (i.e. semantically they are moved along + // with the queue itself). + ConcurrentQueue(ConcurrentQueue&& other) MOODYCAMEL_NOEXCEPT + : producerListTail(other.producerListTail.load(std::memory_order_relaxed)), + producerCount(other.producerCount.load(std::memory_order_relaxed)), + initialBlockPoolIndex(other.initialBlockPoolIndex.load(std::memory_order_relaxed)), + initialBlockPool(other.initialBlockPool), + initialBlockPoolSize(other.initialBlockPoolSize), + freeList(std::move(other.freeList)), + nextExplicitConsumerId(other.nextExplicitConsumerId.load(std::memory_order_relaxed)), + globalExplicitConsumerOffset(other.globalExplicitConsumerOffset.load(std::memory_order_relaxed)) + { + // Move the other one into this, and leave the other one as an empty queue + implicitProducerHashResizeInProgress.clear(std::memory_order_relaxed); + populate_initial_implicit_producer_hash(); + swap_implicit_producer_hashes(other); + + other.producerListTail.store(nullptr, std::memory_order_relaxed); + other.producerCount.store(0, std::memory_order_relaxed); + other.nextExplicitConsumerId.store(0, std::memory_order_relaxed); + other.globalExplicitConsumerOffset.store(0, std::memory_order_relaxed); + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + explicitProducers.store(other.explicitProducers.load(std::memory_order_relaxed), std::memory_order_relaxed); + other.explicitProducers.store(nullptr, std::memory_order_relaxed); + implicitProducers.store(other.implicitProducers.load(std::memory_order_relaxed), std::memory_order_relaxed); + other.implicitProducers.store(nullptr, std::memory_order_relaxed); +#endif + + other.initialBlockPoolIndex.store(0, std::memory_order_relaxed); + other.initialBlockPoolSize = 0; + other.initialBlockPool = nullptr; + + reown_producers(); + } + + inline ConcurrentQueue& operator=(ConcurrentQueue&& other) MOODYCAMEL_NOEXCEPT + { + return swap_internal(other); + } + + // Swaps this queue's state with the other's. Not thread-safe. + // Swapping two queues does not invalidate their tokens, however + // the tokens that were created for one queue must be used with + // only the swapped queue (i.e. the tokens are tied to the + // queue's movable state, not the object itself). + inline void swap(ConcurrentQueue& other) MOODYCAMEL_NOEXCEPT + { + swap_internal(other); + } + +private: + ConcurrentQueue& swap_internal(ConcurrentQueue& other) + { + if (this == &other) { + return *this; + } + + details::swap_relaxed(producerListTail, other.producerListTail); + details::swap_relaxed(producerCount, other.producerCount); + details::swap_relaxed(initialBlockPoolIndex, other.initialBlockPoolIndex); + std::swap(initialBlockPool, other.initialBlockPool); + std::swap(initialBlockPoolSize, other.initialBlockPoolSize); + freeList.swap(other.freeList); + details::swap_relaxed(nextExplicitConsumerId, other.nextExplicitConsumerId); + details::swap_relaxed(globalExplicitConsumerOffset, other.globalExplicitConsumerOffset); + + swap_implicit_producer_hashes(other); + + reown_producers(); + other.reown_producers(); + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + details::swap_relaxed(explicitProducers, other.explicitProducers); + details::swap_relaxed(implicitProducers, other.implicitProducers); +#endif + + return *this; + } + +public: + // Enqueues a single item (by copying it). + // Allocates memory if required. Only fails if memory allocation fails (or implicit + // production is disabled because Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE is 0, + // or Traits::MAX_SUBQUEUE_SIZE has been defined and would be surpassed). + // Thread-safe. + inline bool enqueue(T const& item) + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) return false; + else return inner_enqueue(item); + } + + // Enqueues a single item (by moving it, if possible). + // Allocates memory if required. Only fails if memory allocation fails (or implicit + // production is disabled because Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE is 0, + // or Traits::MAX_SUBQUEUE_SIZE has been defined and would be surpassed). + // Thread-safe. + inline bool enqueue(T&& item) + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) return false; + else return inner_enqueue(std::move(item)); + } + + // Enqueues a single item (by copying it) using an explicit producer token. + // Allocates memory if required. Only fails if memory allocation fails (or + // Traits::MAX_SUBQUEUE_SIZE has been defined and would be surpassed). + // Thread-safe. + inline bool enqueue(producer_token_t const& token, T const& item) + { + return inner_enqueue(token, item); + } + + // Enqueues a single item (by moving it, if possible) using an explicit producer token. + // Allocates memory if required. Only fails if memory allocation fails (or + // Traits::MAX_SUBQUEUE_SIZE has been defined and would be surpassed). + // Thread-safe. + inline bool enqueue(producer_token_t const& token, T&& item) + { + return inner_enqueue(token, std::move(item)); + } + + // Enqueues several items. + // Allocates memory if required. Only fails if memory allocation fails (or + // implicit production is disabled because Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE + // is 0, or Traits::MAX_SUBQUEUE_SIZE has been defined and would be surpassed). + // Note: Use std::make_move_iterator if the elements should be moved instead of copied. + // Thread-safe. + template + bool enqueue_bulk(It itemFirst, size_t count) + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) return false; + else return inner_enqueue_bulk(itemFirst, count); + } + + // Enqueues several items using an explicit producer token. + // Allocates memory if required. Only fails if memory allocation fails + // (or Traits::MAX_SUBQUEUE_SIZE has been defined and would be surpassed). + // Note: Use std::make_move_iterator if the elements should be moved + // instead of copied. + // Thread-safe. + template + bool enqueue_bulk(producer_token_t const& token, It itemFirst, size_t count) + { + return inner_enqueue_bulk(token, itemFirst, count); + } + + // Enqueues a single item (by copying it). + // Does not allocate memory. Fails if not enough room to enqueue (or implicit + // production is disabled because Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE + // is 0). + // Thread-safe. + inline bool try_enqueue(T const& item) + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) return false; + else return inner_enqueue(item); + } + + // Enqueues a single item (by moving it, if possible). + // Does not allocate memory (except for one-time implicit producer). + // Fails if not enough room to enqueue (or implicit production is + // disabled because Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE is 0). + // Thread-safe. + inline bool try_enqueue(T&& item) + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) return false; + else return inner_enqueue(std::move(item)); + } + + // Enqueues a single item (by copying it) using an explicit producer token. + // Does not allocate memory. Fails if not enough room to enqueue. + // Thread-safe. + inline bool try_enqueue(producer_token_t const& token, T const& item) + { + return inner_enqueue(token, item); + } + + // Enqueues a single item (by moving it, if possible) using an explicit producer token. + // Does not allocate memory. Fails if not enough room to enqueue. + // Thread-safe. + inline bool try_enqueue(producer_token_t const& token, T&& item) + { + return inner_enqueue(token, std::move(item)); + } + + // Enqueues several items. + // Does not allocate memory (except for one-time implicit producer). + // Fails if not enough room to enqueue (or implicit production is + // disabled because Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE is 0). + // Note: Use std::make_move_iterator if the elements should be moved + // instead of copied. + // Thread-safe. + template + bool try_enqueue_bulk(It itemFirst, size_t count) + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) return false; + else return inner_enqueue_bulk(itemFirst, count); + } + + // Enqueues several items using an explicit producer token. + // Does not allocate memory. Fails if not enough room to enqueue. + // Note: Use std::make_move_iterator if the elements should be moved + // instead of copied. + // Thread-safe. + template + bool try_enqueue_bulk(producer_token_t const& token, It itemFirst, size_t count) + { + return inner_enqueue_bulk(token, itemFirst, count); + } + + + + // Attempts to dequeue from the queue. + // Returns false if all producer streams appeared empty at the time they + // were checked (so, the queue is likely but not guaranteed to be empty). + // Never allocates. Thread-safe. + template + bool try_dequeue(U& item) + { + // Instead of simply trying each producer in turn (which could cause needless contention on the first + // producer), we score them heuristically. + size_t nonEmptyCount = 0; + ProducerBase* best = nullptr; + size_t bestSize = 0; + for (auto ptr = producerListTail.load(std::memory_order_acquire); nonEmptyCount < 3 && ptr != nullptr; ptr = ptr->next_prod()) { + auto size = ptr->size_approx(); + if (size > 0) { + if (size > bestSize) { + bestSize = size; + best = ptr; + } + ++nonEmptyCount; + } + } + + // If there was at least one non-empty queue but it appears empty at the time + // we try to dequeue from it, we need to make sure every queue's been tried + if (nonEmptyCount > 0) { + if ((details::likely)(best->dequeue(item))) { + return true; + } + for (auto ptr = producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { + if (ptr != best && ptr->dequeue(item)) { + return true; + } + } + } + return false; + } + + // Attempts to dequeue from the queue. + // Returns false if all producer streams appeared empty at the time they + // were checked (so, the queue is likely but not guaranteed to be empty). + // This differs from the try_dequeue(item) method in that this one does + // not attempt to reduce contention by interleaving the order that producer + // streams are dequeued from. So, using this method can reduce overall throughput + // under contention, but will give more predictable results in single-threaded + // consumer scenarios. This is mostly only useful for internal unit tests. + // Never allocates. Thread-safe. + template + bool try_dequeue_non_interleaved(U& item) + { + for (auto ptr = producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { + if (ptr->dequeue(item)) { + return true; + } + } + return false; + } + + // Attempts to dequeue from the queue using an explicit consumer token. + // Returns false if all producer streams appeared empty at the time they + // were checked (so, the queue is likely but not guaranteed to be empty). + // Never allocates. Thread-safe. + template + bool try_dequeue(consumer_token_t& token, U& item) + { + // The idea is roughly as follows: + // Every 256 items from one producer, make everyone rotate (increase the global offset) -> this means the highest efficiency consumer dictates the rotation speed of everyone else, more or less + // If you see that the global offset has changed, you must reset your consumption counter and move to your designated place + // If there's no items where you're supposed to be, keep moving until you find a producer with some items + // If the global offset has not changed but you've run out of items to consume, move over from your current position until you find an producer with something in it + + if (token.desiredProducer == nullptr || token.lastKnownGlobalOffset != globalExplicitConsumerOffset.load(std::memory_order_relaxed)) { + if (!update_current_producer_after_rotation(token)) { + return false; + } + } + + // If there was at least one non-empty queue but it appears empty at the time + // we try to dequeue from it, we need to make sure every queue's been tried + if (static_cast(token.currentProducer)->dequeue(item)) { + if (++token.itemsConsumedFromCurrent == EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE) { + globalExplicitConsumerOffset.fetch_add(1, std::memory_order_relaxed); + } + return true; + } + + auto tail = producerListTail.load(std::memory_order_acquire); + auto ptr = static_cast(token.currentProducer)->next_prod(); + if (ptr == nullptr) { + ptr = tail; + } + while (ptr != static_cast(token.currentProducer)) { + if (ptr->dequeue(item)) { + token.currentProducer = ptr; + token.itemsConsumedFromCurrent = 1; + return true; + } + ptr = ptr->next_prod(); + if (ptr == nullptr) { + ptr = tail; + } + } + return false; + } + + // Attempts to dequeue several elements from the queue. + // Returns the number of items actually dequeued. + // Returns 0 if all producer streams appeared empty at the time they + // were checked (so, the queue is likely but not guaranteed to be empty). + // Never allocates. Thread-safe. + template + size_t try_dequeue_bulk(It itemFirst, size_t max) + { + size_t count = 0; + for (auto ptr = producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { + count += ptr->dequeue_bulk(itemFirst, max - count); + if (count == max) { + break; + } + } + return count; + } + + // Attempts to dequeue several elements from the queue using an explicit consumer token. + // Returns the number of items actually dequeued. + // Returns 0 if all producer streams appeared empty at the time they + // were checked (so, the queue is likely but not guaranteed to be empty). + // Never allocates. Thread-safe. + template + size_t try_dequeue_bulk(consumer_token_t& token, It itemFirst, size_t max) + { + if (token.desiredProducer == nullptr || token.lastKnownGlobalOffset != globalExplicitConsumerOffset.load(std::memory_order_relaxed)) { + if (!update_current_producer_after_rotation(token)) { + return 0; + } + } + + size_t count = static_cast(token.currentProducer)->dequeue_bulk(itemFirst, max); + if (count == max) { + if ((token.itemsConsumedFromCurrent += static_cast(max)) >= EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE) { + globalExplicitConsumerOffset.fetch_add(1, std::memory_order_relaxed); + } + return max; + } + token.itemsConsumedFromCurrent += static_cast(count); + max -= count; + + auto tail = producerListTail.load(std::memory_order_acquire); + auto ptr = static_cast(token.currentProducer)->next_prod(); + if (ptr == nullptr) { + ptr = tail; + } + while (ptr != static_cast(token.currentProducer)) { + auto dequeued = ptr->dequeue_bulk(itemFirst, max); + count += dequeued; + if (dequeued != 0) { + token.currentProducer = ptr; + token.itemsConsumedFromCurrent = static_cast(dequeued); + } + if (dequeued == max) { + break; + } + max -= dequeued; + ptr = ptr->next_prod(); + if (ptr == nullptr) { + ptr = tail; + } + } + return count; + } + + + + // Attempts to dequeue from a specific producer's inner queue. + // If you happen to know which producer you want to dequeue from, this + // is significantly faster than using the general-case try_dequeue methods. + // Returns false if the producer's queue appeared empty at the time it + // was checked (so, the queue is likely but not guaranteed to be empty). + // Never allocates. Thread-safe. + template + inline bool try_dequeue_from_producer(producer_token_t const& producer, U& item) + { + return static_cast(producer.producer)->dequeue(item); + } + + // Attempts to dequeue several elements from a specific producer's inner queue. + // Returns the number of items actually dequeued. + // If you happen to know which producer you want to dequeue from, this + // is significantly faster than using the general-case try_dequeue methods. + // Returns 0 if the producer's queue appeared empty at the time it + // was checked (so, the queue is likely but not guaranteed to be empty). + // Never allocates. Thread-safe. + template + inline size_t try_dequeue_bulk_from_producer(producer_token_t const& producer, It itemFirst, size_t max) + { + return static_cast(producer.producer)->dequeue_bulk(itemFirst, max); + } + + + // Returns an estimate of the total number of elements currently in the queue. This + // estimate is only accurate if the queue has completely stabilized before it is called + // (i.e. all enqueue and dequeue operations have completed and their memory effects are + // visible on the calling thread, and no further operations start while this method is + // being called). + // Thread-safe. + size_t size_approx() const + { + size_t size = 0; + for (auto ptr = producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { + size += ptr->size_approx(); + } + return size; + } + + + // Returns true if the underlying atomic variables used by + // the queue are lock-free (they should be on most platforms). + // Thread-safe. + static bool is_lock_free() + { + return + details::static_is_lock_free::value == 2 && + details::static_is_lock_free::value == 2 && + details::static_is_lock_free::value == 2 && + details::static_is_lock_free::value == 2 && + details::static_is_lock_free::value == 2 && + details::static_is_lock_free::thread_id_numeric_size_t>::value == 2; + } + + +private: + friend struct ProducerToken; + friend struct ConsumerToken; + struct ExplicitProducer; + friend struct ExplicitProducer; + struct ImplicitProducer; + friend struct ImplicitProducer; + friend class ConcurrentQueueTests; + + enum AllocationMode { CanAlloc, CannotAlloc }; + + + /////////////////////////////// + // Queue methods + /////////////////////////////// + + template + inline bool inner_enqueue(producer_token_t const& token, U&& element) + { + return static_cast(token.producer)->ConcurrentQueue::ExplicitProducer::template enqueue(std::forward(element)); + } + + template + inline bool inner_enqueue(U&& element) + { + auto producer = get_or_add_implicit_producer(); + return producer == nullptr ? false : producer->ConcurrentQueue::ImplicitProducer::template enqueue(std::forward(element)); + } + + template + inline bool inner_enqueue_bulk(producer_token_t const& token, It itemFirst, size_t count) + { + return static_cast(token.producer)->ConcurrentQueue::ExplicitProducer::template enqueue_bulk(itemFirst, count); + } + + template + inline bool inner_enqueue_bulk(It itemFirst, size_t count) + { + auto producer = get_or_add_implicit_producer(); + return producer == nullptr ? false : producer->ConcurrentQueue::ImplicitProducer::template enqueue_bulk(itemFirst, count); + } + + inline bool update_current_producer_after_rotation(consumer_token_t& token) + { + // Ah, there's been a rotation, figure out where we should be! + auto tail = producerListTail.load(std::memory_order_acquire); + if (token.desiredProducer == nullptr && tail == nullptr) { + return false; + } + auto prodCount = producerCount.load(std::memory_order_relaxed); + auto globalOffset = globalExplicitConsumerOffset.load(std::memory_order_relaxed); + if ((details::unlikely)(token.desiredProducer == nullptr)) { + // Aha, first time we're dequeueing anything. + // Figure out our local position + // Note: offset is from start, not end, but we're traversing from end -- subtract from count first + std::uint32_t offset = prodCount - 1 - (token.initialOffset % prodCount); + token.desiredProducer = tail; + for (std::uint32_t i = 0; i != offset; ++i) { + token.desiredProducer = static_cast(token.desiredProducer)->next_prod(); + if (token.desiredProducer == nullptr) { + token.desiredProducer = tail; + } + } + } + + std::uint32_t delta = globalOffset - token.lastKnownGlobalOffset; + if (delta >= prodCount) { + delta = delta % prodCount; + } + for (std::uint32_t i = 0; i != delta; ++i) { + token.desiredProducer = static_cast(token.desiredProducer)->next_prod(); + if (token.desiredProducer == nullptr) { + token.desiredProducer = tail; + } + } + + token.lastKnownGlobalOffset = globalOffset; + token.currentProducer = token.desiredProducer; + token.itemsConsumedFromCurrent = 0; + return true; + } + + + /////////////////////////// + // Free list + /////////////////////////// + + template + struct FreeListNode + { + FreeListNode() : freeListRefs(0), freeListNext(nullptr) { } + + std::atomic freeListRefs; + std::atomic freeListNext; + }; + + // A simple CAS-based lock-free free list. Not the fastest thing in the world under heavy contention, but + // simple and correct (assuming nodes are never freed until after the free list is destroyed), and fairly + // speedy under low contention. + template // N must inherit FreeListNode or have the same fields (and initialization of them) + struct FreeList + { + FreeList() : freeListHead(nullptr) { } + FreeList(FreeList&& other) : freeListHead(other.freeListHead.load(std::memory_order_relaxed)) { other.freeListHead.store(nullptr, std::memory_order_relaxed); } + void swap(FreeList& other) { details::swap_relaxed(freeListHead, other.freeListHead); } + + FreeList(FreeList const&) MOODYCAMEL_DELETE_FUNCTION; + FreeList& operator=(FreeList const&) MOODYCAMEL_DELETE_FUNCTION; + + inline void add(N* node) + { +#ifdef MCDBGQ_NOLOCKFREE_FREELIST + debug::DebugLock lock(mutex); +#endif + // We know that the should-be-on-freelist bit is 0 at this point, so it's safe to + // set it using a fetch_add + if (node->freeListRefs.fetch_add(SHOULD_BE_ON_FREELIST, std::memory_order_acq_rel) == 0) { + // Oh look! We were the last ones referencing this node, and we know + // we want to add it to the free list, so let's do it! + add_knowing_refcount_is_zero(node); + } + } + + inline N* try_get() + { +#ifdef MCDBGQ_NOLOCKFREE_FREELIST + debug::DebugLock lock(mutex); +#endif + auto head = freeListHead.load(std::memory_order_acquire); + while (head != nullptr) { + auto prevHead = head; + auto refs = head->freeListRefs.load(std::memory_order_relaxed); + if ((refs & REFS_MASK) == 0 || !head->freeListRefs.compare_exchange_strong(refs, refs + 1, std::memory_order_acquire, std::memory_order_relaxed)) { + head = freeListHead.load(std::memory_order_acquire); + continue; + } + + // Good, reference count has been incremented (it wasn't at zero), which means we can read the + // next and not worry about it changing between now and the time we do the CAS + auto next = head->freeListNext.load(std::memory_order_relaxed); + if (freeListHead.compare_exchange_strong(head, next, std::memory_order_acquire, std::memory_order_relaxed)) { + // Yay, got the node. This means it was on the list, which means shouldBeOnFreeList must be false no + // matter the refcount (because nobody else knows it's been taken off yet, it can't have been put back on). + assert((head->freeListRefs.load(std::memory_order_relaxed) & SHOULD_BE_ON_FREELIST) == 0); + + // Decrease refcount twice, once for our ref, and once for the list's ref + head->freeListRefs.fetch_sub(2, std::memory_order_release); + return head; + } + + // OK, the head must have changed on us, but we still need to decrease the refcount we increased. + // Note that we don't need to release any memory effects, but we do need to ensure that the reference + // count decrement happens-after the CAS on the head. + refs = prevHead->freeListRefs.fetch_sub(1, std::memory_order_acq_rel); + if (refs == SHOULD_BE_ON_FREELIST + 1) { + add_knowing_refcount_is_zero(prevHead); + } + } + + return nullptr; + } + + // Useful for traversing the list when there's no contention (e.g. to destroy remaining nodes) + N* head_unsafe() const { return freeListHead.load(std::memory_order_relaxed); } + + private: + inline void add_knowing_refcount_is_zero(N* node) + { + // Since the refcount is zero, and nobody can increase it once it's zero (except us, and we run + // only one copy of this method per node at a time, i.e. the single thread case), then we know + // we can safely change the next pointer of the node; however, once the refcount is back above + // zero, then other threads could increase it (happens under heavy contention, when the refcount + // goes to zero in between a load and a refcount increment of a node in try_get, then back up to + // something non-zero, then the refcount increment is done by the other thread) -- so, if the CAS + // to add the node to the actual list fails, decrease the refcount and leave the add operation to + // the next thread who puts the refcount back at zero (which could be us, hence the loop). + auto head = freeListHead.load(std::memory_order_relaxed); + while (true) { + node->freeListNext.store(head, std::memory_order_relaxed); + node->freeListRefs.store(1, std::memory_order_release); + if (!freeListHead.compare_exchange_strong(head, node, std::memory_order_release, std::memory_order_relaxed)) { + // Hmm, the add failed, but we can only try again when the refcount goes back to zero + if (node->freeListRefs.fetch_add(SHOULD_BE_ON_FREELIST - 1, std::memory_order_release) == 1) { + continue; + } + } + return; + } + } + + private: + // Implemented like a stack, but where node order doesn't matter (nodes are inserted out of order under contention) + std::atomic freeListHead; + + static const std::uint32_t REFS_MASK = 0x7FFFFFFF; + static const std::uint32_t SHOULD_BE_ON_FREELIST = 0x80000000; + +#ifdef MCDBGQ_NOLOCKFREE_FREELIST + debug::DebugMutex mutex; +#endif + }; + + + /////////////////////////// + // Block + /////////////////////////// + + enum InnerQueueContext { implicit_context = 0, explicit_context = 1 }; + + struct Block + { + Block() + : next(nullptr), elementsCompletelyDequeued(0), freeListRefs(0), freeListNext(nullptr), shouldBeOnFreeList(false), dynamicallyAllocated(true) + { +#ifdef MCDBGQ_TRACKMEM + owner = nullptr; +#endif + } + + template + inline bool is_empty() const + { + MOODYCAMEL_CONSTEXPR_IF (context == explicit_context && BLOCK_SIZE <= EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD) { + // Check flags + for (size_t i = 0; i < BLOCK_SIZE; ++i) { + if (!emptyFlags[i].load(std::memory_order_relaxed)) { + return false; + } + } + + // Aha, empty; make sure we have all other memory effects that happened before the empty flags were set + std::atomic_thread_fence(std::memory_order_acquire); + return true; + } + else { + // Check counter + if (elementsCompletelyDequeued.load(std::memory_order_relaxed) == BLOCK_SIZE) { + std::atomic_thread_fence(std::memory_order_acquire); + return true; + } + assert(elementsCompletelyDequeued.load(std::memory_order_relaxed) <= BLOCK_SIZE); + return false; + } + } + + // Returns true if the block is now empty (does not apply in explicit context) + template + inline bool set_empty(MOODYCAMEL_MAYBE_UNUSED index_t i) + { + MOODYCAMEL_CONSTEXPR_IF (context == explicit_context && BLOCK_SIZE <= EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD) { + // Set flag + assert(!emptyFlags[BLOCK_SIZE - 1 - static_cast(i & static_cast(BLOCK_SIZE - 1))].load(std::memory_order_relaxed)); + emptyFlags[BLOCK_SIZE - 1 - static_cast(i & static_cast(BLOCK_SIZE - 1))].store(true, std::memory_order_release); + return false; + } + else { + // Increment counter + auto prevVal = elementsCompletelyDequeued.fetch_add(1, std::memory_order_release); + assert(prevVal < BLOCK_SIZE); + return prevVal == BLOCK_SIZE - 1; + } + } + + // Sets multiple contiguous item statuses to 'empty' (assumes no wrapping and count > 0). + // Returns true if the block is now empty (does not apply in explicit context). + template + inline bool set_many_empty(MOODYCAMEL_MAYBE_UNUSED index_t i, size_t count) + { + MOODYCAMEL_CONSTEXPR_IF (context == explicit_context && BLOCK_SIZE <= EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD) { + // Set flags + std::atomic_thread_fence(std::memory_order_release); + i = BLOCK_SIZE - 1 - static_cast(i & static_cast(BLOCK_SIZE - 1)) - count + 1; + for (size_t j = 0; j != count; ++j) { + assert(!emptyFlags[i + j].load(std::memory_order_relaxed)); + emptyFlags[i + j].store(true, std::memory_order_relaxed); + } + return false; + } + else { + // Increment counter + auto prevVal = elementsCompletelyDequeued.fetch_add(count, std::memory_order_release); + assert(prevVal + count <= BLOCK_SIZE); + return prevVal + count == BLOCK_SIZE; + } + } + + template + inline void set_all_empty() + { + MOODYCAMEL_CONSTEXPR_IF (context == explicit_context && BLOCK_SIZE <= EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD) { + // Set all flags + for (size_t i = 0; i != BLOCK_SIZE; ++i) { + emptyFlags[i].store(true, std::memory_order_relaxed); + } + } + else { + // Reset counter + elementsCompletelyDequeued.store(BLOCK_SIZE, std::memory_order_relaxed); + } + } + + template + inline void reset_empty() + { + MOODYCAMEL_CONSTEXPR_IF (context == explicit_context && BLOCK_SIZE <= EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD) { + // Reset flags + for (size_t i = 0; i != BLOCK_SIZE; ++i) { + emptyFlags[i].store(false, std::memory_order_relaxed); + } + } + else { + // Reset counter + elementsCompletelyDequeued.store(0, std::memory_order_relaxed); + } + } + + inline T* operator[](index_t idx) MOODYCAMEL_NOEXCEPT { return static_cast(static_cast(elements)) + static_cast(idx & static_cast(BLOCK_SIZE - 1)); } + inline T const* operator[](index_t idx) const MOODYCAMEL_NOEXCEPT { return static_cast(static_cast(elements)) + static_cast(idx & static_cast(BLOCK_SIZE - 1)); } + + private: + static_assert(std::alignment_of::value <= sizeof(T), "The queue does not support types with an alignment greater than their size at this time"); + MOODYCAMEL_ALIGNED_TYPE_LIKE(char[sizeof(T) * BLOCK_SIZE], T) elements; + public: + Block* next; + std::atomic elementsCompletelyDequeued; + std::atomic emptyFlags[BLOCK_SIZE <= EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD ? BLOCK_SIZE : 1]; + public: + std::atomic freeListRefs; + std::atomic freeListNext; + std::atomic shouldBeOnFreeList; + bool dynamicallyAllocated; // Perhaps a better name for this would be 'isNotPartOfInitialBlockPool' + +#ifdef MCDBGQ_TRACKMEM + void* owner; +#endif + }; + static_assert(std::alignment_of::value >= std::alignment_of::value, "Internal error: Blocks must be at least as aligned as the type they are wrapping"); + + +#ifdef MCDBGQ_TRACKMEM +public: + struct MemStats; +private: +#endif + + /////////////////////////// + // Producer base + /////////////////////////// + + struct ProducerBase : public details::ConcurrentQueueProducerTypelessBase + { + ProducerBase(ConcurrentQueue* parent_, bool isExplicit_) : + tailIndex(0), + headIndex(0), + dequeueOptimisticCount(0), + dequeueOvercommit(0), + tailBlock(nullptr), + isExplicit(isExplicit_), + parent(parent_) + { + } + + virtual ~ProducerBase() { } + + template + inline bool dequeue(U& element) + { + if (isExplicit) { + return static_cast(this)->dequeue(element); + } + else { + return static_cast(this)->dequeue(element); + } + } + + template + inline size_t dequeue_bulk(It& itemFirst, size_t max) + { + if (isExplicit) { + return static_cast(this)->dequeue_bulk(itemFirst, max); + } + else { + return static_cast(this)->dequeue_bulk(itemFirst, max); + } + } + + inline ProducerBase* next_prod() const { return static_cast(next); } + + inline size_t size_approx() const + { + auto tail = tailIndex.load(std::memory_order_relaxed); + auto head = headIndex.load(std::memory_order_relaxed); + return details::circular_less_than(head, tail) ? static_cast(tail - head) : 0; + } + + inline index_t getTail() const { return tailIndex.load(std::memory_order_relaxed); } + protected: + std::atomic tailIndex; // Where to enqueue to next + std::atomic headIndex; // Where to dequeue from next + + std::atomic dequeueOptimisticCount; + std::atomic dequeueOvercommit; + + Block* tailBlock; + + public: + bool isExplicit; + ConcurrentQueue* parent; + + protected: +#ifdef MCDBGQ_TRACKMEM + friend struct MemStats; +#endif + }; + + + /////////////////////////// + // Explicit queue + /////////////////////////// + + struct ExplicitProducer : public ProducerBase + { + explicit ExplicitProducer(ConcurrentQueue* parent_) : + ProducerBase(parent_, true), + blockIndex(nullptr), + pr_blockIndexSlotsUsed(0), + pr_blockIndexSize(EXPLICIT_INITIAL_INDEX_SIZE >> 1), + pr_blockIndexFront(0), + pr_blockIndexEntries(nullptr), + pr_blockIndexRaw(nullptr) + { + size_t poolBasedIndexSize = details::ceil_to_pow_2(parent_->initialBlockPoolSize) >> 1; + if (poolBasedIndexSize > pr_blockIndexSize) { + pr_blockIndexSize = poolBasedIndexSize; + } + + new_block_index(0); // This creates an index with double the number of current entries, i.e. EXPLICIT_INITIAL_INDEX_SIZE + } + + ~ExplicitProducer() + { + // Destruct any elements not yet dequeued. + // Since we're in the destructor, we can assume all elements + // are either completely dequeued or completely not (no halfways). + if (this->tailBlock != nullptr) { // Note this means there must be a block index too + // First find the block that's partially dequeued, if any + Block* halfDequeuedBlock = nullptr; + if ((this->headIndex.load(std::memory_order_relaxed) & static_cast(BLOCK_SIZE - 1)) != 0) { + // The head's not on a block boundary, meaning a block somewhere is partially dequeued + // (or the head block is the tail block and was fully dequeued, but the head/tail are still not on a boundary) + size_t i = (pr_blockIndexFront - pr_blockIndexSlotsUsed) & (pr_blockIndexSize - 1); + while (details::circular_less_than(pr_blockIndexEntries[i].base + BLOCK_SIZE, this->headIndex.load(std::memory_order_relaxed))) { + i = (i + 1) & (pr_blockIndexSize - 1); + } + assert(details::circular_less_than(pr_blockIndexEntries[i].base, this->headIndex.load(std::memory_order_relaxed))); + halfDequeuedBlock = pr_blockIndexEntries[i].block; + } + + // Start at the head block (note the first line in the loop gives us the head from the tail on the first iteration) + auto block = this->tailBlock; + do { + block = block->next; + if (block->ConcurrentQueue::Block::template is_empty()) { + continue; + } + + size_t i = 0; // Offset into block + if (block == halfDequeuedBlock) { + i = static_cast(this->headIndex.load(std::memory_order_relaxed) & static_cast(BLOCK_SIZE - 1)); + } + + // Walk through all the items in the block; if this is the tail block, we need to stop when we reach the tail index + auto lastValidIndex = (this->tailIndex.load(std::memory_order_relaxed) & static_cast(BLOCK_SIZE - 1)) == 0 ? BLOCK_SIZE : static_cast(this->tailIndex.load(std::memory_order_relaxed) & static_cast(BLOCK_SIZE - 1)); + while (i != BLOCK_SIZE && (block != this->tailBlock || i != lastValidIndex)) { + (*block)[i++]->~T(); + } + } while (block != this->tailBlock); + } + + // Destroy all blocks that we own + if (this->tailBlock != nullptr) { + auto block = this->tailBlock; + do { + auto nextBlock = block->next; + if (block->dynamicallyAllocated) { + destroy(block); + } + else { + this->parent->add_block_to_free_list(block); + } + block = nextBlock; + } while (block != this->tailBlock); + } + + // Destroy the block indices + auto header = static_cast(pr_blockIndexRaw); + while (header != nullptr) { + auto prev = static_cast(header->prev); + header->~BlockIndexHeader(); + (Traits::free)(header); + header = prev; + } + } + + template + inline bool enqueue(U&& element) + { + index_t currentTailIndex = this->tailIndex.load(std::memory_order_relaxed); + index_t newTailIndex = 1 + currentTailIndex; + if ((currentTailIndex & static_cast(BLOCK_SIZE - 1)) == 0) { + // We reached the end of a block, start a new one + auto startBlock = this->tailBlock; + auto originalBlockIndexSlotsUsed = pr_blockIndexSlotsUsed; + if (this->tailBlock != nullptr && this->tailBlock->next->ConcurrentQueue::Block::template is_empty()) { + // We can re-use the block ahead of us, it's empty! + this->tailBlock = this->tailBlock->next; + this->tailBlock->ConcurrentQueue::Block::template reset_empty(); + + // We'll put the block on the block index (guaranteed to be room since we're conceptually removing the + // last block from it first -- except instead of removing then adding, we can just overwrite). + // Note that there must be a valid block index here, since even if allocation failed in the ctor, + // it would have been re-attempted when adding the first block to the queue; since there is such + // a block, a block index must have been successfully allocated. + } + else { + // Whatever head value we see here is >= the last value we saw here (relatively), + // and <= its current value. Since we have the most recent tail, the head must be + // <= to it. + auto head = this->headIndex.load(std::memory_order_relaxed); + assert(!details::circular_less_than(currentTailIndex, head)); + if (!details::circular_less_than(head, currentTailIndex + BLOCK_SIZE) + || (MAX_SUBQUEUE_SIZE != details::const_numeric_max::value && (MAX_SUBQUEUE_SIZE == 0 || MAX_SUBQUEUE_SIZE - BLOCK_SIZE < currentTailIndex - head))) { + // We can't enqueue in another block because there's not enough leeway -- the + // tail could surpass the head by the time the block fills up! (Or we'll exceed + // the size limit, if the second part of the condition was true.) + return false; + } + // We're going to need a new block; check that the block index has room + if (pr_blockIndexRaw == nullptr || pr_blockIndexSlotsUsed == pr_blockIndexSize) { + // Hmm, the circular block index is already full -- we'll need + // to allocate a new index. Note pr_blockIndexRaw can only be nullptr if + // the initial allocation failed in the constructor. + + MOODYCAMEL_CONSTEXPR_IF (allocMode == CannotAlloc) { + return false; + } + else if (!new_block_index(pr_blockIndexSlotsUsed)) { + return false; + } + } + + // Insert a new block in the circular linked list + auto newBlock = this->parent->ConcurrentQueue::template requisition_block(); + if (newBlock == nullptr) { + return false; + } +#ifdef MCDBGQ_TRACKMEM + newBlock->owner = this; +#endif + newBlock->ConcurrentQueue::Block::template reset_empty(); + if (this->tailBlock == nullptr) { + newBlock->next = newBlock; + } + else { + newBlock->next = this->tailBlock->next; + this->tailBlock->next = newBlock; + } + this->tailBlock = newBlock; + ++pr_blockIndexSlotsUsed; + } + + MOODYCAMEL_CONSTEXPR_IF (!MOODYCAMEL_NOEXCEPT_CTOR(T, U, new (static_cast(nullptr)) T(std::forward(element)))) { + // The constructor may throw. We want the element not to appear in the queue in + // that case (without corrupting the queue): + MOODYCAMEL_TRY { + new ((*this->tailBlock)[currentTailIndex]) T(std::forward(element)); + } + MOODYCAMEL_CATCH (...) { + // Revert change to the current block, but leave the new block available + // for next time + pr_blockIndexSlotsUsed = originalBlockIndexSlotsUsed; + this->tailBlock = startBlock == nullptr ? this->tailBlock : startBlock; + MOODYCAMEL_RETHROW; + } + } + else { + (void)startBlock; + (void)originalBlockIndexSlotsUsed; + } + + // Add block to block index + auto& entry = blockIndex.load(std::memory_order_relaxed)->entries[pr_blockIndexFront]; + entry.base = currentTailIndex; + entry.block = this->tailBlock; + blockIndex.load(std::memory_order_relaxed)->front.store(pr_blockIndexFront, std::memory_order_release); + pr_blockIndexFront = (pr_blockIndexFront + 1) & (pr_blockIndexSize - 1); + + MOODYCAMEL_CONSTEXPR_IF (!MOODYCAMEL_NOEXCEPT_CTOR(T, U, new (static_cast(nullptr)) T(std::forward(element)))) { + this->tailIndex.store(newTailIndex, std::memory_order_release); + return true; + } + } + + // Enqueue + new ((*this->tailBlock)[currentTailIndex]) T(std::forward(element)); + + this->tailIndex.store(newTailIndex, std::memory_order_release); + return true; + } + + template + bool dequeue(U& element) + { + auto tail = this->tailIndex.load(std::memory_order_relaxed); + auto overcommit = this->dequeueOvercommit.load(std::memory_order_relaxed); + if (details::circular_less_than(this->dequeueOptimisticCount.load(std::memory_order_relaxed) - overcommit, tail)) { + // Might be something to dequeue, let's give it a try + + // Note that this if is purely for performance purposes in the common case when the queue is + // empty and the values are eventually consistent -- we may enter here spuriously. + + // Note that whatever the values of overcommit and tail are, they are not going to change (unless we + // change them) and must be the same value at this point (inside the if) as when the if condition was + // evaluated. + + // We insert an acquire fence here to synchronize-with the release upon incrementing dequeueOvercommit below. + // This ensures that whatever the value we got loaded into overcommit, the load of dequeueOptisticCount in + // the fetch_add below will result in a value at least as recent as that (and therefore at least as large). + // Note that I believe a compiler (signal) fence here would be sufficient due to the nature of fetch_add (all + // read-modify-write operations are guaranteed to work on the latest value in the modification order), but + // unfortunately that can't be shown to be correct using only the C++11 standard. + // See http://stackoverflow.com/questions/18223161/what-are-the-c11-memory-ordering-guarantees-in-this-corner-case + std::atomic_thread_fence(std::memory_order_acquire); + + // Increment optimistic counter, then check if it went over the boundary + auto myDequeueCount = this->dequeueOptimisticCount.fetch_add(1, std::memory_order_relaxed); + + // Note that since dequeueOvercommit must be <= dequeueOptimisticCount (because dequeueOvercommit is only ever + // incremented after dequeueOptimisticCount -- this is enforced in the `else` block below), and since we now + // have a version of dequeueOptimisticCount that is at least as recent as overcommit (due to the release upon + // incrementing dequeueOvercommit and the acquire above that synchronizes with it), overcommit <= myDequeueCount. + // However, we can't assert this since both dequeueOptimisticCount and dequeueOvercommit may (independently) + // overflow; in such a case, though, the logic still holds since the difference between the two is maintained. + + // Note that we reload tail here in case it changed; it will be the same value as before or greater, since + // this load is sequenced after (happens after) the earlier load above. This is supported by read-read + // coherency (as defined in the standard), explained here: http://en.cppreference.com/w/cpp/atomic/memory_order + tail = this->tailIndex.load(std::memory_order_acquire); + if ((details::likely)(details::circular_less_than(myDequeueCount - overcommit, tail))) { + // Guaranteed to be at least one element to dequeue! + + // Get the index. Note that since there's guaranteed to be at least one element, this + // will never exceed tail. We need to do an acquire-release fence here since it's possible + // that whatever condition got us to this point was for an earlier enqueued element (that + // we already see the memory effects for), but that by the time we increment somebody else + // has incremented it, and we need to see the memory effects for *that* element, which is + // in such a case is necessarily visible on the thread that incremented it in the first + // place with the more current condition (they must have acquired a tail that is at least + // as recent). + auto index = this->headIndex.fetch_add(1, std::memory_order_acq_rel); + + + // Determine which block the element is in + + auto localBlockIndex = blockIndex.load(std::memory_order_acquire); + auto localBlockIndexHead = localBlockIndex->front.load(std::memory_order_acquire); + + // We need to be careful here about subtracting and dividing because of index wrap-around. + // When an index wraps, we need to preserve the sign of the offset when dividing it by the + // block size (in order to get a correct signed block count offset in all cases): + auto headBase = localBlockIndex->entries[localBlockIndexHead].base; + auto blockBaseIndex = index & ~static_cast(BLOCK_SIZE - 1); + auto offset = static_cast(static_cast::type>(blockBaseIndex - headBase) / BLOCK_SIZE); + auto block = localBlockIndex->entries[(localBlockIndexHead + offset) & (localBlockIndex->size - 1)].block; + + // Dequeue + auto& el = *((*block)[index]); + if (!MOODYCAMEL_NOEXCEPT_ASSIGN(T, T&&, element = std::move(el))) { + // Make sure the element is still fully dequeued and destroyed even if the assignment + // throws + struct Guard { + Block* block; + index_t index; + + ~Guard() + { + (*block)[index]->~T(); + block->ConcurrentQueue::Block::template set_empty(index); + } + } guard = { block, index }; + + element = std::move(el); // NOLINT + } + else { + element = std::move(el); // NOLINT + el.~T(); // NOLINT + block->ConcurrentQueue::Block::template set_empty(index); + } + + return true; + } + else { + // Wasn't anything to dequeue after all; make the effective dequeue count eventually consistent + this->dequeueOvercommit.fetch_add(1, std::memory_order_release); // Release so that the fetch_add on dequeueOptimisticCount is guaranteed to happen before this write + } + } + + return false; + } + + template + bool MOODYCAMEL_NO_TSAN enqueue_bulk(It itemFirst, size_t count) + { + // First, we need to make sure we have enough room to enqueue all of the elements; + // this means pre-allocating blocks and putting them in the block index (but only if + // all the allocations succeeded). + index_t startTailIndex = this->tailIndex.load(std::memory_order_relaxed); + auto startBlock = this->tailBlock; + auto originalBlockIndexFront = pr_blockIndexFront; + auto originalBlockIndexSlotsUsed = pr_blockIndexSlotsUsed; + + Block* firstAllocatedBlock = nullptr; + + // Figure out how many blocks we'll need to allocate, and do so + size_t blockBaseDiff = ((startTailIndex + count - 1) & ~static_cast(BLOCK_SIZE - 1)) - ((startTailIndex - 1) & ~static_cast(BLOCK_SIZE - 1)); + index_t currentTailIndex = (startTailIndex - 1) & ~static_cast(BLOCK_SIZE - 1); + if (blockBaseDiff > 0) { + // Allocate as many blocks as possible from ahead + while (blockBaseDiff > 0 && this->tailBlock != nullptr && this->tailBlock->next != firstAllocatedBlock && this->tailBlock->next->ConcurrentQueue::Block::template is_empty()) { + blockBaseDiff -= static_cast(BLOCK_SIZE); + currentTailIndex += static_cast(BLOCK_SIZE); + + this->tailBlock = this->tailBlock->next; + firstAllocatedBlock = firstAllocatedBlock == nullptr ? this->tailBlock : firstAllocatedBlock; + + auto& entry = blockIndex.load(std::memory_order_relaxed)->entries[pr_blockIndexFront]; + entry.base = currentTailIndex; + entry.block = this->tailBlock; + pr_blockIndexFront = (pr_blockIndexFront + 1) & (pr_blockIndexSize - 1); + } + + // Now allocate as many blocks as necessary from the block pool + while (blockBaseDiff > 0) { + blockBaseDiff -= static_cast(BLOCK_SIZE); + currentTailIndex += static_cast(BLOCK_SIZE); + + auto head = this->headIndex.load(std::memory_order_relaxed); + assert(!details::circular_less_than(currentTailIndex, head)); + bool full = !details::circular_less_than(head, currentTailIndex + BLOCK_SIZE) || (MAX_SUBQUEUE_SIZE != details::const_numeric_max::value && (MAX_SUBQUEUE_SIZE == 0 || MAX_SUBQUEUE_SIZE - BLOCK_SIZE < currentTailIndex - head)); + if (pr_blockIndexRaw == nullptr || pr_blockIndexSlotsUsed == pr_blockIndexSize || full) { + MOODYCAMEL_CONSTEXPR_IF (allocMode == CannotAlloc) { + // Failed to allocate, undo changes (but keep injected blocks) + pr_blockIndexFront = originalBlockIndexFront; + pr_blockIndexSlotsUsed = originalBlockIndexSlotsUsed; + this->tailBlock = startBlock == nullptr ? firstAllocatedBlock : startBlock; + return false; + } + else if (full || !new_block_index(originalBlockIndexSlotsUsed)) { + // Failed to allocate, undo changes (but keep injected blocks) + pr_blockIndexFront = originalBlockIndexFront; + pr_blockIndexSlotsUsed = originalBlockIndexSlotsUsed; + this->tailBlock = startBlock == nullptr ? firstAllocatedBlock : startBlock; + return false; + } + + // pr_blockIndexFront is updated inside new_block_index, so we need to + // update our fallback value too (since we keep the new index even if we + // later fail) + originalBlockIndexFront = originalBlockIndexSlotsUsed; + } + + // Insert a new block in the circular linked list + auto newBlock = this->parent->ConcurrentQueue::template requisition_block(); + if (newBlock == nullptr) { + pr_blockIndexFront = originalBlockIndexFront; + pr_blockIndexSlotsUsed = originalBlockIndexSlotsUsed; + this->tailBlock = startBlock == nullptr ? firstAllocatedBlock : startBlock; + return false; + } + +#ifdef MCDBGQ_TRACKMEM + newBlock->owner = this; +#endif + newBlock->ConcurrentQueue::Block::template set_all_empty(); + if (this->tailBlock == nullptr) { + newBlock->next = newBlock; + } + else { + newBlock->next = this->tailBlock->next; + this->tailBlock->next = newBlock; + } + this->tailBlock = newBlock; + firstAllocatedBlock = firstAllocatedBlock == nullptr ? this->tailBlock : firstAllocatedBlock; + + ++pr_blockIndexSlotsUsed; + + auto& entry = blockIndex.load(std::memory_order_relaxed)->entries[pr_blockIndexFront]; + entry.base = currentTailIndex; + entry.block = this->tailBlock; + pr_blockIndexFront = (pr_blockIndexFront + 1) & (pr_blockIndexSize - 1); + } + + // Excellent, all allocations succeeded. Reset each block's emptiness before we fill them up, and + // publish the new block index front + auto block = firstAllocatedBlock; + while (true) { + block->ConcurrentQueue::Block::template reset_empty(); + if (block == this->tailBlock) { + break; + } + block = block->next; + } + + MOODYCAMEL_CONSTEXPR_IF (MOODYCAMEL_NOEXCEPT_CTOR(T, decltype(*itemFirst), new (static_cast(nullptr)) T(details::deref_noexcept(itemFirst)))) { + blockIndex.load(std::memory_order_relaxed)->front.store((pr_blockIndexFront - 1) & (pr_blockIndexSize - 1), std::memory_order_release); + } + } + + // Enqueue, one block at a time + index_t newTailIndex = startTailIndex + static_cast(count); + currentTailIndex = startTailIndex; + auto endBlock = this->tailBlock; + this->tailBlock = startBlock; + assert((startTailIndex & static_cast(BLOCK_SIZE - 1)) != 0 || firstAllocatedBlock != nullptr || count == 0); + if ((startTailIndex & static_cast(BLOCK_SIZE - 1)) == 0 && firstAllocatedBlock != nullptr) { + this->tailBlock = firstAllocatedBlock; + } + while (true) { + index_t stopIndex = (currentTailIndex & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + if (details::circular_less_than(newTailIndex, stopIndex)) { + stopIndex = newTailIndex; + } + MOODYCAMEL_CONSTEXPR_IF (MOODYCAMEL_NOEXCEPT_CTOR(T, decltype(*itemFirst), new (static_cast(nullptr)) T(details::deref_noexcept(itemFirst)))) { + while (currentTailIndex != stopIndex) { + new ((*this->tailBlock)[currentTailIndex++]) T(*itemFirst++); + } + } + else { + MOODYCAMEL_TRY { + while (currentTailIndex != stopIndex) { + // Must use copy constructor even if move constructor is available + // because we may have to revert if there's an exception. + // Sorry about the horrible templated next line, but it was the only way + // to disable moving *at compile time*, which is important because a type + // may only define a (noexcept) move constructor, and so calls to the + // cctor will not compile, even if they are in an if branch that will never + // be executed + new ((*this->tailBlock)[currentTailIndex]) T(details::nomove_if(nullptr)) T(details::deref_noexcept(itemFirst)))>::eval(*itemFirst)); + ++currentTailIndex; + ++itemFirst; + } + } + MOODYCAMEL_CATCH (...) { + // Oh dear, an exception's been thrown -- destroy the elements that + // were enqueued so far and revert the entire bulk operation (we'll keep + // any allocated blocks in our linked list for later, though). + auto constructedStopIndex = currentTailIndex; + auto lastBlockEnqueued = this->tailBlock; + + pr_blockIndexFront = originalBlockIndexFront; + pr_blockIndexSlotsUsed = originalBlockIndexSlotsUsed; + this->tailBlock = startBlock == nullptr ? firstAllocatedBlock : startBlock; + + if (!details::is_trivially_destructible::value) { + auto block = startBlock; + if ((startTailIndex & static_cast(BLOCK_SIZE - 1)) == 0) { + block = firstAllocatedBlock; + } + currentTailIndex = startTailIndex; + while (true) { + stopIndex = (currentTailIndex & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + if (details::circular_less_than(constructedStopIndex, stopIndex)) { + stopIndex = constructedStopIndex; + } + while (currentTailIndex != stopIndex) { + (*block)[currentTailIndex++]->~T(); + } + if (block == lastBlockEnqueued) { + break; + } + block = block->next; + } + } + MOODYCAMEL_RETHROW; + } + } + + if (this->tailBlock == endBlock) { + assert(currentTailIndex == newTailIndex); + break; + } + this->tailBlock = this->tailBlock->next; + } + + MOODYCAMEL_CONSTEXPR_IF (!MOODYCAMEL_NOEXCEPT_CTOR(T, decltype(*itemFirst), new (static_cast(nullptr)) T(details::deref_noexcept(itemFirst)))) { + if (firstAllocatedBlock != nullptr) + blockIndex.load(std::memory_order_relaxed)->front.store((pr_blockIndexFront - 1) & (pr_blockIndexSize - 1), std::memory_order_release); + } + + this->tailIndex.store(newTailIndex, std::memory_order_release); + return true; + } + + template + size_t dequeue_bulk(It& itemFirst, size_t max) + { + auto tail = this->tailIndex.load(std::memory_order_relaxed); + auto overcommit = this->dequeueOvercommit.load(std::memory_order_relaxed); + auto desiredCount = static_cast(tail - (this->dequeueOptimisticCount.load(std::memory_order_relaxed) - overcommit)); + if (details::circular_less_than(0, desiredCount)) { + desiredCount = desiredCount < max ? desiredCount : max; + std::atomic_thread_fence(std::memory_order_acquire); + + auto myDequeueCount = this->dequeueOptimisticCount.fetch_add(desiredCount, std::memory_order_relaxed); + + tail = this->tailIndex.load(std::memory_order_acquire); + auto actualCount = static_cast(tail - (myDequeueCount - overcommit)); + if (details::circular_less_than(0, actualCount)) { + actualCount = desiredCount < actualCount ? desiredCount : actualCount; + if (actualCount < desiredCount) { + this->dequeueOvercommit.fetch_add(desiredCount - actualCount, std::memory_order_release); + } + + // Get the first index. Note that since there's guaranteed to be at least actualCount elements, this + // will never exceed tail. + auto firstIndex = this->headIndex.fetch_add(actualCount, std::memory_order_acq_rel); + + // Determine which block the first element is in + auto localBlockIndex = blockIndex.load(std::memory_order_acquire); + auto localBlockIndexHead = localBlockIndex->front.load(std::memory_order_acquire); + + auto headBase = localBlockIndex->entries[localBlockIndexHead].base; + auto firstBlockBaseIndex = firstIndex & ~static_cast(BLOCK_SIZE - 1); + auto offset = static_cast(static_cast::type>(firstBlockBaseIndex - headBase) / BLOCK_SIZE); + auto indexIndex = (localBlockIndexHead + offset) & (localBlockIndex->size - 1); + + // Iterate the blocks and dequeue + auto index = firstIndex; + do { + auto firstIndexInBlock = index; + index_t endIndex = (index & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + endIndex = details::circular_less_than(firstIndex + static_cast(actualCount), endIndex) ? firstIndex + static_cast(actualCount) : endIndex; + auto block = localBlockIndex->entries[indexIndex].block; + if (MOODYCAMEL_NOEXCEPT_ASSIGN(T, T&&, details::deref_noexcept(itemFirst) = std::move((*(*block)[index])))) { + while (index != endIndex) { + auto& el = *((*block)[index]); + *itemFirst++ = std::move(el); + el.~T(); + ++index; + } + } + else { + MOODYCAMEL_TRY { + while (index != endIndex) { + auto& el = *((*block)[index]); + *itemFirst = std::move(el); + ++itemFirst; + el.~T(); + ++index; + } + } + MOODYCAMEL_CATCH (...) { + // It's too late to revert the dequeue, but we can make sure that all + // the dequeued objects are properly destroyed and the block index + // (and empty count) are properly updated before we propagate the exception + do { + block = localBlockIndex->entries[indexIndex].block; + while (index != endIndex) { + (*block)[index++]->~T(); + } + block->ConcurrentQueue::Block::template set_many_empty(firstIndexInBlock, static_cast(endIndex - firstIndexInBlock)); + indexIndex = (indexIndex + 1) & (localBlockIndex->size - 1); + + firstIndexInBlock = index; + endIndex = (index & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + endIndex = details::circular_less_than(firstIndex + static_cast(actualCount), endIndex) ? firstIndex + static_cast(actualCount) : endIndex; + } while (index != firstIndex + actualCount); + + MOODYCAMEL_RETHROW; + } + } + block->ConcurrentQueue::Block::template set_many_empty(firstIndexInBlock, static_cast(endIndex - firstIndexInBlock)); + indexIndex = (indexIndex + 1) & (localBlockIndex->size - 1); + } while (index != firstIndex + actualCount); + + return actualCount; + } + else { + // Wasn't anything to dequeue after all; make the effective dequeue count eventually consistent + this->dequeueOvercommit.fetch_add(desiredCount, std::memory_order_release); + } + } + + return 0; + } + + private: + struct BlockIndexEntry + { + index_t base; + Block* block; + }; + + struct BlockIndexHeader + { + size_t size; + std::atomic front; // Current slot (not next, like pr_blockIndexFront) + BlockIndexEntry* entries; + void* prev; + }; + + + bool new_block_index(size_t numberOfFilledSlotsToExpose) + { + auto prevBlockSizeMask = pr_blockIndexSize - 1; + + // Create the new block + pr_blockIndexSize <<= 1; + auto newRawPtr = static_cast((Traits::malloc)(sizeof(BlockIndexHeader) + std::alignment_of::value - 1 + sizeof(BlockIndexEntry) * pr_blockIndexSize)); + if (newRawPtr == nullptr) { + pr_blockIndexSize >>= 1; // Reset to allow graceful retry + return false; + } + + auto newBlockIndexEntries = reinterpret_cast(details::align_for(newRawPtr + sizeof(BlockIndexHeader))); + + // Copy in all the old indices, if any + size_t j = 0; + if (pr_blockIndexSlotsUsed != 0) { + auto i = (pr_blockIndexFront - pr_blockIndexSlotsUsed) & prevBlockSizeMask; + do { + newBlockIndexEntries[j++] = pr_blockIndexEntries[i]; + i = (i + 1) & prevBlockSizeMask; + } while (i != pr_blockIndexFront); + } + + // Update everything + auto header = new (newRawPtr) BlockIndexHeader; + header->size = pr_blockIndexSize; + header->front.store(numberOfFilledSlotsToExpose - 1, std::memory_order_relaxed); + header->entries = newBlockIndexEntries; + header->prev = pr_blockIndexRaw; // we link the new block to the old one so we can free it later + + pr_blockIndexFront = j; + pr_blockIndexEntries = newBlockIndexEntries; + pr_blockIndexRaw = newRawPtr; + blockIndex.store(header, std::memory_order_release); + + return true; + } + + private: + std::atomic blockIndex; + + // To be used by producer only -- consumer must use the ones in referenced by blockIndex + size_t pr_blockIndexSlotsUsed; + size_t pr_blockIndexSize; + size_t pr_blockIndexFront; // Next slot (not current) + BlockIndexEntry* pr_blockIndexEntries; + void* pr_blockIndexRaw; + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + public: + ExplicitProducer* nextExplicitProducer; + private: +#endif + +#ifdef MCDBGQ_TRACKMEM + friend struct MemStats; +#endif + }; + + + ////////////////////////////////// + // Implicit queue + ////////////////////////////////// + + struct ImplicitProducer : public ProducerBase + { + ImplicitProducer(ConcurrentQueue* parent_) : + ProducerBase(parent_, false), + nextBlockIndexCapacity(IMPLICIT_INITIAL_INDEX_SIZE), + blockIndex(nullptr) + { + new_block_index(); + } + + ~ImplicitProducer() + { + // Note that since we're in the destructor we can assume that all enqueue/dequeue operations + // completed already; this means that all undequeued elements are placed contiguously across + // contiguous blocks, and that only the first and last remaining blocks can be only partially + // empty (all other remaining blocks must be completely full). + +#ifdef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED + // Unregister ourselves for thread termination notification + if (!this->inactive.load(std::memory_order_relaxed)) { + details::ThreadExitNotifier::unsubscribe(&threadExitListener); + } +#endif + + // Destroy all remaining elements! + auto tail = this->tailIndex.load(std::memory_order_relaxed); + auto index = this->headIndex.load(std::memory_order_relaxed); + Block* block = nullptr; + assert(index == tail || details::circular_less_than(index, tail)); + bool forceFreeLastBlock = index != tail; // If we enter the loop, then the last (tail) block will not be freed + while (index != tail) { + if ((index & static_cast(BLOCK_SIZE - 1)) == 0 || block == nullptr) { + if (block != nullptr) { + // Free the old block + this->parent->add_block_to_free_list(block); + } + + block = get_block_index_entry_for_index(index)->value.load(std::memory_order_relaxed); + } + + ((*block)[index])->~T(); + ++index; + } + // Even if the queue is empty, there's still one block that's not on the free list + // (unless the head index reached the end of it, in which case the tail will be poised + // to create a new block). + if (this->tailBlock != nullptr && (forceFreeLastBlock || (tail & static_cast(BLOCK_SIZE - 1)) != 0)) { + this->parent->add_block_to_free_list(this->tailBlock); + } + + // Destroy block index + auto localBlockIndex = blockIndex.load(std::memory_order_relaxed); + if (localBlockIndex != nullptr) { + for (size_t i = 0; i != localBlockIndex->capacity; ++i) { + localBlockIndex->index[i]->~BlockIndexEntry(); + } + do { + auto prev = localBlockIndex->prev; + localBlockIndex->~BlockIndexHeader(); + (Traits::free)(localBlockIndex); + localBlockIndex = prev; + } while (localBlockIndex != nullptr); + } + } + + template + inline bool enqueue(U&& element) + { + index_t currentTailIndex = this->tailIndex.load(std::memory_order_relaxed); + index_t newTailIndex = 1 + currentTailIndex; + if ((currentTailIndex & static_cast(BLOCK_SIZE - 1)) == 0) { + // We reached the end of a block, start a new one + auto head = this->headIndex.load(std::memory_order_relaxed); + assert(!details::circular_less_than(currentTailIndex, head)); + if (!details::circular_less_than(head, currentTailIndex + BLOCK_SIZE) || (MAX_SUBQUEUE_SIZE != details::const_numeric_max::value && (MAX_SUBQUEUE_SIZE == 0 || MAX_SUBQUEUE_SIZE - BLOCK_SIZE < currentTailIndex - head))) { + return false; + } +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + debug::DebugLock lock(mutex); +#endif + // Find out where we'll be inserting this block in the block index + BlockIndexEntry* idxEntry; + if (!insert_block_index_entry(idxEntry, currentTailIndex)) { + return false; + } + + // Get ahold of a new block + auto newBlock = this->parent->ConcurrentQueue::template requisition_block(); + if (newBlock == nullptr) { + rewind_block_index_tail(); + idxEntry->value.store(nullptr, std::memory_order_relaxed); + return false; + } +#ifdef MCDBGQ_TRACKMEM + newBlock->owner = this; +#endif + newBlock->ConcurrentQueue::Block::template reset_empty(); + + MOODYCAMEL_CONSTEXPR_IF (!MOODYCAMEL_NOEXCEPT_CTOR(T, U, new (static_cast(nullptr)) T(std::forward(element)))) { + // May throw, try to insert now before we publish the fact that we have this new block + MOODYCAMEL_TRY { + new ((*newBlock)[currentTailIndex]) T(std::forward(element)); + } + MOODYCAMEL_CATCH (...) { + rewind_block_index_tail(); + idxEntry->value.store(nullptr, std::memory_order_relaxed); + this->parent->add_block_to_free_list(newBlock); + MOODYCAMEL_RETHROW; + } + } + + // Insert the new block into the index + idxEntry->value.store(newBlock, std::memory_order_relaxed); + + this->tailBlock = newBlock; + + MOODYCAMEL_CONSTEXPR_IF (!MOODYCAMEL_NOEXCEPT_CTOR(T, U, new (static_cast(nullptr)) T(std::forward(element)))) { + this->tailIndex.store(newTailIndex, std::memory_order_release); + return true; + } + } + + // Enqueue + new ((*this->tailBlock)[currentTailIndex]) T(std::forward(element)); + + this->tailIndex.store(newTailIndex, std::memory_order_release); + return true; + } + + template + bool dequeue(U& element) + { + // See ExplicitProducer::dequeue for rationale and explanation + index_t tail = this->tailIndex.load(std::memory_order_relaxed); + index_t overcommit = this->dequeueOvercommit.load(std::memory_order_relaxed); + if (details::circular_less_than(this->dequeueOptimisticCount.load(std::memory_order_relaxed) - overcommit, tail)) { + std::atomic_thread_fence(std::memory_order_acquire); + + index_t myDequeueCount = this->dequeueOptimisticCount.fetch_add(1, std::memory_order_relaxed); + tail = this->tailIndex.load(std::memory_order_acquire); + if ((details::likely)(details::circular_less_than(myDequeueCount - overcommit, tail))) { + index_t index = this->headIndex.fetch_add(1, std::memory_order_acq_rel); + + // Determine which block the element is in + auto entry = get_block_index_entry_for_index(index); + + // Dequeue + auto block = entry->value.load(std::memory_order_relaxed); + auto& el = *((*block)[index]); + + if (!MOODYCAMEL_NOEXCEPT_ASSIGN(T, T&&, element = std::move(el))) { +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + // Note: Acquiring the mutex with every dequeue instead of only when a block + // is released is very sub-optimal, but it is, after all, purely debug code. + debug::DebugLock lock(producer->mutex); +#endif + struct Guard { + Block* block; + index_t index; + BlockIndexEntry* entry; + ConcurrentQueue* parent; + + ~Guard() + { + (*block)[index]->~T(); + if (block->ConcurrentQueue::Block::template set_empty(index)) { + entry->value.store(nullptr, std::memory_order_relaxed); + parent->add_block_to_free_list(block); + } + } + } guard = { block, index, entry, this->parent }; + + element = std::move(el); // NOLINT + } + else { + element = std::move(el); // NOLINT + el.~T(); // NOLINT + + if (block->ConcurrentQueue::Block::template set_empty(index)) { + { +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + debug::DebugLock lock(mutex); +#endif + // Add the block back into the global free pool (and remove from block index) + entry->value.store(nullptr, std::memory_order_relaxed); + } + this->parent->add_block_to_free_list(block); // releases the above store + } + } + + return true; + } + else { + this->dequeueOvercommit.fetch_add(1, std::memory_order_release); + } + } + + return false; + } + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable: 4706) // assignment within conditional expression +#endif + template + bool enqueue_bulk(It itemFirst, size_t count) + { + // First, we need to make sure we have enough room to enqueue all of the elements; + // this means pre-allocating blocks and putting them in the block index (but only if + // all the allocations succeeded). + + // Note that the tailBlock we start off with may not be owned by us any more; + // this happens if it was filled up exactly to the top (setting tailIndex to + // the first index of the next block which is not yet allocated), then dequeued + // completely (putting it on the free list) before we enqueue again. + + index_t startTailIndex = this->tailIndex.load(std::memory_order_relaxed); + auto startBlock = this->tailBlock; + Block* firstAllocatedBlock = nullptr; + auto endBlock = this->tailBlock; + + // Figure out how many blocks we'll need to allocate, and do so + size_t blockBaseDiff = ((startTailIndex + count - 1) & ~static_cast(BLOCK_SIZE - 1)) - ((startTailIndex - 1) & ~static_cast(BLOCK_SIZE - 1)); + index_t currentTailIndex = (startTailIndex - 1) & ~static_cast(BLOCK_SIZE - 1); + if (blockBaseDiff > 0) { +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + debug::DebugLock lock(mutex); +#endif + do { + blockBaseDiff -= static_cast(BLOCK_SIZE); + currentTailIndex += static_cast(BLOCK_SIZE); + + // Find out where we'll be inserting this block in the block index + BlockIndexEntry* idxEntry = nullptr; // initialization here unnecessary but compiler can't always tell + Block* newBlock; + bool indexInserted = false; + auto head = this->headIndex.load(std::memory_order_relaxed); + assert(!details::circular_less_than(currentTailIndex, head)); + bool full = !details::circular_less_than(head, currentTailIndex + BLOCK_SIZE) || (MAX_SUBQUEUE_SIZE != details::const_numeric_max::value && (MAX_SUBQUEUE_SIZE == 0 || MAX_SUBQUEUE_SIZE - BLOCK_SIZE < currentTailIndex - head)); + + if (full || !(indexInserted = insert_block_index_entry(idxEntry, currentTailIndex)) || (newBlock = this->parent->ConcurrentQueue::template requisition_block()) == nullptr) { + // Index allocation or block allocation failed; revert any other allocations + // and index insertions done so far for this operation + if (indexInserted) { + rewind_block_index_tail(); + idxEntry->value.store(nullptr, std::memory_order_relaxed); + } + currentTailIndex = (startTailIndex - 1) & ~static_cast(BLOCK_SIZE - 1); + for (auto block = firstAllocatedBlock; block != nullptr; block = block->next) { + currentTailIndex += static_cast(BLOCK_SIZE); + idxEntry = get_block_index_entry_for_index(currentTailIndex); + idxEntry->value.store(nullptr, std::memory_order_relaxed); + rewind_block_index_tail(); + } + this->parent->add_blocks_to_free_list(firstAllocatedBlock); + this->tailBlock = startBlock; + + return false; + } + +#ifdef MCDBGQ_TRACKMEM + newBlock->owner = this; +#endif + newBlock->ConcurrentQueue::Block::template reset_empty(); + newBlock->next = nullptr; + + // Insert the new block into the index + idxEntry->value.store(newBlock, std::memory_order_relaxed); + + // Store the chain of blocks so that we can undo if later allocations fail, + // and so that we can find the blocks when we do the actual enqueueing + if ((startTailIndex & static_cast(BLOCK_SIZE - 1)) != 0 || firstAllocatedBlock != nullptr) { + assert(this->tailBlock != nullptr); + this->tailBlock->next = newBlock; + } + this->tailBlock = newBlock; + endBlock = newBlock; + firstAllocatedBlock = firstAllocatedBlock == nullptr ? newBlock : firstAllocatedBlock; + } while (blockBaseDiff > 0); + } + + // Enqueue, one block at a time + index_t newTailIndex = startTailIndex + static_cast(count); + currentTailIndex = startTailIndex; + this->tailBlock = startBlock; + assert((startTailIndex & static_cast(BLOCK_SIZE - 1)) != 0 || firstAllocatedBlock != nullptr || count == 0); + if ((startTailIndex & static_cast(BLOCK_SIZE - 1)) == 0 && firstAllocatedBlock != nullptr) { + this->tailBlock = firstAllocatedBlock; + } + while (true) { + index_t stopIndex = (currentTailIndex & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + if (details::circular_less_than(newTailIndex, stopIndex)) { + stopIndex = newTailIndex; + } + MOODYCAMEL_CONSTEXPR_IF (MOODYCAMEL_NOEXCEPT_CTOR(T, decltype(*itemFirst), new (static_cast(nullptr)) T(details::deref_noexcept(itemFirst)))) { + while (currentTailIndex != stopIndex) { + new ((*this->tailBlock)[currentTailIndex++]) T(*itemFirst++); + } + } + else { + MOODYCAMEL_TRY { + while (currentTailIndex != stopIndex) { + new ((*this->tailBlock)[currentTailIndex]) T(details::nomove_if(nullptr)) T(details::deref_noexcept(itemFirst)))>::eval(*itemFirst)); + ++currentTailIndex; + ++itemFirst; + } + } + MOODYCAMEL_CATCH (...) { + auto constructedStopIndex = currentTailIndex; + auto lastBlockEnqueued = this->tailBlock; + + if (!details::is_trivially_destructible::value) { + auto block = startBlock; + if ((startTailIndex & static_cast(BLOCK_SIZE - 1)) == 0) { + block = firstAllocatedBlock; + } + currentTailIndex = startTailIndex; + while (true) { + stopIndex = (currentTailIndex & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + if (details::circular_less_than(constructedStopIndex, stopIndex)) { + stopIndex = constructedStopIndex; + } + while (currentTailIndex != stopIndex) { + (*block)[currentTailIndex++]->~T(); + } + if (block == lastBlockEnqueued) { + break; + } + block = block->next; + } + } + + currentTailIndex = (startTailIndex - 1) & ~static_cast(BLOCK_SIZE - 1); + for (auto block = firstAllocatedBlock; block != nullptr; block = block->next) { + currentTailIndex += static_cast(BLOCK_SIZE); + auto idxEntry = get_block_index_entry_for_index(currentTailIndex); + idxEntry->value.store(nullptr, std::memory_order_relaxed); + rewind_block_index_tail(); + } + this->parent->add_blocks_to_free_list(firstAllocatedBlock); + this->tailBlock = startBlock; + MOODYCAMEL_RETHROW; + } + } + + if (this->tailBlock == endBlock) { + assert(currentTailIndex == newTailIndex); + break; + } + this->tailBlock = this->tailBlock->next; + } + this->tailIndex.store(newTailIndex, std::memory_order_release); + return true; + } +#ifdef _MSC_VER +#pragma warning(pop) +#endif + + template + size_t dequeue_bulk(It& itemFirst, size_t max) + { + auto tail = this->tailIndex.load(std::memory_order_relaxed); + auto overcommit = this->dequeueOvercommit.load(std::memory_order_relaxed); + auto desiredCount = static_cast(tail - (this->dequeueOptimisticCount.load(std::memory_order_relaxed) - overcommit)); + if (details::circular_less_than(0, desiredCount)) { + desiredCount = desiredCount < max ? desiredCount : max; + std::atomic_thread_fence(std::memory_order_acquire); + + auto myDequeueCount = this->dequeueOptimisticCount.fetch_add(desiredCount, std::memory_order_relaxed); + + tail = this->tailIndex.load(std::memory_order_acquire); + auto actualCount = static_cast(tail - (myDequeueCount - overcommit)); + if (details::circular_less_than(0, actualCount)) { + actualCount = desiredCount < actualCount ? desiredCount : actualCount; + if (actualCount < desiredCount) { + this->dequeueOvercommit.fetch_add(desiredCount - actualCount, std::memory_order_release); + } + + // Get the first index. Note that since there's guaranteed to be at least actualCount elements, this + // will never exceed tail. + auto firstIndex = this->headIndex.fetch_add(actualCount, std::memory_order_acq_rel); + + // Iterate the blocks and dequeue + auto index = firstIndex; + BlockIndexHeader* localBlockIndex; + auto indexIndex = get_block_index_index_for_index(index, localBlockIndex); + do { + auto blockStartIndex = index; + index_t endIndex = (index & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + endIndex = details::circular_less_than(firstIndex + static_cast(actualCount), endIndex) ? firstIndex + static_cast(actualCount) : endIndex; + + auto entry = localBlockIndex->index[indexIndex]; + auto block = entry->value.load(std::memory_order_relaxed); + if (MOODYCAMEL_NOEXCEPT_ASSIGN(T, T&&, details::deref_noexcept(itemFirst) = std::move((*(*block)[index])))) { + while (index != endIndex) { + auto& el = *((*block)[index]); + *itemFirst++ = std::move(el); + el.~T(); + ++index; + } + } + else { + MOODYCAMEL_TRY { + while (index != endIndex) { + auto& el = *((*block)[index]); + *itemFirst = std::move(el); + ++itemFirst; + el.~T(); + ++index; + } + } + MOODYCAMEL_CATCH (...) { + do { + entry = localBlockIndex->index[indexIndex]; + block = entry->value.load(std::memory_order_relaxed); + while (index != endIndex) { + (*block)[index++]->~T(); + } + + if (block->ConcurrentQueue::Block::template set_many_empty(blockStartIndex, static_cast(endIndex - blockStartIndex))) { +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + debug::DebugLock lock(mutex); +#endif + entry->value.store(nullptr, std::memory_order_relaxed); + this->parent->add_block_to_free_list(block); + } + indexIndex = (indexIndex + 1) & (localBlockIndex->capacity - 1); + + blockStartIndex = index; + endIndex = (index & ~static_cast(BLOCK_SIZE - 1)) + static_cast(BLOCK_SIZE); + endIndex = details::circular_less_than(firstIndex + static_cast(actualCount), endIndex) ? firstIndex + static_cast(actualCount) : endIndex; + } while (index != firstIndex + actualCount); + + MOODYCAMEL_RETHROW; + } + } + if (block->ConcurrentQueue::Block::template set_many_empty(blockStartIndex, static_cast(endIndex - blockStartIndex))) { + { +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + debug::DebugLock lock(mutex); +#endif + // Note that the set_many_empty above did a release, meaning that anybody who acquires the block + // we're about to free can use it safely since our writes (and reads!) will have happened-before then. + entry->value.store(nullptr, std::memory_order_relaxed); + } + this->parent->add_block_to_free_list(block); // releases the above store + } + indexIndex = (indexIndex + 1) & (localBlockIndex->capacity - 1); + } while (index != firstIndex + actualCount); + + return actualCount; + } + else { + this->dequeueOvercommit.fetch_add(desiredCount, std::memory_order_release); + } + } + + return 0; + } + + private: + // The block size must be > 1, so any number with the low bit set is an invalid block base index + static const index_t INVALID_BLOCK_BASE = 1; + + struct BlockIndexEntry + { + std::atomic key; + std::atomic value; + }; + + struct BlockIndexHeader + { + size_t capacity; + std::atomic tail; + BlockIndexEntry* entries; + BlockIndexEntry** index; + BlockIndexHeader* prev; + }; + + template + inline bool insert_block_index_entry(BlockIndexEntry*& idxEntry, index_t blockStartIndex) + { + auto localBlockIndex = blockIndex.load(std::memory_order_relaxed); // We're the only writer thread, relaxed is OK + if (localBlockIndex == nullptr) { + return false; // this can happen if new_block_index failed in the constructor + } + size_t newTail = (localBlockIndex->tail.load(std::memory_order_relaxed) + 1) & (localBlockIndex->capacity - 1); + idxEntry = localBlockIndex->index[newTail]; + if (idxEntry->key.load(std::memory_order_relaxed) == INVALID_BLOCK_BASE || + idxEntry->value.load(std::memory_order_relaxed) == nullptr) { + + idxEntry->key.store(blockStartIndex, std::memory_order_relaxed); + localBlockIndex->tail.store(newTail, std::memory_order_release); + return true; + } + + // No room in the old block index, try to allocate another one! + MOODYCAMEL_CONSTEXPR_IF (allocMode == CannotAlloc) { + return false; + } + else if (!new_block_index()) { + return false; + } + localBlockIndex = blockIndex.load(std::memory_order_relaxed); + newTail = (localBlockIndex->tail.load(std::memory_order_relaxed) + 1) & (localBlockIndex->capacity - 1); + idxEntry = localBlockIndex->index[newTail]; + assert(idxEntry->key.load(std::memory_order_relaxed) == INVALID_BLOCK_BASE); + idxEntry->key.store(blockStartIndex, std::memory_order_relaxed); + localBlockIndex->tail.store(newTail, std::memory_order_release); + return true; + } + + inline void rewind_block_index_tail() + { + auto localBlockIndex = blockIndex.load(std::memory_order_relaxed); + localBlockIndex->tail.store((localBlockIndex->tail.load(std::memory_order_relaxed) - 1) & (localBlockIndex->capacity - 1), std::memory_order_relaxed); + } + + inline BlockIndexEntry* get_block_index_entry_for_index(index_t index) const + { + BlockIndexHeader* localBlockIndex; + auto idx = get_block_index_index_for_index(index, localBlockIndex); + return localBlockIndex->index[idx]; + } + + inline size_t get_block_index_index_for_index(index_t index, BlockIndexHeader*& localBlockIndex) const + { +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + debug::DebugLock lock(mutex); +#endif + index &= ~static_cast(BLOCK_SIZE - 1); + localBlockIndex = blockIndex.load(std::memory_order_acquire); + auto tail = localBlockIndex->tail.load(std::memory_order_acquire); + auto tailBase = localBlockIndex->index[tail]->key.load(std::memory_order_relaxed); + assert(tailBase != INVALID_BLOCK_BASE); + // Note: Must use division instead of shift because the index may wrap around, causing a negative + // offset, whose negativity we want to preserve + auto offset = static_cast(static_cast::type>(index - tailBase) / BLOCK_SIZE); + size_t idx = (tail + offset) & (localBlockIndex->capacity - 1); + assert(localBlockIndex->index[idx]->key.load(std::memory_order_relaxed) == index && localBlockIndex->index[idx]->value.load(std::memory_order_relaxed) != nullptr); + return idx; + } + + bool new_block_index() + { + auto prev = blockIndex.load(std::memory_order_relaxed); + size_t prevCapacity = prev == nullptr ? 0 : prev->capacity; + auto entryCount = prev == nullptr ? nextBlockIndexCapacity : prevCapacity; + auto raw = static_cast((Traits::malloc)( + sizeof(BlockIndexHeader) + + std::alignment_of::value - 1 + sizeof(BlockIndexEntry) * entryCount + + std::alignment_of::value - 1 + sizeof(BlockIndexEntry*) * nextBlockIndexCapacity)); + if (raw == nullptr) { + return false; + } + + auto header = new (raw) BlockIndexHeader; + auto entries = reinterpret_cast(details::align_for(raw + sizeof(BlockIndexHeader))); + auto index = reinterpret_cast(details::align_for(reinterpret_cast(entries) + sizeof(BlockIndexEntry) * entryCount)); + if (prev != nullptr) { + auto prevTail = prev->tail.load(std::memory_order_relaxed); + auto prevPos = prevTail; + size_t i = 0; + do { + prevPos = (prevPos + 1) & (prev->capacity - 1); + index[i++] = prev->index[prevPos]; + } while (prevPos != prevTail); + assert(i == prevCapacity); + } + for (size_t i = 0; i != entryCount; ++i) { + new (entries + i) BlockIndexEntry; + entries[i].key.store(INVALID_BLOCK_BASE, std::memory_order_relaxed); + index[prevCapacity + i] = entries + i; + } + header->prev = prev; + header->entries = entries; + header->index = index; + header->capacity = nextBlockIndexCapacity; + header->tail.store((prevCapacity - 1) & (nextBlockIndexCapacity - 1), std::memory_order_relaxed); + + blockIndex.store(header, std::memory_order_release); + + nextBlockIndexCapacity <<= 1; + + return true; + } + + private: + size_t nextBlockIndexCapacity; + std::atomic blockIndex; + +#ifdef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED + public: + details::ThreadExitListener threadExitListener; + private: +#endif + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + public: + ImplicitProducer* nextImplicitProducer; + private: +#endif + +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODBLOCKINDEX + mutable debug::DebugMutex mutex; +#endif +#ifdef MCDBGQ_TRACKMEM + friend struct MemStats; +#endif + }; + + + ////////////////////////////////// + // Block pool manipulation + ////////////////////////////////// + + void populate_initial_block_list(size_t blockCount) + { + initialBlockPoolSize = blockCount; + if (initialBlockPoolSize == 0) { + initialBlockPool = nullptr; + return; + } + + initialBlockPool = create_array(blockCount); + if (initialBlockPool == nullptr) { + initialBlockPoolSize = 0; + } + for (size_t i = 0; i < initialBlockPoolSize; ++i) { + initialBlockPool[i].dynamicallyAllocated = false; + } + } + + inline Block* try_get_block_from_initial_pool() + { + if (initialBlockPoolIndex.load(std::memory_order_relaxed) >= initialBlockPoolSize) { + return nullptr; + } + + auto index = initialBlockPoolIndex.fetch_add(1, std::memory_order_relaxed); + + return index < initialBlockPoolSize ? (initialBlockPool + index) : nullptr; + } + + inline void add_block_to_free_list(Block* block) + { +#ifdef MCDBGQ_TRACKMEM + block->owner = nullptr; +#endif + freeList.add(block); + } + + inline void add_blocks_to_free_list(Block* block) + { + while (block != nullptr) { + auto next = block->next; + add_block_to_free_list(block); + block = next; + } + } + + inline Block* try_get_block_from_free_list() + { + return freeList.try_get(); + } + + // Gets a free block from one of the memory pools, or allocates a new one (if applicable) + template + Block* requisition_block() + { + auto block = try_get_block_from_initial_pool(); + if (block != nullptr) { + return block; + } + + block = try_get_block_from_free_list(); + if (block != nullptr) { + return block; + } + + MOODYCAMEL_CONSTEXPR_IF (canAlloc == CanAlloc) { + return create(); + } + else { + return nullptr; + } + } + + +#ifdef MCDBGQ_TRACKMEM + public: + struct MemStats { + size_t allocatedBlocks; + size_t usedBlocks; + size_t freeBlocks; + size_t ownedBlocksExplicit; + size_t ownedBlocksImplicit; + size_t implicitProducers; + size_t explicitProducers; + size_t elementsEnqueued; + size_t blockClassBytes; + size_t queueClassBytes; + size_t implicitBlockIndexBytes; + size_t explicitBlockIndexBytes; + + friend class ConcurrentQueue; + + private: + static MemStats getFor(ConcurrentQueue* q) + { + MemStats stats = { 0 }; + + stats.elementsEnqueued = q->size_approx(); + + auto block = q->freeList.head_unsafe(); + while (block != nullptr) { + ++stats.allocatedBlocks; + ++stats.freeBlocks; + block = block->freeListNext.load(std::memory_order_relaxed); + } + + for (auto ptr = q->producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { + bool implicit = dynamic_cast(ptr) != nullptr; + stats.implicitProducers += implicit ? 1 : 0; + stats.explicitProducers += implicit ? 0 : 1; + + if (implicit) { + auto prod = static_cast(ptr); + stats.queueClassBytes += sizeof(ImplicitProducer); + auto head = prod->headIndex.load(std::memory_order_relaxed); + auto tail = prod->tailIndex.load(std::memory_order_relaxed); + auto hash = prod->blockIndex.load(std::memory_order_relaxed); + if (hash != nullptr) { + for (size_t i = 0; i != hash->capacity; ++i) { + if (hash->index[i]->key.load(std::memory_order_relaxed) != ImplicitProducer::INVALID_BLOCK_BASE && hash->index[i]->value.load(std::memory_order_relaxed) != nullptr) { + ++stats.allocatedBlocks; + ++stats.ownedBlocksImplicit; + } + } + stats.implicitBlockIndexBytes += hash->capacity * sizeof(typename ImplicitProducer::BlockIndexEntry); + for (; hash != nullptr; hash = hash->prev) { + stats.implicitBlockIndexBytes += sizeof(typename ImplicitProducer::BlockIndexHeader) + hash->capacity * sizeof(typename ImplicitProducer::BlockIndexEntry*); + } + } + for (; details::circular_less_than(head, tail); head += BLOCK_SIZE) { + //auto block = prod->get_block_index_entry_for_index(head); + ++stats.usedBlocks; + } + } + else { + auto prod = static_cast(ptr); + stats.queueClassBytes += sizeof(ExplicitProducer); + auto tailBlock = prod->tailBlock; + bool wasNonEmpty = false; + if (tailBlock != nullptr) { + auto block = tailBlock; + do { + ++stats.allocatedBlocks; + if (!block->ConcurrentQueue::Block::template is_empty() || wasNonEmpty) { + ++stats.usedBlocks; + wasNonEmpty = wasNonEmpty || block != tailBlock; + } + ++stats.ownedBlocksExplicit; + block = block->next; + } while (block != tailBlock); + } + auto index = prod->blockIndex.load(std::memory_order_relaxed); + while (index != nullptr) { + stats.explicitBlockIndexBytes += sizeof(typename ExplicitProducer::BlockIndexHeader) + index->size * sizeof(typename ExplicitProducer::BlockIndexEntry); + index = static_cast(index->prev); + } + } + } + + auto freeOnInitialPool = q->initialBlockPoolIndex.load(std::memory_order_relaxed) >= q->initialBlockPoolSize ? 0 : q->initialBlockPoolSize - q->initialBlockPoolIndex.load(std::memory_order_relaxed); + stats.allocatedBlocks += freeOnInitialPool; + stats.freeBlocks += freeOnInitialPool; + + stats.blockClassBytes = sizeof(Block) * stats.allocatedBlocks; + stats.queueClassBytes += sizeof(ConcurrentQueue); + + return stats; + } + }; + + // For debugging only. Not thread-safe. + MemStats getMemStats() + { + return MemStats::getFor(this); + } + private: + friend struct MemStats; +#endif + + + ////////////////////////////////// + // Producer list manipulation + ////////////////////////////////// + + ProducerBase* recycle_or_create_producer(bool isExplicit) + { + bool recycled; + return recycle_or_create_producer(isExplicit, recycled); + } + + ProducerBase* recycle_or_create_producer(bool isExplicit, bool& recycled) + { +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODHASH + debug::DebugLock lock(implicitProdMutex); +#endif + // Try to re-use one first + for (auto ptr = producerListTail.load(std::memory_order_acquire); ptr != nullptr; ptr = ptr->next_prod()) { + if (ptr->inactive.load(std::memory_order_relaxed) && ptr->isExplicit == isExplicit) { + bool expected = true; + if (ptr->inactive.compare_exchange_strong(expected, /* desired */ false, std::memory_order_acquire, std::memory_order_relaxed)) { + // We caught one! It's been marked as activated, the caller can have it + recycled = true; + return ptr; + } + } + } + + recycled = false; + return add_producer(isExplicit ? static_cast(create(this)) : create(this)); + } + + ProducerBase* add_producer(ProducerBase* producer) + { + // Handle failed memory allocation + if (producer == nullptr) { + return nullptr; + } + + producerCount.fetch_add(1, std::memory_order_relaxed); + + // Add it to the lock-free list + auto prevTail = producerListTail.load(std::memory_order_relaxed); + do { + producer->next = prevTail; + } while (!producerListTail.compare_exchange_weak(prevTail, producer, std::memory_order_release, std::memory_order_relaxed)); + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + if (producer->isExplicit) { + auto prevTailExplicit = explicitProducers.load(std::memory_order_relaxed); + do { + static_cast(producer)->nextExplicitProducer = prevTailExplicit; + } while (!explicitProducers.compare_exchange_weak(prevTailExplicit, static_cast(producer), std::memory_order_release, std::memory_order_relaxed)); + } + else { + auto prevTailImplicit = implicitProducers.load(std::memory_order_relaxed); + do { + static_cast(producer)->nextImplicitProducer = prevTailImplicit; + } while (!implicitProducers.compare_exchange_weak(prevTailImplicit, static_cast(producer), std::memory_order_release, std::memory_order_relaxed)); + } +#endif + + return producer; + } + + void reown_producers() + { + // After another instance is moved-into/swapped-with this one, all the + // producers we stole still think their parents are the other queue. + // So fix them up! + for (auto ptr = producerListTail.load(std::memory_order_relaxed); ptr != nullptr; ptr = ptr->next_prod()) { + ptr->parent = this; + } + } + + + ////////////////////////////////// + // Implicit producer hash + ////////////////////////////////// + + struct ImplicitProducerKVP + { + std::atomic key; + ImplicitProducer* value; // No need for atomicity since it's only read by the thread that sets it in the first place + + ImplicitProducerKVP() : value(nullptr) { } + + ImplicitProducerKVP(ImplicitProducerKVP&& other) MOODYCAMEL_NOEXCEPT + { + key.store(other.key.load(std::memory_order_relaxed), std::memory_order_relaxed); + value = other.value; + } + + inline ImplicitProducerKVP& operator=(ImplicitProducerKVP&& other) MOODYCAMEL_NOEXCEPT + { + swap(other); + return *this; + } + + inline void swap(ImplicitProducerKVP& other) MOODYCAMEL_NOEXCEPT + { + if (this != &other) { + details::swap_relaxed(key, other.key); + std::swap(value, other.value); + } + } + }; + + template + friend void moodycamel::swap(typename ConcurrentQueue::ImplicitProducerKVP&, typename ConcurrentQueue::ImplicitProducerKVP&) MOODYCAMEL_NOEXCEPT; + + struct ImplicitProducerHash + { + size_t capacity; + ImplicitProducerKVP* entries; + ImplicitProducerHash* prev; + }; + + inline void populate_initial_implicit_producer_hash() + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) { + return; + } + else { + implicitProducerHashCount.store(0, std::memory_order_relaxed); + auto hash = &initialImplicitProducerHash; + hash->capacity = INITIAL_IMPLICIT_PRODUCER_HASH_SIZE; + hash->entries = &initialImplicitProducerHashEntries[0]; + for (size_t i = 0; i != INITIAL_IMPLICIT_PRODUCER_HASH_SIZE; ++i) { + initialImplicitProducerHashEntries[i].key.store(details::invalid_thread_id, std::memory_order_relaxed); + } + hash->prev = nullptr; + implicitProducerHash.store(hash, std::memory_order_relaxed); + } + } + + void swap_implicit_producer_hashes(ConcurrentQueue& other) + { + MOODYCAMEL_CONSTEXPR_IF (INITIAL_IMPLICIT_PRODUCER_HASH_SIZE == 0) { + return; + } + else { + // Swap (assumes our implicit producer hash is initialized) + initialImplicitProducerHashEntries.swap(other.initialImplicitProducerHashEntries); + initialImplicitProducerHash.entries = &initialImplicitProducerHashEntries[0]; + other.initialImplicitProducerHash.entries = &other.initialImplicitProducerHashEntries[0]; + + details::swap_relaxed(implicitProducerHashCount, other.implicitProducerHashCount); + + details::swap_relaxed(implicitProducerHash, other.implicitProducerHash); + if (implicitProducerHash.load(std::memory_order_relaxed) == &other.initialImplicitProducerHash) { + implicitProducerHash.store(&initialImplicitProducerHash, std::memory_order_relaxed); + } + else { + ImplicitProducerHash* hash; + for (hash = implicitProducerHash.load(std::memory_order_relaxed); hash->prev != &other.initialImplicitProducerHash; hash = hash->prev) { + continue; + } + hash->prev = &initialImplicitProducerHash; + } + if (other.implicitProducerHash.load(std::memory_order_relaxed) == &initialImplicitProducerHash) { + other.implicitProducerHash.store(&other.initialImplicitProducerHash, std::memory_order_relaxed); + } + else { + ImplicitProducerHash* hash; + for (hash = other.implicitProducerHash.load(std::memory_order_relaxed); hash->prev != &initialImplicitProducerHash; hash = hash->prev) { + continue; + } + hash->prev = &other.initialImplicitProducerHash; + } + } + } + + // Only fails (returns nullptr) if memory allocation fails + ImplicitProducer* get_or_add_implicit_producer() + { + // Note that since the data is essentially thread-local (key is thread ID), + // there's a reduced need for fences (memory ordering is already consistent + // for any individual thread), except for the current table itself. + + // Start by looking for the thread ID in the current and all previous hash tables. + // If it's not found, it must not be in there yet, since this same thread would + // have added it previously to one of the tables that we traversed. + + // Code and algorithm adapted from http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table + +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODHASH + debug::DebugLock lock(implicitProdMutex); +#endif + + auto id = details::thread_id(); + auto hashedId = details::hash_thread_id(id); + + auto mainHash = implicitProducerHash.load(std::memory_order_acquire); + assert(mainHash != nullptr); // silence clang-tidy and MSVC warnings (hash cannot be null) + for (auto hash = mainHash; hash != nullptr; hash = hash->prev) { + // Look for the id in this hash + auto index = hashedId; + while (true) { // Not an infinite loop because at least one slot is free in the hash table + index &= hash->capacity - 1; + + auto probedKey = hash->entries[index].key.load(std::memory_order_relaxed); + if (probedKey == id) { + // Found it! If we had to search several hashes deep, though, we should lazily add it + // to the current main hash table to avoid the extended search next time. + // Note there's guaranteed to be room in the current hash table since every subsequent + // table implicitly reserves space for all previous tables (there's only one + // implicitProducerHashCount). + auto value = hash->entries[index].value; + if (hash != mainHash) { + index = hashedId; + while (true) { + index &= mainHash->capacity - 1; + probedKey = mainHash->entries[index].key.load(std::memory_order_relaxed); + auto empty = details::invalid_thread_id; +#ifdef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED + auto reusable = details::invalid_thread_id2; + if ((probedKey == empty && mainHash->entries[index].key.compare_exchange_strong(empty, id, std::memory_order_relaxed, std::memory_order_relaxed)) || + (probedKey == reusable && mainHash->entries[index].key.compare_exchange_strong(reusable, id, std::memory_order_acquire, std::memory_order_acquire))) { +#else + if ((probedKey == empty && mainHash->entries[index].key.compare_exchange_strong(empty, id, std::memory_order_relaxed, std::memory_order_relaxed))) { +#endif + mainHash->entries[index].value = value; + break; + } + ++index; + } + } + + return value; + } + if (probedKey == details::invalid_thread_id) { + break; // Not in this hash table + } + ++index; + } + } + + // Insert! + auto newCount = 1 + implicitProducerHashCount.fetch_add(1, std::memory_order_relaxed); + while (true) { + // NOLINTNEXTLINE(clang-analyzer-core.NullDereference) + if (newCount >= (mainHash->capacity >> 1) && !implicitProducerHashResizeInProgress.test_and_set(std::memory_order_acquire)) { + // We've acquired the resize lock, try to allocate a bigger hash table. + // Note the acquire fence synchronizes with the release fence at the end of this block, and hence when + // we reload implicitProducerHash it must be the most recent version (it only gets changed within this + // locked block). + mainHash = implicitProducerHash.load(std::memory_order_acquire); + if (newCount >= (mainHash->capacity >> 1)) { + auto newCapacity = mainHash->capacity << 1; + while (newCount >= (newCapacity >> 1)) { + newCapacity <<= 1; + } + auto raw = static_cast((Traits::malloc)(sizeof(ImplicitProducerHash) + std::alignment_of::value - 1 + sizeof(ImplicitProducerKVP) * newCapacity)); + if (raw == nullptr) { + // Allocation failed + implicitProducerHashCount.fetch_sub(1, std::memory_order_relaxed); + implicitProducerHashResizeInProgress.clear(std::memory_order_relaxed); + return nullptr; + } + + auto newHash = new (raw) ImplicitProducerHash; + newHash->capacity = static_cast(newCapacity); + newHash->entries = reinterpret_cast(details::align_for(raw + sizeof(ImplicitProducerHash))); + for (size_t i = 0; i != newCapacity; ++i) { + new (newHash->entries + i) ImplicitProducerKVP; + newHash->entries[i].key.store(details::invalid_thread_id, std::memory_order_relaxed); + } + newHash->prev = mainHash; + implicitProducerHash.store(newHash, std::memory_order_release); + implicitProducerHashResizeInProgress.clear(std::memory_order_release); + mainHash = newHash; + } + else { + implicitProducerHashResizeInProgress.clear(std::memory_order_release); + } + } + + // If it's < three-quarters full, add to the old one anyway so that we don't have to wait for the next table + // to finish being allocated by another thread (and if we just finished allocating above, the condition will + // always be true) + if (newCount < (mainHash->capacity >> 1) + (mainHash->capacity >> 2)) { + bool recycled; + auto producer = static_cast(recycle_or_create_producer(false, recycled)); + if (producer == nullptr) { + implicitProducerHashCount.fetch_sub(1, std::memory_order_relaxed); + return nullptr; + } + if (recycled) { + implicitProducerHashCount.fetch_sub(1, std::memory_order_relaxed); + } + +#ifdef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED + producer->threadExitListener.callback = &ConcurrentQueue::implicit_producer_thread_exited_callback; + producer->threadExitListener.userData = producer; + details::ThreadExitNotifier::subscribe(&producer->threadExitListener); +#endif + + auto index = hashedId; + while (true) { + index &= mainHash->capacity - 1; + auto probedKey = mainHash->entries[index].key.load(std::memory_order_relaxed); + + auto empty = details::invalid_thread_id; +#ifdef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED + auto reusable = details::invalid_thread_id2; + if ((probedKey == empty && mainHash->entries[index].key.compare_exchange_strong(empty, id, std::memory_order_relaxed, std::memory_order_relaxed)) || + (probedKey == reusable && mainHash->entries[index].key.compare_exchange_strong(reusable, id, std::memory_order_acquire, std::memory_order_acquire))) { +#else + if ((probedKey == empty && mainHash->entries[index].key.compare_exchange_strong(empty, id, std::memory_order_relaxed, std::memory_order_relaxed))) { +#endif + mainHash->entries[index].value = producer; + break; + } + ++index; + } + return producer; + } + + // Hmm, the old hash is quite full and somebody else is busy allocating a new one. + // We need to wait for the allocating thread to finish (if it succeeds, we add, if not, + // we try to allocate ourselves). + mainHash = implicitProducerHash.load(std::memory_order_acquire); + } + } + +#ifdef MOODYCAMEL_CPP11_THREAD_LOCAL_SUPPORTED + void implicit_producer_thread_exited(ImplicitProducer* producer) + { + // Remove from thread exit listeners + details::ThreadExitNotifier::unsubscribe(&producer->threadExitListener); + + // Remove from hash +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODHASH + debug::DebugLock lock(implicitProdMutex); +#endif + auto hash = implicitProducerHash.load(std::memory_order_acquire); + assert(hash != nullptr); // The thread exit listener is only registered if we were added to a hash in the first place + auto id = details::thread_id(); + auto hashedId = details::hash_thread_id(id); + details::thread_id_t probedKey; + + // We need to traverse all the hashes just in case other threads aren't on the current one yet and are + // trying to add an entry thinking there's a free slot (because they reused a producer) + for (; hash != nullptr; hash = hash->prev) { + auto index = hashedId; + do { + index &= hash->capacity - 1; + probedKey = hash->entries[index].key.load(std::memory_order_relaxed); + if (probedKey == id) { + hash->entries[index].key.store(details::invalid_thread_id2, std::memory_order_release); + break; + } + ++index; + } while (probedKey != details::invalid_thread_id); // Can happen if the hash has changed but we weren't put back in it yet, or if we weren't added to this hash in the first place + } + + // Mark the queue as being recyclable + producer->inactive.store(true, std::memory_order_release); + } + + static void implicit_producer_thread_exited_callback(void* userData) + { + auto producer = static_cast(userData); + auto queue = producer->parent; + queue->implicit_producer_thread_exited(producer); + } +#endif + + ////////////////////////////////// + // Utility functions + ////////////////////////////////// + + template + static inline void* aligned_malloc(size_t size) + { + MOODYCAMEL_CONSTEXPR_IF (std::alignment_of::value <= std::alignment_of::value) + return (Traits::malloc)(size); + else { + size_t alignment = std::alignment_of::value; + void* raw = (Traits::malloc)(size + alignment - 1 + sizeof(void*)); + if (!raw) + return nullptr; + char* ptr = details::align_for(reinterpret_cast(raw) + sizeof(void*)); + *(reinterpret_cast(ptr) - 1) = raw; + return ptr; + } + } + + template + static inline void aligned_free(void* ptr) + { + MOODYCAMEL_CONSTEXPR_IF (std::alignment_of::value <= std::alignment_of::value) + return (Traits::free)(ptr); + else + (Traits::free)(ptr ? *(reinterpret_cast(ptr) - 1) : nullptr); + } + + template + static inline U* create_array(size_t count) + { + assert(count > 0); + U* p = static_cast(aligned_malloc(sizeof(U) * count)); + if (p == nullptr) + return nullptr; + + for (size_t i = 0; i != count; ++i) + new (p + i) U(); + return p; + } + + template + static inline void destroy_array(U* p, size_t count) + { + if (p != nullptr) { + assert(count > 0); + for (size_t i = count; i != 0; ) + (p + --i)->~U(); + } + aligned_free(p); + } + + template + static inline U* create() + { + void* p = aligned_malloc(sizeof(U)); + return p != nullptr ? new (p) U : nullptr; + } + + template + static inline U* create(A1&& a1) + { + void* p = aligned_malloc(sizeof(U)); + return p != nullptr ? new (p) U(std::forward(a1)) : nullptr; + } + + template + static inline void destroy(U* p) + { + if (p != nullptr) + p->~U(); + aligned_free(p); + } + +private: + std::atomic producerListTail; + std::atomic producerCount; + + std::atomic initialBlockPoolIndex; + Block* initialBlockPool; + size_t initialBlockPoolSize; + +#ifndef MCDBGQ_USEDEBUGFREELIST + FreeList freeList; +#else + debug::DebugFreeList freeList; +#endif + + std::atomic implicitProducerHash; + std::atomic implicitProducerHashCount; // Number of slots logically used + ImplicitProducerHash initialImplicitProducerHash; + std::array initialImplicitProducerHashEntries; + std::atomic_flag implicitProducerHashResizeInProgress; + + std::atomic nextExplicitConsumerId; + std::atomic globalExplicitConsumerOffset; + +#ifdef MCDBGQ_NOLOCKFREE_IMPLICITPRODHASH + debug::DebugMutex implicitProdMutex; +#endif + +#ifdef MOODYCAMEL_QUEUE_INTERNAL_DEBUG + std::atomic explicitProducers; + std::atomic implicitProducers; +#endif +}; + + +template +ProducerToken::ProducerToken(ConcurrentQueue& queue) + : producer(queue.recycle_or_create_producer(true)) +{ + if (producer != nullptr) { + producer->token = this; + } +} + +template +ProducerToken::ProducerToken(BlockingConcurrentQueue& queue) + : producer(reinterpret_cast*>(&queue)->recycle_or_create_producer(true)) +{ + if (producer != nullptr) { + producer->token = this; + } +} + +template +ConsumerToken::ConsumerToken(ConcurrentQueue& queue) + : itemsConsumedFromCurrent(0), currentProducer(nullptr), desiredProducer(nullptr) +{ + initialOffset = queue.nextExplicitConsumerId.fetch_add(1, std::memory_order_release); + lastKnownGlobalOffset = static_cast(-1); +} + +template +ConsumerToken::ConsumerToken(BlockingConcurrentQueue& queue) + : itemsConsumedFromCurrent(0), currentProducer(nullptr), desiredProducer(nullptr) +{ + initialOffset = reinterpret_cast*>(&queue)->nextExplicitConsumerId.fetch_add(1, std::memory_order_release); + lastKnownGlobalOffset = static_cast(-1); +} + +template +inline void swap(ConcurrentQueue& a, ConcurrentQueue& b) MOODYCAMEL_NOEXCEPT +{ + a.swap(b); +} + +inline void swap(ProducerToken& a, ProducerToken& b) MOODYCAMEL_NOEXCEPT +{ + a.swap(b); +} + +inline void swap(ConsumerToken& a, ConsumerToken& b) MOODYCAMEL_NOEXCEPT +{ + a.swap(b); +} + +template +inline void swap(typename ConcurrentQueue::ImplicitProducerKVP& a, typename ConcurrentQueue::ImplicitProducerKVP& b) MOODYCAMEL_NOEXCEPT +{ + a.swap(b); +} + +} + +#if defined(_MSC_VER) && (!defined(_HAS_CXX17) || !_HAS_CXX17) +#pragma warning(pop) +#endif + +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif diff --git a/sources/LabSound/third_party/concurrentqueue/lightweightsemaphore.h b/sources/LabSound/third_party/concurrentqueue/lightweightsemaphore.h new file mode 100644 index 00000000..b0f24e1c --- /dev/null +++ b/sources/LabSound/third_party/concurrentqueue/lightweightsemaphore.h @@ -0,0 +1,411 @@ +// Provides an efficient implementation of a semaphore (LightweightSemaphore). +// This is an extension of Jeff Preshing's sempahore implementation (licensed +// under the terms of its separate zlib license) that has been adapted and +// extended by Cameron Desrochers. + +#pragma once + +#include // For std::size_t +#include +#include // For std::make_signed + +#if defined(_WIN32) +// Avoid including windows.h in a header; we only need a handful of +// items, so we'll redeclare them here (this is relatively safe since +// the API generally has to remain stable between Windows versions). +// I know this is an ugly hack but it still beats polluting the global +// namespace with thousands of generic names or adding a .cpp for nothing. +extern "C" { + struct _SECURITY_ATTRIBUTES; + __declspec(dllimport) void* __stdcall CreateSemaphoreW(_SECURITY_ATTRIBUTES* lpSemaphoreAttributes, long lInitialCount, long lMaximumCount, const wchar_t* lpName); + __declspec(dllimport) int __stdcall CloseHandle(void* hObject); + __declspec(dllimport) unsigned long __stdcall WaitForSingleObject(void* hHandle, unsigned long dwMilliseconds); + __declspec(dllimport) int __stdcall ReleaseSemaphore(void* hSemaphore, long lReleaseCount, long* lpPreviousCount); +} +#elif defined(__MACH__) +#include +#elif defined(__unix__) +#include +#endif + +namespace moodycamel +{ +namespace details +{ + +// Code in the mpmc_sema namespace below is an adaptation of Jeff Preshing's +// portable + lightweight semaphore implementations, originally from +// https://github.com/preshing/cpp11-on-multicore/blob/master/common/sema.h +// LICENSE: +// Copyright (c) 2015 Jeff Preshing +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgement in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +#if defined(_WIN32) +class Semaphore +{ +private: + void* m_hSema; + + Semaphore(const Semaphore& other) MOODYCAMEL_DELETE_FUNCTION; + Semaphore& operator=(const Semaphore& other) MOODYCAMEL_DELETE_FUNCTION; + +public: + Semaphore(int initialCount = 0) + { + assert(initialCount >= 0); + const long maxLong = 0x7fffffff; + m_hSema = CreateSemaphoreW(nullptr, initialCount, maxLong, nullptr); + assert(m_hSema); + } + + ~Semaphore() + { + CloseHandle(m_hSema); + } + + bool wait() + { + const unsigned long infinite = 0xffffffff; + return WaitForSingleObject(m_hSema, infinite) == 0; + } + + bool try_wait() + { + return WaitForSingleObject(m_hSema, 0) == 0; + } + + bool timed_wait(std::uint64_t usecs) + { + return WaitForSingleObject(m_hSema, (unsigned long)(usecs / 1000)) == 0; + } + + void signal(int count = 1) + { + while (!ReleaseSemaphore(m_hSema, count, nullptr)); + } +}; +#elif defined(__MACH__) +//--------------------------------------------------------- +// Semaphore (Apple iOS and OSX) +// Can't use POSIX semaphores due to http://lists.apple.com/archives/darwin-kernel/2009/Apr/msg00010.html +//--------------------------------------------------------- +class Semaphore +{ +private: + semaphore_t m_sema; + + Semaphore(const Semaphore& other) MOODYCAMEL_DELETE_FUNCTION; + Semaphore& operator=(const Semaphore& other) MOODYCAMEL_DELETE_FUNCTION; + +public: + Semaphore(int initialCount = 0) + { + assert(initialCount >= 0); + kern_return_t rc = semaphore_create(mach_task_self(), &m_sema, SYNC_POLICY_FIFO, initialCount); + assert(rc == KERN_SUCCESS); + (void)rc; + } + + ~Semaphore() + { + semaphore_destroy(mach_task_self(), m_sema); + } + + bool wait() + { + return semaphore_wait(m_sema) == KERN_SUCCESS; + } + + bool try_wait() + { + return timed_wait(0); + } + + bool timed_wait(std::uint64_t timeout_usecs) + { + mach_timespec_t ts; + ts.tv_sec = static_cast(timeout_usecs / 1000000); + ts.tv_nsec = static_cast((timeout_usecs % 1000000) * 1000); + + // added in OSX 10.10: https://developer.apple.com/library/prerelease/mac/documentation/General/Reference/APIDiffsMacOSX10_10SeedDiff/modules/Darwin.html + kern_return_t rc = semaphore_timedwait(m_sema, ts); + return rc == KERN_SUCCESS; + } + + void signal() + { + while (semaphore_signal(m_sema) != KERN_SUCCESS); + } + + void signal(int count) + { + while (count-- > 0) + { + while (semaphore_signal(m_sema) != KERN_SUCCESS); + } + } +}; +#elif defined(__unix__) +//--------------------------------------------------------- +// Semaphore (POSIX, Linux) +//--------------------------------------------------------- +class Semaphore +{ +private: + sem_t m_sema; + + Semaphore(const Semaphore& other) MOODYCAMEL_DELETE_FUNCTION; + Semaphore& operator=(const Semaphore& other) MOODYCAMEL_DELETE_FUNCTION; + +public: + Semaphore(int initialCount = 0) + { + assert(initialCount >= 0); + int rc = sem_init(&m_sema, 0, static_cast(initialCount)); + assert(rc == 0); + (void)rc; + } + + ~Semaphore() + { + sem_destroy(&m_sema); + } + + bool wait() + { + // http://stackoverflow.com/questions/2013181/gdb-causes-sem-wait-to-fail-with-eintr-error + int rc; + do { + rc = sem_wait(&m_sema); + } while (rc == -1 && errno == EINTR); + return rc == 0; + } + + bool try_wait() + { + int rc; + do { + rc = sem_trywait(&m_sema); + } while (rc == -1 && errno == EINTR); + return rc == 0; + } + + bool timed_wait(std::uint64_t usecs) + { + struct timespec ts; + const int usecs_in_1_sec = 1000000; + const int nsecs_in_1_sec = 1000000000; + clock_gettime(CLOCK_REALTIME, &ts); + ts.tv_sec += (time_t)(usecs / usecs_in_1_sec); + ts.tv_nsec += (long)(usecs % usecs_in_1_sec) * 1000; + // sem_timedwait bombs if you have more than 1e9 in tv_nsec + // so we have to clean things up before passing it in + if (ts.tv_nsec >= nsecs_in_1_sec) { + ts.tv_nsec -= nsecs_in_1_sec; + ++ts.tv_sec; + } + + int rc; + do { + rc = sem_timedwait(&m_sema, &ts); + } while (rc == -1 && errno == EINTR); + return rc == 0; + } + + void signal() + { + while (sem_post(&m_sema) == -1); + } + + void signal(int count) + { + while (count-- > 0) + { + while (sem_post(&m_sema) == -1); + } + } +}; +#else +#error Unsupported platform! (No semaphore wrapper available) +#endif + +} // end namespace details + + +//--------------------------------------------------------- +// LightweightSemaphore +//--------------------------------------------------------- +class LightweightSemaphore +{ +public: + typedef std::make_signed::type ssize_t; + +private: + std::atomic m_count; + details::Semaphore m_sema; + int m_maxSpins; + + bool waitWithPartialSpinning(std::int64_t timeout_usecs = -1) + { + ssize_t oldCount; + int spin = m_maxSpins; + while (--spin >= 0) + { + oldCount = m_count.load(std::memory_order_relaxed); + if ((oldCount > 0) && m_count.compare_exchange_strong(oldCount, oldCount - 1, std::memory_order_acquire, std::memory_order_relaxed)) + return true; + std::atomic_signal_fence(std::memory_order_acquire); // Prevent the compiler from collapsing the loop. + } + oldCount = m_count.fetch_sub(1, std::memory_order_acquire); + if (oldCount > 0) + return true; + if (timeout_usecs < 0) + { + if (m_sema.wait()) + return true; + } + if (timeout_usecs > 0 && m_sema.timed_wait((std::uint64_t)timeout_usecs)) + return true; + // At this point, we've timed out waiting for the semaphore, but the + // count is still decremented indicating we may still be waiting on + // it. So we have to re-adjust the count, but only if the semaphore + // wasn't signaled enough times for us too since then. If it was, we + // need to release the semaphore too. + while (true) + { + oldCount = m_count.load(std::memory_order_acquire); + if (oldCount >= 0 && m_sema.try_wait()) + return true; + if (oldCount < 0 && m_count.compare_exchange_strong(oldCount, oldCount + 1, std::memory_order_relaxed, std::memory_order_relaxed)) + return false; + } + } + + ssize_t waitManyWithPartialSpinning(ssize_t max, std::int64_t timeout_usecs = -1) + { + assert(max > 0); + ssize_t oldCount; + int spin = m_maxSpins; + while (--spin >= 0) + { + oldCount = m_count.load(std::memory_order_relaxed); + if (oldCount > 0) + { + ssize_t newCount = oldCount > max ? oldCount - max : 0; + if (m_count.compare_exchange_strong(oldCount, newCount, std::memory_order_acquire, std::memory_order_relaxed)) + return oldCount - newCount; + } + std::atomic_signal_fence(std::memory_order_acquire); + } + oldCount = m_count.fetch_sub(1, std::memory_order_acquire); + if (oldCount <= 0) + { + if ((timeout_usecs == 0) || (timeout_usecs < 0 && !m_sema.wait()) || (timeout_usecs > 0 && !m_sema.timed_wait((std::uint64_t)timeout_usecs))) + { + while (true) + { + oldCount = m_count.load(std::memory_order_acquire); + if (oldCount >= 0 && m_sema.try_wait()) + break; + if (oldCount < 0 && m_count.compare_exchange_strong(oldCount, oldCount + 1, std::memory_order_relaxed, std::memory_order_relaxed)) + return 0; + } + } + } + if (max > 1) + return 1 + tryWaitMany(max - 1); + return 1; + } + +public: + LightweightSemaphore(ssize_t initialCount = 0, int maxSpins = 10000) : m_count(initialCount), m_maxSpins(maxSpins) + { + assert(initialCount >= 0); + assert(maxSpins >= 0); + } + + bool tryWait() + { + ssize_t oldCount = m_count.load(std::memory_order_relaxed); + while (oldCount > 0) + { + if (m_count.compare_exchange_weak(oldCount, oldCount - 1, std::memory_order_acquire, std::memory_order_relaxed)) + return true; + } + return false; + } + + bool wait() + { + return tryWait() || waitWithPartialSpinning(); + } + + bool wait(std::int64_t timeout_usecs) + { + return tryWait() || waitWithPartialSpinning(timeout_usecs); + } + + // Acquires between 0 and (greedily) max, inclusive + ssize_t tryWaitMany(ssize_t max) + { + assert(max >= 0); + ssize_t oldCount = m_count.load(std::memory_order_relaxed); + while (oldCount > 0) + { + ssize_t newCount = oldCount > max ? oldCount - max : 0; + if (m_count.compare_exchange_weak(oldCount, newCount, std::memory_order_acquire, std::memory_order_relaxed)) + return oldCount - newCount; + } + return 0; + } + + // Acquires at least one, and (greedily) at most max + ssize_t waitMany(ssize_t max, std::int64_t timeout_usecs) + { + assert(max >= 0); + ssize_t result = tryWaitMany(max); + if (result == 0 && max > 0) + result = waitManyWithPartialSpinning(max, timeout_usecs); + return result; + } + + ssize_t waitMany(ssize_t max) + { + ssize_t result = waitMany(max, -1); + assert(result > 0); + return result; + } + + void signal(ssize_t count = 1) + { + assert(count >= 0); + ssize_t oldCount = m_count.fetch_add(count, std::memory_order_release); + ssize_t toRelease = -oldCount < count ? -oldCount : count; + if (toRelease > 0) + { + m_sema.signal((int)toRelease); + } + } + + std::size_t availableApprox() const + { + ssize_t count = m_count.load(std::memory_order_relaxed); + return count > 0 ? static_cast(count) : 0; + } +}; + +} // end namespace moodycamel diff --git a/sources/LabSound/third_party/kissfft/_kiss_fft_guts.hpp b/sources/LabSound/third_party/kissfft/_kiss_fft_guts.hpp new file mode 100644 index 00000000..32ded5d2 --- /dev/null +++ b/sources/LabSound/third_party/kissfft/_kiss_fft_guts.hpp @@ -0,0 +1,164 @@ +/* +Copyright (c) 2003-2010, Mark Borgerding + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* kiss_fft.h + defines kiss_fft_scalar as either short or a float type + and defines + typedef struct { kiss_fft_scalar r; kiss_fft_scalar i; }kiss_fft_cpx; */ +#include "kiss_fft.hpp" +#include + +#define MAXFACTORS 32 +/* e.g. an fft of length 128 has 4 factors + as far as kissfft is concerned + 4*4*4*2 + */ + +struct kiss_fft_state{ + int nfft; + int inverse; + int factors[2*MAXFACTORS]; + kiss_fft_cpx twiddles[1]; +}; + +/* + Explanation of macros dealing with complex math: + + C_MUL(m,a,b) : m = a*b + C_FIXDIV( c , div ) : if a fixed point impl., c /= div. noop otherwise + C_SUB( res, a,b) : res = a - b + C_SUBFROM( res , a) : res -= a + C_ADDTO( res , a) : res += a + * */ +#ifdef FIXED_POINT +#if (FIXED_POINT==32) +# define FRACBITS 31 +# define SAMPPROD int64_t +#define SAMP_MAX 2147483647 +#else +# define FRACBITS 15 +# define SAMPPROD int32_t +#define SAMP_MAX 32767 +#endif + +#define SAMP_MIN -SAMP_MAX + +#if defined(CHECK_OVERFLOW) +# define CHECK_OVERFLOW_OP(a,op,b) \ + if ( (SAMPPROD)(a) op (SAMPPROD)(b) > SAMP_MAX || (SAMPPROD)(a) op (SAMPPROD)(b) < SAMP_MIN ) { \ + fprintf(stderr,"WARNING:overflow @ " __FILE__ "(%d): (%d " #op" %d) = %ld\n",__LINE__,(a),(b),(SAMPPROD)(a) op (SAMPPROD)(b) ); } +#endif + + +# define smul(a,b) ( (SAMPPROD)(a)*(b) ) +# define sround( x ) (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS ) + +# define S_MUL(a,b) sround( smul(a,b) ) + +# define C_MUL(m,a,b) \ + do{ (m).r = sround( smul((a).r,(b).r) - smul((a).i,(b).i) ); \ + (m).i = sround( smul((a).r,(b).i) + smul((a).i,(b).r) ); }while(0) + +# define DIVSCALAR(x,k) \ + (x) = sround( smul( x, SAMP_MAX/k ) ) + +# define C_FIXDIV(c,div) \ + do { DIVSCALAR( (c).r , div); \ + DIVSCALAR( (c).i , div); }while (0) + +# define C_MULBYSCALAR( c, s ) \ + do{ (c).r = sround( smul( (c).r , s ) ) ;\ + (c).i = sround( smul( (c).i , s ) ) ; }while(0) + +#else /* not FIXED_POINT*/ + +# define S_MUL(a,b) ( (a)*(b) ) +#define C_MUL(m,a,b) \ + do{ (m).r = (a).r*(b).r - (a).i*(b).i;\ + (m).i = (a).r*(b).i + (a).i*(b).r; }while(0) +# define C_FIXDIV(c,div) /* NOOP */ +# define C_MULBYSCALAR( c, s ) \ + do{ (c).r *= (s);\ + (c).i *= (s); }while(0) +#endif + +#ifndef CHECK_OVERFLOW_OP +# define CHECK_OVERFLOW_OP(a,op,b) /* noop */ +#endif + +#define C_ADD( res, a,b)\ + do { \ + CHECK_OVERFLOW_OP((a).r,+,(b).r)\ + CHECK_OVERFLOW_OP((a).i,+,(b).i)\ + (res).r=(a).r+(b).r; (res).i=(a).i+(b).i; \ + }while(0) +#define C_SUB( res, a,b)\ + do { \ + CHECK_OVERFLOW_OP((a).r,-,(b).r)\ + CHECK_OVERFLOW_OP((a).i,-,(b).i)\ + (res).r=(a).r-(b).r; (res).i=(a).i-(b).i; \ + }while(0) +#define C_ADDTO( res , a)\ + do { \ + CHECK_OVERFLOW_OP((res).r,+,(a).r)\ + CHECK_OVERFLOW_OP((res).i,+,(a).i)\ + (res).r += (a).r; (res).i += (a).i;\ + }while(0) + +#define C_SUBFROM( res , a)\ + do {\ + CHECK_OVERFLOW_OP((res).r,-,(a).r)\ + CHECK_OVERFLOW_OP((res).i,-,(a).i)\ + (res).r -= (a).r; (res).i -= (a).i; \ + }while(0) + + +#ifdef FIXED_POINT +# define KISS_FFT_COS(phase) floor(.5+SAMP_MAX * cos (phase)) +# define KISS_FFT_SIN(phase) floor(.5+SAMP_MAX * sin (phase)) +# define HALF_OF(x) ((x)>>1) +#elif defined(USE_SIMD) +# define KISS_FFT_COS(phase) _mm_set1_ps( cos(phase) ) +# define KISS_FFT_SIN(phase) _mm_set1_ps( sin(phase) ) +# define HALF_OF(x) ((x)*_mm_set1_ps(.5f)) +#else +# define KISS_FFT_COS(phase) (kiss_fft_scalar) cos(phase) +# define KISS_FFT_SIN(phase) (kiss_fft_scalar) sin(phase) +# define HALF_OF(x) ((x)*.5f) +#endif + +#define kf_cexp(x,phase) \ + do{ \ + (x)->r = KISS_FFT_COS(phase);\ + (x)->i = KISS_FFT_SIN(phase);\ + }while(0) + + +/* a debugging function */ +#define pcpx(c)\ + fprintf(stderr,"%g + %gi\n",(double)((c)->r),(double)((c)->i) ) + + +#ifdef KISS_FFT_USE_ALLOCA +// define this to allow use of alloca instead of malloc for temporary buffers +// Temporary buffers are used in two case: +// 1. FFT sizes that have "bad" factors. i.e. not 2,3 and 5 +// 2. "in-place" FFTs. Notice the quotes, since kissfft does not really do an in-place transform. +#include +#define KISS_FFT_TMP_ALLOC(nbytes) alloca(nbytes) +#define KISS_FFT_TMP_FREE(ptr) +#else +#define KISS_FFT_TMP_ALLOC(nbytes) KISS_FFT_MALLOC(nbytes) +#define KISS_FFT_TMP_FREE(ptr) KISS_FFT_FREE(ptr) +#endif diff --git a/sources/LabSound/third_party/kissfft/kiss_fft.hpp b/sources/LabSound/third_party/kissfft/kiss_fft.hpp new file mode 100644 index 00000000..64c50f4a --- /dev/null +++ b/sources/LabSound/third_party/kissfft/kiss_fft.hpp @@ -0,0 +1,124 @@ +#ifndef KISS_FFT_H +#define KISS_FFT_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + ATTENTION! + If you would like a : + -- a utility that will handle the caching of fft objects + -- real-only (no imaginary time component ) FFT + -- a multi-dimensional FFT + -- a command-line utility to perform ffts + -- a command-line utility to perform fast-convolution filtering + + Then see kfc.h kiss_fftr.h kiss_fftnd.h fftutil.c kiss_fastfir.c + in the tools/ directory. +*/ + +#ifdef USE_SIMD +# include +# define kiss_fft_scalar __m128 +#define KISS_FFT_MALLOC(nbytes) _mm_malloc(nbytes,16) +#define KISS_FFT_FREE _mm_free +#else +#define KISS_FFT_MALLOC malloc +#define KISS_FFT_FREE free +#endif + + +#ifdef FIXED_POINT +#include +# if (FIXED_POINT == 32) +# define kiss_fft_scalar int32_t +# else +# define kiss_fft_scalar int16_t +# endif +#else +# ifndef kiss_fft_scalar +/* default is float */ +# define kiss_fft_scalar float +# endif +#endif + +typedef struct { + kiss_fft_scalar r; + kiss_fft_scalar i; +}kiss_fft_cpx; + +typedef struct kiss_fft_state* kiss_fft_cfg; + +/* + * kiss_fft_alloc + * + * Initialize a FFT (or IFFT) algorithm's cfg/state buffer. + * + * typical usage: kiss_fft_cfg mycfg=kiss_fft_alloc(1024,0,NULL,NULL); + * + * The return value from fft_alloc is a cfg buffer used internally + * by the fft routine or NULL. + * + * If lenmem is NULL, then kiss_fft_alloc will allocate a cfg buffer using malloc. + * The returned value should be free()d when done to avoid memory leaks. + * + * The state can be placed in a user supplied buffer 'mem': + * If lenmem is not NULL and mem is not NULL and *lenmem is large enough, + * then the function places the cfg in mem and the size used in *lenmem + * and returns mem. + * + * If lenmem is not NULL and ( mem is NULL or *lenmem is not large enough), + * then the function returns NULL and places the minimum cfg + * buffer size in *lenmem. + * */ + +kiss_fft_cfg kiss_fft_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem); + +/* + * kiss_fft(cfg,in_out_buf) + * + * Perform an FFT on a complex input buffer. + * for a forward FFT, + * fin should be f[0] , f[1] , ... ,f[nfft-1] + * fout will be F[0] , F[1] , ... ,F[nfft-1] + * Note that each element is complex and can be accessed like + f[k].r and f[k].i + * */ +void kiss_fft(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout); + +/* + A more generic version of the above function. It reads its input from every Nth sample. + * */ +void kiss_fft_stride(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int fin_stride); + +/* If kiss_fft_alloc allocated a buffer, it is one contiguous + buffer and can be simply free()d when no longer needed*/ +#define kiss_fft_free free + +/* + Cleans up some memory that gets managed internally. Not necessary to call, but it might clean up + your compiler output to call this before you exit. +*/ +void kiss_fft_cleanup(void); + + +/* + * Returns the smallest integer k, such that k>=n and k has only "fast" factors (2,3,5) + */ +int kiss_fft_next_fast_size(int n); + +/* for real ffts, we need an even size */ +#define kiss_fftr_next_fast_size_real(n) \ + (kiss_fft_next_fast_size( ((n)+1)>>1)<<1) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/sources/LabSound/third_party/kissfft/kiss_fftr.hpp b/sources/LabSound/third_party/kissfft/kiss_fftr.hpp new file mode 100644 index 00000000..297963a3 --- /dev/null +++ b/sources/LabSound/third_party/kissfft/kiss_fftr.hpp @@ -0,0 +1,46 @@ +#ifndef KISS_FTR_H +#define KISS_FTR_H + +#include "kiss_fft.hpp" +#ifdef __cplusplus +extern "C" { +#endif + + +/* + + Real optimized version can save about 45% cpu time vs. complex fft of a real seq. + + + + */ + +typedef struct kiss_fftr_state *kiss_fftr_cfg; + + +kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); +/* + nfft must be even + + If you don't care to allocate space, use mem = lenmem = NULL +*/ + + +void kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata); +/* + input timedata has nfft scalar points + output freqdata has nfft/2+1 complex points +*/ + +void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata); +/* + input freqdata has nfft/2+1 complex points + output timedata has nfft scalar points +*/ + +#define kiss_fftr_free free + +#ifdef __cplusplus +} +#endif +#endif diff --git a/sources/LabSound/third_party/kissfft/kissfft.hpp b/sources/LabSound/third_party/kissfft/kissfft.hpp new file mode 100644 index 00000000..a586cb11 --- /dev/null +++ b/sources/LabSound/third_party/kissfft/kissfft.hpp @@ -0,0 +1,299 @@ +#ifndef KISSFFT_CLASS_HH +#include +#include + +namespace kissfft_utils { + +template +struct traits +{ + typedef T_scalar scalar_type; + typedef std::complex cpx_type; + void fill_twiddles( std::complex * dst ,int nfft,bool inverse) + { + T_scalar phinc = (inverse?2:-2)* acos( (T_scalar) -1) / nfft; + for (int i=0;i(0,i*phinc) ); + } + + void prepare( + std::vector< std::complex > & dst, + int nfft,bool inverse, + std::vector & stageRadix, + std::vector & stageRemainder ) + { + _twiddles.resize(nfft); + fill_twiddles( &_twiddles[0],nfft,inverse); + dst = _twiddles; + + //factorize + //start factoring out 4's, then 2's, then 3,5,7,9,... + int n= nfft; + int p=4; + do { + while (n % p) { + switch (p) { + case 4: p = 2; break; + case 2: p = 3; break; + default: p += 2; break; + } + if (p*p>n) + p=n;// no more factors + } + n /= p; + stageRadix.push_back(p); + stageRemainder.push_back(n); + }while(n>1); + } + std::vector _twiddles; + + + const cpx_type twiddle(int i) { return _twiddles[i]; } +}; + +} + +template + > +class kissfft +{ + public: + typedef T_traits traits_type; + typedef typename traits_type::scalar_type scalar_type; + typedef typename traits_type::cpx_type cpx_type; + + kissfft(int nfft,bool inverse,const traits_type & traits=traits_type() ) + :_nfft(nfft),_inverse(inverse),_traits(traits) + { + _traits.prepare(_twiddles, _nfft,_inverse ,_stageRadix, _stageRemainder); + } + + void transform(const cpx_type * src , cpx_type * dst) + { + kf_work(0, dst, src, 1,1); + } + + private: + void kf_work( int stage,cpx_type * Fout, const cpx_type * f, size_t fstride,size_t in_stride) + { + int p = _stageRadix[stage]; + int m = _stageRemainder[stage]; + cpx_type * Fout_beg = Fout; + cpx_type * Fout_end = Fout + p*m; + + if (m==1) { + do{ + *Fout = *f; + f += fstride*in_stride; + }while(++Fout != Fout_end ); + }else{ + do{ + // recursive call: + // DFT of size m*p performed by doing + // p instances of smaller DFTs of size m, + // each one takes a decimated version of the input + kf_work(stage+1, Fout , f, fstride*p,in_stride); + f += fstride*in_stride; + }while( (Fout += m) != Fout_end ); + } + + Fout=Fout_beg; + + // recombine the p smaller DFTs + switch (p) { + case 2: kf_bfly2(Fout,fstride,m); break; + case 3: kf_bfly3(Fout,fstride,m); break; + case 4: kf_bfly4(Fout,fstride,m); break; + case 5: kf_bfly5(Fout,fstride,m); break; + default: kf_bfly_generic(Fout,fstride,m,p); break; + } + } + + // these were #define macros in the original kiss_fft + void C_ADD( cpx_type & c,const cpx_type & a,const cpx_type & b) { c=a+b;} + void C_MUL( cpx_type & c,const cpx_type & a,const cpx_type & b) { c=a*b;} + void C_SUB( cpx_type & c,const cpx_type & a,const cpx_type & b) { c=a-b;} + void C_ADDTO( cpx_type & c,const cpx_type & a) { c+=a;} + void C_FIXDIV( cpx_type & ,int ) {} // NO-OP for float types + scalar_type S_MUL( const scalar_type & a,const scalar_type & b) { return a*b;} + scalar_type HALF_OF( const scalar_type & a) { return a*.5;} + void C_MULBYSCALAR(cpx_type & c,const scalar_type & a) {c*=a;} + + void kf_bfly2( cpx_type * Fout, const size_t fstride, int m) + { + for (int k=0;kreal() - HALF_OF(scratch[3].real() ) , Fout->imag() - HALF_OF(scratch[3].imag() ) ); + + C_MULBYSCALAR( scratch[0] , epi3.imag() ); + + C_ADDTO(*Fout,scratch[3]); + + Fout[m2] = cpx_type( Fout[m].real() + scratch[0].imag() , Fout[m].imag() - scratch[0].real() ); + + C_ADDTO( Fout[m] , cpx_type( -scratch[0].imag(),scratch[0].real() ) ); + ++Fout; + }while(--k); + } + + void kf_bfly5( cpx_type * Fout, const size_t fstride, const size_t m) + { + cpx_type *Fout0,*Fout1,*Fout2,*Fout3,*Fout4; + size_t u; + cpx_type scratch[13]; + cpx_type * twiddles = &_twiddles[0]; + cpx_type *tw; + cpx_type ya,yb; + ya = twiddles[fstride*m]; + yb = twiddles[fstride*2*m]; + + Fout0=Fout; + Fout1=Fout0+m; + Fout2=Fout0+2*m; + Fout3=Fout0+3*m; + Fout4=Fout0+4*m; + + tw=twiddles; + for ( u=0; u=Norig) twidx-=Norig; + C_MUL(t,scratchbuf[q] , twiddles[twidx] ); + C_ADDTO( Fout[ k ] ,t); + } + k += m; + } + } + } + + int _nfft; + bool _inverse; + std::vector _twiddles; + std::vector _stageRadix; + std::vector _stageRemainder; + traits_type _traits; +}; +#endif diff --git a/sources/LabSound/third_party/kissfft/src/kiss_fft.cpp b/sources/LabSound/third_party/kissfft/src/kiss_fft.cpp new file mode 100644 index 00000000..b81a2841 --- /dev/null +++ b/sources/LabSound/third_party/kissfft/src/kiss_fft.cpp @@ -0,0 +1,408 @@ +/* +Copyright (c) 2003-2010, Mark Borgerding + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +#include "kissfft/_kiss_fft_guts.hpp" +/* The guts header contains all the multiplication and addition macros that are defined for + fixed or floating point complex numbers. It also delares the kf_ internal functions. + */ + +static void kf_bfly2( + kiss_fft_cpx * Fout, + const int fstride, + const kiss_fft_cfg st, + int m + ) +{ + kiss_fft_cpx * Fout2; + kiss_fft_cpx * tw1 = st->twiddles; + kiss_fft_cpx t; + Fout2 = Fout + m; + do{ + C_FIXDIV(*Fout,2); C_FIXDIV(*Fout2,2); + + C_MUL (t, *Fout2 , *tw1); + tw1 += fstride; + C_SUB( *Fout2 , *Fout , t ); + C_ADDTO( *Fout , t ); + ++Fout2; + ++Fout; + }while (--m); +} + +static void kf_bfly4( + kiss_fft_cpx * Fout, + const int fstride, + const kiss_fft_cfg st, + const size_t m + ) +{ + kiss_fft_cpx *tw1,*tw2,*tw3; + kiss_fft_cpx scratch[6]; + size_t k=m; + const size_t m2=2*m; + const size_t m3=3*m; + + + tw3 = tw2 = tw1 = st->twiddles; + + do { + C_FIXDIV(*Fout,4); C_FIXDIV(Fout[m],4); C_FIXDIV(Fout[m2],4); C_FIXDIV(Fout[m3],4); + + C_MUL(scratch[0],Fout[m] , *tw1 ); + C_MUL(scratch[1],Fout[m2] , *tw2 ); + C_MUL(scratch[2],Fout[m3] , *tw3 ); + + C_SUB( scratch[5] , *Fout, scratch[1] ); + C_ADDTO(*Fout, scratch[1]); + C_ADD( scratch[3] , scratch[0] , scratch[2] ); + C_SUB( scratch[4] , scratch[0] , scratch[2] ); + C_SUB( Fout[m2], *Fout, scratch[3] ); + tw1 += fstride; + tw2 += fstride*2; + tw3 += fstride*3; + C_ADDTO( *Fout , scratch[3] ); + + if(st->inverse) { + Fout[m].r = scratch[5].r - scratch[4].i; + Fout[m].i = scratch[5].i + scratch[4].r; + Fout[m3].r = scratch[5].r + scratch[4].i; + Fout[m3].i = scratch[5].i - scratch[4].r; + }else{ + Fout[m].r = scratch[5].r + scratch[4].i; + Fout[m].i = scratch[5].i - scratch[4].r; + Fout[m3].r = scratch[5].r - scratch[4].i; + Fout[m3].i = scratch[5].i + scratch[4].r; + } + ++Fout; + }while(--k); +} + +static void kf_bfly3( + kiss_fft_cpx * Fout, + const int fstride, + const kiss_fft_cfg st, + size_t m + ) +{ + size_t k=m; + const size_t m2 = 2*m; + kiss_fft_cpx *tw1,*tw2; + kiss_fft_cpx scratch[5]; + kiss_fft_cpx epi3; + epi3 = st->twiddles[fstride*m]; + + tw1=tw2=st->twiddles; + + do{ + C_FIXDIV(*Fout,3); C_FIXDIV(Fout[m],3); C_FIXDIV(Fout[m2],3); + + C_MUL(scratch[1],Fout[m] , *tw1); + C_MUL(scratch[2],Fout[m2] , *tw2); + + C_ADD(scratch[3],scratch[1],scratch[2]); + C_SUB(scratch[0],scratch[1],scratch[2]); + tw1 += fstride; + tw2 += fstride*2; + + Fout[m].r = Fout->r - HALF_OF(scratch[3].r); + Fout[m].i = Fout->i - HALF_OF(scratch[3].i); + + C_MULBYSCALAR( scratch[0] , epi3.i ); + + C_ADDTO(*Fout,scratch[3]); + + Fout[m2].r = Fout[m].r + scratch[0].i; + Fout[m2].i = Fout[m].i - scratch[0].r; + + Fout[m].r -= scratch[0].i; + Fout[m].i += scratch[0].r; + + ++Fout; + }while(--k); +} + +static void kf_bfly5( + kiss_fft_cpx * Fout, + const int fstride, + const kiss_fft_cfg st, + int m + ) +{ + kiss_fft_cpx *Fout0,*Fout1,*Fout2,*Fout3,*Fout4; + int u; + kiss_fft_cpx scratch[13]; + kiss_fft_cpx * twiddles = st->twiddles; + kiss_fft_cpx *tw; + kiss_fft_cpx ya,yb; + ya = twiddles[fstride*m]; + yb = twiddles[fstride*2*m]; + + Fout0=Fout; + Fout1=Fout0+m; + Fout2=Fout0+2*m; + Fout3=Fout0+3*m; + Fout4=Fout0+4*m; + + tw=st->twiddles; + for ( u=0; ur += scratch[7].r + scratch[8].r; + Fout0->i += scratch[7].i + scratch[8].i; + + scratch[5].r = scratch[0].r + S_MUL(scratch[7].r,ya.r) + S_MUL(scratch[8].r,yb.r); + scratch[5].i = scratch[0].i + S_MUL(scratch[7].i,ya.r) + S_MUL(scratch[8].i,yb.r); + + scratch[6].r = S_MUL(scratch[10].i,ya.i) + S_MUL(scratch[9].i,yb.i); + scratch[6].i = -S_MUL(scratch[10].r,ya.i) - S_MUL(scratch[9].r,yb.i); + + C_SUB(*Fout1,scratch[5],scratch[6]); + C_ADD(*Fout4,scratch[5],scratch[6]); + + scratch[11].r = scratch[0].r + S_MUL(scratch[7].r,yb.r) + S_MUL(scratch[8].r,ya.r); + scratch[11].i = scratch[0].i + S_MUL(scratch[7].i,yb.r) + S_MUL(scratch[8].i,ya.r); + scratch[12].r = - S_MUL(scratch[10].i,yb.i) + S_MUL(scratch[9].i,ya.i); + scratch[12].i = S_MUL(scratch[10].r,yb.i) - S_MUL(scratch[9].r,ya.i); + + C_ADD(*Fout2,scratch[11],scratch[12]); + C_SUB(*Fout3,scratch[11],scratch[12]); + + ++Fout0;++Fout1;++Fout2;++Fout3;++Fout4; + } +} + +/* perform the butterfly for one stage of a mixed radix FFT */ +static void kf_bfly_generic( + kiss_fft_cpx * Fout, + const int fstride, + const kiss_fft_cfg st, + int m, + int p + ) +{ + int u,k,q1,q; + kiss_fft_cpx * twiddles = st->twiddles; + kiss_fft_cpx t; + int Norig = st->nfft; + + kiss_fft_cpx * scratch = (kiss_fft_cpx*)KISS_FFT_TMP_ALLOC(sizeof(kiss_fft_cpx)*p); + + for ( u=0; u=Norig) twidx-=Norig; + C_MUL(t,scratch[q] , twiddles[twidx] ); + C_ADDTO( Fout[ k ] ,t); + } + k += m; + } + } + KISS_FFT_TMP_FREE(scratch); +} + +static +void kf_work( + kiss_fft_cpx * Fout, + const kiss_fft_cpx * f, + const int fstride, + int in_stride, + int * factors, + const kiss_fft_cfg st + ) +{ + kiss_fft_cpx * Fout_beg=Fout; + const int p=*factors++; /* the radix */ + const int m=*factors++; /* stage's fft length/p */ + const kiss_fft_cpx * Fout_end = Fout + p*m; + +#ifdef _OPENMP + // use openmp extensions at the + // top-level (not recursive) + if (fstride==1 && p<=5) + { + int k; + + // execute the p different work units in different threads +# pragma omp parallel for + for (k=0;k floor_sqrt) + p = n; /* no more factors, skip to end */ + } + n /= p; + *facbuf++ = p; + *facbuf++ = n; + } while (n > 1); +} + +/* + * + * User-callable function to allocate all necessary storage space for the fft. + * + * The return value is a contiguous block of memory, allocated with malloc. As such, + * It can be freed with free(), rather than a kiss_fft-specific function. + * */ +kiss_fft_cfg kiss_fft_alloc(int nfft,int inverse_fft,void * mem, size_t* lenmem ) +{ + kiss_fft_cfg st=NULL; + size_t memneeded = sizeof(struct kiss_fft_state) + + sizeof(kiss_fft_cpx)*(nfft-1); /* twiddle factors*/ + + if ( lenmem==NULL ) { + st = ( kiss_fft_cfg)KISS_FFT_MALLOC( memneeded ); + }else{ + if (mem != NULL && *lenmem >= memneeded) + st = (kiss_fft_cfg)mem; + *lenmem = memneeded; + } + if (st) { + int i; + st->nfft=nfft; + st->inverse = inverse_fft; + + for (i=0;iinverse) + phase *= -1; + kf_cexp(st->twiddles+i, phase ); + } + + kf_factor(nfft,st->factors); + } + return st; +} + + +void kiss_fft_stride(kiss_fft_cfg st,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int in_stride) +{ + if (fin == fout) { + //NOTE: this is not really an in-place FFT algorithm. + //It just performs an out-of-place FFT into a temp buffer + kiss_fft_cpx * tmpbuf = (kiss_fft_cpx*)KISS_FFT_TMP_ALLOC( sizeof(kiss_fft_cpx)*st->nfft); + kf_work(tmpbuf,fin,1,in_stride, st->factors,st); + memcpy(fout,tmpbuf,sizeof(kiss_fft_cpx)*st->nfft); + KISS_FFT_TMP_FREE(tmpbuf); + }else{ + kf_work( fout, fin, 1,in_stride, st->factors,st ); + } +} + +void kiss_fft(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout) +{ + kiss_fft_stride(cfg,fin,fout,1); +} + + +void kiss_fft_cleanup(void) +{ + // nothing needed any more +} + +int kiss_fft_next_fast_size(int n) +{ + while(1) { + int m=n; + while ( (m%2) == 0 ) m/=2; + while ( (m%3) == 0 ) m/=3; + while ( (m%5) == 0 ) m/=5; + if (m<=1) + break; /* n is completely factorable by twos, threes, and fives */ + n++; + } + return n; +} diff --git a/sources/LabSound/third_party/kissfft/src/kiss_fftr.cpp b/sources/LabSound/third_party/kissfft/src/kiss_fftr.cpp new file mode 100644 index 00000000..96759c31 --- /dev/null +++ b/sources/LabSound/third_party/kissfft/src/kiss_fftr.cpp @@ -0,0 +1,159 @@ +/* +Copyright (c) 2003-2004, Mark Borgerding + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "kissfft/kiss_fftr.hpp" +#include "kissfft/_kiss_fft_guts.hpp" + +struct kiss_fftr_state{ + kiss_fft_cfg substate; + kiss_fft_cpx * tmpbuf; + kiss_fft_cpx * super_twiddles; +#ifdef USE_SIMD + void * pad; +#endif +}; + +kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem) +{ + int i; + kiss_fftr_cfg st = NULL; + size_t subsize, memneeded; + + if (nfft & 1) { + fprintf(stderr,"Real FFT optimization must be even.\n"); + return NULL; + } + nfft >>= 1; + + kiss_fft_alloc (nfft, inverse_fft, NULL, &subsize); + memneeded = sizeof(struct kiss_fftr_state) + subsize + sizeof(kiss_fft_cpx) * ( nfft * 3 / 2); + + if (lenmem == NULL) { + st = (kiss_fftr_cfg) KISS_FFT_MALLOC (memneeded); + } else { + if (*lenmem >= memneeded) + st = (kiss_fftr_cfg) mem; + *lenmem = memneeded; + } + if (!st) + return NULL; + + st->substate = (kiss_fft_cfg) (st + 1); /*just beyond kiss_fftr_state struct */ + st->tmpbuf = (kiss_fft_cpx *) (((char *) st->substate) + subsize); + st->super_twiddles = st->tmpbuf + nfft; + kiss_fft_alloc(nfft, inverse_fft, st->substate, &subsize); + + for (i = 0; i < nfft/2; ++i) { + double phase = + -3.14159265358979323846264338327 * ((double) (i+1) / nfft + .5); + if (inverse_fft) + phase *= -1; + kf_cexp (st->super_twiddles+i,phase); + } + return st; +} + +void kiss_fftr(kiss_fftr_cfg st,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata) +{ + /* input buffer timedata is stored row-wise */ + int k,ncfft; + kiss_fft_cpx fpnk,fpk,f1k,f2k,tw,tdc; + + if ( st->substate->inverse) { + fprintf(stderr,"kiss fft usage error: improper alloc\n"); + exit(1); + } + + ncfft = st->substate->nfft; + + /*perform the parallel fft of two real signals packed in real,imag*/ + kiss_fft( st->substate , (const kiss_fft_cpx*)timedata, st->tmpbuf ); + /* The real part of the DC element of the frequency spectrum in st->tmpbuf + * contains the sum of the even-numbered elements of the input time sequence + * The imag part is the sum of the odd-numbered elements + * + * The sum of tdc.r and tdc.i is the sum of the input time sequence. + * yielding DC of input time sequence + * The difference of tdc.r - tdc.i is the sum of the input (dot product) [1,-1,1,-1... + * yielding Nyquist bin of input time sequence + */ + + tdc.r = st->tmpbuf[0].r; + tdc.i = st->tmpbuf[0].i; + C_FIXDIV(tdc,2); + CHECK_OVERFLOW_OP(tdc.r ,+, tdc.i); + CHECK_OVERFLOW_OP(tdc.r ,-, tdc.i); + freqdata[0].r = tdc.r + tdc.i; + freqdata[ncfft].r = tdc.r - tdc.i; +#ifdef USE_SIMD + freqdata[ncfft].i = freqdata[0].i = _mm_set1_ps(0); +#else + freqdata[ncfft].i = freqdata[0].i = 0; +#endif + + for ( k=1;k <= ncfft/2 ; ++k ) { + fpk = st->tmpbuf[k]; + fpnk.r = st->tmpbuf[ncfft-k].r; + fpnk.i = - st->tmpbuf[ncfft-k].i; + C_FIXDIV(fpk,2); + C_FIXDIV(fpnk,2); + + C_ADD( f1k, fpk , fpnk ); + C_SUB( f2k, fpk , fpnk ); + C_MUL( tw , f2k , st->super_twiddles[k-1]); + + freqdata[k].r = HALF_OF(f1k.r + tw.r); + freqdata[k].i = HALF_OF(f1k.i + tw.i); + freqdata[ncfft-k].r = HALF_OF(f1k.r - tw.r); + freqdata[ncfft-k].i = HALF_OF(tw.i - f1k.i); + } +} + +void kiss_fftri(kiss_fftr_cfg st,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata) +{ + /* input buffer timedata is stored row-wise */ + int k, ncfft; + + if (st->substate->inverse == 0) { + fprintf (stderr, "kiss fft usage error: improper alloc\n"); + exit (1); + } + + ncfft = st->substate->nfft; + + st->tmpbuf[0].r = freqdata[0].r + freqdata[ncfft].r; + st->tmpbuf[0].i = freqdata[0].r - freqdata[ncfft].r; + C_FIXDIV(st->tmpbuf[0],2); + + for (k = 1; k <= ncfft / 2; ++k) { + kiss_fft_cpx fk, fnkc, fek, fok, tmp; + fk = freqdata[k]; + fnkc.r = freqdata[ncfft - k].r; + fnkc.i = -freqdata[ncfft - k].i; + C_FIXDIV( fk , 2 ); + C_FIXDIV( fnkc , 2 ); + + C_ADD (fek, fk, fnkc); + C_SUB (tmp, fk, fnkc); + C_MUL (fok, tmp, st->super_twiddles[k-1]); + C_ADD (st->tmpbuf[k], fek, fok); + C_SUB (st->tmpbuf[ncfft - k], fek, fok); +#ifdef USE_SIMD + st->tmpbuf[ncfft - k].i *= _mm_set1_ps(-1.0); +#else + st->tmpbuf[ncfft - k].i *= -1; +#endif + } + kiss_fft (st->substate, st->tmpbuf, (kiss_fft_cpx *) timedata); +} diff --git a/sources/LabSound/third_party/libnyquist/include/libnyquist/Common.h b/sources/LabSound/third_party/libnyquist/include/libnyquist/Common.h new file mode 100644 index 00000000..050f1468 --- /dev/null +++ b/sources/LabSound/third_party/libnyquist/include/libnyquist/Common.h @@ -0,0 +1,694 @@ +/* +Copyright (c) 2019, Dimitri Diakopoulos All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef LIBNYQUIST_COMMON_H +#define LIBNYQUIST_COMMON_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace nqr +{ + +///////////////// +// Util Macros // +///////////////// + +#define F_ROUND(x) ((x) > 0 ? (x) + 0.5f : (x) - 0.5f) +#define D_ROUND(x) ((x) > 0 ? (x) + 0.5 : (x) - 0.5) + +#define NO_COPY(C) C(const C &) = delete; C & operator = (const C &) = delete +#define NO_MOVE(C) NO_COPY(C); C(C &&) = delete; C & operator = (const C &&) = delete + +/////////////////////// +// Endian Operations // +/////////////////////// + +#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) + #define CPU_X86 1 +#endif + +#if defined(__arm__) || defined(_M_ARM) + #define CPU_ARM 1 +#endif + +#if defined(CPU_X86) && defined(CPU_ARM) + #error CPU_X86 and CPU_ARM both defined. +#endif + +#if !defined(ARCH_CPU_BIG_ENDIAN) && !defined(ARCH_CPU_LITTLE_ENDIAN) + #if CPU_X86 || CPU_ARM || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + #define ARCH_CPU_LITTLE_ENDIAN + #elif defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + #define ARCH_CPU_BIG_ENDIAN + #else + #error ARCH_CPU_BIG_ENDIAN or ARCH_CPU_LITTLE_ENDIAN should be defined. + #endif +#endif + +#if defined(ARCH_CPU_BIG_ENDIAN) && defined(ARCH_CPU_LITTLE_ENDIAN) + #error ARCH_CPU_BIG_ENDIAN and ARCH_CPU_LITTLE_ENDIAN both defined. +#endif + +static inline uint16_t Swap16(uint16_t value) +{ + return (uint16_t)((value >> 8) | (value << 8)); +} + +static inline uint32_t Swap24(uint32_t value) +{ + return (((value & 0x00ff0000) >> 16) | + ((value & 0x0000ff00)) | + ((value & 0x000000ff) << 16)) & 0x00FFFFFF; +} + +static inline uint32_t Swap32(uint32_t value) +{ + return (((value & 0x000000ff) << 24) | + ((value & 0x0000ff00) << 8) | + ((value & 0x00ff0000) >> 8) | + ((value & 0xff000000) >> 24)); +} + +static inline uint64_t Swap64(uint64_t value) +{ + return (((value & 0x00000000000000ffLL) << 56) | + ((value & 0x000000000000ff00LL) << 40) | + ((value & 0x0000000000ff0000LL) << 24) | + ((value & 0x00000000ff000000LL) << 8) | + ((value & 0x000000ff00000000LL) >> 8) | + ((value & 0x0000ff0000000000LL) >> 24) | + ((value & 0x00ff000000000000LL) >> 40) | + ((value & 0xff00000000000000LL) >> 56)); +} + +template +inline bool isOdd(const T x) +{ + return (x & 0x1); +} + +#ifdef ARCH_CPU_LITTLE_ENDIAN + #define Read16(n) (n) + #define Read24(n) (n) + #define Read32(n) (n) + #define Read64(n) (n) + #define Write16(n) (n) + #define Write24(n) (n) + #define Write32(n) (n) + #define Write64(n) (n) +#else + #define Read16(n) Swap16(n) + #define Read24(n) Swap24(n) + #define Read32(n) Swap32(n) + #define Read64(n) Swap64(n) + #define Write16(n) Swap16(n) + #define Write24(n) Swap24(n) + #define Write32(n) Swap32(n) + #define Write64(n) Swap64(n) +#endif + +inline uint64_t Pack(uint32_t a, uint32_t b) +{ + uint64_t tmp = (uint64_t) b << 32 | (uint64_t) a; +#ifdef ARCH_CPU_LITTLE_ENDIAN + return tmp; +#else + return Swap64(tmp); +#endif +} + +inline uint32_t Pack(uint16_t a, uint16_t b) +{ + uint32_t tmp = (uint32_t) b << 16 | (uint32_t) a; +#ifdef ARCH_CPU_LITTLE_ENDIAN + return tmp; +#else + return Swap32(tmp); +#endif +} + +inline uint16_t Pack(uint8_t a, uint8_t b) +{ + uint16_t tmp = (uint16_t) b << 8 | (uint16_t) a; +#ifdef ARCH_CPU_LITTLE_ENDIAN + return tmp; +#else + return Swap16(tmp); +#endif +} + +// http://www.dsprelated.com/showthread/comp.dsp/136689-1.php +inline int32_t Pack(uint8_t a, uint8_t b, uint8_t c) +{ + // uint32_t tmp = ((c & 0x80) ? (0xFF << 24) : 0x00 << 24) | (c << 16) | (b << 8) | (a << 0); // alternate method + int32_t x = (c << 16) | (b << 8) | (a << 0); + auto sign_extended = (x) | (!!((x) & 0x800000) * 0xff000000); + #ifdef ARCH_CPU_LITTLE_ENDIAN + return sign_extended; + #else + Swap32(sign_extended); + #endif +} + +inline std::array Unpack(uint32_t a) +{ + static std::array output; + + #ifdef ARCH_CPU_LITTLE_ENDIAN + output[0] = a >> 0; + output[1] = a >> 8; + output[2] = a >> 16; + #else + output[0] = a >> 16; + output[1] = a >> 8; + output[2] = a >> 0; + #endif + return output; +} + +////////////////////////// +// Resampling Utilities // +////////////////////////// + +// This is a naieve implementation of a resampling filter where a lerp is used as a bad low-pass. +// It very far from the ideal case and should be used with caution (or not at all) on signals that matter. +// It is included here to upsample 44.1k to 48k for the purposes of microphone input => Opus, where the the +// nominal frequencies of speech are particularly far from Nyquist. +inline void linear_resample(const double rate, const std::vector & input, std::vector & output, const uint32_t samplesToProcess) +{ + double virtualReadIndex = 0; + double a, b, i, sample; + uint32_t n = samplesToProcess - 1; + while (n--) + { + uint32_t readIndex = static_cast(virtualReadIndex); + i = virtualReadIndex - readIndex; + a = input[readIndex + 0]; + b = input[readIndex + 1]; + sample = (1.0 - i) * a + i * b; // linear interpolate + output.push_back(static_cast(sample)); + virtualReadIndex += rate; + } +} + +inline double sample_hermite_4p_3o(double x, double * y) +{ + static double c0, c1, c2, c3; + c0 = y[1]; + c1 = (1.0 / 2.0)*(y[2] - y[0]); + c2 = (y[0] - (5.0 / 2.0)*y[1]) + (2.0*y[2] - (1.0 / 2.0)*y[3]); + c3 = (1.0 / 2.0)*(y[3] - y[0]) + (3.0 / 2.0)*(y[1] - y[2]); + return ((c3*x + c2)*x + c1)*x + c0; +} + +inline void hermite_resample(const double rate, const std::vector & input, std::vector & output, const uint32_t samplesToProcess) +{ + double virtualReadIndex = 1; + double i, sample; + uint32_t n = samplesToProcess - 1; + while (n--) + { + uint32_t readIndex = static_cast(virtualReadIndex); + i = virtualReadIndex - readIndex; + double samps[4] = { input[readIndex - 1], input[readIndex], input[readIndex + 1], input[readIndex + 2] }; + sample = sample_hermite_4p_3o(i, samps); // cubic hermite interpolate over 4 samples + output.push_back(static_cast(sample)); + virtualReadIndex += rate; + } +} + +////////////////////////// +// Conversion Utilities // +////////////////////////// + +enum DitherType +{ + DITHER_NONE, + DITHER_TRIANGLE +}; + +class Dither +{ + std::uniform_real_distribution distribution; + std::mt19937 gen; + float previous; + DitherType d; +public: + + Dither(DitherType d) : distribution(-0.5f, +0.5f), previous(0.f), d(d) {} + + float operator()(float s) + { + if (d == DITHER_TRIANGLE) + { + const float value = distribution(gen); + s = s + value - previous; + previous = value; + return s; + } + else return s; + } +}; + +// Signed maxes, defined for readabilty/convenience +#define NQR_INT16_MAX 32767.f +#define NQR_INT24_MAX 8388608.f +#define NQR_INT32_MAX 2147483648.f + +static const float NQR_BYTE_2_FLT = 1.0f / 127.0f; + +#define int8_to_float32(s) ((float) (s) * NQR_BYTE_2_FLT) +#define uint8_to_float32(s)(((float) (s) - 128) * NQR_BYTE_2_FLT) +#define int16_to_float32(s) ((float) (s) / NQR_INT16_MAX) +#define int24_to_float32(s) ((float) (s) / NQR_INT24_MAX) +#define int32_to_float32(s) ((float) (s) / NQR_INT32_MAX) + +#define float32_to_int8(s) (float) (s * 127.f) +#define float32_to_uint8(s) (float) ((s * 127.f) + 128) +#define float32_to_int16(s) (float) (s * NQR_INT16_MAX) +#define float32_to_int24(s) (float) (s * NQR_INT24_MAX) +#define float32_to_int32(s) (float) (s * NQR_INT32_MAX) + +//@todo add 12, 20 for flac +enum PCMFormat +{ + PCM_U8, + PCM_S8, + PCM_16, + PCM_24, + PCM_32, + PCM_64, + PCM_FLT, + PCM_DBL, + PCM_END +}; + +template T clamp(T a, T mn, T mx) { return std::max(std::min(a, mx), mn); } + +// Src data is aligned to PCMFormat +// @todo normalize? +void ConvertToFloat32(float * dst, const uint8_t * src, const size_t N, PCMFormat f); + +// Src data is always aligned to 4 bytes (WavPack, primarily) +void ConvertToFloat32(float * dst, const int32_t * src, const size_t N, PCMFormat f); + +// Src data is always aligned to 2 bytes (IMA ADPCM, primarily) +void ConvertToFloat32(float * dst, const int16_t * src, const size_t N, PCMFormat f); + +void ConvertFromFloat32(uint8_t * dst, const float * src, const size_t N, PCMFormat f, DitherType t = DITHER_NONE); + +int GetFormatBitsPerSample(PCMFormat f); +PCMFormat MakeFormatForBits(int bits, bool floatingPt, bool isSigned); + +////////////////////////// +// User Data + File Ops // +////////////////////////// + +struct AudioData +{ + int channelCount; + int sampleRate; + double lengthSeconds; + size_t frameSize; // channels * bits per sample + std::vector samples; + PCMFormat sourceFormat; + + //@todo: add field: channel layout + //@todo: add field: lossy / lossless + //@todo: audio data loaded (for metadata only) + //@todo: bitrate (if applicable) + //@todo: original sample rate (if applicable) +}; + +struct StreamableAudioData : public AudioData +{ + //@todo: add field: is this format streamable? + //@todo: hold file handle +}; + +struct NyquistFileBuffer +{ + std::vector buffer; + size_t size; +}; + +NyquistFileBuffer ReadFile(const std::string & pathToFile); + +//////////////////// +// Encoding Utils // +//////////////////// + +struct EncoderParams +{ + int channelCount; + PCMFormat targetFormat; + DitherType dither; +}; + +enum EncoderError +{ + NoError, + InsufficientSampleData, + FileIOError, + UnsupportedSamplerate, + UnsupportedChannelConfiguration, + UnsupportedBitdepth, + UnsupportedChannelMix, + BufferTooBig, +}; + +////////////////////// +// Wav Format Utils // +////////////////////// + +enum WaveFormatCode +{ + FORMAT_UNKNOWN = 0x0, // Unknown Wave Format + FORMAT_PCM = 0x1, // PCM Format + FORMAT_ADPCM = 0x2, // Microsoft ADPCM Format + FORMAT_IEEE = 0x3, // IEEE float/double + FORMAT_ALAW = 0x6, // 8-bit ITU-T G.711 A-law + FORMAT_MULAW = 0x7, // 8-bit ITU-T G.711 µ-law + FORMAT_IMA_ADPCM = 0x11, // IMA ADPCM Format + FORMAT_EXT = 0xFFFE // Set via subformat +}; + +struct RiffChunkHeader +{ + uint32_t id_riff; // Chunk ID: 'RIFF' + uint32_t file_size; // Entire file in bytes + uint32_t id_wave; // Chunk ID: 'WAVE' +}; + +struct WaveChunkHeader +{ + uint32_t fmt_id; // Chunk ID: 'fmt ' + uint32_t chunk_size; // Size in bytes + uint16_t format; // Format code + uint16_t channel_count; // Num interleaved channels + uint32_t sample_rate; // SR + uint32_t data_rate; // Data rate + uint16_t frame_size; // 1 frame = channels * bits per sample (also known as block align) + uint16_t bit_depth; // Bits per sample +}; + +struct BextChunk +{ + uint32_t fmt_id; // Chunk ID: 'bext' + uint32_t chunk_size; // Size in bytes + uint8_t description[256]; // Description of the sound (ascii) + uint8_t origin[32]; // Name of the originator (ascii) + uint8_t origin_ref[32]; // Reference of the originator (ascii) + uint8_t orgin_date[10]; // yyyy-mm-dd (ascii) + uint8_t origin_time[8]; // hh-mm-ss (ascii) + uint64_t time_ref; // First sample count since midnight + uint32_t version; // Version of the BWF + uint8_t uimd[64]; // Byte 0 of SMPTE UMID + uint8_t reserved[188]; // 190 bytes, reserved for future use & set to NULL +}; + +struct FactChunk +{ + uint32_t fact_id; // Chunk ID: 'fact' + uint32_t chunk_size; // Size in bytes + uint32_t sample_length; // number of samples per channel +}; + +struct ExtensibleData +{ + uint16_t size; + uint16_t valid_bits_per_sample; + uint32_t channel_mask; + struct GUID + { + uint32_t data0; + uint16_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[6]; + }; +}; + +template +std::basic_ostream & operator << (std::basic_ostream & a, const WaveChunkHeader & b) +{ + return a << + "Format ID:\t\t" << b.fmt_id << + "\nChunk Size:\t\t" << b.chunk_size << + "\nFormat Code:\t\t" << b.format << + "\nChannels:\t\t" << b.channel_count << + "\nSample Rate:\t\t" << b.sample_rate << + "\nData Rate:\t\t" << b.data_rate << + "\nFrame Size:\t\t" << b.frame_size << + "\nBit Depth:\t\t" << b.bit_depth << std::endl; +} + +//@todo expose speaker/channel/layout masks in the API: + +enum SpeakerChannelMask +{ + SPEAKER_FRONT_LEFT = 0x00000001, + SPEAKER_FRONT_RIGHT = 0x00000002, + SPEAKER_FRONT_CENTER = 0x00000004, + SPEAKER_LOW_FREQUENCY = 0x00000008, + SPEAKER_BACK_LEFT = 0x00000010, + SPEAKER_BACK_RIGHT = 0x00000020, + SPEAKER_FRONT_LEFT_OF_CENTER = 0x00000040, + SPEAKER_FRONT_RIGHT_OF_CENTER = 0x00000080, + SPEAKER_BACK_CENTER = 0x00000100, + SPEAKER_SIDE_LEFT = 0x00000200, + SPEAKER_SIDE_RIGHT = 0x00000400, + SPEAKER_TOP_CENTER = 0x00000800, + SPEAKER_TOP_FRONT_LEFT = 0x00001000, + SPEAKER_TOP_FRONT_CENTER = 0x00002000, + SPEAKER_TOP_FRONT_RIGHT = 0x00004000, + SPEAKER_TOP_BACK_LEFT = 0x00008000, + SPEAKER_TOP_BACK_CENTER = 0x00010000, + SPEAKER_TOP_BACK_RIGHT = 0x00020000, + SPEAKER_RESERVED = 0x7FFC0000, + SPEAKER_ALL = 0x80000000 +}; + +enum SpeakerLayoutMask +{ + SPEAKER_MONO = (SPEAKER_FRONT_CENTER), + SPEAKER_STEREO = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT), + SPEAKER_2POINT1 = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_LOW_FREQUENCY), + SPEAKER_SURROUND = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER), + SPEAKER_QUAD = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT), + SPEAKER_4POINT1 = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT), + SPEAKER_5POINT1 = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT), + SPEAKER_7POINT1 = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER), + SPEAKER_5POINT1_SURROUND = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT), + SPEAKER_7POINT1_SURROUND = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT), +}; + +//@todo verify mask values +inline int ComputeChannelMask(const size_t channels) +{ + switch (channels) + { + case 1: return SPEAKER_MONO; + case 2: return SPEAKER_STEREO; + case 3: return SPEAKER_2POINT1; + case 4: return SPEAKER_QUAD; + case 5: return SPEAKER_4POINT1; + case 6: return SPEAKER_5POINT1; + default: return -1; + } +} + +///////////////////// +// Chunk utilities // +///////////////////// + +struct ChunkHeaderInfo +{ + uint32_t offset; // Byte offset into chunk + uint32_t size; // Size of the chunk in bytes +}; + +inline uint32_t GenerateChunkCode(uint8_t a, uint8_t b, uint8_t c, uint8_t d) +{ +#ifdef ARCH_CPU_LITTLE_ENDIAN + return ((uint32_t)((a) | ((b) << 8) | ((c) << 16) | (((uint32_t)(d)) << 24))); +#else + return ((uint32_t)((((uint32_t)(a)) << 24) | ((b) << 16) | ((c) << 8) | (d))); +#endif +} + +inline char * GenerateChunkCodeChar(uint8_t a, uint8_t b, uint8_t c, uint8_t d) +{ + auto chunk = GenerateChunkCode(a, b, c, d); + + char * outArr = new char[4]; + + uint32_t t = 0x000000FF; + + for (size_t i = 0; i < 4; i++) + { + outArr[i] = chunk & t; + chunk >>= 8; + } + return outArr; +} + +inline ChunkHeaderInfo ScanForChunk(const std::vector & fileData, uint32_t chunkMarker) +{ + // D[n] aligned to 16 bytes now + const uint16_t * d = reinterpret_cast(fileData.data()); + + for (size_t i = 0; i < fileData.size() / sizeof(uint16_t); i++) + { + // This will be in machine endianess + uint32_t m = Pack(Read16(d[i]), Read16(d[i + 1])); + + if (m == chunkMarker) + { + uint32_t cSz = Pack(Read16(d[i + 2]), Read16(d[i + 3])); + return { (uint32_t(i * sizeof(uint16_t))), cSz }; // return i in bytes to the start of the data + } + else continue; + } + return { 0, 0 }; +}; + +inline WaveChunkHeader MakeWaveHeader(const EncoderParams param, const int sampleRate) +{ + WaveChunkHeader header; + + int bitdepth = GetFormatBitsPerSample(param.targetFormat); + + header.fmt_id = GenerateChunkCode('f', 'm', 't', ' '); + header.chunk_size = 16; + header.format = (param.targetFormat <= PCMFormat::PCM_32) ? WaveFormatCode::FORMAT_PCM : WaveFormatCode::FORMAT_IEEE; + header.channel_count = param.channelCount; + header.sample_rate = sampleRate; + header.data_rate = sampleRate * param.channelCount * (bitdepth / 8); + header.frame_size = param.channelCount * (bitdepth / 8); + header.bit_depth = bitdepth; + + return header; +} + +// @todo expose this in the FLAC API +inline std::map GetFlacQualityTable() +{ + return { + { 0, "0 (Fastest)" }, + { 1, "1" }, + { 2, "2" }, + { 3, "3" }, + { 4, "4" }, + { 5, "5 (Default)" }, + { 6, "6" }, + { 7, "7" }, + { 8, "8 (Highest)" }, + }; +} + +template +inline void DeinterleaveStereo(T * c1, T * c2, T const * src, size_t count) +{ + auto src_end = src + count; + while (src != src_end) + { + *c1 = src[0]; + *c2 = src[1]; + c1++; + c2++; + src += 2; + } +} + +template +void InterleaveChannels(const T * src, T * dest, size_t numFramesPerChannel, size_t numChannels, size_t N) +{ + for (size_t ch = 0; ch < numChannels; ch++) + { + size_t x = ch; + const T * srcChannel = &src[ch * numFramesPerChannel]; + for (size_t i = 0; i < N; i++) + { + dest[x] = srcChannel[i]; + x += numChannels; + } + } +} + +template +void DeinterleaveChannels(const T * src, T * dest, size_t numFramesPerChannel, size_t numChannels, size_t N) +{ + for (size_t ch = 0; ch < numChannels; ch++) + { + size_t x = ch; + T *destChannel = &dest[ch * numFramesPerChannel]; + for (size_t i = 0; i < N; i++) + { + destChannel[i] = (T)src[x]; + x += numChannels; + } + } +} + +template +void StereoToMono(const T * src, T * dest, size_t N) +{ + for (size_t i = 0, j = 0; i < N; i += 2, ++j) + { + dest[j] = (src[i] + src[i + 1]) / 2.0f; + } +} + +template +void MonoToStereo(const T * src, T * dest, size_t N) +{ + for (size_t i = 0, j = 0; i < N; ++i, j += 2) + { + dest[j] = src[i]; + dest[j + 1] = src[i]; + } +} + +inline void TrimSilenceInterleaved(std::vector & buffer, float v, bool fromFront, bool fromEnd) +{ + //@todo implement me! +} + +} // end namespace nqr + +#endif diff --git a/sources/LabSound/third_party/libnyquist/include/libnyquist/Decoders.h b/sources/LabSound/third_party/libnyquist/include/libnyquist/Decoders.h new file mode 100644 index 00000000..79988696 --- /dev/null +++ b/sources/LabSound/third_party/libnyquist/include/libnyquist/Decoders.h @@ -0,0 +1,136 @@ +/* +Copyright (c) 2019, Dimitri Diakopoulos All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef AUDIO_DECODER_H +#define AUDIO_DECODER_H + +#include "Common.h" +#include +#include +#include +#include + +namespace nqr +{ + struct BaseDecoder + { + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) = 0; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) = 0; + virtual std::vector GetSupportedFileExtensions() = 0; + virtual ~BaseDecoder() {} + }; + + typedef std::pair< std::string, std::shared_ptr > DecoderPair; + + class NyquistIO + { + std::string ParsePathForExtension(const std::string & path) const; + std::shared_ptr GetDecoderForExtension(const std::string & ext); + void BuildDecoderTable(); + void AddDecoderToTable(std::shared_ptr decoder); + std::map< std::string, std::shared_ptr > decoderTable; + + NO_MOVE(NyquistIO); + + public: + + NyquistIO(); + ~NyquistIO(); + void Load(AudioData * data, const std::string & path); + void Load(AudioData * data, const std::vector & buffer); + void Load(AudioData * data, const std::string & extension, const std::vector & buffer); + bool IsFileSupported(const std::string & path) const; + }; + + struct UnsupportedExtensionEx : public std::runtime_error { UnsupportedExtensionEx() : std::runtime_error("Unsupported file extension") {} }; + struct LoadPathNotImplEx : public std::runtime_error { LoadPathNotImplEx() : std::runtime_error("Loading from path not implemented") {} }; + struct LoadBufferNotImplEx : public std::runtime_error { LoadBufferNotImplEx() : std::runtime_error("Loading from buffer not implemented") {} }; + + struct WavDecoder final : public nqr::BaseDecoder + { + WavDecoder() = default; + virtual ~WavDecoder() {} + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override final; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) override final; + virtual std::vector GetSupportedFileExtensions() override final; + }; + + struct WavPackDecoder final : public nqr::BaseDecoder + { + WavPackDecoder() = default; + virtual ~WavPackDecoder() override {}; + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override final; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) override final; + virtual std::vector GetSupportedFileExtensions() override final; + }; + + struct VorbisDecoder final : public nqr::BaseDecoder + { + VorbisDecoder() = default; + virtual ~VorbisDecoder() override {} + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override final; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) override final; + virtual std::vector GetSupportedFileExtensions() override final; + }; + + struct OpusDecoder final : public nqr::BaseDecoder + { + OpusDecoder() = default; + virtual ~OpusDecoder() override {} + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override final; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) override final; + virtual std::vector GetSupportedFileExtensions() override final; + }; + + struct MusepackDecoder final : public nqr::BaseDecoder + { + MusepackDecoder() = default; + virtual ~MusepackDecoder() override {}; + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override final; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) override final; + virtual std::vector GetSupportedFileExtensions() override final; + }; + + struct Mp3Decoder final : public nqr::BaseDecoder + { + Mp3Decoder() = default; + virtual ~Mp3Decoder() override {}; + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override final; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) override final; + virtual std::vector GetSupportedFileExtensions() override final; + }; + + struct FlacDecoder final : public nqr::BaseDecoder + { + FlacDecoder() = default; + virtual ~FlacDecoder() override {} + virtual void LoadFromPath(nqr::AudioData * data, const std::string & path) override final; + virtual void LoadFromBuffer(nqr::AudioData * data, const std::vector & memory) override final; + virtual std::vector GetSupportedFileExtensions() override final; + }; + +} // end namespace nqr + +#endif diff --git a/sources/LabSound/third_party/libnyquist/include/libnyquist/Encoders.h b/sources/LabSound/third_party/libnyquist/include/libnyquist/Encoders.h new file mode 100644 index 00000000..f9fb9ffe --- /dev/null +++ b/sources/LabSound/third_party/libnyquist/include/libnyquist/Encoders.h @@ -0,0 +1,44 @@ +/* +Copyright (c) 2019, Dimitri Diakopoulos All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef NYQUIST_ENCODERS_H +#define NYQUIST_ENCODERS_H + +#include "Common.h" + +namespace nqr +{ + // A simplistic encoder that takes a buffer of audio, conforms it to the user's + // EncoderParams preference, and writes to disk. Be warned, does not support resampling! + // @todo support dithering, samplerate conversion, etc. + int encode_wav_to_disk(const EncoderParams p, const AudioData * d, const std::string & path); + + // Assume data adheres to EncoderParams, except for bit depth and fmt which are re-formatted + // to satisfy the Ogg/Opus spec. + int encode_opus_to_disk(const EncoderParams p, const AudioData * d, const std::string & path); + +} // end namespace nqr + +#endif // end NYQUIST_ENCODERS_H diff --git a/sources/LabSound/third_party/libsamplerate/include/samplerate.h b/sources/LabSound/third_party/libsamplerate/include/samplerate.h new file mode 100644 index 00000000..a3d5ae1a --- /dev/null +++ b/sources/LabSound/third_party/libsamplerate/include/samplerate.h @@ -0,0 +1,189 @@ +/* +** Copyright (c) 2002-2016, Erik de Castro Lopo +** All rights reserved. +** +** This code is released under 2-clause BSD license. Please see the +** file at : https://github.com/libsndfile/libsamplerate/blob/master/COPYING +*/ + +/* +** API documentation is available here: +** http://libsndfile.github.io/libsamplerate/api.html +*/ + +#ifndef SAMPLERATE_H +#define SAMPLERATE_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +/* Opaque data type SRC_STATE. */ +typedef struct SRC_STATE_tag SRC_STATE ; + +/* SRC_DATA is used to pass data to src_simple() and src_process(). */ +typedef struct +{ const float *data_in ; + float *data_out ; + + long input_frames, output_frames ; + long input_frames_used, output_frames_gen ; + + int end_of_input ; + + double src_ratio ; +} SRC_DATA ; + +/* +** User supplied callback function type for use with src_callback_new() +** and src_callback_read(). First parameter is the same pointer that was +** passed into src_callback_new(). Second parameter is pointer to a +** pointer. The user supplied callback function must modify *data to +** point to the start of the user supplied float array. The user supplied +** function must return the number of frames that **data points to. +*/ + +typedef long (*src_callback_t) (void *cb_data, float **data) ; + +/* +** Standard initialisation function : return an anonymous pointer to the +** internal state of the converter. Choose a converter from the enums below. +** Error returned in *error. +*/ + +SRC_STATE* src_new (int converter_type, int channels, int *error) ; + +/* +** Clone a handle : return an anonymous pointer to a new converter +** containing the same internal state as orig. Error returned in *error. +*/ +SRC_STATE* src_clone (SRC_STATE* orig, int *error) ; + +/* +** Initilisation for callback based API : return an anonymous pointer to the +** internal state of the converter. Choose a converter from the enums below. +** The cb_data pointer can point to any data or be set to NULL. Whatever the +** value, when processing, user supplied function "func" gets called with +** cb_data as first parameter. +*/ + +SRC_STATE* src_callback_new (src_callback_t func, int converter_type, int channels, + int *error, void* cb_data) ; + +/* +** Cleanup all internal allocations. +** Always returns NULL. +*/ + +SRC_STATE* src_delete (SRC_STATE *state) ; + +/* +** Standard processing function. +** Returns non zero on error. +*/ + +int src_process (SRC_STATE *state, SRC_DATA *data) ; + +/* +** Callback based processing function. Read up to frames worth of data from +** the converter int *data and return frames read or -1 on error. +*/ +long src_callback_read (SRC_STATE *state, double src_ratio, long frames, float *data) ; + +/* +** Simple interface for performing a single conversion from input buffer to +** output buffer at a fixed conversion ratio. +** Simple interface does not require initialisation as it can only operate on +** a single buffer worth of audio. +*/ + +int src_simple (SRC_DATA *data, int converter_type, int channels) ; + +/* +** This library contains a number of different sample rate converters, +** numbered 0 through N. +** +** Return a string giving either a name or a more full description of each +** sample rate converter or NULL if no sample rate converter exists for +** the given value. The converters are sequentially numbered from 0 to N. +*/ + +const char *src_get_name (int converter_type) ; +const char *src_get_description (int converter_type) ; +const char *src_get_version (void) ; + +/* +** Set a new SRC ratio. This allows step responses +** in the conversion ratio. +** Returns non zero on error. +*/ + +int src_set_ratio (SRC_STATE *state, double new_ratio) ; + +/* +** Get the current channel count. +** Returns negative on error, positive channel count otherwise +*/ + +int src_get_channels (SRC_STATE *state) ; + +/* +** Reset the internal SRC state. +** Does not modify the quality settings. +** Does not free any memory allocations. +** Returns non zero on error. +*/ + +int src_reset (SRC_STATE *state) ; + +/* +** Return TRUE if ratio is a valid conversion ratio, FALSE +** otherwise. +*/ + +int src_is_valid_ratio (double ratio) ; + +/* +** Return an error number. +*/ + +int src_error (SRC_STATE *state) ; + +/* +** Convert the error number into a string. +*/ +const char* src_strerror (int error) ; + +/* +** The following enums can be used to set the interpolator type +** using the function src_set_converter(). +*/ + +enum +{ + SRC_SINC_BEST_QUALITY = 0, + SRC_SINC_MEDIUM_QUALITY = 1, + SRC_SINC_FASTEST = 2, + SRC_ZERO_ORDER_HOLD = 3, + SRC_LINEAR = 4, +} ; + +/* +** Extra helper functions for converting from short to float and +** back again. +*/ + +void src_short_to_float_array (const short *in, float *out, int len) ; +void src_float_to_short_array (const float *in, short *out, int len) ; + +void src_int_to_float_array (const int *in, float *out, int len) ; +void src_float_to_int_array (const float *in, int *out, int len) ; + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* SAMPLERATE_H */ + diff --git a/sources/LabSound/third_party/miniaudio/LICENSE b/sources/LabSound/third_party/miniaudio/LICENSE new file mode 100644 index 00000000..aa2f82ce --- /dev/null +++ b/sources/LabSound/third_party/miniaudio/LICENSE @@ -0,0 +1,47 @@ +This software is available as a choice of the following licenses. Choose +whichever you prefer. + +=============================================================================== +ALTERNATIVE 1 - Public Domain (www.unlicense.org) +=============================================================================== +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. + +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +=============================================================================== +ALTERNATIVE 2 - MIT No Attribution +=============================================================================== +Copyright 2020 David Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/sources/LabSound/third_party/miniaudio/README.md b/sources/LabSound/third_party/miniaudio/README.md new file mode 100644 index 00000000..d2d61a7b --- /dev/null +++ b/sources/LabSound/third_party/miniaudio/README.md @@ -0,0 +1,233 @@ +

    + miniaudio +
    +

    + +

    A single file library for audio playback and capture.

    + +

    + discord + twitter +

    + +

    + Example - + Documentation - + Supported Platforms - + Backends - + Major Features - + Building - + Unofficial Bindings +

    + +Example +======= +This example shows how to decode and play a sound. + +```c +#define MINIAUDIO_IMPLEMENTATION +#include "../miniaudio.h" + +#include + +void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) +{ + ma_decoder* pDecoder = (ma_decoder*)pDevice->pUserData; + if (pDecoder == NULL) { + return; + } + + ma_decoder_read_pcm_frames(pDecoder, pOutput, frameCount); + + (void)pInput; +} + +int main(int argc, char** argv) +{ + ma_result result; + ma_decoder decoder; + ma_device_config deviceConfig; + ma_device device; + + if (argc < 2) { + printf("No input file.\n"); + return -1; + } + + result = ma_decoder_init_file(argv[1], NULL, &decoder); + if (result != MA_SUCCESS) { + return -2; + } + + deviceConfig = ma_device_config_init(ma_device_type_playback); + deviceConfig.playback.format = decoder.outputFormat; + deviceConfig.playback.channels = decoder.outputChannels; + deviceConfig.sampleRate = decoder.outputSampleRate; + deviceConfig.dataCallback = data_callback; + deviceConfig.pUserData = &decoder; + + if (ma_device_init(NULL, &deviceConfig, &device) != MA_SUCCESS) { + printf("Failed to open playback device.\n"); + ma_decoder_uninit(&decoder); + return -3; + } + + if (ma_device_start(&device) != MA_SUCCESS) { + printf("Failed to start playback device.\n"); + ma_device_uninit(&device); + ma_decoder_uninit(&decoder); + return -4; + } + + printf("Press Enter to quit..."); + getchar(); + + ma_device_uninit(&device); + ma_decoder_uninit(&decoder); + + return 0; +} +``` +More examples can be found in the [examples](examples) folder or online here: https://miniaud.io/docs/examples/ + + +Documentation +============= +Online documentation can be found here: https://miniaud.io/docs/ + +Documentation can also be found at the top of [miniaudio.h](https://raw.githubusercontent.com/mackron/miniaudio/master/miniaudio.h) +which is always the most up-to-date and authoritive source of information on how to use miniaudio. All other +documentation is generated from this in-code documentation. + + +Supported Platforms +=================== +- Windows (XP+), UWP +- macOS, iOS +- Linux +- BSD +- Android +- Raspberry Pi +- Emscripten / HTML5 + + +Backends +======== +- WASAPI +- DirectSound +- WinMM +- Core Audio (Apple) +- ALSA +- PulseAudio +- JACK +- sndio (OpenBSD) +- audio(4) (NetBSD and OpenBSD) +- OSS (FreeBSD) +- AAudio (Android 8.0+) +- OpenSL|ES (Android only) +- Web Audio (Emscripten) +- Null (Silence) + + +Major Features +============== +- Your choice of either public domain or [MIT No Attribution](https://github.com/aws/mit-0). +- Entirely contained within a single file for easy integration into your source tree. +- No external dependencies except for the C standard library and backend libraries. +- Written in C and compilable as C++, enabling miniaudio to work on almost all compilers. +- Supports all major desktop and mobile platforms, with multiple backends for maximum compatibility. +- Supports custom backends. +- Supports playback, capture, full-duplex and loopback (WASAPI only). +- Device enumeration for connecting to specific devices, not just defaults. +- Connect to multiple devices at once. +- Shared and exclusive mode on supported backends. +- Backend-specific configuration options. +- Device capability querying. +- Automatic data conversion between your application and the internal device. +- Sample format conversion with optional dithering. +- Channel conversion and channel mapping. +- Resampling with support for multiple algorithms. + - Simple linear resampling with anti-aliasing. + - Optional Speex resampling (must opt-in). +- Filters. + - Biquad + - Low-pass (first, second and high order) + - High-pass (first, second and high order) + - Second order band-pass + - Second order notch + - Second order peaking + - Second order low shelf + - Second order high shelf +- Waveform generation. + - Sine + - Square + - Triangle + - Sawtooth +- Noise generation. + - White + - Pink + - Brownian +- Decoding + - WAV + - FLAC + - MP3 + - Vorbis via stb_vorbis (not built in - must be included separately). +- Encoding + - WAV +- Lock free ring buffer (single producer, single consumer). + +Refer to the [Programming Manual](https://miniaud.io/docs/manual/) for a more complete description of +available features in miniaudio. + + +Building +======== +Do the following in one source file: +```c +#define MINIAUDIO_IMPLEMENTATION +#include "miniaudio.h" +``` +Then just compile. There's no need to install any dependencies. On Windows and macOS there's no need to link +to anything. On Linux just link to -lpthread, -lm and -ldl. On BSD just link to -lpthread and -lm. On iOS you +need to compile as Objective-C. + +If you prefer separate .h and .c files, you can find a split version of miniaudio in the extras/miniaudio_split +folder. From here you can use miniaudio as a traditional .c and .h library - just add miniaudio.c to your source +tree like any other source file and include miniaudio.h like a normal header. If you prefer compiling as a +single translation unit (AKA unity builds), you can just #include the .c file in your main source file: +```c +#include "miniaudio.c" +``` +Note that the split version is auto-generated using a tool and is based on the main file in the root directory. +If you want to contribute, please make the change in the main file. + +Vorbis Decoding +--------------- +Vorbis decoding is enabled via stb_vorbis. To use it, you need to include the header section of stb_vorbis +before the implementation of miniaudio. You can enable Vorbis by doing the following: + +```c +#define STB_VORBIS_HEADER_ONLY +#include "extras/stb_vorbis.c" /* Enables Vorbis decoding. */ + +#define MINIAUDIO_IMPLEMENTATION +#include "miniaudio.h" + +/* stb_vorbis implementation must come after the implementation of miniaudio. */ +#undef STB_VORBIS_HEADER_ONLY +#include "extras/stb_vorbis.c" +``` + + +Unofficial Bindings +=================== +The projects below offer bindings for other languages which you may be interested in. Note that these +are unofficial and are not maintained as part of this repository. If you encounter a binding-specific +bug, please post a bug report to the specific project. If you've written your own bindings let me know +and I'll consider adding it to this list. + +Language | Project +---------|-------- +Go | [malgo](https://github.com/gen2brain/malgo) +Python | [pyminiaudio](https://github.com/irmen/pyminiaudio) +Rust | [miniaudio-rs](https://github.com/ExPixel/miniaudio-rs) diff --git a/sources/LabSound/third_party/miniaudio/miniaudio.h b/sources/LabSound/third_party/miniaudio/miniaudio.h new file mode 100644 index 00000000..5ff79ec6 --- /dev/null +++ b/sources/LabSound/third_party/miniaudio/miniaudio.h @@ -0,0 +1,65583 @@ +/* +Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file. +miniaudio - v0.10.35 - 2021-04-27 + +David Reid - mackron@gmail.com + +Website: https://miniaud.io +Documentation: https://miniaud.io/docs +GitHub: https://github.com/mackron/miniaudio +*/ + +/* +1. Introduction +=============== +miniaudio is a single file library for audio playback and capture. To use it, do the following in one .c file: + + ```c + #define MINIAUDIO_IMPLEMENTATION + #include "miniaudio.h" + ``` + +You can do `#include "miniaudio.h"` in other parts of the program just like any other header. + +miniaudio uses the concept of a "device" as the abstraction for physical devices. The idea is that you choose a physical device to emit or capture audio from, +and then move data to/from the device when miniaudio tells you to. Data is delivered to and from devices asynchronously via a callback which you specify when +initializing the device. + +When initializing the device you first need to configure it. The device configuration allows you to specify things like the format of the data delivered via +the callback, the size of the internal buffer and the ID of the device you want to emit or capture audio from. + +Once you have the device configuration set up you can initialize the device. When initializing a device you need to allocate memory for the device object +beforehand. This gives the application complete control over how the memory is allocated. In the example below we initialize a playback device on the stack, +but you could allocate it on the heap if that suits your situation better. + + ```c + void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) + { + // In playback mode copy data to pOutput. In capture mode read data from pInput. In full-duplex mode, both + // pOutput and pInput will be valid and you can move data from pInput into pOutput. Never process more than + // frameCount frames. + } + + int main() + { + ma_device_config config = ma_device_config_init(ma_device_type_playback); + config.playback.format = ma_format_f32; // Set to ma_format_unknown to use the device's native format. + config.playback.channels = 2; // Set to 0 to use the device's native channel count. + config.sampleRate = 48000; // Set to 0 to use the device's native sample rate. + config.dataCallback = data_callback; // This function will be called when miniaudio needs more data. + config.pUserData = pMyCustomData; // Can be accessed from the device object (device.pUserData). + + ma_device device; + if (ma_device_init(NULL, &config, &device) != MA_SUCCESS) { + return -1; // Failed to initialize the device. + } + + ma_device_start(&device); // The device is sleeping by default so you'll need to start it manually. + + // Do something here. Probably your program's main loop. + + ma_device_uninit(&device); // This will stop the device so no need to do that manually. + return 0; + } + ``` + +In the example above, `data_callback()` is where audio data is written and read from the device. The idea is in playback mode you cause sound to be emitted +from the speakers by writing audio data to the output buffer (`pOutput` in the example). In capture mode you read data from the input buffer (`pInput`) to +extract sound captured by the microphone. The `frameCount` parameter tells you how many frames can be written to the output buffer and read from the input +buffer. A "frame" is one sample for each channel. For example, in a stereo stream (2 channels), one frame is 2 samples: one for the left, one for the right. +The channel count is defined by the device config. The size in bytes of an individual sample is defined by the sample format which is also specified in the +device config. Multi-channel audio data is always interleaved, which means the samples for each frame are stored next to each other in memory. For example, in +a stereo stream the first pair of samples will be the left and right samples for the first frame, the second pair of samples will be the left and right samples +for the second frame, etc. + +The configuration of the device is defined by the `ma_device_config` structure. The config object is always initialized with `ma_device_config_init()`. It's +important to always initialize the config with this function as it initializes it with logical defaults and ensures your program doesn't break when new members +are added to the `ma_device_config` structure. The example above uses a fairly simple and standard device configuration. The call to `ma_device_config_init()` +takes a single parameter, which is whether or not the device is a playback, capture, duplex or loopback device (loopback devices are not supported on all +backends). The `config.playback.format` member sets the sample format which can be one of the following (all formats are native-endian): + + +---------------+----------------------------------------+---------------------------+ + | Symbol | Description | Range | + +---------------+----------------------------------------+---------------------------+ + | ma_format_f32 | 32-bit floating point | [-1, 1] | + | ma_format_s16 | 16-bit signed integer | [-32768, 32767] | + | ma_format_s24 | 24-bit signed integer (tightly packed) | [-8388608, 8388607] | + | ma_format_s32 | 32-bit signed integer | [-2147483648, 2147483647] | + | ma_format_u8 | 8-bit unsigned integer | [0, 255] | + +---------------+----------------------------------------+---------------------------+ + +The `config.playback.channels` member sets the number of channels to use with the device. The channel count cannot exceed MA_MAX_CHANNELS. The +`config.sampleRate` member sets the sample rate (which must be the same for both playback and capture in full-duplex configurations). This is usually set to +44100 or 48000, but can be set to anything. It's recommended to keep this between 8000 and 384000, however. + +Note that leaving the format, channel count and/or sample rate at their default values will result in the internal device's native configuration being used +which is useful if you want to avoid the overhead of miniaudio's automatic data conversion. + +In addition to the sample format, channel count and sample rate, the data callback and user data pointer are also set via the config. The user data pointer is +not passed into the callback as a parameter, but is instead set to the `pUserData` member of `ma_device` which you can access directly since all miniaudio +structures are transparent. + +Initializing the device is done with `ma_device_init()`. This will return a result code telling you what went wrong, if anything. On success it will return +`MA_SUCCESS`. After initialization is complete the device will be in a stopped state. To start it, use `ma_device_start()`. Uninitializing the device will stop +it, which is what the example above does, but you can also stop the device with `ma_device_stop()`. To resume the device simply call `ma_device_start()` again. +Note that it's important to never stop or start the device from inside the callback. This will result in a deadlock. Instead you set a variable or signal an +event indicating that the device needs to stop and handle it in a different thread. The following APIs must never be called inside the callback: + + ```c + ma_device_init() + ma_device_init_ex() + ma_device_uninit() + ma_device_start() + ma_device_stop() + ``` + +You must never try uninitializing and reinitializing a device inside the callback. You must also never try to stop and start it from inside the callback. There +are a few other things you shouldn't do in the callback depending on your requirements, however this isn't so much a thread-safety thing, but rather a +real-time processing thing which is beyond the scope of this introduction. + +The example above demonstrates the initialization of a playback device, but it works exactly the same for capture. All you need to do is change the device type +from `ma_device_type_playback` to `ma_device_type_capture` when setting up the config, like so: + + ```c + ma_device_config config = ma_device_config_init(ma_device_type_capture); + config.capture.format = MY_FORMAT; + config.capture.channels = MY_CHANNEL_COUNT; + ``` + +In the data callback you just read from the input buffer (`pInput` in the example above) and leave the output buffer alone (it will be set to NULL when the +device type is set to `ma_device_type_capture`). + +These are the available device types and how you should handle the buffers in the callback: + + +-------------------------+--------------------------------------------------------+ + | Device Type | Callback Behavior | + +-------------------------+--------------------------------------------------------+ + | ma_device_type_playback | Write to output buffer, leave input buffer untouched. | + | ma_device_type_capture | Read from input buffer, leave output buffer untouched. | + | ma_device_type_duplex | Read from input buffer, write to output buffer. | + | ma_device_type_loopback | Read from input buffer, leave output buffer untouched. | + +-------------------------+--------------------------------------------------------+ + +You will notice in the example above that the sample format and channel count is specified separately for playback and capture. This is to support different +data formats between the playback and capture devices in a full-duplex system. An example may be that you want to capture audio data as a monaural stream (one +channel), but output sound to a stereo speaker system. Note that if you use different formats between playback and capture in a full-duplex configuration you +will need to convert the data yourself. There are functions available to help you do this which will be explained later. + +The example above did not specify a physical device to connect to which means it will use the operating system's default device. If you have multiple physical +devices connected and you want to use a specific one you will need to specify the device ID in the configuration, like so: + + ```c + config.playback.pDeviceID = pMyPlaybackDeviceID; // Only if requesting a playback or duplex device. + config.capture.pDeviceID = pMyCaptureDeviceID; // Only if requesting a capture, duplex or loopback device. + ``` + +To retrieve the device ID you will need to perform device enumeration, however this requires the use of a new concept called the "context". Conceptually +speaking the context sits above the device. There is one context to many devices. The purpose of the context is to represent the backend at a more global level +and to perform operations outside the scope of an individual device. Mainly it is used for performing run-time linking against backend libraries, initializing +backends and enumerating devices. The example below shows how to enumerate devices. + + ```c + ma_context context; + if (ma_context_init(NULL, 0, NULL, &context) != MA_SUCCESS) { + // Error. + } + + ma_device_info* pPlaybackInfos; + ma_uint32 playbackCount; + ma_device_info* pCaptureInfos; + ma_uint32 captureCount; + if (ma_context_get_devices(&context, &pPlaybackInfos, &playbackCount, &pCaptureInfos, &captureCount) != MA_SUCCESS) { + // Error. + } + + // Loop over each device info and do something with it. Here we just print the name with their index. You may want + // to give the user the opportunity to choose which device they'd prefer. + for (ma_uint32 iDevice = 0; iDevice < playbackCount; iDevice += 1) { + printf("%d - %s\n", iDevice, pPlaybackInfos[iDevice].name); + } + + ma_device_config config = ma_device_config_init(ma_device_type_playback); + config.playback.pDeviceID = &pPlaybackInfos[chosenPlaybackDeviceIndex].id; + config.playback.format = MY_FORMAT; + config.playback.channels = MY_CHANNEL_COUNT; + config.sampleRate = MY_SAMPLE_RATE; + config.dataCallback = data_callback; + config.pUserData = pMyCustomData; + + ma_device device; + if (ma_device_init(&context, &config, &device) != MA_SUCCESS) { + // Error + } + + ... + + ma_device_uninit(&device); + ma_context_uninit(&context); + ``` + +The first thing we do in this example is initialize a `ma_context` object with `ma_context_init()`. The first parameter is a pointer to a list of `ma_backend` +values which are used to override the default backend priorities. When this is NULL, as in this example, miniaudio's default priorities are used. The second +parameter is the number of backends listed in the array pointed to by the first parameter. The third parameter is a pointer to a `ma_context_config` object +which can be NULL, in which case defaults are used. The context configuration is used for setting the logging callback, custom memory allocation callbacks, +user-defined data and some backend-specific configurations. + +Once the context has been initialized you can enumerate devices. In the example above we use the simpler `ma_context_get_devices()`, however you can also use a +callback for handling devices by using `ma_context_enumerate_devices()`. When using `ma_context_get_devices()` you provide a pointer to a pointer that will, +upon output, be set to a pointer to a buffer containing a list of `ma_device_info` structures. You also provide a pointer to an unsigned integer that will +receive the number of items in the returned buffer. Do not free the returned buffers as their memory is managed internally by miniaudio. + +The `ma_device_info` structure contains an `id` member which is the ID you pass to the device config. It also contains the name of the device which is useful +for presenting a list of devices to the user via the UI. + +When creating your own context you will want to pass it to `ma_device_init()` when initializing the device. Passing in NULL, like we do in the first example, +will result in miniaudio creating the context for you, which you don't want to do since you've already created a context. Note that internally the context is +only tracked by it's pointer which means you must not change the location of the `ma_context` object. If this is an issue, consider using `malloc()` to +allocate memory for the context. + + + +2. Building +=========== +miniaudio should work cleanly out of the box without the need to download or install any dependencies. See below for platform-specific details. + + +2.1. Windows +------------ +The Windows build should compile cleanly on all popular compilers without the need to configure any include paths nor link to any libraries. + +2.2. macOS and iOS +------------------ +The macOS build should compile cleanly without the need to download any dependencies nor link to any libraries or frameworks. The iOS build needs to be +compiled as Objective-C and will need to link the relevant frameworks but should compile cleanly out of the box with Xcode. Compiling through the command line +requires linking to `-lpthread` and `-lm`. + +Due to the way miniaudio links to frameworks at runtime, your application may not pass Apple's notarization process. To fix this there are two options. The +first is to use the `MA_NO_RUNTIME_LINKING` option, like so: + + ```c + #ifdef __APPLE__ + #define MA_NO_RUNTIME_LINKING + #endif + #define MINIAUDIO_IMPLEMENTATION + #include "miniaudio.h" + ``` + +This will require linking with `-framework CoreFoundation -framework CoreAudio -framework AudioUnit`. Alternatively, if you would rather keep using runtime +linking you can add the following to your entitlements.xcent file: + + ``` + com.apple.security.cs.allow-dyld-environment-variables + + com.apple.security.cs.allow-unsigned-executable-memory + + ``` + + +2.3. Linux +---------- +The Linux build only requires linking to `-ldl`, `-lpthread` and `-lm`. You do not need any development packages. + +2.4. BSD +-------- +The BSD build only requires linking to `-lpthread` and `-lm`. NetBSD uses audio(4), OpenBSD uses sndio and FreeBSD uses OSS. + +2.5. Android +------------ +AAudio is the highest priority backend on Android. This should work out of the box without needing any kind of compiler configuration. Support for AAudio +starts with Android 8 which means older versions will fall back to OpenSL|ES which requires API level 16+. + +There have been reports that the OpenSL|ES backend fails to initialize on some Android based devices due to `dlopen()` failing to open "libOpenSLES.so". If +this happens on your platform you'll need to disable run-time linking with `MA_NO_RUNTIME_LINKING` and link with -lOpenSLES. + +2.6. Emscripten +--------------- +The Emscripten build emits Web Audio JavaScript directly and should compile cleanly out of the box. You cannot use -std=c* compiler flags, nor -ansi. + + +2.7. Build Options +------------------ +`#define` these options before including miniaudio.h. + + +----------------------------------+--------------------------------------------------------------------+ + | Option | Description | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_WASAPI | Disables the WASAPI backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_DSOUND | Disables the DirectSound backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_WINMM | Disables the WinMM backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_ALSA | Disables the ALSA backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_PULSEAUDIO | Disables the PulseAudio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_JACK | Disables the JACK backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_COREAUDIO | Disables the Core Audio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_SNDIO | Disables the sndio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_AUDIO4 | Disables the audio(4) backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_OSS | Disables the OSS backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_AAUDIO | Disables the AAudio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_OPENSL | Disables the OpenSL|ES backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_WEBAUDIO | Disables the Web Audio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_NULL | Disables the null backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_ONLY_SPECIFIC_BACKENDS | Disables all backends by default and requires `MA_ENABLE_*` to | + | | enable specific backends. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_WASAPI | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the WASAPI backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_DSOUND | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the DirectSound backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_WINMM | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the WinMM backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_ALSA | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the ALSA backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_PULSEAUDIO | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the PulseAudio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_JACK | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the JACK backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_COREAUDIO | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the Core Audio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_SNDIO | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the sndio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_AUDIO4 | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the audio(4) backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_OSS | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the OSS backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_AAUDIO | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the AAudio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_OPENSL | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the OpenSL|ES backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_WEBAUDIO | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the Web Audio backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_ENABLE_NULL | Used in conjunction with MA_ENABLE_ONLY_SPECIFIC_BACKENDS to | + | | enable the null backend. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_DECODING | Disables decoding APIs. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_ENCODING | Disables encoding APIs. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_WAV | Disables the built-in WAV decoder and encoder. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_FLAC | Disables the built-in FLAC decoder. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_MP3 | Disables the built-in MP3 decoder. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_DEVICE_IO | Disables playback and recording. This will disable ma_context and | + | | ma_device APIs. This is useful if you only want to use miniaudio's | + | | data conversion and/or decoding APIs. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_THREADING | Disables the ma_thread, ma_mutex, ma_semaphore and ma_event APIs. | + | | This option is useful if you only need to use miniaudio for data | + | | conversion, decoding and/or encoding. Some families of APIs | + | | require threading which means the following options must also be | + | | set: | + | | | + | | ``` | + | | MA_NO_DEVICE_IO | + | | ``` | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_GENERATION | Disables generation APIs such a ma_waveform and ma_noise. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_SSE2 | Disables SSE2 optimizations. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_AVX2 | Disables AVX2 optimizations. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_AVX512 | Disables AVX-512 optimizations. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_NEON | Disables NEON optimizations. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_RUNTIME_LINKING | Disables runtime linking. This is useful for passing Apple's | + | | notarization process. When enabling this, you may need to avoid | + | | using `-std=c89` or `-std=c99` on Linux builds or else you may end | + | | up with compilation errors due to conflicts with `timespec` and | + | | `timeval` data types. | + | | | + | | You may need to enable this if your target platform does not allow | + | | runtime linking via `dlopen()`. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_LOG_LEVEL [level] | Sets the logging level. Set `level` to one of the following: | + | | | + | | ``` | + | | MA_LOG_LEVEL_VERBOSE | + | | MA_LOG_LEVEL_INFO | + | | MA_LOG_LEVEL_WARNING | + | | MA_LOG_LEVEL_ERROR | + | | ``` | + +----------------------------------+--------------------------------------------------------------------+ + | MA_DEBUG_OUTPUT | Enable `printf()` debug output. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_COINIT_VALUE | Windows only. The value to pass to internal calls to | + | | `CoInitializeEx()`. Defaults to `COINIT_MULTITHREADED`. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_API | Controls how public APIs should be decorated. Default is `extern`. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_DLL | If set, configures MA_API to either import or export APIs | + | | depending on whether or not the implementation is being defined. | + | | If defining the implementation, MA_API will be configured to | + | | export. Otherwise it will be configured to import. This has no | + | | effect if MA_API is defined externally. | + +----------------------------------+--------------------------------------------------------------------+ + + +3. Definitions +============== +This section defines common terms used throughout miniaudio. Unfortunately there is often ambiguity in the use of terms throughout the audio space, so this +section is intended to clarify how miniaudio uses each term. + +3.1. Sample +----------- +A sample is a single unit of audio data. If the sample format is f32, then one sample is one 32-bit floating point number. + +3.2. Frame / PCM Frame +---------------------- +A frame is a group of samples equal to the number of channels. For a stereo stream a frame is 2 samples, a mono frame is 1 sample, a 5.1 surround sound frame +is 6 samples, etc. The terms "frame" and "PCM frame" are the same thing in miniaudio. Note that this is different to a compressed frame. If ever miniaudio +needs to refer to a compressed frame, such as a FLAC frame, it will always clarify what it's referring to with something like "FLAC frame". + +3.3. Channel +------------ +A stream of monaural audio that is emitted from an individual speaker in a speaker system, or received from an individual microphone in a microphone system. A +stereo stream has two channels (a left channel, and a right channel), a 5.1 surround sound system has 6 channels, etc. Some audio systems refer to a channel as +a complex audio stream that's mixed with other channels to produce the final mix - this is completely different to miniaudio's use of the term "channel" and +should not be confused. + +3.4. Sample Rate +---------------- +The sample rate in miniaudio is always expressed in Hz, such as 44100, 48000, etc. It's the number of PCM frames that are processed per second. + +3.5. Formats +------------ +Throughout miniaudio you will see references to different sample formats: + + +---------------+----------------------------------------+---------------------------+ + | Symbol | Description | Range | + +---------------+----------------------------------------+---------------------------+ + | ma_format_f32 | 32-bit floating point | [-1, 1] | + | ma_format_s16 | 16-bit signed integer | [-32768, 32767] | + | ma_format_s24 | 24-bit signed integer (tightly packed) | [-8388608, 8388607] | + | ma_format_s32 | 32-bit signed integer | [-2147483648, 2147483647] | + | ma_format_u8 | 8-bit unsigned integer | [0, 255] | + +---------------+----------------------------------------+---------------------------+ + +All formats are native-endian. + + + +4. Decoding +=========== +The `ma_decoder` API is used for reading audio files. Decoders are completely decoupled from devices and can be used independently. The following formats are +supported: + + +---------+------------------+----------+ + | Format | Decoding Backend | Built-In | + +---------+------------------+----------+ + | WAV | dr_wav | Yes | + | MP3 | dr_mp3 | Yes | + | FLAC | dr_flac | Yes | + | Vorbis | stb_vorbis | No | + +---------+------------------+----------+ + +Vorbis is supported via stb_vorbis which can be enabled by including the header section before the implementation of miniaudio, like the following: + + ```c + #define STB_VORBIS_HEADER_ONLY + #include "extras/stb_vorbis.c" // Enables Vorbis decoding. + + #define MINIAUDIO_IMPLEMENTATION + #include "miniaudio.h" + + // The stb_vorbis implementation must come after the implementation of miniaudio. + #undef STB_VORBIS_HEADER_ONLY + #include "extras/stb_vorbis.c" + ``` + +A copy of stb_vorbis is included in the "extras" folder in the miniaudio repository (https://github.com/mackron/miniaudio). + +Built-in decoders are amalgamated into the implementation section of miniaudio. You can disable the built-in decoders by specifying one or more of the +following options before the miniaudio implementation: + + ```c + #define MA_NO_WAV + #define MA_NO_MP3 + #define MA_NO_FLAC + ``` + +Disabling built-in decoding libraries is useful if you use these libraries independantly of the `ma_decoder` API. + +A decoder can be initialized from a file with `ma_decoder_init_file()`, a block of memory with `ma_decoder_init_memory()`, or from data delivered via callbacks +with `ma_decoder_init()`. Here is an example for loading a decoder from a file: + + ```c + ma_decoder decoder; + ma_result result = ma_decoder_init_file("MySong.mp3", NULL, &decoder); + if (result != MA_SUCCESS) { + return false; // An error occurred. + } + + ... + + ma_decoder_uninit(&decoder); + ``` + +When initializing a decoder, you can optionally pass in a pointer to a `ma_decoder_config` object (the `NULL` argument in the example above) which allows you +to configure the output format, channel count, sample rate and channel map: + + ```c + ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 2, 48000); + ``` + +When passing in `NULL` for decoder config in `ma_decoder_init*()`, the output format will be the same as that defined by the decoding backend. + +Data is read from the decoder as PCM frames. This will return the number of PCM frames actually read. If the return value is less than the requested number of +PCM frames it means you've reached the end: + + ```c + ma_uint64 framesRead = ma_decoder_read_pcm_frames(pDecoder, pFrames, framesToRead); + if (framesRead < framesToRead) { + // Reached the end. + } + ``` + +You can also seek to a specific frame like so: + + ```c + ma_result result = ma_decoder_seek_to_pcm_frame(pDecoder, targetFrame); + if (result != MA_SUCCESS) { + return false; // An error occurred. + } + ``` + +If you want to loop back to the start, you can simply seek back to the first PCM frame: + + ```c + ma_decoder_seek_to_pcm_frame(pDecoder, 0); + ``` + +When loading a decoder, miniaudio uses a trial and error technique to find the appropriate decoding backend. This can be unnecessarily inefficient if the type +is already known. In this case you can use the `_wav`, `_mp3`, etc. varients of the aforementioned initialization APIs: + + ```c + ma_decoder_init_wav() + ma_decoder_init_mp3() + ma_decoder_init_memory_wav() + ma_decoder_init_memory_mp3() + ma_decoder_init_file_wav() + ma_decoder_init_file_mp3() + etc. + ``` + +The `ma_decoder_init_file()` API will try using the file extension to determine which decoding backend to prefer. + + + +5. Encoding +=========== +The `ma_encoding` API is used for writing audio files. The only supported output format is WAV which is achieved via dr_wav which is amalgamated into the +implementation section of miniaudio. This can be disabled by specifying the following option before the implementation of miniaudio: + + ```c + #define MA_NO_WAV + ``` + +An encoder can be initialized to write to a file with `ma_encoder_init_file()` or from data delivered via callbacks with `ma_encoder_init()`. Below is an +example for initializing an encoder to output to a file. + + ```c + ma_encoder_config config = ma_encoder_config_init(ma_resource_format_wav, FORMAT, CHANNELS, SAMPLE_RATE); + ma_encoder encoder; + ma_result result = ma_encoder_init_file("my_file.wav", &config, &encoder); + if (result != MA_SUCCESS) { + // Error + } + + ... + + ma_encoder_uninit(&encoder); + ``` + +When initializing an encoder you must specify a config which is initialized with `ma_encoder_config_init()`. Here you must specify the file type, the output +sample format, output channel count and output sample rate. The following file types are supported: + + +------------------------+-------------+ + | Enum | Description | + +------------------------+-------------+ + | ma_resource_format_wav | WAV | + +------------------------+-------------+ + +If the format, channel count or sample rate is not supported by the output file type an error will be returned. The encoder will not perform data conversion so +you will need to convert it before outputting any audio data. To output audio data, use `ma_encoder_write_pcm_frames()`, like in the example below: + + ```c + framesWritten = ma_encoder_write_pcm_frames(&encoder, pPCMFramesToWrite, framesToWrite); + ``` + +Encoders must be uninitialized with `ma_encoder_uninit()`. + + +6. Data Conversion +================== +A data conversion API is included with miniaudio which supports the majority of data conversion requirements. This supports conversion between sample formats, +channel counts (with channel mapping) and sample rates. + + +6.1. Sample Format Conversion +----------------------------- +Conversion between sample formats is achieved with the `ma_pcm_*_to_*()`, `ma_pcm_convert()` and `ma_convert_pcm_frames_format()` APIs. Use `ma_pcm_*_to_*()` +to convert between two specific formats. Use `ma_pcm_convert()` to convert based on a `ma_format` variable. Use `ma_convert_pcm_frames_format()` to convert +PCM frames where you want to specify the frame count and channel count as a variable instead of the total sample count. + + +6.1.1. Dithering +---------------- +Dithering can be set using the ditherMode parameter. + +The different dithering modes include the following, in order of efficiency: + + +-----------+--------------------------+ + | Type | Enum Token | + +-----------+--------------------------+ + | None | ma_dither_mode_none | + | Rectangle | ma_dither_mode_rectangle | + | Triangle | ma_dither_mode_triangle | + +-----------+--------------------------+ + +Note that even if the dither mode is set to something other than `ma_dither_mode_none`, it will be ignored for conversions where dithering is not needed. +Dithering is available for the following conversions: + + ``` + s16 -> u8 + s24 -> u8 + s32 -> u8 + f32 -> u8 + s24 -> s16 + s32 -> s16 + f32 -> s16 + ``` + +Note that it is not an error to pass something other than ma_dither_mode_none for conversions where dither is not used. It will just be ignored. + + + +6.2. Channel Conversion +----------------------- +Channel conversion is used for channel rearrangement and conversion from one channel count to another. The `ma_channel_converter` API is used for channel +conversion. Below is an example of initializing a simple channel converter which converts from mono to stereo. + + ```c + ma_channel_converter_config config = ma_channel_converter_config_init( + ma_format, // Sample format + 1, // Input channels + NULL, // Input channel map + 2, // Output channels + NULL, // Output channel map + ma_channel_mix_mode_default); // The mixing algorithm to use when combining channels. + + result = ma_channel_converter_init(&config, &converter); + if (result != MA_SUCCESS) { + // Error. + } + ``` + +To perform the conversion simply call `ma_channel_converter_process_pcm_frames()` like so: + + ```c + ma_result result = ma_channel_converter_process_pcm_frames(&converter, pFramesOut, pFramesIn, frameCount); + if (result != MA_SUCCESS) { + // Error. + } + ``` + +It is up to the caller to ensure the output buffer is large enough to accomodate the new PCM frames. + +Input and output PCM frames are always interleaved. Deinterleaved layouts are not supported. + + +6.2.1. Channel Mapping +---------------------- +In addition to converting from one channel count to another, like the example above, the channel converter can also be used to rearrange channels. When +initializing the channel converter, you can optionally pass in channel maps for both the input and output frames. If the channel counts are the same, and each +channel map contains the same channel positions with the exception that they're in a different order, a simple shuffling of the channels will be performed. If, +however, there is not a 1:1 mapping of channel positions, or the channel counts differ, the input channels will be mixed based on a mixing mode which is +specified when initializing the `ma_channel_converter_config` object. + +When converting from mono to multi-channel, the mono channel is simply copied to each output channel. When going the other way around, the audio of each output +channel is simply averaged and copied to the mono channel. + +In more complicated cases blending is used. The `ma_channel_mix_mode_simple` mode will drop excess channels and silence extra channels. For example, converting +from 4 to 2 channels, the 3rd and 4th channels will be dropped, whereas converting from 2 to 4 channels will put silence into the 3rd and 4th channels. + +The `ma_channel_mix_mode_rectangle` mode uses spacial locality based on a rectangle to compute a simple distribution between input and output. Imagine sitting +in the middle of a room, with speakers on the walls representing channel positions. The MA_CHANNEL_FRONT_LEFT position can be thought of as being in the corner +of the front and left walls. + +Finally, the `ma_channel_mix_mode_custom_weights` mode can be used to use custom user-defined weights. Custom weights can be passed in as the last parameter of +`ma_channel_converter_config_init()`. + +Predefined channel maps can be retrieved with `ma_get_standard_channel_map()`. This takes a `ma_standard_channel_map` enum as it's first parameter, which can +be one of the following: + + +-----------------------------------+-----------------------------------------------------------+ + | Name | Description | + +-----------------------------------+-----------------------------------------------------------+ + | ma_standard_channel_map_default | Default channel map used by miniaudio. See below. | + | ma_standard_channel_map_microsoft | Channel map used by Microsoft's bitfield channel maps. | + | ma_standard_channel_map_alsa | Default ALSA channel map. | + | ma_standard_channel_map_rfc3551 | RFC 3551. Based on AIFF. | + | ma_standard_channel_map_flac | FLAC channel map. | + | ma_standard_channel_map_vorbis | Vorbis channel map. | + | ma_standard_channel_map_sound4 | FreeBSD's sound(4). | + | ma_standard_channel_map_sndio | sndio channel map. http://www.sndio.org/tips.html. | + | ma_standard_channel_map_webaudio | https://webaudio.github.io/web-audio-api/#ChannelOrdering | + +-----------------------------------+-----------------------------------------------------------+ + +Below are the channel maps used by default in miniaudio (`ma_standard_channel_map_default`): + + +---------------+---------------------------------+ + | Channel Count | Mapping | + +---------------+---------------------------------+ + | 1 (Mono) | 0: MA_CHANNEL_MONO | + +---------------+---------------------------------+ + | 2 (Stereo) | 0: MA_CHANNEL_FRONT_LEFT
    | + | | 1: MA_CHANNEL_FRONT_RIGHT | + +---------------+---------------------------------+ + | 3 | 0: MA_CHANNEL_FRONT_LEFT
    | + | | 1: MA_CHANNEL_FRONT_RIGHT
    | + | | 2: MA_CHANNEL_FRONT_CENTER | + +---------------+---------------------------------+ + | 4 (Surround) | 0: MA_CHANNEL_FRONT_LEFT
    | + | | 1: MA_CHANNEL_FRONT_RIGHT
    | + | | 2: MA_CHANNEL_FRONT_CENTER
    | + | | 3: MA_CHANNEL_BACK_CENTER | + +---------------+---------------------------------+ + | 5 | 0: MA_CHANNEL_FRONT_LEFT
    | + | | 1: MA_CHANNEL_FRONT_RIGHT
    | + | | 2: MA_CHANNEL_FRONT_CENTER
    | + | | 3: MA_CHANNEL_BACK_LEFT
    | + | | 4: MA_CHANNEL_BACK_RIGHT | + +---------------+---------------------------------+ + | 6 (5.1) | 0: MA_CHANNEL_FRONT_LEFT
    | + | | 1: MA_CHANNEL_FRONT_RIGHT
    | + | | 2: MA_CHANNEL_FRONT_CENTER
    | + | | 3: MA_CHANNEL_LFE
    | + | | 4: MA_CHANNEL_SIDE_LEFT
    | + | | 5: MA_CHANNEL_SIDE_RIGHT | + +---------------+---------------------------------+ + | 7 | 0: MA_CHANNEL_FRONT_LEFT
    | + | | 1: MA_CHANNEL_FRONT_RIGHT
    | + | | 2: MA_CHANNEL_FRONT_CENTER
    | + | | 3: MA_CHANNEL_LFE
    | + | | 4: MA_CHANNEL_BACK_CENTER
    | + | | 4: MA_CHANNEL_SIDE_LEFT
    | + | | 5: MA_CHANNEL_SIDE_RIGHT | + +---------------+---------------------------------+ + | 8 (7.1) | 0: MA_CHANNEL_FRONT_LEFT
    | + | | 1: MA_CHANNEL_FRONT_RIGHT
    | + | | 2: MA_CHANNEL_FRONT_CENTER
    | + | | 3: MA_CHANNEL_LFE
    | + | | 4: MA_CHANNEL_BACK_LEFT
    | + | | 5: MA_CHANNEL_BACK_RIGHT
    | + | | 6: MA_CHANNEL_SIDE_LEFT
    | + | | 7: MA_CHANNEL_SIDE_RIGHT | + +---------------+---------------------------------+ + | Other | All channels set to 0. This | + | | is equivalent to the same | + | | mapping as the device. | + +---------------+---------------------------------+ + + + +6.3. Resampling +--------------- +Resampling is achieved with the `ma_resampler` object. To create a resampler object, do something like the following: + + ```c + ma_resampler_config config = ma_resampler_config_init( + ma_format_s16, + channels, + sampleRateIn, + sampleRateOut, + ma_resample_algorithm_linear); + + ma_resampler resampler; + ma_result result = ma_resampler_init(&config, &resampler); + if (result != MA_SUCCESS) { + // An error occurred... + } + ``` + +Do the following to uninitialize the resampler: + + ```c + ma_resampler_uninit(&resampler); + ``` + +The following example shows how data can be processed + + ```c + ma_uint64 frameCountIn = 1000; + ma_uint64 frameCountOut = 2000; + ma_result result = ma_resampler_process_pcm_frames(&resampler, pFramesIn, &frameCountIn, pFramesOut, &frameCountOut); + if (result != MA_SUCCESS) { + // An error occurred... + } + + // At this point, frameCountIn contains the number of input frames that were consumed and frameCountOut contains the + // number of output frames written. + ``` + +To initialize the resampler you first need to set up a config (`ma_resampler_config`) with `ma_resampler_config_init()`. You need to specify the sample format +you want to use, the number of channels, the input and output sample rate, and the algorithm. + +The sample format can be either `ma_format_s16` or `ma_format_f32`. If you need a different format you will need to perform pre- and post-conversions yourself +where necessary. Note that the format is the same for both input and output. The format cannot be changed after initialization. + +The resampler supports multiple channels and is always interleaved (both input and output). The channel count cannot be changed after initialization. + +The sample rates can be anything other than zero, and are always specified in hertz. They should be set to something like 44100, etc. The sample rate is the +only configuration property that can be changed after initialization. + +The miniaudio resampler supports multiple algorithms: + + +-----------+------------------------------+ + | Algorithm | Enum Token | + +-----------+------------------------------+ + | Linear | ma_resample_algorithm_linear | + | Speex | ma_resample_algorithm_speex | + +-----------+------------------------------+ + +Because Speex is not public domain it is strictly opt-in and the code is stored in separate files. if you opt-in to the Speex backend you will need to consider +it's license, the text of which can be found in it's source files in "extras/speex_resampler". Details on how to opt-in to the Speex resampler is explained in +the Speex Resampler section below. + +The algorithm cannot be changed after initialization. + +Processing always happens on a per PCM frame basis and always assumes interleaved input and output. De-interleaved processing is not supported. To process +frames, use `ma_resampler_process_pcm_frames()`. On input, this function takes the number of output frames you can fit in the output buffer and the number of +input frames contained in the input buffer. On output these variables contain the number of output frames that were written to the output buffer and the +number of input frames that were consumed in the process. You can pass in NULL for the input buffer in which case it will be treated as an infinitely large +buffer of zeros. The output buffer can also be NULL, in which case the processing will be treated as seek. + +The sample rate can be changed dynamically on the fly. You can change this with explicit sample rates with `ma_resampler_set_rate()` and also with a decimal +ratio with `ma_resampler_set_rate_ratio()`. The ratio is in/out. + +Sometimes it's useful to know exactly how many input frames will be required to output a specific number of frames. You can calculate this with +`ma_resampler_get_required_input_frame_count()`. Likewise, it's sometimes useful to know exactly how many frames would be output given a certain number of +input frames. You can do this with `ma_resampler_get_expected_output_frame_count()`. + +Due to the nature of how resampling works, the resampler introduces some latency. This can be retrieved in terms of both the input rate and the output rate +with `ma_resampler_get_input_latency()` and `ma_resampler_get_output_latency()`. + + +6.3.1. Resampling Algorithms +---------------------------- +The choice of resampling algorithm depends on your situation and requirements. The linear resampler is the most efficient and has the least amount of latency, +but at the expense of poorer quality. The Speex resampler is higher quality, but slower with more latency. It also performs several heap allocations internally +for memory management. + + +6.3.1.1. Linear Resampling +-------------------------- +The linear resampler is the fastest, but comes at the expense of poorer quality. There is, however, some control over the quality of the linear resampler which +may make it a suitable option depending on your requirements. + +The linear resampler performs low-pass filtering before or after downsampling or upsampling, depending on the sample rates you're converting between. When +decreasing the sample rate, the low-pass filter will be applied before downsampling. When increasing the rate it will be performed after upsampling. By default +a fourth order low-pass filter will be applied. This can be configured via the `lpfOrder` configuration variable. Setting this to 0 will disable filtering. + +The low-pass filter has a cutoff frequency which defaults to half the sample rate of the lowest of the input and output sample rates (Nyquist Frequency). This +can be controlled with the `lpfNyquistFactor` config variable. This defaults to 1, and should be in the range of 0..1, although a value of 0 does not make +sense and should be avoided. A value of 1 will use the Nyquist Frequency as the cutoff. A value of 0.5 will use half the Nyquist Frequency as the cutoff, etc. +Values less than 1 will result in more washed out sound due to more of the higher frequencies being removed. This config variable has no impact on performance +and is a purely perceptual configuration. + +The API for the linear resampler is the same as the main resampler API, only it's called `ma_linear_resampler`. + + +6.3.1.2. Speex Resampling +------------------------- +The Speex resampler is made up of third party code which is released under the BSD license. Because it is licensed differently to miniaudio, which is public +domain, it is strictly opt-in and all of it's code is stored in separate files. If you opt-in to the Speex resampler you must consider the license text in it's +source files. To opt-in, you must first `#include` the following file before the implementation of miniaudio.h: + + ```c + #include "extras/speex_resampler/ma_speex_resampler.h" + ``` + +Both the header and implementation is contained within the same file. The implementation can be included in your program like so: + + ```c + #define MINIAUDIO_SPEEX_RESAMPLER_IMPLEMENTATION + #include "extras/speex_resampler/ma_speex_resampler.h" + ``` + +Note that even if you opt-in to the Speex backend, miniaudio won't use it unless you explicitly ask for it in the respective config of the object you are +initializing. If you try to use the Speex resampler without opting in, initialization of the `ma_resampler` object will fail with `MA_NO_BACKEND`. + +The only configuration option to consider with the Speex resampler is the `speex.quality` config variable. This is a value between 0 and 10, with 0 being +the fastest with the poorest quality and 10 being the slowest with the highest quality. The default value is 3. + + + +6.4. General Data Conversion +---------------------------- +The `ma_data_converter` API can be used to wrap sample format conversion, channel conversion and resampling into one operation. This is what miniaudio uses +internally to convert between the format requested when the device was initialized and the format of the backend's native device. The API for general data +conversion is very similar to the resampling API. Create a `ma_data_converter` object like this: + + ```c + ma_data_converter_config config = ma_data_converter_config_init( + inputFormat, + outputFormat, + inputChannels, + outputChannels, + inputSampleRate, + outputSampleRate + ); + + ma_data_converter converter; + ma_result result = ma_data_converter_init(&config, &converter); + if (result != MA_SUCCESS) { + // An error occurred... + } + ``` + +In the example above we use `ma_data_converter_config_init()` to initialize the config, however there's many more properties that can be configured, such as +channel maps and resampling quality. Something like the following may be more suitable depending on your requirements: + + ```c + ma_data_converter_config config = ma_data_converter_config_init_default(); + config.formatIn = inputFormat; + config.formatOut = outputFormat; + config.channelsIn = inputChannels; + config.channelsOut = outputChannels; + config.sampleRateIn = inputSampleRate; + config.sampleRateOut = outputSampleRate; + ma_get_standard_channel_map(ma_standard_channel_map_flac, config.channelCountIn, config.channelMapIn); + config.resampling.linear.lpfOrder = MA_MAX_FILTER_ORDER; + ``` + +Do the following to uninitialize the data converter: + + ```c + ma_data_converter_uninit(&converter); + ``` + +The following example shows how data can be processed + + ```c + ma_uint64 frameCountIn = 1000; + ma_uint64 frameCountOut = 2000; + ma_result result = ma_data_converter_process_pcm_frames(&converter, pFramesIn, &frameCountIn, pFramesOut, &frameCountOut); + if (result != MA_SUCCESS) { + // An error occurred... + } + + // At this point, frameCountIn contains the number of input frames that were consumed and frameCountOut contains the number + // of output frames written. + ``` + +The data converter supports multiple channels and is always interleaved (both input and output). The channel count cannot be changed after initialization. + +Sample rates can be anything other than zero, and are always specified in hertz. They should be set to something like 44100, etc. The sample rate is the only +configuration property that can be changed after initialization, but only if the `resampling.allowDynamicSampleRate` member of `ma_data_converter_config` is +set to `MA_TRUE`. To change the sample rate, use `ma_data_converter_set_rate()` or `ma_data_converter_set_rate_ratio()`. The ratio must be in/out. The +resampling algorithm cannot be changed after initialization. + +Processing always happens on a per PCM frame basis and always assumes interleaved input and output. De-interleaved processing is not supported. To process +frames, use `ma_data_converter_process_pcm_frames()`. On input, this function takes the number of output frames you can fit in the output buffer and the number +of input frames contained in the input buffer. On output these variables contain the number of output frames that were written to the output buffer and the +number of input frames that were consumed in the process. You can pass in NULL for the input buffer in which case it will be treated as an infinitely large +buffer of zeros. The output buffer can also be NULL, in which case the processing will be treated as seek. + +Sometimes it's useful to know exactly how many input frames will be required to output a specific number of frames. You can calculate this with +`ma_data_converter_get_required_input_frame_count()`. Likewise, it's sometimes useful to know exactly how many frames would be output given a certain number of +input frames. You can do this with `ma_data_converter_get_expected_output_frame_count()`. + +Due to the nature of how resampling works, the data converter introduces some latency if resampling is required. This can be retrieved in terms of both the +input rate and the output rate with `ma_data_converter_get_input_latency()` and `ma_data_converter_get_output_latency()`. + + + +7. Filtering +============ + +7.1. Biquad Filtering +--------------------- +Biquad filtering is achieved with the `ma_biquad` API. Example: + + ```c + ma_biquad_config config = ma_biquad_config_init(ma_format_f32, channels, b0, b1, b2, a0, a1, a2); + ma_result result = ma_biquad_init(&config, &biquad); + if (result != MA_SUCCESS) { + // Error. + } + + ... + + ma_biquad_process_pcm_frames(&biquad, pFramesOut, pFramesIn, frameCount); + ``` + +Biquad filtering is implemented using transposed direct form 2. The numerator coefficients are b0, b1 and b2, and the denominator coefficients are a0, a1 and +a2. The a0 coefficient is required and coefficients must not be pre-normalized. + +Supported formats are `ma_format_s16` and `ma_format_f32`. If you need to use a different format you need to convert it yourself beforehand. When using +`ma_format_s16` the biquad filter will use fixed point arithmetic. When using `ma_format_f32`, floating point arithmetic will be used. + +Input and output frames are always interleaved. + +Filtering can be applied in-place by passing in the same pointer for both the input and output buffers, like so: + + ```c + ma_biquad_process_pcm_frames(&biquad, pMyData, pMyData, frameCount); + ``` + +If you need to change the values of the coefficients, but maintain the values in the registers you can do so with `ma_biquad_reinit()`. This is useful if you +need to change the properties of the filter while keeping the values of registers valid to avoid glitching. Do not use `ma_biquad_init()` for this as it will +do a full initialization which involves clearing the registers to 0. Note that changing the format or channel count after initialization is invalid and will +result in an error. + + +7.2. Low-Pass Filtering +----------------------- +Low-pass filtering is achieved with the following APIs: + + +---------+------------------------------------------+ + | API | Description | + +---------+------------------------------------------+ + | ma_lpf1 | First order low-pass filter | + | ma_lpf2 | Second order low-pass filter | + | ma_lpf | High order low-pass filter (Butterworth) | + +---------+------------------------------------------+ + +Low-pass filter example: + + ```c + ma_lpf_config config = ma_lpf_config_init(ma_format_f32, channels, sampleRate, cutoffFrequency, order); + ma_result result = ma_lpf_init(&config, &lpf); + if (result != MA_SUCCESS) { + // Error. + } + + ... + + ma_lpf_process_pcm_frames(&lpf, pFramesOut, pFramesIn, frameCount); + ``` + +Supported formats are `ma_format_s16` and` ma_format_f32`. If you need to use a different format you need to convert it yourself beforehand. Input and output +frames are always interleaved. + +Filtering can be applied in-place by passing in the same pointer for both the input and output buffers, like so: + + ```c + ma_lpf_process_pcm_frames(&lpf, pMyData, pMyData, frameCount); + ``` + +The maximum filter order is limited to `MA_MAX_FILTER_ORDER` which is set to 8. If you need more, you can chain first and second order filters together. + + ```c + for (iFilter = 0; iFilter < filterCount; iFilter += 1) { + ma_lpf2_process_pcm_frames(&lpf2[iFilter], pMyData, pMyData, frameCount); + } + ``` + +If you need to change the configuration of the filter, but need to maintain the state of internal registers you can do so with `ma_lpf_reinit()`. This may be +useful if you need to change the sample rate and/or cutoff frequency dynamically while maintaing smooth transitions. Note that changing the format or channel +count after initialization is invalid and will result in an error. + +The `ma_lpf` object supports a configurable order, but if you only need a first order filter you may want to consider using `ma_lpf1`. Likewise, if you only +need a second order filter you can use `ma_lpf2`. The advantage of this is that they're lighter weight and a bit more efficient. + +If an even filter order is specified, a series of second order filters will be processed in a chain. If an odd filter order is specified, a first order filter +will be applied, followed by a series of second order filters in a chain. + + +7.3. High-Pass Filtering +------------------------ +High-pass filtering is achieved with the following APIs: + + +---------+-------------------------------------------+ + | API | Description | + +---------+-------------------------------------------+ + | ma_hpf1 | First order high-pass filter | + | ma_hpf2 | Second order high-pass filter | + | ma_hpf | High order high-pass filter (Butterworth) | + +---------+-------------------------------------------+ + +High-pass filters work exactly the same as low-pass filters, only the APIs are called `ma_hpf1`, `ma_hpf2` and `ma_hpf`. See example code for low-pass filters +for example usage. + + +7.4. Band-Pass Filtering +------------------------ +Band-pass filtering is achieved with the following APIs: + + +---------+-------------------------------+ + | API | Description | + +---------+-------------------------------+ + | ma_bpf2 | Second order band-pass filter | + | ma_bpf | High order band-pass filter | + +---------+-------------------------------+ + +Band-pass filters work exactly the same as low-pass filters, only the APIs are called `ma_bpf2` and `ma_hpf`. See example code for low-pass filters for example +usage. Note that the order for band-pass filters must be an even number which means there is no first order band-pass filter, unlike low-pass and high-pass +filters. + + +7.5. Notch Filtering +-------------------- +Notch filtering is achieved with the following APIs: + + +-----------+------------------------------------------+ + | API | Description | + +-----------+------------------------------------------+ + | ma_notch2 | Second order notching filter | + +-----------+------------------------------------------+ + + +7.6. Peaking EQ Filtering +------------------------- +Peaking filtering is achieved with the following APIs: + + +----------+------------------------------------------+ + | API | Description | + +----------+------------------------------------------+ + | ma_peak2 | Second order peaking filter | + +----------+------------------------------------------+ + + +7.7. Low Shelf Filtering +------------------------ +Low shelf filtering is achieved with the following APIs: + + +-------------+------------------------------------------+ + | API | Description | + +-------------+------------------------------------------+ + | ma_loshelf2 | Second order low shelf filter | + +-------------+------------------------------------------+ + +Where a high-pass filter is used to eliminate lower frequencies, a low shelf filter can be used to just turn them down rather than eliminate them entirely. + + +7.8. High Shelf Filtering +------------------------- +High shelf filtering is achieved with the following APIs: + + +-------------+------------------------------------------+ + | API | Description | + +-------------+------------------------------------------+ + | ma_hishelf2 | Second order high shelf filter | + +-------------+------------------------------------------+ + +The high shelf filter has the same API as the low shelf filter, only you would use `ma_hishelf` instead of `ma_loshelf`. Where a low shelf filter is used to +adjust the volume of low frequencies, the high shelf filter does the same thing for high frequencies. + + + + +8. Waveform and Noise Generation +================================ + +8.1. Waveforms +-------------- +miniaudio supports generation of sine, square, triangle and sawtooth waveforms. This is achieved with the `ma_waveform` API. Example: + + ```c + ma_waveform_config config = ma_waveform_config_init( + FORMAT, + CHANNELS, + SAMPLE_RATE, + ma_waveform_type_sine, + amplitude, + frequency); + + ma_waveform waveform; + ma_result result = ma_waveform_init(&config, &waveform); + if (result != MA_SUCCESS) { + // Error. + } + + ... + + ma_waveform_read_pcm_frames(&waveform, pOutput, frameCount); + ``` + +The amplitude, frequency, type, and sample rate can be changed dynamically with `ma_waveform_set_amplitude()`, `ma_waveform_set_frequency()`, +`ma_waveform_set_type()`, and `ma_waveform_set_sample_rate()` respectively. + +You can invert the waveform by setting the amplitude to a negative value. You can use this to control whether or not a sawtooth has a positive or negative +ramp, for example. + +Below are the supported waveform types: + + +---------------------------+ + | Enum Name | + +---------------------------+ + | ma_waveform_type_sine | + | ma_waveform_type_square | + | ma_waveform_type_triangle | + | ma_waveform_type_sawtooth | + +---------------------------+ + + + +8.2. Noise +---------- +miniaudio supports generation of white, pink and Brownian noise via the `ma_noise` API. Example: + + ```c + ma_noise_config config = ma_noise_config_init( + FORMAT, + CHANNELS, + ma_noise_type_white, + SEED, + amplitude); + + ma_noise noise; + ma_result result = ma_noise_init(&config, &noise); + if (result != MA_SUCCESS) { + // Error. + } + + ... + + ma_noise_read_pcm_frames(&noise, pOutput, frameCount); + ``` + +The noise API uses simple LCG random number generation. It supports a custom seed which is useful for things like automated testing requiring reproducibility. +Setting the seed to zero will default to `MA_DEFAULT_LCG_SEED`. + +The amplitude, seed, and type can be changed dynamically with `ma_noise_set_amplitude()`, `ma_noise_set_seed()`, and `ma_noise_set_type()` respectively. + +By default, the noise API will use different values for different channels. So, for example, the left side in a stereo stream will be different to the right +side. To instead have each channel use the same random value, set the `duplicateChannels` member of the noise config to true, like so: + + ```c + config.duplicateChannels = MA_TRUE; + ``` + +Below are the supported noise types. + + +------------------------+ + | Enum Name | + +------------------------+ + | ma_noise_type_white | + | ma_noise_type_pink | + | ma_noise_type_brownian | + +------------------------+ + + + +9. Audio Buffers +================ +miniaudio supports reading from a buffer of raw audio data via the `ma_audio_buffer` API. This can read from memory that's managed by the application, but +can also handle the memory management for you internally. Memory management is flexible and should support most use cases. + +Audio buffers are initialised using the standard configuration system used everywhere in miniaudio: + + ```c + ma_audio_buffer_config config = ma_audio_buffer_config_init( + format, + channels, + sizeInFrames, + pExistingData, + &allocationCallbacks); + + ma_audio_buffer buffer; + result = ma_audio_buffer_init(&config, &buffer); + if (result != MA_SUCCESS) { + // Error. + } + + ... + + ma_audio_buffer_uninit(&buffer); + ``` + +In the example above, the memory pointed to by `pExistingData` will *not* be copied and is how an application can do self-managed memory allocation. If you +would rather make a copy of the data, use `ma_audio_buffer_init_copy()`. To uninitialize the buffer, use `ma_audio_buffer_uninit()`. + +Sometimes it can be convenient to allocate the memory for the `ma_audio_buffer` structure and the raw audio data in a contiguous block of memory. That is, +the raw audio data will be located immediately after the `ma_audio_buffer` structure. To do this, use `ma_audio_buffer_alloc_and_init()`: + + ```c + ma_audio_buffer_config config = ma_audio_buffer_config_init( + format, + channels, + sizeInFrames, + pExistingData, + &allocationCallbacks); + + ma_audio_buffer* pBuffer + result = ma_audio_buffer_alloc_and_init(&config, &pBuffer); + if (result != MA_SUCCESS) { + // Error + } + + ... + + ma_audio_buffer_uninit_and_free(&buffer); + ``` + +If you initialize the buffer with `ma_audio_buffer_alloc_and_init()` you should uninitialize it with `ma_audio_buffer_uninit_and_free()`. In the example above, +the memory pointed to by `pExistingData` will be copied into the buffer, which is contrary to the behavior of `ma_audio_buffer_init()`. + +An audio buffer has a playback cursor just like a decoder. As you read frames from the buffer, the cursor moves forward. The last parameter (`loop`) can be +used to determine if the buffer should loop. The return value is the number of frames actually read. If this is less than the number of frames requested it +means the end has been reached. This should never happen if the `loop` parameter is set to true. If you want to manually loop back to the start, you can do so +with with `ma_audio_buffer_seek_to_pcm_frame(pAudioBuffer, 0)`. Below is an example for reading data from an audio buffer. + + ```c + ma_uint64 framesRead = ma_audio_buffer_read_pcm_frames(pAudioBuffer, pFramesOut, desiredFrameCount, isLooping); + if (framesRead < desiredFrameCount) { + // If not looping, this means the end has been reached. This should never happen in looping mode with valid input. + } + ``` + +Sometimes you may want to avoid the cost of data movement between the internal buffer and the output buffer. Instead you can use memory mapping to retrieve a +pointer to a segment of data: + + ```c + void* pMappedFrames; + ma_uint64 frameCount = frameCountToTryMapping; + ma_result result = ma_audio_buffer_map(pAudioBuffer, &pMappedFrames, &frameCount); + if (result == MA_SUCCESS) { + // Map was successful. The value in frameCount will be how many frames were _actually_ mapped, which may be + // less due to the end of the buffer being reached. + ma_copy_pcm_frames(pFramesOut, pMappedFrames, frameCount, pAudioBuffer->format, pAudioBuffer->channels); + + // You must unmap the buffer. + ma_audio_buffer_unmap(pAudioBuffer, frameCount); + } + ``` + +When you use memory mapping, the read cursor is increment by the frame count passed in to `ma_audio_buffer_unmap()`. If you decide not to process every frame +you can pass in a value smaller than the value returned by `ma_audio_buffer_map()`. The disadvantage to using memory mapping is that it does not handle looping +for you. You can determine if the buffer is at the end for the purpose of looping with `ma_audio_buffer_at_end()` or by inspecting the return value of +`ma_audio_buffer_unmap()` and checking if it equals `MA_AT_END`. You should not treat `MA_AT_END` as an error when returned by `ma_audio_buffer_unmap()`. + + + +10. Ring Buffers +================ +miniaudio supports lock free (single producer, single consumer) ring buffers which are exposed via the `ma_rb` and `ma_pcm_rb` APIs. The `ma_rb` API operates +on bytes, whereas the `ma_pcm_rb` operates on PCM frames. They are otherwise identical as `ma_pcm_rb` is just a wrapper around `ma_rb`. + +Unlike most other APIs in miniaudio, ring buffers support both interleaved and deinterleaved streams. The caller can also allocate their own backing memory for +the ring buffer to use internally for added flexibility. Otherwise the ring buffer will manage it's internal memory for you. + +The examples below use the PCM frame variant of the ring buffer since that's most likely the one you will want to use. To initialize a ring buffer, do +something like the following: + + ```c + ma_pcm_rb rb; + ma_result result = ma_pcm_rb_init(FORMAT, CHANNELS, BUFFER_SIZE_IN_FRAMES, NULL, NULL, &rb); + if (result != MA_SUCCESS) { + // Error + } + ``` + +The `ma_pcm_rb_init()` function takes the sample format and channel count as parameters because it's the PCM varient of the ring buffer API. For the regular +ring buffer that operates on bytes you would call `ma_rb_init()` which leaves these out and just takes the size of the buffer in bytes instead of frames. The +fourth parameter is an optional pre-allocated buffer and the fifth parameter is a pointer to a `ma_allocation_callbacks` structure for custom memory allocation +routines. Passing in `NULL` for this results in `MA_MALLOC()` and `MA_FREE()` being used. + +Use `ma_pcm_rb_init_ex()` if you need a deinterleaved buffer. The data for each sub-buffer is offset from each other based on the stride. To manage your +sub-buffers you can use `ma_pcm_rb_get_subbuffer_stride()`, `ma_pcm_rb_get_subbuffer_offset()` and `ma_pcm_rb_get_subbuffer_ptr()`. + +Use `ma_pcm_rb_acquire_read()` and `ma_pcm_rb_acquire_write()` to retrieve a pointer to a section of the ring buffer. You specify the number of frames you +need, and on output it will set to what was actually acquired. If the read or write pointer is positioned such that the number of frames requested will require +a loop, it will be clamped to the end of the buffer. Therefore, the number of frames you're given may be less than the number you requested. + +After calling `ma_pcm_rb_acquire_read()` or `ma_pcm_rb_acquire_write()`, you do your work on the buffer and then "commit" it with `ma_pcm_rb_commit_read()` or +`ma_pcm_rb_commit_write()`. This is where the read/write pointers are updated. When you commit you need to pass in the buffer that was returned by the earlier +call to `ma_pcm_rb_acquire_read()` or `ma_pcm_rb_acquire_write()` and is only used for validation. The number of frames passed to `ma_pcm_rb_commit_read()` and +`ma_pcm_rb_commit_write()` is what's used to increment the pointers, and can be less that what was originally requested. + +If you want to correct for drift between the write pointer and the read pointer you can use a combination of `ma_pcm_rb_pointer_distance()`, +`ma_pcm_rb_seek_read()` and `ma_pcm_rb_seek_write()`. Note that you can only move the pointers forward, and you should only move the read pointer forward via +the consumer thread, and the write pointer forward by the producer thread. If there is too much space between the pointers, move the read pointer forward. If +there is too little space between the pointers, move the write pointer forward. + +You can use a ring buffer at the byte level instead of the PCM frame level by using the `ma_rb` API. This is exactly the same, only you will use the `ma_rb` +functions instead of `ma_pcm_rb` and instead of frame counts you will pass around byte counts. + +The maximum size of the buffer in bytes is `0x7FFFFFFF-(MA_SIMD_ALIGNMENT-1)` due to the most significant bit being used to encode a loop flag and the internally +managed buffers always being aligned to MA_SIMD_ALIGNMENT. + +Note that the ring buffer is only thread safe when used by a single consumer thread and single producer thread. + + + +11. Backends +============ +The following backends are supported by miniaudio. + + +-------------+-----------------------+--------------------------------------------------------+ + | Name | Enum Name | Supported Operating Systems | + +-------------+-----------------------+--------------------------------------------------------+ + | WASAPI | ma_backend_wasapi | Windows Vista+ | + | DirectSound | ma_backend_dsound | Windows XP+ | + | WinMM | ma_backend_winmm | Windows XP+ (may work on older versions, but untested) | + | Core Audio | ma_backend_coreaudio | macOS, iOS | + | ALSA | ma_backend_alsa | Linux | + | PulseAudio | ma_backend_pulseaudio | Cross Platform (disabled on Windows, BSD and Android) | + | JACK | ma_backend_jack | Cross Platform (disabled on BSD and Android) | + | sndio | ma_backend_sndio | OpenBSD | + | audio(4) | ma_backend_audio4 | NetBSD, OpenBSD | + | OSS | ma_backend_oss | FreeBSD | + | AAudio | ma_backend_aaudio | Android 8+ | + | OpenSL ES | ma_backend_opensl | Android (API level 16+) | + | Web Audio | ma_backend_webaudio | Web (via Emscripten) | + | Custom | ma_backend_custom | Cross Platform | + | Null | ma_backend_null | Cross Platform (not used on Web) | + +-------------+-----------------------+--------------------------------------------------------+ + +Some backends have some nuance details you may want to be aware of. + +11.1. WASAPI +------------ +- Low-latency shared mode will be disabled when using an application-defined sample rate which is different to the device's native sample rate. To work around + this, set `wasapi.noAutoConvertSRC` to true in the device config. This is due to IAudioClient3_InitializeSharedAudioStream() failing when the + `AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM` flag is specified. Setting wasapi.noAutoConvertSRC will result in miniaudio's internal resampler being used instead + which will in turn enable the use of low-latency shared mode. + +11.2. PulseAudio +---------------- +- If you experience bad glitching/noise on Arch Linux, consider this fix from the Arch wiki: + https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Glitches,_skips_or_crackling. Alternatively, consider using a different backend such as ALSA. + +11.3. Android +------------- +- To capture audio on Android, remember to add the RECORD_AUDIO permission to your manifest: `` +- With OpenSL|ES, only a single ma_context can be active at any given time. This is due to a limitation with OpenSL|ES. +- With AAudio, only default devices are enumerated. This is due to AAudio not having an enumeration API (devices are enumerated through Java). You can however + perform your own device enumeration through Java and then set the ID in the ma_device_id structure (ma_device_id.aaudio) and pass it to ma_device_init(). +- The backend API will perform resampling where possible. The reason for this as opposed to using miniaudio's built-in resampler is to take advantage of any + potential device-specific optimizations the driver may implement. + +11.4. UWP +--------- +- UWP only supports default playback and capture devices. +- UWP requires the Microphone capability to be enabled in the application's manifest (Package.appxmanifest): + + ``` + + ... + + + + + ``` + +11.5. Web Audio / Emscripten +---------------------------- +- You cannot use `-std=c*` compiler flags, nor `-ansi`. This only applies to the Emscripten build. +- The first time a context is initialized it will create a global object called "miniaudio" whose primary purpose is to act as a factory for device objects. +- Currently the Web Audio backend uses ScriptProcessorNode's, but this may need to change later as they've been deprecated. +- Google has implemented a policy in their browsers that prevent automatic media output without first receiving some kind of user input. The following web page + has additional details: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes. Starting the device may fail if you try to start playback + without first handling some kind of user input. + + + +12. Miscellaneous Notes +======================= +- Automatic stream routing is enabled on a per-backend basis. Support is explicitly enabled for WASAPI and Core Audio, however other backends such as + PulseAudio may naturally support it, though not all have been tested. +- The contents of the output buffer passed into the data callback will always be pre-initialized to silence unless the `noPreZeroedOutputBuffer` config variable + in `ma_device_config` is set to true, in which case it'll be undefined which will require you to write something to the entire buffer. +- By default miniaudio will automatically clip samples. This only applies when the playback sample format is configured as `ma_format_f32`. If you are doing + clipping yourself, you can disable this overhead by setting `noClip` to true in the device config. +- The sndio backend is currently only enabled on OpenBSD builds. +- The audio(4) backend is supported on OpenBSD, but you may need to disable sndiod before you can use it. +- Note that GCC and Clang requires `-msse2`, `-mavx2`, etc. for SIMD optimizations. +- When compiling with VC6 and earlier, decoding is restricted to files less than 2GB in size. This is due to 64-bit file APIs not being available. +*/ + +#ifndef miniaudio_h +#define miniaudio_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define MA_STRINGIFY(x) #x +#define MA_XSTRINGIFY(x) MA_STRINGIFY(x) + +#define MA_VERSION_MAJOR 0 +#define MA_VERSION_MINOR 10 +#define MA_VERSION_REVISION 35 +#define MA_VERSION_STRING MA_XSTRINGIFY(MA_VERSION_MAJOR) "." MA_XSTRINGIFY(MA_VERSION_MINOR) "." MA_XSTRINGIFY(MA_VERSION_REVISION) + +#if defined(_MSC_VER) && !defined(__clang__) + #pragma warning(push) + #pragma warning(disable:4201) /* nonstandard extension used: nameless struct/union */ + #pragma warning(disable:4214) /* nonstandard extension used: bit field types other than int */ + #pragma warning(disable:4324) /* structure was padded due to alignment specifier */ +#elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpedantic" /* For ISO C99 doesn't support unnamed structs/unions [-Wpedantic] */ + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc11-extensions" /* anonymous unions are a C11 extension */ + #endif +#endif + +/* Platform/backend detection. */ +#ifdef _WIN32 + #define MA_WIN32 + #if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) + #define MA_WIN32_UWP + #else + #define MA_WIN32_DESKTOP + #endif +#else + #define MA_POSIX + #include /* Unfortunate #include, but needed for pthread_t, pthread_mutex_t and pthread_cond_t types. */ + + #ifdef __unix__ + #define MA_UNIX + #if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) + #define MA_BSD + #endif + #endif + #ifdef __linux__ + #define MA_LINUX + #endif + #ifdef __APPLE__ + #define MA_APPLE + #endif + #ifdef __ANDROID__ + #define MA_ANDROID + #endif + #ifdef __EMSCRIPTEN__ + #define MA_EMSCRIPTEN + #endif +#endif + +#include /* For size_t. */ + +/* Sized types. */ +typedef signed char ma_int8; +typedef unsigned char ma_uint8; +typedef signed short ma_int16; +typedef unsigned short ma_uint16; +typedef signed int ma_int32; +typedef unsigned int ma_uint32; +#if defined(_MSC_VER) + typedef signed __int64 ma_int64; + typedef unsigned __int64 ma_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long ma_int64; + typedef unsigned long long ma_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + typedef ma_uint64 ma_uintptr; +#else + typedef ma_uint32 ma_uintptr; +#endif + +typedef ma_uint8 ma_bool8; +typedef ma_uint32 ma_bool32; +#define MA_TRUE 1 +#define MA_FALSE 0 + +typedef void* ma_handle; +typedef void* ma_ptr; +typedef void (* ma_proc)(void); + +#if defined(_MSC_VER) && !defined(_WCHAR_T_DEFINED) +typedef ma_uint16 wchar_t; +#endif + +/* Define NULL for some compilers. */ +#ifndef NULL +#define NULL 0 +#endif + +#if defined(SIZE_MAX) + #define MA_SIZE_MAX SIZE_MAX +#else + #define MA_SIZE_MAX 0xFFFFFFFF /* When SIZE_MAX is not defined by the standard library just default to the maximum 32-bit unsigned integer. */ +#endif + + +#ifdef _MSC_VER + #define MA_INLINE __forceinline +#elif defined(__GNUC__) + /* + I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when + the __attribute__((always_inline)) attribute is defined without an "inline" statement. I think therefore there must be some + case where "__inline__" is not always defined, thus the compiler emitting these warnings. When using -std=c89 or -ansi on the + command line, we cannot use the "inline" keyword and instead need to use "__inline__". In an attempt to work around this issue + I am using "__inline__" only when we're compiling in strict ANSI mode. + */ + #if defined(__STRICT_ANSI__) + #define MA_INLINE __inline__ __attribute__((always_inline)) + #else + #define MA_INLINE inline __attribute__((always_inline)) + #endif +#elif defined(__WATCOMC__) + #define MA_INLINE __inline +#else + #define MA_INLINE +#endif + +#if !defined(MA_API) + #if defined(MA_DLL) + #if defined(_WIN32) + #define MA_DLL_IMPORT __declspec(dllimport) + #define MA_DLL_EXPORT __declspec(dllexport) + #define MA_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define MA_DLL_IMPORT __attribute__((visibility("default"))) + #define MA_DLL_EXPORT __attribute__((visibility("default"))) + #define MA_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define MA_DLL_IMPORT + #define MA_DLL_EXPORT + #define MA_DLL_PRIVATE static + #endif + #endif + + #if defined(MINIAUDIO_IMPLEMENTATION) || defined(MA_IMPLEMENTATION) + #define MA_API MA_DLL_EXPORT + #else + #define MA_API MA_DLL_IMPORT + #endif + #define MA_PRIVATE MA_DLL_PRIVATE + #else + #define MA_API extern + #define MA_PRIVATE static + #endif +#endif + +/* SIMD alignment in bytes. Currently set to 64 bytes in preparation for future AVX-512 optimizations. */ +#define MA_SIMD_ALIGNMENT 64 + + +/* +Logging Levels +============== +A log level will automatically include the lower levels. For example, verbose logging will enable everything. The warning log level will only include warnings +and errors, but will ignore informational and verbose logging. If you only want to handle a specific log level, implement a custom log callback (see +ma_context_init() for details) and interrogate the `logLevel` parameter. + +By default the log level will be set to MA_LOG_LEVEL_ERROR, but you can change this by defining MA_LOG_LEVEL before the implementation of miniaudio. + +MA_LOG_LEVEL_VERBOSE + Mainly intended for debugging. This will enable all log levels and can be triggered from within the data callback so care must be taken when enabling this + in production environments. + +MA_LOG_LEVEL_INFO + Informational logging. Useful for debugging. This will also enable warning and error logs. This will never be called from within the data callback. + +MA_LOG_LEVEL_WARNING + Warnings. You should enable this in you development builds and action them when encounted. This will also enable error logs. These logs usually indicate a + potential problem or misconfiguration, but still allow you to keep running. This will never be called from within the data callback. + +MA_LOG_LEVEL_ERROR + Error logging. This will be fired when an operation fails and is subsequently aborted. This can be fired from within the data callback, in which case the + device will be stopped. You should always have this log level enabled. +*/ +#define MA_LOG_LEVEL_VERBOSE 4 +#define MA_LOG_LEVEL_INFO 3 +#define MA_LOG_LEVEL_WARNING 2 +#define MA_LOG_LEVEL_ERROR 1 + +#ifndef MA_LOG_LEVEL +#define MA_LOG_LEVEL MA_LOG_LEVEL_ERROR +#endif + +/* +An annotation for variables which must be used atomically. This doesn't actually do anything - it's +just used as a way for humans to identify variables that should be used atomically. +*/ +#define MA_ATOMIC + +typedef struct ma_context ma_context; +typedef struct ma_device ma_device; + +typedef ma_uint8 ma_channel; +#define MA_CHANNEL_NONE 0 +#define MA_CHANNEL_MONO 1 +#define MA_CHANNEL_FRONT_LEFT 2 +#define MA_CHANNEL_FRONT_RIGHT 3 +#define MA_CHANNEL_FRONT_CENTER 4 +#define MA_CHANNEL_LFE 5 +#define MA_CHANNEL_BACK_LEFT 6 +#define MA_CHANNEL_BACK_RIGHT 7 +#define MA_CHANNEL_FRONT_LEFT_CENTER 8 +#define MA_CHANNEL_FRONT_RIGHT_CENTER 9 +#define MA_CHANNEL_BACK_CENTER 10 +#define MA_CHANNEL_SIDE_LEFT 11 +#define MA_CHANNEL_SIDE_RIGHT 12 +#define MA_CHANNEL_TOP_CENTER 13 +#define MA_CHANNEL_TOP_FRONT_LEFT 14 +#define MA_CHANNEL_TOP_FRONT_CENTER 15 +#define MA_CHANNEL_TOP_FRONT_RIGHT 16 +#define MA_CHANNEL_TOP_BACK_LEFT 17 +#define MA_CHANNEL_TOP_BACK_CENTER 18 +#define MA_CHANNEL_TOP_BACK_RIGHT 19 +#define MA_CHANNEL_AUX_0 20 +#define MA_CHANNEL_AUX_1 21 +#define MA_CHANNEL_AUX_2 22 +#define MA_CHANNEL_AUX_3 23 +#define MA_CHANNEL_AUX_4 24 +#define MA_CHANNEL_AUX_5 25 +#define MA_CHANNEL_AUX_6 26 +#define MA_CHANNEL_AUX_7 27 +#define MA_CHANNEL_AUX_8 28 +#define MA_CHANNEL_AUX_9 29 +#define MA_CHANNEL_AUX_10 30 +#define MA_CHANNEL_AUX_11 31 +#define MA_CHANNEL_AUX_12 32 +#define MA_CHANNEL_AUX_13 33 +#define MA_CHANNEL_AUX_14 34 +#define MA_CHANNEL_AUX_15 35 +#define MA_CHANNEL_AUX_16 36 +#define MA_CHANNEL_AUX_17 37 +#define MA_CHANNEL_AUX_18 38 +#define MA_CHANNEL_AUX_19 39 +#define MA_CHANNEL_AUX_20 40 +#define MA_CHANNEL_AUX_21 41 +#define MA_CHANNEL_AUX_22 42 +#define MA_CHANNEL_AUX_23 43 +#define MA_CHANNEL_AUX_24 44 +#define MA_CHANNEL_AUX_25 45 +#define MA_CHANNEL_AUX_26 46 +#define MA_CHANNEL_AUX_27 47 +#define MA_CHANNEL_AUX_28 48 +#define MA_CHANNEL_AUX_29 49 +#define MA_CHANNEL_AUX_30 50 +#define MA_CHANNEL_AUX_31 51 +#define MA_CHANNEL_LEFT MA_CHANNEL_FRONT_LEFT +#define MA_CHANNEL_RIGHT MA_CHANNEL_FRONT_RIGHT +#define MA_CHANNEL_POSITION_COUNT (MA_CHANNEL_AUX_31 + 1) + + +typedef int ma_result; +#define MA_SUCCESS 0 +#define MA_ERROR -1 /* A generic error. */ +#define MA_INVALID_ARGS -2 +#define MA_INVALID_OPERATION -3 +#define MA_OUT_OF_MEMORY -4 +#define MA_OUT_OF_RANGE -5 +#define MA_ACCESS_DENIED -6 +#define MA_DOES_NOT_EXIST -7 +#define MA_ALREADY_EXISTS -8 +#define MA_TOO_MANY_OPEN_FILES -9 +#define MA_INVALID_FILE -10 +#define MA_TOO_BIG -11 +#define MA_PATH_TOO_LONG -12 +#define MA_NAME_TOO_LONG -13 +#define MA_NOT_DIRECTORY -14 +#define MA_IS_DIRECTORY -15 +#define MA_DIRECTORY_NOT_EMPTY -16 +#define MA_END_OF_FILE -17 +#define MA_NO_SPACE -18 +#define MA_BUSY -19 +#define MA_IO_ERROR -20 +#define MA_INTERRUPT -21 +#define MA_UNAVAILABLE -22 +#define MA_ALREADY_IN_USE -23 +#define MA_BAD_ADDRESS -24 +#define MA_BAD_SEEK -25 +#define MA_BAD_PIPE -26 +#define MA_DEADLOCK -27 +#define MA_TOO_MANY_LINKS -28 +#define MA_NOT_IMPLEMENTED -29 +#define MA_NO_MESSAGE -30 +#define MA_BAD_MESSAGE -31 +#define MA_NO_DATA_AVAILABLE -32 +#define MA_INVALID_DATA -33 +#define MA_TIMEOUT -34 +#define MA_NO_NETWORK -35 +#define MA_NOT_UNIQUE -36 +#define MA_NOT_SOCKET -37 +#define MA_NO_ADDRESS -38 +#define MA_BAD_PROTOCOL -39 +#define MA_PROTOCOL_UNAVAILABLE -40 +#define MA_PROTOCOL_NOT_SUPPORTED -41 +#define MA_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define MA_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define MA_SOCKET_NOT_SUPPORTED -44 +#define MA_CONNECTION_RESET -45 +#define MA_ALREADY_CONNECTED -46 +#define MA_NOT_CONNECTED -47 +#define MA_CONNECTION_REFUSED -48 +#define MA_NO_HOST -49 +#define MA_IN_PROGRESS -50 +#define MA_CANCELLED -51 +#define MA_MEMORY_ALREADY_MAPPED -52 +#define MA_AT_END -53 + +/* General miniaudio-specific errors. */ +#define MA_FORMAT_NOT_SUPPORTED -100 +#define MA_DEVICE_TYPE_NOT_SUPPORTED -101 +#define MA_SHARE_MODE_NOT_SUPPORTED -102 +#define MA_NO_BACKEND -103 +#define MA_NO_DEVICE -104 +#define MA_API_NOT_FOUND -105 +#define MA_INVALID_DEVICE_CONFIG -106 +#define MA_LOOP -107 + +/* State errors. */ +#define MA_DEVICE_NOT_INITIALIZED -200 +#define MA_DEVICE_ALREADY_INITIALIZED -201 +#define MA_DEVICE_NOT_STARTED -202 +#define MA_DEVICE_NOT_STOPPED -203 + +/* Operation errors. */ +#define MA_FAILED_TO_INIT_BACKEND -300 +#define MA_FAILED_TO_OPEN_BACKEND_DEVICE -301 +#define MA_FAILED_TO_START_BACKEND_DEVICE -302 +#define MA_FAILED_TO_STOP_BACKEND_DEVICE -303 + + +#define MA_MIN_CHANNELS 1 +#ifndef MA_MAX_CHANNELS +#define MA_MAX_CHANNELS 32 +#endif + + +#ifndef MA_MAX_FILTER_ORDER +#define MA_MAX_FILTER_ORDER 8 +#endif + +typedef enum +{ + ma_stream_format_pcm = 0 +} ma_stream_format; + +typedef enum +{ + ma_stream_layout_interleaved = 0, + ma_stream_layout_deinterleaved +} ma_stream_layout; + +typedef enum +{ + ma_dither_mode_none = 0, + ma_dither_mode_rectangle, + ma_dither_mode_triangle +} ma_dither_mode; + +typedef enum +{ + /* + I like to keep these explicitly defined because they're used as a key into a lookup table. When items are + added to this, make sure there are no gaps and that they're added to the lookup table in ma_get_bytes_per_sample(). + */ + ma_format_unknown = 0, /* Mainly used for indicating an error, but also used as the default for the output format for decoders. */ + ma_format_u8 = 1, + ma_format_s16 = 2, /* Seems to be the most widely supported format. */ + ma_format_s24 = 3, /* Tightly packed. 3 bytes per sample. */ + ma_format_s32 = 4, + ma_format_f32 = 5, + ma_format_count +} ma_format; + +typedef enum +{ + /* Standard rates need to be in priority order. */ + ma_standard_sample_rate_48000 = 48000, /* Most common */ + ma_standard_sample_rate_44100 = 44100, + + ma_standard_sample_rate_32000 = 32000, /* Lows */ + ma_standard_sample_rate_24000 = 24000, + ma_standard_sample_rate_22050 = 22050, + + ma_standard_sample_rate_88200 = 88200, /* Highs */ + ma_standard_sample_rate_96000 = 96000, + ma_standard_sample_rate_176400 = 176400, + ma_standard_sample_rate_192000 = 192000, + + ma_standard_sample_rate_16000 = 16000, /* Extreme lows */ + ma_standard_sample_rate_11025 = 11250, + ma_standard_sample_rate_8000 = 8000, + + ma_standard_sample_rate_352800 = 352800, /* Extreme highs */ + ma_standard_sample_rate_384000 = 384000, + + ma_standard_sample_rate_min = ma_standard_sample_rate_8000, + ma_standard_sample_rate_max = ma_standard_sample_rate_384000, + ma_standard_sample_rate_count = 14 /* Need to maintain the count manually. Make sure this is updated if items are added to enum. */ +} ma_standard_sample_rate; + +/* These are deprecated. Use ma_standard_sample_rate_min and ma_standard_sample_rate_max. */ +#define MA_MIN_SAMPLE_RATE (ma_uint32)ma_standard_sample_rate_min +#define MA_MAX_SAMPLE_RATE (ma_uint32)ma_standard_sample_rate_max + + +typedef enum +{ + ma_channel_mix_mode_rectangular = 0, /* Simple averaging based on the plane(s) the channel is sitting on. */ + ma_channel_mix_mode_simple, /* Drop excess channels; zeroed out extra channels. */ + ma_channel_mix_mode_custom_weights, /* Use custom weights specified in ma_channel_router_config. */ + ma_channel_mix_mode_planar_blend = ma_channel_mix_mode_rectangular, + ma_channel_mix_mode_default = ma_channel_mix_mode_planar_blend +} ma_channel_mix_mode; + +typedef enum +{ + ma_standard_channel_map_microsoft, + ma_standard_channel_map_alsa, + ma_standard_channel_map_rfc3551, /* Based off AIFF. */ + ma_standard_channel_map_flac, + ma_standard_channel_map_vorbis, + ma_standard_channel_map_sound4, /* FreeBSD's sound(4). */ + ma_standard_channel_map_sndio, /* www.sndio.org/tips.html */ + ma_standard_channel_map_webaudio = ma_standard_channel_map_flac, /* https://webaudio.github.io/web-audio-api/#ChannelOrdering. Only 1, 2, 4 and 6 channels are defined, but can fill in the gaps with logical assumptions. */ + ma_standard_channel_map_default = ma_standard_channel_map_microsoft +} ma_standard_channel_map; + +typedef enum +{ + ma_performance_profile_low_latency = 0, + ma_performance_profile_conservative +} ma_performance_profile; + + +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} ma_allocation_callbacks; + +typedef struct +{ + ma_int32 state; +} ma_lcg; + + +#ifndef MA_NO_THREADING +/* Thread priorities should be ordered such that the default priority of the worker thread is 0. */ +typedef enum +{ + ma_thread_priority_idle = -5, + ma_thread_priority_lowest = -4, + ma_thread_priority_low = -3, + ma_thread_priority_normal = -2, + ma_thread_priority_high = -1, + ma_thread_priority_highest = 0, + ma_thread_priority_realtime = 1, + ma_thread_priority_default = 0 +} ma_thread_priority; + +/* Spinlocks are 32-bit for compatibility reasons. */ +typedef ma_uint32 ma_spinlock; + +#if defined(MA_WIN32) +typedef ma_handle ma_thread; +#endif +#if defined(MA_POSIX) +typedef pthread_t ma_thread; +#endif + +#if defined(MA_WIN32) +typedef ma_handle ma_mutex; +#endif +#if defined(MA_POSIX) +typedef pthread_mutex_t ma_mutex; +#endif + +#if defined(MA_WIN32) +typedef ma_handle ma_event; +#endif +#if defined(MA_POSIX) +typedef struct +{ + ma_uint32 value; + pthread_mutex_t lock; + pthread_cond_t cond; +} ma_event; +#endif /* MA_POSIX */ + +#if defined(MA_WIN32) +typedef ma_handle ma_semaphore; +#endif +#if defined(MA_POSIX) +typedef struct +{ + int value; + pthread_mutex_t lock; + pthread_cond_t cond; +} ma_semaphore; +#endif /* MA_POSIX */ +#else +/* MA_NO_THREADING is set which means threading is disabled. Threading is required by some API families. If any of these are enabled we need to throw an error. */ +#ifndef MA_NO_DEVICE_IO +#error "MA_NO_THREADING cannot be used without MA_NO_DEVICE_IO"; +#endif +#endif /* MA_NO_THREADING */ + + +/* +Retrieves the version of miniaudio as separated integers. Each component can be NULL if it's not required. +*/ +MA_API void ma_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision); + +/* +Retrieves the version of miniaudio as a string which can be useful for logging purposes. +*/ +MA_API const char* ma_version_string(void); + + +/************************************************************************************************************************************************************** + +Biquad Filtering + +**************************************************************************************************************************************************************/ +typedef union +{ + float f32; + ma_int32 s32; +} ma_biquad_coefficient; + +typedef struct +{ + ma_format format; + ma_uint32 channels; + double b0; + double b1; + double b2; + double a0; + double a1; + double a2; +} ma_biquad_config; + +MA_API ma_biquad_config ma_biquad_config_init(ma_format format, ma_uint32 channels, double b0, double b1, double b2, double a0, double a1, double a2); + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_biquad_coefficient b0; + ma_biquad_coefficient b1; + ma_biquad_coefficient b2; + ma_biquad_coefficient a1; + ma_biquad_coefficient a2; + ma_biquad_coefficient r1[MA_MAX_CHANNELS]; + ma_biquad_coefficient r2[MA_MAX_CHANNELS]; +} ma_biquad; + +MA_API ma_result ma_biquad_init(const ma_biquad_config* pConfig, ma_biquad* pBQ); +MA_API ma_result ma_biquad_reinit(const ma_biquad_config* pConfig, ma_biquad* pBQ); +MA_API ma_result ma_biquad_process_pcm_frames(ma_biquad* pBQ, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_biquad_get_latency(const ma_biquad* pBQ); + + +/************************************************************************************************************************************************************** + +Low-Pass Filtering + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double cutoffFrequency; + double q; +} ma_lpf1_config, ma_lpf2_config; + +MA_API ma_lpf1_config ma_lpf1_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency); +MA_API ma_lpf2_config ma_lpf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, double q); + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_biquad_coefficient a; + ma_biquad_coefficient r1[MA_MAX_CHANNELS]; +} ma_lpf1; + +MA_API ma_result ma_lpf1_init(const ma_lpf1_config* pConfig, ma_lpf1* pLPF); +MA_API ma_result ma_lpf1_reinit(const ma_lpf1_config* pConfig, ma_lpf1* pLPF); +MA_API ma_result ma_lpf1_process_pcm_frames(ma_lpf1* pLPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_lpf1_get_latency(const ma_lpf1* pLPF); + +typedef struct +{ + ma_biquad bq; /* The second order low-pass filter is implemented as a biquad filter. */ +} ma_lpf2; + +MA_API ma_result ma_lpf2_init(const ma_lpf2_config* pConfig, ma_lpf2* pLPF); +MA_API ma_result ma_lpf2_reinit(const ma_lpf2_config* pConfig, ma_lpf2* pLPF); +MA_API ma_result ma_lpf2_process_pcm_frames(ma_lpf2* pLPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_lpf2_get_latency(const ma_lpf2* pLPF); + + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double cutoffFrequency; + ma_uint32 order; /* If set to 0, will be treated as a passthrough (no filtering will be applied). */ +} ma_lpf_config; + +MA_API ma_lpf_config ma_lpf_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, ma_uint32 order); + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_uint32 lpf1Count; + ma_uint32 lpf2Count; + ma_lpf1 lpf1[1]; + ma_lpf2 lpf2[MA_MAX_FILTER_ORDER/2]; +} ma_lpf; + +MA_API ma_result ma_lpf_init(const ma_lpf_config* pConfig, ma_lpf* pLPF); +MA_API ma_result ma_lpf_reinit(const ma_lpf_config* pConfig, ma_lpf* pLPF); +MA_API ma_result ma_lpf_process_pcm_frames(ma_lpf* pLPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_lpf_get_latency(const ma_lpf* pLPF); + + +/************************************************************************************************************************************************************** + +High-Pass Filtering + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double cutoffFrequency; + double q; +} ma_hpf1_config, ma_hpf2_config; + +MA_API ma_hpf1_config ma_hpf1_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency); +MA_API ma_hpf2_config ma_hpf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, double q); + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_biquad_coefficient a; + ma_biquad_coefficient r1[MA_MAX_CHANNELS]; +} ma_hpf1; + +MA_API ma_result ma_hpf1_init(const ma_hpf1_config* pConfig, ma_hpf1* pHPF); +MA_API ma_result ma_hpf1_reinit(const ma_hpf1_config* pConfig, ma_hpf1* pHPF); +MA_API ma_result ma_hpf1_process_pcm_frames(ma_hpf1* pHPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_hpf1_get_latency(const ma_hpf1* pHPF); + +typedef struct +{ + ma_biquad bq; /* The second order high-pass filter is implemented as a biquad filter. */ +} ma_hpf2; + +MA_API ma_result ma_hpf2_init(const ma_hpf2_config* pConfig, ma_hpf2* pHPF); +MA_API ma_result ma_hpf2_reinit(const ma_hpf2_config* pConfig, ma_hpf2* pHPF); +MA_API ma_result ma_hpf2_process_pcm_frames(ma_hpf2* pHPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_hpf2_get_latency(const ma_hpf2* pHPF); + + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double cutoffFrequency; + ma_uint32 order; /* If set to 0, will be treated as a passthrough (no filtering will be applied). */ +} ma_hpf_config; + +MA_API ma_hpf_config ma_hpf_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, ma_uint32 order); + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_uint32 hpf1Count; + ma_uint32 hpf2Count; + ma_hpf1 hpf1[1]; + ma_hpf2 hpf2[MA_MAX_FILTER_ORDER/2]; +} ma_hpf; + +MA_API ma_result ma_hpf_init(const ma_hpf_config* pConfig, ma_hpf* pHPF); +MA_API ma_result ma_hpf_reinit(const ma_hpf_config* pConfig, ma_hpf* pHPF); +MA_API ma_result ma_hpf_process_pcm_frames(ma_hpf* pHPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_hpf_get_latency(const ma_hpf* pHPF); + + +/************************************************************************************************************************************************************** + +Band-Pass Filtering + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double cutoffFrequency; + double q; +} ma_bpf2_config; + +MA_API ma_bpf2_config ma_bpf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, double q); + +typedef struct +{ + ma_biquad bq; /* The second order band-pass filter is implemented as a biquad filter. */ +} ma_bpf2; + +MA_API ma_result ma_bpf2_init(const ma_bpf2_config* pConfig, ma_bpf2* pBPF); +MA_API ma_result ma_bpf2_reinit(const ma_bpf2_config* pConfig, ma_bpf2* pBPF); +MA_API ma_result ma_bpf2_process_pcm_frames(ma_bpf2* pBPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_bpf2_get_latency(const ma_bpf2* pBPF); + + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double cutoffFrequency; + ma_uint32 order; /* If set to 0, will be treated as a passthrough (no filtering will be applied). */ +} ma_bpf_config; + +MA_API ma_bpf_config ma_bpf_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, ma_uint32 order); + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 bpf2Count; + ma_bpf2 bpf2[MA_MAX_FILTER_ORDER/2]; +} ma_bpf; + +MA_API ma_result ma_bpf_init(const ma_bpf_config* pConfig, ma_bpf* pBPF); +MA_API ma_result ma_bpf_reinit(const ma_bpf_config* pConfig, ma_bpf* pBPF); +MA_API ma_result ma_bpf_process_pcm_frames(ma_bpf* pBPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_bpf_get_latency(const ma_bpf* pBPF); + + +/************************************************************************************************************************************************************** + +Notching Filter + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double q; + double frequency; +} ma_notch2_config; + +MA_API ma_notch2_config ma_notch2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double q, double frequency); + +typedef struct +{ + ma_biquad bq; +} ma_notch2; + +MA_API ma_result ma_notch2_init(const ma_notch2_config* pConfig, ma_notch2* pFilter); +MA_API ma_result ma_notch2_reinit(const ma_notch2_config* pConfig, ma_notch2* pFilter); +MA_API ma_result ma_notch2_process_pcm_frames(ma_notch2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_notch2_get_latency(const ma_notch2* pFilter); + + +/************************************************************************************************************************************************************** + +Peaking EQ Filter + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double gainDB; + double q; + double frequency; +} ma_peak2_config; + +MA_API ma_peak2_config ma_peak2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double gainDB, double q, double frequency); + +typedef struct +{ + ma_biquad bq; +} ma_peak2; + +MA_API ma_result ma_peak2_init(const ma_peak2_config* pConfig, ma_peak2* pFilter); +MA_API ma_result ma_peak2_reinit(const ma_peak2_config* pConfig, ma_peak2* pFilter); +MA_API ma_result ma_peak2_process_pcm_frames(ma_peak2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_peak2_get_latency(const ma_peak2* pFilter); + + +/************************************************************************************************************************************************************** + +Low Shelf Filter + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double gainDB; + double shelfSlope; + double frequency; +} ma_loshelf2_config; + +MA_API ma_loshelf2_config ma_loshelf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double gainDB, double shelfSlope, double frequency); + +typedef struct +{ + ma_biquad bq; +} ma_loshelf2; + +MA_API ma_result ma_loshelf2_init(const ma_loshelf2_config* pConfig, ma_loshelf2* pFilter); +MA_API ma_result ma_loshelf2_reinit(const ma_loshelf2_config* pConfig, ma_loshelf2* pFilter); +MA_API ma_result ma_loshelf2_process_pcm_frames(ma_loshelf2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_loshelf2_get_latency(const ma_loshelf2* pFilter); + + +/************************************************************************************************************************************************************** + +High Shelf Filter + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double gainDB; + double shelfSlope; + double frequency; +} ma_hishelf2_config; + +MA_API ma_hishelf2_config ma_hishelf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double gainDB, double shelfSlope, double frequency); + +typedef struct +{ + ma_biquad bq; +} ma_hishelf2; + +MA_API ma_result ma_hishelf2_init(const ma_hishelf2_config* pConfig, ma_hishelf2* pFilter); +MA_API ma_result ma_hishelf2_reinit(const ma_hishelf2_config* pConfig, ma_hishelf2* pFilter); +MA_API ma_result ma_hishelf2_process_pcm_frames(ma_hishelf2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_uint32 ma_hishelf2_get_latency(const ma_hishelf2* pFilter); + + + +/************************************************************************************************************************************************************ +************************************************************************************************************************************************************* + +DATA CONVERSION +=============== + +This section contains the APIs for data conversion. You will find everything here for channel mapping, sample format conversion, resampling, etc. + +************************************************************************************************************************************************************* +************************************************************************************************************************************************************/ + +/************************************************************************************************************************************************************** + +Resampling + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRateIn; + ma_uint32 sampleRateOut; + ma_uint32 lpfOrder; /* The low-pass filter order. Setting this to 0 will disable low-pass filtering. */ + double lpfNyquistFactor; /* 0..1. Defaults to 1. 1 = Half the sampling frequency (Nyquist Frequency), 0.5 = Quarter the sampling frequency (half Nyquest Frequency), etc. */ +} ma_linear_resampler_config; + +MA_API ma_linear_resampler_config ma_linear_resampler_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut); + +typedef struct +{ + ma_linear_resampler_config config; + ma_uint32 inAdvanceInt; + ma_uint32 inAdvanceFrac; + ma_uint32 inTimeInt; + ma_uint32 inTimeFrac; + union + { + float f32[MA_MAX_CHANNELS]; + ma_int16 s16[MA_MAX_CHANNELS]; + } x0; /* The previous input frame. */ + union + { + float f32[MA_MAX_CHANNELS]; + ma_int16 s16[MA_MAX_CHANNELS]; + } x1; /* The next input frame. */ + ma_lpf lpf; +} ma_linear_resampler; + +MA_API ma_result ma_linear_resampler_init(const ma_linear_resampler_config* pConfig, ma_linear_resampler* pResampler); +MA_API void ma_linear_resampler_uninit(ma_linear_resampler* pResampler); +MA_API ma_result ma_linear_resampler_process_pcm_frames(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut); +MA_API ma_result ma_linear_resampler_set_rate(ma_linear_resampler* pResampler, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut); +MA_API ma_result ma_linear_resampler_set_rate_ratio(ma_linear_resampler* pResampler, float ratioInOut); +MA_API ma_uint64 ma_linear_resampler_get_required_input_frame_count(const ma_linear_resampler* pResampler, ma_uint64 outputFrameCount); +MA_API ma_uint64 ma_linear_resampler_get_expected_output_frame_count(const ma_linear_resampler* pResampler, ma_uint64 inputFrameCount); +MA_API ma_uint64 ma_linear_resampler_get_input_latency(const ma_linear_resampler* pResampler); +MA_API ma_uint64 ma_linear_resampler_get_output_latency(const ma_linear_resampler* pResampler); + +typedef enum +{ + ma_resample_algorithm_linear = 0, /* Fastest, lowest quality. Optional low-pass filtering. Default. */ + ma_resample_algorithm_speex +} ma_resample_algorithm; + +typedef struct +{ + ma_format format; /* Must be either ma_format_f32 or ma_format_s16. */ + ma_uint32 channels; + ma_uint32 sampleRateIn; + ma_uint32 sampleRateOut; + ma_resample_algorithm algorithm; + struct + { + ma_uint32 lpfOrder; + double lpfNyquistFactor; + } linear; + struct + { + int quality; /* 0 to 10. Defaults to 3. */ + } speex; +} ma_resampler_config; + +MA_API ma_resampler_config ma_resampler_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut, ma_resample_algorithm algorithm); + +typedef struct +{ + ma_resampler_config config; + union + { + ma_linear_resampler linear; + struct + { + void* pSpeexResamplerState; /* SpeexResamplerState* */ + } speex; + } state; +} ma_resampler; + +/* +Initializes a new resampler object from a config. +*/ +MA_API ma_result ma_resampler_init(const ma_resampler_config* pConfig, ma_resampler* pResampler); + +/* +Uninitializes a resampler. +*/ +MA_API void ma_resampler_uninit(ma_resampler* pResampler); + +/* +Converts the given input data. + +Both the input and output frames must be in the format specified in the config when the resampler was initilized. + +On input, [pFrameCountOut] contains the number of output frames to process. On output it contains the number of output frames that +were actually processed, which may be less than the requested amount which will happen if there's not enough input data. You can use +ma_resampler_get_expected_output_frame_count() to know how many output frames will be processed for a given number of input frames. + +On input, [pFrameCountIn] contains the number of input frames contained in [pFramesIn]. On output it contains the number of whole +input frames that were actually processed. You can use ma_resampler_get_required_input_frame_count() to know how many input frames +you should provide for a given number of output frames. [pFramesIn] can be NULL, in which case zeroes will be used instead. + +If [pFramesOut] is NULL, a seek is performed. In this case, if [pFrameCountOut] is not NULL it will seek by the specified number of +output frames. Otherwise, if [pFramesCountOut] is NULL and [pFrameCountIn] is not NULL, it will seek by the specified number of input +frames. When seeking, [pFramesIn] is allowed to NULL, in which case the internal timing state will be updated, but no input will be +processed. In this case, any internal filter state will be updated as if zeroes were passed in. + +It is an error for [pFramesOut] to be non-NULL and [pFrameCountOut] to be NULL. + +It is an error for both [pFrameCountOut] and [pFrameCountIn] to be NULL. +*/ +MA_API ma_result ma_resampler_process_pcm_frames(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut); + + +/* +Sets the input and output sample sample rate. +*/ +MA_API ma_result ma_resampler_set_rate(ma_resampler* pResampler, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut); + +/* +Sets the input and output sample rate as a ratio. + +The ration is in/out. +*/ +MA_API ma_result ma_resampler_set_rate_ratio(ma_resampler* pResampler, float ratio); + + +/* +Calculates the number of whole input frames that would need to be read from the client in order to output the specified +number of output frames. + +The returned value does not include cached input frames. It only returns the number of extra frames that would need to be +read from the input buffer in order to output the specified number of output frames. +*/ +MA_API ma_uint64 ma_resampler_get_required_input_frame_count(const ma_resampler* pResampler, ma_uint64 outputFrameCount); + +/* +Calculates the number of whole output frames that would be output after fully reading and consuming the specified number of +input frames. +*/ +MA_API ma_uint64 ma_resampler_get_expected_output_frame_count(const ma_resampler* pResampler, ma_uint64 inputFrameCount); + + +/* +Retrieves the latency introduced by the resampler in input frames. +*/ +MA_API ma_uint64 ma_resampler_get_input_latency(const ma_resampler* pResampler); + +/* +Retrieves the latency introduced by the resampler in output frames. +*/ +MA_API ma_uint64 ma_resampler_get_output_latency(const ma_resampler* pResampler); + + + +/************************************************************************************************************************************************************** + +Channel Conversion + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format format; + ma_uint32 channelsIn; + ma_uint32 channelsOut; + ma_channel channelMapIn[MA_MAX_CHANNELS]; + ma_channel channelMapOut[MA_MAX_CHANNELS]; + ma_channel_mix_mode mixingMode; + float weights[MA_MAX_CHANNELS][MA_MAX_CHANNELS]; /* [in][out]. Only used when mixingMode is set to ma_channel_mix_mode_custom_weights. */ +} ma_channel_converter_config; + +MA_API ma_channel_converter_config ma_channel_converter_config_init(ma_format format, ma_uint32 channelsIn, const ma_channel* pChannelMapIn, ma_uint32 channelsOut, const ma_channel* pChannelMapOut, ma_channel_mix_mode mixingMode); + +typedef struct +{ + ma_format format; + ma_uint32 channelsIn; + ma_uint32 channelsOut; + ma_channel channelMapIn[MA_MAX_CHANNELS]; + ma_channel channelMapOut[MA_MAX_CHANNELS]; + ma_channel_mix_mode mixingMode; + union + { + float f32[MA_MAX_CHANNELS][MA_MAX_CHANNELS]; + ma_int32 s16[MA_MAX_CHANNELS][MA_MAX_CHANNELS]; + } weights; + ma_bool8 isPassthrough; + ma_bool8 isSimpleShuffle; + ma_bool8 isSimpleMonoExpansion; + ma_bool8 isStereoToMono; + ma_uint8 shuffleTable[MA_MAX_CHANNELS]; +} ma_channel_converter; + +MA_API ma_result ma_channel_converter_init(const ma_channel_converter_config* pConfig, ma_channel_converter* pConverter); +MA_API void ma_channel_converter_uninit(ma_channel_converter* pConverter); +MA_API ma_result ma_channel_converter_process_pcm_frames(ma_channel_converter* pConverter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); + + +/************************************************************************************************************************************************************** + +Data Conversion + +**************************************************************************************************************************************************************/ +typedef struct +{ + ma_format formatIn; + ma_format formatOut; + ma_uint32 channelsIn; + ma_uint32 channelsOut; + ma_uint32 sampleRateIn; + ma_uint32 sampleRateOut; + ma_channel channelMapIn[MA_MAX_CHANNELS]; + ma_channel channelMapOut[MA_MAX_CHANNELS]; + ma_dither_mode ditherMode; + ma_channel_mix_mode channelMixMode; + float channelWeights[MA_MAX_CHANNELS][MA_MAX_CHANNELS]; /* [in][out]. Only used when channelMixMode is set to ma_channel_mix_mode_custom_weights. */ + struct + { + ma_resample_algorithm algorithm; + ma_bool32 allowDynamicSampleRate; + struct + { + ma_uint32 lpfOrder; + double lpfNyquistFactor; + } linear; + struct + { + int quality; + } speex; + } resampling; +} ma_data_converter_config; + +MA_API ma_data_converter_config ma_data_converter_config_init_default(void); +MA_API ma_data_converter_config ma_data_converter_config_init(ma_format formatIn, ma_format formatOut, ma_uint32 channelsIn, ma_uint32 channelsOut, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut); + +typedef struct +{ + ma_data_converter_config config; + ma_channel_converter channelConverter; + ma_resampler resampler; + ma_bool8 hasPreFormatConversion; + ma_bool8 hasPostFormatConversion; + ma_bool8 hasChannelConverter; + ma_bool8 hasResampler; + ma_bool8 isPassthrough; +} ma_data_converter; + +MA_API ma_result ma_data_converter_init(const ma_data_converter_config* pConfig, ma_data_converter* pConverter); +MA_API void ma_data_converter_uninit(ma_data_converter* pConverter); +MA_API ma_result ma_data_converter_process_pcm_frames(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut); +MA_API ma_result ma_data_converter_set_rate(ma_data_converter* pConverter, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut); +MA_API ma_result ma_data_converter_set_rate_ratio(ma_data_converter* pConverter, float ratioInOut); +MA_API ma_uint64 ma_data_converter_get_required_input_frame_count(const ma_data_converter* pConverter, ma_uint64 outputFrameCount); +MA_API ma_uint64 ma_data_converter_get_expected_output_frame_count(const ma_data_converter* pConverter, ma_uint64 inputFrameCount); +MA_API ma_uint64 ma_data_converter_get_input_latency(const ma_data_converter* pConverter); +MA_API ma_uint64 ma_data_converter_get_output_latency(const ma_data_converter* pConverter); + + +/************************************************************************************************************************************************************ + +Format Conversion + +************************************************************************************************************************************************************/ +MA_API void ma_pcm_u8_to_s16(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_u8_to_s24(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_u8_to_s32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_u8_to_f32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s16_to_u8(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s16_to_s24(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s16_to_s32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s16_to_f32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s24_to_u8(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s24_to_s16(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s24_to_s32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s24_to_f32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s32_to_u8(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s32_to_s16(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s32_to_s24(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_s32_to_f32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_f32_to_u8(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_f32_to_s16(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_f32_to_s24(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_f32_to_s32(void* pOut, const void* pIn, ma_uint64 count, ma_dither_mode ditherMode); +MA_API void ma_pcm_convert(void* pOut, ma_format formatOut, const void* pIn, ma_format formatIn, ma_uint64 sampleCount, ma_dither_mode ditherMode); +MA_API void ma_convert_pcm_frames_format(void* pOut, ma_format formatOut, const void* pIn, ma_format formatIn, ma_uint64 frameCount, ma_uint32 channels, ma_dither_mode ditherMode); + +/* +Deinterleaves an interleaved buffer. +*/ +MA_API void ma_deinterleave_pcm_frames(ma_format format, ma_uint32 channels, ma_uint64 frameCount, const void* pInterleavedPCMFrames, void** ppDeinterleavedPCMFrames); + +/* +Interleaves a group of deinterleaved buffers. +*/ +MA_API void ma_interleave_pcm_frames(ma_format format, ma_uint32 channels, ma_uint64 frameCount, const void** ppDeinterleavedPCMFrames, void* pInterleavedPCMFrames); + + +/************************************************************************************************************************************************************ + +Channel Maps + +************************************************************************************************************************************************************/ + +/* +Initializes a blank channel map. + +When a blank channel map is specified anywhere it indicates that the native channel map should be used. +*/ +MA_API void ma_channel_map_init_blank(ma_uint32 channels, ma_channel* pChannelMap); + +/* +Helper for retrieving a standard channel map. + +The output channel map buffer must have a capacity of at least `channels`. +*/ +MA_API void ma_get_standard_channel_map(ma_standard_channel_map standardChannelMap, ma_uint32 channels, ma_channel* pChannelMap); + +/* +Copies a channel map. + +Both input and output channel map buffers must have a capacity of at at least `channels`. +*/ +MA_API void ma_channel_map_copy(ma_channel* pOut, const ma_channel* pIn, ma_uint32 channels); + +/* +Copies a channel map if one is specified, otherwise copies the default channel map. + +The output buffer must have a capacity of at least `channels`. If not NULL, the input channel map must also have a capacity of at least `channels`. +*/ +MA_API void ma_channel_map_copy_or_default(ma_channel* pOut, const ma_channel* pIn, ma_uint32 channels); + + +/* +Determines whether or not a channel map is valid. + +A blank channel map is valid (all channels set to MA_CHANNEL_NONE). The way a blank channel map is handled is context specific, but +is usually treated as a passthrough. + +Invalid channel maps: + - A channel map with no channels + - A channel map with more than one channel and a mono channel + +The channel map buffer must have a capacity of at least `channels`. +*/ +MA_API ma_bool32 ma_channel_map_valid(ma_uint32 channels, const ma_channel* pChannelMap); + +/* +Helper for comparing two channel maps for equality. + +This assumes the channel count is the same between the two. + +Both channels map buffers must have a capacity of at least `channels`. +*/ +MA_API ma_bool32 ma_channel_map_equal(ma_uint32 channels, const ma_channel* pChannelMapA, const ma_channel* pChannelMapB); + +/* +Helper for determining if a channel map is blank (all channels set to MA_CHANNEL_NONE). + +The channel map buffer must have a capacity of at least `channels`. +*/ +MA_API ma_bool32 ma_channel_map_blank(ma_uint32 channels, const ma_channel* pChannelMap); + +/* +Helper for determining whether or not a channel is present in the given channel map. + +The channel map buffer must have a capacity of at least `channels`. +*/ +MA_API ma_bool32 ma_channel_map_contains_channel_position(ma_uint32 channels, const ma_channel* pChannelMap, ma_channel channelPosition); + + +/************************************************************************************************************************************************************ + +Conversion Helpers + +************************************************************************************************************************************************************/ + +/* +High-level helper for doing a full format conversion in one go. Returns the number of output frames. Call this with pOut set to NULL to +determine the required size of the output buffer. frameCountOut should be set to the capacity of pOut. If pOut is NULL, frameCountOut is +ignored. + +A return value of 0 indicates an error. + +This function is useful for one-off bulk conversions, but if you're streaming data you should use the ma_data_converter APIs instead. +*/ +MA_API ma_uint64 ma_convert_frames(void* pOut, ma_uint64 frameCountOut, ma_format formatOut, ma_uint32 channelsOut, ma_uint32 sampleRateOut, const void* pIn, ma_uint64 frameCountIn, ma_format formatIn, ma_uint32 channelsIn, ma_uint32 sampleRateIn); +MA_API ma_uint64 ma_convert_frames_ex(void* pOut, ma_uint64 frameCountOut, const void* pIn, ma_uint64 frameCountIn, const ma_data_converter_config* pConfig); + + +/************************************************************************************************************************************************************ + +Ring Buffer + +************************************************************************************************************************************************************/ +typedef struct +{ + void* pBuffer; + ma_uint32 subbufferSizeInBytes; + ma_uint32 subbufferCount; + ma_uint32 subbufferStrideInBytes; + MA_ATOMIC ma_uint32 encodedReadOffset; /* Most significant bit is the loop flag. Lower 31 bits contains the actual offset in bytes. Must be used atomically. */ + MA_ATOMIC ma_uint32 encodedWriteOffset; /* Most significant bit is the loop flag. Lower 31 bits contains the actual offset in bytes. Must be used atomically. */ + ma_bool8 ownsBuffer; /* Used to know whether or not miniaudio is responsible for free()-ing the buffer. */ + ma_bool8 clearOnWriteAcquire; /* When set, clears the acquired write buffer before returning from ma_rb_acquire_write(). */ + ma_allocation_callbacks allocationCallbacks; +} ma_rb; + +MA_API ma_result ma_rb_init_ex(size_t subbufferSizeInBytes, size_t subbufferCount, size_t subbufferStrideInBytes, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_rb* pRB); +MA_API ma_result ma_rb_init(size_t bufferSizeInBytes, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_rb* pRB); +MA_API void ma_rb_uninit(ma_rb* pRB); +MA_API void ma_rb_reset(ma_rb* pRB); +MA_API ma_result ma_rb_acquire_read(ma_rb* pRB, size_t* pSizeInBytes, void** ppBufferOut); +MA_API ma_result ma_rb_commit_read(ma_rb* pRB, size_t sizeInBytes, void* pBufferOut); +MA_API ma_result ma_rb_acquire_write(ma_rb* pRB, size_t* pSizeInBytes, void** ppBufferOut); +MA_API ma_result ma_rb_commit_write(ma_rb* pRB, size_t sizeInBytes, void* pBufferOut); +MA_API ma_result ma_rb_seek_read(ma_rb* pRB, size_t offsetInBytes); +MA_API ma_result ma_rb_seek_write(ma_rb* pRB, size_t offsetInBytes); +MA_API ma_int32 ma_rb_pointer_distance(ma_rb* pRB); /* Returns the distance between the write pointer and the read pointer. Should never be negative for a correct program. Will return the number of bytes that can be read before the read pointer hits the write pointer. */ +MA_API ma_uint32 ma_rb_available_read(ma_rb* pRB); +MA_API ma_uint32 ma_rb_available_write(ma_rb* pRB); +MA_API size_t ma_rb_get_subbuffer_size(ma_rb* pRB); +MA_API size_t ma_rb_get_subbuffer_stride(ma_rb* pRB); +MA_API size_t ma_rb_get_subbuffer_offset(ma_rb* pRB, size_t subbufferIndex); +MA_API void* ma_rb_get_subbuffer_ptr(ma_rb* pRB, size_t subbufferIndex, void* pBuffer); + + +typedef struct +{ + ma_rb rb; + ma_format format; + ma_uint32 channels; +} ma_pcm_rb; + +MA_API ma_result ma_pcm_rb_init_ex(ma_format format, ma_uint32 channels, ma_uint32 subbufferSizeInFrames, ma_uint32 subbufferCount, ma_uint32 subbufferStrideInFrames, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_pcm_rb* pRB); +MA_API ma_result ma_pcm_rb_init(ma_format format, ma_uint32 channels, ma_uint32 bufferSizeInFrames, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_pcm_rb* pRB); +MA_API void ma_pcm_rb_uninit(ma_pcm_rb* pRB); +MA_API void ma_pcm_rb_reset(ma_pcm_rb* pRB); +MA_API ma_result ma_pcm_rb_acquire_read(ma_pcm_rb* pRB, ma_uint32* pSizeInFrames, void** ppBufferOut); +MA_API ma_result ma_pcm_rb_commit_read(ma_pcm_rb* pRB, ma_uint32 sizeInFrames, void* pBufferOut); +MA_API ma_result ma_pcm_rb_acquire_write(ma_pcm_rb* pRB, ma_uint32* pSizeInFrames, void** ppBufferOut); +MA_API ma_result ma_pcm_rb_commit_write(ma_pcm_rb* pRB, ma_uint32 sizeInFrames, void* pBufferOut); +MA_API ma_result ma_pcm_rb_seek_read(ma_pcm_rb* pRB, ma_uint32 offsetInFrames); +MA_API ma_result ma_pcm_rb_seek_write(ma_pcm_rb* pRB, ma_uint32 offsetInFrames); +MA_API ma_int32 ma_pcm_rb_pointer_distance(ma_pcm_rb* pRB); /* Return value is in frames. */ +MA_API ma_uint32 ma_pcm_rb_available_read(ma_pcm_rb* pRB); +MA_API ma_uint32 ma_pcm_rb_available_write(ma_pcm_rb* pRB); +MA_API ma_uint32 ma_pcm_rb_get_subbuffer_size(ma_pcm_rb* pRB); +MA_API ma_uint32 ma_pcm_rb_get_subbuffer_stride(ma_pcm_rb* pRB); +MA_API ma_uint32 ma_pcm_rb_get_subbuffer_offset(ma_pcm_rb* pRB, ma_uint32 subbufferIndex); +MA_API void* ma_pcm_rb_get_subbuffer_ptr(ma_pcm_rb* pRB, ma_uint32 subbufferIndex, void* pBuffer); + + +/* +The idea of the duplex ring buffer is to act as the intermediary buffer when running two asynchronous devices in a duplex set up. The +capture device writes to it, and then a playback device reads from it. + +At the moment this is just a simple naive implementation, but in the future I want to implement some dynamic resampling to seamlessly +handle desyncs. Note that the API is work in progress and may change at any time in any version. + +The size of the buffer is based on the capture side since that's what'll be written to the buffer. It is based on the capture period size +in frames. The internal sample rate of the capture device is also needed in order to calculate the size. +*/ +typedef struct +{ + ma_pcm_rb rb; +} ma_duplex_rb; + +MA_API ma_result ma_duplex_rb_init(ma_format captureFormat, ma_uint32 captureChannels, ma_uint32 sampleRate, ma_uint32 captureInternalSampleRate, ma_uint32 captureInternalPeriodSizeInFrames, const ma_allocation_callbacks* pAllocationCallbacks, ma_duplex_rb* pRB); +MA_API ma_result ma_duplex_rb_uninit(ma_duplex_rb* pRB); + + +/************************************************************************************************************************************************************ + +Miscellaneous Helpers + +************************************************************************************************************************************************************/ +/* +Retrieves a human readable description of the given result code. +*/ +MA_API const char* ma_result_description(ma_result result); + +/* +malloc(). Calls MA_MALLOC(). +*/ +MA_API void* ma_malloc(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks); + +/* +realloc(). Calls MA_REALLOC(). +*/ +MA_API void* ma_realloc(void* p, size_t sz, const ma_allocation_callbacks* pAllocationCallbacks); + +/* +free(). Calls MA_FREE(). +*/ +MA_API void ma_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks); + +/* +Performs an aligned malloc, with the assumption that the alignment is a power of 2. +*/ +MA_API void* ma_aligned_malloc(size_t sz, size_t alignment, const ma_allocation_callbacks* pAllocationCallbacks); + +/* +Free's an aligned malloc'd buffer. +*/ +MA_API void ma_aligned_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks); + +/* +Retrieves a friendly name for a format. +*/ +MA_API const char* ma_get_format_name(ma_format format); + +/* +Blends two frames in floating point format. +*/ +MA_API void ma_blend_f32(float* pOut, float* pInA, float* pInB, float factor, ma_uint32 channels); + +/* +Retrieves the size of a sample in bytes for the given format. + +This API is efficient and is implemented using a lookup table. + +Thread Safety: SAFE + This API is pure. +*/ +MA_API ma_uint32 ma_get_bytes_per_sample(ma_format format); +static MA_INLINE ma_uint32 ma_get_bytes_per_frame(ma_format format, ma_uint32 channels) { return ma_get_bytes_per_sample(format) * channels; } + +/* +Converts a log level to a string. +*/ +MA_API const char* ma_log_level_to_string(ma_uint32 logLevel); + + + +/************************************************************************************************************************************************************ +************************************************************************************************************************************************************* + +DEVICE I/O +========== + +This section contains the APIs for device playback and capture. Here is where you'll find ma_device_init(), etc. + +************************************************************************************************************************************************************* +************************************************************************************************************************************************************/ +#ifndef MA_NO_DEVICE_IO +/* Some backends are only supported on certain platforms. */ +#if defined(MA_WIN32) + #define MA_SUPPORT_WASAPI + #if defined(MA_WIN32_DESKTOP) /* DirectSound and WinMM backends are only supported on desktops. */ + #define MA_SUPPORT_DSOUND + #define MA_SUPPORT_WINMM + #define MA_SUPPORT_JACK /* JACK is technically supported on Windows, but I don't know how many people use it in practice... */ + #endif +#endif +#if defined(MA_UNIX) + #if defined(MA_LINUX) + #if !defined(MA_ANDROID) /* ALSA is not supported on Android. */ + #define MA_SUPPORT_ALSA + #endif + #endif + #if !defined(MA_BSD) && !defined(MA_ANDROID) && !defined(MA_EMSCRIPTEN) + #define MA_SUPPORT_PULSEAUDIO + #define MA_SUPPORT_JACK + #endif + #if defined(MA_ANDROID) + #define MA_SUPPORT_AAUDIO + #define MA_SUPPORT_OPENSL + #endif + #if defined(__OpenBSD__) /* <-- Change this to "#if defined(MA_BSD)" to enable sndio on all BSD flavors. */ + #define MA_SUPPORT_SNDIO /* sndio is only supported on OpenBSD for now. May be expanded later if there's demand. */ + #endif + #if defined(__NetBSD__) || defined(__OpenBSD__) + #define MA_SUPPORT_AUDIO4 /* Only support audio(4) on platforms with known support. */ + #endif + #if defined(__FreeBSD__) || defined(__DragonFly__) + #define MA_SUPPORT_OSS /* Only support OSS on specific platforms with known support. */ + #endif +#endif +#if defined(MA_APPLE) + #define MA_SUPPORT_COREAUDIO +#endif +#if defined(MA_EMSCRIPTEN) + #define MA_SUPPORT_WEBAUDIO +#endif + +/* All platforms should support custom backends. */ +#define MA_SUPPORT_CUSTOM + +/* Explicitly disable the Null backend for Emscripten because it uses a background thread which is not properly supported right now. */ +#if !defined(MA_EMSCRIPTEN) +#define MA_SUPPORT_NULL +#endif + + +#if defined(MA_SUPPORT_WASAPI) && !defined(MA_NO_WASAPI) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_WASAPI)) + #define MA_HAS_WASAPI +#endif +#if defined(MA_SUPPORT_DSOUND) && !defined(MA_NO_DSOUND) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_DSOUND)) + #define MA_HAS_DSOUND +#endif +#if defined(MA_SUPPORT_WINMM) && !defined(MA_NO_WINMM) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_WINMM)) + #define MA_HAS_WINMM +#endif +#if defined(MA_SUPPORT_ALSA) && !defined(MA_NO_ALSA) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_ALSA)) + #define MA_HAS_ALSA +#endif +#if defined(MA_SUPPORT_PULSEAUDIO) && !defined(MA_NO_PULSEAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_PULSEAUDIO)) + #define MA_HAS_PULSEAUDIO +#endif +#if defined(MA_SUPPORT_JACK) && !defined(MA_NO_JACK) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_JACK)) + #define MA_HAS_JACK +#endif +#if defined(MA_SUPPORT_COREAUDIO) && !defined(MA_NO_COREAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_COREAUDIO)) + #define MA_HAS_COREAUDIO +#endif +#if defined(MA_SUPPORT_SNDIO) && !defined(MA_NO_SNDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_SNDIO)) + #define MA_HAS_SNDIO +#endif +#if defined(MA_SUPPORT_AUDIO4) && !defined(MA_NO_AUDIO4) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_AUDIO4)) + #define MA_HAS_AUDIO4 +#endif +#if defined(MA_SUPPORT_OSS) && !defined(MA_NO_OSS) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_OSS)) + #define MA_HAS_OSS +#endif +#if defined(MA_SUPPORT_AAUDIO) && !defined(MA_NO_AAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_AAUDIO)) + #define MA_HAS_AAUDIO +#endif +#if defined(MA_SUPPORT_OPENSL) && !defined(MA_NO_OPENSL) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_OPENSL)) + #define MA_HAS_OPENSL +#endif +#if defined(MA_SUPPORT_WEBAUDIO) && !defined(MA_NO_WEBAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_WEBAUDIO)) + #define MA_HAS_WEBAUDIO +#endif +#if defined(MA_SUPPORT_CUSTOM) && !defined(MA_NO_CUSTOM) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_CUSTOM)) + #define MA_HAS_CUSTOM +#endif +#if defined(MA_SUPPORT_NULL) && !defined(MA_NO_NULL) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_NULL)) + #define MA_HAS_NULL +#endif + +#define MA_STATE_UNINITIALIZED 0 +#define MA_STATE_STOPPED 1 /* The device's default state after initialization. */ +#define MA_STATE_STARTED 2 /* The device is started and is requesting and/or delivering audio data. */ +#define MA_STATE_STARTING 3 /* Transitioning from a stopped state to started. */ +#define MA_STATE_STOPPING 4 /* Transitioning from a started state to stopped. */ + +#ifdef MA_SUPPORT_WASAPI +/* We need a IMMNotificationClient object for WASAPI. */ +typedef struct +{ + void* lpVtbl; + ma_uint32 counter; + ma_device* pDevice; +} ma_IMMNotificationClient; +#endif + +/* Backend enums must be in priority order. */ +typedef enum +{ + ma_backend_wasapi, + ma_backend_dsound, + ma_backend_winmm, + ma_backend_coreaudio, + ma_backend_sndio, + ma_backend_audio4, + ma_backend_oss, + ma_backend_pulseaudio, + ma_backend_alsa, + ma_backend_jack, + ma_backend_aaudio, + ma_backend_opensl, + ma_backend_webaudio, + ma_backend_custom, /* <-- Custom backend, with callbacks defined by the context config. */ + ma_backend_null /* <-- Must always be the last item. Lowest priority, and used as the terminator for backend enumeration. */ +} ma_backend; + +#define MA_BACKEND_COUNT (ma_backend_null+1) + + +/* +The callback for processing audio data from the device. + +The data callback is fired by miniaudio whenever the device needs to have more data delivered to a playback device, or when a capture device has some data +available. This is called as soon as the backend asks for more data which means it may be called with inconsistent frame counts. You cannot assume the +callback will be fired with a consistent frame count. + + +Parameters +---------- +pDevice (in) + A pointer to the relevant device. + +pOutput (out) + A pointer to the output buffer that will receive audio data that will later be played back through the speakers. This will be non-null for a playback or + full-duplex device and null for a capture and loopback device. + +pInput (in) + A pointer to the buffer containing input data from a recording device. This will be non-null for a capture, full-duplex or loopback device and null for a + playback device. + +frameCount (in) + The number of PCM frames to process. Note that this will not necessarily be equal to what you requested when you initialized the device. The + `periodSizeInFrames` and `periodSizeInMilliseconds` members of the device config are just hints, and are not necessarily exactly what you'll get. You must + not assume this will always be the same value each time the callback is fired. + + +Remarks +------- +You cannot stop and start the device from inside the callback or else you'll get a deadlock. You must also not uninitialize the device from inside the +callback. The following APIs cannot be called from inside the callback: + + ma_device_init() + ma_device_init_ex() + ma_device_uninit() + ma_device_start() + ma_device_stop() + +The proper way to stop the device is to call `ma_device_stop()` from a different thread, normally the main application thread. +*/ +typedef void (* ma_device_callback_proc)(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount); + +/* +The callback for when the device has been stopped. + +This will be called when the device is stopped explicitly with `ma_device_stop()` and also called implicitly when the device is stopped through external forces +such as being unplugged or an internal error occuring. + + +Parameters +---------- +pDevice (in) + A pointer to the device that has just stopped. + + +Remarks +------- +Do not restart or uninitialize the device from the callback. +*/ +typedef void (* ma_stop_proc)(ma_device* pDevice); + +/* +The callback for handling log messages. + + +Parameters +---------- +pContext (in) + A pointer to the context the log message originated from. + +pDevice (in) + A pointer to the device the log message originate from, if any. This can be null, in which case the message came from the context. + +logLevel (in) + The log level. This can be one of the following: + + +----------------------+ + | Log Level | + +----------------------+ + | MA_LOG_LEVEL_VERBOSE | + | MA_LOG_LEVEL_INFO | + | MA_LOG_LEVEL_WARNING | + | MA_LOG_LEVEL_ERROR | + +----------------------+ + +message (in) + The log message. + + +Remarks +------- +Do not modify the state of the device from inside the callback. +*/ +typedef void (* ma_log_proc)(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message); + +typedef enum +{ + ma_device_type_playback = 1, + ma_device_type_capture = 2, + ma_device_type_duplex = ma_device_type_playback | ma_device_type_capture, /* 3 */ + ma_device_type_loopback = 4 +} ma_device_type; + +typedef enum +{ + ma_share_mode_shared = 0, + ma_share_mode_exclusive +} ma_share_mode; + +/* iOS/tvOS/watchOS session categories. */ +typedef enum +{ + ma_ios_session_category_default = 0, /* AVAudioSessionCategoryPlayAndRecord with AVAudioSessionCategoryOptionDefaultToSpeaker. */ + ma_ios_session_category_none, /* Leave the session category unchanged. */ + ma_ios_session_category_ambient, /* AVAudioSessionCategoryAmbient */ + ma_ios_session_category_solo_ambient, /* AVAudioSessionCategorySoloAmbient */ + ma_ios_session_category_playback, /* AVAudioSessionCategoryPlayback */ + ma_ios_session_category_record, /* AVAudioSessionCategoryRecord */ + ma_ios_session_category_play_and_record, /* AVAudioSessionCategoryPlayAndRecord */ + ma_ios_session_category_multi_route /* AVAudioSessionCategoryMultiRoute */ +} ma_ios_session_category; + +/* iOS/tvOS/watchOS session category options */ +typedef enum +{ + ma_ios_session_category_option_mix_with_others = 0x01, /* AVAudioSessionCategoryOptionMixWithOthers */ + ma_ios_session_category_option_duck_others = 0x02, /* AVAudioSessionCategoryOptionDuckOthers */ + ma_ios_session_category_option_allow_bluetooth = 0x04, /* AVAudioSessionCategoryOptionAllowBluetooth */ + ma_ios_session_category_option_default_to_speaker = 0x08, /* AVAudioSessionCategoryOptionDefaultToSpeaker */ + ma_ios_session_category_option_interrupt_spoken_audio_and_mix_with_others = 0x11, /* AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers */ + ma_ios_session_category_option_allow_bluetooth_a2dp = 0x20, /* AVAudioSessionCategoryOptionAllowBluetoothA2DP */ + ma_ios_session_category_option_allow_air_play = 0x40, /* AVAudioSessionCategoryOptionAllowAirPlay */ +} ma_ios_session_category_option; + +/* OpenSL stream types. */ +typedef enum +{ + ma_opensl_stream_type_default = 0, /* Leaves the stream type unset. */ + ma_opensl_stream_type_voice, /* SL_ANDROID_STREAM_VOICE */ + ma_opensl_stream_type_system, /* SL_ANDROID_STREAM_SYSTEM */ + ma_opensl_stream_type_ring, /* SL_ANDROID_STREAM_RING */ + ma_opensl_stream_type_media, /* SL_ANDROID_STREAM_MEDIA */ + ma_opensl_stream_type_alarm, /* SL_ANDROID_STREAM_ALARM */ + ma_opensl_stream_type_notification /* SL_ANDROID_STREAM_NOTIFICATION */ +} ma_opensl_stream_type; + +/* OpenSL recording presets. */ +typedef enum +{ + ma_opensl_recording_preset_default = 0, /* Leaves the input preset unset. */ + ma_opensl_recording_preset_generic, /* SL_ANDROID_RECORDING_PRESET_GENERIC */ + ma_opensl_recording_preset_camcorder, /* SL_ANDROID_RECORDING_PRESET_CAMCORDER */ + ma_opensl_recording_preset_voice_recognition, /* SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION */ + ma_opensl_recording_preset_voice_communication, /* SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION */ + ma_opensl_recording_preset_voice_unprocessed /* SL_ANDROID_RECORDING_PRESET_UNPROCESSED */ +} ma_opensl_recording_preset; + +/* AAudio usage types. */ +typedef enum +{ + ma_aaudio_usage_default = 0, /* Leaves the usage type unset. */ + ma_aaudio_usage_announcement, /* AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT */ + ma_aaudio_usage_emergency, /* AAUDIO_SYSTEM_USAGE_EMERGENCY */ + ma_aaudio_usage_safety, /* AAUDIO_SYSTEM_USAGE_SAFETY */ + ma_aaudio_usage_vehicle_status, /* AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS */ + ma_aaudio_usage_alarm, /* AAUDIO_USAGE_ALARM */ + ma_aaudio_usage_assistance_accessibility, /* AAUDIO_USAGE_ASSISTANCE_ACCESSIBILITY */ + ma_aaudio_usage_assistance_navigation_guidance, /* AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE */ + ma_aaudio_usage_assistance_sonification, /* AAUDIO_USAGE_ASSISTANCE_SONIFICATION */ + ma_aaudio_usage_assitant, /* AAUDIO_USAGE_ASSISTANT */ + ma_aaudio_usage_game, /* AAUDIO_USAGE_GAME */ + ma_aaudio_usage_media, /* AAUDIO_USAGE_MEDIA */ + ma_aaudio_usage_notification, /* AAUDIO_USAGE_NOTIFICATION */ + ma_aaudio_usage_notification_event, /* AAUDIO_USAGE_NOTIFICATION_EVENT */ + ma_aaudio_usage_notification_ringtone, /* AAUDIO_USAGE_NOTIFICATION_RINGTONE */ + ma_aaudio_usage_voice_communication, /* AAUDIO_USAGE_VOICE_COMMUNICATION */ + ma_aaudio_usage_voice_communication_signalling /* AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING */ +} ma_aaudio_usage; + +/* AAudio content types. */ +typedef enum +{ + ma_aaudio_content_type_default = 0, /* Leaves the content type unset. */ + ma_aaudio_content_type_movie, /* AAUDIO_CONTENT_TYPE_MOVIE */ + ma_aaudio_content_type_music, /* AAUDIO_CONTENT_TYPE_MUSIC */ + ma_aaudio_content_type_sonification, /* AAUDIO_CONTENT_TYPE_SONIFICATION */ + ma_aaudio_content_type_speech /* AAUDIO_CONTENT_TYPE_SPEECH */ +} ma_aaudio_content_type; + +/* AAudio input presets. */ +typedef enum +{ + ma_aaudio_input_preset_default = 0, /* Leaves the input preset unset. */ + ma_aaudio_input_preset_generic, /* AAUDIO_INPUT_PRESET_GENERIC */ + ma_aaudio_input_preset_camcorder, /* AAUDIO_INPUT_PRESET_CAMCORDER */ + ma_aaudio_input_preset_unprocessed, /* AAUDIO_INPUT_PRESET_UNPROCESSED */ + ma_aaudio_input_preset_voice_recognition, /* AAUDIO_INPUT_PRESET_VOICE_RECOGNITION */ + ma_aaudio_input_preset_voice_communication, /* AAUDIO_INPUT_PRESET_VOICE_COMMUNICATION */ + ma_aaudio_input_preset_voice_performance /* AAUDIO_INPUT_PRESET_VOICE_PERFORMANCE */ +} ma_aaudio_input_preset; + + +typedef union +{ + ma_int64 counter; + double counterD; +} ma_timer; + +typedef union +{ + wchar_t wasapi[64]; /* WASAPI uses a wchar_t string for identification. */ + ma_uint8 dsound[16]; /* DirectSound uses a GUID for identification. */ + /*UINT_PTR*/ ma_uint32 winmm; /* When creating a device, WinMM expects a Win32 UINT_PTR for device identification. In practice it's actually just a UINT. */ + char alsa[256]; /* ALSA uses a name string for identification. */ + char pulse[256]; /* PulseAudio uses a name string for identification. */ + int jack; /* JACK always uses default devices. */ + char coreaudio[256]; /* Core Audio uses a string for identification. */ + char sndio[256]; /* "snd/0", etc. */ + char audio4[256]; /* "/dev/audio", etc. */ + char oss[64]; /* "dev/dsp0", etc. "dev/dsp" for the default device. */ + ma_int32 aaudio; /* AAudio uses a 32-bit integer for identification. */ + ma_uint32 opensl; /* OpenSL|ES uses a 32-bit unsigned integer for identification. */ + char webaudio[32]; /* Web Audio always uses default devices for now, but if this changes it'll be a GUID. */ + union + { + int i; + char s[256]; + void* p; + } custom; /* The custom backend could be anything. Give them a few options. */ + int nullbackend; /* The null backend uses an integer for device IDs. */ +} ma_device_id; + + +typedef struct ma_context_config ma_context_config; +typedef struct ma_device_config ma_device_config; +typedef struct ma_backend_callbacks ma_backend_callbacks; + +#define MA_DATA_FORMAT_FLAG_EXCLUSIVE_MODE (1U << 1) /* If set, this is supported in exclusive mode. Otherwise not natively supported by exclusive mode. */ + +typedef struct +{ + /* Basic info. This is the only information guaranteed to be filled in during device enumeration. */ + ma_device_id id; + char name[256]; + ma_bool32 isDefault; + + /* + Detailed info. As much of this is filled as possible with ma_context_get_device_info(). Note that you are allowed to initialize + a device with settings outside of this range, but it just means the data will be converted using miniaudio's data conversion + pipeline before sending the data to/from the device. Most programs will need to not worry about these values, but it's provided + here mainly for informational purposes or in the rare case that someone might find it useful. + + These will be set to 0 when returned by ma_context_enumerate_devices() or ma_context_get_devices(). + */ + ma_uint32 formatCount; + ma_format formats[ma_format_count]; + ma_uint32 minChannels; + ma_uint32 maxChannels; + ma_uint32 minSampleRate; + ma_uint32 maxSampleRate; + + + /* Experimental. Don't use these right now. */ + ma_uint32 nativeDataFormatCount; + struct + { + ma_format format; /* Sample format. If set to ma_format_unknown, all sample formats are supported. */ + ma_uint32 channels; /* If set to 0, all channels are supported. */ + ma_uint32 sampleRate; /* If set to 0, all sample rates are supported. */ + ma_uint32 flags; /* A combination of MA_DATA_FORMAT_FLAG_* flags. */ + } nativeDataFormats[/*ma_format_count * ma_standard_sample_rate_count * MA_MAX_CHANNELS*/ 64]; /* Not sure how big to make this. There can be *many* permutations for virtual devices which can support anything. */ +} ma_device_info; + +struct ma_device_config +{ + ma_device_type deviceType; + ma_uint32 sampleRate; + ma_uint32 periodSizeInFrames; + ma_uint32 periodSizeInMilliseconds; + ma_uint32 periods; + ma_performance_profile performanceProfile; + ma_bool8 noPreZeroedOutputBuffer; /* When set to true, the contents of the output buffer passed into the data callback will be left undefined rather than initialized to zero. */ + ma_bool8 noClip; /* When set to true, the contents of the output buffer passed into the data callback will be clipped after returning. Only applies when the playback sample format is f32. */ + ma_device_callback_proc dataCallback; + ma_stop_proc stopCallback; + void* pUserData; + struct + { + ma_resample_algorithm algorithm; + struct + { + ma_uint32 lpfOrder; + } linear; + struct + { + int quality; + } speex; + } resampling; + struct + { + const ma_device_id* pDeviceID; + ma_format format; + ma_uint32 channels; + ma_channel channelMap[MA_MAX_CHANNELS]; + ma_channel_mix_mode channelMixMode; + ma_share_mode shareMode; + } playback; + struct + { + const ma_device_id* pDeviceID; + ma_format format; + ma_uint32 channels; + ma_channel channelMap[MA_MAX_CHANNELS]; + ma_channel_mix_mode channelMixMode; + ma_share_mode shareMode; + } capture; + + struct + { + ma_bool8 noAutoConvertSRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ + ma_bool8 noDefaultQualitySRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ + ma_bool8 noAutoStreamRouting; /* Disables automatic stream routing. */ + ma_bool8 noHardwareOffloading; /* Disables WASAPI's hardware offloading feature. */ + } wasapi; + struct + { + ma_bool32 noMMap; /* Disables MMap mode. */ + ma_bool32 noAutoFormat; /* Opens the ALSA device with SND_PCM_NO_AUTO_FORMAT. */ + ma_bool32 noAutoChannels; /* Opens the ALSA device with SND_PCM_NO_AUTO_CHANNELS. */ + ma_bool32 noAutoResample; /* Opens the ALSA device with SND_PCM_NO_AUTO_RESAMPLE. */ + } alsa; + struct + { + const char* pStreamNamePlayback; + const char* pStreamNameCapture; + } pulse; + struct + { + ma_bool32 allowNominalSampleRateChange; /* Desktop only. When enabled, allows changing of the sample rate at the operating system level. */ + } coreaudio; + struct + { + ma_opensl_stream_type streamType; + ma_opensl_recording_preset recordingPreset; + } opensl; + struct + { + ma_aaudio_usage usage; + ma_aaudio_content_type contentType; + ma_aaudio_input_preset inputPreset; + } aaudio; +}; + + +/* +The callback for handling device enumeration. This is fired from `ma_context_enumerated_devices()`. + + +Parameters +---------- +pContext (in) + A pointer to the context performing the enumeration. + +deviceType (in) + The type of the device being enumerated. This will always be either `ma_device_type_playback` or `ma_device_type_capture`. + +pInfo (in) + A pointer to a `ma_device_info` containing the ID and name of the enumerated device. Note that this will not include detailed information about the device, + only basic information (ID and name). The reason for this is that it would otherwise require opening the backend device to probe for the information which + is too inefficient. + +pUserData (in) + The user data pointer passed into `ma_context_enumerate_devices()`. +*/ +typedef ma_bool32 (* ma_enum_devices_callback_proc)(ma_context* pContext, ma_device_type deviceType, const ma_device_info* pInfo, void* pUserData); + + +/* +Describes some basic details about a playback or capture device. +*/ +typedef struct +{ + const ma_device_id* pDeviceID; + ma_share_mode shareMode; + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_channel channelMap[MA_MAX_CHANNELS]; + ma_uint32 periodSizeInFrames; + ma_uint32 periodSizeInMilliseconds; + ma_uint32 periodCount; +} ma_device_descriptor; + +/* +These are the callbacks required to be implemented for a backend. These callbacks are grouped into two parts: context and device. There is one context +to many devices. A device is created from a context. + +The general flow goes like this: + + 1) A context is created with `onContextInit()` + 1a) Available devices can be enumerated with `onContextEnumerateDevices()` if required. + 1b) Detailed information about a device can be queried with `onContextGetDeviceInfo()` if required. + 2) A device is created from the context that was created in the first step using `onDeviceInit()`, and optionally a device ID that was + selected from device enumeration via `onContextEnumerateDevices()`. + 3) A device is started or stopped with `onDeviceStart()` / `onDeviceStop()` + 4) Data is delivered to and from the device by the backend. This is always done based on the native format returned by the prior call + to `onDeviceInit()`. Conversion between the device's native format and the format requested by the application will be handled by + miniaudio internally. + +Initialization of the context is quite simple. You need to do any necessary initialization of internal objects and then output the +callbacks defined in this structure. + +Once the context has been initialized you can initialize a device. Before doing so, however, the application may want to know which +physical devices are available. This is where `onContextEnumerateDevices()` comes in. This is fairly simple. For each device, fire the +given callback with, at a minimum, the basic information filled out in `ma_device_info`. When the callback returns `MA_FALSE`, enumeration +needs to stop and the `onContextEnumerateDevices()` function return with a success code. + +Detailed device information can be retrieved from a device ID using `onContextGetDeviceInfo()`. This takes as input the device type and ID, +and on output returns detailed information about the device in `ma_device_info`. The `onContextGetDeviceInfo()` callback must handle the +case when the device ID is NULL, in which case information about the default device needs to be retrieved. + +Once the context has been created and the device ID retrieved (if using anything other than the default device), the device can be created. +This is a little bit more complicated than initialization of the context due to it's more complicated configuration. When initializing a +device, a duplex device may be requested. This means a separate data format needs to be specified for both playback and capture. On input, +the data format is set to what the application wants. On output it's set to the native format which should match as closely as possible to +the requested format. The conversion between the format requested by the application and the device's native format will be handled +internally by miniaudio. + +On input, if the sample format is set to `ma_format_unknown`, the backend is free to use whatever sample format it desires, so long as it's +supported by miniaudio. When the channel count is set to 0, the backend should use the device's native channel count. The same applies for +sample rate. For the channel map, the default should be used when `ma_channel_map_blank()` returns true (all channels set to +`MA_CHANNEL_NONE`). On input, the `periodSizeInFrames` or `periodSizeInMilliseconds` option should always be set. The backend should +inspect both of these variables. If `periodSizeInFrames` is set, it should take priority, otherwise it needs to be derived from the period +size in milliseconds (`periodSizeInMilliseconds`) and the sample rate, keeping in mind that the sample rate may be 0, in which case the +sample rate will need to be determined before calculating the period size in frames. On output, all members of the `ma_device_data_format` +object should be set to a valid value, except for `periodSizeInMilliseconds` which is optional (`periodSizeInFrames` *must* be set). + +Starting and stopping of the device is done with `onDeviceStart()` and `onDeviceStop()` and should be self-explanatory. If the backend uses +asynchronous reading and writing, `onDeviceStart()` and `onDeviceStop()` should always be implemented. + +The handling of data delivery between the application and the device is the most complicated part of the process. To make this a bit +easier, some helper callbacks are available. If the backend uses a blocking read/write style of API, the `onDeviceRead()` and +`onDeviceWrite()` callbacks can optionally be implemented. These are blocking and work just like reading and writing from a file. If the +backend uses a callback for data delivery, that callback must call `ma_device_handle_backend_data_callback()` from within it's callback. +This allows miniaudio to then process any necessary data conversion and then pass it to the miniaudio data callback. + +If the backend requires absolute flexibility with it's data delivery, it can optionally implement the `onDeviceDataLoop()` callback +which will allow it to implement the logic that will run on the audio thread. This is much more advanced and is completely optional. + +The audio thread should run data delivery logic in a loop while `ma_device_get_state() == MA_STATE_STARTED` and no errors have been +encounted. Do not start or stop the device here. That will be handled from outside the `onDeviceDataLoop()` callback. + +The invocation of the `onDeviceDataLoop()` callback will be handled by miniaudio. When you start the device, miniaudio will fire this +callback. When the device is stopped, the `ma_device_get_state() == MA_STATE_STARTED` condition will fail and the loop will be terminated +which will then fall through to the part that stops the device. For an example on how to implement the `onDeviceDataLoop()` callback, +look at `ma_device_audio_thread__default_read_write()`. Implement the `onDeviceDataLoopWakeup()` callback if you need a mechanism to +wake up the audio thread. +*/ +struct ma_backend_callbacks +{ + ma_result (* onContextInit)(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks); + ma_result (* onContextUninit)(ma_context* pContext); + ma_result (* onContextEnumerateDevices)(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData); + ma_result (* onContextGetDeviceInfo)(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo); + ma_result (* onDeviceInit)(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture); + ma_result (* onDeviceUninit)(ma_device* pDevice); + ma_result (* onDeviceStart)(ma_device* pDevice); + ma_result (* onDeviceStop)(ma_device* pDevice); + ma_result (* onDeviceRead)(ma_device* pDevice, void* pFrames, ma_uint32 frameCount, ma_uint32* pFramesRead); + ma_result (* onDeviceWrite)(ma_device* pDevice, const void* pFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten); + ma_result (* onDeviceDataLoop)(ma_device* pDevice); + ma_result (* onDeviceDataLoopWakeup)(ma_device* pDevice); +}; + +struct ma_context_config +{ + ma_log_proc logCallback; + ma_thread_priority threadPriority; + size_t threadStackSize; + void* pUserData; + ma_allocation_callbacks allocationCallbacks; + struct + { + ma_bool32 useVerboseDeviceEnumeration; + } alsa; + struct + { + const char* pApplicationName; + const char* pServerName; + ma_bool32 tryAutoSpawn; /* Enables autospawning of the PulseAudio daemon if necessary. */ + } pulse; + struct + { + ma_ios_session_category sessionCategory; + ma_uint32 sessionCategoryOptions; + ma_bool32 noAudioSessionActivate; /* iOS only. When set to true, does not perform an explicit [[AVAudioSession sharedInstace] setActive:true] on initialization. */ + ma_bool32 noAudioSessionDeactivate; /* iOS only. When set to true, does not perform an explicit [[AVAudioSession sharedInstace] setActive:false] on uninitialization. */ + } coreaudio; + struct + { + const char* pClientName; + ma_bool32 tryStartServer; + } jack; + ma_backend_callbacks custom; +}; + +/* WASAPI specific structure for some commands which must run on a common thread due to bugs in WASAPI. */ +typedef struct +{ + int code; + ma_event* pEvent; /* This will be signalled when the event is complete. */ + union + { + struct + { + int _unused; + } quit; + struct + { + ma_device_type deviceType; + void* pAudioClient; + void** ppAudioClientService; + ma_result* pResult; /* The result from creating the audio client service. */ + } createAudioClient; + struct + { + ma_device* pDevice; + ma_device_type deviceType; + } releaseAudioClient; + } data; +} ma_context_command__wasapi; + +struct ma_context +{ + ma_backend_callbacks callbacks; + ma_backend backend; /* DirectSound, ALSA, etc. */ + ma_log_proc logCallback; + ma_thread_priority threadPriority; + size_t threadStackSize; + void* pUserData; + ma_allocation_callbacks allocationCallbacks; + ma_mutex deviceEnumLock; /* Used to make ma_context_get_devices() thread safe. */ + ma_mutex deviceInfoLock; /* Used to make ma_context_get_device_info() thread safe. */ + ma_uint32 deviceInfoCapacity; /* Total capacity of pDeviceInfos. */ + ma_uint32 playbackDeviceInfoCount; + ma_uint32 captureDeviceInfoCount; + ma_device_info* pDeviceInfos; /* Playback devices first, then capture. */ + + union + { +#ifdef MA_SUPPORT_WASAPI + struct + { + ma_thread commandThread; + ma_mutex commandLock; + ma_semaphore commandSem; + ma_uint32 commandIndex; + ma_uint32 commandCount; + ma_context_command__wasapi commands[4]; + } wasapi; +#endif +#ifdef MA_SUPPORT_DSOUND + struct + { + ma_handle hDSoundDLL; + ma_proc DirectSoundCreate; + ma_proc DirectSoundEnumerateA; + ma_proc DirectSoundCaptureCreate; + ma_proc DirectSoundCaptureEnumerateA; + } dsound; +#endif +#ifdef MA_SUPPORT_WINMM + struct + { + ma_handle hWinMM; + ma_proc waveOutGetNumDevs; + ma_proc waveOutGetDevCapsA; + ma_proc waveOutOpen; + ma_proc waveOutClose; + ma_proc waveOutPrepareHeader; + ma_proc waveOutUnprepareHeader; + ma_proc waveOutWrite; + ma_proc waveOutReset; + ma_proc waveInGetNumDevs; + ma_proc waveInGetDevCapsA; + ma_proc waveInOpen; + ma_proc waveInClose; + ma_proc waveInPrepareHeader; + ma_proc waveInUnprepareHeader; + ma_proc waveInAddBuffer; + ma_proc waveInStart; + ma_proc waveInReset; + } winmm; +#endif +#ifdef MA_SUPPORT_ALSA + struct + { + ma_handle asoundSO; + ma_proc snd_pcm_open; + ma_proc snd_pcm_close; + ma_proc snd_pcm_hw_params_sizeof; + ma_proc snd_pcm_hw_params_any; + ma_proc snd_pcm_hw_params_set_format; + ma_proc snd_pcm_hw_params_set_format_first; + ma_proc snd_pcm_hw_params_get_format_mask; + ma_proc snd_pcm_hw_params_set_channels; + ma_proc snd_pcm_hw_params_set_channels_near; + ma_proc snd_pcm_hw_params_set_channels_minmax; + ma_proc snd_pcm_hw_params_set_rate_resample; + ma_proc snd_pcm_hw_params_set_rate; + ma_proc snd_pcm_hw_params_set_rate_near; + ma_proc snd_pcm_hw_params_set_buffer_size_near; + ma_proc snd_pcm_hw_params_set_periods_near; + ma_proc snd_pcm_hw_params_set_access; + ma_proc snd_pcm_hw_params_get_format; + ma_proc snd_pcm_hw_params_get_channels; + ma_proc snd_pcm_hw_params_get_channels_min; + ma_proc snd_pcm_hw_params_get_channels_max; + ma_proc snd_pcm_hw_params_get_rate; + ma_proc snd_pcm_hw_params_get_rate_min; + ma_proc snd_pcm_hw_params_get_rate_max; + ma_proc snd_pcm_hw_params_get_buffer_size; + ma_proc snd_pcm_hw_params_get_periods; + ma_proc snd_pcm_hw_params_get_access; + ma_proc snd_pcm_hw_params_test_format; + ma_proc snd_pcm_hw_params_test_channels; + ma_proc snd_pcm_hw_params_test_rate; + ma_proc snd_pcm_hw_params; + ma_proc snd_pcm_sw_params_sizeof; + ma_proc snd_pcm_sw_params_current; + ma_proc snd_pcm_sw_params_get_boundary; + ma_proc snd_pcm_sw_params_set_avail_min; + ma_proc snd_pcm_sw_params_set_start_threshold; + ma_proc snd_pcm_sw_params_set_stop_threshold; + ma_proc snd_pcm_sw_params; + ma_proc snd_pcm_format_mask_sizeof; + ma_proc snd_pcm_format_mask_test; + ma_proc snd_pcm_get_chmap; + ma_proc snd_pcm_state; + ma_proc snd_pcm_prepare; + ma_proc snd_pcm_start; + ma_proc snd_pcm_drop; + ma_proc snd_pcm_drain; + ma_proc snd_pcm_reset; + ma_proc snd_device_name_hint; + ma_proc snd_device_name_get_hint; + ma_proc snd_card_get_index; + ma_proc snd_device_name_free_hint; + ma_proc snd_pcm_mmap_begin; + ma_proc snd_pcm_mmap_commit; + ma_proc snd_pcm_recover; + ma_proc snd_pcm_readi; + ma_proc snd_pcm_writei; + ma_proc snd_pcm_avail; + ma_proc snd_pcm_avail_update; + ma_proc snd_pcm_wait; + ma_proc snd_pcm_nonblock; + ma_proc snd_pcm_info; + ma_proc snd_pcm_info_sizeof; + ma_proc snd_pcm_info_get_name; + ma_proc snd_pcm_poll_descriptors; + ma_proc snd_pcm_poll_descriptors_count; + ma_proc snd_pcm_poll_descriptors_revents; + ma_proc snd_config_update_free_global; + + ma_mutex internalDeviceEnumLock; + ma_bool32 useVerboseDeviceEnumeration; + } alsa; +#endif +#ifdef MA_SUPPORT_PULSEAUDIO + struct + { + ma_handle pulseSO; + ma_proc pa_mainloop_new; + ma_proc pa_mainloop_free; + ma_proc pa_mainloop_quit; + ma_proc pa_mainloop_get_api; + ma_proc pa_mainloop_iterate; + ma_proc pa_mainloop_wakeup; + ma_proc pa_threaded_mainloop_new; + ma_proc pa_threaded_mainloop_free; + ma_proc pa_threaded_mainloop_start; + ma_proc pa_threaded_mainloop_stop; + ma_proc pa_threaded_mainloop_lock; + ma_proc pa_threaded_mainloop_unlock; + ma_proc pa_threaded_mainloop_wait; + ma_proc pa_threaded_mainloop_signal; + ma_proc pa_threaded_mainloop_accept; + ma_proc pa_threaded_mainloop_get_retval; + ma_proc pa_threaded_mainloop_get_api; + ma_proc pa_threaded_mainloop_in_thread; + ma_proc pa_threaded_mainloop_set_name; + ma_proc pa_context_new; + ma_proc pa_context_unref; + ma_proc pa_context_connect; + ma_proc pa_context_disconnect; + ma_proc pa_context_set_state_callback; + ma_proc pa_context_get_state; + ma_proc pa_context_get_sink_info_list; + ma_proc pa_context_get_source_info_list; + ma_proc pa_context_get_sink_info_by_name; + ma_proc pa_context_get_source_info_by_name; + ma_proc pa_operation_unref; + ma_proc pa_operation_get_state; + ma_proc pa_channel_map_init_extend; + ma_proc pa_channel_map_valid; + ma_proc pa_channel_map_compatible; + ma_proc pa_stream_new; + ma_proc pa_stream_unref; + ma_proc pa_stream_connect_playback; + ma_proc pa_stream_connect_record; + ma_proc pa_stream_disconnect; + ma_proc pa_stream_get_state; + ma_proc pa_stream_get_sample_spec; + ma_proc pa_stream_get_channel_map; + ma_proc pa_stream_get_buffer_attr; + ma_proc pa_stream_set_buffer_attr; + ma_proc pa_stream_get_device_name; + ma_proc pa_stream_set_write_callback; + ma_proc pa_stream_set_read_callback; + ma_proc pa_stream_flush; + ma_proc pa_stream_drain; + ma_proc pa_stream_is_corked; + ma_proc pa_stream_cork; + ma_proc pa_stream_trigger; + ma_proc pa_stream_begin_write; + ma_proc pa_stream_write; + ma_proc pa_stream_peek; + ma_proc pa_stream_drop; + ma_proc pa_stream_writable_size; + ma_proc pa_stream_readable_size; + + /*pa_mainloop**/ ma_ptr pMainLoop; + /*pa_context**/ ma_ptr pPulseContext; + } pulse; +#endif +#ifdef MA_SUPPORT_JACK + struct + { + ma_handle jackSO; + ma_proc jack_client_open; + ma_proc jack_client_close; + ma_proc jack_client_name_size; + ma_proc jack_set_process_callback; + ma_proc jack_set_buffer_size_callback; + ma_proc jack_on_shutdown; + ma_proc jack_get_sample_rate; + ma_proc jack_get_buffer_size; + ma_proc jack_get_ports; + ma_proc jack_activate; + ma_proc jack_deactivate; + ma_proc jack_connect; + ma_proc jack_port_register; + ma_proc jack_port_name; + ma_proc jack_port_get_buffer; + ma_proc jack_free; + + char* pClientName; + ma_bool32 tryStartServer; + } jack; +#endif +#ifdef MA_SUPPORT_COREAUDIO + struct + { + ma_handle hCoreFoundation; + ma_proc CFStringGetCString; + ma_proc CFRelease; + + ma_handle hCoreAudio; + ma_proc AudioObjectGetPropertyData; + ma_proc AudioObjectGetPropertyDataSize; + ma_proc AudioObjectSetPropertyData; + ma_proc AudioObjectAddPropertyListener; + ma_proc AudioObjectRemovePropertyListener; + + ma_handle hAudioUnit; /* Could possibly be set to AudioToolbox on later versions of macOS. */ + ma_proc AudioComponentFindNext; + ma_proc AudioComponentInstanceDispose; + ma_proc AudioComponentInstanceNew; + ma_proc AudioOutputUnitStart; + ma_proc AudioOutputUnitStop; + ma_proc AudioUnitAddPropertyListener; + ma_proc AudioUnitGetPropertyInfo; + ma_proc AudioUnitGetProperty; + ma_proc AudioUnitSetProperty; + ma_proc AudioUnitInitialize; + ma_proc AudioUnitRender; + + /*AudioComponent*/ ma_ptr component; + ma_bool32 noAudioSessionDeactivate; /* For tracking whether or not the iOS audio session should be explicitly deactivated. Set from the config in ma_context_init__coreaudio(). */ + } coreaudio; +#endif +#ifdef MA_SUPPORT_SNDIO + struct + { + ma_handle sndioSO; + ma_proc sio_open; + ma_proc sio_close; + ma_proc sio_setpar; + ma_proc sio_getpar; + ma_proc sio_getcap; + ma_proc sio_start; + ma_proc sio_stop; + ma_proc sio_read; + ma_proc sio_write; + ma_proc sio_onmove; + ma_proc sio_nfds; + ma_proc sio_pollfd; + ma_proc sio_revents; + ma_proc sio_eof; + ma_proc sio_setvol; + ma_proc sio_onvol; + ma_proc sio_initpar; + } sndio; +#endif +#ifdef MA_SUPPORT_AUDIO4 + struct + { + int _unused; + } audio4; +#endif +#ifdef MA_SUPPORT_OSS + struct + { + int versionMajor; + int versionMinor; + } oss; +#endif +#ifdef MA_SUPPORT_AAUDIO + struct + { + ma_handle hAAudio; /* libaaudio.so */ + ma_proc AAudio_createStreamBuilder; + ma_proc AAudioStreamBuilder_delete; + ma_proc AAudioStreamBuilder_setDeviceId; + ma_proc AAudioStreamBuilder_setDirection; + ma_proc AAudioStreamBuilder_setSharingMode; + ma_proc AAudioStreamBuilder_setFormat; + ma_proc AAudioStreamBuilder_setChannelCount; + ma_proc AAudioStreamBuilder_setSampleRate; + ma_proc AAudioStreamBuilder_setBufferCapacityInFrames; + ma_proc AAudioStreamBuilder_setFramesPerDataCallback; + ma_proc AAudioStreamBuilder_setDataCallback; + ma_proc AAudioStreamBuilder_setErrorCallback; + ma_proc AAudioStreamBuilder_setPerformanceMode; + ma_proc AAudioStreamBuilder_setUsage; + ma_proc AAudioStreamBuilder_setContentType; + ma_proc AAudioStreamBuilder_setInputPreset; + ma_proc AAudioStreamBuilder_openStream; + ma_proc AAudioStream_close; + ma_proc AAudioStream_getState; + ma_proc AAudioStream_waitForStateChange; + ma_proc AAudioStream_getFormat; + ma_proc AAudioStream_getChannelCount; + ma_proc AAudioStream_getSampleRate; + ma_proc AAudioStream_getBufferCapacityInFrames; + ma_proc AAudioStream_getFramesPerDataCallback; + ma_proc AAudioStream_getFramesPerBurst; + ma_proc AAudioStream_requestStart; + ma_proc AAudioStream_requestStop; + } aaudio; +#endif +#ifdef MA_SUPPORT_OPENSL + struct + { + ma_handle libOpenSLES; + ma_handle SL_IID_ENGINE; + ma_handle SL_IID_AUDIOIODEVICECAPABILITIES; + ma_handle SL_IID_ANDROIDSIMPLEBUFFERQUEUE; + ma_handle SL_IID_RECORD; + ma_handle SL_IID_PLAY; + ma_handle SL_IID_OUTPUTMIX; + ma_handle SL_IID_ANDROIDCONFIGURATION; + ma_proc slCreateEngine; + } opensl; +#endif +#ifdef MA_SUPPORT_WEBAUDIO + struct + { + int _unused; + } webaudio; +#endif +#ifdef MA_SUPPORT_NULL + struct + { + int _unused; + } null_backend; +#endif + }; + + union + { +#ifdef MA_WIN32 + struct + { + /*HMODULE*/ ma_handle hOle32DLL; + ma_proc CoInitializeEx; + ma_proc CoUninitialize; + ma_proc CoCreateInstance; + ma_proc CoTaskMemFree; + ma_proc PropVariantClear; + ma_proc StringFromGUID2; + + /*HMODULE*/ ma_handle hUser32DLL; + ma_proc GetForegroundWindow; + ma_proc GetDesktopWindow; + + /*HMODULE*/ ma_handle hAdvapi32DLL; + ma_proc RegOpenKeyExA; + ma_proc RegCloseKey; + ma_proc RegQueryValueExA; + } win32; +#endif +#ifdef MA_POSIX + struct + { + ma_handle pthreadSO; + ma_proc pthread_create; + ma_proc pthread_join; + ma_proc pthread_mutex_init; + ma_proc pthread_mutex_destroy; + ma_proc pthread_mutex_lock; + ma_proc pthread_mutex_unlock; + ma_proc pthread_cond_init; + ma_proc pthread_cond_destroy; + ma_proc pthread_cond_wait; + ma_proc pthread_cond_signal; + ma_proc pthread_attr_init; + ma_proc pthread_attr_destroy; + ma_proc pthread_attr_setschedpolicy; + ma_proc pthread_attr_getschedparam; + ma_proc pthread_attr_setschedparam; + } posix; +#endif + int _unused; + }; +}; + +struct ma_device +{ + ma_context* pContext; + ma_device_type type; + ma_uint32 sampleRate; + MA_ATOMIC ma_uint32 state; /* The state of the device is variable and can change at any time on any thread. Must be used atomically. */ + ma_device_callback_proc onData; /* Set once at initialization time and should not be changed after. */ + ma_stop_proc onStop; /* Set once at initialization time and should not be changed after. */ + void* pUserData; /* Application defined data. */ + ma_mutex startStopLock; + ma_event wakeupEvent; + ma_event startEvent; + ma_event stopEvent; + ma_thread thread; + ma_result workResult; /* This is set by the worker thread after it's finished doing a job. */ + ma_bool8 isOwnerOfContext; /* When set to true, uninitializing the device will also uninitialize the context. Set to true when NULL is passed into ma_device_init(). */ + ma_bool8 noPreZeroedOutputBuffer; + ma_bool8 noClip; + MA_ATOMIC float masterVolumeFactor; /* Linear 0..1. Can be read and written simultaneously by different threads. Must be used atomically. */ + ma_duplex_rb duplexRB; /* Intermediary buffer for duplex device on asynchronous backends. */ + struct + { + ma_resample_algorithm algorithm; + struct + { + ma_uint32 lpfOrder; + } linear; + struct + { + int quality; + } speex; + } resampling; + struct + { + ma_device_id id; /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */ + char name[256]; /* Maybe temporary. Likely to be replaced with a query API. */ + ma_share_mode shareMode; /* Set to whatever was passed in when the device was initialized. */ + ma_format format; + ma_uint32 channels; + ma_channel channelMap[MA_MAX_CHANNELS]; + ma_format internalFormat; + ma_uint32 internalChannels; + ma_uint32 internalSampleRate; + ma_channel internalChannelMap[MA_MAX_CHANNELS]; + ma_uint32 internalPeriodSizeInFrames; + ma_uint32 internalPeriods; + ma_channel_mix_mode channelMixMode; + ma_data_converter converter; + } playback; + struct + { + ma_device_id id; /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */ + char name[256]; /* Maybe temporary. Likely to be replaced with a query API. */ + ma_share_mode shareMode; /* Set to whatever was passed in when the device was initialized. */ + ma_format format; + ma_uint32 channels; + ma_channel channelMap[MA_MAX_CHANNELS]; + ma_format internalFormat; + ma_uint32 internalChannels; + ma_uint32 internalSampleRate; + ma_channel internalChannelMap[MA_MAX_CHANNELS]; + ma_uint32 internalPeriodSizeInFrames; + ma_uint32 internalPeriods; + ma_channel_mix_mode channelMixMode; + ma_data_converter converter; + } capture; + + union + { +#ifdef MA_SUPPORT_WASAPI + struct + { + /*IAudioClient**/ ma_ptr pAudioClientPlayback; + /*IAudioClient**/ ma_ptr pAudioClientCapture; + /*IAudioRenderClient**/ ma_ptr pRenderClient; + /*IAudioCaptureClient**/ ma_ptr pCaptureClient; + /*IMMDeviceEnumerator**/ ma_ptr pDeviceEnumerator; /* Used for IMMNotificationClient notifications. Required for detecting default device changes. */ + ma_IMMNotificationClient notificationClient; + /*HANDLE*/ ma_handle hEventPlayback; /* Auto reset. Initialized to signaled. */ + /*HANDLE*/ ma_handle hEventCapture; /* Auto reset. Initialized to unsignaled. */ + ma_uint32 actualPeriodSizeInFramesPlayback; /* Value from GetBufferSize(). internalPeriodSizeInFrames is not set to the _actual_ buffer size when low-latency shared mode is being used due to the way the IAudioClient3 API works. */ + ma_uint32 actualPeriodSizeInFramesCapture; + ma_uint32 originalPeriodSizeInFrames; + ma_uint32 originalPeriodSizeInMilliseconds; + ma_uint32 originalPeriods; + ma_performance_profile originalPerformanceProfile; + ma_uint32 periodSizeInFramesPlayback; + ma_uint32 periodSizeInFramesCapture; + MA_ATOMIC ma_bool32 isStartedCapture; /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ + MA_ATOMIC ma_bool32 isStartedPlayback; /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ + ma_bool8 noAutoConvertSRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ + ma_bool8 noDefaultQualitySRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ + ma_bool8 noHardwareOffloading; + ma_bool8 allowCaptureAutoStreamRouting; + ma_bool8 allowPlaybackAutoStreamRouting; + ma_bool8 isDetachedPlayback; + ma_bool8 isDetachedCapture; + } wasapi; +#endif +#ifdef MA_SUPPORT_DSOUND + struct + { + /*LPDIRECTSOUND*/ ma_ptr pPlayback; + /*LPDIRECTSOUNDBUFFER*/ ma_ptr pPlaybackPrimaryBuffer; + /*LPDIRECTSOUNDBUFFER*/ ma_ptr pPlaybackBuffer; + /*LPDIRECTSOUNDCAPTURE*/ ma_ptr pCapture; + /*LPDIRECTSOUNDCAPTUREBUFFER*/ ma_ptr pCaptureBuffer; + } dsound; +#endif +#ifdef MA_SUPPORT_WINMM + struct + { + /*HWAVEOUT*/ ma_handle hDevicePlayback; + /*HWAVEIN*/ ma_handle hDeviceCapture; + /*HANDLE*/ ma_handle hEventPlayback; + /*HANDLE*/ ma_handle hEventCapture; + ma_uint32 fragmentSizeInFrames; + ma_uint32 iNextHeaderPlayback; /* [0,periods). Used as an index into pWAVEHDRPlayback. */ + ma_uint32 iNextHeaderCapture; /* [0,periods). Used as an index into pWAVEHDRCapture. */ + ma_uint32 headerFramesConsumedPlayback; /* The number of PCM frames consumed in the buffer in pWAVEHEADER[iNextHeader]. */ + ma_uint32 headerFramesConsumedCapture; /* ^^^ */ + /*WAVEHDR**/ ma_uint8* pWAVEHDRPlayback; /* One instantiation for each period. */ + /*WAVEHDR**/ ma_uint8* pWAVEHDRCapture; /* One instantiation for each period. */ + ma_uint8* pIntermediaryBufferPlayback; + ma_uint8* pIntermediaryBufferCapture; + ma_uint8* _pHeapData; /* Used internally and is used for the heap allocated data for the intermediary buffer and the WAVEHDR structures. */ + } winmm; +#endif +#ifdef MA_SUPPORT_ALSA + struct + { + /*snd_pcm_t**/ ma_ptr pPCMPlayback; + /*snd_pcm_t**/ ma_ptr pPCMCapture; + /*struct pollfd**/ void* pPollDescriptorsPlayback; + /*struct pollfd**/ void* pPollDescriptorsCapture; + int pollDescriptorCountPlayback; + int pollDescriptorCountCapture; + int wakeupfdPlayback; /* eventfd for waking up from poll() when the playback device is stopped. */ + int wakeupfdCapture; /* eventfd for waking up from poll() when the capture device is stopped. */ + ma_bool8 isUsingMMapPlayback; + ma_bool8 isUsingMMapCapture; + } alsa; +#endif +#ifdef MA_SUPPORT_PULSEAUDIO + struct + { + /*pa_stream**/ ma_ptr pStreamPlayback; + /*pa_stream**/ ma_ptr pStreamCapture; + } pulse; +#endif +#ifdef MA_SUPPORT_JACK + struct + { + /*jack_client_t**/ ma_ptr pClient; + /*jack_port_t**/ ma_ptr pPortsPlayback[MA_MAX_CHANNELS]; + /*jack_port_t**/ ma_ptr pPortsCapture[MA_MAX_CHANNELS]; + float* pIntermediaryBufferPlayback; /* Typed as a float because JACK is always floating point. */ + float* pIntermediaryBufferCapture; + } jack; +#endif +#ifdef MA_SUPPORT_COREAUDIO + struct + { + ma_uint32 deviceObjectIDPlayback; + ma_uint32 deviceObjectIDCapture; + /*AudioUnit*/ ma_ptr audioUnitPlayback; + /*AudioUnit*/ ma_ptr audioUnitCapture; + /*AudioBufferList**/ ma_ptr pAudioBufferList; /* Only used for input devices. */ + ma_uint32 audioBufferCapInFrames; /* Only used for input devices. The capacity in frames of each buffer in pAudioBufferList. */ + ma_event stopEvent; + ma_uint32 originalPeriodSizeInFrames; + ma_uint32 originalPeriodSizeInMilliseconds; + ma_uint32 originalPeriods; + ma_performance_profile originalPerformanceProfile; + ma_bool32 isDefaultPlaybackDevice; + ma_bool32 isDefaultCaptureDevice; + ma_bool32 isSwitchingPlaybackDevice; /* <-- Set to true when the default device has changed and miniaudio is in the process of switching. */ + ma_bool32 isSwitchingCaptureDevice; /* <-- Set to true when the default device has changed and miniaudio is in the process of switching. */ + void* pRouteChangeHandler; /* Only used on mobile platforms. Obj-C object for handling route changes. */ + } coreaudio; +#endif +#ifdef MA_SUPPORT_SNDIO + struct + { + ma_ptr handlePlayback; + ma_ptr handleCapture; + ma_bool32 isStartedPlayback; + ma_bool32 isStartedCapture; + } sndio; +#endif +#ifdef MA_SUPPORT_AUDIO4 + struct + { + int fdPlayback; + int fdCapture; + } audio4; +#endif +#ifdef MA_SUPPORT_OSS + struct + { + int fdPlayback; + int fdCapture; + } oss; +#endif +#ifdef MA_SUPPORT_AAUDIO + struct + { + /*AAudioStream**/ ma_ptr pStreamPlayback; + /*AAudioStream**/ ma_ptr pStreamCapture; + } aaudio; +#endif +#ifdef MA_SUPPORT_OPENSL + struct + { + /*SLObjectItf*/ ma_ptr pOutputMixObj; + /*SLOutputMixItf*/ ma_ptr pOutputMix; + /*SLObjectItf*/ ma_ptr pAudioPlayerObj; + /*SLPlayItf*/ ma_ptr pAudioPlayer; + /*SLObjectItf*/ ma_ptr pAudioRecorderObj; + /*SLRecordItf*/ ma_ptr pAudioRecorder; + /*SLAndroidSimpleBufferQueueItf*/ ma_ptr pBufferQueuePlayback; + /*SLAndroidSimpleBufferQueueItf*/ ma_ptr pBufferQueueCapture; + ma_bool32 isDrainingCapture; + ma_bool32 isDrainingPlayback; + ma_uint32 currentBufferIndexPlayback; + ma_uint32 currentBufferIndexCapture; + ma_uint8* pBufferPlayback; /* This is malloc()'d and is used for storing audio data. Typed as ma_uint8 for easy offsetting. */ + ma_uint8* pBufferCapture; + } opensl; +#endif +#ifdef MA_SUPPORT_WEBAUDIO + struct + { + int indexPlayback; /* We use a factory on the JavaScript side to manage devices and use an index for JS/C interop. */ + int indexCapture; + } webaudio; +#endif +#ifdef MA_SUPPORT_NULL + struct + { + ma_thread deviceThread; + ma_event operationEvent; + ma_event operationCompletionEvent; + ma_semaphore operationSemaphore; + ma_uint32 operation; + ma_result operationResult; + ma_timer timer; + double priorRunTime; + ma_uint32 currentPeriodFramesRemainingPlayback; + ma_uint32 currentPeriodFramesRemainingCapture; + ma_uint64 lastProcessedFramePlayback; + ma_uint64 lastProcessedFrameCapture; + MA_ATOMIC ma_bool32 isStarted; /* Read and written by multiple threads. Must be used atomically, and must be 32-bit for compiler compatibility. */ + } null_device; +#endif + }; +}; +#if defined(_MSC_VER) && !defined(__clang__) + #pragma warning(pop) +#elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) + #pragma GCC diagnostic pop /* For ISO C99 doesn't support unnamed structs/unions [-Wpedantic] */ +#endif + +/* +Initializes a `ma_context_config` object. + + +Return Value +------------ +A `ma_context_config` initialized to defaults. + + +Remarks +------- +You must always use this to initialize the default state of the `ma_context_config` object. Not using this will result in your program breaking when miniaudio +is updated and new members are added to `ma_context_config`. It also sets logical defaults. + +You can override members of the returned object by changing it's members directly. + + +See Also +-------- +ma_context_init() +*/ +MA_API ma_context_config ma_context_config_init(void); + +/* +Initializes a context. + +The context is used for selecting and initializing an appropriate backend and to represent the backend at a more global level than that of an individual +device. There is one context to many devices, and a device is created from a context. A context is required to enumerate devices. + + +Parameters +---------- +backends (in, optional) + A list of backends to try initializing, in priority order. Can be NULL, in which case it uses default priority order. + +backendCount (in, optional) + The number of items in `backend`. Ignored if `backend` is NULL. + +pConfig (in, optional) + The context configuration. + +pContext (in) + A pointer to the context object being initialized. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Unsafe. Do not call this function across multiple threads as some backends read and write to global state. + + +Remarks +------- +When `backends` is NULL, the default priority order will be used. Below is a list of backends in priority order: + + |-------------|-----------------------|--------------------------------------------------------| + | Name | Enum Name | Supported Operating Systems | + |-------------|-----------------------|--------------------------------------------------------| + | WASAPI | ma_backend_wasapi | Windows Vista+ | + | DirectSound | ma_backend_dsound | Windows XP+ | + | WinMM | ma_backend_winmm | Windows XP+ (may work on older versions, but untested) | + | Core Audio | ma_backend_coreaudio | macOS, iOS | + | ALSA | ma_backend_alsa | Linux | + | PulseAudio | ma_backend_pulseaudio | Cross Platform (disabled on Windows, BSD and Android) | + | JACK | ma_backend_jack | Cross Platform (disabled on BSD and Android) | + | sndio | ma_backend_sndio | OpenBSD | + | audio(4) | ma_backend_audio4 | NetBSD, OpenBSD | + | OSS | ma_backend_oss | FreeBSD | + | AAudio | ma_backend_aaudio | Android 8+ | + | OpenSL|ES | ma_backend_opensl | Android (API level 16+) | + | Web Audio | ma_backend_webaudio | Web (via Emscripten) | + | Null | ma_backend_null | Cross Platform (not used on Web) | + |-------------|-----------------------|--------------------------------------------------------| + +The context can be configured via the `pConfig` argument. The config object is initialized with `ma_context_config_init()`. Individual configuration settings +can then be set directly on the structure. Below are the members of the `ma_context_config` object. + + logCallback + Callback for handling log messages from miniaudio. + + threadPriority + The desired priority to use for the audio thread. Allowable values include the following: + + |--------------------------------------| + | Thread Priority | + |--------------------------------------| + | ma_thread_priority_idle | + | ma_thread_priority_lowest | + | ma_thread_priority_low | + | ma_thread_priority_normal | + | ma_thread_priority_high | + | ma_thread_priority_highest (default) | + | ma_thread_priority_realtime | + | ma_thread_priority_default | + |--------------------------------------| + + pUserData + A pointer to application-defined data. This can be accessed from the context object directly such as `context.pUserData`. + + allocationCallbacks + Structure containing custom allocation callbacks. Leaving this at defaults will cause it to use MA_MALLOC, MA_REALLOC and MA_FREE. These allocation + callbacks will be used for anything tied to the context, including devices. + + alsa.useVerboseDeviceEnumeration + ALSA will typically enumerate many different devices which can be intrusive and not user-friendly. To combat this, miniaudio will enumerate only unique + card/device pairs by default. The problem with this is that you lose a bit of flexibility and control. Setting alsa.useVerboseDeviceEnumeration makes + it so the ALSA backend includes all devices. Defaults to false. + + pulse.pApplicationName + PulseAudio only. The application name to use when initializing the PulseAudio context with `pa_context_new()`. + + pulse.pServerName + PulseAudio only. The name of the server to connect to with `pa_context_connect()`. + + pulse.tryAutoSpawn + PulseAudio only. Whether or not to try automatically starting the PulseAudio daemon. Defaults to false. If you set this to true, keep in mind that + miniaudio uses a trial and error method to find the most appropriate backend, and this will result in the PulseAudio daemon starting which may be + intrusive for the end user. + + coreaudio.sessionCategory + iOS only. The session category to use for the shared AudioSession instance. Below is a list of allowable values and their Core Audio equivalents. + + |-----------------------------------------|-------------------------------------| + | miniaudio Token | Core Audio Token | + |-----------------------------------------|-------------------------------------| + | ma_ios_session_category_ambient | AVAudioSessionCategoryAmbient | + | ma_ios_session_category_solo_ambient | AVAudioSessionCategorySoloAmbient | + | ma_ios_session_category_playback | AVAudioSessionCategoryPlayback | + | ma_ios_session_category_record | AVAudioSessionCategoryRecord | + | ma_ios_session_category_play_and_record | AVAudioSessionCategoryPlayAndRecord | + | ma_ios_session_category_multi_route | AVAudioSessionCategoryMultiRoute | + | ma_ios_session_category_none | AVAudioSessionCategoryAmbient | + | ma_ios_session_category_default | AVAudioSessionCategoryAmbient | + |-----------------------------------------|-------------------------------------| + + coreaudio.sessionCategoryOptions + iOS only. Session category options to use with the shared AudioSession instance. Below is a list of allowable values and their Core Audio equivalents. + + |---------------------------------------------------------------------------|------------------------------------------------------------------| + | miniaudio Token | Core Audio Token | + |---------------------------------------------------------------------------|------------------------------------------------------------------| + | ma_ios_session_category_option_mix_with_others | AVAudioSessionCategoryOptionMixWithOthers | + | ma_ios_session_category_option_duck_others | AVAudioSessionCategoryOptionDuckOthers | + | ma_ios_session_category_option_allow_bluetooth | AVAudioSessionCategoryOptionAllowBluetooth | + | ma_ios_session_category_option_default_to_speaker | AVAudioSessionCategoryOptionDefaultToSpeaker | + | ma_ios_session_category_option_interrupt_spoken_audio_and_mix_with_others | AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers | + | ma_ios_session_category_option_allow_bluetooth_a2dp | AVAudioSessionCategoryOptionAllowBluetoothA2DP | + | ma_ios_session_category_option_allow_air_play | AVAudioSessionCategoryOptionAllowAirPlay | + |---------------------------------------------------------------------------|------------------------------------------------------------------| + + jack.pClientName + The name of the client to pass to `jack_client_open()`. + + jack.tryStartServer + Whether or not to try auto-starting the JACK server. Defaults to false. + + +It is recommended that only a single context is active at any given time because it's a bulky data structure which performs run-time linking for the +relevant backends every time it's initialized. + +The location of the context cannot change throughout it's lifetime. Consider allocating the `ma_context` object with `malloc()` if this is an issue. The +reason for this is that a pointer to the context is stored in the `ma_device` structure. + + +Example 1 - Default Initialization +---------------------------------- +The example below shows how to initialize the context using the default configuration. + +```c +ma_context context; +ma_result result = ma_context_init(NULL, 0, NULL, &context); +if (result != MA_SUCCESS) { + // Error. +} +``` + + +Example 2 - Custom Configuration +-------------------------------- +The example below shows how to initialize the context using custom backend priorities and a custom configuration. In this hypothetical example, the program +wants to prioritize ALSA over PulseAudio on Linux. They also want to avoid using the WinMM backend on Windows because it's latency is too high. They also +want an error to be returned if no valid backend is available which they achieve by excluding the Null backend. + +For the configuration, the program wants to capture any log messages so they can, for example, route it to a log file and user interface. + +```c +ma_backend backends[] = { + ma_backend_alsa, + ma_backend_pulseaudio, + ma_backend_wasapi, + ma_backend_dsound +}; + +ma_context_config config = ma_context_config_init(); +config.logCallback = my_log_callback; +config.pUserData = pMyUserData; + +ma_context context; +ma_result result = ma_context_init(backends, sizeof(backends)/sizeof(backends[0]), &config, &context); +if (result != MA_SUCCESS) { + // Error. + if (result == MA_NO_BACKEND) { + // Couldn't find an appropriate backend. + } +} +``` + + +See Also +-------- +ma_context_config_init() +ma_context_uninit() +*/ +MA_API ma_result ma_context_init(const ma_backend backends[], ma_uint32 backendCount, const ma_context_config* pConfig, ma_context* pContext); + +/* +Uninitializes a context. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Unsafe. Do not call this function across multiple threads as some backends read and write to global state. + + +Remarks +------- +Results are undefined if you call this while any device created by this context is still active. + + +See Also +-------- +ma_context_init() +*/ +MA_API ma_result ma_context_uninit(ma_context* pContext); + +/* +Retrieves the size of the ma_context object. + +This is mainly for the purpose of bindings to know how much memory to allocate. +*/ +MA_API size_t ma_context_sizeof(void); + +/* +Enumerates over every device (both playback and capture). + +This is a lower-level enumeration function to the easier to use `ma_context_get_devices()`. Use `ma_context_enumerate_devices()` if you would rather not incur +an internal heap allocation, or it simply suits your code better. + +Note that this only retrieves the ID and name/description of the device. The reason for only retrieving basic information is that it would otherwise require +opening the backend device in order to probe it for more detailed information which can be inefficient. Consider using `ma_context_get_device_info()` for this, +but don't call it from within the enumeration callback. + +Returning false from the callback will stop enumeration. Returning true will continue enumeration. + + +Parameters +---------- +pContext (in) + A pointer to the context performing the enumeration. + +callback (in) + The callback to fire for each enumerated device. + +pUserData (in) + A pointer to application-defined data passed to the callback. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Safe. This is guarded using a simple mutex lock. + + +Remarks +------- +Do _not_ assume the first enumerated device of a given type is the default device. + +Some backends and platforms may only support default playback and capture devices. + +In general, you should not do anything complicated from within the callback. In particular, do not try initializing a device from within the callback. Also, +do not try to call `ma_context_get_device_info()` from within the callback. + +Consider using `ma_context_get_devices()` for a simpler and safer API, albeit at the expense of an internal heap allocation. + + +Example 1 - Simple Enumeration +------------------------------ +ma_bool32 ma_device_enum_callback(ma_context* pContext, ma_device_type deviceType, const ma_device_info* pInfo, void* pUserData) +{ + printf("Device Name: %s\n", pInfo->name); + return MA_TRUE; +} + +ma_result result = ma_context_enumerate_devices(&context, my_device_enum_callback, pMyUserData); +if (result != MA_SUCCESS) { + // Error. +} + + +See Also +-------- +ma_context_get_devices() +*/ +MA_API ma_result ma_context_enumerate_devices(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData); + +/* +Retrieves basic information about every active playback and/or capture device. + +This function will allocate memory internally for the device lists and return a pointer to them through the `ppPlaybackDeviceInfos` and `ppCaptureDeviceInfos` +parameters. If you do not want to incur the overhead of these allocations consider using `ma_context_enumerate_devices()` which will instead use a callback. + + +Parameters +---------- +pContext (in) + A pointer to the context performing the enumeration. + +ppPlaybackDeviceInfos (out) + A pointer to a pointer that will receive the address of a buffer containing the list of `ma_device_info` structures for playback devices. + +pPlaybackDeviceCount (out) + A pointer to an unsigned integer that will receive the number of playback devices. + +ppCaptureDeviceInfos (out) + A pointer to a pointer that will receive the address of a buffer containing the list of `ma_device_info` structures for capture devices. + +pCaptureDeviceCount (out) + A pointer to an unsigned integer that will receive the number of capture devices. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Unsafe. Since each call to this function invalidates the pointers from the previous call, you should not be calling this simultaneously across multiple +threads. Instead, you need to make a copy of the returned data with your own higher level synchronization. + + +Remarks +------- +It is _not_ safe to assume the first device in the list is the default device. + +You can pass in NULL for the playback or capture lists in which case they'll be ignored. + +The returned pointers will become invalid upon the next call this this function, or when the context is uninitialized. Do not free the returned pointers. + + +See Also +-------- +ma_context_get_devices() +*/ +MA_API ma_result ma_context_get_devices(ma_context* pContext, ma_device_info** ppPlaybackDeviceInfos, ma_uint32* pPlaybackDeviceCount, ma_device_info** ppCaptureDeviceInfos, ma_uint32* pCaptureDeviceCount); + +/* +Retrieves information about a device of the given type, with the specified ID and share mode. + + +Parameters +---------- +pContext (in) + A pointer to the context performing the query. + +deviceType (in) + The type of the device being queried. Must be either `ma_device_type_playback` or `ma_device_type_capture`. + +pDeviceID (in) + The ID of the device being queried. + +shareMode (in) + The share mode to query for device capabilities. This should be set to whatever you're intending on using when initializing the device. If you're unsure, + set this to `ma_share_mode_shared`. + +pDeviceInfo (out) + A pointer to the `ma_device_info` structure that will receive the device information. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Safe. This is guarded using a simple mutex lock. + + +Remarks +------- +Do _not_ call this from within the `ma_context_enumerate_devices()` callback. + +It's possible for a device to have different information and capabilities depending on whether or not it's opened in shared or exclusive mode. For example, in +shared mode, WASAPI always uses floating point samples for mixing, but in exclusive mode it can be anything. Therefore, this function allows you to specify +which share mode you want information for. Note that not all backends and devices support shared or exclusive mode, in which case this function will fail if +the requested share mode is unsupported. + +This leaves pDeviceInfo unmodified in the result of an error. +*/ +MA_API ma_result ma_context_get_device_info(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_share_mode shareMode, ma_device_info* pDeviceInfo); + +/* +Determines if the given context supports loopback mode. + + +Parameters +---------- +pContext (in) + A pointer to the context getting queried. + + +Return Value +------------ +MA_TRUE if the context supports loopback mode; MA_FALSE otherwise. +*/ +MA_API ma_bool32 ma_context_is_loopback_supported(ma_context* pContext); + + + +/* +Initializes a device config with default settings. + + +Parameters +---------- +deviceType (in) + The type of the device this config is being initialized for. This must set to one of the following: + + |-------------------------| + | Device Type | + |-------------------------| + | ma_device_type_playback | + | ma_device_type_capture | + | ma_device_type_duplex | + | ma_device_type_loopback | + |-------------------------| + + +Return Value +------------ +A new device config object with default settings. You will typically want to adjust the config after this function returns. See remarks. + + +Thread Safety +------------- +Safe. + + +Callback Safety +--------------- +Safe, but don't try initializing a device in a callback. + + +Remarks +------- +The returned config will be initialized to defaults. You will normally want to customize a few variables before initializing the device. See Example 1 for a +typical configuration which sets the sample format, channel count, sample rate, data callback and user data. These are usually things you will want to change +before initializing the device. + +See `ma_device_init()` for details on specific configuration options. + + +Example 1 - Simple Configuration +-------------------------------- +The example below is what a program will typically want to configure for each device at a minimum. Notice how `ma_device_config_init()` is called first, and +then the returned object is modified directly. This is important because it ensures that your program continues to work as new configuration options are added +to the `ma_device_config` structure. + +```c +ma_device_config config = ma_device_config_init(ma_device_type_playback); +config.playback.format = ma_format_f32; +config.playback.channels = 2; +config.sampleRate = 48000; +config.dataCallback = ma_data_callback; +config.pUserData = pMyUserData; +``` + + +See Also +-------- +ma_device_init() +ma_device_init_ex() +*/ +MA_API ma_device_config ma_device_config_init(ma_device_type deviceType); + + +/* +Initializes a device. + +A device represents a physical audio device. The idea is you send or receive audio data from the device to either play it back through a speaker, or capture it +from a microphone. Whether or not you should send or receive data from the device (or both) depends on the type of device you are initializing which can be +playback, capture, full-duplex or loopback. (Note that loopback mode is only supported on select backends.) Sending and receiving audio data to and from the +device is done via a callback which is fired by miniaudio at periodic time intervals. + +The frequency at which data is delivered to and from a device depends on the size of it's period. The size of the period can be defined in terms of PCM frames +or milliseconds, whichever is more convenient. Generally speaking, the smaller the period, the lower the latency at the expense of higher CPU usage and +increased risk of glitching due to the more frequent and granular data deliver intervals. The size of a period will depend on your requirements, but +miniaudio's defaults should work fine for most scenarios. If you're building a game you should leave this fairly small, whereas if you're building a simple +media player you can make it larger. Note that the period size you request is actually just a hint - miniaudio will tell the backend what you want, but the +backend is ultimately responsible for what it gives you. You cannot assume you will get exactly what you ask for. + +When delivering data to and from a device you need to make sure it's in the correct format which you can set through the device configuration. You just set the +format that you want to use and miniaudio will perform all of the necessary conversion for you internally. When delivering data to and from the callback you +can assume the format is the same as what you requested when you initialized the device. See Remarks for more details on miniaudio's data conversion pipeline. + + +Parameters +---------- +pContext (in, optional) + A pointer to the context that owns the device. This can be null, in which case it creates a default context internally. + +pConfig (in) + A pointer to the device configuration. Cannot be null. See remarks for details. + +pDevice (out) + A pointer to the device object being initialized. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Unsafe. It is not safe to call this function simultaneously for different devices because some backends depend on and mutate global state. The same applies to +calling this at the same time as `ma_device_uninit()`. + + +Callback Safety +--------------- +Unsafe. It is not safe to call this inside any callback. + + +Remarks +------- +Setting `pContext` to NULL will result in miniaudio creating a default context internally and is equivalent to passing in a context initialized like so: + + ```c + ma_context_init(NULL, 0, NULL, &context); + ``` + +Do not set `pContext` to NULL if you are needing to open multiple devices. You can, however, use NULL when initializing the first device, and then use +device.pContext for the initialization of other devices. + +The device can be configured via the `pConfig` argument. The config object is initialized with `ma_device_config_init()`. Individual configuration settings can +then be set directly on the structure. Below are the members of the `ma_device_config` object. + + deviceType + Must be `ma_device_type_playback`, `ma_device_type_capture`, `ma_device_type_duplex` of `ma_device_type_loopback`. + + sampleRate + The sample rate, in hertz. The most common sample rates are 48000 and 44100. Setting this to 0 will use the device's native sample rate. + + periodSizeInFrames + The desired size of a period in PCM frames. If this is 0, `periodSizeInMilliseconds` will be used instead. If both are 0 the default buffer size will + be used depending on the selected performance profile. This value affects latency. See below for details. + + periodSizeInMilliseconds + The desired size of a period in milliseconds. If this is 0, `periodSizeInFrames` will be used instead. If both are 0 the default buffer size will be + used depending on the selected performance profile. The value affects latency. See below for details. + + periods + The number of periods making up the device's entire buffer. The total buffer size is `periodSizeInFrames` or `periodSizeInMilliseconds` multiplied by + this value. This is just a hint as backends will be the ones who ultimately decide how your periods will be configured. + + performanceProfile + A hint to miniaudio as to the performance requirements of your program. Can be either `ma_performance_profile_low_latency` (default) or + `ma_performance_profile_conservative`. This mainly affects the size of default buffers and can usually be left at it's default value. + + noPreZeroedOutputBuffer + When set to true, the contents of the output buffer passed into the data callback will be left undefined. When set to false (default), the contents of + the output buffer will be cleared the zero. You can use this to avoid the overhead of zeroing out the buffer if you can guarantee that your data + callback will write to every sample in the output buffer, or if you are doing your own clearing. + + noClip + When set to true, the contents of the output buffer passed into the data callback will be clipped after returning. When set to false (default), the + contents of the output buffer are left alone after returning and it will be left up to the backend itself to decide whether or not the clip. This only + applies when the playback sample format is f32. + + dataCallback + The callback to fire whenever data is ready to be delivered to or from the device. + + stopCallback + The callback to fire whenever the device has stopped, either explicitly via `ma_device_stop()`, or implicitly due to things like the device being + disconnected. + + pUserData + The user data pointer to use with the device. You can access this directly from the device object like `device.pUserData`. + + resampling.algorithm + The resampling algorithm to use when miniaudio needs to perform resampling between the rate specified by `sampleRate` and the device's native rate. The + default value is `ma_resample_algorithm_linear`, and the quality can be configured with `resampling.linear.lpfOrder`. + + resampling.linear.lpfOrder + The linear resampler applies a low-pass filter as part of it's procesing for anti-aliasing. This setting controls the order of the filter. The higher + the value, the better the quality, in general. Setting this to 0 will disable low-pass filtering altogether. The maximum value is + `MA_MAX_FILTER_ORDER`. The default value is `min(4, MA_MAX_FILTER_ORDER)`. + + playback.pDeviceID + A pointer to a `ma_device_id` structure containing the ID of the playback device to initialize. Setting this NULL (default) will use the system's + default playback device. Retrieve the device ID from the `ma_device_info` structure, which can be retrieved using device enumeration. + + playback.format + The sample format to use for playback. When set to `ma_format_unknown` the device's native format will be used. This can be retrieved after + initialization from the device object directly with `device.playback.format`. + + playback.channels + The number of channels to use for playback. When set to 0 the device's native channel count will be used. This can be retrieved after initialization + from the device object directly with `device.playback.channels`. + + playback.channelMap + The channel map to use for playback. When left empty, the device's native channel map will be used. This can be retrieved after initialization from the + device object direct with `device.playback.channelMap`. + + playback.shareMode + The preferred share mode to use for playback. Can be either `ma_share_mode_shared` (default) or `ma_share_mode_exclusive`. Note that if you specify + exclusive mode, but it's not supported by the backend, initialization will fail. You can then fall back to shared mode if desired by changing this to + ma_share_mode_shared and reinitializing. + + capture.pDeviceID + A pointer to a `ma_device_id` structure containing the ID of the capture device to initialize. Setting this NULL (default) will use the system's + default capture device. Retrieve the device ID from the `ma_device_info` structure, which can be retrieved using device enumeration. + + capture.format + The sample format to use for capture. When set to `ma_format_unknown` the device's native format will be used. This can be retrieved after + initialization from the device object directly with `device.capture.format`. + + capture.channels + The number of channels to use for capture. When set to 0 the device's native channel count will be used. This can be retrieved after initialization + from the device object directly with `device.capture.channels`. + + capture.channelMap + The channel map to use for capture. When left empty, the device's native channel map will be used. This can be retrieved after initialization from the + device object direct with `device.capture.channelMap`. + + capture.shareMode + The preferred share mode to use for capture. Can be either `ma_share_mode_shared` (default) or `ma_share_mode_exclusive`. Note that if you specify + exclusive mode, but it's not supported by the backend, initialization will fail. You can then fall back to shared mode if desired by changing this to + ma_share_mode_shared and reinitializing. + + wasapi.noAutoConvertSRC + WASAPI only. When set to true, disables WASAPI's automatic resampling and forces the use of miniaudio's resampler. Defaults to false. + + wasapi.noDefaultQualitySRC + WASAPI only. Only used when `wasapi.noAutoConvertSRC` is set to false. When set to true, disables the use of `AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY`. + You should usually leave this set to false, which is the default. + + wasapi.noAutoStreamRouting + WASAPI only. When set to true, disables automatic stream routing on the WASAPI backend. Defaults to false. + + wasapi.noHardwareOffloading + WASAPI only. When set to true, disables the use of WASAPI's hardware offloading feature. Defaults to false. + + alsa.noMMap + ALSA only. When set to true, disables MMap mode. Defaults to false. + + alsa.noAutoFormat + ALSA only. When set to true, disables ALSA's automatic format conversion by including the SND_PCM_NO_AUTO_FORMAT flag. Defaults to false. + + alsa.noAutoChannels + ALSA only. When set to true, disables ALSA's automatic channel conversion by including the SND_PCM_NO_AUTO_CHANNELS flag. Defaults to false. + + alsa.noAutoResample + ALSA only. When set to true, disables ALSA's automatic resampling by including the SND_PCM_NO_AUTO_RESAMPLE flag. Defaults to false. + + pulse.pStreamNamePlayback + PulseAudio only. Sets the stream name for playback. + + pulse.pStreamNameCapture + PulseAudio only. Sets the stream name for capture. + + coreaudio.allowNominalSampleRateChange + Core Audio only. Desktop only. When enabled, allows the sample rate of the device to be changed at the operating system level. This + is disabled by default in order to prevent intrusive changes to the user's system. This is useful if you want to use a sample rate + that is known to be natively supported by the hardware thereby avoiding the cost of resampling. When set to true, miniaudio will + find the closest match between the sample rate requested in the device config and the sample rates natively supported by the + hardware. When set to false, the sample rate currently set by the operating system will always be used. + + +Once initialized, the device's config is immutable. If you need to change the config you will need to initialize a new device. + +After initializing the device it will be in a stopped state. To start it, use `ma_device_start()`. + +If both `periodSizeInFrames` and `periodSizeInMilliseconds` are set to zero, it will default to `MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY` or +`MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE`, depending on whether or not `performanceProfile` is set to `ma_performance_profile_low_latency` or +`ma_performance_profile_conservative`. + +If you request exclusive mode and the backend does not support it an error will be returned. For robustness, you may want to first try initializing the device +in exclusive mode, and then fall back to shared mode if required. Alternatively you can just request shared mode (the default if you leave it unset in the +config) which is the most reliable option. Some backends do not have a practical way of choosing whether or not the device should be exclusive or not (ALSA, +for example) in which case it just acts as a hint. Unless you have special requirements you should try avoiding exclusive mode as it's intrusive to the user. +Starting with Windows 10, miniaudio will use low-latency shared mode where possible which may make exclusive mode unnecessary. + +When sending or receiving data to/from a device, miniaudio will internally perform a format conversion to convert between the format specified by the config +and the format used internally by the backend. If you pass in 0 for the sample format, channel count, sample rate _and_ channel map, data transmission will run +on an optimized pass-through fast path. You can retrieve the format, channel count and sample rate by inspecting the `playback/capture.format`, +`playback/capture.channels` and `sampleRate` members of the device object. + +When compiling for UWP you must ensure you call this function on the main UI thread because the operating system may need to present the user with a message +asking for permissions. Please refer to the official documentation for ActivateAudioInterfaceAsync() for more information. + +ALSA Specific: When initializing the default device, requesting shared mode will try using the "dmix" device for playback and the "dsnoop" device for capture. +If these fail it will try falling back to the "hw" device. + + +Example 1 - Simple Initialization +--------------------------------- +This example shows how to initialize a simple playback device using a standard configuration. If you are just needing to do simple playback from the default +playback device this is usually all you need. + +```c +ma_device_config config = ma_device_config_init(ma_device_type_playback); +config.playback.format = ma_format_f32; +config.playback.channels = 2; +config.sampleRate = 48000; +config.dataCallback = ma_data_callback; +config.pMyUserData = pMyUserData; + +ma_device device; +ma_result result = ma_device_init(NULL, &config, &device); +if (result != MA_SUCCESS) { + // Error +} +``` + + +Example 2 - Advanced Initialization +----------------------------------- +This example shows how you might do some more advanced initialization. In this hypothetical example we want to control the latency by setting the buffer size +and period count. We also want to allow the user to be able to choose which device to output from which means we need a context so we can perform device +enumeration. + +```c +ma_context context; +ma_result result = ma_context_init(NULL, 0, NULL, &context); +if (result != MA_SUCCESS) { + // Error +} + +ma_device_info* pPlaybackDeviceInfos; +ma_uint32 playbackDeviceCount; +result = ma_context_get_devices(&context, &pPlaybackDeviceInfos, &playbackDeviceCount, NULL, NULL); +if (result != MA_SUCCESS) { + // Error +} + +// ... choose a device from pPlaybackDeviceInfos ... + +ma_device_config config = ma_device_config_init(ma_device_type_playback); +config.playback.pDeviceID = pMyChosenDeviceID; // <-- Get this from the `id` member of one of the `ma_device_info` objects returned by ma_context_get_devices(). +config.playback.format = ma_format_f32; +config.playback.channels = 2; +config.sampleRate = 48000; +config.dataCallback = ma_data_callback; +config.pUserData = pMyUserData; +config.periodSizeInMilliseconds = 10; +config.periods = 3; + +ma_device device; +result = ma_device_init(&context, &config, &device); +if (result != MA_SUCCESS) { + // Error +} +``` + + +See Also +-------- +ma_device_config_init() +ma_device_uninit() +ma_device_start() +ma_context_init() +ma_context_get_devices() +ma_context_enumerate_devices() +*/ +MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pConfig, ma_device* pDevice); + +/* +Initializes a device without a context, with extra parameters for controlling the configuration of the internal self-managed context. + +This is the same as `ma_device_init()`, only instead of a context being passed in, the parameters from `ma_context_init()` are passed in instead. This function +allows you to configure the internally created context. + + +Parameters +---------- +backends (in, optional) + A list of backends to try initializing, in priority order. Can be NULL, in which case it uses default priority order. + +backendCount (in, optional) + The number of items in `backend`. Ignored if `backend` is NULL. + +pContextConfig (in, optional) + The context configuration. + +pConfig (in) + A pointer to the device configuration. Cannot be null. See remarks for details. + +pDevice (out) + A pointer to the device object being initialized. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Unsafe. It is not safe to call this function simultaneously for different devices because some backends depend on and mutate global state. The same applies to +calling this at the same time as `ma_device_uninit()`. + + +Callback Safety +--------------- +Unsafe. It is not safe to call this inside any callback. + + +Remarks +------- +You only need to use this function if you want to configure the context differently to it's defaults. You should never use this function if you want to manage +your own context. + +See the documentation for `ma_context_init()` for information on the different context configuration options. + + +See Also +-------- +ma_device_init() +ma_device_uninit() +ma_device_config_init() +ma_context_init() +*/ +MA_API ma_result ma_device_init_ex(const ma_backend backends[], ma_uint32 backendCount, const ma_context_config* pContextConfig, const ma_device_config* pConfig, ma_device* pDevice); + +/* +Uninitializes a device. + +This will explicitly stop the device. You do not need to call `ma_device_stop()` beforehand, but it's harmless if you do. + + +Parameters +---------- +pDevice (in) + A pointer to the device to stop. + + +Return Value +------------ +Nothing + + +Thread Safety +------------- +Unsafe. As soon as this API is called the device should be considered undefined. + + +Callback Safety +--------------- +Unsafe. It is not safe to call this inside any callback. Doing this will result in a deadlock. + + +See Also +-------- +ma_device_init() +ma_device_stop() +*/ +MA_API void ma_device_uninit(ma_device* pDevice); + +/* +Starts the device. For playback devices this begins playback. For capture devices it begins recording. + +Use `ma_device_stop()` to stop the device. + + +Parameters +---------- +pDevice (in) + A pointer to the device to start. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Safe. It's safe to call this from any thread with the exception of the callback thread. + + +Callback Safety +--------------- +Unsafe. It is not safe to call this inside any callback. + + +Remarks +------- +For a playback device, this will retrieve an initial chunk of audio data from the client before returning. The reason for this is to ensure there is valid +audio data in the buffer, which needs to be done before the device begins playback. + +This API waits until the backend device has been started for real by the worker thread. It also waits on a mutex for thread-safety. + +Do not call this in any callback. + + +See Also +-------- +ma_device_stop() +*/ +MA_API ma_result ma_device_start(ma_device* pDevice); + +/* +Stops the device. For playback devices this stops playback. For capture devices it stops recording. + +Use `ma_device_start()` to start the device again. + + +Parameters +---------- +pDevice (in) + A pointer to the device to stop. + + +Return Value +------------ +MA_SUCCESS if successful; any other error code otherwise. + + +Thread Safety +------------- +Safe. It's safe to call this from any thread with the exception of the callback thread. + + +Callback Safety +--------------- +Unsafe. It is not safe to call this inside any callback. Doing this will result in a deadlock. + + +Remarks +------- +This API needs to wait on the worker thread to stop the backend device properly before returning. It also waits on a mutex for thread-safety. In addition, some +backends need to wait for the device to finish playback/recording of the current fragment which can take some time (usually proportionate to the buffer size +that was specified at initialization time). + +Backends are required to either pause the stream in-place or drain the buffer if pausing is not possible. The reason for this is that stopping the device and +the resuming it with ma_device_start() (which you might do when your program loses focus) may result in a situation where those samples are never output to the +speakers or received from the microphone which can in turn result in de-syncs. + +Do not call this in any callback. + +This will be called implicitly by `ma_device_uninit()`. + + +See Also +-------- +ma_device_start() +*/ +MA_API ma_result ma_device_stop(ma_device* pDevice); + +/* +Determines whether or not the device is started. + + +Parameters +---------- +pDevice (in) + A pointer to the device whose start state is being retrieved. + + +Return Value +------------ +True if the device is started, false otherwise. + + +Thread Safety +------------- +Safe. If another thread calls `ma_device_start()` or `ma_device_stop()` at this same time as this function is called, there's a very small chance the return +value will be out of sync. + + +Callback Safety +--------------- +Safe. This is implemented as a simple accessor. + + +See Also +-------- +ma_device_start() +ma_device_stop() +*/ +MA_API ma_bool32 ma_device_is_started(const ma_device* pDevice); + + +/* +Retrieves the state of the device. + + +Parameters +---------- +pDevice (in) + A pointer to the device whose state is being retrieved. + + +Return Value +------------ +The current state of the device. The return value will be one of the following: + + +------------------------+------------------------------------------------------------------------------+ + | MA_STATE_UNINITIALIZED | Will only be returned if the device is in the middle of initialization. | + +------------------------+------------------------------------------------------------------------------+ + | MA_STATE_STOPPED | The device is stopped. The initial state of the device after initialization. | + +------------------------+------------------------------------------------------------------------------+ + | MA_STATE_STARTED | The device started and requesting and/or delivering audio data. | + +------------------------+------------------------------------------------------------------------------+ + | MA_STATE_STARTING | The device is in the process of starting. | + +------------------------+------------------------------------------------------------------------------+ + | MA_STATE_STOPPING | The device is in the process of stopping. | + +------------------------+------------------------------------------------------------------------------+ + + +Thread Safety +------------- +Safe. This is implemented as a simple accessor. Note that if the device is started or stopped at the same time as this function is called, +there's a possibility the return value could be out of sync. See remarks. + + +Callback Safety +--------------- +Safe. This is implemented as a simple accessor. + + +Remarks +------- +The general flow of a devices state goes like this: + + ``` + ma_device_init() -> MA_STATE_UNINITIALIZED -> MA_STATE_STOPPED + ma_device_start() -> MA_STATE_STARTING -> MA_STATE_STARTED + ma_device_stop() -> MA_STATE_STOPPING -> MA_STATE_STOPPED + ``` + +When the state of the device is changed with `ma_device_start()` or `ma_device_stop()` at this same time as this function is called, the +value returned by this function could potentially be out of sync. If this is significant to your program you need to implement your own +synchronization. +*/ +MA_API ma_uint32 ma_device_get_state(const ma_device* pDevice); + + +/* +Sets the master volume factor for the device. + +The volume factor must be between 0 (silence) and 1 (full volume). Use `ma_device_set_master_gain_db()` to use decibel notation, where 0 is full volume and +values less than 0 decreases the volume. + + +Parameters +---------- +pDevice (in) + A pointer to the device whose volume is being set. + +volume (in) + The new volume factor. Must be within the range of [0, 1]. + + +Return Value +------------ +MA_SUCCESS if the volume was set successfully. +MA_INVALID_ARGS if pDevice is NULL. +MA_INVALID_ARGS if the volume factor is not within the range of [0, 1]. + + +Thread Safety +------------- +Safe. This just sets a local member of the device object. + + +Callback Safety +--------------- +Safe. If you set the volume in the data callback, that data written to the output buffer will have the new volume applied. + + +Remarks +------- +This applies the volume factor across all channels. + +This does not change the operating system's volume. It only affects the volume for the given `ma_device` object's audio stream. + + +See Also +-------- +ma_device_get_master_volume() +ma_device_set_master_volume_gain_db() +ma_device_get_master_volume_gain_db() +*/ +MA_API ma_result ma_device_set_master_volume(ma_device* pDevice, float volume); + +/* +Retrieves the master volume factor for the device. + + +Parameters +---------- +pDevice (in) + A pointer to the device whose volume factor is being retrieved. + +pVolume (in) + A pointer to the variable that will receive the volume factor. The returned value will be in the range of [0, 1]. + + +Return Value +------------ +MA_SUCCESS if successful. +MA_INVALID_ARGS if pDevice is NULL. +MA_INVALID_ARGS if pVolume is NULL. + + +Thread Safety +------------- +Safe. This just a simple member retrieval. + + +Callback Safety +--------------- +Safe. + + +Remarks +------- +If an error occurs, `*pVolume` will be set to 0. + + +See Also +-------- +ma_device_set_master_volume() +ma_device_set_master_volume_gain_db() +ma_device_get_master_volume_gain_db() +*/ +MA_API ma_result ma_device_get_master_volume(ma_device* pDevice, float* pVolume); + +/* +Sets the master volume for the device as gain in decibels. + +A gain of 0 is full volume, whereas a gain of < 0 will decrease the volume. + + +Parameters +---------- +pDevice (in) + A pointer to the device whose gain is being set. + +gainDB (in) + The new volume as gain in decibels. Must be less than or equal to 0, where 0 is full volume and anything less than 0 decreases the volume. + + +Return Value +------------ +MA_SUCCESS if the volume was set successfully. +MA_INVALID_ARGS if pDevice is NULL. +MA_INVALID_ARGS if the gain is > 0. + + +Thread Safety +------------- +Safe. This just sets a local member of the device object. + + +Callback Safety +--------------- +Safe. If you set the volume in the data callback, that data written to the output buffer will have the new volume applied. + + +Remarks +------- +This applies the gain across all channels. + +This does not change the operating system's volume. It only affects the volume for the given `ma_device` object's audio stream. + + +See Also +-------- +ma_device_get_master_volume_gain_db() +ma_device_set_master_volume() +ma_device_get_master_volume() +*/ +MA_API ma_result ma_device_set_master_gain_db(ma_device* pDevice, float gainDB); + +/* +Retrieves the master gain in decibels. + + +Parameters +---------- +pDevice (in) + A pointer to the device whose gain is being retrieved. + +pGainDB (in) + A pointer to the variable that will receive the gain in decibels. The returned value will be <= 0. + + +Return Value +------------ +MA_SUCCESS if successful. +MA_INVALID_ARGS if pDevice is NULL. +MA_INVALID_ARGS if pGainDB is NULL. + + +Thread Safety +------------- +Safe. This just a simple member retrieval. + + +Callback Safety +--------------- +Safe. + + +Remarks +------- +If an error occurs, `*pGainDB` will be set to 0. + + +See Also +-------- +ma_device_set_master_volume_gain_db() +ma_device_set_master_volume() +ma_device_get_master_volume() +*/ +MA_API ma_result ma_device_get_master_gain_db(ma_device* pDevice, float* pGainDB); + + +/* +Called from the data callback of asynchronous backends to allow miniaudio to process the data and fire the miniaudio data callback. + + +Parameters +---------- +pDevice (in) + A pointer to device whose processing the data callback. + +pOutput (out) + A pointer to the buffer that will receive the output PCM frame data. On a playback device this must not be NULL. On a duplex device + this can be NULL, in which case pInput must not be NULL. + +pInput (in) + A pointer to the buffer containing input PCM frame data. On a capture device this must not be NULL. On a duplex device this can be + NULL, in which case `pOutput` must not be NULL. + +frameCount (in) + The number of frames being processed. + + +Return Value +------------ +MA_SUCCESS if successful; any other result code otherwise. + + +Thread Safety +------------- +This function should only ever be called from the internal data callback of the backend. It is safe to call this simultaneously between a +playback and capture device in duplex setups. + + +Callback Safety +--------------- +Do not call this from the miniaudio data callback. It should only ever be called from the internal data callback of the backend. + + +Remarks +------- +If both `pOutput` and `pInput` are NULL, and error will be returned. In duplex scenarios, both `pOutput` and `pInput` can be non-NULL, in +which case `pInput` will be processed first, followed by `pOutput`. + +If you are implementing a custom backend, and that backend uses a callback for data delivery, you'll need to call this from inside that +callback. +*/ +MA_API ma_result ma_device_handle_backend_data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount); + + +/* +Calculates an appropriate buffer size from a descriptor, native sample rate and performance profile. + +This function is used by backends for helping determine an appropriately sized buffer to use with +the device depending on the values of `periodSizeInFrames` and `periodSizeInMilliseconds` in the +`pDescriptor` object. Since buffer size calculations based on time depends on the sample rate, a +best guess at the device's native sample rate is also required which is where `nativeSampleRate` +comes in. In addition, the performance profile is also needed for cases where both the period size +in frames and milliseconds are both zero. + + +Parameters +---------- +pDescriptor (in) + A pointer to device descriptor whose `periodSizeInFrames` and `periodSizeInMilliseconds` members + will be used for the calculation of the buffer size. + +nativeSampleRate (in) + The device's native sample rate. This is only ever used when the `periodSizeInFrames` member of + `pDescriptor` is zero. In this case, `periodSizeInMilliseconds` will be used instead, in which + case a sample rate is required to convert to a size in frames. + +performanceProfile (in) + When both the `periodSizeInFrames` and `periodSizeInMilliseconds` members of `pDescriptor` are + zero, miniaudio will fall back to a buffer size based on the performance profile. The profile + to use for this calculation is determine by this parameter. + + +Return Value +------------ +The calculated buffer size in frames. + + +Thread Safety +------------- +This is safe so long as nothing modifies `pDescriptor` at the same time. However, this function +should only ever be called from within the backend's device initialization routine and therefore +shouldn't have any multithreading concerns. + + +Callback Safety +--------------- +This is safe to call within the data callback, but there is no reason to ever do this. + + +Remarks +------- +If `nativeSampleRate` is zero, this function will fall back to `pDescriptor->sampleRate`. If that +is also zero, `MA_DEFAULT_SAMPLE_RATE` will be used instead. +*/ +MA_API ma_uint32 ma_calculate_buffer_size_in_frames_from_descriptor(const ma_device_descriptor* pDescriptor, ma_uint32 nativeSampleRate, ma_performance_profile performanceProfile); + + + +/* +Retrieves a friendly name for a backend. +*/ +MA_API const char* ma_get_backend_name(ma_backend backend); + +/* +Determines whether or not the given backend is available by the compilation environment. +*/ +MA_API ma_bool32 ma_is_backend_enabled(ma_backend backend); + +/* +Retrieves compile-time enabled backends. + + +Parameters +---------- +pBackends (out, optional) + A pointer to the buffer that will receive the enabled backends. Set to NULL to retrieve the backend count. Setting + the capacity of the buffer to `MA_BUFFER_COUNT` will guarantee it's large enough for all backends. + +backendCap (in) + The capacity of the `pBackends` buffer. + +pBackendCount (out) + A pointer to the variable that will receive the enabled backend count. + + +Return Value +------------ +MA_SUCCESS if successful. +MA_INVALID_ARGS if `pBackendCount` is NULL. +MA_NO_SPACE if the capacity of `pBackends` is not large enough. + +If `MA_NO_SPACE` is returned, the `pBackends` buffer will be filled with `*pBackendCount` values. + + +Thread Safety +------------- +Safe. + + +Callback Safety +--------------- +Safe. + + +Remarks +------- +If you want to retrieve the number of backends so you can determine the capacity of `pBackends` buffer, you can call +this function with `pBackends` set to NULL. + +This will also enumerate the null backend. If you don't want to include this you need to check for `ma_backend_null` +when you enumerate over the returned backends and handle it appropriately. Alternatively, you can disable it at +compile time with `MA_NO_NULL`. + +The returned backends are determined based on compile time settings, not the platform it's currently running on. For +example, PulseAudio will be returned if it was enabled at compile time, even when the user doesn't actually have +PulseAudio installed. + + +Example 1 +--------- +The example below retrieves the enabled backend count using a fixed sized buffer allocated on the stack. The buffer is +given a capacity of `MA_BACKEND_COUNT` which will guarantee it'll be large enough to store all available backends. +Since `MA_BACKEND_COUNT` is always a relatively small value, this should be suitable for most scenarios. + +``` +ma_backend enabledBackends[MA_BACKEND_COUNT]; +size_t enabledBackendCount; + +result = ma_get_enabled_backends(enabledBackends, MA_BACKEND_COUNT, &enabledBackendCount); +if (result != MA_SUCCESS) { + // Failed to retrieve enabled backends. Should never happen in this example since all inputs are valid. +} +``` + + +See Also +-------- +ma_is_backend_enabled() +*/ +MA_API ma_result ma_get_enabled_backends(ma_backend* pBackends, size_t backendCap, size_t* pBackendCount); + +/* +Determines whether or not loopback mode is support by a backend. +*/ +MA_API ma_bool32 ma_is_loopback_supported(ma_backend backend); + +#endif /* MA_NO_DEVICE_IO */ + + +#ifndef MA_NO_THREADING + +/* +Locks a spinlock. +*/ +MA_API ma_result ma_spinlock_lock(volatile ma_spinlock* pSpinlock); + +/* +Locks a spinlock, but does not yield() when looping. +*/ +MA_API ma_result ma_spinlock_lock_noyield(volatile ma_spinlock* pSpinlock); + +/* +Unlocks a spinlock. +*/ +MA_API ma_result ma_spinlock_unlock(volatile ma_spinlock* pSpinlock); + + +/* +Creates a mutex. + +A mutex must be created from a valid context. A mutex is initially unlocked. +*/ +MA_API ma_result ma_mutex_init(ma_mutex* pMutex); + +/* +Deletes a mutex. +*/ +MA_API void ma_mutex_uninit(ma_mutex* pMutex); + +/* +Locks a mutex with an infinite timeout. +*/ +MA_API void ma_mutex_lock(ma_mutex* pMutex); + +/* +Unlocks a mutex. +*/ +MA_API void ma_mutex_unlock(ma_mutex* pMutex); + + +/* +Initializes an auto-reset event. +*/ +MA_API ma_result ma_event_init(ma_event* pEvent); + +/* +Uninitializes an auto-reset event. +*/ +MA_API void ma_event_uninit(ma_event* pEvent); + +/* +Waits for the specified auto-reset event to become signalled. +*/ +MA_API ma_result ma_event_wait(ma_event* pEvent); + +/* +Signals the specified auto-reset event. +*/ +MA_API ma_result ma_event_signal(ma_event* pEvent); +#endif /* MA_NO_THREADING */ + + +/************************************************************************************************************************************************************ + +Utiltities + +************************************************************************************************************************************************************/ + +/* +Adjust buffer size based on a scaling factor. + +This just multiplies the base size by the scaling factor, making sure it's a size of at least 1. +*/ +MA_API ma_uint32 ma_scale_buffer_size(ma_uint32 baseBufferSize, float scale); + +/* +Calculates a buffer size in milliseconds from the specified number of frames and sample rate. +*/ +MA_API ma_uint32 ma_calculate_buffer_size_in_milliseconds_from_frames(ma_uint32 bufferSizeInFrames, ma_uint32 sampleRate); + +/* +Calculates a buffer size in frames from the specified number of milliseconds and sample rate. +*/ +MA_API ma_uint32 ma_calculate_buffer_size_in_frames_from_milliseconds(ma_uint32 bufferSizeInMilliseconds, ma_uint32 sampleRate); + +/* +Copies PCM frames from one buffer to another. +*/ +MA_API void ma_copy_pcm_frames(void* dst, const void* src, ma_uint64 frameCount, ma_format format, ma_uint32 channels); + +/* +Copies silent frames into the given buffer. + +Remarks +------- +For all formats except `ma_format_u8`, the output buffer will be filled with 0. For `ma_format_u8` it will be filled with 128. The reason for this is that it +makes more sense for the purpose of mixing to initialize it to the center point. +*/ +MA_API void ma_silence_pcm_frames(void* p, ma_uint64 frameCount, ma_format format, ma_uint32 channels); +static MA_INLINE void ma_zero_pcm_frames(void* p, ma_uint64 frameCount, ma_format format, ma_uint32 channels) { ma_silence_pcm_frames(p, frameCount, format, channels); } + + +/* +Offsets a pointer by the specified number of PCM frames. +*/ +MA_API void* ma_offset_pcm_frames_ptr(void* p, ma_uint64 offsetInFrames, ma_format format, ma_uint32 channels); +MA_API const void* ma_offset_pcm_frames_const_ptr(const void* p, ma_uint64 offsetInFrames, ma_format format, ma_uint32 channels); +static MA_INLINE float* ma_offset_pcm_frames_ptr_f32(float* p, ma_uint64 offsetInFrames, ma_uint32 channels) { return (float*)ma_offset_pcm_frames_ptr((void*)p, offsetInFrames, ma_format_f32, channels); } +static MA_INLINE const float* ma_offset_pcm_frames_const_ptr_f32(const float* p, ma_uint64 offsetInFrames, ma_uint32 channels) { return (const float*)ma_offset_pcm_frames_const_ptr((const void*)p, offsetInFrames, ma_format_f32, channels); } + + +/* +Clips f32 samples. +*/ +MA_API void ma_clip_samples_f32(float* p, ma_uint64 sampleCount); +static MA_INLINE void ma_clip_pcm_frames_f32(float* p, ma_uint64 frameCount, ma_uint32 channels) { ma_clip_samples_f32(p, frameCount*channels); } + +/* +Helper for applying a volume factor to samples. + +Note that the source and destination buffers can be the same, in which case it'll perform the operation in-place. +*/ +MA_API void ma_copy_and_apply_volume_factor_u8(ma_uint8* pSamplesOut, const ma_uint8* pSamplesIn, ma_uint64 sampleCount, float factor); +MA_API void ma_copy_and_apply_volume_factor_s16(ma_int16* pSamplesOut, const ma_int16* pSamplesIn, ma_uint64 sampleCount, float factor); +MA_API void ma_copy_and_apply_volume_factor_s24(void* pSamplesOut, const void* pSamplesIn, ma_uint64 sampleCount, float factor); +MA_API void ma_copy_and_apply_volume_factor_s32(ma_int32* pSamplesOut, const ma_int32* pSamplesIn, ma_uint64 sampleCount, float factor); +MA_API void ma_copy_and_apply_volume_factor_f32(float* pSamplesOut, const float* pSamplesIn, ma_uint64 sampleCount, float factor); + +MA_API void ma_apply_volume_factor_u8(ma_uint8* pSamples, ma_uint64 sampleCount, float factor); +MA_API void ma_apply_volume_factor_s16(ma_int16* pSamples, ma_uint64 sampleCount, float factor); +MA_API void ma_apply_volume_factor_s24(void* pSamples, ma_uint64 sampleCount, float factor); +MA_API void ma_apply_volume_factor_s32(ma_int32* pSamples, ma_uint64 sampleCount, float factor); +MA_API void ma_apply_volume_factor_f32(float* pSamples, ma_uint64 sampleCount, float factor); + +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_u8(ma_uint8* pPCMFramesOut, const ma_uint8* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_s16(ma_int16* pPCMFramesOut, const ma_int16* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_s24(void* pPCMFramesOut, const void* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_s32(ma_int32* pPCMFramesOut, const ma_int32* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_f32(float* pPCMFramesOut, const float* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_copy_and_apply_volume_factor_pcm_frames(void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount, ma_format format, ma_uint32 channels, float factor); + +MA_API void ma_apply_volume_factor_pcm_frames_u8(ma_uint8* pFrames, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_apply_volume_factor_pcm_frames_s16(ma_int16* pFrames, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_apply_volume_factor_pcm_frames_s24(void* pFrames, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_apply_volume_factor_pcm_frames_s32(ma_int32* pFrames, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_apply_volume_factor_pcm_frames_f32(float* pFrames, ma_uint64 frameCount, ma_uint32 channels, float factor); +MA_API void ma_apply_volume_factor_pcm_frames(void* pFrames, ma_uint64 frameCount, ma_format format, ma_uint32 channels, float factor); + + +/* +Helper for converting a linear factor to gain in decibels. +*/ +MA_API float ma_factor_to_gain_db(float factor); + +/* +Helper for converting gain in decibels to a linear factor. +*/ +MA_API float ma_gain_db_to_factor(float gain); + + +typedef void ma_data_source; + +typedef struct +{ + ma_result (* onRead)(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); + ma_result (* onSeek)(ma_data_source* pDataSource, ma_uint64 frameIndex); + ma_result (* onMap)(ma_data_source* pDataSource, void** ppFramesOut, ma_uint64* pFrameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ + ma_result (* onUnmap)(ma_data_source* pDataSource, ma_uint64 frameCount); + ma_result (* onGetDataFormat)(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate); + ma_result (* onGetCursor)(ma_data_source* pDataSource, ma_uint64* pCursor); + ma_result (* onGetLength)(ma_data_source* pDataSource, ma_uint64* pLength); +} ma_data_source_callbacks; + +MA_API ma_result ma_data_source_read_pcm_frames(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead, ma_bool32 loop); /* Must support pFramesOut = NULL in which case a forward seek should be performed. */ +MA_API ma_result ma_data_source_seek_pcm_frames(ma_data_source* pDataSource, ma_uint64 frameCount, ma_uint64* pFramesSeeked, ma_bool32 loop); /* Can only seek forward. Equivalent to ma_data_source_read_pcm_frames(pDataSource, NULL, frameCount); */ +MA_API ma_result ma_data_source_seek_to_pcm_frame(ma_data_source* pDataSource, ma_uint64 frameIndex); +MA_API ma_result ma_data_source_map(ma_data_source* pDataSource, void** ppFramesOut, ma_uint64* pFrameCount); +MA_API ma_result ma_data_source_unmap(ma_data_source* pDataSource, ma_uint64 frameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ +MA_API ma_result ma_data_source_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate); +MA_API ma_result ma_data_source_get_cursor_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pCursor); +MA_API ma_result ma_data_source_get_length_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pLength); /* Returns MA_NOT_IMPLEMENTED if the length is unknown or cannot be determined. Decoders can return this. */ + + + + +typedef struct +{ + ma_data_source_callbacks ds; + ma_format format; + ma_uint32 channels; + ma_uint64 cursor; + ma_uint64 sizeInFrames; + const void* pData; +} ma_audio_buffer_ref; + +MA_API ma_result ma_audio_buffer_ref_init(ma_format format, ma_uint32 channels, const void* pData, ma_uint64 sizeInFrames, ma_audio_buffer_ref* pAudioBufferRef); +MA_API ma_result ma_audio_buffer_ref_set_data(ma_audio_buffer_ref* pAudioBufferRef, const void* pData, ma_uint64 sizeInFrames); +MA_API ma_uint64 ma_audio_buffer_ref_read_pcm_frames(ma_audio_buffer_ref* pAudioBufferRef, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop); +MA_API ma_result ma_audio_buffer_ref_seek_to_pcm_frame(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameIndex); +MA_API ma_result ma_audio_buffer_ref_map(ma_audio_buffer_ref* pAudioBufferRef, void** ppFramesOut, ma_uint64* pFrameCount); +MA_API ma_result ma_audio_buffer_ref_unmap(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ +MA_API ma_result ma_audio_buffer_ref_at_end(ma_audio_buffer_ref* pAudioBufferRef); +MA_API ma_result ma_audio_buffer_ref_get_available_frames(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pAvailableFrames); + + + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint64 sizeInFrames; + const void* pData; /* If set to NULL, will allocate a block of memory for you. */ + ma_allocation_callbacks allocationCallbacks; +} ma_audio_buffer_config; + +MA_API ma_audio_buffer_config ma_audio_buffer_config_init(ma_format format, ma_uint32 channels, ma_uint64 sizeInFrames, const void* pData, const ma_allocation_callbacks* pAllocationCallbacks); + +typedef struct +{ + ma_audio_buffer_ref ref; + ma_allocation_callbacks allocationCallbacks; + ma_bool32 ownsData; /* Used to control whether or not miniaudio owns the data buffer. If set to true, pData will be freed in ma_audio_buffer_uninit(). */ + ma_uint8 _pExtraData[1]; /* For allocating a buffer with the memory located directly after the other memory of the structure. */ +} ma_audio_buffer; + +MA_API ma_result ma_audio_buffer_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer); +MA_API ma_result ma_audio_buffer_init_copy(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer); +MA_API ma_result ma_audio_buffer_alloc_and_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer** ppAudioBuffer); /* Always copies the data. Doesn't make sense to use this otherwise. Use ma_audio_buffer_uninit_and_free() to uninit. */ +MA_API void ma_audio_buffer_uninit(ma_audio_buffer* pAudioBuffer); +MA_API void ma_audio_buffer_uninit_and_free(ma_audio_buffer* pAudioBuffer); +MA_API ma_uint64 ma_audio_buffer_read_pcm_frames(ma_audio_buffer* pAudioBuffer, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop); +MA_API ma_result ma_audio_buffer_seek_to_pcm_frame(ma_audio_buffer* pAudioBuffer, ma_uint64 frameIndex); +MA_API ma_result ma_audio_buffer_map(ma_audio_buffer* pAudioBuffer, void** ppFramesOut, ma_uint64* pFrameCount); +MA_API ma_result ma_audio_buffer_unmap(ma_audio_buffer* pAudioBuffer, ma_uint64 frameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ +MA_API ma_result ma_audio_buffer_at_end(ma_audio_buffer* pAudioBuffer); +MA_API ma_result ma_audio_buffer_get_available_frames(ma_audio_buffer* pAudioBuffer, ma_uint64* pAvailableFrames); + + + +/************************************************************************************************************************************************************ + +VFS +=== + +The VFS object (virtual file system) is what's used to customize file access. This is useful in cases where stdio FILE* based APIs may not be entirely +appropriate for a given situation. + +************************************************************************************************************************************************************/ +typedef void ma_vfs; +typedef ma_handle ma_vfs_file; + +#define MA_OPEN_MODE_READ 0x00000001 +#define MA_OPEN_MODE_WRITE 0x00000002 + +typedef enum +{ + ma_seek_origin_start, + ma_seek_origin_current, + ma_seek_origin_end /* Not used by decoders. */ +} ma_seek_origin; + +typedef struct +{ + ma_uint64 sizeInBytes; +} ma_file_info; + +typedef struct +{ + ma_result (* onOpen) (ma_vfs* pVFS, const char* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile); + ma_result (* onOpenW)(ma_vfs* pVFS, const wchar_t* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile); + ma_result (* onClose)(ma_vfs* pVFS, ma_vfs_file file); + ma_result (* onRead) (ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t sizeInBytes, size_t* pBytesRead); + ma_result (* onWrite)(ma_vfs* pVFS, ma_vfs_file file, const void* pSrc, size_t sizeInBytes, size_t* pBytesWritten); + ma_result (* onSeek) (ma_vfs* pVFS, ma_vfs_file file, ma_int64 offset, ma_seek_origin origin); + ma_result (* onTell) (ma_vfs* pVFS, ma_vfs_file file, ma_int64* pCursor); + ma_result (* onInfo) (ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo); +} ma_vfs_callbacks; + +MA_API ma_result ma_vfs_open(ma_vfs* pVFS, const char* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile); +MA_API ma_result ma_vfs_open_w(ma_vfs* pVFS, const wchar_t* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile); +MA_API ma_result ma_vfs_close(ma_vfs* pVFS, ma_vfs_file file); +MA_API ma_result ma_vfs_read(ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t sizeInBytes, size_t* pBytesRead); +MA_API ma_result ma_vfs_write(ma_vfs* pVFS, ma_vfs_file file, const void* pSrc, size_t sizeInBytes, size_t* pBytesWritten); +MA_API ma_result ma_vfs_seek(ma_vfs* pVFS, ma_vfs_file file, ma_int64 offset, ma_seek_origin origin); +MA_API ma_result ma_vfs_tell(ma_vfs* pVFS, ma_vfs_file file, ma_int64* pCursor); +MA_API ma_result ma_vfs_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo); +MA_API ma_result ma_vfs_open_and_read_file(ma_vfs* pVFS, const char* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks); + +typedef struct +{ + ma_vfs_callbacks cb; + ma_allocation_callbacks allocationCallbacks; /* Only used for the wchar_t version of open() on non-Windows platforms. */ +} ma_default_vfs; + +MA_API ma_result ma_default_vfs_init(ma_default_vfs* pVFS, const ma_allocation_callbacks* pAllocationCallbacks); + + + + +#if !defined(MA_NO_DECODING) || !defined(MA_NO_ENCODING) +typedef enum +{ + ma_resource_format_wav +} ma_resource_format; +#endif + +/************************************************************************************************************************************************************ + +Decoding +======== + +Decoders are independent of the main device API. Decoding APIs can be called freely inside the device's data callback, but they are not thread safe unless +you do your own synchronization. + +************************************************************************************************************************************************************/ +#ifndef MA_NO_DECODING +typedef struct ma_decoder ma_decoder; + +typedef size_t (* ma_decoder_read_proc) (ma_decoder* pDecoder, void* pBufferOut, size_t bytesToRead); /* Returns the number of bytes read. */ +typedef ma_bool32 (* ma_decoder_seek_proc) (ma_decoder* pDecoder, int byteOffset, ma_seek_origin origin); /* Origin will never be ma_seek_origin_end. */ +typedef ma_uint64 (* ma_decoder_read_pcm_frames_proc) (ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount); /* Returns the number of frames read. Output data is in internal format. */ +typedef ma_result (* ma_decoder_seek_to_pcm_frame_proc) (ma_decoder* pDecoder, ma_uint64 frameIndex); +typedef ma_result (* ma_decoder_uninit_proc) (ma_decoder* pDecoder); +typedef ma_uint64 (* ma_decoder_get_length_in_pcm_frames_proc)(ma_decoder* pDecoder); + +typedef struct +{ + ma_format format; /* Set to 0 or ma_format_unknown to use the stream's internal format. */ + ma_uint32 channels; /* Set to 0 to use the stream's internal channels. */ + ma_uint32 sampleRate; /* Set to 0 to use the stream's internal sample rate. */ + ma_channel channelMap[MA_MAX_CHANNELS]; + ma_channel_mix_mode channelMixMode; + ma_dither_mode ditherMode; + struct + { + ma_resample_algorithm algorithm; + struct + { + ma_uint32 lpfOrder; + } linear; + struct + { + int quality; + } speex; + } resampling; + ma_allocation_callbacks allocationCallbacks; +} ma_decoder_config; + +struct ma_decoder +{ + ma_data_source_callbacks ds; + ma_decoder_read_proc onRead; + ma_decoder_seek_proc onSeek; + void* pUserData; + ma_uint64 readPointerInBytes; /* In internal encoded data. */ + ma_uint64 readPointerInPCMFrames; /* In output sample rate. Used for keeping track of how many frames are available for decoding. */ + ma_format internalFormat; + ma_uint32 internalChannels; + ma_uint32 internalSampleRate; + ma_channel internalChannelMap[MA_MAX_CHANNELS]; + ma_format outputFormat; + ma_uint32 outputChannels; + ma_uint32 outputSampleRate; + ma_channel outputChannelMap[MA_MAX_CHANNELS]; + ma_data_converter converter; /* <-- Data conversion is achieved by running frames through this. */ + ma_allocation_callbacks allocationCallbacks; + ma_decoder_read_pcm_frames_proc onReadPCMFrames; + ma_decoder_seek_to_pcm_frame_proc onSeekToPCMFrame; + ma_decoder_uninit_proc onUninit; + ma_decoder_get_length_in_pcm_frames_proc onGetLengthInPCMFrames; + void* pInternalDecoder; /* <-- The drwav/drflac/stb_vorbis/etc. objects. */ + union + { + struct + { + ma_vfs* pVFS; + ma_vfs_file file; + } vfs; + struct + { + const ma_uint8* pData; + size_t dataSize; + size_t currentReadPos; + } memory; /* Only used for decoders that were opened against a block of memory. */ + } backend; +}; + +MA_API ma_decoder_config ma_decoder_config_init(ma_format outputFormat, ma_uint32 outputChannels, ma_uint32 outputSampleRate); + +MA_API ma_result ma_decoder_init(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_wav(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_flac(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_mp3(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vorbis(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_raw(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfigIn, const ma_decoder_config* pConfigOut, ma_decoder* pDecoder); + +MA_API ma_result ma_decoder_init_memory(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_memory_wav(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_memory_flac(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_memory_mp3(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_memory_vorbis(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_memory_raw(const void* pData, size_t dataSize, const ma_decoder_config* pConfigIn, const ma_decoder_config* pConfigOut, ma_decoder* pDecoder); + +MA_API ma_result ma_decoder_init_vfs(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_wav(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_flac(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_mp3(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_vorbis(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); + +MA_API ma_result ma_decoder_init_vfs_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_wav_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_flac_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_mp3_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_vfs_vorbis_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); + +MA_API ma_result ma_decoder_init_file(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_wav(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_flac(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_mp3(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_vorbis(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); + +MA_API ma_result ma_decoder_init_file_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_wav_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_flac_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_mp3_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +MA_API ma_result ma_decoder_init_file_vorbis_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); + +MA_API ma_result ma_decoder_uninit(ma_decoder* pDecoder); + +/* +Retrieves the current position of the read cursor in PCM frames. +*/ +MA_API ma_result ma_decoder_get_cursor_in_pcm_frames(ma_decoder* pDecoder, ma_uint64* pCursor); + +/* +Retrieves the length of the decoder in PCM frames. + +Do not call this on streams of an undefined length, such as internet radio. + +If the length is unknown or an error occurs, 0 will be returned. + +This will always return 0 for Vorbis decoders. This is due to a limitation with stb_vorbis in push mode which is what miniaudio +uses internally. + +For MP3's, this will decode the entire file. Do not call this in time critical scenarios. + +This function is not thread safe without your own synchronization. +*/ +MA_API ma_uint64 ma_decoder_get_length_in_pcm_frames(ma_decoder* pDecoder); + +/* +Reads PCM frames from the given decoder. + +This is not thread safe without your own synchronization. +*/ +MA_API ma_uint64 ma_decoder_read_pcm_frames(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount); + +/* +Seeks to a PCM frame based on it's absolute index. + +This is not thread safe without your own synchronization. +*/ +MA_API ma_result ma_decoder_seek_to_pcm_frame(ma_decoder* pDecoder, ma_uint64 frameIndex); + +/* +Retrieves the number of frames that can be read before reaching the end. + +This calls `ma_decoder_get_length_in_pcm_frames()` so you need to be aware of the rules for that function, in +particular ensuring you do not call it on streams of an undefined length, such as internet radio. + +If the total length of the decoder cannot be retrieved, such as with Vorbis decoders, `MA_NOT_IMPLEMENTED` will be +returned. +*/ +MA_API ma_result ma_decoder_get_available_frames(ma_decoder* pDecoder, ma_uint64* pAvailableFrames); + +/* +Helper for opening and decoding a file into a heap allocated block of memory. Free the returned pointer with ma_free(). On input, +pConfig should be set to what you want. On output it will be set to what you got. +*/ +MA_API ma_result ma_decode_from_vfs(ma_vfs* pVFS, const char* pFilePath, ma_decoder_config* pConfig, ma_uint64* pFrameCountOut, void** ppPCMFramesOut); +MA_API ma_result ma_decode_file(const char* pFilePath, ma_decoder_config* pConfig, ma_uint64* pFrameCountOut, void** ppPCMFramesOut); +MA_API ma_result ma_decode_memory(const void* pData, size_t dataSize, ma_decoder_config* pConfig, ma_uint64* pFrameCountOut, void** ppPCMFramesOut); + +#endif /* MA_NO_DECODING */ + + +/************************************************************************************************************************************************************ + +Encoding +======== + +Encoders do not perform any format conversion for you. If your target format does not support the format, and error will be returned. + +************************************************************************************************************************************************************/ +#ifndef MA_NO_ENCODING +typedef struct ma_encoder ma_encoder; + +typedef size_t (* ma_encoder_write_proc) (ma_encoder* pEncoder, const void* pBufferIn, size_t bytesToWrite); /* Returns the number of bytes written. */ +typedef ma_bool32 (* ma_encoder_seek_proc) (ma_encoder* pEncoder, int byteOffset, ma_seek_origin origin); +typedef ma_result (* ma_encoder_init_proc) (ma_encoder* pEncoder); +typedef void (* ma_encoder_uninit_proc) (ma_encoder* pEncoder); +typedef ma_uint64 (* ma_encoder_write_pcm_frames_proc)(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount); + +typedef struct +{ + ma_resource_format resourceFormat; + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_allocation_callbacks allocationCallbacks; +} ma_encoder_config; + +MA_API ma_encoder_config ma_encoder_config_init(ma_resource_format resourceFormat, ma_format format, ma_uint32 channels, ma_uint32 sampleRate); + +struct ma_encoder +{ + ma_encoder_config config; + ma_encoder_write_proc onWrite; + ma_encoder_seek_proc onSeek; + ma_encoder_init_proc onInit; + ma_encoder_uninit_proc onUninit; + ma_encoder_write_pcm_frames_proc onWritePCMFrames; + void* pUserData; + void* pInternalEncoder; /* <-- The drwav/drflac/stb_vorbis/etc. objects. */ + void* pFile; /* FILE*. Only used when initialized with ma_encoder_init_file(). */ +}; + +MA_API ma_result ma_encoder_init(ma_encoder_write_proc onWrite, ma_encoder_seek_proc onSeek, void* pUserData, const ma_encoder_config* pConfig, ma_encoder* pEncoder); +MA_API ma_result ma_encoder_init_file(const char* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder); +MA_API ma_result ma_encoder_init_file_w(const wchar_t* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder); +MA_API void ma_encoder_uninit(ma_encoder* pEncoder); +MA_API ma_uint64 ma_encoder_write_pcm_frames(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount); + +#endif /* MA_NO_ENCODING */ + + +/************************************************************************************************************************************************************ + +Generation + +************************************************************************************************************************************************************/ +#ifndef MA_NO_GENERATION +typedef enum +{ + ma_waveform_type_sine, + ma_waveform_type_square, + ma_waveform_type_triangle, + ma_waveform_type_sawtooth +} ma_waveform_type; + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_waveform_type type; + double amplitude; + double frequency; +} ma_waveform_config; + +MA_API ma_waveform_config ma_waveform_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_waveform_type type, double amplitude, double frequency); + +typedef struct +{ + ma_data_source_callbacks ds; + ma_waveform_config config; + double advance; + double time; +} ma_waveform; + +MA_API ma_result ma_waveform_init(const ma_waveform_config* pConfig, ma_waveform* pWaveform); +MA_API ma_uint64 ma_waveform_read_pcm_frames(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount); +MA_API ma_result ma_waveform_seek_to_pcm_frame(ma_waveform* pWaveform, ma_uint64 frameIndex); +MA_API ma_result ma_waveform_set_amplitude(ma_waveform* pWaveform, double amplitude); +MA_API ma_result ma_waveform_set_frequency(ma_waveform* pWaveform, double frequency); +MA_API ma_result ma_waveform_set_type(ma_waveform* pWaveform, ma_waveform_type type); +MA_API ma_result ma_waveform_set_sample_rate(ma_waveform* pWaveform, ma_uint32 sampleRate); + +typedef enum +{ + ma_noise_type_white, + ma_noise_type_pink, + ma_noise_type_brownian +} ma_noise_type; + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_noise_type type; + ma_int32 seed; + double amplitude; + ma_bool32 duplicateChannels; +} ma_noise_config; + +MA_API ma_noise_config ma_noise_config_init(ma_format format, ma_uint32 channels, ma_noise_type type, ma_int32 seed, double amplitude); + +typedef struct +{ + ma_data_source_callbacks ds; + ma_noise_config config; + ma_lcg lcg; + union + { + struct + { + double bin[MA_MAX_CHANNELS][16]; + double accumulation[MA_MAX_CHANNELS]; + ma_uint32 counter[MA_MAX_CHANNELS]; + } pink; + struct + { + double accumulation[MA_MAX_CHANNELS]; + } brownian; + } state; +} ma_noise; + +MA_API ma_result ma_noise_init(const ma_noise_config* pConfig, ma_noise* pNoise); +MA_API ma_uint64 ma_noise_read_pcm_frames(ma_noise* pNoise, void* pFramesOut, ma_uint64 frameCount); +MA_API ma_result ma_noise_set_amplitude(ma_noise* pNoise, double amplitude); +MA_API ma_result ma_noise_set_seed(ma_noise* pNoise, ma_int32 seed); +MA_API ma_result ma_noise_set_type(ma_noise* pNoise, ma_noise_type type); + +#endif /* MA_NO_GENERATION */ + +#ifdef __cplusplus +} +#endif +#endif /* miniaudio_h */ + + + +/************************************************************************************************************************************************************ +************************************************************************************************************************************************************* + +IMPLEMENTATION + +************************************************************************************************************************************************************* +************************************************************************************************************************************************************/ +#if defined(MINIAUDIO_IMPLEMENTATION) || defined(MA_IMPLEMENTATION) +#ifndef miniaudio_c +#define miniaudio_c + +#include +#include /* For INT_MAX */ +#include /* sin(), etc. */ + +#include +#include +#if !defined(_MSC_VER) && !defined(__DMC__) + #include /* For strcasecmp(). */ + #include /* For wcslen(), wcsrtombs() */ +#endif + +#ifdef MA_WIN32 +#include +#else +#include /* For malloc(), free(), wcstombs(). */ +#include /* For memset() */ +#include +#include /* select() (used for ma_sleep()). */ +#endif + +#include /* For fstat(), etc. */ + +#ifdef MA_EMSCRIPTEN +#include +#endif + +#if !defined(MA_64BIT) && !defined(MA_32BIT) +#ifdef _WIN32 +#ifdef _WIN64 +#define MA_64BIT +#else +#define MA_32BIT +#endif +#endif +#endif + +#if !defined(MA_64BIT) && !defined(MA_32BIT) +#ifdef __GNUC__ +#ifdef __LP64__ +#define MA_64BIT +#else +#define MA_32BIT +#endif +#endif +#endif + +#if !defined(MA_64BIT) && !defined(MA_32BIT) +#include +#if INTPTR_MAX == INT64_MAX +#define MA_64BIT +#else +#define MA_32BIT +#endif +#endif + +/* Architecture Detection */ +#if defined(__x86_64__) || defined(_M_X64) +#define MA_X64 +#elif defined(__i386) || defined(_M_IX86) +#define MA_X86 +#elif defined(__arm__) || defined(_M_ARM) +#define MA_ARM +#endif + +/* Cannot currently support AVX-512 if AVX is disabled. */ +#if !defined(MA_NO_AVX512) && defined(MA_NO_AVX2) +#define MA_NO_AVX512 +#endif + +/* Intrinsics Support */ +#if defined(MA_X64) || defined(MA_X86) + #if defined(_MSC_VER) && !defined(__clang__) + /* MSVC. */ + #if _MSC_VER >= 1400 && !defined(MA_NO_SSE2) /* 2005 */ + #define MA_SUPPORT_SSE2 + #endif + /*#if _MSC_VER >= 1600 && !defined(MA_NO_AVX)*/ /* 2010 */ + /* #define MA_SUPPORT_AVX*/ + /*#endif*/ + #if _MSC_VER >= 1700 && !defined(MA_NO_AVX2) /* 2012 */ + #define MA_SUPPORT_AVX2 + #endif + #if _MSC_VER >= 1910 && !defined(MA_NO_AVX512) /* 2017 */ + #define MA_SUPPORT_AVX512 + #endif + #else + /* Assume GNUC-style. */ + #if defined(__SSE2__) && !defined(MA_NO_SSE2) + #define MA_SUPPORT_SSE2 + #endif + /*#if defined(__AVX__) && !defined(MA_NO_AVX)*/ + /* #define MA_SUPPORT_AVX*/ + /*#endif*/ + #if defined(__AVX2__) && !defined(MA_NO_AVX2) + #define MA_SUPPORT_AVX2 + #endif + #if defined(__AVX512F__) && !defined(MA_NO_AVX512) + #define MA_SUPPORT_AVX512 + #endif + #endif + + /* If at this point we still haven't determined compiler support for the intrinsics just fall back to __has_include. */ + #if !defined(__GNUC__) && !defined(__clang__) && defined(__has_include) + #if !defined(MA_SUPPORT_SSE2) && !defined(MA_NO_SSE2) && __has_include() + #define MA_SUPPORT_SSE2 + #endif + /*#if !defined(MA_SUPPORT_AVX) && !defined(MA_NO_AVX) && __has_include()*/ + /* #define MA_SUPPORT_AVX*/ + /*#endif*/ + #if !defined(MA_SUPPORT_AVX2) && !defined(MA_NO_AVX2) && __has_include() + #define MA_SUPPORT_AVX2 + #endif + #if !defined(MA_SUPPORT_AVX512) && !defined(MA_NO_AVX512) && __has_include() + #define MA_SUPPORT_AVX512 + #endif + #endif + + #if defined(MA_SUPPORT_AVX512) + #include /* Not a mistake. Intentionally including instead of because otherwise the compiler will complain. */ + #elif defined(MA_SUPPORT_AVX2) || defined(MA_SUPPORT_AVX) + #include + #elif defined(MA_SUPPORT_SSE2) + #include + #endif +#endif + +#if defined(MA_ARM) + #if !defined(MA_NO_NEON) && (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + #define MA_SUPPORT_NEON + #endif + + /* Fall back to looking for the #include file. */ + #if !defined(__GNUC__) && !defined(__clang__) && defined(__has_include) + #if !defined(MA_SUPPORT_NEON) && !defined(MA_NO_NEON) && __has_include() + #define MA_SUPPORT_NEON + #endif + #endif + + #if defined(MA_SUPPORT_NEON) + #include + #endif +#endif + +/* Begin globally disabled warnings. */ +#if defined(_MSC_VER) + #pragma warning(push) + #pragma warning(disable:4752) /* found Intel(R) Advanced Vector Extensions; consider using /arch:AVX */ +#endif + +#if defined(MA_X64) || defined(MA_X86) + #if defined(_MSC_VER) && !defined(__clang__) + #if _MSC_VER >= 1400 + #include + static MA_INLINE void ma_cpuid(int info[4], int fid) + { + __cpuid(info, fid); + } + #else + #define MA_NO_CPUID + #endif + + #if _MSC_VER >= 1600 && (defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 160040219) + static MA_INLINE unsigned __int64 ma_xgetbv(int reg) + { + return _xgetbv(reg); + } + #else + #define MA_NO_XGETBV + #endif + #elif (defined(__GNUC__) || defined(__clang__)) && !defined(MA_ANDROID) + static MA_INLINE void ma_cpuid(int info[4], int fid) + { + /* + It looks like the -fPIC option uses the ebx register which GCC complains about. We can work around this by just using a different register, the + specific register of which I'm letting the compiler decide on. The "k" prefix is used to specify a 32-bit register. The {...} syntax is for + supporting different assembly dialects. + + What's basically happening is that we're saving and restoring the ebx register manually. + */ + #if defined(DRFLAC_X86) && defined(__PIC__) + __asm__ __volatile__ ( + "xchg{l} {%%}ebx, %k1;" + "cpuid;" + "xchg{l} {%%}ebx, %k1;" + : "=a"(info[0]), "=&r"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #else + __asm__ __volatile__ ( + "cpuid" : "=a"(info[0]), "=b"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #endif + } + + static MA_INLINE ma_uint64 ma_xgetbv(int reg) + { + unsigned int hi; + unsigned int lo; + + __asm__ __volatile__ ( + "xgetbv" : "=a"(lo), "=d"(hi) : "c"(reg) + ); + + return ((ma_uint64)hi << 32) | (ma_uint64)lo; + } + #else + #define MA_NO_CPUID + #define MA_NO_XGETBV + #endif +#else + #define MA_NO_CPUID + #define MA_NO_XGETBV +#endif + +static MA_INLINE ma_bool32 ma_has_sse2(void) +{ +#if defined(MA_SUPPORT_SSE2) + #if (defined(MA_X64) || defined(MA_X86)) && !defined(MA_NO_SSE2) + #if defined(MA_X64) + return MA_TRUE; /* 64-bit targets always support SSE2. */ + #elif (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__) + return MA_TRUE; /* If the compiler is allowed to freely generate SSE2 code we can assume support. */ + #else + #if defined(MA_NO_CPUID) + return MA_FALSE; + #else + int info[4]; + ma_cpuid(info, 1); + return (info[3] & (1 << 26)) != 0; + #endif + #endif + #else + return MA_FALSE; /* SSE2 is only supported on x86 and x64 architectures. */ + #endif +#else + return MA_FALSE; /* No compiler support. */ +#endif +} + +#if 0 +static MA_INLINE ma_bool32 ma_has_avx() +{ +#if defined(MA_SUPPORT_AVX) + #if (defined(MA_X64) || defined(MA_X86)) && !defined(MA_NO_AVX) + #if defined(_AVX_) || defined(__AVX__) + return MA_TRUE; /* If the compiler is allowed to freely generate AVX code we can assume support. */ + #else + /* AVX requires both CPU and OS support. */ + #if defined(MA_NO_CPUID) || defined(MA_NO_XGETBV) + return MA_FALSE; + #else + int info[4]; + ma_cpuid(info, 1); + if (((info[2] & (1 << 27)) != 0) && ((info[2] & (1 << 28)) != 0)) { + ma_uint64 xrc = ma_xgetbv(0); + if ((xrc & 0x06) == 0x06) { + return MA_TRUE; + } else { + return MA_FALSE; + } + } else { + return MA_FALSE; + } + #endif + #endif + #else + return MA_FALSE; /* AVX is only supported on x86 and x64 architectures. */ + #endif +#else + return MA_FALSE; /* No compiler support. */ +#endif +} +#endif + +static MA_INLINE ma_bool32 ma_has_avx2(void) +{ +#if defined(MA_SUPPORT_AVX2) + #if (defined(MA_X64) || defined(MA_X86)) && !defined(MA_NO_AVX2) + #if defined(_AVX2_) || defined(__AVX2__) + return MA_TRUE; /* If the compiler is allowed to freely generate AVX2 code we can assume support. */ + #else + /* AVX2 requires both CPU and OS support. */ + #if defined(MA_NO_CPUID) || defined(MA_NO_XGETBV) + return MA_FALSE; + #else + int info1[4]; + int info7[4]; + ma_cpuid(info1, 1); + ma_cpuid(info7, 7); + if (((info1[2] & (1 << 27)) != 0) && ((info7[1] & (1 << 5)) != 0)) { + ma_uint64 xrc = ma_xgetbv(0); + if ((xrc & 0x06) == 0x06) { + return MA_TRUE; + } else { + return MA_FALSE; + } + } else { + return MA_FALSE; + } + #endif + #endif + #else + return MA_FALSE; /* AVX2 is only supported on x86 and x64 architectures. */ + #endif +#else + return MA_FALSE; /* No compiler support. */ +#endif +} + +static MA_INLINE ma_bool32 ma_has_avx512f(void) +{ +#if defined(MA_SUPPORT_AVX512) + #if (defined(MA_X64) || defined(MA_X86)) && !defined(MA_NO_AVX512) + #if defined(__AVX512F__) + return MA_TRUE; /* If the compiler is allowed to freely generate AVX-512F code we can assume support. */ + #else + /* AVX-512 requires both CPU and OS support. */ + #if defined(MA_NO_CPUID) || defined(MA_NO_XGETBV) + return MA_FALSE; + #else + int info1[4]; + int info7[4]; + ma_cpuid(info1, 1); + ma_cpuid(info7, 7); + if (((info1[2] & (1 << 27)) != 0) && ((info7[1] & (1 << 16)) != 0)) { + ma_uint64 xrc = ma_xgetbv(0); + if ((xrc & 0xE6) == 0xE6) { + return MA_TRUE; + } else { + return MA_FALSE; + } + } else { + return MA_FALSE; + } + #endif + #endif + #else + return MA_FALSE; /* AVX-512F is only supported on x86 and x64 architectures. */ + #endif +#else + return MA_FALSE; /* No compiler support. */ +#endif +} + +static MA_INLINE ma_bool32 ma_has_neon(void) +{ +#if defined(MA_SUPPORT_NEON) + #if defined(MA_ARM) && !defined(MA_NO_NEON) + #if (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + return MA_TRUE; /* If the compiler is allowed to freely generate NEON code we can assume support. */ + #else + /* TODO: Runtime check. */ + return MA_FALSE; + #endif + #else + return MA_FALSE; /* NEON is only supported on ARM architectures. */ + #endif +#else + return MA_FALSE; /* No compiler support. */ +#endif +} + +#define MA_SIMD_NONE 0 +#define MA_SIMD_SSE2 1 +#define MA_SIMD_AVX2 2 +#define MA_SIMD_NEON 3 + +#ifndef MA_PREFERRED_SIMD + # if defined(MA_SUPPORT_SSE2) && defined(MA_PREFER_SSE2) + #define MA_PREFERRED_SIMD MA_SIMD_SSE2 + #elif defined(MA_SUPPORT_AVX2) && defined(MA_PREFER_AVX2) + #define MA_PREFERRED_SIMD MA_SIMD_AVX2 + #elif defined(MA_SUPPORT_NEON) && defined(MA_PREFER_NEON) + #define MA_PREFERRED_SIMD MA_SIMD_NEON + #else + #define MA_PREFERRED_SIMD MA_SIMD_NONE + #endif +#endif + +#if defined(__has_builtin) + #define MA_COMPILER_HAS_BUILTIN(x) __has_builtin(x) +#else + #define MA_COMPILER_HAS_BUILTIN(x) 0 +#endif + +#ifndef MA_ASSUME + #if MA_COMPILER_HAS_BUILTIN(__builtin_assume) + #define MA_ASSUME(x) __builtin_assume(x) + #elif MA_COMPILER_HAS_BUILTIN(__builtin_unreachable) + #define MA_ASSUME(x) do { if (!(x)) __builtin_unreachable(); } while (0) + #elif defined(_MSC_VER) + #define MA_ASSUME(x) __assume(x) + #else + #define MA_ASSUME(x) while(0) + #endif +#endif + +#ifndef MA_RESTRICT + #if defined(__clang__) || defined(__GNUC__) || defined(_MSC_VER) + #define MA_RESTRICT __restrict + #else + #define MA_RESTRICT + #endif +#endif + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + #define MA_HAS_BYTESWAP16_INTRINSIC + #define MA_HAS_BYTESWAP32_INTRINSIC + #define MA_HAS_BYTESWAP64_INTRINSIC +#elif defined(__clang__) + #if MA_COMPILER_HAS_BUILTIN(__builtin_bswap16) + #define MA_HAS_BYTESWAP16_INTRINSIC + #endif + #if MA_COMPILER_HAS_BUILTIN(__builtin_bswap32) + #define MA_HAS_BYTESWAP32_INTRINSIC + #endif + #if MA_COMPILER_HAS_BUILTIN(__builtin_bswap64) + #define MA_HAS_BYTESWAP64_INTRINSIC + #endif +#elif defined(__GNUC__) + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define MA_HAS_BYTESWAP32_INTRINSIC + #define MA_HAS_BYTESWAP64_INTRINSIC + #endif + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #define MA_HAS_BYTESWAP16_INTRINSIC + #endif +#endif + + +static MA_INLINE ma_bool32 ma_is_little_endian(void) +{ +#if defined(MA_X86) || defined(MA_X64) + return MA_TRUE; +#else + int n = 1; + return (*(char*)&n) == 1; +#endif +} + +static MA_INLINE ma_bool32 ma_is_big_endian(void) +{ + return !ma_is_little_endian(); +} + + +static MA_INLINE ma_uint32 ma_swap_endian_uint32(ma_uint32 n) +{ +#ifdef MA_HAS_BYTESWAP32_INTRINSIC + #if defined(_MSC_VER) + return _byteswap_ulong(n); + #elif defined(__GNUC__) || defined(__clang__) + #if defined(MA_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(MA_64BIT) /* <-- 64-bit inline assembly has not been tested, so disabling for now. */ + /* Inline assembly optimized implementation for ARM. In my testing, GCC does not generate optimized code with __builtin_bswap32(). */ + ma_uint32 r; + __asm__ __volatile__ ( + #if defined(MA_64BIT) + "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) /* <-- This is untested. If someone in the community could test this, that would be appreciated! */ + #else + "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) + #endif + ); + return r; + #else + return __builtin_bswap32(n); + #endif + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF000000) >> 24) | + ((n & 0x00FF0000) >> 8) | + ((n & 0x0000FF00) << 8) | + ((n & 0x000000FF) << 24); +#endif +} + + +#if !defined(MA_EMSCRIPTEN) +#ifdef MA_WIN32 +static void ma_sleep__win32(ma_uint32 milliseconds) +{ + Sleep((DWORD)milliseconds); +} +#endif +#ifdef MA_POSIX +static void ma_sleep__posix(ma_uint32 milliseconds) +{ +#ifdef MA_EMSCRIPTEN + (void)milliseconds; + MA_ASSERT(MA_FALSE); /* The Emscripten build should never sleep. */ +#else + #if _POSIX_C_SOURCE >= 199309L + struct timespec ts; + ts.tv_sec = milliseconds / 1000; + ts.tv_nsec = milliseconds % 1000 * 1000000; + nanosleep(&ts, NULL); + #else + struct timeval tv; + tv.tv_sec = milliseconds / 1000; + tv.tv_usec = milliseconds % 1000 * 1000; + select(0, NULL, NULL, NULL, &tv); + #endif +#endif +} +#endif + +static void ma_sleep(ma_uint32 milliseconds) +{ +#ifdef MA_WIN32 + ma_sleep__win32(milliseconds); +#endif +#ifdef MA_POSIX + ma_sleep__posix(milliseconds); +#endif +} +#endif + +static MA_INLINE void ma_yield() +{ +#if defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64) + /* x86/x64 */ + #if (defined(_MSC_VER) || defined(__WATCOMC__) || defined(__DMC__)) && !defined(__clang__) + #if _MSC_VER >= 1400 + _mm_pause(); + #else + #if defined(__DMC__) + /* Digital Mars does not recognize the PAUSE opcode. Fall back to NOP. */ + __asm nop; + #else + __asm pause; + #endif + #endif + #else + __asm__ __volatile__ ("pause"); + #endif +#elif (defined(__arm__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7) || (defined(_M_ARM) && _M_ARM >= 7) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) + /* ARM */ + #if defined(_MSC_VER) + /* Apparently there is a __yield() intrinsic that's compatible with ARM, but I cannot find documentation for it nor can I find where it's declared. */ + __yield(); + #else + __asm__ __volatile__ ("yield"); /* ARMv6K/ARMv6T2 and above. */ + #endif +#else + /* Unknown or unsupported architecture. No-op. */ +#endif +} + + + +#ifndef MA_COINIT_VALUE +#define MA_COINIT_VALUE 0 /* 0 = COINIT_MULTITHREADED */ +#endif + + +#ifndef MA_FLT_MAX + #ifdef FLT_MAX + #define MA_FLT_MAX FLT_MAX + #else + #define MA_FLT_MAX 3.402823466e+38F + #endif +#endif + + +#ifndef MA_PI +#define MA_PI 3.14159265358979323846264f +#endif +#ifndef MA_PI_D +#define MA_PI_D 3.14159265358979323846264 +#endif +#ifndef MA_TAU +#define MA_TAU 6.28318530717958647693f +#endif +#ifndef MA_TAU_D +#define MA_TAU_D 6.28318530717958647693 +#endif + + +/* The default format when ma_format_unknown (0) is requested when initializing a device. */ +#ifndef MA_DEFAULT_FORMAT +#define MA_DEFAULT_FORMAT ma_format_f32 +#endif + +/* The default channel count to use when 0 is used when initializing a device. */ +#ifndef MA_DEFAULT_CHANNELS +#define MA_DEFAULT_CHANNELS 2 +#endif + +/* The default sample rate to use when 0 is used when initializing a device. */ +#ifndef MA_DEFAULT_SAMPLE_RATE +#define MA_DEFAULT_SAMPLE_RATE 48000 +#endif + +/* Default periods when none is specified in ma_device_init(). More periods means more work on the CPU. */ +#ifndef MA_DEFAULT_PERIODS +#define MA_DEFAULT_PERIODS 3 +#endif + +/* The default period size in milliseconds for low latency mode. */ +#ifndef MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY +#define MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY 10 +#endif + +/* The default buffer size in milliseconds for conservative mode. */ +#ifndef MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE +#define MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE 100 +#endif + +/* The default LPF filter order for linear resampling. Note that this is clamped to MA_MAX_FILTER_ORDER. */ +#ifndef MA_DEFAULT_RESAMPLER_LPF_ORDER + #if MA_MAX_FILTER_ORDER >= 4 + #define MA_DEFAULT_RESAMPLER_LPF_ORDER 4 + #else + #define MA_DEFAULT_RESAMPLER_LPF_ORDER MA_MAX_FILTER_ORDER + #endif +#endif + + +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wunused-variable" +#endif + +/* Standard sample rates, in order of priority. */ +static ma_uint32 g_maStandardSampleRatePriorities[] = { + (ma_uint32)ma_standard_sample_rate_48000, + (ma_uint32)ma_standard_sample_rate_44100, + + (ma_uint32)ma_standard_sample_rate_32000, + (ma_uint32)ma_standard_sample_rate_24000, + (ma_uint32)ma_standard_sample_rate_22050, + + (ma_uint32)ma_standard_sample_rate_88200, + (ma_uint32)ma_standard_sample_rate_96000, + (ma_uint32)ma_standard_sample_rate_176400, + (ma_uint32)ma_standard_sample_rate_192000, + + (ma_uint32)ma_standard_sample_rate_16000, + (ma_uint32)ma_standard_sample_rate_11025, + (ma_uint32)ma_standard_sample_rate_8000, + + (ma_uint32)ma_standard_sample_rate_352800, + (ma_uint32)ma_standard_sample_rate_384000 +}; + +static MA_INLINE ma_bool32 ma_is_standard_sample_rate(ma_uint32 sampleRate) +{ + ma_uint32 iSampleRate; + + for (iSampleRate = 0; iSampleRate < sizeof(g_maStandardSampleRatePriorities) / sizeof(g_maStandardSampleRatePriorities[0]); iSampleRate += 1) { + if (g_maStandardSampleRatePriorities[iSampleRate] == sampleRate) { + return MA_TRUE; + } + } + + /* Getting here means the sample rate is not supported. */ + return MA_FALSE; +} + + +static ma_format g_maFormatPriorities[] = { + ma_format_s16, /* Most common */ + ma_format_f32, + + /*ma_format_s24_32,*/ /* Clean alignment */ + ma_format_s32, + + ma_format_s24, /* Unclean alignment */ + + ma_format_u8 /* Low quality */ +}; +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop +#endif + + +MA_API void ma_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision) +{ + if (pMajor) { + *pMajor = MA_VERSION_MAJOR; + } + + if (pMinor) { + *pMinor = MA_VERSION_MINOR; + } + + if (pRevision) { + *pRevision = MA_VERSION_REVISION; + } +} + +MA_API const char* ma_version_string(void) +{ + return MA_VERSION_STRING; +} + + +/****************************************************************************** + +Standard Library Stuff + +******************************************************************************/ +#ifndef MA_MALLOC +#ifdef MA_WIN32 +#define MA_MALLOC(sz) HeapAlloc(GetProcessHeap(), 0, (sz)) +#else +#define MA_MALLOC(sz) malloc((sz)) +#endif +#endif + +#ifndef MA_REALLOC +#ifdef MA_WIN32 +#define MA_REALLOC(p, sz) (((sz) > 0) ? ((p) ? HeapReAlloc(GetProcessHeap(), 0, (p), (sz)) : HeapAlloc(GetProcessHeap(), 0, (sz))) : ((VOID*)(size_t)(HeapFree(GetProcessHeap(), 0, (p)) & 0))) +#else +#define MA_REALLOC(p, sz) realloc((p), (sz)) +#endif +#endif + +#ifndef MA_FREE +#ifdef MA_WIN32 +#define MA_FREE(p) HeapFree(GetProcessHeap(), 0, (p)) +#else +#define MA_FREE(p) free((p)) +#endif +#endif + +#ifndef MA_ZERO_MEMORY +#ifdef MA_WIN32 +#define MA_ZERO_MEMORY(p, sz) ZeroMemory((p), (sz)) +#else +#define MA_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#endif + +#ifndef MA_COPY_MEMORY +#ifdef MA_WIN32 +#define MA_COPY_MEMORY(dst, src, sz) CopyMemory((dst), (src), (sz)) +#else +#define MA_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#endif + +#ifndef MA_ASSERT +#ifdef MA_WIN32 +#define MA_ASSERT(condition) assert(condition) +#else +#define MA_ASSERT(condition) assert(condition) +#endif +#endif + +#define MA_ZERO_OBJECT(p) MA_ZERO_MEMORY((p), sizeof(*(p))) + +#define ma_countof(x) (sizeof(x) / sizeof(x[0])) +#define ma_max(x, y) (((x) > (y)) ? (x) : (y)) +#define ma_min(x, y) (((x) < (y)) ? (x) : (y)) +#define ma_abs(x) (((x) > 0) ? (x) : -(x)) +#define ma_clamp(x, lo, hi) (ma_max(lo, ma_min(x, hi))) +#define ma_offset_ptr(p, offset) (((ma_uint8*)(p)) + (offset)) + +#define ma_buffer_frame_capacity(buffer, channels, format) (sizeof(buffer) / ma_get_bytes_per_sample(format) / (channels)) + +static MA_INLINE double ma_sin(double x) +{ + /* TODO: Implement custom sin(x). */ + return sin(x); +} + +static MA_INLINE double ma_exp(double x) +{ + /* TODO: Implement custom exp(x). */ + return exp(x); +} + +static MA_INLINE double ma_log(double x) +{ + /* TODO: Implement custom log(x). */ + return log(x); +} + +static MA_INLINE double ma_pow(double x, double y) +{ + /* TODO: Implement custom pow(x, y). */ + return pow(x, y); +} + +static MA_INLINE double ma_sqrt(double x) +{ + /* TODO: Implement custom sqrt(x). */ + return sqrt(x); +} + + +static MA_INLINE double ma_cos(double x) +{ + return ma_sin((MA_PI_D*0.5) - x); +} + +static MA_INLINE double ma_log10(double x) +{ + return ma_log(x) * 0.43429448190325182765; +} + +static MA_INLINE float ma_powf(float x, float y) +{ + return (float)ma_pow((double)x, (double)y); +} + +static MA_INLINE float ma_log10f(float x) +{ + return (float)ma_log10((double)x); +} + + +static MA_INLINE double ma_degrees_to_radians(double degrees) +{ + return degrees * 0.01745329252; +} + +static MA_INLINE double ma_radians_to_degrees(double radians) +{ + return radians * 57.295779512896; +} + +static MA_INLINE float ma_degrees_to_radians_f(float degrees) +{ + return degrees * 0.01745329252f; +} + +static MA_INLINE float ma_radians_to_degrees_f(float radians) +{ + return radians * 57.295779512896f; +} + + +/* +Return Values: + 0: Success + 22: EINVAL + 34: ERANGE + +Not using symbolic constants for errors because I want to avoid #including errno.h +*/ +MA_API int ma_strcpy_s(char* dst, size_t dstSizeInBytes, const char* src) +{ + size_t i; + + if (dst == 0) { + return 22; + } + if (dstSizeInBytes == 0) { + return 34; + } + if (src == 0) { + dst[0] = '\0'; + return 22; + } + + for (i = 0; i < dstSizeInBytes && src[i] != '\0'; ++i) { + dst[i] = src[i]; + } + + if (i < dstSizeInBytes) { + dst[i] = '\0'; + return 0; + } + + dst[0] = '\0'; + return 34; +} + +MA_API int ma_wcscpy_s(wchar_t* dst, size_t dstCap, const wchar_t* src) +{ + size_t i; + + if (dst == 0) { + return 22; + } + if (dstCap == 0) { + return 34; + } + if (src == 0) { + dst[0] = '\0'; + return 22; + } + + for (i = 0; i < dstCap && src[i] != '\0'; ++i) { + dst[i] = src[i]; + } + + if (i < dstCap) { + dst[i] = '\0'; + return 0; + } + + dst[0] = '\0'; + return 34; +} + + +MA_API int ma_strncpy_s(char* dst, size_t dstSizeInBytes, const char* src, size_t count) +{ + size_t maxcount; + size_t i; + + if (dst == 0) { + return 22; + } + if (dstSizeInBytes == 0) { + return 34; + } + if (src == 0) { + dst[0] = '\0'; + return 22; + } + + maxcount = count; + if (count == ((size_t)-1) || count >= dstSizeInBytes) { /* -1 = _TRUNCATE */ + maxcount = dstSizeInBytes - 1; + } + + for (i = 0; i < maxcount && src[i] != '\0'; ++i) { + dst[i] = src[i]; + } + + if (src[i] == '\0' || i == count || count == ((size_t)-1)) { + dst[i] = '\0'; + return 0; + } + + dst[0] = '\0'; + return 34; +} + +MA_API int ma_strcat_s(char* dst, size_t dstSizeInBytes, const char* src) +{ + char* dstorig; + + if (dst == 0) { + return 22; + } + if (dstSizeInBytes == 0) { + return 34; + } + if (src == 0) { + dst[0] = '\0'; + return 22; + } + + dstorig = dst; + + while (dstSizeInBytes > 0 && dst[0] != '\0') { + dst += 1; + dstSizeInBytes -= 1; + } + + if (dstSizeInBytes == 0) { + return 22; /* Unterminated. */ + } + + + while (dstSizeInBytes > 0 && src[0] != '\0') { + *dst++ = *src++; + dstSizeInBytes -= 1; + } + + if (dstSizeInBytes > 0) { + dst[0] = '\0'; + } else { + dstorig[0] = '\0'; + return 34; + } + + return 0; +} + +MA_API int ma_strncat_s(char* dst, size_t dstSizeInBytes, const char* src, size_t count) +{ + char* dstorig; + + if (dst == 0) { + return 22; + } + if (dstSizeInBytes == 0) { + return 34; + } + if (src == 0) { + return 22; + } + + dstorig = dst; + + while (dstSizeInBytes > 0 && dst[0] != '\0') { + dst += 1; + dstSizeInBytes -= 1; + } + + if (dstSizeInBytes == 0) { + return 22; /* Unterminated. */ + } + + + if (count == ((size_t)-1)) { /* _TRUNCATE */ + count = dstSizeInBytes - 1; + } + + while (dstSizeInBytes > 0 && src[0] != '\0' && count > 0) { + *dst++ = *src++; + dstSizeInBytes -= 1; + count -= 1; + } + + if (dstSizeInBytes > 0) { + dst[0] = '\0'; + } else { + dstorig[0] = '\0'; + return 34; + } + + return 0; +} + +MA_API int ma_itoa_s(int value, char* dst, size_t dstSizeInBytes, int radix) +{ + int sign; + unsigned int valueU; + char* dstEnd; + + if (dst == NULL || dstSizeInBytes == 0) { + return 22; + } + if (radix < 2 || radix > 36) { + dst[0] = '\0'; + return 22; + } + + sign = (value < 0 && radix == 10) ? -1 : 1; /* The negative sign is only used when the base is 10. */ + + if (value < 0) { + valueU = -value; + } else { + valueU = value; + } + + dstEnd = dst; + do + { + int remainder = valueU % radix; + if (remainder > 9) { + *dstEnd = (char)((remainder - 10) + 'a'); + } else { + *dstEnd = (char)(remainder + '0'); + } + + dstEnd += 1; + dstSizeInBytes -= 1; + valueU /= radix; + } while (dstSizeInBytes > 0 && valueU > 0); + + if (dstSizeInBytes == 0) { + dst[0] = '\0'; + return 22; /* Ran out of room in the output buffer. */ + } + + if (sign < 0) { + *dstEnd++ = '-'; + dstSizeInBytes -= 1; + } + + if (dstSizeInBytes == 0) { + dst[0] = '\0'; + return 22; /* Ran out of room in the output buffer. */ + } + + *dstEnd = '\0'; + + + /* At this point the string will be reversed. */ + dstEnd -= 1; + while (dst < dstEnd) { + char temp = *dst; + *dst = *dstEnd; + *dstEnd = temp; + + dst += 1; + dstEnd -= 1; + } + + return 0; +} + +MA_API int ma_strcmp(const char* str1, const char* str2) +{ + if (str1 == str2) return 0; + + /* These checks differ from the standard implementation. It's not important, but I prefer it just for sanity. */ + if (str1 == NULL) return -1; + if (str2 == NULL) return 1; + + for (;;) { + if (str1[0] == '\0') { + break; + } + if (str1[0] != str2[0]) { + break; + } + + str1 += 1; + str2 += 1; + } + + return ((unsigned char*)str1)[0] - ((unsigned char*)str2)[0]; +} + +MA_API int ma_strappend(char* dst, size_t dstSize, const char* srcA, const char* srcB) +{ + int result; + + result = ma_strncpy_s(dst, dstSize, srcA, (size_t)-1); + if (result != 0) { + return result; + } + + result = ma_strncat_s(dst, dstSize, srcB, (size_t)-1); + if (result != 0) { + return result; + } + + return result; +} + +MA_API char* ma_copy_string(const char* src, const ma_allocation_callbacks* pAllocationCallbacks) +{ + size_t sz = strlen(src)+1; + char* dst = (char*)ma_malloc(sz, pAllocationCallbacks); + if (dst == NULL) { + return NULL; + } + + ma_strcpy_s(dst, sz, src); + + return dst; +} + +MA_API wchar_t* ma_copy_string_w(const wchar_t* src, const ma_allocation_callbacks* pAllocationCallbacks) +{ + size_t sz = wcslen(src)+1; + wchar_t* dst = (wchar_t*)ma_malloc(sz * sizeof(*dst), pAllocationCallbacks); + if (dst == NULL) { + return NULL; + } + + ma_wcscpy_s(dst, sz, src); + + return dst; +} + + +#include +static ma_result ma_result_from_errno(int e) +{ + switch (e) + { + case 0: return MA_SUCCESS; + #ifdef EPERM + case EPERM: return MA_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return MA_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return MA_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return MA_INTERRUPT; + #endif + #ifdef EIO + case EIO: return MA_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return MA_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return MA_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return MA_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return MA_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return MA_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return MA_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return MA_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return MA_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return MA_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return MA_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return MA_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return MA_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return MA_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return MA_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return MA_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return MA_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return MA_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return MA_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return MA_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return MA_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return MA_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return MA_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return MA_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return MA_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return MA_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return MA_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return MA_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return MA_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return MA_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return MA_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return MA_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return MA_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return MA_NOT_IMPLEMENTED; + #endif + #ifdef ENOTEMPTY + case ENOTEMPTY: return MA_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return MA_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return MA_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return MA_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return MA_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return MA_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return MA_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return MA_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return MA_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return MA_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return MA_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return MA_ERROR; + #endif + #ifdef EBADE + case EBADE: return MA_ERROR; + #endif + #ifdef EBADR + case EBADR: return MA_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return MA_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return MA_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return MA_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return MA_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return MA_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return MA_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return MA_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return MA_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return MA_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return MA_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return MA_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return MA_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return MA_ERROR; + #endif + #ifdef EADV + case EADV: return MA_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return MA_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return MA_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return MA_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return MA_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return MA_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return MA_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return MA_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return MA_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return MA_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return MA_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return MA_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return MA_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return MA_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return MA_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return MA_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return MA_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return MA_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return MA_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return MA_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return MA_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return MA_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return MA_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return MA_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return MA_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return MA_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return MA_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return MA_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return MA_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return MA_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return MA_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return MA_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return MA_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return MA_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return MA_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return MA_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return MA_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return MA_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return MA_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return MA_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return MA_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return MA_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return MA_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return MA_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return MA_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return MA_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return MA_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return MA_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return MA_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return MA_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return MA_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return MA_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return MA_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return MA_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return MA_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return MA_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return MA_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return MA_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return MA_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return MA_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return MA_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return MA_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return MA_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return MA_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return MA_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return MA_ERROR; + #endif + default: return MA_ERROR; + } +} + +MA_API ma_result ma_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return ma_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + ma_result result = ma_result_from_errno(errno); + if (result == MA_SUCCESS) { + result = MA_ERROR; /* Just a safety check to make sure we never ever return success when pFile == NULL. */ + } + + return result; + } +#endif + + return MA_SUCCESS; +} + + + +/* +_wfopen() isn't always available in all compilation environments. + + * Windows only. + * MSVC seems to support it universally as far back as VC6 from what I can tell (haven't checked further back). + * MinGW-64 (both 32- and 64-bit) seems to support it. + * MinGW wraps it in !defined(__STRICT_ANSI__). + * OpenWatcom wraps it in !defined(_NO_EXT_KEYS). + +This can be reviewed as compatibility issues arise. The preference is to use _wfopen_s() and _wfopen() as opposed to the wcsrtombs() +fallback, so if you notice your compiler not detecting this properly I'm happy to look at adding support. +*/ +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define MA_HAS_WFOPEN + #endif +#endif + +MA_API ma_result ma_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; /* Safety. */ + } + + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(MA_HAS_WFOPEN) + { + /* Use _wfopen() on Windows. */ + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return ma_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return ma_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + /* + Use fopen() on anything other than Windows. Requires a conversion. This is annoying because fopen() is locale specific. The only real way I can + think of to do this is with wcsrtombs(). Note that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for + maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler error I'll look into improving compatibility. + */ + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + + /* Get the length first. */ + MA_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return ma_result_from_errno(errno); + } + + pFilePathMB = (char*)ma_malloc(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return MA_OUT_OF_MEMORY; + } + + pFilePathTemp = pFilePath; + MA_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + + /* The open mode should always consist of ASCII characters so we should be able to do a trivial conversion. */ + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + + *ppFile = fopen(pFilePathMB, pOpenModeMB); + + ma_free(pFilePathMB, pAllocationCallbacks); + } + + if (*ppFile == NULL) { + return MA_ERROR; + } +#endif + + return MA_SUCCESS; +} + + + +static MA_INLINE void ma_copy_memory_64(void* dst, const void* src, ma_uint64 sizeInBytes) +{ +#if 0xFFFFFFFFFFFFFFFF <= MA_SIZE_MAX + MA_COPY_MEMORY(dst, src, (size_t)sizeInBytes); +#else + while (sizeInBytes > 0) { + ma_uint64 bytesToCopyNow = sizeInBytes; + if (bytesToCopyNow > MA_SIZE_MAX) { + bytesToCopyNow = MA_SIZE_MAX; + } + + MA_COPY_MEMORY(dst, src, (size_t)bytesToCopyNow); /* Safe cast to size_t. */ + + sizeInBytes -= bytesToCopyNow; + dst = ( void*)(( ma_uint8*)dst + bytesToCopyNow); + src = (const void*)((const ma_uint8*)src + bytesToCopyNow); + } +#endif +} + +static MA_INLINE void ma_zero_memory_64(void* dst, ma_uint64 sizeInBytes) +{ +#if 0xFFFFFFFFFFFFFFFF <= MA_SIZE_MAX + MA_ZERO_MEMORY(dst, (size_t)sizeInBytes); +#else + while (sizeInBytes > 0) { + ma_uint64 bytesToZeroNow = sizeInBytes; + if (bytesToZeroNow > MA_SIZE_MAX) { + bytesToZeroNow = MA_SIZE_MAX; + } + + MA_ZERO_MEMORY(dst, (size_t)bytesToZeroNow); /* Safe cast to size_t. */ + + sizeInBytes -= bytesToZeroNow; + dst = (void*)((ma_uint8*)dst + bytesToZeroNow); + } +#endif +} + + +/* Thanks to good old Bit Twiddling Hacks for this one: http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 */ +static MA_INLINE unsigned int ma_next_power_of_2(unsigned int x) +{ + x--; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + x |= x >> 16; + x++; + + return x; +} + +static MA_INLINE unsigned int ma_prev_power_of_2(unsigned int x) +{ + return ma_next_power_of_2(x) >> 1; +} + +static MA_INLINE unsigned int ma_round_to_power_of_2(unsigned int x) +{ + unsigned int prev = ma_prev_power_of_2(x); + unsigned int next = ma_next_power_of_2(x); + if ((next - x) > (x - prev)) { + return prev; + } else { + return next; + } +} + +static MA_INLINE unsigned int ma_count_set_bits(unsigned int x) +{ + unsigned int count = 0; + while (x != 0) { + if (x & 1) { + count += 1; + } + + x = x >> 1; + } + + return count; +} + + + +/* Clamps an f32 sample to -1..1 */ +static MA_INLINE float ma_clip_f32(float x) +{ + if (x < -1) return -1; + if (x > +1) return +1; + return x; +} + +static MA_INLINE float ma_mix_f32(float x, float y, float a) +{ + return x*(1-a) + y*a; +} +static MA_INLINE float ma_mix_f32_fast(float x, float y, float a) +{ + float r0 = (y - x); + float r1 = r0*a; + return x + r1; + /*return x + (y - x)*a;*/ +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE __m128 ma_mix_f32_fast__sse2(__m128 x, __m128 y, __m128 a) +{ + return _mm_add_ps(x, _mm_mul_ps(_mm_sub_ps(y, x), a)); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE __m256 ma_mix_f32_fast__avx2(__m256 x, __m256 y, __m256 a) +{ + return _mm256_add_ps(x, _mm256_mul_ps(_mm256_sub_ps(y, x), a)); +} +#endif +#if defined(MA_SUPPORT_AVX512) +static MA_INLINE __m512 ma_mix_f32_fast__avx512(__m512 x, __m512 y, __m512 a) +{ + return _mm512_add_ps(x, _mm512_mul_ps(_mm512_sub_ps(y, x), a)); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE float32x4_t ma_mix_f32_fast__neon(float32x4_t x, float32x4_t y, float32x4_t a) +{ + return vaddq_f32(x, vmulq_f32(vsubq_f32(y, x), a)); +} +#endif + + +static MA_INLINE double ma_mix_f64(double x, double y, double a) +{ + return x*(1-a) + y*a; +} +static MA_INLINE double ma_mix_f64_fast(double x, double y, double a) +{ + return x + (y - x)*a; +} + +static MA_INLINE float ma_scale_to_range_f32(float x, float lo, float hi) +{ + return lo + x*(hi-lo); +} + + +/* +Greatest common factor using Euclid's algorithm iteratively. +*/ +static MA_INLINE ma_uint32 ma_gcf_u32(ma_uint32 a, ma_uint32 b) +{ + for (;;) { + if (b == 0) { + break; + } else { + ma_uint32 t = a; + a = b; + b = t % a; + } + } + + return a; +} + + +/* +Random Number Generation + +miniaudio uses the LCG random number generation algorithm. This is good enough for audio. + +Note that miniaudio's global LCG implementation uses global state which is _not_ thread-local. When this is called across +multiple threads, results will be unpredictable. However, it won't crash and results will still be random enough for +miniaudio's purposes. +*/ +#ifndef MA_DEFAULT_LCG_SEED +#define MA_DEFAULT_LCG_SEED 4321 +#endif + +#define MA_LCG_M 2147483647 +#define MA_LCG_A 48271 +#define MA_LCG_C 0 + +static ma_lcg g_maLCG = {MA_DEFAULT_LCG_SEED}; /* Non-zero initial seed. Use ma_seed() to use an explicit seed. */ + +static MA_INLINE void ma_lcg_seed(ma_lcg* pLCG, ma_int32 seed) +{ + MA_ASSERT(pLCG != NULL); + pLCG->state = seed; +} + +static MA_INLINE ma_int32 ma_lcg_rand_s32(ma_lcg* pLCG) +{ + pLCG->state = (MA_LCG_A * pLCG->state + MA_LCG_C) % MA_LCG_M; + return pLCG->state; +} + +static MA_INLINE ma_uint32 ma_lcg_rand_u32(ma_lcg* pLCG) +{ + return (ma_uint32)ma_lcg_rand_s32(pLCG); +} + +static MA_INLINE ma_int16 ma_lcg_rand_s16(ma_lcg* pLCG) +{ + return (ma_int16)(ma_lcg_rand_s32(pLCG) & 0xFFFF); +} + +static MA_INLINE double ma_lcg_rand_f64(ma_lcg* pLCG) +{ + return ma_lcg_rand_s32(pLCG) / (double)0x7FFFFFFF; +} + +static MA_INLINE float ma_lcg_rand_f32(ma_lcg* pLCG) +{ + return (float)ma_lcg_rand_f64(pLCG); +} + +static MA_INLINE float ma_lcg_rand_range_f32(ma_lcg* pLCG, float lo, float hi) +{ + return ma_scale_to_range_f32(ma_lcg_rand_f32(pLCG), lo, hi); +} + +static MA_INLINE ma_int32 ma_lcg_rand_range_s32(ma_lcg* pLCG, ma_int32 lo, ma_int32 hi) +{ + if (lo == hi) { + return lo; + } + + return lo + ma_lcg_rand_u32(pLCG) / (0xFFFFFFFF / (hi - lo + 1) + 1); +} + + + +static MA_INLINE void ma_seed(ma_int32 seed) +{ + ma_lcg_seed(&g_maLCG, seed); +} + +static MA_INLINE ma_int32 ma_rand_s32(void) +{ + return ma_lcg_rand_s32(&g_maLCG); +} + +static MA_INLINE ma_uint32 ma_rand_u32(void) +{ + return ma_lcg_rand_u32(&g_maLCG); +} + +static MA_INLINE double ma_rand_f64(void) +{ + return ma_lcg_rand_f64(&g_maLCG); +} + +static MA_INLINE float ma_rand_f32(void) +{ + return ma_lcg_rand_f32(&g_maLCG); +} + +static MA_INLINE float ma_rand_range_f32(float lo, float hi) +{ + return ma_lcg_rand_range_f32(&g_maLCG, lo, hi); +} + +static MA_INLINE ma_int32 ma_rand_range_s32(ma_int32 lo, ma_int32 hi) +{ + return ma_lcg_rand_range_s32(&g_maLCG, lo, hi); +} + + +static MA_INLINE float ma_dither_f32_rectangle(float ditherMin, float ditherMax) +{ + return ma_rand_range_f32(ditherMin, ditherMax); +} + +static MA_INLINE float ma_dither_f32_triangle(float ditherMin, float ditherMax) +{ + float a = ma_rand_range_f32(ditherMin, 0); + float b = ma_rand_range_f32(0, ditherMax); + return a + b; +} + +static MA_INLINE float ma_dither_f32(ma_dither_mode ditherMode, float ditherMin, float ditherMax) +{ + if (ditherMode == ma_dither_mode_rectangle) { + return ma_dither_f32_rectangle(ditherMin, ditherMax); + } + if (ditherMode == ma_dither_mode_triangle) { + return ma_dither_f32_triangle(ditherMin, ditherMax); + } + + return 0; +} + +static MA_INLINE ma_int32 ma_dither_s32(ma_dither_mode ditherMode, ma_int32 ditherMin, ma_int32 ditherMax) +{ + if (ditherMode == ma_dither_mode_rectangle) { + ma_int32 a = ma_rand_range_s32(ditherMin, ditherMax); + return a; + } + if (ditherMode == ma_dither_mode_triangle) { + ma_int32 a = ma_rand_range_s32(ditherMin, 0); + ma_int32 b = ma_rand_range_s32(0, ditherMax); + return a + b; + } + + return 0; +} + + +/************************************************************************************************************************************************************** + +Atomics + +**************************************************************************************************************************************************************/ +/* c89atomic.h begin */ +#ifndef c89atomic_h +#define c89atomic_h +#if defined(__cplusplus) +extern "C" { +#endif +typedef signed char c89atomic_int8; +typedef unsigned char c89atomic_uint8; +typedef signed short c89atomic_int16; +typedef unsigned short c89atomic_uint16; +typedef signed int c89atomic_int32; +typedef unsigned int c89atomic_uint32; +#if defined(_MSC_VER) + typedef signed __int64 c89atomic_int64; + typedef unsigned __int64 c89atomic_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long c89atomic_int64; + typedef unsigned long long c89atomic_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +typedef int c89atomic_memory_order; +typedef unsigned char c89atomic_bool; +#if !defined(C89ATOMIC_64BIT) && !defined(C89ATOMIC_32BIT) +#ifdef _WIN32 +#ifdef _WIN64 +#define C89ATOMIC_64BIT +#else +#define C89ATOMIC_32BIT +#endif +#endif +#endif +#if !defined(C89ATOMIC_64BIT) && !defined(C89ATOMIC_32BIT) +#ifdef __GNUC__ +#ifdef __LP64__ +#define C89ATOMIC_64BIT +#else +#define C89ATOMIC_32BIT +#endif +#endif +#endif +#if !defined(C89ATOMIC_64BIT) && !defined(C89ATOMIC_32BIT) +#include +#if INTPTR_MAX == INT64_MAX +#define C89ATOMIC_64BIT +#else +#define C89ATOMIC_32BIT +#endif +#endif +#if defined(__x86_64__) || defined(_M_X64) +#define C89ATOMIC_X64 +#elif defined(__i386) || defined(_M_IX86) +#define C89ATOMIC_X86 +#elif defined(__arm__) || defined(_M_ARM) +#define C89ATOMIC_ARM +#endif +#if defined(_MSC_VER) + #define C89ATOMIC_INLINE __forceinline +#elif defined(__GNUC__) + #if defined(__STRICT_ANSI__) + #define C89ATOMIC_INLINE __inline__ __attribute__((always_inline)) + #else + #define C89ATOMIC_INLINE inline __attribute__((always_inline)) + #endif +#elif defined(__WATCOMC__) || defined(__DMC__) + #define C89ATOMIC_INLINE __inline +#else + #define C89ATOMIC_INLINE +#endif +#define C89ATOMIC_HAS_8 +#define C89ATOMIC_HAS_16 +#define C89ATOMIC_HAS_32 +#define C89ATOMIC_HAS_64 +#if (defined(_MSC_VER) ) || defined(__WATCOMC__) || defined(__DMC__) + #define c89atomic_memory_order_relaxed 0 + #define c89atomic_memory_order_consume 1 + #define c89atomic_memory_order_acquire 2 + #define c89atomic_memory_order_release 3 + #define c89atomic_memory_order_acq_rel 4 + #define c89atomic_memory_order_seq_cst 5 + #if _MSC_VER < 1600 && defined(C89ATOMIC_32BIT) + #define C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY + #endif + #if _MSC_VER < 1600 + #undef C89ATOMIC_HAS_8 + #undef C89ATOMIC_HAS_16 + #endif + #if !defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #include + #endif + #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_compare_and_swap_8(volatile c89atomic_uint8* dst, c89atomic_uint8 expected, c89atomic_uint8 desired) + { + c89atomic_uint8 result = 0; + __asm { + mov ecx, dst + mov al, expected + mov dl, desired + lock cmpxchg [ecx], dl + mov result, al + } + return result; + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_compare_and_swap_16(volatile c89atomic_uint16* dst, c89atomic_uint16 expected, c89atomic_uint16 desired) + { + c89atomic_uint16 result = 0; + __asm { + mov ecx, dst + mov ax, expected + mov dx, desired + lock cmpxchg [ecx], dx + mov result, ax + } + return result; + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_compare_and_swap_32(volatile c89atomic_uint32* dst, c89atomic_uint32 expected, c89atomic_uint32 desired) + { + c89atomic_uint32 result = 0; + __asm { + mov ecx, dst + mov eax, expected + mov edx, desired + lock cmpxchg [ecx], edx + mov result, eax + } + return result; + } + #endif + #if defined(C89ATOMIC_HAS_64) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_compare_and_swap_64(volatile c89atomic_uint64* dst, c89atomic_uint64 expected, c89atomic_uint64 desired) + { + c89atomic_uint32 resultEAX = 0; + c89atomic_uint32 resultEDX = 0; + __asm { + mov esi, dst + mov eax, dword ptr expected + mov edx, dword ptr expected + 4 + mov ebx, dword ptr desired + mov ecx, dword ptr desired + 4 + lock cmpxchg8b qword ptr [esi] + mov resultEAX, eax + mov resultEDX, edx + } + return ((c89atomic_uint64)resultEDX << 32) | resultEAX; + } + #endif + #else + #if defined(C89ATOMIC_HAS_8) + #define c89atomic_compare_and_swap_8( dst, expected, desired) (c89atomic_uint8 )_InterlockedCompareExchange8((volatile char*)dst, (char)desired, (char)expected) + #endif + #if defined(C89ATOMIC_HAS_16) + #define c89atomic_compare_and_swap_16(dst, expected, desired) (c89atomic_uint16)_InterlockedCompareExchange16((volatile short*)dst, (short)desired, (short)expected) + #endif + #if defined(C89ATOMIC_HAS_32) + #define c89atomic_compare_and_swap_32(dst, expected, desired) (c89atomic_uint32)_InterlockedCompareExchange((volatile long*)dst, (long)desired, (long)expected) + #endif + #if defined(C89ATOMIC_HAS_64) + #define c89atomic_compare_and_swap_64(dst, expected, desired) (c89atomic_uint64)_InterlockedCompareExchange64((volatile long long*)dst, (long long)desired, (long long)expected) + #endif + #endif + #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 result = 0; + (void)order; + __asm { + mov ecx, dst + mov al, src + lock xchg [ecx], al + mov result, al + } + return result; + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 result = 0; + (void)order; + __asm { + mov ecx, dst + mov ax, src + lock xchg [ecx], ax + mov result, ax + } + return result; + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 result = 0; + (void)order; + __asm { + mov ecx, dst + mov eax, src + lock xchg [ecx], eax + mov result, eax + } + return result; + } + #endif + #else + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint8)_InterlockedExchange8((volatile char*)dst, (char)src); + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint16)_InterlockedExchange16((volatile short*)dst, (short)src); + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint32)_InterlockedExchange((volatile long*)dst, (long)src); + } + #endif + #if defined(C89ATOMIC_HAS_64) && defined(C89ATOMIC_64BIT) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint64)_InterlockedExchange64((volatile long long*)dst, (long long)src); + } + #else + #endif + #endif + #if defined(C89ATOMIC_HAS_64) && !defined(C89ATOMIC_64BIT) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + do { + oldValue = *dst; + } while (c89atomic_compare_and_swap_64(dst, oldValue, src) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 result = 0; + (void)order; + __asm { + mov ecx, dst + mov al, src + lock xadd [ecx], al + mov result, al + } + return result; + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 result = 0; + (void)order; + __asm { + mov ecx, dst + mov ax, src + lock xadd [ecx], ax + mov result, ax + } + return result; + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 result = 0; + (void)order; + __asm { + mov ecx, dst + mov eax, src + lock xadd [ecx], eax + mov result, eax + } + return result; + } + #endif + #else + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint8)_InterlockedExchangeAdd8((volatile char*)dst, (char)src); + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint16)_InterlockedExchangeAdd16((volatile short*)dst, (short)src); + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint32)_InterlockedExchangeAdd((volatile long*)dst, (long)src); + } + #endif + #if defined(C89ATOMIC_HAS_64) && defined(C89ATOMIC_64BIT) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + (void)order; + return (c89atomic_uint64)_InterlockedExchangeAdd64((volatile long long*)dst, (long long)src); + } + #else + #endif + #endif + #if defined(C89ATOMIC_HAS_64) && !defined(C89ATOMIC_64BIT) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue + src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + static C89ATOMIC_INLINE void __stdcall c89atomic_thread_fence(c89atomic_memory_order order) + { + (void)order; + __asm { + lock add [esp], 0 + } + } + #else + #if defined(C89ATOMIC_X64) + #define c89atomic_thread_fence(order) __faststorefence(), (void)order + #else + static C89ATOMIC_INLINE void c89atomic_thread_fence(c89atomic_memory_order order) + { + volatile c89atomic_uint32 barrier = 0; + c89atomic_fetch_add_explicit_32(&barrier, 0, order); + } + #endif + #endif + #define c89atomic_compiler_fence() c89atomic_thread_fence(c89atomic_memory_order_seq_cst) + #define c89atomic_signal_fence(order) c89atomic_thread_fence(order) + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_load_explicit_8(volatile const c89atomic_uint8* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_8((c89atomic_uint8*)ptr, 0, 0); + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_load_explicit_16(volatile const c89atomic_uint16* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_16((c89atomic_uint16*)ptr, 0, 0); + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_load_explicit_32(volatile const c89atomic_uint32* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_32((c89atomic_uint32*)ptr, 0, 0); + } + #endif + #if defined(C89ATOMIC_HAS_64) + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_load_explicit_64(volatile const c89atomic_uint64* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_64((c89atomic_uint64*)ptr, 0, 0); + } + #endif + #if defined(C89ATOMIC_HAS_8) + #define c89atomic_store_explicit_8( dst, src, order) (void)c89atomic_exchange_explicit_8 (dst, src, order) + #endif + #if defined(C89ATOMIC_HAS_16) + #define c89atomic_store_explicit_16(dst, src, order) (void)c89atomic_exchange_explicit_16(dst, src, order) + #endif + #if defined(C89ATOMIC_HAS_32) + #define c89atomic_store_explicit_32(dst, src, order) (void)c89atomic_exchange_explicit_32(dst, src, order) + #endif + #if defined(C89ATOMIC_HAS_64) + #define c89atomic_store_explicit_64(dst, src, order) (void)c89atomic_exchange_explicit_64(dst, src, order) + #endif + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_sub_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue - src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_sub_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue - src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_sub_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue - src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_64) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_sub_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue - src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_and_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue & src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_and_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue & src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_and_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue & src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_64) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_and_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue & src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_xor_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue ^ src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_xor_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue ^ src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_xor_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue ^ src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_64) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_xor_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue ^ src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_8) + static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_or_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue | src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_16) + static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_or_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue | src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_32) + static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_or_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue | src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_64) + static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_or_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue | src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #if defined(C89ATOMIC_HAS_8) + #define c89atomic_test_and_set_explicit_8( dst, order) c89atomic_exchange_explicit_8 (dst, 1, order) + #endif + #if defined(C89ATOMIC_HAS_16) + #define c89atomic_test_and_set_explicit_16(dst, order) c89atomic_exchange_explicit_16(dst, 1, order) + #endif + #if defined(C89ATOMIC_HAS_32) + #define c89atomic_test_and_set_explicit_32(dst, order) c89atomic_exchange_explicit_32(dst, 1, order) + #endif + #if defined(C89ATOMIC_HAS_64) + #define c89atomic_test_and_set_explicit_64(dst, order) c89atomic_exchange_explicit_64(dst, 1, order) + #endif + #if defined(C89ATOMIC_HAS_8) + #define c89atomic_clear_explicit_8( dst, order) c89atomic_store_explicit_8 (dst, 0, order) + #endif + #if defined(C89ATOMIC_HAS_16) + #define c89atomic_clear_explicit_16(dst, order) c89atomic_store_explicit_16(dst, 0, order) + #endif + #if defined(C89ATOMIC_HAS_32) + #define c89atomic_clear_explicit_32(dst, order) c89atomic_store_explicit_32(dst, 0, order) + #endif + #if defined(C89ATOMIC_HAS_64) + #define c89atomic_clear_explicit_64(dst, order) c89atomic_store_explicit_64(dst, 0, order) + #endif + #if defined(C89ATOMIC_HAS_8) + typedef c89atomic_uint8 c89atomic_flag; + #define c89atomic_flag_test_and_set_explicit(ptr, order) (c89atomic_bool)c89atomic_test_and_set_explicit_8(ptr, order) + #define c89atomic_flag_clear_explicit(ptr, order) c89atomic_clear_explicit_8(ptr, order) + #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_8(ptr, order) + #else + typedef c89atomic_uint32 c89atomic_flag; + #define c89atomic_flag_test_and_set_explicit(ptr, order) (c89atomic_bool)c89atomic_test_and_set_explicit_32(ptr, order) + #define c89atomic_flag_clear_explicit(ptr, order) c89atomic_clear_explicit_32(ptr, order) + #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_32(ptr, order) + #endif +#elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #define C89ATOMIC_HAS_NATIVE_COMPARE_EXCHANGE + #define C89ATOMIC_HAS_NATIVE_IS_LOCK_FREE + #define c89atomic_memory_order_relaxed __ATOMIC_RELAXED + #define c89atomic_memory_order_consume __ATOMIC_CONSUME + #define c89atomic_memory_order_acquire __ATOMIC_ACQUIRE + #define c89atomic_memory_order_release __ATOMIC_RELEASE + #define c89atomic_memory_order_acq_rel __ATOMIC_ACQ_REL + #define c89atomic_memory_order_seq_cst __ATOMIC_SEQ_CST + #define c89atomic_compiler_fence() __asm__ __volatile__("":::"memory") + #define c89atomic_thread_fence(order) __atomic_thread_fence(order) + #define c89atomic_signal_fence(order) __atomic_signal_fence(order) + #define c89atomic_is_lock_free_8(ptr) __atomic_is_lock_free(1, ptr) + #define c89atomic_is_lock_free_16(ptr) __atomic_is_lock_free(2, ptr) + #define c89atomic_is_lock_free_32(ptr) __atomic_is_lock_free(4, ptr) + #define c89atomic_is_lock_free_64(ptr) __atomic_is_lock_free(8, ptr) + #define c89atomic_test_and_set_explicit_8( dst, order) __atomic_exchange_n(dst, 1, order) + #define c89atomic_test_and_set_explicit_16(dst, order) __atomic_exchange_n(dst, 1, order) + #define c89atomic_test_and_set_explicit_32(dst, order) __atomic_exchange_n(dst, 1, order) + #define c89atomic_test_and_set_explicit_64(dst, order) __atomic_exchange_n(dst, 1, order) + #define c89atomic_clear_explicit_8( dst, order) __atomic_store_n(dst, 0, order) + #define c89atomic_clear_explicit_16(dst, order) __atomic_store_n(dst, 0, order) + #define c89atomic_clear_explicit_32(dst, order) __atomic_store_n(dst, 0, order) + #define c89atomic_clear_explicit_64(dst, order) __atomic_store_n(dst, 0, order) + #define c89atomic_store_explicit_8( dst, src, order) __atomic_store_n(dst, src, order) + #define c89atomic_store_explicit_16(dst, src, order) __atomic_store_n(dst, src, order) + #define c89atomic_store_explicit_32(dst, src, order) __atomic_store_n(dst, src, order) + #define c89atomic_store_explicit_64(dst, src, order) __atomic_store_n(dst, src, order) + #define c89atomic_load_explicit_8( dst, order) __atomic_load_n(dst, order) + #define c89atomic_load_explicit_16(dst, order) __atomic_load_n(dst, order) + #define c89atomic_load_explicit_32(dst, order) __atomic_load_n(dst, order) + #define c89atomic_load_explicit_64(dst, order) __atomic_load_n(dst, order) + #define c89atomic_exchange_explicit_8( dst, src, order) __atomic_exchange_n(dst, src, order) + #define c89atomic_exchange_explicit_16(dst, src, order) __atomic_exchange_n(dst, src, order) + #define c89atomic_exchange_explicit_32(dst, src, order) __atomic_exchange_n(dst, src, order) + #define c89atomic_exchange_explicit_64(dst, src, order) __atomic_exchange_n(dst, src, order) + #define c89atomic_compare_exchange_strong_explicit_8( dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define c89atomic_compare_exchange_strong_explicit_16(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define c89atomic_compare_exchange_strong_explicit_32(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define c89atomic_compare_exchange_strong_explicit_64(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define c89atomic_compare_exchange_weak_explicit_8( dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define c89atomic_compare_exchange_weak_explicit_16(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define c89atomic_compare_exchange_weak_explicit_32(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define c89atomic_compare_exchange_weak_explicit_64(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define c89atomic_fetch_add_explicit_8( dst, src, order) __atomic_fetch_add(dst, src, order) + #define c89atomic_fetch_add_explicit_16(dst, src, order) __atomic_fetch_add(dst, src, order) + #define c89atomic_fetch_add_explicit_32(dst, src, order) __atomic_fetch_add(dst, src, order) + #define c89atomic_fetch_add_explicit_64(dst, src, order) __atomic_fetch_add(dst, src, order) + #define c89atomic_fetch_sub_explicit_8( dst, src, order) __atomic_fetch_sub(dst, src, order) + #define c89atomic_fetch_sub_explicit_16(dst, src, order) __atomic_fetch_sub(dst, src, order) + #define c89atomic_fetch_sub_explicit_32(dst, src, order) __atomic_fetch_sub(dst, src, order) + #define c89atomic_fetch_sub_explicit_64(dst, src, order) __atomic_fetch_sub(dst, src, order) + #define c89atomic_fetch_or_explicit_8( dst, src, order) __atomic_fetch_or(dst, src, order) + #define c89atomic_fetch_or_explicit_16(dst, src, order) __atomic_fetch_or(dst, src, order) + #define c89atomic_fetch_or_explicit_32(dst, src, order) __atomic_fetch_or(dst, src, order) + #define c89atomic_fetch_or_explicit_64(dst, src, order) __atomic_fetch_or(dst, src, order) + #define c89atomic_fetch_xor_explicit_8( dst, src, order) __atomic_fetch_xor(dst, src, order) + #define c89atomic_fetch_xor_explicit_16(dst, src, order) __atomic_fetch_xor(dst, src, order) + #define c89atomic_fetch_xor_explicit_32(dst, src, order) __atomic_fetch_xor(dst, src, order) + #define c89atomic_fetch_xor_explicit_64(dst, src, order) __atomic_fetch_xor(dst, src, order) + #define c89atomic_fetch_and_explicit_8( dst, src, order) __atomic_fetch_and(dst, src, order) + #define c89atomic_fetch_and_explicit_16(dst, src, order) __atomic_fetch_and(dst, src, order) + #define c89atomic_fetch_and_explicit_32(dst, src, order) __atomic_fetch_and(dst, src, order) + #define c89atomic_fetch_and_explicit_64(dst, src, order) __atomic_fetch_and(dst, src, order) + #define c89atomic_compare_and_swap_8 (dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define c89atomic_compare_and_swap_16(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define c89atomic_compare_and_swap_32(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define c89atomic_compare_and_swap_64(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + typedef c89atomic_uint8 c89atomic_flag; + #define c89atomic_flag_test_and_set_explicit(dst, order) (c89atomic_bool)__atomic_test_and_set(dst, order) + #define c89atomic_flag_clear_explicit(dst, order) __atomic_clear(dst, order) + #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_8(ptr, order) +#else + #define c89atomic_memory_order_relaxed 1 + #define c89atomic_memory_order_consume 2 + #define c89atomic_memory_order_acquire 3 + #define c89atomic_memory_order_release 4 + #define c89atomic_memory_order_acq_rel 5 + #define c89atomic_memory_order_seq_cst 6 + #define c89atomic_compiler_fence() __asm__ __volatile__("":::"memory") + #if defined(__GNUC__) + #define c89atomic_thread_fence(order) __sync_synchronize(), (void)order + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + if (order > c89atomic_memory_order_acquire) { + __sync_synchronize(); + } + return __sync_lock_test_and_set(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + do { + oldValue = *dst; + } while (__sync_val_compare_and_swap(dst, oldValue, src) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + do { + oldValue = *dst; + } while (__sync_val_compare_and_swap(dst, oldValue, src) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + do { + oldValue = *dst; + } while (__sync_val_compare_and_swap(dst, oldValue, src) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_add(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_add(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_add(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_add(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_sub_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_sub(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_sub_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_sub(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_sub_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_sub(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_sub_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_sub(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_or_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_or(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_or_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_or(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_or_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_or(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_or_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_or(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_xor_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_xor(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_xor_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_xor(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_xor_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_xor(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_xor_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_xor(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_and_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_and(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_and_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_and(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_and_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_and(dst, src); + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_and_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + (void)order; + return __sync_fetch_and_and(dst, src); + } + #define c89atomic_compare_and_swap_8( dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define c89atomic_compare_and_swap_16(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define c89atomic_compare_and_swap_32(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define c89atomic_compare_and_swap_64(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #else + #if defined(C89ATOMIC_X86) + #define c89atomic_thread_fence(order) __asm__ __volatile__("lock; addl $0, (%%esp)" ::: "memory", "cc") + #elif defined(C89ATOMIC_X64) + #define c89atomic_thread_fence(order) __asm__ __volatile__("lock; addq $0, (%%rsp)" ::: "memory", "cc") + #else + #error Unsupported architecture. Please submit a feature request. + #endif + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_compare_and_swap_8(volatile c89atomic_uint8* dst, c89atomic_uint8 expected, c89atomic_uint8 desired) + { + c89atomic_uint8 result; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_compare_and_swap_16(volatile c89atomic_uint16* dst, c89atomic_uint16 expected, c89atomic_uint16 desired) + { + c89atomic_uint16 result; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_compare_and_swap_32(volatile c89atomic_uint32* dst, c89atomic_uint32 expected, c89atomic_uint32 desired) + { + c89atomic_uint32 result; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_compare_and_swap_64(volatile c89atomic_uint64* dst, c89atomic_uint64 expected, c89atomic_uint64 desired) + { + volatile c89atomic_uint64 result; + #if defined(C89ATOMIC_X86) + c89atomic_uint32 resultEAX; + c89atomic_uint32 resultEDX; + __asm__ __volatile__("push %%ebx; xchg %5, %%ebx; lock; cmpxchg8b %0; pop %%ebx" : "+m"(*dst), "=a"(resultEAX), "=d"(resultEDX) : "a"(expected & 0xFFFFFFFF), "d"(expected >> 32), "r"(desired & 0xFFFFFFFF), "c"(desired >> 32) : "cc"); + result = ((c89atomic_uint64)resultEDX << 32) | resultEAX; + #elif defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 result = 0; + (void)order; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 result = 0; + (void)order; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 result; + (void)order; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 result; + (void)order; + #if defined(C89ATOMIC_X86) + do { + result = *dst; + } while (c89atomic_compare_and_swap_64(dst, result, src) != result); + #elif defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 result; + (void)order; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 result; + (void)order; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 result; + (void)order; + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); + #else + #error Unsupported architecture. Please submit a feature request. + #endif + return result; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + #if defined(C89ATOMIC_X86) + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + (void)order; + do { + oldValue = *dst; + newValue = oldValue + src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + return oldValue; + #elif defined(C89ATOMIC_X64) + c89atomic_uint64 result; + (void)order; + __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); + return result; + #endif + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_sub_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue - src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_sub_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue - src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_sub_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue - src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_sub_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue - src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_and_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue & src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_and_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue & src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_and_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue & src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_and_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue & src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_xor_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue ^ src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_xor_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue ^ src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_xor_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue ^ src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_xor_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue ^ src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_or_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + { + c89atomic_uint8 oldValue; + c89atomic_uint8 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint8)(oldValue | src); + } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_or_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + { + c89atomic_uint16 oldValue; + c89atomic_uint16 newValue; + do { + oldValue = *dst; + newValue = (c89atomic_uint16)(oldValue | src); + } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_or_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + { + c89atomic_uint32 oldValue; + c89atomic_uint32 newValue; + do { + oldValue = *dst; + newValue = oldValue | src; + } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_or_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + { + c89atomic_uint64 oldValue; + c89atomic_uint64 newValue; + do { + oldValue = *dst; + newValue = oldValue | src; + } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + (void)order; + return oldValue; + } + #endif + #define c89atomic_signal_fence(order) c89atomic_thread_fence(order) + static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_load_explicit_8(volatile const c89atomic_uint8* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_8((c89atomic_uint8*)ptr, 0, 0); + } + static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_load_explicit_16(volatile const c89atomic_uint16* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_16((c89atomic_uint16*)ptr, 0, 0); + } + static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_load_explicit_32(volatile const c89atomic_uint32* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_32((c89atomic_uint32*)ptr, 0, 0); + } + static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_load_explicit_64(volatile const c89atomic_uint64* ptr, c89atomic_memory_order order) + { + (void)order; + return c89atomic_compare_and_swap_64((c89atomic_uint64*)ptr, 0, 0); + } + #define c89atomic_store_explicit_8( dst, src, order) (void)c89atomic_exchange_explicit_8 (dst, src, order) + #define c89atomic_store_explicit_16(dst, src, order) (void)c89atomic_exchange_explicit_16(dst, src, order) + #define c89atomic_store_explicit_32(dst, src, order) (void)c89atomic_exchange_explicit_32(dst, src, order) + #define c89atomic_store_explicit_64(dst, src, order) (void)c89atomic_exchange_explicit_64(dst, src, order) + #define c89atomic_test_and_set_explicit_8( dst, order) c89atomic_exchange_explicit_8 (dst, 1, order) + #define c89atomic_test_and_set_explicit_16(dst, order) c89atomic_exchange_explicit_16(dst, 1, order) + #define c89atomic_test_and_set_explicit_32(dst, order) c89atomic_exchange_explicit_32(dst, 1, order) + #define c89atomic_test_and_set_explicit_64(dst, order) c89atomic_exchange_explicit_64(dst, 1, order) + #define c89atomic_clear_explicit_8( dst, order) c89atomic_store_explicit_8 (dst, 0, order) + #define c89atomic_clear_explicit_16(dst, order) c89atomic_store_explicit_16(dst, 0, order) + #define c89atomic_clear_explicit_32(dst, order) c89atomic_store_explicit_32(dst, 0, order) + #define c89atomic_clear_explicit_64(dst, order) c89atomic_store_explicit_64(dst, 0, order) + typedef c89atomic_uint8 c89atomic_flag; + #define c89atomic_flag_test_and_set_explicit(ptr, order) (c89atomic_bool)c89atomic_test_and_set_explicit_8(ptr, order) + #define c89atomic_flag_clear_explicit(ptr, order) c89atomic_clear_explicit_8(ptr, order) + #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_8(ptr, order) +#endif +#if !defined(C89ATOMIC_HAS_NATIVE_COMPARE_EXCHANGE) + #if defined(C89ATOMIC_HAS_8) + c89atomic_bool c89atomic_compare_exchange_strong_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8* expected, c89atomic_uint8 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + c89atomic_uint8 expectedValue; + c89atomic_uint8 result; + (void)successOrder; + (void)failureOrder; + expectedValue = c89atomic_load_explicit_8(expected, c89atomic_memory_order_seq_cst); + result = c89atomic_compare_and_swap_8(dst, expectedValue, desired); + if (result == expectedValue) { + return 1; + } else { + c89atomic_store_explicit_8(expected, result, failureOrder); + return 0; + } + } + #endif + #if defined(C89ATOMIC_HAS_16) + c89atomic_bool c89atomic_compare_exchange_strong_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16* expected, c89atomic_uint16 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + c89atomic_uint16 expectedValue; + c89atomic_uint16 result; + (void)successOrder; + (void)failureOrder; + expectedValue = c89atomic_load_explicit_16(expected, c89atomic_memory_order_seq_cst); + result = c89atomic_compare_and_swap_16(dst, expectedValue, desired); + if (result == expectedValue) { + return 1; + } else { + c89atomic_store_explicit_16(expected, result, failureOrder); + return 0; + } + } + #endif + #if defined(C89ATOMIC_HAS_32) + c89atomic_bool c89atomic_compare_exchange_strong_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32* expected, c89atomic_uint32 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + c89atomic_uint32 expectedValue; + c89atomic_uint32 result; + (void)successOrder; + (void)failureOrder; + expectedValue = c89atomic_load_explicit_32(expected, c89atomic_memory_order_seq_cst); + result = c89atomic_compare_and_swap_32(dst, expectedValue, desired); + if (result == expectedValue) { + return 1; + } else { + c89atomic_store_explicit_32(expected, result, failureOrder); + return 0; + } + } + #endif + #if defined(C89ATOMIC_HAS_64) + c89atomic_bool c89atomic_compare_exchange_strong_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64* expected, c89atomic_uint64 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + c89atomic_uint64 expectedValue; + c89atomic_uint64 result; + (void)successOrder; + (void)failureOrder; + expectedValue = c89atomic_load_explicit_64(expected, c89atomic_memory_order_seq_cst); + result = c89atomic_compare_and_swap_64(dst, expectedValue, desired); + if (result == expectedValue) { + return 1; + } else { + c89atomic_store_explicit_64(expected, result, failureOrder); + return 0; + } + } + #endif + #define c89atomic_compare_exchange_weak_explicit_8( dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_8 (dst, expected, desired, successOrder, failureOrder) + #define c89atomic_compare_exchange_weak_explicit_16(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_16(dst, expected, desired, successOrder, failureOrder) + #define c89atomic_compare_exchange_weak_explicit_32(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_32(dst, expected, desired, successOrder, failureOrder) + #define c89atomic_compare_exchange_weak_explicit_64(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_64(dst, expected, desired, successOrder, failureOrder) +#endif +#if !defined(C89ATOMIC_HAS_NATIVE_IS_LOCK_FREE) + static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_8(volatile void* ptr) + { + (void)ptr; + return 1; + } + static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_16(volatile void* ptr) + { + (void)ptr; + return 1; + } + static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_32(volatile void* ptr) + { + (void)ptr; + return 1; + } + static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_64(volatile void* ptr) + { + (void)ptr; + #if defined(C89ATOMIC_64BIT) + return 1; + #else + #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + return 1; + #else + return 0; + #endif + #endif + } +#endif +#if defined(C89ATOMIC_64BIT) + static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_ptr(volatile void** ptr) + { + return c89atomic_is_lock_free_64((volatile c89atomic_uint64*)ptr); + } + static C89ATOMIC_INLINE void* c89atomic_load_explicit_ptr(volatile void** ptr, c89atomic_memory_order order) + { + return (void*)c89atomic_load_explicit_64((volatile c89atomic_uint64*)ptr, order); + } + static C89ATOMIC_INLINE void c89atomic_store_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + { + c89atomic_store_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64)src, order); + } + static C89ATOMIC_INLINE void* c89atomic_exchange_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + { + return (void*)c89atomic_exchange_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64)src, order); + } + static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_strong_explicit_ptr(volatile void** dst, void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + return c89atomic_compare_exchange_strong_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder); + } + static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_weak_explicit_ptr(volatile void** dst, volatile void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + return c89atomic_compare_exchange_weak_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder); + } + static C89ATOMIC_INLINE void* c89atomic_compare_and_swap_ptr(volatile void** dst, void* expected, void* desired) + { + return (void*)c89atomic_compare_and_swap_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64)expected, (c89atomic_uint64)desired); + } +#elif defined(C89ATOMIC_32BIT) + static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_ptr(volatile void** ptr) + { + return c89atomic_is_lock_free_32((volatile c89atomic_uint32*)ptr); + } + static C89ATOMIC_INLINE void* c89atomic_load_explicit_ptr(volatile void** ptr, c89atomic_memory_order order) + { + return (void*)c89atomic_load_explicit_32((volatile c89atomic_uint32*)ptr, order); + } + static C89ATOMIC_INLINE void c89atomic_store_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + { + c89atomic_store_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32)src, order); + } + static C89ATOMIC_INLINE void* c89atomic_exchange_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + { + return (void*)c89atomic_exchange_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32)src, order); + } + static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_strong_explicit_ptr(volatile void** dst, void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + return c89atomic_compare_exchange_strong_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder); + } + static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_weak_explicit_ptr(volatile void** dst, volatile void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + { + return c89atomic_compare_exchange_weak_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder); + } + static C89ATOMIC_INLINE void* c89atomic_compare_and_swap_ptr(volatile void** dst, void* expected, void* desired) + { + return (void*)c89atomic_compare_and_swap_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32)expected, (c89atomic_uint32)desired); + } +#else + #error Unsupported architecture. +#endif +#define c89atomic_flag_test_and_set(ptr) c89atomic_flag_test_and_set_explicit(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_flag_clear(ptr) c89atomic_flag_clear_explicit(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_store_ptr(dst, src) c89atomic_store_explicit_ptr((volatile void**)dst, (void*)src, c89atomic_memory_order_seq_cst) +#define c89atomic_load_ptr(ptr) c89atomic_load_explicit_ptr((volatile void**)ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_ptr(dst, src) c89atomic_exchange_explicit_ptr((volatile void**)dst, (void*)src, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_ptr(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_ptr((volatile void**)dst, (void*)expected, (void*)desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_ptr(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_ptr((volatile void**)dst, (void*)expected, (void*)desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_8( ptr) c89atomic_test_and_set_explicit_8( ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_16(ptr) c89atomic_test_and_set_explicit_16(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_32(ptr) c89atomic_test_and_set_explicit_32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_64(ptr) c89atomic_test_and_set_explicit_64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_8( ptr) c89atomic_clear_explicit_8( ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_16(ptr) c89atomic_clear_explicit_16(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_32(ptr) c89atomic_clear_explicit_32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_64(ptr) c89atomic_clear_explicit_64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_store_8( dst, src) c89atomic_store_explicit_8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_store_16(dst, src) c89atomic_store_explicit_16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_store_32(dst, src) c89atomic_store_explicit_32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_store_64(dst, src) c89atomic_store_explicit_64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_load_8( ptr) c89atomic_load_explicit_8( ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_load_16(ptr) c89atomic_load_explicit_16(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_load_32(ptr) c89atomic_load_explicit_32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_load_64(ptr) c89atomic_load_explicit_64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_8( dst, src) c89atomic_exchange_explicit_8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_16(dst, src) c89atomic_exchange_explicit_16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_32(dst, src) c89atomic_exchange_explicit_32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_64(dst, src) c89atomic_exchange_explicit_64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_8( dst, expected, desired) c89atomic_compare_exchange_strong_explicit_8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_16(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_32(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_64(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_8( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_16( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_32( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_64( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_8( dst, src) c89atomic_fetch_add_explicit_8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_16(dst, src) c89atomic_fetch_add_explicit_16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_32(dst, src) c89atomic_fetch_add_explicit_32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_64(dst, src) c89atomic_fetch_add_explicit_64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_8( dst, src) c89atomic_fetch_sub_explicit_8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_16(dst, src) c89atomic_fetch_sub_explicit_16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_32(dst, src) c89atomic_fetch_sub_explicit_32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_64(dst, src) c89atomic_fetch_sub_explicit_64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_8( dst, src) c89atomic_fetch_or_explicit_8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_16(dst, src) c89atomic_fetch_or_explicit_16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_32(dst, src) c89atomic_fetch_or_explicit_32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_64(dst, src) c89atomic_fetch_or_explicit_64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_8( dst, src) c89atomic_fetch_xor_explicit_8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_16(dst, src) c89atomic_fetch_xor_explicit_16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_32(dst, src) c89atomic_fetch_xor_explicit_32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_64(dst, src) c89atomic_fetch_xor_explicit_64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_8( dst, src) c89atomic_fetch_and_explicit_8 (dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_16(dst, src) c89atomic_fetch_and_explicit_16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_32(dst, src) c89atomic_fetch_and_explicit_32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_64(dst, src) c89atomic_fetch_and_explicit_64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_explicit_i8( ptr, order) (c89atomic_int8 )c89atomic_test_and_set_explicit_8( (c89atomic_uint8* )ptr, order) +#define c89atomic_test_and_set_explicit_i16(ptr, order) (c89atomic_int16)c89atomic_test_and_set_explicit_16((c89atomic_uint16*)ptr, order) +#define c89atomic_test_and_set_explicit_i32(ptr, order) (c89atomic_int32)c89atomic_test_and_set_explicit_32((c89atomic_uint32*)ptr, order) +#define c89atomic_test_and_set_explicit_i64(ptr, order) (c89atomic_int64)c89atomic_test_and_set_explicit_64((c89atomic_uint64*)ptr, order) +#define c89atomic_clear_explicit_i8( ptr, order) c89atomic_clear_explicit_8( (c89atomic_uint8* )ptr, order) +#define c89atomic_clear_explicit_i16(ptr, order) c89atomic_clear_explicit_16((c89atomic_uint16*)ptr, order) +#define c89atomic_clear_explicit_i32(ptr, order) c89atomic_clear_explicit_32((c89atomic_uint32*)ptr, order) +#define c89atomic_clear_explicit_i64(ptr, order) c89atomic_clear_explicit_64((c89atomic_uint64*)ptr, order) +#define c89atomic_store_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_store_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) +#define c89atomic_store_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_store_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) +#define c89atomic_store_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_store_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) +#define c89atomic_store_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_store_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) +#define c89atomic_load_explicit_i8( ptr, order) (c89atomic_int8 )c89atomic_load_explicit_8( (c89atomic_uint8* )ptr, order) +#define c89atomic_load_explicit_i16(ptr, order) (c89atomic_int16)c89atomic_load_explicit_16((c89atomic_uint16*)ptr, order) +#define c89atomic_load_explicit_i32(ptr, order) (c89atomic_int32)c89atomic_load_explicit_32((c89atomic_uint32*)ptr, order) +#define c89atomic_load_explicit_i64(ptr, order) (c89atomic_int64)c89atomic_load_explicit_64((c89atomic_uint64*)ptr, order) +#define c89atomic_exchange_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_exchange_explicit_8 ((c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) +#define c89atomic_exchange_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_exchange_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) +#define c89atomic_exchange_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_exchange_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) +#define c89atomic_exchange_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_exchange_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) +#define c89atomic_compare_exchange_strong_explicit_i8( dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8* )expected, (c89atomic_uint8 )desired, successOrder, failureOrder) +#define c89atomic_compare_exchange_strong_explicit_i16(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16*)expected, (c89atomic_uint16)desired, successOrder, failureOrder) +#define c89atomic_compare_exchange_strong_explicit_i32(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder) +#define c89atomic_compare_exchange_strong_explicit_i64(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder) +#define c89atomic_compare_exchange_weak_explicit_i8( dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8* )expected, (c89atomic_uint8 )desired, successOrder, failureOrder) +#define c89atomic_compare_exchange_weak_explicit_i16(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16*)expected, (c89atomic_uint16)desired, successOrder, failureOrder) +#define c89atomic_compare_exchange_weak_explicit_i32(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder) +#define c89atomic_compare_exchange_weak_explicit_i64(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder) +#define c89atomic_fetch_add_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_add_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) +#define c89atomic_fetch_add_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_add_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) +#define c89atomic_fetch_add_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_add_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) +#define c89atomic_fetch_add_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_add_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) +#define c89atomic_fetch_sub_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_sub_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) +#define c89atomic_fetch_sub_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_sub_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) +#define c89atomic_fetch_sub_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_sub_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) +#define c89atomic_fetch_sub_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_sub_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) +#define c89atomic_fetch_or_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_or_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) +#define c89atomic_fetch_or_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_or_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) +#define c89atomic_fetch_or_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_or_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) +#define c89atomic_fetch_or_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_or_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) +#define c89atomic_fetch_xor_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_xor_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) +#define c89atomic_fetch_xor_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_xor_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) +#define c89atomic_fetch_xor_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_xor_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) +#define c89atomic_fetch_xor_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_xor_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) +#define c89atomic_fetch_and_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_and_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) +#define c89atomic_fetch_and_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_and_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) +#define c89atomic_fetch_and_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_and_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) +#define c89atomic_fetch_and_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_and_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) +#define c89atomic_test_and_set_i8( ptr) c89atomic_test_and_set_explicit_i8( ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_i16(ptr) c89atomic_test_and_set_explicit_i16(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_i32(ptr) c89atomic_test_and_set_explicit_i32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_test_and_set_i64(ptr) c89atomic_test_and_set_explicit_i64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_i8( ptr) c89atomic_clear_explicit_i8( ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_i16(ptr) c89atomic_clear_explicit_i16(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_i32(ptr) c89atomic_clear_explicit_i32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_i64(ptr) c89atomic_clear_explicit_i64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_store_i8( dst, src) c89atomic_store_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_store_i16(dst, src) c89atomic_store_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_store_i32(dst, src) c89atomic_store_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_store_i64(dst, src) c89atomic_store_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_load_i8( ptr) c89atomic_load_explicit_i8( ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_load_i16(ptr) c89atomic_load_explicit_i16(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_load_i32(ptr) c89atomic_load_explicit_i32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_load_i64(ptr) c89atomic_load_explicit_i64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_i8( dst, src) c89atomic_exchange_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_i16(dst, src) c89atomic_exchange_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_i32(dst, src) c89atomic_exchange_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_i64(dst, src) c89atomic_exchange_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_i8( dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_i16(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_i32(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_strong_i64(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_i8( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_i16(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_i32(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_compare_exchange_weak_i64(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_i8( dst, src) c89atomic_fetch_add_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_i16(dst, src) c89atomic_fetch_add_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_i32(dst, src) c89atomic_fetch_add_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_add_i64(dst, src) c89atomic_fetch_add_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_i8( dst, src) c89atomic_fetch_sub_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_i16(dst, src) c89atomic_fetch_sub_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_i32(dst, src) c89atomic_fetch_sub_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_sub_i64(dst, src) c89atomic_fetch_sub_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_i8( dst, src) c89atomic_fetch_or_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_i16(dst, src) c89atomic_fetch_or_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_i32(dst, src) c89atomic_fetch_or_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_or_i64(dst, src) c89atomic_fetch_or_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_i8( dst, src) c89atomic_fetch_xor_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_i16(dst, src) c89atomic_fetch_xor_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_i32(dst, src) c89atomic_fetch_xor_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_xor_i64(dst, src) c89atomic_fetch_xor_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_i8( dst, src) c89atomic_fetch_and_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_i16(dst, src) c89atomic_fetch_and_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_i32(dst, src) c89atomic_fetch_and_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_fetch_and_i64(dst, src) c89atomic_fetch_and_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) +typedef union +{ + c89atomic_uint32 i; + float f; +} c89atomic_if32; +typedef union +{ + c89atomic_uint64 i; + double f; +} c89atomic_if64; +#define c89atomic_clear_explicit_f32(ptr, order) c89atomic_clear_explicit_32((c89atomic_uint32*)ptr, order) +#define c89atomic_clear_explicit_f64(ptr, order) c89atomic_clear_explicit_64((c89atomic_uint64*)ptr, order) +static C89ATOMIC_INLINE void c89atomic_store_explicit_f32(volatile float* dst, float src, c89atomic_memory_order order) +{ + c89atomic_if32 x; + x.f = src; + c89atomic_store_explicit_32((volatile c89atomic_uint32*)dst, x.i, order); +} +static C89ATOMIC_INLINE void c89atomic_store_explicit_f64(volatile float* dst, float src, c89atomic_memory_order order) +{ + c89atomic_if64 x; + x.f = src; + c89atomic_store_explicit_64((volatile c89atomic_uint64*)dst, x.i, order); +} +static C89ATOMIC_INLINE float c89atomic_load_explicit_f32(volatile float* ptr, c89atomic_memory_order order) +{ + c89atomic_if32 r; + r.i = c89atomic_load_explicit_32((volatile c89atomic_uint32*)ptr, order); + return r.f; +} +static C89ATOMIC_INLINE double c89atomic_load_explicit_f64(volatile double* ptr, c89atomic_memory_order order) +{ + c89atomic_if64 r; + r.i = c89atomic_load_explicit_64((volatile c89atomic_uint64*)ptr, order); + return r.f; +} +static C89ATOMIC_INLINE float c89atomic_exchange_explicit_f32(volatile float* dst, float src, c89atomic_memory_order order) +{ + c89atomic_if32 r; + c89atomic_if32 x; + x.f = src; + r.i = c89atomic_exchange_explicit_32((volatile c89atomic_uint32*)dst, x.i, order); + return r.f; +} +static C89ATOMIC_INLINE double c89atomic_exchange_explicit_f64(volatile double* dst, double src, c89atomic_memory_order order) +{ + c89atomic_if64 r; + c89atomic_if64 x; + x.f = src; + r.i = c89atomic_exchange_explicit_64((volatile c89atomic_uint64*)dst, x.i, order); + return r.f; +} +#define c89atomic_clear_f32(ptr) (float )c89atomic_clear_explicit_f32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_clear_f64(ptr) (double)c89atomic_clear_explicit_f64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_store_f32(dst, src) c89atomic_store_explicit_f32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_store_f64(dst, src) c89atomic_store_explicit_f64(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_load_f32(ptr) (float )c89atomic_load_explicit_f32(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_load_f64(ptr) (double)c89atomic_load_explicit_f64(ptr, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_f32(dst, src) (float )c89atomic_exchange_explicit_f32(dst, src, c89atomic_memory_order_seq_cst) +#define c89atomic_exchange_f64(dst, src) (double)c89atomic_exchange_explicit_f64(dst, src, c89atomic_memory_order_seq_cst) +typedef c89atomic_flag c89atomic_spinlock; +static C89ATOMIC_INLINE void c89atomic_spinlock_lock(volatile c89atomic_spinlock* pSpinlock) +{ + for (;;) { + if (c89atomic_flag_test_and_set_explicit(pSpinlock, c89atomic_memory_order_acquire) == 0) { + break; + } + while (c89atoimc_flag_load_explicit(pSpinlock, c89atomic_memory_order_relaxed) == 1) { + } + } +} +static C89ATOMIC_INLINE void c89atomic_spinlock_unlock(volatile c89atomic_spinlock* pSpinlock) +{ + c89atomic_flag_clear_explicit(pSpinlock, c89atomic_memory_order_release); +} +#if defined(__cplusplus) +} +#endif +#endif +/* c89atomic.h end */ + + + +static void* ma__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return MA_MALLOC(sz); +} + +static void* ma__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return MA_REALLOC(p, sz); +} + +static void ma__free_default(void* p, void* pUserData) +{ + (void)pUserData; + MA_FREE(p); +} + + +static void* ma__malloc_from_callbacks(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + + /* Try using realloc(). */ + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + + return NULL; +} + +static void* ma__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + + /* Try emulating realloc() in terms of malloc()/free(). */ + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + + if (p != NULL) { + MA_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + + return p2; + } + + return NULL; +} + +static MA_INLINE void* ma__calloc_from_callbacks(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) +{ + void* p = ma__malloc_from_callbacks(sz, pAllocationCallbacks); + if (p != NULL) { + MA_ZERO_MEMORY(p, sz); + } + + return p; +} + +static void ma__free_from_callbacks(void* p, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} + +static ma_allocation_callbacks ma_allocation_callbacks_init_default(void) +{ + ma_allocation_callbacks callbacks; + callbacks.pUserData = NULL; + callbacks.onMalloc = ma__malloc_default; + callbacks.onRealloc = ma__realloc_default; + callbacks.onFree = ma__free_default; + + return callbacks; +} + +static ma_result ma_allocation_callbacks_init_copy(ma_allocation_callbacks* pDst, const ma_allocation_callbacks* pSrc) +{ + if (pDst == NULL) { + return MA_INVALID_ARGS; + } + + if (pSrc == NULL) { + *pDst = ma_allocation_callbacks_init_default(); + } else { + if (pSrc->pUserData == NULL && pSrc->onFree == NULL && pSrc->onMalloc == NULL && pSrc->onRealloc == NULL) { + *pDst = ma_allocation_callbacks_init_default(); + } else { + if (pSrc->onFree == NULL || (pSrc->onMalloc == NULL && pSrc->onRealloc == NULL)) { + return MA_INVALID_ARGS; /* Invalid allocation callbacks. */ + } else { + *pDst = *pSrc; + } + } + } + + return MA_SUCCESS; +} + + +MA_API ma_uint64 ma_calculate_frame_count_after_resampling(ma_uint32 sampleRateOut, ma_uint32 sampleRateIn, ma_uint64 frameCountIn) +{ + /* For robustness we're going to use a resampler object to calculate this since that already has a way of calculating this. */ + ma_result result; + ma_uint64 frameCountOut; + ma_resampler_config config; + ma_resampler resampler; + + if (sampleRateOut == sampleRateIn) { + return frameCountIn; + } + + config = ma_resampler_config_init(ma_format_s16, 1, sampleRateIn, sampleRateOut, ma_resample_algorithm_linear); + result = ma_resampler_init(&config, &resampler); + if (result != MA_SUCCESS) { + return 0; + } + + frameCountOut = ma_resampler_get_expected_output_frame_count(&resampler, frameCountIn); + + ma_resampler_uninit(&resampler); + return frameCountOut; +} + +#ifndef MA_DATA_CONVERTER_STACK_BUFFER_SIZE +#define MA_DATA_CONVERTER_STACK_BUFFER_SIZE 4096 +#endif + + + +#if defined(MA_WIN32) +static ma_result ma_result_from_GetLastError(DWORD error) +{ + switch (error) + { + case ERROR_SUCCESS: return MA_SUCCESS; + case ERROR_PATH_NOT_FOUND: return MA_DOES_NOT_EXIST; + case ERROR_TOO_MANY_OPEN_FILES: return MA_TOO_MANY_OPEN_FILES; + case ERROR_NOT_ENOUGH_MEMORY: return MA_OUT_OF_MEMORY; + case ERROR_DISK_FULL: return MA_NO_SPACE; + case ERROR_HANDLE_EOF: return MA_END_OF_FILE; + case ERROR_NEGATIVE_SEEK: return MA_BAD_SEEK; + case ERROR_INVALID_PARAMETER: return MA_INVALID_ARGS; + case ERROR_ACCESS_DENIED: return MA_ACCESS_DENIED; + case ERROR_SEM_TIMEOUT: return MA_TIMEOUT; + case ERROR_FILE_NOT_FOUND: return MA_DOES_NOT_EXIST; + default: break; + } + + return MA_ERROR; +} +#endif /* MA_WIN32 */ + + +/******************************************************************************* + +Threading + +*******************************************************************************/ +#ifndef MA_NO_THREADING +#ifdef MA_WIN32 + #define MA_THREADCALL WINAPI + typedef unsigned long ma_thread_result; +#else + #define MA_THREADCALL + typedef void* ma_thread_result; +#endif +typedef ma_thread_result (MA_THREADCALL * ma_thread_entry_proc)(void* pData); + +static MA_INLINE ma_result ma_spinlock_lock_ex(volatile ma_spinlock* pSpinlock, ma_bool32 yield) +{ + if (pSpinlock == NULL) { + return MA_INVALID_ARGS; + } + + for (;;) { + if (c89atomic_exchange_explicit_32(pSpinlock, 1, c89atomic_memory_order_acquire) == 0) { + break; + } + + while (c89atomic_load_explicit_32(pSpinlock, c89atomic_memory_order_relaxed) == 1) { + if (yield) { + ma_yield(); + } + } + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_spinlock_lock(volatile ma_spinlock* pSpinlock) +{ + return ma_spinlock_lock_ex(pSpinlock, MA_TRUE); +} + +MA_API ma_result ma_spinlock_lock_noyield(volatile ma_spinlock* pSpinlock) +{ + return ma_spinlock_lock_ex(pSpinlock, MA_FALSE); +} + +MA_API ma_result ma_spinlock_unlock(volatile ma_spinlock* pSpinlock) +{ + if (pSpinlock == NULL) { + return MA_INVALID_ARGS; + } + + c89atomic_store_explicit_32(pSpinlock, 0, c89atomic_memory_order_release); + return MA_SUCCESS; +} + +#ifdef MA_WIN32 +static int ma_thread_priority_to_win32(ma_thread_priority priority) +{ + switch (priority) { + case ma_thread_priority_idle: return THREAD_PRIORITY_IDLE; + case ma_thread_priority_lowest: return THREAD_PRIORITY_LOWEST; + case ma_thread_priority_low: return THREAD_PRIORITY_BELOW_NORMAL; + case ma_thread_priority_normal: return THREAD_PRIORITY_NORMAL; + case ma_thread_priority_high: return THREAD_PRIORITY_ABOVE_NORMAL; + case ma_thread_priority_highest: return THREAD_PRIORITY_HIGHEST; + case ma_thread_priority_realtime: return THREAD_PRIORITY_TIME_CRITICAL; + default: return THREAD_PRIORITY_NORMAL; + } +} + +static ma_result ma_thread_create__win32(ma_thread* pThread, ma_thread_priority priority, size_t stackSize, ma_thread_entry_proc entryProc, void* pData) +{ + *pThread = CreateThread(NULL, stackSize, entryProc, pData, 0, NULL); + if (*pThread == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + SetThreadPriority((HANDLE)*pThread, ma_thread_priority_to_win32(priority)); + + return MA_SUCCESS; +} + +static void ma_thread_wait__win32(ma_thread* pThread) +{ + WaitForSingleObject((HANDLE)*pThread, INFINITE); + CloseHandle((HANDLE)*pThread); +} + + +static ma_result ma_mutex_init__win32(ma_mutex* pMutex) +{ + *pMutex = CreateEventW(NULL, FALSE, TRUE, NULL); + if (*pMutex == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static void ma_mutex_uninit__win32(ma_mutex* pMutex) +{ + CloseHandle((HANDLE)*pMutex); +} + +static void ma_mutex_lock__win32(ma_mutex* pMutex) +{ + WaitForSingleObject((HANDLE)*pMutex, INFINITE); +} + +static void ma_mutex_unlock__win32(ma_mutex* pMutex) +{ + SetEvent((HANDLE)*pMutex); +} + + +static ma_result ma_event_init__win32(ma_event* pEvent) +{ + *pEvent = CreateEventW(NULL, FALSE, FALSE, NULL); + if (*pEvent == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static void ma_event_uninit__win32(ma_event* pEvent) +{ + CloseHandle((HANDLE)*pEvent); +} + +static ma_result ma_event_wait__win32(ma_event* pEvent) +{ + DWORD result = WaitForSingleObject((HANDLE)*pEvent, INFINITE); + if (result == WAIT_OBJECT_0) { + return MA_SUCCESS; + } + + if (result == WAIT_TIMEOUT) { + return MA_TIMEOUT; + } + + return ma_result_from_GetLastError(GetLastError()); +} + +static ma_result ma_event_signal__win32(ma_event* pEvent) +{ + BOOL result = SetEvent((HANDLE)*pEvent); + if (result == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + + +static ma_result ma_semaphore_init__win32(int initialValue, ma_semaphore* pSemaphore) +{ + *pSemaphore = CreateSemaphoreW(NULL, (LONG)initialValue, LONG_MAX, NULL); + if (*pSemaphore == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static void ma_semaphore_uninit__win32(ma_semaphore* pSemaphore) +{ + CloseHandle((HANDLE)*pSemaphore); +} + +static ma_result ma_semaphore_wait__win32(ma_semaphore* pSemaphore) +{ + DWORD result = WaitForSingleObject((HANDLE)*pSemaphore, INFINITE); + if (result == WAIT_OBJECT_0) { + return MA_SUCCESS; + } + + if (result == WAIT_TIMEOUT) { + return MA_TIMEOUT; + } + + return ma_result_from_GetLastError(GetLastError()); +} + +static ma_result ma_semaphore_release__win32(ma_semaphore* pSemaphore) +{ + BOOL result = ReleaseSemaphore((HANDLE)*pSemaphore, 1, NULL); + if (result == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} +#endif + + +#ifdef MA_POSIX +static ma_result ma_thread_create__posix(ma_thread* pThread, ma_thread_priority priority, size_t stackSize, ma_thread_entry_proc entryProc, void* pData) +{ + int result; + pthread_attr_t* pAttr = NULL; + +#if !defined(__EMSCRIPTEN__) + /* Try setting the thread priority. It's not critical if anything fails here. */ + pthread_attr_t attr; + if (pthread_attr_init(&attr) == 0) { + int scheduler = -1; + if (priority == ma_thread_priority_idle) { +#ifdef SCHED_IDLE + if (pthread_attr_setschedpolicy(&attr, SCHED_IDLE) == 0) { + scheduler = SCHED_IDLE; + } +#endif + } else if (priority == ma_thread_priority_realtime) { +#ifdef SCHED_FIFO + if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO) == 0) { + scheduler = SCHED_FIFO; + } +#endif +#ifdef MA_LINUX + } else { + scheduler = sched_getscheduler(0); +#endif + } + + if (stackSize > 0) { + pthread_attr_setstacksize(&attr, stackSize); + } + + if (scheduler != -1) { + int priorityMin = sched_get_priority_min(scheduler); + int priorityMax = sched_get_priority_max(scheduler); + int priorityStep = (priorityMax - priorityMin) / 7; /* 7 = number of priorities supported by miniaudio. */ + + struct sched_param sched; + if (pthread_attr_getschedparam(&attr, &sched) == 0) { + if (priority == ma_thread_priority_idle) { + sched.sched_priority = priorityMin; + } else if (priority == ma_thread_priority_realtime) { + sched.sched_priority = priorityMax; + } else { + sched.sched_priority += ((int)priority + 5) * priorityStep; /* +5 because the lowest priority is -5. */ + if (sched.sched_priority < priorityMin) { + sched.sched_priority = priorityMin; + } + if (sched.sched_priority > priorityMax) { + sched.sched_priority = priorityMax; + } + } + + if (pthread_attr_setschedparam(&attr, &sched) == 0) { + pAttr = &attr; + } + } + } + } +#else + /* It's the emscripten build. We'll have a few unused parameters. */ + (void)priority; + (void)stackSize; +#endif + + result = pthread_create(pThread, pAttr, entryProc, pData); + + /* The thread attributes object is no longer required. */ + if (pAttr != NULL) { + pthread_attr_destroy(pAttr); + } + + if (result != 0) { + return ma_result_from_errno(result); + } + + return MA_SUCCESS; +} + +static void ma_thread_wait__posix(ma_thread* pThread) +{ + pthread_join(*pThread, NULL); + pthread_detach(*pThread); +} + + +static ma_result ma_mutex_init__posix(ma_mutex* pMutex) +{ + int result = pthread_mutex_init((pthread_mutex_t*)pMutex, NULL); + if (result != 0) { + return ma_result_from_errno(result); + } + + return MA_SUCCESS; +} + +static void ma_mutex_uninit__posix(ma_mutex* pMutex) +{ + pthread_mutex_destroy((pthread_mutex_t*)pMutex); +} + +static void ma_mutex_lock__posix(ma_mutex* pMutex) +{ + pthread_mutex_lock((pthread_mutex_t*)pMutex); +} + +static void ma_mutex_unlock__posix(ma_mutex* pMutex) +{ + pthread_mutex_unlock((pthread_mutex_t*)pMutex); +} + + +static ma_result ma_event_init__posix(ma_event* pEvent) +{ + int result; + + result = pthread_mutex_init(&pEvent->lock, NULL); + if (result != 0) { + return ma_result_from_errno(result); + } + + result = pthread_cond_init(&pEvent->cond, NULL); + if (result != 0) { + pthread_mutex_destroy(&pEvent->lock); + return ma_result_from_errno(result); + } + + pEvent->value = 0; + return MA_SUCCESS; +} + +static void ma_event_uninit__posix(ma_event* pEvent) +{ + pthread_cond_destroy(&pEvent->cond); + pthread_mutex_destroy(&pEvent->lock); +} + +static ma_result ma_event_wait__posix(ma_event* pEvent) +{ + pthread_mutex_lock(&pEvent->lock); + { + while (pEvent->value == 0) { + pthread_cond_wait(&pEvent->cond, &pEvent->lock); + } + pEvent->value = 0; /* Auto-reset. */ + } + pthread_mutex_unlock(&pEvent->lock); + + return MA_SUCCESS; +} + +static ma_result ma_event_signal__posix(ma_event* pEvent) +{ + pthread_mutex_lock(&pEvent->lock); + { + pEvent->value = 1; + pthread_cond_signal(&pEvent->cond); + } + pthread_mutex_unlock(&pEvent->lock); + + return MA_SUCCESS; +} + + +static ma_result ma_semaphore_init__posix(int initialValue, ma_semaphore* pSemaphore) +{ + int result; + + if (pSemaphore == NULL) { + return MA_INVALID_ARGS; + } + + pSemaphore->value = initialValue; + + result = pthread_mutex_init(&pSemaphore->lock, NULL); + if (result != 0) { + return ma_result_from_errno(result); /* Failed to create mutex. */ + } + + result = pthread_cond_init(&pSemaphore->cond, NULL); + if (result != 0) { + pthread_mutex_destroy(&pSemaphore->lock); + return ma_result_from_errno(result); /* Failed to create condition variable. */ + } + + return MA_SUCCESS; +} + +static void ma_semaphore_uninit__posix(ma_semaphore* pSemaphore) +{ + if (pSemaphore == NULL) { + return; + } + + pthread_cond_destroy(&pSemaphore->cond); + pthread_mutex_destroy(&pSemaphore->lock); +} + +static ma_result ma_semaphore_wait__posix(ma_semaphore* pSemaphore) +{ + if (pSemaphore == NULL) { + return MA_INVALID_ARGS; + } + + pthread_mutex_lock(&pSemaphore->lock); + { + /* We need to wait on a condition variable before escaping. We can't return from this function until the semaphore has been signaled. */ + while (pSemaphore->value == 0) { + pthread_cond_wait(&pSemaphore->cond, &pSemaphore->lock); + } + + pSemaphore->value -= 1; + } + pthread_mutex_unlock(&pSemaphore->lock); + + return MA_SUCCESS; +} + +static ma_result ma_semaphore_release__posix(ma_semaphore* pSemaphore) +{ + if (pSemaphore == NULL) { + return MA_INVALID_ARGS; + } + + pthread_mutex_lock(&pSemaphore->lock); + { + pSemaphore->value += 1; + pthread_cond_signal(&pSemaphore->cond); + } + pthread_mutex_unlock(&pSemaphore->lock); + + return MA_SUCCESS; +} +#endif + +static ma_result ma_thread_create(ma_thread* pThread, ma_thread_priority priority, size_t stackSize, ma_thread_entry_proc entryProc, void* pData) +{ + if (pThread == NULL || entryProc == NULL) { + return MA_FALSE; + } + +#ifdef MA_WIN32 + return ma_thread_create__win32(pThread, priority, stackSize, entryProc, pData); +#endif +#ifdef MA_POSIX + return ma_thread_create__posix(pThread, priority, stackSize, entryProc, pData); +#endif +} + +static void ma_thread_wait(ma_thread* pThread) +{ + if (pThread == NULL) { + return; + } + +#ifdef MA_WIN32 + ma_thread_wait__win32(pThread); +#endif +#ifdef MA_POSIX + ma_thread_wait__posix(pThread); +#endif +} + + +MA_API ma_result ma_mutex_init(ma_mutex* pMutex) +{ + if (pMutex == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert to the caller is aware of this bug. */ + return MA_INVALID_ARGS; + } + +#ifdef MA_WIN32 + return ma_mutex_init__win32(pMutex); +#endif +#ifdef MA_POSIX + return ma_mutex_init__posix(pMutex); +#endif +} + +MA_API void ma_mutex_uninit(ma_mutex* pMutex) +{ + if (pMutex == NULL) { + return; + } + +#ifdef MA_WIN32 + ma_mutex_uninit__win32(pMutex); +#endif +#ifdef MA_POSIX + ma_mutex_uninit__posix(pMutex); +#endif +} + +MA_API void ma_mutex_lock(ma_mutex* pMutex) +{ + if (pMutex == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert to the caller is aware of this bug. */ + return; + } + +#ifdef MA_WIN32 + ma_mutex_lock__win32(pMutex); +#endif +#ifdef MA_POSIX + ma_mutex_lock__posix(pMutex); +#endif +} + +MA_API void ma_mutex_unlock(ma_mutex* pMutex) +{ + if (pMutex == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert to the caller is aware of this bug. */ + return; +} + +#ifdef MA_WIN32 + ma_mutex_unlock__win32(pMutex); +#endif +#ifdef MA_POSIX + ma_mutex_unlock__posix(pMutex); +#endif +} + + +MA_API ma_result ma_event_init(ma_event* pEvent) +{ + if (pEvent == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert to the caller is aware of this bug. */ + return MA_INVALID_ARGS; + } + +#ifdef MA_WIN32 + return ma_event_init__win32(pEvent); +#endif +#ifdef MA_POSIX + return ma_event_init__posix(pEvent); +#endif +} + +#if 0 +static ma_result ma_event_alloc_and_init(ma_event** ppEvent, ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_result result; + ma_event* pEvent; + + if (ppEvent == NULL) { + return MA_INVALID_ARGS; + } + + *ppEvent = NULL; + + pEvent = ma_malloc(sizeof(*pEvent), pAllocationCallbacks/*, MA_ALLOCATION_TYPE_EVENT*/); + if (pEvent == NULL) { + return MA_OUT_OF_MEMORY; + } + + result = ma_event_init(pEvent); + if (result != MA_SUCCESS) { + ma_free(pEvent, pAllocationCallbacks/*, MA_ALLOCATION_TYPE_EVENT*/); + return result; + } + + *ppEvent = pEvent; + return result; +} +#endif + +MA_API void ma_event_uninit(ma_event* pEvent) +{ + if (pEvent == NULL) { + return; + } + +#ifdef MA_WIN32 + ma_event_uninit__win32(pEvent); +#endif +#ifdef MA_POSIX + ma_event_uninit__posix(pEvent); +#endif +} + +#if 0 +static void ma_event_uninit_and_free(ma_event* pEvent, ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pEvent == NULL) { + return; + } + + ma_event_uninit(pEvent); + ma_free(pEvent, pAllocationCallbacks/*, MA_ALLOCATION_TYPE_EVENT*/); +} +#endif + +MA_API ma_result ma_event_wait(ma_event* pEvent) +{ + if (pEvent == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert to the caller is aware of this bug. */ + return MA_INVALID_ARGS; + } + +#ifdef MA_WIN32 + return ma_event_wait__win32(pEvent); +#endif +#ifdef MA_POSIX + return ma_event_wait__posix(pEvent); +#endif +} + +MA_API ma_result ma_event_signal(ma_event* pEvent) +{ + if (pEvent == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert to the caller is aware of this bug. */ + return MA_INVALID_ARGS; + } + +#ifdef MA_WIN32 + return ma_event_signal__win32(pEvent); +#endif +#ifdef MA_POSIX + return ma_event_signal__posix(pEvent); +#endif +} + + +MA_API ma_result ma_semaphore_init(int initialValue, ma_semaphore* pSemaphore) +{ + if (pSemaphore == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert so the caller is aware of this bug. */ + return MA_INVALID_ARGS; + } + +#ifdef MA_WIN32 + return ma_semaphore_init__win32(initialValue, pSemaphore); +#endif +#ifdef MA_POSIX + return ma_semaphore_init__posix(initialValue, pSemaphore); +#endif +} + +MA_API void ma_semaphore_uninit(ma_semaphore* pSemaphore) +{ + if (pSemaphore == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert so the caller is aware of this bug. */ + return; + } + +#ifdef MA_WIN32 + ma_semaphore_uninit__win32(pSemaphore); +#endif +#ifdef MA_POSIX + ma_semaphore_uninit__posix(pSemaphore); +#endif +} + +MA_API ma_result ma_semaphore_wait(ma_semaphore* pSemaphore) +{ + if (pSemaphore == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert so the caller is aware of this bug. */ + return MA_INVALID_ARGS; + } + +#ifdef MA_WIN32 + return ma_semaphore_wait__win32(pSemaphore); +#endif +#ifdef MA_POSIX + return ma_semaphore_wait__posix(pSemaphore); +#endif +} + +MA_API ma_result ma_semaphore_release(ma_semaphore* pSemaphore) +{ + if (pSemaphore == NULL) { + MA_ASSERT(MA_FALSE); /* Fire an assert so the caller is aware of this bug. */ + return MA_INVALID_ARGS; + } + +#ifdef MA_WIN32 + return ma_semaphore_release__win32(pSemaphore); +#endif +#ifdef MA_POSIX + return ma_semaphore_release__posix(pSemaphore); +#endif +} +#else +/* MA_NO_THREADING is set which means threading is disabled. Threading is required by some API families. If any of these are enabled we need to throw an error. */ +#ifndef MA_NO_DEVICE_IO +#error "MA_NO_THREADING cannot be used without MA_NO_DEVICE_IO"; +#endif +#endif /* MA_NO_THREADING */ + + + +/************************************************************************************************************************************************************ +************************************************************************************************************************************************************* + +DEVICE I/O +========== + +************************************************************************************************************************************************************* +************************************************************************************************************************************************************/ +#ifndef MA_NO_DEVICE_IO +#ifdef MA_WIN32 + #include + #include + #include +#endif + +#if defined(MA_APPLE) && (__MAC_OS_X_VERSION_MIN_REQUIRED < 101200) + #include /* For mach_absolute_time() */ +#endif + +#ifdef MA_POSIX + #include + #include + #include +#endif + +/* +Unfortunately using runtime linking for pthreads causes problems. This has occurred for me when testing on FreeBSD. When +using runtime linking, deadlocks can occur (for me it happens when loading data from fread()). It turns out that doing +compile-time linking fixes this. I'm not sure why this happens, but the safest way I can think of to fix this is to simply +disable runtime linking by default. To enable runtime linking, #define this before the implementation of this file. I am +not officially supporting this, but I'm leaving it here in case it's useful for somebody, somewhere. +*/ +/*#define MA_USE_RUNTIME_LINKING_FOR_PTHREAD*/ + +/* Disable run-time linking on certain backends. */ +#ifndef MA_NO_RUNTIME_LINKING + #if defined(MA_EMSCRIPTEN) + #define MA_NO_RUNTIME_LINKING + #endif +#endif + + +MA_API void ma_device_info_add_native_data_format(ma_device_info* pDeviceInfo, ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_uint32 flags) +{ + if (pDeviceInfo == NULL) { + return; + } + + if (pDeviceInfo->nativeDataFormatCount < ma_countof(pDeviceInfo->nativeDataFormats)) { + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].format = format; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].channels = channels; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].sampleRate = sampleRate; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].flags = flags; + pDeviceInfo->nativeDataFormatCount += 1; + } +} + + +MA_API const char* ma_get_backend_name(ma_backend backend) +{ + switch (backend) + { + case ma_backend_wasapi: return "WASAPI"; + case ma_backend_dsound: return "DirectSound"; + case ma_backend_winmm: return "WinMM"; + case ma_backend_coreaudio: return "Core Audio"; + case ma_backend_sndio: return "sndio"; + case ma_backend_audio4: return "audio(4)"; + case ma_backend_oss: return "OSS"; + case ma_backend_pulseaudio: return "PulseAudio"; + case ma_backend_alsa: return "ALSA"; + case ma_backend_jack: return "JACK"; + case ma_backend_aaudio: return "AAudio"; + case ma_backend_opensl: return "OpenSL|ES"; + case ma_backend_webaudio: return "Web Audio"; + case ma_backend_custom: return "Custom"; + case ma_backend_null: return "Null"; + default: return "Unknown"; + } +} + +MA_API ma_bool32 ma_is_backend_enabled(ma_backend backend) +{ + /* + This looks a little bit gross, but we want all backends to be included in the switch to avoid warnings on some compilers + about some enums not being handled by the switch statement. + */ + switch (backend) + { + case ma_backend_wasapi: + #if defined(MA_HAS_WASAPI) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_dsound: + #if defined(MA_HAS_DSOUND) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_winmm: + #if defined(MA_HAS_WINMM) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_coreaudio: + #if defined(MA_HAS_COREAUDIO) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_sndio: + #if defined(MA_HAS_SNDIO) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_audio4: + #if defined(MA_HAS_AUDIO4) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_oss: + #if defined(MA_HAS_OSS) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_pulseaudio: + #if defined(MA_HAS_PULSEAUDIO) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_alsa: + #if defined(MA_HAS_ALSA) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_jack: + #if defined(MA_HAS_JACK) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_aaudio: + #if defined(MA_HAS_AAUDIO) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_opensl: + #if defined(MA_HAS_OPENSL) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_webaudio: + #if defined(MA_HAS_WEBAUDIO) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_custom: + #if defined(MA_HAS_CUSTOM) + return MA_TRUE; + #else + return MA_FALSE; + #endif + case ma_backend_null: + #if defined(MA_HAS_NULL) + return MA_TRUE; + #else + return MA_FALSE; + #endif + + default: return MA_FALSE; + } +} + +MA_API ma_result ma_get_enabled_backends(ma_backend* pBackends, size_t backendCap, size_t* pBackendCount) +{ + size_t backendCount; + size_t iBackend; + ma_result result = MA_SUCCESS; + + if (pBackendCount == NULL) { + return MA_INVALID_ARGS; + } + + backendCount = 0; + + for (iBackend = 0; iBackend <= ma_backend_null; iBackend += 1) { + ma_backend backend = (ma_backend)iBackend; + + if (ma_is_backend_enabled(backend)) { + /* The backend is enabled. Try adding it to the list. If there's no room, MA_NO_SPACE needs to be returned. */ + if (backendCount == backendCap) { + result = MA_NO_SPACE; + break; + } else { + pBackends[backendCount] = backend; + backendCount += 1; + } + } + } + + if (pBackendCount != NULL) { + *pBackendCount = backendCount; + } + + return result; +} + +MA_API ma_bool32 ma_is_loopback_supported(ma_backend backend) +{ + switch (backend) + { + case ma_backend_wasapi: return MA_TRUE; + case ma_backend_dsound: return MA_FALSE; + case ma_backend_winmm: return MA_FALSE; + case ma_backend_coreaudio: return MA_FALSE; + case ma_backend_sndio: return MA_FALSE; + case ma_backend_audio4: return MA_FALSE; + case ma_backend_oss: return MA_FALSE; + case ma_backend_pulseaudio: return MA_FALSE; + case ma_backend_alsa: return MA_FALSE; + case ma_backend_jack: return MA_FALSE; + case ma_backend_aaudio: return MA_FALSE; + case ma_backend_opensl: return MA_FALSE; + case ma_backend_webaudio: return MA_FALSE; + case ma_backend_custom: return MA_FALSE; /* <-- Will depend on the implementation of the backend. */ + case ma_backend_null: return MA_FALSE; + default: return MA_FALSE; + } +} + + + +#ifdef MA_WIN32 +/* WASAPI error codes. */ +#define MA_AUDCLNT_E_NOT_INITIALIZED ((HRESULT)0x88890001) +#define MA_AUDCLNT_E_ALREADY_INITIALIZED ((HRESULT)0x88890002) +#define MA_AUDCLNT_E_WRONG_ENDPOINT_TYPE ((HRESULT)0x88890003) +#define MA_AUDCLNT_E_DEVICE_INVALIDATED ((HRESULT)0x88890004) +#define MA_AUDCLNT_E_NOT_STOPPED ((HRESULT)0x88890005) +#define MA_AUDCLNT_E_BUFFER_TOO_LARGE ((HRESULT)0x88890006) +#define MA_AUDCLNT_E_OUT_OF_ORDER ((HRESULT)0x88890007) +#define MA_AUDCLNT_E_UNSUPPORTED_FORMAT ((HRESULT)0x88890008) +#define MA_AUDCLNT_E_INVALID_SIZE ((HRESULT)0x88890009) +#define MA_AUDCLNT_E_DEVICE_IN_USE ((HRESULT)0x8889000A) +#define MA_AUDCLNT_E_BUFFER_OPERATION_PENDING ((HRESULT)0x8889000B) +#define MA_AUDCLNT_E_THREAD_NOT_REGISTERED ((HRESULT)0x8889000C) +#define MA_AUDCLNT_E_NO_SINGLE_PROCESS ((HRESULT)0x8889000D) +#define MA_AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED ((HRESULT)0x8889000E) +#define MA_AUDCLNT_E_ENDPOINT_CREATE_FAILED ((HRESULT)0x8889000F) +#define MA_AUDCLNT_E_SERVICE_NOT_RUNNING ((HRESULT)0x88890010) +#define MA_AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED ((HRESULT)0x88890011) +#define MA_AUDCLNT_E_EXCLUSIVE_MODE_ONLY ((HRESULT)0x88890012) +#define MA_AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL ((HRESULT)0x88890013) +#define MA_AUDCLNT_E_EVENTHANDLE_NOT_SET ((HRESULT)0x88890014) +#define MA_AUDCLNT_E_INCORRECT_BUFFER_SIZE ((HRESULT)0x88890015) +#define MA_AUDCLNT_E_BUFFER_SIZE_ERROR ((HRESULT)0x88890016) +#define MA_AUDCLNT_E_CPUUSAGE_EXCEEDED ((HRESULT)0x88890017) +#define MA_AUDCLNT_E_BUFFER_ERROR ((HRESULT)0x88890018) +#define MA_AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED ((HRESULT)0x88890019) +#define MA_AUDCLNT_E_INVALID_DEVICE_PERIOD ((HRESULT)0x88890020) +#define MA_AUDCLNT_E_INVALID_STREAM_FLAG ((HRESULT)0x88890021) +#define MA_AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE ((HRESULT)0x88890022) +#define MA_AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES ((HRESULT)0x88890023) +#define MA_AUDCLNT_E_OFFLOAD_MODE_ONLY ((HRESULT)0x88890024) +#define MA_AUDCLNT_E_NONOFFLOAD_MODE_ONLY ((HRESULT)0x88890025) +#define MA_AUDCLNT_E_RESOURCES_INVALIDATED ((HRESULT)0x88890026) +#define MA_AUDCLNT_E_RAW_MODE_UNSUPPORTED ((HRESULT)0x88890027) +#define MA_AUDCLNT_E_ENGINE_PERIODICITY_LOCKED ((HRESULT)0x88890028) +#define MA_AUDCLNT_E_ENGINE_FORMAT_LOCKED ((HRESULT)0x88890029) +#define MA_AUDCLNT_E_HEADTRACKING_ENABLED ((HRESULT)0x88890030) +#define MA_AUDCLNT_E_HEADTRACKING_UNSUPPORTED ((HRESULT)0x88890040) +#define MA_AUDCLNT_S_BUFFER_EMPTY ((HRESULT)0x08890001) +#define MA_AUDCLNT_S_THREAD_ALREADY_REGISTERED ((HRESULT)0x08890002) +#define MA_AUDCLNT_S_POSITION_STALLED ((HRESULT)0x08890003) + +#define MA_DS_OK ((HRESULT)0) +#define MA_DS_NO_VIRTUALIZATION ((HRESULT)0x0878000A) +#define MA_DSERR_ALLOCATED ((HRESULT)0x8878000A) +#define MA_DSERR_CONTROLUNAVAIL ((HRESULT)0x8878001E) +#define MA_DSERR_INVALIDPARAM ((HRESULT)0x80070057) /*E_INVALIDARG*/ +#define MA_DSERR_INVALIDCALL ((HRESULT)0x88780032) +#define MA_DSERR_GENERIC ((HRESULT)0x80004005) /*E_FAIL*/ +#define MA_DSERR_PRIOLEVELNEEDED ((HRESULT)0x88780046) +#define MA_DSERR_OUTOFMEMORY ((HRESULT)0x8007000E) /*E_OUTOFMEMORY*/ +#define MA_DSERR_BADFORMAT ((HRESULT)0x88780064) +#define MA_DSERR_UNSUPPORTED ((HRESULT)0x80004001) /*E_NOTIMPL*/ +#define MA_DSERR_NODRIVER ((HRESULT)0x88780078) +#define MA_DSERR_ALREADYINITIALIZED ((HRESULT)0x88780082) +#define MA_DSERR_NOAGGREGATION ((HRESULT)0x80040110) /*CLASS_E_NOAGGREGATION*/ +#define MA_DSERR_BUFFERLOST ((HRESULT)0x88780096) +#define MA_DSERR_OTHERAPPHASPRIO ((HRESULT)0x887800A0) +#define MA_DSERR_UNINITIALIZED ((HRESULT)0x887800AA) +#define MA_DSERR_NOINTERFACE ((HRESULT)0x80004002) /*E_NOINTERFACE*/ +#define MA_DSERR_ACCESSDENIED ((HRESULT)0x80070005) /*E_ACCESSDENIED*/ +#define MA_DSERR_BUFFERTOOSMALL ((HRESULT)0x887800B4) +#define MA_DSERR_DS8_REQUIRED ((HRESULT)0x887800BE) +#define MA_DSERR_SENDLOOP ((HRESULT)0x887800C8) +#define MA_DSERR_BADSENDBUFFERGUID ((HRESULT)0x887800D2) +#define MA_DSERR_OBJECTNOTFOUND ((HRESULT)0x88781161) +#define MA_DSERR_FXUNAVAILABLE ((HRESULT)0x887800DC) + +static ma_result ma_result_from_HRESULT(HRESULT hr) +{ + switch (hr) + { + case NOERROR: return MA_SUCCESS; + /*case S_OK: return MA_SUCCESS;*/ + + case E_POINTER: return MA_INVALID_ARGS; + case E_UNEXPECTED: return MA_ERROR; + case E_NOTIMPL: return MA_NOT_IMPLEMENTED; + case E_OUTOFMEMORY: return MA_OUT_OF_MEMORY; + case E_INVALIDARG: return MA_INVALID_ARGS; + case E_NOINTERFACE: return MA_API_NOT_FOUND; + case E_HANDLE: return MA_INVALID_ARGS; + case E_ABORT: return MA_ERROR; + case E_FAIL: return MA_ERROR; + case E_ACCESSDENIED: return MA_ACCESS_DENIED; + + /* WASAPI */ + case MA_AUDCLNT_E_NOT_INITIALIZED: return MA_DEVICE_NOT_INITIALIZED; + case MA_AUDCLNT_E_ALREADY_INITIALIZED: return MA_DEVICE_ALREADY_INITIALIZED; + case MA_AUDCLNT_E_WRONG_ENDPOINT_TYPE: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_DEVICE_INVALIDATED: return MA_UNAVAILABLE; + case MA_AUDCLNT_E_NOT_STOPPED: return MA_DEVICE_NOT_STOPPED; + case MA_AUDCLNT_E_BUFFER_TOO_LARGE: return MA_TOO_BIG; + case MA_AUDCLNT_E_OUT_OF_ORDER: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_UNSUPPORTED_FORMAT: return MA_FORMAT_NOT_SUPPORTED; + case MA_AUDCLNT_E_INVALID_SIZE: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_DEVICE_IN_USE: return MA_BUSY; + case MA_AUDCLNT_E_BUFFER_OPERATION_PENDING: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_THREAD_NOT_REGISTERED: return MA_DOES_NOT_EXIST; + case MA_AUDCLNT_E_NO_SINGLE_PROCESS: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED: return MA_SHARE_MODE_NOT_SUPPORTED; + case MA_AUDCLNT_E_ENDPOINT_CREATE_FAILED: return MA_FAILED_TO_OPEN_BACKEND_DEVICE; + case MA_AUDCLNT_E_SERVICE_NOT_RUNNING: return MA_NOT_CONNECTED; + case MA_AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_EXCLUSIVE_MODE_ONLY: return MA_SHARE_MODE_NOT_SUPPORTED; + case MA_AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_EVENTHANDLE_NOT_SET: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_INCORRECT_BUFFER_SIZE: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_BUFFER_SIZE_ERROR: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_CPUUSAGE_EXCEEDED: return MA_ERROR; + case MA_AUDCLNT_E_BUFFER_ERROR: return MA_ERROR; + case MA_AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_INVALID_DEVICE_PERIOD: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_INVALID_STREAM_FLAG: return MA_INVALID_ARGS; + case MA_AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES: return MA_OUT_OF_MEMORY; + case MA_AUDCLNT_E_OFFLOAD_MODE_ONLY: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_NONOFFLOAD_MODE_ONLY: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_RESOURCES_INVALIDATED: return MA_INVALID_DATA; + case MA_AUDCLNT_E_RAW_MODE_UNSUPPORTED: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_ENGINE_PERIODICITY_LOCKED: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_ENGINE_FORMAT_LOCKED: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_HEADTRACKING_ENABLED: return MA_INVALID_OPERATION; + case MA_AUDCLNT_E_HEADTRACKING_UNSUPPORTED: return MA_INVALID_OPERATION; + case MA_AUDCLNT_S_BUFFER_EMPTY: return MA_NO_SPACE; + case MA_AUDCLNT_S_THREAD_ALREADY_REGISTERED: return MA_ALREADY_EXISTS; + case MA_AUDCLNT_S_POSITION_STALLED: return MA_ERROR; + + /* DirectSound */ + /*case MA_DS_OK: return MA_SUCCESS;*/ /* S_OK */ + case MA_DS_NO_VIRTUALIZATION: return MA_SUCCESS; + case MA_DSERR_ALLOCATED: return MA_ALREADY_IN_USE; + case MA_DSERR_CONTROLUNAVAIL: return MA_INVALID_OPERATION; + /*case MA_DSERR_INVALIDPARAM: return MA_INVALID_ARGS;*/ /* E_INVALIDARG */ + case MA_DSERR_INVALIDCALL: return MA_INVALID_OPERATION; + /*case MA_DSERR_GENERIC: return MA_ERROR;*/ /* E_FAIL */ + case MA_DSERR_PRIOLEVELNEEDED: return MA_INVALID_OPERATION; + /*case MA_DSERR_OUTOFMEMORY: return MA_OUT_OF_MEMORY;*/ /* E_OUTOFMEMORY */ + case MA_DSERR_BADFORMAT: return MA_FORMAT_NOT_SUPPORTED; + /*case MA_DSERR_UNSUPPORTED: return MA_NOT_IMPLEMENTED;*/ /* E_NOTIMPL */ + case MA_DSERR_NODRIVER: return MA_FAILED_TO_INIT_BACKEND; + case MA_DSERR_ALREADYINITIALIZED: return MA_DEVICE_ALREADY_INITIALIZED; + case MA_DSERR_NOAGGREGATION: return MA_ERROR; + case MA_DSERR_BUFFERLOST: return MA_UNAVAILABLE; + case MA_DSERR_OTHERAPPHASPRIO: return MA_ACCESS_DENIED; + case MA_DSERR_UNINITIALIZED: return MA_DEVICE_NOT_INITIALIZED; + /*case MA_DSERR_NOINTERFACE: return MA_API_NOT_FOUND;*/ /* E_NOINTERFACE */ + /*case MA_DSERR_ACCESSDENIED: return MA_ACCESS_DENIED;*/ /* E_ACCESSDENIED */ + case MA_DSERR_BUFFERTOOSMALL: return MA_NO_SPACE; + case MA_DSERR_DS8_REQUIRED: return MA_INVALID_OPERATION; + case MA_DSERR_SENDLOOP: return MA_DEADLOCK; + case MA_DSERR_BADSENDBUFFERGUID: return MA_INVALID_ARGS; + case MA_DSERR_OBJECTNOTFOUND: return MA_NO_DEVICE; + case MA_DSERR_FXUNAVAILABLE: return MA_UNAVAILABLE; + + default: return MA_ERROR; + } +} + +typedef HRESULT (WINAPI * MA_PFN_CoInitializeEx)(LPVOID pvReserved, DWORD dwCoInit); +typedef void (WINAPI * MA_PFN_CoUninitialize)(void); +typedef HRESULT (WINAPI * MA_PFN_CoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID *ppv); +typedef void (WINAPI * MA_PFN_CoTaskMemFree)(LPVOID pv); +typedef HRESULT (WINAPI * MA_PFN_PropVariantClear)(PROPVARIANT *pvar); +typedef int (WINAPI * MA_PFN_StringFromGUID2)(const GUID* const rguid, LPOLESTR lpsz, int cchMax); + +typedef HWND (WINAPI * MA_PFN_GetForegroundWindow)(void); +typedef HWND (WINAPI * MA_PFN_GetDesktopWindow)(void); + +/* Microsoft documents these APIs as returning LSTATUS, but the Win32 API shipping with some compilers do not define it. It's just a LONG. */ +typedef LONG (WINAPI * MA_PFN_RegOpenKeyExA)(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); +typedef LONG (WINAPI * MA_PFN_RegCloseKey)(HKEY hKey); +typedef LONG (WINAPI * MA_PFN_RegQueryValueExA)(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData); +#endif + + +#define MA_DEFAULT_PLAYBACK_DEVICE_NAME "Default Playback Device" +#define MA_DEFAULT_CAPTURE_DEVICE_NAME "Default Capture Device" + + +MA_API const char* ma_log_level_to_string(ma_uint32 logLevel) +{ + switch (logLevel) + { + case MA_LOG_LEVEL_VERBOSE: return ""; + case MA_LOG_LEVEL_INFO: return "INFO"; + case MA_LOG_LEVEL_WARNING: return "WARNING"; + case MA_LOG_LEVEL_ERROR: return "ERROR"; + default: return "ERROR"; + } +} + +/* Posts a log message. */ +static void ma_post_log_message(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message) +{ + if (pContext == NULL) { + if (pDevice != NULL) { + pContext = pDevice->pContext; + } + } + + /* All logs must be output when debug output is enabled. */ +#if defined(MA_DEBUG_OUTPUT) + printf("%s: %s\n", ma_log_level_to_string(logLevel), message); +#endif + + if (pContext == NULL) { + return; + } + +#if defined(MA_LOG_LEVEL) + if (logLevel <= MA_LOG_LEVEL) { + ma_log_proc onLog; + + onLog = pContext->logCallback; + if (onLog) { + onLog(pContext, pDevice, logLevel, message); + } + } +#endif +} + +/* +We need to emulate _vscprintf() for the VC6 build. This can be more efficient, but since it's only VC6, and it's just a +logging function, I'm happy to keep this simple. In the VC6 build we can implement this in terms of _vsnprintf(). +*/ +#if defined(_MSC_VER) && _MSC_VER < 1900 +int ma_vscprintf(const char* format, va_list args) +{ +#if _MSC_VER > 1200 + return _vscprintf(format, args); +#else + int result; + char* pTempBuffer = NULL; + size_t tempBufferCap = 1024; + + if (format == NULL) { + errno = EINVAL; + return -1; + } + + for (;;) { + char* pNewTempBuffer = (char*)ma_realloc(pTempBuffer, tempBufferCap, NULL); /* TODO: Add support for custom memory allocators? */ + if (pNewTempBuffer == NULL) { + ma_free(pTempBuffer, NULL); + errno = ENOMEM; + return -1; /* Out of memory. */ + } + + pTempBuffer = pNewTempBuffer; + + result = _vsnprintf(pTempBuffer, tempBufferCap, format, args); + ma_free(pTempBuffer, NULL); + + if (result != -1) { + break; /* Got it. */ + } + + /* Buffer wasn't big enough. Ideally it'd be nice to use an error code to know the reason for sure, but this is reliable enough. */ + tempBufferCap *= 2; + } + + return result; +#endif +} +#endif + +/* Posts a formatted log message. */ +static void ma_post_log_messagev(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* pFormat, va_list args) +{ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || ((!defined(_MSC_VER) || _MSC_VER >= 1900) && !defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + { + char pFormattedMessage[1024]; + vsnprintf(pFormattedMessage, sizeof(pFormattedMessage), pFormat, args); + ma_post_log_message(pContext, pDevice, logLevel, pFormattedMessage); + } +#else + { + /* + Without snprintf() we need to first measure the string and then heap allocate it. I'm only aware of Visual Studio having support for this without snprintf(), so we'll + need to restrict this branch to Visual Studio. For other compilers we need to just not support formatted logging because I don't want the security risk of overflowing + a fixed sized stack allocated buffer. + */ + #if defined(_MSC_VER) && _MSC_VER >= 1200 /* 1200 = VC6 */ + int formattedLen; + va_list args2; + + #if _MSC_VER >= 1800 + va_copy(args2, args); + #else + args2 = args; + #endif + formattedLen = ma_vscprintf(pFormat, args2); + va_end(args2); + + if (formattedLen > 0) { + char* pFormattedMessage = NULL; + ma_allocation_callbacks* pAllocationCallbacks = NULL; + + /* Make sure we have a context so we can allocate memory. */ + if (pContext == NULL) { + if (pDevice != NULL) { + pContext = pDevice->pContext; + } + } + + if (pContext != NULL) { + pAllocationCallbacks = &pContext->allocationCallbacks; + } + + pFormattedMessage = (char*)ma_malloc(formattedLen + 1, pAllocationCallbacks); + if (pFormattedMessage != NULL) { + /* We'll get errors on newer versions of Visual Studio if we try to use vsprintf(). */ + #if _MSC_VER >= 1400 /* 1400 = Visual Studio 2005 */ + vsprintf_s(pFormattedMessage, formattedLen + 1, pFormat, args); + #else + vsprintf(pFormattedMessage, pFormat, args); + #endif + + ma_post_log_message(pContext, pDevice, logLevel, pFormattedMessage); + ma_free(pFormattedMessage, pAllocationCallbacks); + } + } + #else + /* Can't do anything because we don't have a safe way of to emulate vsnprintf() without a manual solution. */ + (void)pContext; + (void)pDevice; + (void)logLevel; + (void)pFormat; + (void)args; + #endif + } +#endif +} + +MA_API void ma_post_log_messagef(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* pFormat, ...) +{ + va_list args; + va_start(args, pFormat); + { + ma_post_log_messagev(pContext, pDevice, logLevel, pFormat, args); + } + va_end(args); +} + +/* Posts an log message. Throw a breakpoint in here if you're needing to debug. The return value is always "resultCode". */ +static ma_result ma_context_post_error(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message, ma_result resultCode) +{ + ma_post_log_message(pContext, pDevice, logLevel, message); + return resultCode; +} + +static ma_result ma_post_error(ma_device* pDevice, ma_uint32 logLevel, const char* message, ma_result resultCode) +{ + return ma_context_post_error(NULL, pDevice, logLevel, message, resultCode); +} + + +/******************************************************************************* + +Timing + +*******************************************************************************/ +#ifdef MA_WIN32 + static LARGE_INTEGER g_ma_TimerFrequency; /* <-- Initialized to zero since it's static. */ + static void ma_timer_init(ma_timer* pTimer) + { + LARGE_INTEGER counter; + + if (g_ma_TimerFrequency.QuadPart == 0) { + QueryPerformanceFrequency(&g_ma_TimerFrequency); + } + + QueryPerformanceCounter(&counter); + pTimer->counter = counter.QuadPart; + } + + static double ma_timer_get_time_in_seconds(ma_timer* pTimer) + { + LARGE_INTEGER counter; + if (!QueryPerformanceCounter(&counter)) { + return 0; + } + + return (double)(counter.QuadPart - pTimer->counter) / g_ma_TimerFrequency.QuadPart; + } +#elif defined(MA_APPLE) && (__MAC_OS_X_VERSION_MIN_REQUIRED < 101200) + static ma_uint64 g_ma_TimerFrequency = 0; + static void ma_timer_init(ma_timer* pTimer) + { + mach_timebase_info_data_t baseTime; + mach_timebase_info(&baseTime); + g_ma_TimerFrequency = (baseTime.denom * 1e9) / baseTime.numer; + + pTimer->counter = mach_absolute_time(); + } + + static double ma_timer_get_time_in_seconds(ma_timer* pTimer) + { + ma_uint64 newTimeCounter = mach_absolute_time(); + ma_uint64 oldTimeCounter = pTimer->counter; + + return (newTimeCounter - oldTimeCounter) / g_ma_TimerFrequency; + } +#elif defined(MA_EMSCRIPTEN) + static MA_INLINE void ma_timer_init(ma_timer* pTimer) + { + pTimer->counterD = emscripten_get_now(); + } + + static MA_INLINE double ma_timer_get_time_in_seconds(ma_timer* pTimer) + { + return (emscripten_get_now() - pTimer->counterD) / 1000; /* Emscripten is in milliseconds. */ + } +#else + #if _POSIX_C_SOURCE >= 199309L + #if defined(CLOCK_MONOTONIC) + #define MA_CLOCK_ID CLOCK_MONOTONIC + #else + #define MA_CLOCK_ID CLOCK_REALTIME + #endif + + static void ma_timer_init(ma_timer* pTimer) + { + struct timespec newTime; + clock_gettime(MA_CLOCK_ID, &newTime); + + pTimer->counter = (newTime.tv_sec * 1000000000) + newTime.tv_nsec; + } + + static double ma_timer_get_time_in_seconds(ma_timer* pTimer) + { + ma_uint64 newTimeCounter; + ma_uint64 oldTimeCounter; + + struct timespec newTime; + clock_gettime(MA_CLOCK_ID, &newTime); + + newTimeCounter = (newTime.tv_sec * 1000000000) + newTime.tv_nsec; + oldTimeCounter = pTimer->counter; + + return (newTimeCounter - oldTimeCounter) / 1000000000.0; + } + #else + static void ma_timer_init(ma_timer* pTimer) + { + struct timeval newTime; + gettimeofday(&newTime, NULL); + + pTimer->counter = (newTime.tv_sec * 1000000) + newTime.tv_usec; + } + + static double ma_timer_get_time_in_seconds(ma_timer* pTimer) + { + ma_uint64 newTimeCounter; + ma_uint64 oldTimeCounter; + + struct timeval newTime; + gettimeofday(&newTime, NULL); + + newTimeCounter = (newTime.tv_sec * 1000000) + newTime.tv_usec; + oldTimeCounter = pTimer->counter; + + return (newTimeCounter - oldTimeCounter) / 1000000.0; + } + #endif +#endif + + +/******************************************************************************* + +Dynamic Linking + +*******************************************************************************/ +MA_API ma_handle ma_dlopen(ma_context* pContext, const char* filename) +{ + ma_handle handle; + +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_VERBOSE + if (pContext != NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Loading library: ", filename); + ma_post_log_message(pContext, NULL, MA_LOG_LEVEL_VERBOSE, message); + } +#endif + +#ifdef _WIN32 +#ifdef MA_WIN32_DESKTOP + handle = (ma_handle)LoadLibraryA(filename); +#else + /* *sigh* It appears there is no ANSI version of LoadPackagedLibrary()... */ + WCHAR filenameW[4096]; + if (MultiByteToWideChar(CP_UTF8, 0, filename, -1, filenameW, sizeof(filenameW)) == 0) { + handle = NULL; + } else { + handle = (ma_handle)LoadPackagedLibrary(filenameW, 0); + } +#endif +#else + handle = (ma_handle)dlopen(filename, RTLD_NOW); +#endif + + /* + I'm not considering failure to load a library an error nor a warning because seamlessly falling through to a lower-priority + backend is a deliberate design choice. Instead I'm logging it as an informational message. + */ +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_INFO + if (handle == NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Failed to load library: ", filename); + ma_post_log_message(pContext, NULL, MA_LOG_LEVEL_INFO, message); + } +#endif + + (void)pContext; /* It's possible for pContext to be unused. */ + return handle; +} + +MA_API void ma_dlclose(ma_context* pContext, ma_handle handle) +{ +#ifdef _WIN32 + FreeLibrary((HMODULE)handle); +#else + dlclose((void*)handle); +#endif + + (void)pContext; +} + +MA_API ma_proc ma_dlsym(ma_context* pContext, ma_handle handle, const char* symbol) +{ + ma_proc proc; + +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_VERBOSE + if (pContext != NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Loading symbol: ", symbol); + ma_post_log_message(pContext, NULL, MA_LOG_LEVEL_VERBOSE, message); + } +#endif + +#ifdef _WIN32 + proc = (ma_proc)GetProcAddress((HMODULE)handle, symbol); +#else +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpedantic" +#endif + proc = (ma_proc)dlsym((void*)handle, symbol); +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #pragma GCC diagnostic pop +#endif +#endif + +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_WARNING + if (handle == NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Failed to load symbol: ", symbol); + ma_post_log_message(pContext, NULL, MA_LOG_LEVEL_WARNING, message); + } +#endif + + (void)pContext; /* It's possible for pContext to be unused. */ + return proc; +} + + +#if 0 +static ma_uint32 ma_get_closest_standard_sample_rate(ma_uint32 sampleRateIn) +{ + ma_uint32 closestRate = 0; + ma_uint32 closestDiff = 0xFFFFFFFF; + size_t iStandardRate; + + for (iStandardRate = 0; iStandardRate < ma_countof(g_maStandardSampleRatePriorities); ++iStandardRate) { + ma_uint32 standardRate = g_maStandardSampleRatePriorities[iStandardRate]; + ma_uint32 diff; + + if (sampleRateIn > standardRate) { + diff = sampleRateIn - standardRate; + } else { + diff = standardRate - sampleRateIn; + } + + if (diff == 0) { + return standardRate; /* The input sample rate is a standard rate. */ + } + + if (closestDiff > diff) { + closestDiff = diff; + closestRate = standardRate; + } + } + + return closestRate; +} +#endif + + +static void ma_device__on_data(ma_device* pDevice, void* pFramesOut, const void* pFramesIn, ma_uint32 frameCount) +{ + float masterVolumeFactor; + + ma_device_get_master_volume(pDevice, &masterVolumeFactor); /* Use ma_device_get_master_volume() to ensure the volume is loaded atomically. */ + + if (pDevice->onData) { + if (!pDevice->noPreZeroedOutputBuffer && pFramesOut != NULL) { + ma_silence_pcm_frames(pFramesOut, frameCount, pDevice->playback.format, pDevice->playback.channels); + } + + /* Volume control of input makes things a bit awkward because the input buffer is read-only. We'll need to use a temp buffer and loop in this case. */ + if (pFramesIn != NULL && masterVolumeFactor < 1) { + ma_uint8 tempFramesIn[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 bpfCapture = ma_get_bytes_per_frame(pDevice->capture.format, pDevice->capture.channels); + ma_uint32 bpfPlayback = ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels); + ma_uint32 totalFramesProcessed = 0; + while (totalFramesProcessed < frameCount) { + ma_uint32 framesToProcessThisIteration = frameCount - totalFramesProcessed; + if (framesToProcessThisIteration > sizeof(tempFramesIn)/bpfCapture) { + framesToProcessThisIteration = sizeof(tempFramesIn)/bpfCapture; + } + + ma_copy_and_apply_volume_factor_pcm_frames(tempFramesIn, ma_offset_ptr(pFramesIn, totalFramesProcessed*bpfCapture), framesToProcessThisIteration, pDevice->capture.format, pDevice->capture.channels, masterVolumeFactor); + + pDevice->onData(pDevice, ma_offset_ptr(pFramesOut, totalFramesProcessed*bpfPlayback), tempFramesIn, framesToProcessThisIteration); + + totalFramesProcessed += framesToProcessThisIteration; + } + } else { + pDevice->onData(pDevice, pFramesOut, pFramesIn, frameCount); + } + + /* Volume control and clipping for playback devices. */ + if (pFramesOut != NULL) { + if (masterVolumeFactor < 1) { + if (pFramesIn == NULL) { /* <-- In full-duplex situations, the volume will have been applied to the input samples before the data callback. Applying it again post-callback will incorrectly compound it. */ + ma_apply_volume_factor_pcm_frames(pFramesOut, frameCount, pDevice->playback.format, pDevice->playback.channels, masterVolumeFactor); + } + } + + if (!pDevice->noClip && pDevice->playback.format == ma_format_f32) { + ma_clip_pcm_frames_f32((float*)pFramesOut, frameCount, pDevice->playback.channels); + } + } + } +} + + + +/* A helper function for reading sample data from the client. */ +static void ma_device__read_frames_from_client(ma_device* pDevice, ma_uint32 frameCount, void* pFramesOut) +{ + MA_ASSERT(pDevice != NULL); + MA_ASSERT(frameCount > 0); + MA_ASSERT(pFramesOut != NULL); + + if (pDevice->playback.converter.isPassthrough) { + ma_device__on_data(pDevice, pFramesOut, NULL, frameCount); + } else { + ma_result result; + ma_uint64 totalFramesReadOut; + ma_uint64 totalFramesReadIn; + void* pRunningFramesOut; + + totalFramesReadOut = 0; + totalFramesReadIn = 0; + pRunningFramesOut = pFramesOut; + + while (totalFramesReadOut < frameCount) { + ma_uint8 pIntermediaryBuffer[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In client format. */ + ma_uint64 intermediaryBufferCap = sizeof(pIntermediaryBuffer) / ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels); + ma_uint64 framesToReadThisIterationIn; + ma_uint64 framesReadThisIterationIn; + ma_uint64 framesToReadThisIterationOut; + ma_uint64 framesReadThisIterationOut; + ma_uint64 requiredInputFrameCount; + + framesToReadThisIterationOut = (frameCount - totalFramesReadOut); + framesToReadThisIterationIn = framesToReadThisIterationOut; + if (framesToReadThisIterationIn > intermediaryBufferCap) { + framesToReadThisIterationIn = intermediaryBufferCap; + } + + requiredInputFrameCount = ma_data_converter_get_required_input_frame_count(&pDevice->playback.converter, framesToReadThisIterationOut); + if (framesToReadThisIterationIn > requiredInputFrameCount) { + framesToReadThisIterationIn = requiredInputFrameCount; + } + + if (framesToReadThisIterationIn > 0) { + ma_device__on_data(pDevice, pIntermediaryBuffer, NULL, (ma_uint32)framesToReadThisIterationIn); + totalFramesReadIn += framesToReadThisIterationIn; + } + + /* + At this point we have our decoded data in input format and now we need to convert to output format. Note that even if we didn't read any + input frames, we still want to try processing frames because there may some output frames generated from cached input data. + */ + framesReadThisIterationIn = framesToReadThisIterationIn; + framesReadThisIterationOut = framesToReadThisIterationOut; + result = ma_data_converter_process_pcm_frames(&pDevice->playback.converter, pIntermediaryBuffer, &framesReadThisIterationIn, pRunningFramesOut, &framesReadThisIterationOut); + if (result != MA_SUCCESS) { + break; + } + + totalFramesReadOut += framesReadThisIterationOut; + pRunningFramesOut = ma_offset_ptr(pRunningFramesOut, framesReadThisIterationOut * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels)); + + if (framesReadThisIterationIn == 0 && framesReadThisIterationOut == 0) { + break; /* We're done. */ + } + } + } +} + +/* A helper for sending sample data to the client. */ +static void ma_device__send_frames_to_client(ma_device* pDevice, ma_uint32 frameCountInDeviceFormat, const void* pFramesInDeviceFormat) +{ + MA_ASSERT(pDevice != NULL); + MA_ASSERT(frameCountInDeviceFormat > 0); + MA_ASSERT(pFramesInDeviceFormat != NULL); + + if (pDevice->capture.converter.isPassthrough) { + ma_device__on_data(pDevice, NULL, pFramesInDeviceFormat, frameCountInDeviceFormat); + } else { + ma_result result; + ma_uint8 pFramesInClientFormat[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint64 framesInClientFormatCap = sizeof(pFramesInClientFormat) / ma_get_bytes_per_frame(pDevice->capture.format, pDevice->capture.channels); + ma_uint64 totalDeviceFramesProcessed = 0; + ma_uint64 totalClientFramesProcessed = 0; + const void* pRunningFramesInDeviceFormat = pFramesInDeviceFormat; + + /* We just keep going until we've exhaused all of our input frames and cannot generate any more output frames. */ + for (;;) { + ma_uint64 deviceFramesProcessedThisIteration; + ma_uint64 clientFramesProcessedThisIteration; + + deviceFramesProcessedThisIteration = (frameCountInDeviceFormat - totalDeviceFramesProcessed); + clientFramesProcessedThisIteration = framesInClientFormatCap; + + result = ma_data_converter_process_pcm_frames(&pDevice->capture.converter, pRunningFramesInDeviceFormat, &deviceFramesProcessedThisIteration, pFramesInClientFormat, &clientFramesProcessedThisIteration); + if (result != MA_SUCCESS) { + break; + } + + if (clientFramesProcessedThisIteration > 0) { + ma_device__on_data(pDevice, NULL, pFramesInClientFormat, (ma_uint32)clientFramesProcessedThisIteration); /* Safe cast. */ + } + + pRunningFramesInDeviceFormat = ma_offset_ptr(pRunningFramesInDeviceFormat, deviceFramesProcessedThisIteration * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels)); + totalDeviceFramesProcessed += deviceFramesProcessedThisIteration; + totalClientFramesProcessed += clientFramesProcessedThisIteration; + + if (deviceFramesProcessedThisIteration == 0 && clientFramesProcessedThisIteration == 0) { + break; /* We're done. */ + } + } + } +} + +static ma_result ma_device__handle_duplex_callback_capture(ma_device* pDevice, ma_uint32 frameCountInDeviceFormat, const void* pFramesInDeviceFormat, ma_pcm_rb* pRB) +{ + ma_result result; + ma_uint32 totalDeviceFramesProcessed = 0; + const void* pRunningFramesInDeviceFormat = pFramesInDeviceFormat; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(frameCountInDeviceFormat > 0); + MA_ASSERT(pFramesInDeviceFormat != NULL); + MA_ASSERT(pRB != NULL); + + /* Write to the ring buffer. The ring buffer is in the client format which means we need to convert. */ + for (;;) { + ma_uint32 framesToProcessInDeviceFormat = (frameCountInDeviceFormat - totalDeviceFramesProcessed); + ma_uint32 framesToProcessInClientFormat = MA_DATA_CONVERTER_STACK_BUFFER_SIZE / ma_get_bytes_per_frame(pDevice->capture.format, pDevice->capture.channels); + ma_uint64 framesProcessedInDeviceFormat; + ma_uint64 framesProcessedInClientFormat; + void* pFramesInClientFormat; + + result = ma_pcm_rb_acquire_write(pRB, &framesToProcessInClientFormat, &pFramesInClientFormat); + if (result != MA_SUCCESS) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "Failed to acquire capture PCM frames from ring buffer.", result); + break; + } + + if (framesToProcessInClientFormat == 0) { + if (ma_pcm_rb_pointer_distance(pRB) == (ma_int32)ma_pcm_rb_get_subbuffer_size(pRB)) { + break; /* Overrun. Not enough room in the ring buffer for input frame. Excess frames are dropped. */ + } + } + + /* Convert. */ + framesProcessedInDeviceFormat = framesToProcessInDeviceFormat; + framesProcessedInClientFormat = framesToProcessInClientFormat; + result = ma_data_converter_process_pcm_frames(&pDevice->capture.converter, pRunningFramesInDeviceFormat, &framesProcessedInDeviceFormat, pFramesInClientFormat, &framesProcessedInClientFormat); + if (result != MA_SUCCESS) { + break; + } + + result = ma_pcm_rb_commit_write(pRB, (ma_uint32)framesProcessedInClientFormat, pFramesInClientFormat); /* Safe cast. */ + if (result != MA_SUCCESS) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "Failed to commit capture PCM frames to ring buffer.", result); + break; + } + + pRunningFramesInDeviceFormat = ma_offset_ptr(pRunningFramesInDeviceFormat, framesProcessedInDeviceFormat * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels)); + totalDeviceFramesProcessed += (ma_uint32)framesProcessedInDeviceFormat; /* Safe cast. */ + + /* We're done when we're unable to process any client nor device frames. */ + if (framesProcessedInClientFormat == 0 && framesProcessedInDeviceFormat == 0) { + break; /* Done. */ + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device__handle_duplex_callback_playback(ma_device* pDevice, ma_uint32 frameCount, void* pFramesInInternalFormat, ma_pcm_rb* pRB) +{ + ma_result result; + ma_uint8 playbackFramesInExternalFormat[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint8 silentInputFrames[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 totalFramesToReadFromClient; + ma_uint32 totalFramesReadFromClient; + ma_uint32 totalFramesReadOut = 0; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(frameCount > 0); + MA_ASSERT(pFramesInInternalFormat != NULL); + MA_ASSERT(pRB != NULL); + + /* + Sitting in the ring buffer should be captured data from the capture callback in external format. If there's not enough data in there for + the whole frameCount frames we just use silence instead for the input data. + */ + MA_ZERO_MEMORY(silentInputFrames, sizeof(silentInputFrames)); + + /* We need to calculate how many output frames are required to be read from the client to completely fill frameCount internal frames. */ + totalFramesToReadFromClient = (ma_uint32)ma_data_converter_get_required_input_frame_count(&pDevice->playback.converter, frameCount); + totalFramesReadFromClient = 0; + while (totalFramesReadFromClient < totalFramesToReadFromClient && ma_device_is_started(pDevice)) { + ma_uint32 framesRemainingFromClient; + ma_uint32 framesToProcessFromClient; + ma_uint32 inputFrameCount; + void* pInputFrames; + + framesRemainingFromClient = (totalFramesToReadFromClient - totalFramesReadFromClient); + framesToProcessFromClient = sizeof(playbackFramesInExternalFormat) / ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels); + if (framesToProcessFromClient > framesRemainingFromClient) { + framesToProcessFromClient = framesRemainingFromClient; + } + + /* We need to grab captured samples before firing the callback. If there's not enough input samples we just pass silence. */ + inputFrameCount = framesToProcessFromClient; + result = ma_pcm_rb_acquire_read(pRB, &inputFrameCount, &pInputFrames); + if (result == MA_SUCCESS) { + if (inputFrameCount > 0) { + /* Use actual input frames. */ + ma_device__on_data(pDevice, playbackFramesInExternalFormat, pInputFrames, inputFrameCount); + } else { + if (ma_pcm_rb_pointer_distance(pRB) == 0) { + break; /* Underrun. */ + } + } + + /* We're done with the captured samples. */ + result = ma_pcm_rb_commit_read(pRB, inputFrameCount, pInputFrames); + if (result != MA_SUCCESS) { + break; /* Don't know what to do here... Just abandon ship. */ + } + } else { + /* Use silent input frames. */ + inputFrameCount = ma_min( + sizeof(playbackFramesInExternalFormat) / ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels), + sizeof(silentInputFrames) / ma_get_bytes_per_frame(pDevice->capture.format, pDevice->capture.channels) + ); + + ma_device__on_data(pDevice, playbackFramesInExternalFormat, silentInputFrames, inputFrameCount); + } + + /* We have samples in external format so now we need to convert to internal format and output to the device. */ + { + ma_uint64 framesConvertedIn = inputFrameCount; + ma_uint64 framesConvertedOut = (frameCount - totalFramesReadOut); + ma_data_converter_process_pcm_frames(&pDevice->playback.converter, playbackFramesInExternalFormat, &framesConvertedIn, pFramesInInternalFormat, &framesConvertedOut); + + totalFramesReadFromClient += (ma_uint32)framesConvertedIn; /* Safe cast. */ + totalFramesReadOut += (ma_uint32)framesConvertedOut; /* Safe cast. */ + pFramesInInternalFormat = ma_offset_ptr(pFramesInInternalFormat, framesConvertedOut * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels)); + } + } + + return MA_SUCCESS; +} + +/* A helper for changing the state of the device. */ +static MA_INLINE void ma_device__set_state(ma_device* pDevice, ma_uint32 newState) +{ + c89atomic_exchange_32(&pDevice->state, newState); +} + + +#ifdef MA_WIN32 + GUID MA_GUID_KSDATAFORMAT_SUBTYPE_PCM = {0x00000001, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; + GUID MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = {0x00000003, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; + /*GUID MA_GUID_KSDATAFORMAT_SUBTYPE_ALAW = {0x00000006, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};*/ + /*GUID MA_GUID_KSDATAFORMAT_SUBTYPE_MULAW = {0x00000007, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};*/ +#endif + + + +MA_API ma_uint32 ma_get_format_priority_index(ma_format format) /* Lower = better. */ +{ + ma_uint32 i; + for (i = 0; i < ma_countof(g_maFormatPriorities); ++i) { + if (g_maFormatPriorities[i] == format) { + return i; + } + } + + /* Getting here means the format could not be found or is equal to ma_format_unknown. */ + return (ma_uint32)-1; +} + +static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type deviceType); + + +static ma_bool32 ma_device_descriptor_is_valid(const ma_device_descriptor* pDeviceDescriptor) +{ + if (pDeviceDescriptor == NULL) { + return MA_FALSE; + } + + if (pDeviceDescriptor->format == ma_format_unknown) { + return MA_FALSE; + } + + if (pDeviceDescriptor->channels < MA_MIN_CHANNELS || pDeviceDescriptor->channels > MA_MAX_CHANNELS) { + return MA_FALSE; + } + + if (pDeviceDescriptor->sampleRate == 0) { + return MA_FALSE; + } + + return MA_TRUE; +} + + +static ma_result ma_device_audio_thread__default_read_write(ma_device* pDevice) +{ + ma_result result = MA_SUCCESS; + ma_bool32 exitLoop = MA_FALSE; + ma_uint8 capturedDeviceData[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint8 playbackDeviceData[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 capturedDeviceDataCapInFrames = 0; + ma_uint32 playbackDeviceDataCapInFrames = 0; + + MA_ASSERT(pDevice != NULL); + + /* Just some quick validation on the device type and the available callbacks. */ + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { + if (pDevice->pContext->callbacks.onDeviceRead == NULL) { + return MA_NOT_IMPLEMENTED; + } + + capturedDeviceDataCapInFrames = sizeof(capturedDeviceData) / ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + if (pDevice->pContext->callbacks.onDeviceWrite == NULL) { + return MA_NOT_IMPLEMENTED; + } + + playbackDeviceDataCapInFrames = sizeof(playbackDeviceData) / ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + } + + /* NOTE: The device was started outside of this function, in the worker thread. */ + + while (ma_device_get_state(pDevice) == MA_STATE_STARTED && !exitLoop) { + switch (pDevice->type) { + case ma_device_type_duplex: + { + /* The process is: onDeviceRead() -> convert -> callback -> convert -> onDeviceWrite() */ + ma_uint32 totalCapturedDeviceFramesProcessed = 0; + ma_uint32 capturedDevicePeriodSizeInFrames = ma_min(pDevice->capture.internalPeriodSizeInFrames, pDevice->playback.internalPeriodSizeInFrames); + + while (totalCapturedDeviceFramesProcessed < capturedDevicePeriodSizeInFrames) { + ma_uint32 capturedDeviceFramesRemaining; + ma_uint32 capturedDeviceFramesProcessed; + ma_uint32 capturedDeviceFramesToProcess; + ma_uint32 capturedDeviceFramesToTryProcessing = capturedDevicePeriodSizeInFrames - totalCapturedDeviceFramesProcessed; + if (capturedDeviceFramesToTryProcessing > capturedDeviceDataCapInFrames) { + capturedDeviceFramesToTryProcessing = capturedDeviceDataCapInFrames; + } + + result = pDevice->pContext->callbacks.onDeviceRead(pDevice, capturedDeviceData, capturedDeviceFramesToTryProcessing, &capturedDeviceFramesToProcess); + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + + capturedDeviceFramesRemaining = capturedDeviceFramesToProcess; + capturedDeviceFramesProcessed = 0; + + /* At this point we have our captured data in device format and we now need to convert it to client format. */ + for (;;) { + ma_uint8 capturedClientData[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint8 playbackClientData[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 capturedClientDataCapInFrames = sizeof(capturedClientData) / ma_get_bytes_per_frame(pDevice->capture.format, pDevice->capture.channels); + ma_uint32 playbackClientDataCapInFrames = sizeof(playbackClientData) / ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels); + ma_uint64 capturedClientFramesToProcessThisIteration = ma_min(capturedClientDataCapInFrames, playbackClientDataCapInFrames); + ma_uint64 capturedDeviceFramesToProcessThisIteration = capturedDeviceFramesRemaining; + ma_uint8* pRunningCapturedDeviceFrames = ma_offset_ptr(capturedDeviceData, capturedDeviceFramesProcessed * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels)); + + /* Convert capture data from device format to client format. */ + result = ma_data_converter_process_pcm_frames(&pDevice->capture.converter, pRunningCapturedDeviceFrames, &capturedDeviceFramesToProcessThisIteration, capturedClientData, &capturedClientFramesToProcessThisIteration); + if (result != MA_SUCCESS) { + break; + } + + /* + If we weren't able to generate any output frames it must mean we've exhaused all of our input. The only time this would not be the case is if capturedClientData was too small + which should never be the case when it's of the size MA_DATA_CONVERTER_STACK_BUFFER_SIZE. + */ + if (capturedClientFramesToProcessThisIteration == 0) { + break; + } + + ma_device__on_data(pDevice, playbackClientData, capturedClientData, (ma_uint32)capturedClientFramesToProcessThisIteration); /* Safe cast .*/ + + capturedDeviceFramesProcessed += (ma_uint32)capturedDeviceFramesToProcessThisIteration; /* Safe cast. */ + capturedDeviceFramesRemaining -= (ma_uint32)capturedDeviceFramesToProcessThisIteration; /* Safe cast. */ + + /* At this point the playbackClientData buffer should be holding data that needs to be written to the device. */ + for (;;) { + ma_uint64 convertedClientFrameCount = capturedClientFramesToProcessThisIteration; + ma_uint64 convertedDeviceFrameCount = playbackDeviceDataCapInFrames; + result = ma_data_converter_process_pcm_frames(&pDevice->playback.converter, playbackClientData, &convertedClientFrameCount, playbackDeviceData, &convertedDeviceFrameCount); + if (result != MA_SUCCESS) { + break; + } + + result = pDevice->pContext->callbacks.onDeviceWrite(pDevice, playbackDeviceData, (ma_uint32)convertedDeviceFrameCount, NULL); /* Safe cast. */ + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + + capturedClientFramesToProcessThisIteration -= (ma_uint32)convertedClientFrameCount; /* Safe cast. */ + if (capturedClientFramesToProcessThisIteration == 0) { + break; + } + } + + /* In case an error happened from ma_device_write__null()... */ + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + } + + totalCapturedDeviceFramesProcessed += capturedDeviceFramesProcessed; + } + } break; + + case ma_device_type_capture: + case ma_device_type_loopback: + { + ma_uint32 periodSizeInFrames = pDevice->capture.internalPeriodSizeInFrames; + ma_uint32 framesReadThisPeriod = 0; + while (framesReadThisPeriod < periodSizeInFrames) { + ma_uint32 framesRemainingInPeriod = periodSizeInFrames - framesReadThisPeriod; + ma_uint32 framesProcessed; + ma_uint32 framesToReadThisIteration = framesRemainingInPeriod; + if (framesToReadThisIteration > capturedDeviceDataCapInFrames) { + framesToReadThisIteration = capturedDeviceDataCapInFrames; + } + + result = pDevice->pContext->callbacks.onDeviceRead(pDevice, capturedDeviceData, framesToReadThisIteration, &framesProcessed); + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + + ma_device__send_frames_to_client(pDevice, framesProcessed, capturedDeviceData); + + framesReadThisPeriod += framesProcessed; + } + } break; + + case ma_device_type_playback: + { + /* We write in chunks of the period size, but use a stack allocated buffer for the intermediary. */ + ma_uint32 periodSizeInFrames = pDevice->playback.internalPeriodSizeInFrames; + ma_uint32 framesWrittenThisPeriod = 0; + while (framesWrittenThisPeriod < periodSizeInFrames) { + ma_uint32 framesRemainingInPeriod = periodSizeInFrames - framesWrittenThisPeriod; + ma_uint32 framesProcessed; + ma_uint32 framesToWriteThisIteration = framesRemainingInPeriod; + if (framesToWriteThisIteration > playbackDeviceDataCapInFrames) { + framesToWriteThisIteration = playbackDeviceDataCapInFrames; + } + + ma_device__read_frames_from_client(pDevice, framesToWriteThisIteration, playbackDeviceData); + + result = pDevice->pContext->callbacks.onDeviceWrite(pDevice, playbackDeviceData, framesToWriteThisIteration, &framesProcessed); + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + + framesWrittenThisPeriod += framesProcessed; + } + } break; + + /* Should never get here. */ + default: break; + } + } + + return result; +} + + + +/******************************************************************************* + +Null Backend + +*******************************************************************************/ +#ifdef MA_HAS_NULL + +#define MA_DEVICE_OP_NONE__NULL 0 +#define MA_DEVICE_OP_START__NULL 1 +#define MA_DEVICE_OP_SUSPEND__NULL 2 +#define MA_DEVICE_OP_KILL__NULL 3 + +static ma_thread_result MA_THREADCALL ma_device_thread__null(void* pData) +{ + ma_device* pDevice = (ma_device*)pData; + MA_ASSERT(pDevice != NULL); + + for (;;) { /* Keep the thread alive until the device is uninitialized. */ + ma_uint32 operation; + + /* Wait for an operation to be requested. */ + ma_event_wait(&pDevice->null_device.operationEvent); + + /* At this point an event should have been triggered. */ + operation = pDevice->null_device.operation; + + /* Starting the device needs to put the thread into a loop. */ + if (operation == MA_DEVICE_OP_START__NULL) { + /* Reset the timer just in case. */ + ma_timer_init(&pDevice->null_device.timer); + + /* Getting here means a suspend or kill operation has been requested. */ + pDevice->null_device.operationResult = MA_SUCCESS; + ma_event_signal(&pDevice->null_device.operationCompletionEvent); + ma_semaphore_release(&pDevice->null_device.operationSemaphore); + continue; + } + + /* Suspending the device means we need to stop the timer and just continue the loop. */ + if (operation == MA_DEVICE_OP_SUSPEND__NULL) { + /* We need to add the current run time to the prior run time, then reset the timer. */ + pDevice->null_device.priorRunTime += ma_timer_get_time_in_seconds(&pDevice->null_device.timer); + ma_timer_init(&pDevice->null_device.timer); + + /* We're done. */ + pDevice->null_device.operationResult = MA_SUCCESS; + ma_event_signal(&pDevice->null_device.operationCompletionEvent); + ma_semaphore_release(&pDevice->null_device.operationSemaphore); + continue; + } + + /* Killing the device means we need to get out of this loop so that this thread can terminate. */ + if (operation == MA_DEVICE_OP_KILL__NULL) { + pDevice->null_device.operationResult = MA_SUCCESS; + ma_event_signal(&pDevice->null_device.operationCompletionEvent); + ma_semaphore_release(&pDevice->null_device.operationSemaphore); + break; + } + + /* Getting a signal on a "none" operation probably means an error. Return invalid operation. */ + if (operation == MA_DEVICE_OP_NONE__NULL) { + MA_ASSERT(MA_FALSE); /* <-- Trigger this in debug mode to ensure developers are aware they're doing something wrong (or there's a bug in a miniaudio). */ + pDevice->null_device.operationResult = MA_INVALID_OPERATION; + ma_event_signal(&pDevice->null_device.operationCompletionEvent); + ma_semaphore_release(&pDevice->null_device.operationSemaphore); + continue; /* Continue the loop. Don't terminate. */ + } + } + + return (ma_thread_result)0; +} + +static ma_result ma_device_do_operation__null(ma_device* pDevice, ma_uint32 operation) +{ + ma_result result; + + /* + TODO: Need to review this and consider just using mutual exclusion. I think the original motivation + for this was to just post the event to a queue and return immediately, but that has since changed + and now this function is synchronous. I think this can be simplified to just use a mutex. + */ + + /* + The first thing to do is wait for an operation slot to become available. We only have a single slot for this, but we could extend this later + to support queing of operations. + */ + result = ma_semaphore_wait(&pDevice->null_device.operationSemaphore); + if (result != MA_SUCCESS) { + return result; /* Failed to wait for the event. */ + } + + /* + When we get here it means the background thread is not referencing the operation code and it can be changed. After changing this we need to + signal an event to the worker thread to let it know that it can start work. + */ + pDevice->null_device.operation = operation; + + /* Once the operation code has been set, the worker thread can start work. */ + if (ma_event_signal(&pDevice->null_device.operationEvent) != MA_SUCCESS) { + return MA_ERROR; + } + + /* We want everything to be synchronous so we're going to wait for the worker thread to complete it's operation. */ + if (ma_event_wait(&pDevice->null_device.operationCompletionEvent) != MA_SUCCESS) { + return MA_ERROR; + } + + return pDevice->null_device.operationResult; +} + +static ma_uint64 ma_device_get_total_run_time_in_frames__null(ma_device* pDevice) +{ + ma_uint32 internalSampleRate; + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + internalSampleRate = pDevice->capture.internalSampleRate; + } else { + internalSampleRate = pDevice->playback.internalSampleRate; + } + + return (ma_uint64)((pDevice->null_device.priorRunTime + ma_timer_get_time_in_seconds(&pDevice->null_device.timer)) * internalSampleRate); +} + +static ma_result ma_context_enumerate_devices__null(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_bool32 cbResult = MA_TRUE; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* Playback. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), "NULL Playback Device", (size_t)-1); + deviceInfo.isDefault = MA_TRUE; /* Only one playback and capture device for the null backend, so might as well mark as default. */ + cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + + /* Capture. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), "NULL Capture Device", (size_t)-1); + deviceInfo.isDefault = MA_TRUE; /* Only one playback and capture device for the null backend, so might as well mark as default. */ + cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + + (void)cbResult; /* Silence a static analysis warning. */ + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__null(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + MA_ASSERT(pContext != NULL); + + if (pDeviceID != NULL && pDeviceID->nullbackend != 0) { + return MA_NO_DEVICE; /* Don't know the device. */ + } + + /* Name / Description */ + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), "NULL Playback Device", (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), "NULL Capture Device", (size_t)-1); + } + + pDeviceInfo->isDefault = MA_TRUE; /* Only one playback and capture device for the null backend, so might as well mark as default. */ + + /* Support everything on the null backend. */ + pDeviceInfo->nativeDataFormats[0].format = ma_format_unknown; + pDeviceInfo->nativeDataFormats[0].channels = 0; + pDeviceInfo->nativeDataFormats[0].sampleRate = 0; + pDeviceInfo->nativeDataFormats[0].flags = 0; + pDeviceInfo->nativeDataFormatCount = 1; + + (void)pContext; + return MA_SUCCESS; +} + + +static ma_result ma_device_uninit__null(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + /* Keep it clean and wait for the device thread to finish before returning. */ + ma_device_do_operation__null(pDevice, MA_DEVICE_OP_KILL__NULL); + + /* Wait for the thread to finish before continuing. */ + ma_thread_wait(&pDevice->null_device.deviceThread); + + /* At this point the loop in the device thread is as good as terminated so we can uninitialize our events. */ + ma_semaphore_uninit(&pDevice->null_device.operationSemaphore); + ma_event_uninit(&pDevice->null_device.operationCompletionEvent); + ma_event_uninit(&pDevice->null_device.operationEvent); + + return MA_SUCCESS; +} + +static ma_result ma_device_init__null(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + ma_result result; + + MA_ASSERT(pDevice != NULL); + + MA_ZERO_OBJECT(&pDevice->null_device); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* The null backend supports everything exactly as we specify it. */ + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + pDescriptorCapture->format = (pDescriptorCapture->format != ma_format_unknown) ? pDescriptorCapture->format : MA_DEFAULT_FORMAT; + pDescriptorCapture->channels = (pDescriptorCapture->channels != 0) ? pDescriptorCapture->channels : MA_DEFAULT_CHANNELS; + pDescriptorCapture->sampleRate = (pDescriptorCapture->sampleRate != 0) ? pDescriptorCapture->sampleRate : MA_DEFAULT_SAMPLE_RATE; + + if (pDescriptorCapture->channelMap[0] == MA_CHANNEL_NONE) { + ma_get_standard_channel_map(ma_standard_channel_map_default, pDescriptorCapture->channels, pDescriptorCapture->channelMap); + } + + pDescriptorCapture->periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptorCapture, pDescriptorCapture->sampleRate, pConfig->performanceProfile); + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + pDescriptorPlayback->format = (pDescriptorPlayback->format != ma_format_unknown) ? pDescriptorPlayback->format : MA_DEFAULT_FORMAT; + pDescriptorPlayback->channels = (pDescriptorPlayback->channels != 0) ? pDescriptorPlayback->channels : MA_DEFAULT_CHANNELS; + pDescriptorPlayback->sampleRate = (pDescriptorPlayback->sampleRate != 0) ? pDescriptorPlayback->sampleRate : MA_DEFAULT_SAMPLE_RATE; + + if (pDescriptorPlayback->channelMap[0] == MA_CHANNEL_NONE) { + ma_get_standard_channel_map(ma_standard_channel_map_default, pDescriptorPlayback->channels, pDescriptorPlayback->channelMap); + } + + pDescriptorPlayback->periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptorPlayback, pDescriptorPlayback->sampleRate, pConfig->performanceProfile); + } + + /* + In order to get timing right, we need to create a thread that does nothing but keeps track of the timer. This timer is started when the + first period is "written" to it, and then stopped in ma_device_stop__null(). + */ + result = ma_event_init(&pDevice->null_device.operationEvent); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_event_init(&pDevice->null_device.operationCompletionEvent); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_semaphore_init(1, &pDevice->null_device.operationSemaphore); /* <-- It's important that the initial value is set to 1. */ + if (result != MA_SUCCESS) { + return result; + } + + result = ma_thread_create(&pDevice->null_device.deviceThread, pDevice->pContext->threadPriority, 0, ma_device_thread__null, pDevice); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start__null(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + ma_device_do_operation__null(pDevice, MA_DEVICE_OP_START__NULL); + + c89atomic_exchange_32(&pDevice->null_device.isStarted, MA_TRUE); + return MA_SUCCESS; +} + +static ma_result ma_device_stop__null(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + ma_device_do_operation__null(pDevice, MA_DEVICE_OP_SUSPEND__NULL); + + c89atomic_exchange_32(&pDevice->null_device.isStarted, MA_FALSE); + return MA_SUCCESS; +} + +static ma_result ma_device_write__null(ma_device* pDevice, const void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) +{ + ma_result result = MA_SUCCESS; + ma_uint32 totalPCMFramesProcessed; + ma_bool32 wasStartedOnEntry; + + if (pFramesWritten != NULL) { + *pFramesWritten = 0; + } + + wasStartedOnEntry = c89atomic_load_32(&pDevice->null_device.isStarted); + + /* Keep going until everything has been read. */ + totalPCMFramesProcessed = 0; + while (totalPCMFramesProcessed < frameCount) { + ma_uint64 targetFrame; + + /* If there are any frames remaining in the current period, consume those first. */ + if (pDevice->null_device.currentPeriodFramesRemainingPlayback > 0) { + ma_uint32 framesRemaining = (frameCount - totalPCMFramesProcessed); + ma_uint32 framesToProcess = pDevice->null_device.currentPeriodFramesRemainingPlayback; + if (framesToProcess > framesRemaining) { + framesToProcess = framesRemaining; + } + + /* We don't actually do anything with pPCMFrames, so just mark it as unused to prevent a warning. */ + (void)pPCMFrames; + + pDevice->null_device.currentPeriodFramesRemainingPlayback -= framesToProcess; + totalPCMFramesProcessed += framesToProcess; + } + + /* If we've consumed the current period we'll need to mark it as such an ensure the device is started if it's not already. */ + if (pDevice->null_device.currentPeriodFramesRemainingPlayback == 0) { + pDevice->null_device.currentPeriodFramesRemainingPlayback = 0; + + if (!c89atomic_load_32(&pDevice->null_device.isStarted) && !wasStartedOnEntry) { + result = ma_device_start__null(pDevice); + if (result != MA_SUCCESS) { + break; + } + } + } + + /* If we've consumed the whole buffer we can return now. */ + MA_ASSERT(totalPCMFramesProcessed <= frameCount); + if (totalPCMFramesProcessed == frameCount) { + break; + } + + /* Getting here means we've still got more frames to consume, we but need to wait for it to become available. */ + targetFrame = pDevice->null_device.lastProcessedFramePlayback; + for (;;) { + ma_uint64 currentFrame; + + /* Stop waiting if the device has been stopped. */ + if (!c89atomic_load_32(&pDevice->null_device.isStarted)) { + break; + } + + currentFrame = ma_device_get_total_run_time_in_frames__null(pDevice); + if (currentFrame >= targetFrame) { + break; + } + + /* Getting here means we haven't yet reached the target sample, so continue waiting. */ + ma_sleep(10); + } + + pDevice->null_device.lastProcessedFramePlayback += pDevice->playback.internalPeriodSizeInFrames; + pDevice->null_device.currentPeriodFramesRemainingPlayback = pDevice->playback.internalPeriodSizeInFrames; + } + + if (pFramesWritten != NULL) { + *pFramesWritten = totalPCMFramesProcessed; + } + + return result; +} + +static ma_result ma_device_read__null(ma_device* pDevice, void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesRead) +{ + ma_result result = MA_SUCCESS; + ma_uint32 totalPCMFramesProcessed; + + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + /* Keep going until everything has been read. */ + totalPCMFramesProcessed = 0; + while (totalPCMFramesProcessed < frameCount) { + ma_uint64 targetFrame; + + /* If there are any frames remaining in the current period, consume those first. */ + if (pDevice->null_device.currentPeriodFramesRemainingCapture > 0) { + ma_uint32 bpf = ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + ma_uint32 framesRemaining = (frameCount - totalPCMFramesProcessed); + ma_uint32 framesToProcess = pDevice->null_device.currentPeriodFramesRemainingCapture; + if (framesToProcess > framesRemaining) { + framesToProcess = framesRemaining; + } + + /* We need to ensure the output buffer is zeroed. */ + MA_ZERO_MEMORY(ma_offset_ptr(pPCMFrames, totalPCMFramesProcessed*bpf), framesToProcess*bpf); + + pDevice->null_device.currentPeriodFramesRemainingCapture -= framesToProcess; + totalPCMFramesProcessed += framesToProcess; + } + + /* If we've consumed the current period we'll need to mark it as such an ensure the device is started if it's not already. */ + if (pDevice->null_device.currentPeriodFramesRemainingCapture == 0) { + pDevice->null_device.currentPeriodFramesRemainingCapture = 0; + } + + /* If we've consumed the whole buffer we can return now. */ + MA_ASSERT(totalPCMFramesProcessed <= frameCount); + if (totalPCMFramesProcessed == frameCount) { + break; + } + + /* Getting here means we've still got more frames to consume, we but need to wait for it to become available. */ + targetFrame = pDevice->null_device.lastProcessedFrameCapture + pDevice->capture.internalPeriodSizeInFrames; + for (;;) { + ma_uint64 currentFrame; + + /* Stop waiting if the device has been stopped. */ + if (!c89atomic_load_32(&pDevice->null_device.isStarted)) { + break; + } + + currentFrame = ma_device_get_total_run_time_in_frames__null(pDevice); + if (currentFrame >= targetFrame) { + break; + } + + /* Getting here means we haven't yet reached the target sample, so continue waiting. */ + ma_sleep(10); + } + + pDevice->null_device.lastProcessedFrameCapture += pDevice->capture.internalPeriodSizeInFrames; + pDevice->null_device.currentPeriodFramesRemainingCapture = pDevice->capture.internalPeriodSizeInFrames; + } + + if (pFramesRead != NULL) { + *pFramesRead = totalPCMFramesProcessed; + } + + return result; +} + +static ma_result ma_context_uninit__null(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_null); + + (void)pContext; + return MA_SUCCESS; +} + +static ma_result ma_context_init__null(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + MA_ASSERT(pContext != NULL); + + (void)pConfig; + (void)pContext; + + pCallbacks->onContextInit = ma_context_init__null; + pCallbacks->onContextUninit = ma_context_uninit__null; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__null; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__null; + pCallbacks->onDeviceInit = ma_device_init__null; + pCallbacks->onDeviceUninit = ma_device_uninit__null; + pCallbacks->onDeviceStart = ma_device_start__null; + pCallbacks->onDeviceStop = ma_device_stop__null; + pCallbacks->onDeviceRead = ma_device_read__null; + pCallbacks->onDeviceWrite = ma_device_write__null; + pCallbacks->onDeviceDataLoop = NULL; /* Our backend is asynchronous with a blocking read-write API which means we can get miniaudio to deal with the audio thread. */ + + /* The null backend always works. */ + return MA_SUCCESS; +} +#endif + + + +/******************************************************************************* + +WIN32 COMMON + +*******************************************************************************/ +#if defined(MA_WIN32) +#if defined(MA_WIN32_DESKTOP) + #define ma_CoInitializeEx(pContext, pvReserved, dwCoInit) ((MA_PFN_CoInitializeEx)pContext->win32.CoInitializeEx)(pvReserved, dwCoInit) + #define ma_CoUninitialize(pContext) ((MA_PFN_CoUninitialize)pContext->win32.CoUninitialize)() + #define ma_CoCreateInstance(pContext, rclsid, pUnkOuter, dwClsContext, riid, ppv) ((MA_PFN_CoCreateInstance)pContext->win32.CoCreateInstance)(rclsid, pUnkOuter, dwClsContext, riid, ppv) + #define ma_CoTaskMemFree(pContext, pv) ((MA_PFN_CoTaskMemFree)pContext->win32.CoTaskMemFree)(pv) + #define ma_PropVariantClear(pContext, pvar) ((MA_PFN_PropVariantClear)pContext->win32.PropVariantClear)(pvar) +#else + #define ma_CoInitializeEx(pContext, pvReserved, dwCoInit) CoInitializeEx(pvReserved, dwCoInit) + #define ma_CoUninitialize(pContext) CoUninitialize() + #define ma_CoCreateInstance(pContext, rclsid, pUnkOuter, dwClsContext, riid, ppv) CoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv) + #define ma_CoTaskMemFree(pContext, pv) CoTaskMemFree(pv) + #define ma_PropVariantClear(pContext, pvar) PropVariantClear(pvar) +#endif + +#if !defined(MAXULONG_PTR) && !defined(__WATCOMC__) +typedef size_t DWORD_PTR; +#endif + +#if !defined(WAVE_FORMAT_44M08) +#define WAVE_FORMAT_44M08 0x00000100 +#define WAVE_FORMAT_44S08 0x00000200 +#define WAVE_FORMAT_44M16 0x00000400 +#define WAVE_FORMAT_44S16 0x00000800 +#define WAVE_FORMAT_48M08 0x00001000 +#define WAVE_FORMAT_48S08 0x00002000 +#define WAVE_FORMAT_48M16 0x00004000 +#define WAVE_FORMAT_48S16 0x00008000 +#define WAVE_FORMAT_96M08 0x00010000 +#define WAVE_FORMAT_96S08 0x00020000 +#define WAVE_FORMAT_96M16 0x00040000 +#define WAVE_FORMAT_96S16 0x00080000 +#endif + +#ifndef SPEAKER_FRONT_LEFT +#define SPEAKER_FRONT_LEFT 0x1 +#define SPEAKER_FRONT_RIGHT 0x2 +#define SPEAKER_FRONT_CENTER 0x4 +#define SPEAKER_LOW_FREQUENCY 0x8 +#define SPEAKER_BACK_LEFT 0x10 +#define SPEAKER_BACK_RIGHT 0x20 +#define SPEAKER_FRONT_LEFT_OF_CENTER 0x40 +#define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80 +#define SPEAKER_BACK_CENTER 0x100 +#define SPEAKER_SIDE_LEFT 0x200 +#define SPEAKER_SIDE_RIGHT 0x400 +#define SPEAKER_TOP_CENTER 0x800 +#define SPEAKER_TOP_FRONT_LEFT 0x1000 +#define SPEAKER_TOP_FRONT_CENTER 0x2000 +#define SPEAKER_TOP_FRONT_RIGHT 0x4000 +#define SPEAKER_TOP_BACK_LEFT 0x8000 +#define SPEAKER_TOP_BACK_CENTER 0x10000 +#define SPEAKER_TOP_BACK_RIGHT 0x20000 +#endif + +/* +The SDK that comes with old versions of MSVC (VC6, for example) does not appear to define WAVEFORMATEXTENSIBLE. We +define our own implementation in this case. +*/ +#if (defined(_MSC_VER) && !defined(_WAVEFORMATEXTENSIBLE_)) || defined(__DMC__) +typedef struct +{ + WAVEFORMATEX Format; + union + { + WORD wValidBitsPerSample; + WORD wSamplesPerBlock; + WORD wReserved; + } Samples; + DWORD dwChannelMask; + GUID SubFormat; +} WAVEFORMATEXTENSIBLE; +#endif + +#ifndef WAVE_FORMAT_EXTENSIBLE +#define WAVE_FORMAT_EXTENSIBLE 0xFFFE +#endif + +#ifndef WAVE_FORMAT_IEEE_FLOAT +#define WAVE_FORMAT_IEEE_FLOAT 0x0003 +#endif + +/* Converts an individual Win32-style channel identifier (SPEAKER_FRONT_LEFT, etc.) to miniaudio. */ +static ma_uint8 ma_channel_id_to_ma__win32(DWORD id) +{ + switch (id) + { + case SPEAKER_FRONT_LEFT: return MA_CHANNEL_FRONT_LEFT; + case SPEAKER_FRONT_RIGHT: return MA_CHANNEL_FRONT_RIGHT; + case SPEAKER_FRONT_CENTER: return MA_CHANNEL_FRONT_CENTER; + case SPEAKER_LOW_FREQUENCY: return MA_CHANNEL_LFE; + case SPEAKER_BACK_LEFT: return MA_CHANNEL_BACK_LEFT; + case SPEAKER_BACK_RIGHT: return MA_CHANNEL_BACK_RIGHT; + case SPEAKER_FRONT_LEFT_OF_CENTER: return MA_CHANNEL_FRONT_LEFT_CENTER; + case SPEAKER_FRONT_RIGHT_OF_CENTER: return MA_CHANNEL_FRONT_RIGHT_CENTER; + case SPEAKER_BACK_CENTER: return MA_CHANNEL_BACK_CENTER; + case SPEAKER_SIDE_LEFT: return MA_CHANNEL_SIDE_LEFT; + case SPEAKER_SIDE_RIGHT: return MA_CHANNEL_SIDE_RIGHT; + case SPEAKER_TOP_CENTER: return MA_CHANNEL_TOP_CENTER; + case SPEAKER_TOP_FRONT_LEFT: return MA_CHANNEL_TOP_FRONT_LEFT; + case SPEAKER_TOP_FRONT_CENTER: return MA_CHANNEL_TOP_FRONT_CENTER; + case SPEAKER_TOP_FRONT_RIGHT: return MA_CHANNEL_TOP_FRONT_RIGHT; + case SPEAKER_TOP_BACK_LEFT: return MA_CHANNEL_TOP_BACK_LEFT; + case SPEAKER_TOP_BACK_CENTER: return MA_CHANNEL_TOP_BACK_CENTER; + case SPEAKER_TOP_BACK_RIGHT: return MA_CHANNEL_TOP_BACK_RIGHT; + default: return 0; + } +} + +/* Converts an individual miniaudio channel identifier (MA_CHANNEL_FRONT_LEFT, etc.) to Win32-style. */ +static DWORD ma_channel_id_to_win32(DWORD id) +{ + switch (id) + { + case MA_CHANNEL_MONO: return SPEAKER_FRONT_CENTER; + case MA_CHANNEL_FRONT_LEFT: return SPEAKER_FRONT_LEFT; + case MA_CHANNEL_FRONT_RIGHT: return SPEAKER_FRONT_RIGHT; + case MA_CHANNEL_FRONT_CENTER: return SPEAKER_FRONT_CENTER; + case MA_CHANNEL_LFE: return SPEAKER_LOW_FREQUENCY; + case MA_CHANNEL_BACK_LEFT: return SPEAKER_BACK_LEFT; + case MA_CHANNEL_BACK_RIGHT: return SPEAKER_BACK_RIGHT; + case MA_CHANNEL_FRONT_LEFT_CENTER: return SPEAKER_FRONT_LEFT_OF_CENTER; + case MA_CHANNEL_FRONT_RIGHT_CENTER: return SPEAKER_FRONT_RIGHT_OF_CENTER; + case MA_CHANNEL_BACK_CENTER: return SPEAKER_BACK_CENTER; + case MA_CHANNEL_SIDE_LEFT: return SPEAKER_SIDE_LEFT; + case MA_CHANNEL_SIDE_RIGHT: return SPEAKER_SIDE_RIGHT; + case MA_CHANNEL_TOP_CENTER: return SPEAKER_TOP_CENTER; + case MA_CHANNEL_TOP_FRONT_LEFT: return SPEAKER_TOP_FRONT_LEFT; + case MA_CHANNEL_TOP_FRONT_CENTER: return SPEAKER_TOP_FRONT_CENTER; + case MA_CHANNEL_TOP_FRONT_RIGHT: return SPEAKER_TOP_FRONT_RIGHT; + case MA_CHANNEL_TOP_BACK_LEFT: return SPEAKER_TOP_BACK_LEFT; + case MA_CHANNEL_TOP_BACK_CENTER: return SPEAKER_TOP_BACK_CENTER; + case MA_CHANNEL_TOP_BACK_RIGHT: return SPEAKER_TOP_BACK_RIGHT; + default: return 0; + } +} + +/* Converts a channel mapping to a Win32-style channel mask. */ +static DWORD ma_channel_map_to_channel_mask__win32(const ma_channel* pChannelMap, ma_uint32 channels) +{ + DWORD dwChannelMask = 0; + ma_uint32 iChannel; + + for (iChannel = 0; iChannel < channels; ++iChannel) { + dwChannelMask |= ma_channel_id_to_win32(pChannelMap[iChannel]); + } + + return dwChannelMask; +} + +/* Converts a Win32-style channel mask to a miniaudio channel map. */ +static void ma_channel_mask_to_channel_map__win32(DWORD dwChannelMask, ma_uint32 channels, ma_channel* pChannelMap) +{ + if (channels == 1 && dwChannelMask == 0) { + pChannelMap[0] = MA_CHANNEL_MONO; + } else if (channels == 2 && dwChannelMask == 0) { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + } else { + if (channels == 1 && (dwChannelMask & SPEAKER_FRONT_CENTER) != 0) { + pChannelMap[0] = MA_CHANNEL_MONO; + } else { + /* Just iterate over each bit. */ + ma_uint32 iChannel = 0; + ma_uint32 iBit; + + for (iBit = 0; iBit < 32 && iChannel < channels; ++iBit) { + DWORD bitValue = (dwChannelMask & (1UL << iBit)); + if (bitValue != 0) { + /* The bit is set. */ + pChannelMap[iChannel] = ma_channel_id_to_ma__win32(bitValue); + iChannel += 1; + } + } + } + } +} + +#ifdef __cplusplus +static ma_bool32 ma_is_guid_equal(const void* a, const void* b) +{ + return IsEqualGUID(*(const GUID*)a, *(const GUID*)b); +} +#else +#define ma_is_guid_equal(a, b) IsEqualGUID((const GUID*)a, (const GUID*)b) +#endif + +static MA_INLINE ma_bool32 ma_is_guid_null(const void* guid) +{ + static GUID nullguid = {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + return ma_is_guid_equal(guid, &nullguid); +} + +static ma_format ma_format_from_WAVEFORMATEX(const WAVEFORMATEX* pWF) +{ + MA_ASSERT(pWF != NULL); + + if (pWF->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { + const WAVEFORMATEXTENSIBLE* pWFEX = (const WAVEFORMATEXTENSIBLE*)pWF; + if (ma_is_guid_equal(&pWFEX->SubFormat, &MA_GUID_KSDATAFORMAT_SUBTYPE_PCM)) { + if (pWFEX->Samples.wValidBitsPerSample == 32) { + return ma_format_s32; + } + if (pWFEX->Samples.wValidBitsPerSample == 24) { + if (pWFEX->Format.wBitsPerSample == 32) { + /*return ma_format_s24_32;*/ + } + if (pWFEX->Format.wBitsPerSample == 24) { + return ma_format_s24; + } + } + if (pWFEX->Samples.wValidBitsPerSample == 16) { + return ma_format_s16; + } + if (pWFEX->Samples.wValidBitsPerSample == 8) { + return ma_format_u8; + } + } + if (ma_is_guid_equal(&pWFEX->SubFormat, &MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)) { + if (pWFEX->Samples.wValidBitsPerSample == 32) { + return ma_format_f32; + } + /* + if (pWFEX->Samples.wValidBitsPerSample == 64) { + return ma_format_f64; + } + */ + } + } else { + if (pWF->wFormatTag == WAVE_FORMAT_PCM) { + if (pWF->wBitsPerSample == 32) { + return ma_format_s32; + } + if (pWF->wBitsPerSample == 24) { + return ma_format_s24; + } + if (pWF->wBitsPerSample == 16) { + return ma_format_s16; + } + if (pWF->wBitsPerSample == 8) { + return ma_format_u8; + } + } + if (pWF->wFormatTag == WAVE_FORMAT_IEEE_FLOAT) { + if (pWF->wBitsPerSample == 32) { + return ma_format_f32; + } + if (pWF->wBitsPerSample == 64) { + /*return ma_format_f64;*/ + } + } + } + + return ma_format_unknown; +} +#endif + + +/******************************************************************************* + +WASAPI Backend + +*******************************************************************************/ +#ifdef MA_HAS_WASAPI +#if 0 +#if defined(_MSC_VER) + #pragma warning(push) + #pragma warning(disable:4091) /* 'typedef ': ignored on left of '' when no variable is declared */ +#endif +#include +#include +#if defined(_MSC_VER) + #pragma warning(pop) +#endif +#endif /* 0 */ + +static ma_result ma_device_reroute__wasapi(ma_device* pDevice, ma_device_type deviceType); + +/* Some compilers don't define VerifyVersionInfoW. Need to write this ourselves. */ +#define MA_WIN32_WINNT_VISTA 0x0600 +#define MA_VER_MINORVERSION 0x01 +#define MA_VER_MAJORVERSION 0x02 +#define MA_VER_SERVICEPACKMAJOR 0x20 +#define MA_VER_GREATER_EQUAL 0x03 + +typedef struct { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + WCHAR szCSDVersion[128]; + WORD wServicePackMajor; + WORD wServicePackMinor; + WORD wSuiteMask; + BYTE wProductType; + BYTE wReserved; +} ma_OSVERSIONINFOEXW; + +typedef BOOL (WINAPI * ma_PFNVerifyVersionInfoW) (ma_OSVERSIONINFOEXW* lpVersionInfo, DWORD dwTypeMask, DWORDLONG dwlConditionMask); +typedef ULONGLONG (WINAPI * ma_PFNVerSetConditionMask)(ULONGLONG dwlConditionMask, DWORD dwTypeBitMask, BYTE dwConditionMask); + + +#ifndef PROPERTYKEY_DEFINED +#define PROPERTYKEY_DEFINED +#ifndef __WATCOMC__ +typedef struct +{ + GUID fmtid; + DWORD pid; +} PROPERTYKEY; +#endif +#endif + +/* Some compilers don't define PropVariantInit(). We just do this ourselves since it's just a memset(). */ +static MA_INLINE void ma_PropVariantInit(PROPVARIANT* pProp) +{ + MA_ZERO_OBJECT(pProp); +} + + +static const PROPERTYKEY MA_PKEY_Device_FriendlyName = {{0xA45C254E, 0xDF1C, 0x4EFD, {0x80, 0x20, 0x67, 0xD1, 0x46, 0xA8, 0x50, 0xE0}}, 14}; +static const PROPERTYKEY MA_PKEY_AudioEngine_DeviceFormat = {{0xF19F064D, 0x82C, 0x4E27, {0xBC, 0x73, 0x68, 0x82, 0xA1, 0xBB, 0x8E, 0x4C}}, 0}; + +static const IID MA_IID_IUnknown = {0x00000000, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; /* 00000000-0000-0000-C000-000000000046 */ +#ifndef MA_WIN32_DESKTOP +static const IID MA_IID_IAgileObject = {0x94EA2B94, 0xE9CC, 0x49E0, {0xC0, 0xFF, 0xEE, 0x64, 0xCA, 0x8F, 0x5B, 0x90}}; /* 94EA2B94-E9CC-49E0-C0FF-EE64CA8F5B90 */ +#endif + +static const IID MA_IID_IAudioClient = {0x1CB9AD4C, 0xDBFA, 0x4C32, {0xB1, 0x78, 0xC2, 0xF5, 0x68, 0xA7, 0x03, 0xB2}}; /* 1CB9AD4C-DBFA-4C32-B178-C2F568A703B2 = __uuidof(IAudioClient) */ +static const IID MA_IID_IAudioClient2 = {0x726778CD, 0xF60A, 0x4EDA, {0x82, 0xDE, 0xE4, 0x76, 0x10, 0xCD, 0x78, 0xAA}}; /* 726778CD-F60A-4EDA-82DE-E47610CD78AA = __uuidof(IAudioClient2) */ +static const IID MA_IID_IAudioClient3 = {0x7ED4EE07, 0x8E67, 0x4CD4, {0x8C, 0x1A, 0x2B, 0x7A, 0x59, 0x87, 0xAD, 0x42}}; /* 7ED4EE07-8E67-4CD4-8C1A-2B7A5987AD42 = __uuidof(IAudioClient3) */ +static const IID MA_IID_IAudioRenderClient = {0xF294ACFC, 0x3146, 0x4483, {0xA7, 0xBF, 0xAD, 0xDC, 0xA7, 0xC2, 0x60, 0xE2}}; /* F294ACFC-3146-4483-A7BF-ADDCA7C260E2 = __uuidof(IAudioRenderClient) */ +static const IID MA_IID_IAudioCaptureClient = {0xC8ADBD64, 0xE71E, 0x48A0, {0xA4, 0xDE, 0x18, 0x5C, 0x39, 0x5C, 0xD3, 0x17}}; /* C8ADBD64-E71E-48A0-A4DE-185C395CD317 = __uuidof(IAudioCaptureClient) */ +static const IID MA_IID_IMMNotificationClient = {0x7991EEC9, 0x7E89, 0x4D85, {0x83, 0x90, 0x6C, 0x70, 0x3C, 0xEC, 0x60, 0xC0}}; /* 7991EEC9-7E89-4D85-8390-6C703CEC60C0 = __uuidof(IMMNotificationClient) */ +#ifndef MA_WIN32_DESKTOP +static const IID MA_IID_DEVINTERFACE_AUDIO_RENDER = {0xE6327CAD, 0xDCEC, 0x4949, {0xAE, 0x8A, 0x99, 0x1E, 0x97, 0x6A, 0x79, 0xD2}}; /* E6327CAD-DCEC-4949-AE8A-991E976A79D2 */ +static const IID MA_IID_DEVINTERFACE_AUDIO_CAPTURE = {0x2EEF81BE, 0x33FA, 0x4800, {0x96, 0x70, 0x1C, 0xD4, 0x74, 0x97, 0x2C, 0x3F}}; /* 2EEF81BE-33FA-4800-9670-1CD474972C3F */ +static const IID MA_IID_IActivateAudioInterfaceCompletionHandler = {0x41D949AB, 0x9862, 0x444A, {0x80, 0xF6, 0xC2, 0x61, 0x33, 0x4D, 0xA5, 0xEB}}; /* 41D949AB-9862-444A-80F6-C261334DA5EB */ +#endif + +static const IID MA_CLSID_MMDeviceEnumerator_Instance = {0xBCDE0395, 0xE52F, 0x467C, {0x8E, 0x3D, 0xC4, 0x57, 0x92, 0x91, 0x69, 0x2E}}; /* BCDE0395-E52F-467C-8E3D-C4579291692E = __uuidof(MMDeviceEnumerator) */ +static const IID MA_IID_IMMDeviceEnumerator_Instance = {0xA95664D2, 0x9614, 0x4F35, {0xA7, 0x46, 0xDE, 0x8D, 0xB6, 0x36, 0x17, 0xE6}}; /* A95664D2-9614-4F35-A746-DE8DB63617E6 = __uuidof(IMMDeviceEnumerator) */ +#ifdef __cplusplus +#define MA_CLSID_MMDeviceEnumerator MA_CLSID_MMDeviceEnumerator_Instance +#define MA_IID_IMMDeviceEnumerator MA_IID_IMMDeviceEnumerator_Instance +#else +#define MA_CLSID_MMDeviceEnumerator &MA_CLSID_MMDeviceEnumerator_Instance +#define MA_IID_IMMDeviceEnumerator &MA_IID_IMMDeviceEnumerator_Instance +#endif + +typedef struct ma_IUnknown ma_IUnknown; +#ifdef MA_WIN32_DESKTOP +#define MA_MM_DEVICE_STATE_ACTIVE 1 +#define MA_MM_DEVICE_STATE_DISABLED 2 +#define MA_MM_DEVICE_STATE_NOTPRESENT 4 +#define MA_MM_DEVICE_STATE_UNPLUGGED 8 + +typedef struct ma_IMMDeviceEnumerator ma_IMMDeviceEnumerator; +typedef struct ma_IMMDeviceCollection ma_IMMDeviceCollection; +typedef struct ma_IMMDevice ma_IMMDevice; +#else +typedef struct ma_IActivateAudioInterfaceCompletionHandler ma_IActivateAudioInterfaceCompletionHandler; +typedef struct ma_IActivateAudioInterfaceAsyncOperation ma_IActivateAudioInterfaceAsyncOperation; +#endif +typedef struct ma_IPropertyStore ma_IPropertyStore; +typedef struct ma_IAudioClient ma_IAudioClient; +typedef struct ma_IAudioClient2 ma_IAudioClient2; +typedef struct ma_IAudioClient3 ma_IAudioClient3; +typedef struct ma_IAudioRenderClient ma_IAudioRenderClient; +typedef struct ma_IAudioCaptureClient ma_IAudioCaptureClient; + +typedef ma_int64 MA_REFERENCE_TIME; + +#define MA_AUDCLNT_STREAMFLAGS_CROSSPROCESS 0x00010000 +#define MA_AUDCLNT_STREAMFLAGS_LOOPBACK 0x00020000 +#define MA_AUDCLNT_STREAMFLAGS_EVENTCALLBACK 0x00040000 +#define MA_AUDCLNT_STREAMFLAGS_NOPERSIST 0x00080000 +#define MA_AUDCLNT_STREAMFLAGS_RATEADJUST 0x00100000 +#define MA_AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY 0x08000000 +#define MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM 0x80000000 +#define MA_AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED 0x10000000 +#define MA_AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE 0x20000000 +#define MA_AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED 0x40000000 + +/* Buffer flags. */ +#define MA_AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY 1 +#define MA_AUDCLNT_BUFFERFLAGS_SILENT 2 +#define MA_AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR 4 + +typedef enum +{ + ma_eRender = 0, + ma_eCapture = 1, + ma_eAll = 2 +} ma_EDataFlow; + +typedef enum +{ + ma_eConsole = 0, + ma_eMultimedia = 1, + ma_eCommunications = 2 +} ma_ERole; + +typedef enum +{ + MA_AUDCLNT_SHAREMODE_SHARED, + MA_AUDCLNT_SHAREMODE_EXCLUSIVE +} MA_AUDCLNT_SHAREMODE; + +typedef enum +{ + MA_AudioCategory_Other = 0 /* <-- miniaudio is only caring about Other. */ +} MA_AUDIO_STREAM_CATEGORY; + +typedef struct +{ + ma_uint32 cbSize; + BOOL bIsOffload; + MA_AUDIO_STREAM_CATEGORY eCategory; +} ma_AudioClientProperties; + +/* IUnknown */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IUnknown* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IUnknown* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IUnknown* pThis); +} ma_IUnknownVtbl; +struct ma_IUnknown +{ + ma_IUnknownVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IUnknown_QueryInterface(ma_IUnknown* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IUnknown_AddRef(ma_IUnknown* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IUnknown_Release(ma_IUnknown* pThis) { return pThis->lpVtbl->Release(pThis); } + +#ifdef MA_WIN32_DESKTOP + /* IMMNotificationClient */ + typedef struct + { + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IMMNotificationClient* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IMMNotificationClient* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IMMNotificationClient* pThis); + + /* IMMNotificationClient */ + HRESULT (STDMETHODCALLTYPE * OnDeviceStateChanged) (ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, DWORD dwNewState); + HRESULT (STDMETHODCALLTYPE * OnDeviceAdded) (ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID); + HRESULT (STDMETHODCALLTYPE * OnDeviceRemoved) (ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID); + HRESULT (STDMETHODCALLTYPE * OnDefaultDeviceChanged)(ma_IMMNotificationClient* pThis, ma_EDataFlow dataFlow, ma_ERole role, LPCWSTR pDefaultDeviceID); + HRESULT (STDMETHODCALLTYPE * OnPropertyValueChanged)(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, const PROPERTYKEY key); + } ma_IMMNotificationClientVtbl; + + /* IMMDeviceEnumerator */ + typedef struct + { + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IMMDeviceEnumerator* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IMMDeviceEnumerator* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IMMDeviceEnumerator* pThis); + + /* IMMDeviceEnumerator */ + HRESULT (STDMETHODCALLTYPE * EnumAudioEndpoints) (ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, DWORD dwStateMask, ma_IMMDeviceCollection** ppDevices); + HRESULT (STDMETHODCALLTYPE * GetDefaultAudioEndpoint) (ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, ma_ERole role, ma_IMMDevice** ppEndpoint); + HRESULT (STDMETHODCALLTYPE * GetDevice) (ma_IMMDeviceEnumerator* pThis, LPCWSTR pID, ma_IMMDevice** ppDevice); + HRESULT (STDMETHODCALLTYPE * RegisterEndpointNotificationCallback) (ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient); + HRESULT (STDMETHODCALLTYPE * UnregisterEndpointNotificationCallback)(ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient); + } ma_IMMDeviceEnumeratorVtbl; + struct ma_IMMDeviceEnumerator + { + ma_IMMDeviceEnumeratorVtbl* lpVtbl; + }; + static MA_INLINE HRESULT ma_IMMDeviceEnumerator_QueryInterface(ma_IMMDeviceEnumerator* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } + static MA_INLINE ULONG ma_IMMDeviceEnumerator_AddRef(ma_IMMDeviceEnumerator* pThis) { return pThis->lpVtbl->AddRef(pThis); } + static MA_INLINE ULONG ma_IMMDeviceEnumerator_Release(ma_IMMDeviceEnumerator* pThis) { return pThis->lpVtbl->Release(pThis); } + static MA_INLINE HRESULT ma_IMMDeviceEnumerator_EnumAudioEndpoints(ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, DWORD dwStateMask, ma_IMMDeviceCollection** ppDevices) { return pThis->lpVtbl->EnumAudioEndpoints(pThis, dataFlow, dwStateMask, ppDevices); } + static MA_INLINE HRESULT ma_IMMDeviceEnumerator_GetDefaultAudioEndpoint(ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, ma_ERole role, ma_IMMDevice** ppEndpoint) { return pThis->lpVtbl->GetDefaultAudioEndpoint(pThis, dataFlow, role, ppEndpoint); } + static MA_INLINE HRESULT ma_IMMDeviceEnumerator_GetDevice(ma_IMMDeviceEnumerator* pThis, LPCWSTR pID, ma_IMMDevice** ppDevice) { return pThis->lpVtbl->GetDevice(pThis, pID, ppDevice); } + static MA_INLINE HRESULT ma_IMMDeviceEnumerator_RegisterEndpointNotificationCallback(ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient) { return pThis->lpVtbl->RegisterEndpointNotificationCallback(pThis, pClient); } + static MA_INLINE HRESULT ma_IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient) { return pThis->lpVtbl->UnregisterEndpointNotificationCallback(pThis, pClient); } + + + /* IMMDeviceCollection */ + typedef struct + { + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IMMDeviceCollection* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IMMDeviceCollection* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IMMDeviceCollection* pThis); + + /* IMMDeviceCollection */ + HRESULT (STDMETHODCALLTYPE * GetCount)(ma_IMMDeviceCollection* pThis, UINT* pDevices); + HRESULT (STDMETHODCALLTYPE * Item) (ma_IMMDeviceCollection* pThis, UINT nDevice, ma_IMMDevice** ppDevice); + } ma_IMMDeviceCollectionVtbl; + struct ma_IMMDeviceCollection + { + ma_IMMDeviceCollectionVtbl* lpVtbl; + }; + static MA_INLINE HRESULT ma_IMMDeviceCollection_QueryInterface(ma_IMMDeviceCollection* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } + static MA_INLINE ULONG ma_IMMDeviceCollection_AddRef(ma_IMMDeviceCollection* pThis) { return pThis->lpVtbl->AddRef(pThis); } + static MA_INLINE ULONG ma_IMMDeviceCollection_Release(ma_IMMDeviceCollection* pThis) { return pThis->lpVtbl->Release(pThis); } + static MA_INLINE HRESULT ma_IMMDeviceCollection_GetCount(ma_IMMDeviceCollection* pThis, UINT* pDevices) { return pThis->lpVtbl->GetCount(pThis, pDevices); } + static MA_INLINE HRESULT ma_IMMDeviceCollection_Item(ma_IMMDeviceCollection* pThis, UINT nDevice, ma_IMMDevice** ppDevice) { return pThis->lpVtbl->Item(pThis, nDevice, ppDevice); } + + + /* IMMDevice */ + typedef struct + { + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IMMDevice* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IMMDevice* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IMMDevice* pThis); + + /* IMMDevice */ + HRESULT (STDMETHODCALLTYPE * Activate) (ma_IMMDevice* pThis, const IID* const iid, DWORD dwClsCtx, PROPVARIANT* pActivationParams, void** ppInterface); + HRESULT (STDMETHODCALLTYPE * OpenPropertyStore)(ma_IMMDevice* pThis, DWORD stgmAccess, ma_IPropertyStore** ppProperties); + HRESULT (STDMETHODCALLTYPE * GetId) (ma_IMMDevice* pThis, LPWSTR *pID); + HRESULT (STDMETHODCALLTYPE * GetState) (ma_IMMDevice* pThis, DWORD *pState); + } ma_IMMDeviceVtbl; + struct ma_IMMDevice + { + ma_IMMDeviceVtbl* lpVtbl; + }; + static MA_INLINE HRESULT ma_IMMDevice_QueryInterface(ma_IMMDevice* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } + static MA_INLINE ULONG ma_IMMDevice_AddRef(ma_IMMDevice* pThis) { return pThis->lpVtbl->AddRef(pThis); } + static MA_INLINE ULONG ma_IMMDevice_Release(ma_IMMDevice* pThis) { return pThis->lpVtbl->Release(pThis); } + static MA_INLINE HRESULT ma_IMMDevice_Activate(ma_IMMDevice* pThis, const IID* const iid, DWORD dwClsCtx, PROPVARIANT* pActivationParams, void** ppInterface) { return pThis->lpVtbl->Activate(pThis, iid, dwClsCtx, pActivationParams, ppInterface); } + static MA_INLINE HRESULT ma_IMMDevice_OpenPropertyStore(ma_IMMDevice* pThis, DWORD stgmAccess, ma_IPropertyStore** ppProperties) { return pThis->lpVtbl->OpenPropertyStore(pThis, stgmAccess, ppProperties); } + static MA_INLINE HRESULT ma_IMMDevice_GetId(ma_IMMDevice* pThis, LPWSTR *pID) { return pThis->lpVtbl->GetId(pThis, pID); } + static MA_INLINE HRESULT ma_IMMDevice_GetState(ma_IMMDevice* pThis, DWORD *pState) { return pThis->lpVtbl->GetState(pThis, pState); } +#else + /* IActivateAudioInterfaceAsyncOperation */ + typedef struct + { + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IActivateAudioInterfaceAsyncOperation* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IActivateAudioInterfaceAsyncOperation* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IActivateAudioInterfaceAsyncOperation* pThis); + + /* IActivateAudioInterfaceAsyncOperation */ + HRESULT (STDMETHODCALLTYPE * GetActivateResult)(ma_IActivateAudioInterfaceAsyncOperation* pThis, HRESULT *pActivateResult, ma_IUnknown** ppActivatedInterface); + } ma_IActivateAudioInterfaceAsyncOperationVtbl; + struct ma_IActivateAudioInterfaceAsyncOperation + { + ma_IActivateAudioInterfaceAsyncOperationVtbl* lpVtbl; + }; + static MA_INLINE HRESULT ma_IActivateAudioInterfaceAsyncOperation_QueryInterface(ma_IActivateAudioInterfaceAsyncOperation* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } + static MA_INLINE ULONG ma_IActivateAudioInterfaceAsyncOperation_AddRef(ma_IActivateAudioInterfaceAsyncOperation* pThis) { return pThis->lpVtbl->AddRef(pThis); } + static MA_INLINE ULONG ma_IActivateAudioInterfaceAsyncOperation_Release(ma_IActivateAudioInterfaceAsyncOperation* pThis) { return pThis->lpVtbl->Release(pThis); } + static MA_INLINE HRESULT ma_IActivateAudioInterfaceAsyncOperation_GetActivateResult(ma_IActivateAudioInterfaceAsyncOperation* pThis, HRESULT *pActivateResult, ma_IUnknown** ppActivatedInterface) { return pThis->lpVtbl->GetActivateResult(pThis, pActivateResult, ppActivatedInterface); } +#endif + +/* IPropertyStore */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IPropertyStore* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IPropertyStore* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IPropertyStore* pThis); + + /* IPropertyStore */ + HRESULT (STDMETHODCALLTYPE * GetCount)(ma_IPropertyStore* pThis, DWORD* pPropCount); + HRESULT (STDMETHODCALLTYPE * GetAt) (ma_IPropertyStore* pThis, DWORD propIndex, PROPERTYKEY* pPropKey); + HRESULT (STDMETHODCALLTYPE * GetValue)(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, PROPVARIANT* pPropVar); + HRESULT (STDMETHODCALLTYPE * SetValue)(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, const PROPVARIANT* const pPropVar); + HRESULT (STDMETHODCALLTYPE * Commit) (ma_IPropertyStore* pThis); +} ma_IPropertyStoreVtbl; +struct ma_IPropertyStore +{ + ma_IPropertyStoreVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IPropertyStore_QueryInterface(ma_IPropertyStore* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IPropertyStore_AddRef(ma_IPropertyStore* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IPropertyStore_Release(ma_IPropertyStore* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IPropertyStore_GetCount(ma_IPropertyStore* pThis, DWORD* pPropCount) { return pThis->lpVtbl->GetCount(pThis, pPropCount); } +static MA_INLINE HRESULT ma_IPropertyStore_GetAt(ma_IPropertyStore* pThis, DWORD propIndex, PROPERTYKEY* pPropKey) { return pThis->lpVtbl->GetAt(pThis, propIndex, pPropKey); } +static MA_INLINE HRESULT ma_IPropertyStore_GetValue(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, PROPVARIANT* pPropVar) { return pThis->lpVtbl->GetValue(pThis, pKey, pPropVar); } +static MA_INLINE HRESULT ma_IPropertyStore_SetValue(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, const PROPVARIANT* const pPropVar) { return pThis->lpVtbl->SetValue(pThis, pKey, pPropVar); } +static MA_INLINE HRESULT ma_IPropertyStore_Commit(ma_IPropertyStore* pThis) { return pThis->lpVtbl->Commit(pThis); } + + +/* IAudioClient */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IAudioClient* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IAudioClient* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioClient* pThis); + + /* IAudioClient */ + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); + HRESULT (STDMETHODCALLTYPE * GetBufferSize) (ma_IAudioClient* pThis, ma_uint32* pNumBufferFrames); + HRESULT (STDMETHODCALLTYPE * GetStreamLatency) (ma_IAudioClient* pThis, MA_REFERENCE_TIME* pLatency); + HRESULT (STDMETHODCALLTYPE * GetCurrentPadding)(ma_IAudioClient* pThis, ma_uint32* pNumPaddingFrames); + HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch); + HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient* pThis, WAVEFORMATEX** ppDeviceFormat); + HRESULT (STDMETHODCALLTYPE * GetDevicePeriod) (ma_IAudioClient* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod); + HRESULT (STDMETHODCALLTYPE * Start) (ma_IAudioClient* pThis); + HRESULT (STDMETHODCALLTYPE * Stop) (ma_IAudioClient* pThis); + HRESULT (STDMETHODCALLTYPE * Reset) (ma_IAudioClient* pThis); + HRESULT (STDMETHODCALLTYPE * SetEventHandle) (ma_IAudioClient* pThis, HANDLE eventHandle); + HRESULT (STDMETHODCALLTYPE * GetService) (ma_IAudioClient* pThis, const IID* const riid, void** pp); +} ma_IAudioClientVtbl; +struct ma_IAudioClient +{ + ma_IAudioClientVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IAudioClient_QueryInterface(ma_IAudioClient* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IAudioClient_AddRef(ma_IAudioClient* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IAudioClient_Release(ma_IAudioClient* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IAudioClient_Initialize(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } +static MA_INLINE HRESULT ma_IAudioClient_GetBufferSize(ma_IAudioClient* pThis, ma_uint32* pNumBufferFrames) { return pThis->lpVtbl->GetBufferSize(pThis, pNumBufferFrames); } +static MA_INLINE HRESULT ma_IAudioClient_GetStreamLatency(ma_IAudioClient* pThis, MA_REFERENCE_TIME* pLatency) { return pThis->lpVtbl->GetStreamLatency(pThis, pLatency); } +static MA_INLINE HRESULT ma_IAudioClient_GetCurrentPadding(ma_IAudioClient* pThis, ma_uint32* pNumPaddingFrames) { return pThis->lpVtbl->GetCurrentPadding(pThis, pNumPaddingFrames); } +static MA_INLINE HRESULT ma_IAudioClient_IsFormatSupported(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } +static MA_INLINE HRESULT ma_IAudioClient_GetMixFormat(ma_IAudioClient* pThis, WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } +static MA_INLINE HRESULT ma_IAudioClient_GetDevicePeriod(ma_IAudioClient* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod) { return pThis->lpVtbl->GetDevicePeriod(pThis, pDefaultDevicePeriod, pMinimumDevicePeriod); } +static MA_INLINE HRESULT ma_IAudioClient_Start(ma_IAudioClient* pThis) { return pThis->lpVtbl->Start(pThis); } +static MA_INLINE HRESULT ma_IAudioClient_Stop(ma_IAudioClient* pThis) { return pThis->lpVtbl->Stop(pThis); } +static MA_INLINE HRESULT ma_IAudioClient_Reset(ma_IAudioClient* pThis) { return pThis->lpVtbl->Reset(pThis); } +static MA_INLINE HRESULT ma_IAudioClient_SetEventHandle(ma_IAudioClient* pThis, HANDLE eventHandle) { return pThis->lpVtbl->SetEventHandle(pThis, eventHandle); } +static MA_INLINE HRESULT ma_IAudioClient_GetService(ma_IAudioClient* pThis, const IID* const riid, void** pp) { return pThis->lpVtbl->GetService(pThis, riid, pp); } + +/* IAudioClient2 */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IAudioClient2* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IAudioClient2* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioClient2* pThis); + + /* IAudioClient */ + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); + HRESULT (STDMETHODCALLTYPE * GetBufferSize) (ma_IAudioClient2* pThis, ma_uint32* pNumBufferFrames); + HRESULT (STDMETHODCALLTYPE * GetStreamLatency) (ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pLatency); + HRESULT (STDMETHODCALLTYPE * GetCurrentPadding)(ma_IAudioClient2* pThis, ma_uint32* pNumPaddingFrames); + HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch); + HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient2* pThis, WAVEFORMATEX** ppDeviceFormat); + HRESULT (STDMETHODCALLTYPE * GetDevicePeriod) (ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod); + HRESULT (STDMETHODCALLTYPE * Start) (ma_IAudioClient2* pThis); + HRESULT (STDMETHODCALLTYPE * Stop) (ma_IAudioClient2* pThis); + HRESULT (STDMETHODCALLTYPE * Reset) (ma_IAudioClient2* pThis); + HRESULT (STDMETHODCALLTYPE * SetEventHandle) (ma_IAudioClient2* pThis, HANDLE eventHandle); + HRESULT (STDMETHODCALLTYPE * GetService) (ma_IAudioClient2* pThis, const IID* const riid, void** pp); + + /* IAudioClient2 */ + HRESULT (STDMETHODCALLTYPE * IsOffloadCapable) (ma_IAudioClient2* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable); + HRESULT (STDMETHODCALLTYPE * SetClientProperties)(ma_IAudioClient2* pThis, const ma_AudioClientProperties* pProperties); + HRESULT (STDMETHODCALLTYPE * GetBufferSizeLimits)(ma_IAudioClient2* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration); +} ma_IAudioClient2Vtbl; +struct ma_IAudioClient2 +{ + ma_IAudioClient2Vtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IAudioClient2_QueryInterface(ma_IAudioClient2* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IAudioClient2_AddRef(ma_IAudioClient2* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IAudioClient2_Release(ma_IAudioClient2* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IAudioClient2_Initialize(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } +static MA_INLINE HRESULT ma_IAudioClient2_GetBufferSize(ma_IAudioClient2* pThis, ma_uint32* pNumBufferFrames) { return pThis->lpVtbl->GetBufferSize(pThis, pNumBufferFrames); } +static MA_INLINE HRESULT ma_IAudioClient2_GetStreamLatency(ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pLatency) { return pThis->lpVtbl->GetStreamLatency(pThis, pLatency); } +static MA_INLINE HRESULT ma_IAudioClient2_GetCurrentPadding(ma_IAudioClient2* pThis, ma_uint32* pNumPaddingFrames) { return pThis->lpVtbl->GetCurrentPadding(pThis, pNumPaddingFrames); } +static MA_INLINE HRESULT ma_IAudioClient2_IsFormatSupported(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } +static MA_INLINE HRESULT ma_IAudioClient2_GetMixFormat(ma_IAudioClient2* pThis, WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } +static MA_INLINE HRESULT ma_IAudioClient2_GetDevicePeriod(ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod) { return pThis->lpVtbl->GetDevicePeriod(pThis, pDefaultDevicePeriod, pMinimumDevicePeriod); } +static MA_INLINE HRESULT ma_IAudioClient2_Start(ma_IAudioClient2* pThis) { return pThis->lpVtbl->Start(pThis); } +static MA_INLINE HRESULT ma_IAudioClient2_Stop(ma_IAudioClient2* pThis) { return pThis->lpVtbl->Stop(pThis); } +static MA_INLINE HRESULT ma_IAudioClient2_Reset(ma_IAudioClient2* pThis) { return pThis->lpVtbl->Reset(pThis); } +static MA_INLINE HRESULT ma_IAudioClient2_SetEventHandle(ma_IAudioClient2* pThis, HANDLE eventHandle) { return pThis->lpVtbl->SetEventHandle(pThis, eventHandle); } +static MA_INLINE HRESULT ma_IAudioClient2_GetService(ma_IAudioClient2* pThis, const IID* const riid, void** pp) { return pThis->lpVtbl->GetService(pThis, riid, pp); } +static MA_INLINE HRESULT ma_IAudioClient2_IsOffloadCapable(ma_IAudioClient2* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable) { return pThis->lpVtbl->IsOffloadCapable(pThis, category, pOffloadCapable); } +static MA_INLINE HRESULT ma_IAudioClient2_SetClientProperties(ma_IAudioClient2* pThis, const ma_AudioClientProperties* pProperties) { return pThis->lpVtbl->SetClientProperties(pThis, pProperties); } +static MA_INLINE HRESULT ma_IAudioClient2_GetBufferSizeLimits(ma_IAudioClient2* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration) { return pThis->lpVtbl->GetBufferSizeLimits(pThis, pFormat, eventDriven, pMinBufferDuration, pMaxBufferDuration); } + + +/* IAudioClient3 */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IAudioClient3* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IAudioClient3* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioClient3* pThis); + + /* IAudioClient */ + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); + HRESULT (STDMETHODCALLTYPE * GetBufferSize) (ma_IAudioClient3* pThis, ma_uint32* pNumBufferFrames); + HRESULT (STDMETHODCALLTYPE * GetStreamLatency) (ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pLatency); + HRESULT (STDMETHODCALLTYPE * GetCurrentPadding)(ma_IAudioClient3* pThis, ma_uint32* pNumPaddingFrames); + HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch); + HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient3* pThis, WAVEFORMATEX** ppDeviceFormat); + HRESULT (STDMETHODCALLTYPE * GetDevicePeriod) (ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod); + HRESULT (STDMETHODCALLTYPE * Start) (ma_IAudioClient3* pThis); + HRESULT (STDMETHODCALLTYPE * Stop) (ma_IAudioClient3* pThis); + HRESULT (STDMETHODCALLTYPE * Reset) (ma_IAudioClient3* pThis); + HRESULT (STDMETHODCALLTYPE * SetEventHandle) (ma_IAudioClient3* pThis, HANDLE eventHandle); + HRESULT (STDMETHODCALLTYPE * GetService) (ma_IAudioClient3* pThis, const IID* const riid, void** pp); + + /* IAudioClient2 */ + HRESULT (STDMETHODCALLTYPE * IsOffloadCapable) (ma_IAudioClient3* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable); + HRESULT (STDMETHODCALLTYPE * SetClientProperties)(ma_IAudioClient3* pThis, const ma_AudioClientProperties* pProperties); + HRESULT (STDMETHODCALLTYPE * GetBufferSizeLimits)(ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration); + + /* IAudioClient3 */ + HRESULT (STDMETHODCALLTYPE * GetSharedModeEnginePeriod) (ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, ma_uint32* pDefaultPeriodInFrames, ma_uint32* pFundamentalPeriodInFrames, ma_uint32* pMinPeriodInFrames, ma_uint32* pMaxPeriodInFrames); + HRESULT (STDMETHODCALLTYPE * GetCurrentSharedModeEnginePeriod)(ma_IAudioClient3* pThis, WAVEFORMATEX** ppFormat, ma_uint32* pCurrentPeriodInFrames); + HRESULT (STDMETHODCALLTYPE * InitializeSharedAudioStream) (ma_IAudioClient3* pThis, DWORD streamFlags, ma_uint32 periodInFrames, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); +} ma_IAudioClient3Vtbl; +struct ma_IAudioClient3 +{ + ma_IAudioClient3Vtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IAudioClient3_QueryInterface(ma_IAudioClient3* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IAudioClient3_AddRef(ma_IAudioClient3* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IAudioClient3_Release(ma_IAudioClient3* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IAudioClient3_Initialize(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } +static MA_INLINE HRESULT ma_IAudioClient3_GetBufferSize(ma_IAudioClient3* pThis, ma_uint32* pNumBufferFrames) { return pThis->lpVtbl->GetBufferSize(pThis, pNumBufferFrames); } +static MA_INLINE HRESULT ma_IAudioClient3_GetStreamLatency(ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pLatency) { return pThis->lpVtbl->GetStreamLatency(pThis, pLatency); } +static MA_INLINE HRESULT ma_IAudioClient3_GetCurrentPadding(ma_IAudioClient3* pThis, ma_uint32* pNumPaddingFrames) { return pThis->lpVtbl->GetCurrentPadding(pThis, pNumPaddingFrames); } +static MA_INLINE HRESULT ma_IAudioClient3_IsFormatSupported(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } +static MA_INLINE HRESULT ma_IAudioClient3_GetMixFormat(ma_IAudioClient3* pThis, WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } +static MA_INLINE HRESULT ma_IAudioClient3_GetDevicePeriod(ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod) { return pThis->lpVtbl->GetDevicePeriod(pThis, pDefaultDevicePeriod, pMinimumDevicePeriod); } +static MA_INLINE HRESULT ma_IAudioClient3_Start(ma_IAudioClient3* pThis) { return pThis->lpVtbl->Start(pThis); } +static MA_INLINE HRESULT ma_IAudioClient3_Stop(ma_IAudioClient3* pThis) { return pThis->lpVtbl->Stop(pThis); } +static MA_INLINE HRESULT ma_IAudioClient3_Reset(ma_IAudioClient3* pThis) { return pThis->lpVtbl->Reset(pThis); } +static MA_INLINE HRESULT ma_IAudioClient3_SetEventHandle(ma_IAudioClient3* pThis, HANDLE eventHandle) { return pThis->lpVtbl->SetEventHandle(pThis, eventHandle); } +static MA_INLINE HRESULT ma_IAudioClient3_GetService(ma_IAudioClient3* pThis, const IID* const riid, void** pp) { return pThis->lpVtbl->GetService(pThis, riid, pp); } +static MA_INLINE HRESULT ma_IAudioClient3_IsOffloadCapable(ma_IAudioClient3* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable) { return pThis->lpVtbl->IsOffloadCapable(pThis, category, pOffloadCapable); } +static MA_INLINE HRESULT ma_IAudioClient3_SetClientProperties(ma_IAudioClient3* pThis, const ma_AudioClientProperties* pProperties) { return pThis->lpVtbl->SetClientProperties(pThis, pProperties); } +static MA_INLINE HRESULT ma_IAudioClient3_GetBufferSizeLimits(ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration) { return pThis->lpVtbl->GetBufferSizeLimits(pThis, pFormat, eventDriven, pMinBufferDuration, pMaxBufferDuration); } +static MA_INLINE HRESULT ma_IAudioClient3_GetSharedModeEnginePeriod(ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, ma_uint32* pDefaultPeriodInFrames, ma_uint32* pFundamentalPeriodInFrames, ma_uint32* pMinPeriodInFrames, ma_uint32* pMaxPeriodInFrames) { return pThis->lpVtbl->GetSharedModeEnginePeriod(pThis, pFormat, pDefaultPeriodInFrames, pFundamentalPeriodInFrames, pMinPeriodInFrames, pMaxPeriodInFrames); } +static MA_INLINE HRESULT ma_IAudioClient3_GetCurrentSharedModeEnginePeriod(ma_IAudioClient3* pThis, WAVEFORMATEX** ppFormat, ma_uint32* pCurrentPeriodInFrames) { return pThis->lpVtbl->GetCurrentSharedModeEnginePeriod(pThis, ppFormat, pCurrentPeriodInFrames); } +static MA_INLINE HRESULT ma_IAudioClient3_InitializeSharedAudioStream(ma_IAudioClient3* pThis, DWORD streamFlags, ma_uint32 periodInFrames, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGUID) { return pThis->lpVtbl->InitializeSharedAudioStream(pThis, streamFlags, periodInFrames, pFormat, pAudioSessionGUID); } + + +/* IAudioRenderClient */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IAudioRenderClient* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IAudioRenderClient* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioRenderClient* pThis); + + /* IAudioRenderClient */ + HRESULT (STDMETHODCALLTYPE * GetBuffer) (ma_IAudioRenderClient* pThis, ma_uint32 numFramesRequested, BYTE** ppData); + HRESULT (STDMETHODCALLTYPE * ReleaseBuffer)(ma_IAudioRenderClient* pThis, ma_uint32 numFramesWritten, DWORD dwFlags); +} ma_IAudioRenderClientVtbl; +struct ma_IAudioRenderClient +{ + ma_IAudioRenderClientVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IAudioRenderClient_QueryInterface(ma_IAudioRenderClient* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IAudioRenderClient_AddRef(ma_IAudioRenderClient* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IAudioRenderClient_Release(ma_IAudioRenderClient* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IAudioRenderClient_GetBuffer(ma_IAudioRenderClient* pThis, ma_uint32 numFramesRequested, BYTE** ppData) { return pThis->lpVtbl->GetBuffer(pThis, numFramesRequested, ppData); } +static MA_INLINE HRESULT ma_IAudioRenderClient_ReleaseBuffer(ma_IAudioRenderClient* pThis, ma_uint32 numFramesWritten, DWORD dwFlags) { return pThis->lpVtbl->ReleaseBuffer(pThis, numFramesWritten, dwFlags); } + + +/* IAudioCaptureClient */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IAudioCaptureClient* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IAudioCaptureClient* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioCaptureClient* pThis); + + /* IAudioRenderClient */ + HRESULT (STDMETHODCALLTYPE * GetBuffer) (ma_IAudioCaptureClient* pThis, BYTE** ppData, ma_uint32* pNumFramesToRead, DWORD* pFlags, ma_uint64* pDevicePosition, ma_uint64* pQPCPosition); + HRESULT (STDMETHODCALLTYPE * ReleaseBuffer) (ma_IAudioCaptureClient* pThis, ma_uint32 numFramesRead); + HRESULT (STDMETHODCALLTYPE * GetNextPacketSize)(ma_IAudioCaptureClient* pThis, ma_uint32* pNumFramesInNextPacket); +} ma_IAudioCaptureClientVtbl; +struct ma_IAudioCaptureClient +{ + ma_IAudioCaptureClientVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IAudioCaptureClient_QueryInterface(ma_IAudioCaptureClient* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IAudioCaptureClient_AddRef(ma_IAudioCaptureClient* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IAudioCaptureClient_Release(ma_IAudioCaptureClient* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IAudioCaptureClient_GetBuffer(ma_IAudioCaptureClient* pThis, BYTE** ppData, ma_uint32* pNumFramesToRead, DWORD* pFlags, ma_uint64* pDevicePosition, ma_uint64* pQPCPosition) { return pThis->lpVtbl->GetBuffer(pThis, ppData, pNumFramesToRead, pFlags, pDevicePosition, pQPCPosition); } +static MA_INLINE HRESULT ma_IAudioCaptureClient_ReleaseBuffer(ma_IAudioCaptureClient* pThis, ma_uint32 numFramesRead) { return pThis->lpVtbl->ReleaseBuffer(pThis, numFramesRead); } +static MA_INLINE HRESULT ma_IAudioCaptureClient_GetNextPacketSize(ma_IAudioCaptureClient* pThis, ma_uint32* pNumFramesInNextPacket) { return pThis->lpVtbl->GetNextPacketSize(pThis, pNumFramesInNextPacket); } + +#ifndef MA_WIN32_DESKTOP +#include +typedef struct ma_completion_handler_uwp ma_completion_handler_uwp; + +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_completion_handler_uwp* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_completion_handler_uwp* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_completion_handler_uwp* pThis); + + /* IActivateAudioInterfaceCompletionHandler */ + HRESULT (STDMETHODCALLTYPE * ActivateCompleted)(ma_completion_handler_uwp* pThis, ma_IActivateAudioInterfaceAsyncOperation* pActivateOperation); +} ma_completion_handler_uwp_vtbl; +struct ma_completion_handler_uwp +{ + ma_completion_handler_uwp_vtbl* lpVtbl; + MA_ATOMIC ma_uint32 counter; + HANDLE hEvent; +}; + +static HRESULT STDMETHODCALLTYPE ma_completion_handler_uwp_QueryInterface(ma_completion_handler_uwp* pThis, const IID* const riid, void** ppObject) +{ + /* + We need to "implement" IAgileObject which is just an indicator that's used internally by WASAPI for some multithreading management. To + "implement" this, we just make sure we return pThis when the IAgileObject is requested. + */ + if (!ma_is_guid_equal(riid, &MA_IID_IUnknown) && !ma_is_guid_equal(riid, &MA_IID_IActivateAudioInterfaceCompletionHandler) && !ma_is_guid_equal(riid, &MA_IID_IAgileObject)) { + *ppObject = NULL; + return E_NOINTERFACE; + } + + /* Getting here means the IID is IUnknown or IMMNotificationClient. */ + *ppObject = (void*)pThis; + ((ma_completion_handler_uwp_vtbl*)pThis->lpVtbl)->AddRef(pThis); + return S_OK; +} + +static ULONG STDMETHODCALLTYPE ma_completion_handler_uwp_AddRef(ma_completion_handler_uwp* pThis) +{ + return (ULONG)c89atomic_fetch_add_32(&pThis->counter, 1) + 1; +} + +static ULONG STDMETHODCALLTYPE ma_completion_handler_uwp_Release(ma_completion_handler_uwp* pThis) +{ + ma_uint32 newRefCount = c89atomic_fetch_sub_32(&pThis->counter, 1) - 1; + if (newRefCount == 0) { + return 0; /* We don't free anything here because we never allocate the object on the heap. */ + } + + return (ULONG)newRefCount; +} + +static HRESULT STDMETHODCALLTYPE ma_completion_handler_uwp_ActivateCompleted(ma_completion_handler_uwp* pThis, ma_IActivateAudioInterfaceAsyncOperation* pActivateOperation) +{ + (void)pActivateOperation; + SetEvent(pThis->hEvent); + return S_OK; +} + + +static ma_completion_handler_uwp_vtbl g_maCompletionHandlerVtblInstance = { + ma_completion_handler_uwp_QueryInterface, + ma_completion_handler_uwp_AddRef, + ma_completion_handler_uwp_Release, + ma_completion_handler_uwp_ActivateCompleted +}; + +static ma_result ma_completion_handler_uwp_init(ma_completion_handler_uwp* pHandler) +{ + MA_ASSERT(pHandler != NULL); + MA_ZERO_OBJECT(pHandler); + + pHandler->lpVtbl = &g_maCompletionHandlerVtblInstance; + pHandler->counter = 1; + pHandler->hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); + if (pHandler->hEvent == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static void ma_completion_handler_uwp_uninit(ma_completion_handler_uwp* pHandler) +{ + if (pHandler->hEvent != NULL) { + CloseHandle(pHandler->hEvent); + } +} + +static void ma_completion_handler_uwp_wait(ma_completion_handler_uwp* pHandler) +{ + WaitForSingleObject(pHandler->hEvent, INFINITE); +} +#endif /* !MA_WIN32_DESKTOP */ + +/* We need a virtual table for our notification client object that's used for detecting changes to the default device. */ +#ifdef MA_WIN32_DESKTOP +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_QueryInterface(ma_IMMNotificationClient* pThis, const IID* const riid, void** ppObject) +{ + /* + We care about two interfaces - IUnknown and IMMNotificationClient. If the requested IID is something else + we just return E_NOINTERFACE. Otherwise we need to increment the reference counter and return S_OK. + */ + if (!ma_is_guid_equal(riid, &MA_IID_IUnknown) && !ma_is_guid_equal(riid, &MA_IID_IMMNotificationClient)) { + *ppObject = NULL; + return E_NOINTERFACE; + } + + /* Getting here means the IID is IUnknown or IMMNotificationClient. */ + *ppObject = (void*)pThis; + ((ma_IMMNotificationClientVtbl*)pThis->lpVtbl)->AddRef(pThis); + return S_OK; +} + +static ULONG STDMETHODCALLTYPE ma_IMMNotificationClient_AddRef(ma_IMMNotificationClient* pThis) +{ + return (ULONG)c89atomic_fetch_add_32(&pThis->counter, 1) + 1; +} + +static ULONG STDMETHODCALLTYPE ma_IMMNotificationClient_Release(ma_IMMNotificationClient* pThis) +{ + ma_uint32 newRefCount = c89atomic_fetch_sub_32(&pThis->counter, 1) - 1; + if (newRefCount == 0) { + return 0; /* We don't free anything here because we never allocate the object on the heap. */ + } + + return (ULONG)newRefCount; +} + +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceStateChanged(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, DWORD dwNewState) +{ + ma_bool32 isThisDevice = MA_FALSE; + ma_bool32 isCapture = MA_FALSE; + ma_bool32 isPlayback = MA_FALSE; + + +#ifdef MA_DEBUG_OUTPUT + printf("IMMNotificationClient_OnDeviceStateChanged(pDeviceID=%S, dwNewState=%u)\n", (pDeviceID != NULL) ? pDeviceID : L"(NULL)", (unsigned int)dwNewState); +#endif + + /* + There have been reports of a hang when a playback device is disconnected. The idea with this code is to explicitly stop the device if we detect + that the device is disabled or has been unplugged. + */ + if (pThis->pDevice->wasapi.allowCaptureAutoStreamRouting && (pThis->pDevice->type == ma_device_type_capture || pThis->pDevice->type == ma_device_type_duplex || pThis->pDevice->type == ma_device_type_loopback)) { + isCapture = MA_TRUE; + if (wcscmp(pThis->pDevice->capture.id.wasapi, pDeviceID) == 0) { + isThisDevice = MA_TRUE; + } + } + + if (pThis->pDevice->wasapi.allowPlaybackAutoStreamRouting && (pThis->pDevice->type == ma_device_type_playback || pThis->pDevice->type == ma_device_type_duplex)) { + isPlayback = MA_TRUE; + if (wcscmp(pThis->pDevice->playback.id.wasapi, pDeviceID) == 0) { + isThisDevice = MA_TRUE; + } + } + + + /* + If the device ID matches our device we need to mark our device as detached and stop it. When a + device is added in OnDeviceAdded(), we'll restart it. We only mark it as detached if the device + was started at the time of being removed. + */ + if (isThisDevice) { + if ((dwNewState & MA_MM_DEVICE_STATE_ACTIVE) == 0) { + /* + Unplugged or otherwise unavailable. Mark as detached if we were in a playing state. We'll + use this to determine whether or not we need to automatically start the device when it's + plugged back in again. + */ + if (ma_device_get_state(pThis->pDevice) == MA_STATE_STARTED) { + if (isPlayback) { + pThis->pDevice->wasapi.isDetachedPlayback = MA_TRUE; + } + if (isCapture) { + pThis->pDevice->wasapi.isDetachedCapture = MA_TRUE; + } + + ma_device_stop(pThis->pDevice); + } + } + + if ((dwNewState & MA_MM_DEVICE_STATE_ACTIVE) != 0) { + /* The device was activated. If we were detached, we need to start it again. */ + ma_bool8 tryRestartingDevice = MA_FALSE; + + if (isPlayback) { + if (pThis->pDevice->wasapi.isDetachedPlayback) { + pThis->pDevice->wasapi.isDetachedPlayback = MA_FALSE; + ma_device_reroute__wasapi(pThis->pDevice, ma_device_type_playback); + tryRestartingDevice = MA_TRUE; + } + } + + if (isCapture) { + if (pThis->pDevice->wasapi.isDetachedCapture) { + pThis->pDevice->wasapi.isDetachedCapture = MA_FALSE; + ma_device_reroute__wasapi(pThis->pDevice, (pThis->pDevice->type == ma_device_type_loopback) ? ma_device_type_loopback : ma_device_type_capture); + tryRestartingDevice = MA_TRUE; + } + } + + if (tryRestartingDevice) { + if (pThis->pDevice->wasapi.isDetachedPlayback == MA_FALSE && pThis->pDevice->wasapi.isDetachedCapture == MA_FALSE) { + ma_device_start(pThis->pDevice); + } + } + } + } + + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceAdded(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID) +{ +#ifdef MA_DEBUG_OUTPUT + /*printf("IMMNotificationClient_OnDeviceAdded(pDeviceID=%S)\n", (pDeviceID != NULL) ? pDeviceID : L"(NULL)");*/ +#endif + + /* We don't need to worry about this event for our purposes. */ + (void)pThis; + (void)pDeviceID; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceRemoved(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID) +{ +#ifdef MA_DEBUG_OUTPUT + printf("IMMNotificationClient_OnDeviceRemoved(pDeviceID=%S)\n", (pDeviceID != NULL) ? pDeviceID : L"(NULL)"); +#endif + + /* We don't need to worry about this event for our purposes. */ + (void)pThis; + (void)pDeviceID; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDefaultDeviceChanged(ma_IMMNotificationClient* pThis, ma_EDataFlow dataFlow, ma_ERole role, LPCWSTR pDefaultDeviceID) +{ +#ifdef MA_DEBUG_OUTPUT + printf("IMMNotificationClient_OnDefaultDeviceChanged(dataFlow=%d, role=%d, pDefaultDeviceID=%S)\n", dataFlow, role, (pDefaultDeviceID != NULL) ? pDefaultDeviceID : L"(NULL)"); +#endif + + /* We only ever use the eConsole role in miniaudio. */ + if (role != ma_eConsole) { + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Stream rerouting: role != eConsole\n"); + #endif + return S_OK; + } + + /* We only care about devices with the same data flow and role as the current device. */ + if ((pThis->pDevice->type == ma_device_type_playback && dataFlow != ma_eRender) || + (pThis->pDevice->type == ma_device_type_capture && dataFlow != ma_eCapture)) { + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Stream rerouting abandoned because dataFlow does match device type.\n"); + #endif + return S_OK; + } + + /* Don't do automatic stream routing if we're not allowed. */ + if ((dataFlow == ma_eRender && pThis->pDevice->wasapi.allowPlaybackAutoStreamRouting == MA_FALSE) || + (dataFlow == ma_eCapture && pThis->pDevice->wasapi.allowCaptureAutoStreamRouting == MA_FALSE)) { + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Stream rerouting abandoned because automatic stream routing has been disabled by the device config.\n"); + #endif + return S_OK; + } + + /* + Not currently supporting automatic stream routing in exclusive mode. This is not working correctly on my machine due to + AUDCLNT_E_DEVICE_IN_USE errors when reinitializing the device. If this is a bug in miniaudio, we can try re-enabling this once + it's fixed. + */ + if ((dataFlow == ma_eRender && pThis->pDevice->playback.shareMode == ma_share_mode_exclusive) || + (dataFlow == ma_eCapture && pThis->pDevice->capture.shareMode == ma_share_mode_exclusive)) { + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Stream rerouting abandoned because the device shared mode is exclusive.\n"); + #endif + return S_OK; + } + + + + + /* + Second attempt at device rerouting. We're going to retrieve the device's state at the time of + the route change. We're then going to stop the device, reinitialize the device, and then start + it again if the state before stopping was MA_STATE_STARTED. + */ + { + ma_uint32 previousState = ma_device_get_state(pThis->pDevice); + ma_bool8 restartDevice = MA_FALSE; + + if (previousState == MA_STATE_STARTED) { + ma_device_stop(pThis->pDevice); + restartDevice = MA_TRUE; + } + + if (pDefaultDeviceID != NULL) { /* <-- The input device ID will be null if there's no other device available. */ + if (dataFlow == ma_eRender) { + ma_device_reroute__wasapi(pThis->pDevice, ma_device_type_playback); + + if (pThis->pDevice->wasapi.isDetachedPlayback) { + pThis->pDevice->wasapi.isDetachedPlayback = MA_FALSE; + + if (pThis->pDevice->type == ma_device_type_duplex && pThis->pDevice->wasapi.isDetachedCapture) { + restartDevice = MA_FALSE; /* It's a duplex device and the capture side is detached. We cannot be restarting the device just yet. */ + } else { + restartDevice = MA_TRUE; /* It's not a duplex device, or the capture side is also attached so we can go ahead and restart the device. */ + } + } + } else { + ma_device_reroute__wasapi(pThis->pDevice, (pThis->pDevice->type == ma_device_type_loopback) ? ma_device_type_loopback : ma_device_type_capture); + + if (pThis->pDevice->wasapi.isDetachedCapture) { + pThis->pDevice->wasapi.isDetachedCapture = MA_FALSE; + + if (pThis->pDevice->type == ma_device_type_duplex && pThis->pDevice->wasapi.isDetachedPlayback) { + restartDevice = MA_FALSE; /* It's a duplex device and the playback side is detached. We cannot be restarting the device just yet. */ + } else { + restartDevice = MA_TRUE; /* It's not a duplex device, or the playback side is also attached so we can go ahead and restart the device. */ + } + } + } + + if (restartDevice) { + ma_device_start(pThis->pDevice); + } + } + } + + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnPropertyValueChanged(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, const PROPERTYKEY key) +{ +#ifdef MA_DEBUG_OUTPUT + /*printf("IMMNotificationClient_OnPropertyValueChanged(pDeviceID=%S)\n", (pDeviceID != NULL) ? pDeviceID : L"(NULL)");*/ +#endif + + (void)pThis; + (void)pDeviceID; + (void)key; + return S_OK; +} + +static ma_IMMNotificationClientVtbl g_maNotificationCientVtbl = { + ma_IMMNotificationClient_QueryInterface, + ma_IMMNotificationClient_AddRef, + ma_IMMNotificationClient_Release, + ma_IMMNotificationClient_OnDeviceStateChanged, + ma_IMMNotificationClient_OnDeviceAdded, + ma_IMMNotificationClient_OnDeviceRemoved, + ma_IMMNotificationClient_OnDefaultDeviceChanged, + ma_IMMNotificationClient_OnPropertyValueChanged +}; +#endif /* MA_WIN32_DESKTOP */ + +#ifdef MA_WIN32_DESKTOP +typedef ma_IMMDevice ma_WASAPIDeviceInterface; +#else +typedef ma_IUnknown ma_WASAPIDeviceInterface; +#endif + + +#define MA_CONTEXT_COMMAND_QUIT__WASAPI 1 +#define MA_CONTEXT_COMMAND_CREATE_IAUDIOCLIENT__WASAPI 2 +#define MA_CONTEXT_COMMAND_RELEASE_IAUDIOCLIENT__WASAPI 3 + +static ma_context_command__wasapi ma_context_init_command__wasapi(int code) +{ + ma_context_command__wasapi cmd; + + MA_ZERO_OBJECT(&cmd); + cmd.code = code; + + return cmd; +} + +static ma_result ma_context_post_command__wasapi(ma_context* pContext, const ma_context_command__wasapi* pCmd) +{ + /* For now we are doing everything synchronously, but I might relax this later if the need arises. */ + ma_result result; + ma_bool32 isUsingLocalEvent = MA_FALSE; + ma_event localEvent; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pCmd != NULL); + + if (pCmd->pEvent == NULL) { + isUsingLocalEvent = MA_TRUE; + + result = ma_event_init(&localEvent); + if (result != MA_SUCCESS) { + return result; /* Failed to create the event for this command. */ + } + } + + /* Here is where we add the command to the list. If there's not enough room we'll spin until there is. */ + ma_mutex_lock(&pContext->wasapi.commandLock); + { + ma_uint32 index; + + /* Spin until we've got some space available. */ + while (pContext->wasapi.commandCount == ma_countof(pContext->wasapi.commands)) { + ma_yield(); + } + + /* Space is now available. Can safely add to the list. */ + index = (pContext->wasapi.commandIndex + pContext->wasapi.commandCount) % ma_countof(pContext->wasapi.commands); + pContext->wasapi.commands[index] = *pCmd; + pContext->wasapi.commands[index].pEvent = &localEvent; + pContext->wasapi.commandCount += 1; + + /* Now that the command has been added, release the semaphore so ma_context_next_command__wasapi() can return. */ + ma_semaphore_release(&pContext->wasapi.commandSem); + } + ma_mutex_unlock(&pContext->wasapi.commandLock); + + if (isUsingLocalEvent) { + ma_event_wait(&localEvent); + ma_event_uninit(&localEvent); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_next_command__wasapi(ma_context* pContext, ma_context_command__wasapi* pCmd) +{ + ma_result result = MA_SUCCESS; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pCmd != NULL); + + result = ma_semaphore_wait(&pContext->wasapi.commandSem); + if (result == MA_SUCCESS) { + ma_mutex_lock(&pContext->wasapi.commandLock); + { + *pCmd = pContext->wasapi.commands[pContext->wasapi.commandIndex]; + pContext->wasapi.commandIndex = (pContext->wasapi.commandIndex + 1) % ma_countof(pContext->wasapi.commands); + pContext->wasapi.commandCount -= 1; + } + ma_mutex_unlock(&pContext->wasapi.commandLock); + } + + return result; +} + +static ma_thread_result MA_THREADCALL ma_context_command_thread__wasapi(void* pUserData) +{ + ma_result result; + ma_context* pContext = (ma_context*)pUserData; + MA_ASSERT(pContext != NULL); + + for (;;) { + ma_context_command__wasapi cmd; + result = ma_context_next_command__wasapi(pContext, &cmd); + if (result != MA_SUCCESS) { + break; + } + + switch (cmd.code) + { + case MA_CONTEXT_COMMAND_QUIT__WASAPI: + { + /* Do nothing. Handled after the switch. */ + } break; + + case MA_CONTEXT_COMMAND_CREATE_IAUDIOCLIENT__WASAPI: + { + if (cmd.data.createAudioClient.deviceType == ma_device_type_playback) { + *cmd.data.createAudioClient.pResult = ma_result_from_HRESULT(ma_IAudioClient_GetService((ma_IAudioClient*)cmd.data.createAudioClient.pAudioClient, &MA_IID_IAudioRenderClient, cmd.data.createAudioClient.ppAudioClientService)); + } else { + *cmd.data.createAudioClient.pResult = ma_result_from_HRESULT(ma_IAudioClient_GetService((ma_IAudioClient*)cmd.data.createAudioClient.pAudioClient, &MA_IID_IAudioCaptureClient, cmd.data.createAudioClient.ppAudioClientService)); + } + } break; + + case MA_CONTEXT_COMMAND_RELEASE_IAUDIOCLIENT__WASAPI: + { + if (cmd.data.releaseAudioClient.deviceType == ma_device_type_playback) { + if (cmd.data.releaseAudioClient.pDevice->wasapi.pAudioClientPlayback != NULL) { + ma_IAudioClient_Release((ma_IAudioClient*)cmd.data.releaseAudioClient.pDevice->wasapi.pAudioClientPlayback); + cmd.data.releaseAudioClient.pDevice->wasapi.pAudioClientPlayback = NULL; + } + } + + if (cmd.data.releaseAudioClient.deviceType == ma_device_type_capture) { + if (cmd.data.releaseAudioClient.pDevice->wasapi.pAudioClientCapture != NULL) { + ma_IAudioClient_Release((ma_IAudioClient*)cmd.data.releaseAudioClient.pDevice->wasapi.pAudioClientCapture); + cmd.data.releaseAudioClient.pDevice->wasapi.pAudioClientCapture = NULL; + } + } + } break; + + default: + { + /* Unknown command. Ignore it, but trigger an assert in debug mode so we're aware of it. */ + MA_ASSERT(MA_FALSE); + } break; + } + + if (cmd.pEvent != NULL) { + ma_event_signal(cmd.pEvent); + } + + if (cmd.code == MA_CONTEXT_COMMAND_QUIT__WASAPI) { + break; /* Received a quit message. Get out of here. */ + } + } + + return (ma_thread_result)0; +} + +static ma_result ma_device_create_IAudioClient_service__wasapi(ma_context* pContext, ma_device_type deviceType, ma_IAudioClient* pAudioClient, void** ppAudioClientService) +{ + ma_result result; + ma_result cmdResult; + ma_context_command__wasapi cmd = ma_context_init_command__wasapi(MA_CONTEXT_COMMAND_CREATE_IAUDIOCLIENT__WASAPI); + cmd.data.createAudioClient.deviceType = deviceType; + cmd.data.createAudioClient.pAudioClient = (void*)pAudioClient; + cmd.data.createAudioClient.ppAudioClientService = ppAudioClientService; + cmd.data.createAudioClient.pResult = &cmdResult; /* Declared locally, but won't be dereferenced after this function returns since execution of the command will wait here. */ + + result = ma_context_post_command__wasapi(pContext, &cmd); /* This will not return until the command has actually been run. */ + if (result != MA_SUCCESS) { + return result; + } + + return *cmd.data.createAudioClient.pResult; +} + +#if 0 /* Not used at the moment, but leaving here for future use. */ +static ma_result ma_device_release_IAudioClient_service__wasapi(ma_device* pDevice, ma_device_type deviceType) +{ + ma_result result; + ma_context_command__wasapi cmd = ma_context_init_command__wasapi(MA_CONTEXT_COMMAND_RELEASE_IAUDIOCLIENT__WASAPI); + cmd.data.releaseAudioClient.pDevice = pDevice; + cmd.data.releaseAudioClient.deviceType = deviceType; + + result = ma_context_post_command__wasapi(pDevice->pContext, &cmd); /* This will not return until the command has actually been run. */ + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} +#endif + + +static void ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(const WAVEFORMATEX* pWF, ma_share_mode shareMode, ma_device_info* pInfo) +{ + MA_ASSERT(pWF != NULL); + MA_ASSERT(pInfo != NULL); + + if (pInfo->nativeDataFormatCount >= ma_countof(pInfo->nativeDataFormats)) { + return; /* Too many data formats. Need to ignore this one. Don't think this should ever happen with WASAPI. */ + } + + pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].format = ma_format_from_WAVEFORMATEX(pWF); + pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].channels = pWF->nChannels; + pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].sampleRate = pWF->nSamplesPerSec; + pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].flags = (shareMode == ma_share_mode_exclusive) ? MA_DATA_FORMAT_FLAG_EXCLUSIVE_MODE : 0; + pInfo->nativeDataFormatCount += 1; +} + +static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context* pContext, /*ma_IMMDevice**/void* pMMDevice, ma_IAudioClient* pAudioClient, ma_device_info* pInfo) +{ + HRESULT hr; + WAVEFORMATEX* pWF = NULL; + + MA_ASSERT(pAudioClient != NULL); + MA_ASSERT(pInfo != NULL); + + /* Shared Mode. We use GetMixFormat() here. */ + hr = ma_IAudioClient_GetMixFormat((ma_IAudioClient*)pAudioClient, (WAVEFORMATEX**)&pWF); + if (SUCCEEDED(hr)) { + ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(pWF, ma_share_mode_shared, pInfo); + } else { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve mix format for device info retrieval.", ma_result_from_HRESULT(hr)); + } + + /* + Exlcusive Mode. We repeatedly call IsFormatSupported() here. This is not currently supported on + UWP. Failure to retrieve the exclusive mode format is not considered an error, so from here on + out, MA_SUCCESS is guaranteed to be returned. + */ + #ifdef MA_WIN32_DESKTOP + { + ma_IPropertyStore *pProperties; + + /* + The first thing to do is get the format from PKEY_AudioEngine_DeviceFormat. This should give us a channel count we assume is + correct which will simplify our searching. + */ + hr = ma_IMMDevice_OpenPropertyStore((ma_IMMDevice*)pMMDevice, STGM_READ, &pProperties); + if (SUCCEEDED(hr)) { + PROPVARIANT var; + ma_PropVariantInit(&var); + + hr = ma_IPropertyStore_GetValue(pProperties, &MA_PKEY_AudioEngine_DeviceFormat, &var); + if (SUCCEEDED(hr)) { + pWF = (WAVEFORMATEX*)var.blob.pBlobData; + + /* + In my testing, the format returned by PKEY_AudioEngine_DeviceFormat is suitable for exclusive mode so we check this format + first. If this fails, fall back to a search. + */ + hr = ma_IAudioClient_IsFormatSupported((ma_IAudioClient*)pAudioClient, MA_AUDCLNT_SHAREMODE_EXCLUSIVE, pWF, NULL); + if (SUCCEEDED(hr)) { + /* The format returned by PKEY_AudioEngine_DeviceFormat is supported. */ + ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(pWF, ma_share_mode_exclusive, pInfo); + } else { + /* + The format returned by PKEY_AudioEngine_DeviceFormat is not supported, so fall back to a search. We assume the channel + count returned by MA_PKEY_AudioEngine_DeviceFormat is valid and correct. For simplicity we're only returning one format. + */ + ma_uint32 channels = pInfo->minChannels; + ma_channel defaultChannelMap[MA_MAX_CHANNELS]; + WAVEFORMATEXTENSIBLE wf; + ma_bool32 found; + ma_uint32 iFormat; + + /* Make sure we don't overflow the channel map. */ + if (channels > MA_MAX_CHANNELS) { + channels = MA_MAX_CHANNELS; + } + + ma_get_standard_channel_map(ma_standard_channel_map_microsoft, channels, defaultChannelMap); + + MA_ZERO_OBJECT(&wf); + wf.Format.cbSize = sizeof(wf); + wf.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; + wf.Format.nChannels = (WORD)channels; + wf.dwChannelMask = ma_channel_map_to_channel_mask__win32(defaultChannelMap, channels); + + found = MA_FALSE; + for (iFormat = 0; iFormat < ma_countof(g_maFormatPriorities); ++iFormat) { + ma_format format = g_maFormatPriorities[iFormat]; + ma_uint32 iSampleRate; + + wf.Format.wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8); + wf.Format.nBlockAlign = (WORD)(wf.Format.nChannels * wf.Format.wBitsPerSample / 8); + wf.Format.nAvgBytesPerSec = wf.Format.nBlockAlign * wf.Format.nSamplesPerSec; + wf.Samples.wValidBitsPerSample = /*(format == ma_format_s24_32) ? 24 :*/ wf.Format.wBitsPerSample; + if (format == ma_format_f32) { + wf.SubFormat = MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; + } else { + wf.SubFormat = MA_GUID_KSDATAFORMAT_SUBTYPE_PCM; + } + + for (iSampleRate = 0; iSampleRate < ma_countof(g_maStandardSampleRatePriorities); ++iSampleRate) { + wf.Format.nSamplesPerSec = g_maStandardSampleRatePriorities[iSampleRate]; + + hr = ma_IAudioClient_IsFormatSupported((ma_IAudioClient*)pAudioClient, MA_AUDCLNT_SHAREMODE_EXCLUSIVE, (WAVEFORMATEX*)&wf, NULL); + if (SUCCEEDED(hr)) { + ma_add_native_data_format_to_device_info_from_WAVEFORMATEX((WAVEFORMATEX*)&wf, ma_share_mode_exclusive, pInfo); + found = MA_TRUE; + break; + } + } + + if (found) { + break; + } + } + + ma_PropVariantClear(pContext, &var); + + if (!found) { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_WARNING, "[WASAPI] Failed to find suitable device format for device info retrieval.", MA_FORMAT_NOT_SUPPORTED); + } + } + } else { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_WARNING, "[WASAPI] Failed to retrieve device format for device info retrieval.", ma_result_from_HRESULT(hr)); + } + + ma_IPropertyStore_Release(pProperties); + } else { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_WARNING, "[WASAPI] Failed to open property store for device info retrieval.", ma_result_from_HRESULT(hr)); + } + } + #endif + + return MA_SUCCESS; +} + +#ifdef MA_WIN32_DESKTOP +static ma_EDataFlow ma_device_type_to_EDataFlow(ma_device_type deviceType) +{ + if (deviceType == ma_device_type_playback) { + return ma_eRender; + } else if (deviceType == ma_device_type_capture) { + return ma_eCapture; + } else { + MA_ASSERT(MA_FALSE); + return ma_eRender; /* Should never hit this. */ + } +} + +static ma_result ma_context_create_IMMDeviceEnumerator__wasapi(ma_context* pContext, ma_IMMDeviceEnumerator** ppDeviceEnumerator) +{ + HRESULT hr; + ma_IMMDeviceEnumerator* pDeviceEnumerator; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppDeviceEnumerator != NULL); + + *ppDeviceEnumerator = NULL; /* Safety. */ + + hr = ma_CoCreateInstance(pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create device enumerator.", ma_result_from_HRESULT(hr)); + } + + *ppDeviceEnumerator = pDeviceEnumerator; + + return MA_SUCCESS; +} + +static LPWSTR ma_context_get_default_device_id_from_IMMDeviceEnumerator__wasapi(ma_context* pContext, ma_IMMDeviceEnumerator* pDeviceEnumerator, ma_device_type deviceType) +{ + HRESULT hr; + ma_IMMDevice* pMMDefaultDevice = NULL; + LPWSTR pDefaultDeviceID = NULL; + ma_EDataFlow dataFlow; + ma_ERole role; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDeviceEnumerator != NULL); + + (void)pContext; + + /* Grab the EDataFlow type from the device type. */ + dataFlow = ma_device_type_to_EDataFlow(deviceType); + + /* The role is always eConsole, but we may make this configurable later. */ + role = ma_eConsole; + + hr = ma_IMMDeviceEnumerator_GetDefaultAudioEndpoint(pDeviceEnumerator, dataFlow, role, &pMMDefaultDevice); + if (FAILED(hr)) { + return NULL; + } + + hr = ma_IMMDevice_GetId(pMMDefaultDevice, &pDefaultDeviceID); + + ma_IMMDevice_Release(pMMDefaultDevice); + pMMDefaultDevice = NULL; + + if (FAILED(hr)) { + return NULL; + } + + return pDefaultDeviceID; +} + +static LPWSTR ma_context_get_default_device_id__wasapi(ma_context* pContext, ma_device_type deviceType) /* Free the returned pointer with ma_CoTaskMemFree() */ +{ + ma_result result; + ma_IMMDeviceEnumerator* pDeviceEnumerator; + LPWSTR pDefaultDeviceID = NULL; + + MA_ASSERT(pContext != NULL); + + result = ma_context_create_IMMDeviceEnumerator__wasapi(pContext, &pDeviceEnumerator); + if (result != MA_SUCCESS) { + return NULL; + } + + pDefaultDeviceID = ma_context_get_default_device_id_from_IMMDeviceEnumerator__wasapi(pContext, pDeviceEnumerator, deviceType); + + ma_IMMDeviceEnumerator_Release(pDeviceEnumerator); + return pDefaultDeviceID; +} + +static ma_result ma_context_get_MMDevice__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_IMMDevice** ppMMDevice) +{ + ma_IMMDeviceEnumerator* pDeviceEnumerator; + HRESULT hr; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppMMDevice != NULL); + + hr = ma_CoCreateInstance(pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create IMMDeviceEnumerator.", ma_result_from_HRESULT(hr)); + } + + if (pDeviceID == NULL) { + hr = ma_IMMDeviceEnumerator_GetDefaultAudioEndpoint(pDeviceEnumerator, (deviceType == ma_device_type_capture) ? ma_eCapture : ma_eRender, ma_eConsole, ppMMDevice); + } else { + hr = ma_IMMDeviceEnumerator_GetDevice(pDeviceEnumerator, pDeviceID->wasapi, ppMMDevice); + } + + ma_IMMDeviceEnumerator_Release(pDeviceEnumerator); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve IMMDevice.", ma_result_from_HRESULT(hr)); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_id_from_MMDevice__wasapi(ma_context* pContext, ma_IMMDevice* pMMDevice, ma_device_id* pDeviceID) +{ + LPWSTR pDeviceIDString; + HRESULT hr; + + MA_ASSERT(pDeviceID != NULL); + + hr = ma_IMMDevice_GetId(pMMDevice, &pDeviceIDString); + if (SUCCEEDED(hr)) { + size_t idlen = wcslen(pDeviceIDString); + if (idlen+1 > ma_countof(pDeviceID->wasapi)) { + ma_CoTaskMemFree(pContext, pDeviceIDString); + MA_ASSERT(MA_FALSE); /* NOTE: If this is triggered, please report it. It means the format of the ID must haved change and is too long to fit in our fixed sized buffer. */ + return MA_ERROR; + } + + MA_COPY_MEMORY(pDeviceID->wasapi, pDeviceIDString, idlen * sizeof(wchar_t)); + pDeviceID->wasapi[idlen] = '\0'; + + ma_CoTaskMemFree(pContext, pDeviceIDString); + + return MA_SUCCESS; + } + + return MA_ERROR; +} + +static ma_result ma_context_get_device_info_from_MMDevice__wasapi(ma_context* pContext, ma_IMMDevice* pMMDevice, LPWSTR pDefaultDeviceID, ma_bool32 onlySimpleInfo, ma_device_info* pInfo) +{ + ma_result result; + HRESULT hr; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pMMDevice != NULL); + MA_ASSERT(pInfo != NULL); + + /* ID. */ + result = ma_context_get_device_id_from_MMDevice__wasapi(pContext, pMMDevice, &pInfo->id); + if (result == MA_SUCCESS) { + if (pDefaultDeviceID != NULL) { + if (wcscmp(pInfo->id.wasapi, pDefaultDeviceID) == 0) { + pInfo->isDefault = MA_TRUE; + } + } + } + + /* Description / Friendly Name */ + { + ma_IPropertyStore *pProperties; + hr = ma_IMMDevice_OpenPropertyStore(pMMDevice, STGM_READ, &pProperties); + if (SUCCEEDED(hr)) { + PROPVARIANT var; + + ma_PropVariantInit(&var); + hr = ma_IPropertyStore_GetValue(pProperties, &MA_PKEY_Device_FriendlyName, &var); + if (SUCCEEDED(hr)) { + WideCharToMultiByte(CP_UTF8, 0, var.pwszVal, -1, pInfo->name, sizeof(pInfo->name), 0, FALSE); + ma_PropVariantClear(pContext, &var); + } + + ma_IPropertyStore_Release(pProperties); + } + } + + /* Format */ + if (!onlySimpleInfo) { + ma_IAudioClient* pAudioClient; + hr = ma_IMMDevice_Activate(pMMDevice, &MA_IID_IAudioClient, CLSCTX_ALL, NULL, (void**)&pAudioClient); + if (SUCCEEDED(hr)) { + result = ma_context_get_device_info_from_IAudioClient__wasapi(pContext, pMMDevice, pAudioClient, pInfo); + + ma_IAudioClient_Release(pAudioClient); + return result; + } else { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to activate audio client for device info retrieval.", ma_result_from_HRESULT(hr)); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_context_enumerate_devices_by_type__wasapi(ma_context* pContext, ma_IMMDeviceEnumerator* pDeviceEnumerator, ma_device_type deviceType, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_result result = MA_SUCCESS; + UINT deviceCount; + HRESULT hr; + ma_uint32 iDevice; + LPWSTR pDefaultDeviceID = NULL; + ma_IMMDeviceCollection* pDeviceCollection = NULL; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* Grab the default device. We use this to know whether or not flag the returned device info as being the default. */ + pDefaultDeviceID = ma_context_get_default_device_id_from_IMMDeviceEnumerator__wasapi(pContext, pDeviceEnumerator, deviceType); + + /* We need to enumerate the devices which returns a device collection. */ + hr = ma_IMMDeviceEnumerator_EnumAudioEndpoints(pDeviceEnumerator, ma_device_type_to_EDataFlow(deviceType), MA_MM_DEVICE_STATE_ACTIVE, &pDeviceCollection); + if (SUCCEEDED(hr)) { + hr = ma_IMMDeviceCollection_GetCount(pDeviceCollection, &deviceCount); + if (FAILED(hr)) { + result = ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to get device count.", ma_result_from_HRESULT(hr)); + goto done; + } + + for (iDevice = 0; iDevice < deviceCount; ++iDevice) { + ma_device_info deviceInfo; + ma_IMMDevice* pMMDevice; + + MA_ZERO_OBJECT(&deviceInfo); + + hr = ma_IMMDeviceCollection_Item(pDeviceCollection, iDevice, &pMMDevice); + if (SUCCEEDED(hr)) { + result = ma_context_get_device_info_from_MMDevice__wasapi(pContext, pMMDevice, pDefaultDeviceID, MA_TRUE, &deviceInfo); /* MA_TRUE = onlySimpleInfo. */ + + ma_IMMDevice_Release(pMMDevice); + if (result == MA_SUCCESS) { + ma_bool32 cbResult = callback(pContext, deviceType, &deviceInfo, pUserData); + if (cbResult == MA_FALSE) { + break; + } + } + } + } + } + +done: + if (pDefaultDeviceID != NULL) { + ma_CoTaskMemFree(pContext, pDefaultDeviceID); + pDefaultDeviceID = NULL; + } + + if (pDeviceCollection != NULL) { + ma_IMMDeviceCollection_Release(pDeviceCollection); + pDeviceCollection = NULL; + } + + return result; +} + +static ma_result ma_context_get_IAudioClient_Desktop__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_IAudioClient** ppAudioClient, ma_IMMDevice** ppMMDevice) +{ + ma_result result; + HRESULT hr; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppAudioClient != NULL); + MA_ASSERT(ppMMDevice != NULL); + + result = ma_context_get_MMDevice__wasapi(pContext, deviceType, pDeviceID, ppMMDevice); + if (result != MA_SUCCESS) { + return result; + } + + hr = ma_IMMDevice_Activate(*ppMMDevice, &MA_IID_IAudioClient, CLSCTX_ALL, NULL, (void**)ppAudioClient); + if (FAILED(hr)) { + return ma_result_from_HRESULT(hr); + } + + return MA_SUCCESS; +} +#else +static ma_result ma_context_get_IAudioClient_UWP__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_IAudioClient** ppAudioClient, ma_IUnknown** ppActivatedInterface) +{ + ma_IActivateAudioInterfaceAsyncOperation *pAsyncOp = NULL; + ma_completion_handler_uwp completionHandler; + IID iid; + LPOLESTR iidStr; + HRESULT hr; + ma_result result; + HRESULT activateResult; + ma_IUnknown* pActivatedInterface; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppAudioClient != NULL); + + if (pDeviceID != NULL) { + MA_COPY_MEMORY(&iid, pDeviceID->wasapi, sizeof(iid)); + } else { + if (deviceType == ma_device_type_playback) { + iid = MA_IID_DEVINTERFACE_AUDIO_RENDER; + } else { + iid = MA_IID_DEVINTERFACE_AUDIO_CAPTURE; + } + } + +#if defined(__cplusplus) + hr = StringFromIID(iid, &iidStr); +#else + hr = StringFromIID(&iid, &iidStr); +#endif + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to convert device IID to string for ActivateAudioInterfaceAsync(). Out of memory.", ma_result_from_HRESULT(hr)); + } + + result = ma_completion_handler_uwp_init(&completionHandler); + if (result != MA_SUCCESS) { + ma_CoTaskMemFree(pContext, iidStr); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create event for waiting for ActivateAudioInterfaceAsync().", result); + } + +#if defined(__cplusplus) + hr = ActivateAudioInterfaceAsync(iidStr, MA_IID_IAudioClient, NULL, (IActivateAudioInterfaceCompletionHandler*)&completionHandler, (IActivateAudioInterfaceAsyncOperation**)&pAsyncOp); +#else + hr = ActivateAudioInterfaceAsync(iidStr, &MA_IID_IAudioClient, NULL, (IActivateAudioInterfaceCompletionHandler*)&completionHandler, (IActivateAudioInterfaceAsyncOperation**)&pAsyncOp); +#endif + if (FAILED(hr)) { + ma_completion_handler_uwp_uninit(&completionHandler); + ma_CoTaskMemFree(pContext, iidStr); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] ActivateAudioInterfaceAsync() failed.", ma_result_from_HRESULT(hr)); + } + + ma_CoTaskMemFree(pContext, iidStr); + + /* Wait for the async operation for finish. */ + ma_completion_handler_uwp_wait(&completionHandler); + ma_completion_handler_uwp_uninit(&completionHandler); + + hr = ma_IActivateAudioInterfaceAsyncOperation_GetActivateResult(pAsyncOp, &activateResult, &pActivatedInterface); + ma_IActivateAudioInterfaceAsyncOperation_Release(pAsyncOp); + + if (FAILED(hr) || FAILED(activateResult)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to activate device.", FAILED(hr) ? ma_result_from_HRESULT(hr) : ma_result_from_HRESULT(activateResult)); + } + + /* Here is where we grab the IAudioClient interface. */ + hr = ma_IUnknown_QueryInterface(pActivatedInterface, &MA_IID_IAudioClient, (void**)ppAudioClient); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to query IAudioClient interface.", ma_result_from_HRESULT(hr)); + } + + if (ppActivatedInterface) { + *ppActivatedInterface = pActivatedInterface; + } else { + ma_IUnknown_Release(pActivatedInterface); + } + + return MA_SUCCESS; +} +#endif + +static ma_result ma_context_get_IAudioClient__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_IAudioClient** ppAudioClient, ma_WASAPIDeviceInterface** ppDeviceInterface) +{ +#ifdef MA_WIN32_DESKTOP + return ma_context_get_IAudioClient_Desktop__wasapi(pContext, deviceType, pDeviceID, ppAudioClient, ppDeviceInterface); +#else + return ma_context_get_IAudioClient_UWP__wasapi(pContext, deviceType, pDeviceID, ppAudioClient, ppDeviceInterface); +#endif +} + + +static ma_result ma_context_enumerate_devices__wasapi(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + /* Different enumeration for desktop and UWP. */ +#ifdef MA_WIN32_DESKTOP + /* Desktop */ + HRESULT hr; + ma_IMMDeviceEnumerator* pDeviceEnumerator; + + hr = ma_CoCreateInstance(pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create device enumerator.", ma_result_from_HRESULT(hr)); + } + + ma_context_enumerate_devices_by_type__wasapi(pContext, pDeviceEnumerator, ma_device_type_playback, callback, pUserData); + ma_context_enumerate_devices_by_type__wasapi(pContext, pDeviceEnumerator, ma_device_type_capture, callback, pUserData); + + ma_IMMDeviceEnumerator_Release(pDeviceEnumerator); +#else + /* + UWP + + The MMDevice API is only supported on desktop applications. For now, while I'm still figuring out how to properly enumerate + over devices without using MMDevice, I'm restricting devices to defaults. + + Hint: DeviceInformation::FindAllAsync() with DeviceClass.AudioCapture/AudioRender. https://blogs.windows.com/buildingapps/2014/05/15/real-time-audio-in-windows-store-and-windows-phone-apps/ + */ + if (callback) { + ma_bool32 cbResult = MA_TRUE; + + /* Playback. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + deviceInfo.isDefault = MA_TRUE; + cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + + /* Capture. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + deviceInfo.isDefault = MA_TRUE; + cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + } +#endif + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ +#ifdef MA_WIN32_DESKTOP + ma_result result; + ma_IMMDevice* pMMDevice = NULL; + LPWSTR pDefaultDeviceID = NULL; + + result = ma_context_get_MMDevice__wasapi(pContext, deviceType, pDeviceID, &pMMDevice); + if (result != MA_SUCCESS) { + return result; + } + + /* We need the default device ID so we can set the isDefault flag in the device info. */ + pDefaultDeviceID = ma_context_get_default_device_id__wasapi(pContext, deviceType); + + result = ma_context_get_device_info_from_MMDevice__wasapi(pContext, pMMDevice, pDefaultDeviceID, MA_FALSE, pDeviceInfo); /* MA_FALSE = !onlySimpleInfo. */ + + if (pDefaultDeviceID != NULL) { + ma_CoTaskMemFree(pContext, pDefaultDeviceID); + pDefaultDeviceID = NULL; + } + + ma_IMMDevice_Release(pMMDevice); + + return result; +#else + ma_IAudioClient* pAudioClient; + ma_result result; + + /* UWP currently only uses default devices. */ + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + + result = ma_context_get_IAudioClient_UWP__wasapi(pContext, deviceType, pDeviceID, &pAudioClient, NULL); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_context_get_device_info_from_IAudioClient__wasapi(pContext, NULL, pAudioClient, pDeviceInfo); + + pDeviceInfo->isDefault = MA_TRUE; /* UWP only supports default devices. */ + + ma_IAudioClient_Release(pAudioClient); + return result; +#endif +} + +static ma_result ma_device_uninit__wasapi(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + +#ifdef MA_WIN32_DESKTOP + if (pDevice->wasapi.pDeviceEnumerator) { + ((ma_IMMDeviceEnumerator*)pDevice->wasapi.pDeviceEnumerator)->lpVtbl->UnregisterEndpointNotificationCallback((ma_IMMDeviceEnumerator*)pDevice->wasapi.pDeviceEnumerator, &pDevice->wasapi.notificationClient); + ma_IMMDeviceEnumerator_Release((ma_IMMDeviceEnumerator*)pDevice->wasapi.pDeviceEnumerator); + } +#endif + + if (pDevice->wasapi.pRenderClient) { + ma_IAudioRenderClient_Release((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient); + } + if (pDevice->wasapi.pCaptureClient) { + ma_IAudioCaptureClient_Release((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient); + } + + if (pDevice->wasapi.pAudioClientPlayback) { + ma_IAudioClient_Release((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); + } + if (pDevice->wasapi.pAudioClientCapture) { + ma_IAudioClient_Release((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + } + + if (pDevice->wasapi.hEventPlayback) { + CloseHandle(pDevice->wasapi.hEventPlayback); + } + if (pDevice->wasapi.hEventCapture) { + CloseHandle(pDevice->wasapi.hEventCapture); + } + + return MA_SUCCESS; +} + + +typedef struct +{ + /* Input. */ + ma_format formatIn; + ma_uint32 channelsIn; + ma_uint32 sampleRateIn; + ma_channel channelMapIn[MA_MAX_CHANNELS]; + ma_uint32 periodSizeInFramesIn; + ma_uint32 periodSizeInMillisecondsIn; + ma_uint32 periodsIn; + ma_share_mode shareMode; + ma_performance_profile performanceProfile; + ma_bool32 noAutoConvertSRC; + ma_bool32 noDefaultQualitySRC; + ma_bool32 noHardwareOffloading; + + /* Output. */ + ma_IAudioClient* pAudioClient; + ma_IAudioRenderClient* pRenderClient; + ma_IAudioCaptureClient* pCaptureClient; + ma_format formatOut; + ma_uint32 channelsOut; + ma_uint32 sampleRateOut; + ma_channel channelMapOut[MA_MAX_CHANNELS]; + ma_uint32 periodSizeInFramesOut; + ma_uint32 periodsOut; + ma_bool32 usingAudioClient3; + char deviceName[256]; + ma_device_id id; +} ma_device_init_internal_data__wasapi; + +static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_init_internal_data__wasapi* pData) +{ + HRESULT hr; + ma_result result = MA_SUCCESS; + const char* errorMsg = ""; + MA_AUDCLNT_SHAREMODE shareMode = MA_AUDCLNT_SHAREMODE_SHARED; + DWORD streamFlags = 0; + MA_REFERENCE_TIME periodDurationInMicroseconds; + ma_bool32 wasInitializedUsingIAudioClient3 = MA_FALSE; + WAVEFORMATEXTENSIBLE wf; + ma_WASAPIDeviceInterface* pDeviceInterface = NULL; + ma_IAudioClient2* pAudioClient2; + ma_uint32 nativeSampleRate; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pData != NULL); + + /* This function is only used to initialize one device type: either playback, capture or loopback. Never full-duplex. */ + if (deviceType == ma_device_type_duplex) { + return MA_INVALID_ARGS; + } + + pData->pAudioClient = NULL; + pData->pRenderClient = NULL; + pData->pCaptureClient = NULL; + + streamFlags = MA_AUDCLNT_STREAMFLAGS_EVENTCALLBACK; + if (!pData->noAutoConvertSRC && pData->sampleRateIn != 0 && pData->shareMode != ma_share_mode_exclusive) { /* <-- Exclusive streams must use the native sample rate. */ + streamFlags |= MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM; + } + if (!pData->noDefaultQualitySRC && pData->sampleRateIn != 0 && (streamFlags & MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM) != 0) { + streamFlags |= MA_AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY; + } + if (deviceType == ma_device_type_loopback) { + streamFlags |= MA_AUDCLNT_STREAMFLAGS_LOOPBACK; + } + + result = ma_context_get_IAudioClient__wasapi(pContext, deviceType, pDeviceID, &pData->pAudioClient, &pDeviceInterface); + if (result != MA_SUCCESS) { + goto done; + } + + MA_ZERO_OBJECT(&wf); + + /* Try enabling hardware offloading. */ + if (!pData->noHardwareOffloading) { + hr = ma_IAudioClient_QueryInterface(pData->pAudioClient, &MA_IID_IAudioClient2, (void**)&pAudioClient2); + if (SUCCEEDED(hr)) { + BOOL isHardwareOffloadingSupported = 0; + hr = ma_IAudioClient2_IsOffloadCapable(pAudioClient2, MA_AudioCategory_Other, &isHardwareOffloadingSupported); + if (SUCCEEDED(hr) && isHardwareOffloadingSupported) { + ma_AudioClientProperties clientProperties; + MA_ZERO_OBJECT(&clientProperties); + clientProperties.cbSize = sizeof(clientProperties); + clientProperties.bIsOffload = 1; + clientProperties.eCategory = MA_AudioCategory_Other; + ma_IAudioClient2_SetClientProperties(pAudioClient2, &clientProperties); + } + + pAudioClient2->lpVtbl->Release(pAudioClient2); + } + } + + /* Here is where we try to determine the best format to use with the device. If the client if wanting exclusive mode, first try finding the best format for that. If this fails, fall back to shared mode. */ + result = MA_FORMAT_NOT_SUPPORTED; + if (pData->shareMode == ma_share_mode_exclusive) { + #ifdef MA_WIN32_DESKTOP + /* In exclusive mode on desktop we always use the backend's native format. */ + ma_IPropertyStore* pStore = NULL; + hr = ma_IMMDevice_OpenPropertyStore(pDeviceInterface, STGM_READ, &pStore); + if (SUCCEEDED(hr)) { + PROPVARIANT prop; + ma_PropVariantInit(&prop); + hr = ma_IPropertyStore_GetValue(pStore, &MA_PKEY_AudioEngine_DeviceFormat, &prop); + if (SUCCEEDED(hr)) { + WAVEFORMATEX* pActualFormat = (WAVEFORMATEX*)prop.blob.pBlobData; + hr = ma_IAudioClient_IsFormatSupported((ma_IAudioClient*)pData->pAudioClient, MA_AUDCLNT_SHAREMODE_EXCLUSIVE, pActualFormat, NULL); + if (SUCCEEDED(hr)) { + MA_COPY_MEMORY(&wf, pActualFormat, sizeof(WAVEFORMATEXTENSIBLE)); + } + + ma_PropVariantClear(pContext, &prop); + } + + ma_IPropertyStore_Release(pStore); + } + #else + /* + I do not know how to query the device's native format on UWP so for now I'm just disabling support for + exclusive mode. The alternative is to enumerate over different formats and check IsFormatSupported() + until you find one that works. + + TODO: Add support for exclusive mode to UWP. + */ + hr = S_FALSE; + #endif + + if (hr == S_OK) { + shareMode = MA_AUDCLNT_SHAREMODE_EXCLUSIVE; + result = MA_SUCCESS; + } else { + result = MA_SHARE_MODE_NOT_SUPPORTED; + } + } else { + /* In shared mode we are always using the format reported by the operating system. */ + WAVEFORMATEXTENSIBLE* pNativeFormat = NULL; + hr = ma_IAudioClient_GetMixFormat((ma_IAudioClient*)pData->pAudioClient, (WAVEFORMATEX**)&pNativeFormat); + if (hr != S_OK) { + result = MA_FORMAT_NOT_SUPPORTED; + } else { + MA_COPY_MEMORY(&wf, pNativeFormat, sizeof(wf)); + result = MA_SUCCESS; + } + + ma_CoTaskMemFree(pContext, pNativeFormat); + + shareMode = MA_AUDCLNT_SHAREMODE_SHARED; + } + + /* Return an error if we still haven't found a format. */ + if (result != MA_SUCCESS) { + errorMsg = "[WASAPI] Failed to find best device mix format."; + goto done; + } + + /* + Override the native sample rate with the one requested by the caller, but only if we're not using the default sample rate. We'll use + WASAPI to perform the sample rate conversion. + */ + nativeSampleRate = wf.Format.nSamplesPerSec; + if (streamFlags & MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM) { + wf.Format.nSamplesPerSec = (pData->sampleRateIn != 0) ? pData->sampleRateIn : MA_DEFAULT_SAMPLE_RATE; + wf.Format.nAvgBytesPerSec = wf.Format.nSamplesPerSec * wf.Format.nBlockAlign; + } + + pData->formatOut = ma_format_from_WAVEFORMATEX((WAVEFORMATEX*)&wf); + if (pData->formatOut == ma_format_unknown) { + /* + The format isn't supported. This is almost certainly because the exclusive mode format isn't supported by miniaudio. We need to return MA_SHARE_MODE_NOT_SUPPORTED + in this case so that the caller can detect it and fall back to shared mode if desired. We should never get here if shared mode was requested, but just for + completeness we'll check for it and return MA_FORMAT_NOT_SUPPORTED. + */ + if (shareMode == MA_AUDCLNT_SHAREMODE_EXCLUSIVE) { + result = MA_SHARE_MODE_NOT_SUPPORTED; + } else { + result = MA_FORMAT_NOT_SUPPORTED; + } + + errorMsg = "[WASAPI] Native format not supported."; + goto done; + } + + pData->channelsOut = wf.Format.nChannels; + pData->sampleRateOut = wf.Format.nSamplesPerSec; + + /* Get the internal channel map based on the channel mask. */ + ma_channel_mask_to_channel_map__win32(wf.dwChannelMask, pData->channelsOut, pData->channelMapOut); + + /* Period size. */ + pData->periodsOut = (pData->periodsIn != 0) ? pData->periodsIn : MA_DEFAULT_PERIODS; + pData->periodSizeInFramesOut = pData->periodSizeInFramesIn; + if (pData->periodSizeInFramesOut == 0) { + if (pData->periodSizeInMillisecondsIn == 0) { + if (pData->performanceProfile == ma_performance_profile_low_latency) { + pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY, wf.Format.nSamplesPerSec); + } else { + pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE, wf.Format.nSamplesPerSec); + } + } else { + pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(pData->periodSizeInMillisecondsIn, wf.Format.nSamplesPerSec); + } + } + + periodDurationInMicroseconds = ((ma_uint64)pData->periodSizeInFramesOut * 1000 * 1000) / wf.Format.nSamplesPerSec; + + + /* Slightly different initialization for shared and exclusive modes. We try exclusive mode first, and if it fails, fall back to shared mode. */ + if (shareMode == MA_AUDCLNT_SHAREMODE_EXCLUSIVE) { + MA_REFERENCE_TIME bufferDuration = periodDurationInMicroseconds * 10; + + /* + If the periodicy is too small, Initialize() will fail with AUDCLNT_E_INVALID_DEVICE_PERIOD. In this case we should just keep increasing + it and trying it again. + */ + hr = E_FAIL; + for (;;) { + hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, bufferDuration, (WAVEFORMATEX*)&wf, NULL); + if (hr == MA_AUDCLNT_E_INVALID_DEVICE_PERIOD) { + if (bufferDuration > 500*10000) { + break; + } else { + if (bufferDuration == 0) { /* <-- Just a sanity check to prevent an infinit loop. Should never happen, but it makes me feel better. */ + break; + } + + bufferDuration = bufferDuration * 2; + continue; + } + } else { + break; + } + } + + if (hr == MA_AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED) { + ma_uint32 bufferSizeInFrames; + hr = ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pData->pAudioClient, &bufferSizeInFrames); + if (SUCCEEDED(hr)) { + bufferDuration = (MA_REFERENCE_TIME)((10000.0 * 1000 / wf.Format.nSamplesPerSec * bufferSizeInFrames) + 0.5); + + /* Unfortunately we need to release and re-acquire the audio client according to MSDN. Seems silly - why not just call IAudioClient_Initialize() again?! */ + ma_IAudioClient_Release((ma_IAudioClient*)pData->pAudioClient); + + #ifdef MA_WIN32_DESKTOP + hr = ma_IMMDevice_Activate(pDeviceInterface, &MA_IID_IAudioClient, CLSCTX_ALL, NULL, (void**)&pData->pAudioClient); + #else + hr = ma_IUnknown_QueryInterface(pDeviceInterface, &MA_IID_IAudioClient, (void**)&pData->pAudioClient); + #endif + + if (SUCCEEDED(hr)) { + hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, bufferDuration, (WAVEFORMATEX*)&wf, NULL); + } + } + } + + if (FAILED(hr)) { + /* Failed to initialize in exclusive mode. Don't fall back to shared mode - instead tell the client about it. They can reinitialize in shared mode if they want. */ + if (hr == E_ACCESSDENIED) { + errorMsg = "[WASAPI] Failed to initialize device in exclusive mode. Access denied.", result = MA_ACCESS_DENIED; + } else if (hr == MA_AUDCLNT_E_DEVICE_IN_USE) { + errorMsg = "[WASAPI] Failed to initialize device in exclusive mode. Device in use.", result = MA_BUSY; + } else { + errorMsg = "[WASAPI] Failed to initialize device in exclusive mode."; result = ma_result_from_HRESULT(hr); + } + goto done; + } + } + + if (shareMode == MA_AUDCLNT_SHAREMODE_SHARED) { + /* + Low latency shared mode via IAudioClient3. + + NOTE + ==== + Contrary to the documentation on MSDN (https://docs.microsoft.com/en-us/windows/win32/api/audioclient/nf-audioclient-iaudioclient3-initializesharedaudiostream), the + use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM and AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY with IAudioClient3_InitializeSharedAudioStream() absolutely does not work. Using + any of these flags will result in HRESULT code 0x88890021. The other problem is that calling IAudioClient3_GetSharedModeEnginePeriod() with a sample rate different to + that returned by IAudioClient_GetMixFormat() also results in an error. I'm therefore disabling low-latency shared mode with AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. + */ +#ifndef MA_WASAPI_NO_LOW_LATENCY_SHARED_MODE + if ((streamFlags & MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM) == 0 || nativeSampleRate == wf.Format.nSamplesPerSec) { + ma_IAudioClient3* pAudioClient3 = NULL; + hr = ma_IAudioClient_QueryInterface(pData->pAudioClient, &MA_IID_IAudioClient3, (void**)&pAudioClient3); + if (SUCCEEDED(hr)) { + ma_uint32 defaultPeriodInFrames; + ma_uint32 fundamentalPeriodInFrames; + ma_uint32 minPeriodInFrames; + ma_uint32 maxPeriodInFrames; + hr = ma_IAudioClient3_GetSharedModeEnginePeriod(pAudioClient3, (WAVEFORMATEX*)&wf, &defaultPeriodInFrames, &fundamentalPeriodInFrames, &minPeriodInFrames, &maxPeriodInFrames); + if (SUCCEEDED(hr)) { + ma_uint32 desiredPeriodInFrames = pData->periodSizeInFramesOut; + ma_uint32 actualPeriodInFrames = desiredPeriodInFrames; + + /* Make sure the period size is a multiple of fundamentalPeriodInFrames. */ + actualPeriodInFrames = actualPeriodInFrames / fundamentalPeriodInFrames; + actualPeriodInFrames = actualPeriodInFrames * fundamentalPeriodInFrames; + + /* The period needs to be clamped between minPeriodInFrames and maxPeriodInFrames. */ + actualPeriodInFrames = ma_clamp(actualPeriodInFrames, minPeriodInFrames, maxPeriodInFrames); + + #if defined(MA_DEBUG_OUTPUT) + printf("[WASAPI] Trying IAudioClient3_InitializeSharedAudioStream(actualPeriodInFrames=%d)\n", actualPeriodInFrames); + printf(" defaultPeriodInFrames=%d\n", defaultPeriodInFrames); + printf(" fundamentalPeriodInFrames=%d\n", fundamentalPeriodInFrames); + printf(" minPeriodInFrames=%d\n", minPeriodInFrames); + printf(" maxPeriodInFrames=%d\n", maxPeriodInFrames); + #endif + + /* If the client requested a largish buffer than we don't actually want to use low latency shared mode because it forces small buffers. */ + if (actualPeriodInFrames >= desiredPeriodInFrames) { + /* + MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | MA_AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY must not be in the stream flags. If either of these are specified, + IAudioClient3_InitializeSharedAudioStream() will fail. + */ + hr = ma_IAudioClient3_InitializeSharedAudioStream(pAudioClient3, streamFlags & ~(MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | MA_AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY), actualPeriodInFrames, (WAVEFORMATEX*)&wf, NULL); + if (SUCCEEDED(hr)) { + wasInitializedUsingIAudioClient3 = MA_TRUE; + pData->periodSizeInFramesOut = actualPeriodInFrames; + #if defined(MA_DEBUG_OUTPUT) + printf("[WASAPI] Using IAudioClient3\n"); + printf(" periodSizeInFramesOut=%d\n", pData->periodSizeInFramesOut); + #endif + } else { + #if defined(MA_DEBUG_OUTPUT) + printf("[WASAPI] IAudioClient3_InitializeSharedAudioStream failed. Falling back to IAudioClient.\n"); + #endif + } + } else { + #if defined(MA_DEBUG_OUTPUT) + printf("[WASAPI] Not using IAudioClient3 because the desired period size is larger than the maximum supported by IAudioClient3.\n"); + #endif + } + } else { + #if defined(MA_DEBUG_OUTPUT) + printf("[WASAPI] IAudioClient3_GetSharedModeEnginePeriod failed. Falling back to IAudioClient.\n"); + #endif + } + + ma_IAudioClient3_Release(pAudioClient3); + pAudioClient3 = NULL; + } + } +#else + #if defined(MA_DEBUG_OUTPUT) + printf("[WASAPI] Not using IAudioClient3 because MA_WASAPI_NO_LOW_LATENCY_SHARED_MODE is enabled.\n"); + #endif +#endif + + /* If we don't have an IAudioClient3 then we need to use the normal initialization routine. */ + if (!wasInitializedUsingIAudioClient3) { + MA_REFERENCE_TIME bufferDuration = periodDurationInMicroseconds * pData->periodsOut * 10; /* <-- Multiply by 10 for microseconds to 100-nanoseconds. */ + hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, 0, (WAVEFORMATEX*)&wf, NULL); + if (FAILED(hr)) { + if (hr == E_ACCESSDENIED) { + errorMsg = "[WASAPI] Failed to initialize device. Access denied.", result = MA_ACCESS_DENIED; + } else if (hr == MA_AUDCLNT_E_DEVICE_IN_USE) { + errorMsg = "[WASAPI] Failed to initialize device. Device in use.", result = MA_BUSY; + } else { + errorMsg = "[WASAPI] Failed to initialize device.", result = ma_result_from_HRESULT(hr); + } + + goto done; + } + } + } + + if (!wasInitializedUsingIAudioClient3) { + ma_uint32 bufferSizeInFrames; + hr = ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pData->pAudioClient, &bufferSizeInFrames); + if (FAILED(hr)) { + errorMsg = "[WASAPI] Failed to get audio client's actual buffer size.", result = ma_result_from_HRESULT(hr); + goto done; + } + + pData->periodSizeInFramesOut = bufferSizeInFrames / pData->periodsOut; + } + + pData->usingAudioClient3 = wasInitializedUsingIAudioClient3; + + + if (deviceType == ma_device_type_playback) { + result = ma_device_create_IAudioClient_service__wasapi(pContext, deviceType, (ma_IAudioClient*)pData->pAudioClient, (void**)&pData->pRenderClient); + } else { + result = ma_device_create_IAudioClient_service__wasapi(pContext, deviceType, (ma_IAudioClient*)pData->pAudioClient, (void**)&pData->pCaptureClient); + } + + /*if (FAILED(hr)) {*/ + if (result != MA_SUCCESS) { + errorMsg = "[WASAPI] Failed to get audio client service."; + goto done; + } + + + /* Grab the name of the device. */ + #ifdef MA_WIN32_DESKTOP + { + ma_IPropertyStore *pProperties; + hr = ma_IMMDevice_OpenPropertyStore(pDeviceInterface, STGM_READ, &pProperties); + if (SUCCEEDED(hr)) { + PROPVARIANT varName; + ma_PropVariantInit(&varName); + hr = ma_IPropertyStore_GetValue(pProperties, &MA_PKEY_Device_FriendlyName, &varName); + if (SUCCEEDED(hr)) { + WideCharToMultiByte(CP_UTF8, 0, varName.pwszVal, -1, pData->deviceName, sizeof(pData->deviceName), 0, FALSE); + ma_PropVariantClear(pContext, &varName); + } + + ma_IPropertyStore_Release(pProperties); + } + } + #endif + + /* + For the WASAPI backend we need to know the actual IDs of the device in order to do automatic + stream routing so that IDs can be compared and we can determine which device has been detached + and whether or not it matches with our ma_device. + */ + #ifdef MA_WIN32_DESKTOP + { + /* Desktop */ + ma_context_get_device_id_from_MMDevice__wasapi(pContext, pDeviceInterface, &pData->id); + } + #else + { + /* UWP */ + /* TODO: Implement me. Need to figure out how to get the ID of the default device. */ + } + #endif + +done: + /* Clean up. */ +#ifdef MA_WIN32_DESKTOP + if (pDeviceInterface != NULL) { + ma_IMMDevice_Release(pDeviceInterface); + } +#else + if (pDeviceInterface != NULL) { + ma_IUnknown_Release(pDeviceInterface); + } +#endif + + if (result != MA_SUCCESS) { + if (pData->pRenderClient) { + ma_IAudioRenderClient_Release((ma_IAudioRenderClient*)pData->pRenderClient); + pData->pRenderClient = NULL; + } + if (pData->pCaptureClient) { + ma_IAudioCaptureClient_Release((ma_IAudioCaptureClient*)pData->pCaptureClient); + pData->pCaptureClient = NULL; + } + if (pData->pAudioClient) { + ma_IAudioClient_Release((ma_IAudioClient*)pData->pAudioClient); + pData->pAudioClient = NULL; + } + + if (errorMsg != NULL && errorMsg[0] != '\0') { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, errorMsg, result); + } + + return result; + } else { + return MA_SUCCESS; + } +} + +static ma_result ma_device_reinit__wasapi(ma_device* pDevice, ma_device_type deviceType) +{ + ma_device_init_internal_data__wasapi data; + ma_result result; + + MA_ASSERT(pDevice != NULL); + + /* We only re-initialize the playback or capture device. Never a full-duplex device. */ + if (deviceType == ma_device_type_duplex) { + return MA_INVALID_ARGS; + } + + + /* + Before reinitializing the device we need to free the previous audio clients. + + There's a known memory leak here. We will be calling this from the routing change callback that + is fired by WASAPI. If we attempt to release the IAudioClient we will deadlock. In my opinion + this is a bug. I'm not sure what I need to do to handle this cleanly, but I think we'll probably + need some system where we post an event, but delay the execution of it until the callback has + returned. I'm not sure how to do this reliably, however. I have set up some infrastructure for + a command thread which might be useful for this. + */ + if (deviceType == ma_device_type_capture || deviceType == ma_device_type_loopback) { + if (pDevice->wasapi.pCaptureClient) { + ma_IAudioCaptureClient_Release((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient); + pDevice->wasapi.pCaptureClient = NULL; + } + + if (pDevice->wasapi.pAudioClientCapture) { + /*ma_device_release_IAudioClient_service__wasapi(pDevice, ma_device_type_capture);*/ + pDevice->wasapi.pAudioClientCapture = NULL; + } + } + + if (deviceType == ma_device_type_playback) { + if (pDevice->wasapi.pRenderClient) { + ma_IAudioRenderClient_Release((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient); + pDevice->wasapi.pRenderClient = NULL; + } + + if (pDevice->wasapi.pAudioClientPlayback) { + /*ma_device_release_IAudioClient_service__wasapi(pDevice, ma_device_type_playback);*/ + pDevice->wasapi.pAudioClientPlayback = NULL; + } + } + + + if (deviceType == ma_device_type_playback) { + data.formatIn = pDevice->playback.format; + data.channelsIn = pDevice->playback.channels; + MA_COPY_MEMORY(data.channelMapIn, pDevice->playback.channelMap, sizeof(pDevice->playback.channelMap)); + data.shareMode = pDevice->playback.shareMode; + } else { + data.formatIn = pDevice->capture.format; + data.channelsIn = pDevice->capture.channels; + MA_COPY_MEMORY(data.channelMapIn, pDevice->capture.channelMap, sizeof(pDevice->capture.channelMap)); + data.shareMode = pDevice->capture.shareMode; + } + + data.sampleRateIn = pDevice->sampleRate; + data.periodSizeInFramesIn = pDevice->wasapi.originalPeriodSizeInFrames; + data.periodSizeInMillisecondsIn = pDevice->wasapi.originalPeriodSizeInMilliseconds; + data.periodsIn = pDevice->wasapi.originalPeriods; + data.performanceProfile = pDevice->wasapi.originalPerformanceProfile; + data.noAutoConvertSRC = pDevice->wasapi.noAutoConvertSRC; + data.noDefaultQualitySRC = pDevice->wasapi.noDefaultQualitySRC; + data.noHardwareOffloading = pDevice->wasapi.noHardwareOffloading; + result = ma_device_init_internal__wasapi(pDevice->pContext, deviceType, NULL, &data); + if (result != MA_SUCCESS) { + return result; + } + + /* At this point we have some new objects ready to go. We need to uninitialize the previous ones and then set the new ones. */ + if (deviceType == ma_device_type_capture || deviceType == ma_device_type_loopback) { + pDevice->wasapi.pAudioClientCapture = data.pAudioClient; + pDevice->wasapi.pCaptureClient = data.pCaptureClient; + + pDevice->capture.internalFormat = data.formatOut; + pDevice->capture.internalChannels = data.channelsOut; + pDevice->capture.internalSampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDevice->capture.internalChannelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDevice->capture.internalPeriodSizeInFrames = data.periodSizeInFramesOut; + pDevice->capture.internalPeriods = data.periodsOut; + ma_strcpy_s(pDevice->capture.name, sizeof(pDevice->capture.name), data.deviceName); + + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, pDevice->wasapi.hEventCapture); + + pDevice->wasapi.periodSizeInFramesCapture = data.periodSizeInFramesOut; + ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, &pDevice->wasapi.actualPeriodSizeInFramesCapture); + + /* We must always have a valid ID. */ + ma_wcscpy_s(pDevice->capture.id.wasapi, sizeof(pDevice->capture.id.wasapi), data.id.wasapi); + } + + if (deviceType == ma_device_type_playback) { + pDevice->wasapi.pAudioClientPlayback = data.pAudioClient; + pDevice->wasapi.pRenderClient = data.pRenderClient; + + pDevice->playback.internalFormat = data.formatOut; + pDevice->playback.internalChannels = data.channelsOut; + pDevice->playback.internalSampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDevice->playback.internalChannelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDevice->playback.internalPeriodSizeInFrames = data.periodSizeInFramesOut; + pDevice->playback.internalPeriods = data.periodsOut; + ma_strcpy_s(pDevice->playback.name, sizeof(pDevice->playback.name), data.deviceName); + + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, pDevice->wasapi.hEventPlayback); + + pDevice->wasapi.periodSizeInFramesPlayback = data.periodSizeInFramesOut; + ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, &pDevice->wasapi.actualPeriodSizeInFramesPlayback); + + /* We must always have a valid ID. */ + ma_wcscpy_s(pDevice->playback.id.wasapi, sizeof(pDevice->playback.id.wasapi), data.id.wasapi); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + ma_result result = MA_SUCCESS; + +#ifdef MA_WIN32_DESKTOP + HRESULT hr; + ma_IMMDeviceEnumerator* pDeviceEnumerator; +#endif + + MA_ASSERT(pDevice != NULL); + + MA_ZERO_OBJECT(&pDevice->wasapi); + pDevice->wasapi.noAutoConvertSRC = pConfig->wasapi.noAutoConvertSRC; + pDevice->wasapi.noDefaultQualitySRC = pConfig->wasapi.noDefaultQualitySRC; + pDevice->wasapi.noHardwareOffloading = pConfig->wasapi.noHardwareOffloading; + + /* Exclusive mode is not allowed with loopback. */ + if (pConfig->deviceType == ma_device_type_loopback && pConfig->playback.shareMode == ma_share_mode_exclusive) { + return MA_INVALID_DEVICE_CONFIG; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex || pConfig->deviceType == ma_device_type_loopback) { + ma_device_init_internal_data__wasapi data; + data.formatIn = pDescriptorCapture->format; + data.channelsIn = pDescriptorCapture->channels; + data.sampleRateIn = pDescriptorCapture->sampleRate; + MA_COPY_MEMORY(data.channelMapIn, pDescriptorCapture->channelMap, sizeof(pDescriptorCapture->channelMap)); + data.periodSizeInFramesIn = pDescriptorCapture->periodSizeInFrames; + data.periodSizeInMillisecondsIn = pDescriptorCapture->periodSizeInMilliseconds; + data.periodsIn = pDescriptorCapture->periodCount; + data.shareMode = pDescriptorCapture->shareMode; + data.performanceProfile = pConfig->performanceProfile; + data.noAutoConvertSRC = pConfig->wasapi.noAutoConvertSRC; + data.noDefaultQualitySRC = pConfig->wasapi.noDefaultQualitySRC; + data.noHardwareOffloading = pConfig->wasapi.noHardwareOffloading; + + result = ma_device_init_internal__wasapi(pDevice->pContext, (pConfig->deviceType == ma_device_type_loopback) ? ma_device_type_loopback : ma_device_type_capture, pDescriptorCapture->pDeviceID, &data); + if (result != MA_SUCCESS) { + return result; + } + + pDevice->wasapi.pAudioClientCapture = data.pAudioClient; + pDevice->wasapi.pCaptureClient = data.pCaptureClient; + pDevice->wasapi.originalPeriodSizeInMilliseconds = pDescriptorCapture->periodSizeInMilliseconds; + pDevice->wasapi.originalPeriodSizeInFrames = pDescriptorCapture->periodSizeInFrames; + pDevice->wasapi.originalPeriods = pDescriptorCapture->periodCount; + pDevice->wasapi.originalPerformanceProfile = pConfig->performanceProfile; + + /* + The event for capture needs to be manual reset for the same reason as playback. We keep the initial state set to unsignaled, + however, because we want to block until we actually have something for the first call to ma_device_read(). + */ + pDevice->wasapi.hEventCapture = CreateEventW(NULL, FALSE, FALSE, NULL); /* Auto reset, unsignaled by default. */ + if (pDevice->wasapi.hEventCapture == NULL) { + result = ma_result_from_GetLastError(GetLastError()); + + if (pDevice->wasapi.pCaptureClient != NULL) { + ma_IAudioCaptureClient_Release((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient); + pDevice->wasapi.pCaptureClient = NULL; + } + if (pDevice->wasapi.pAudioClientCapture != NULL) { + ma_IAudioClient_Release((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + pDevice->wasapi.pAudioClientCapture = NULL; + } + + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create event for capture.", result); + } + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, pDevice->wasapi.hEventCapture); + + pDevice->wasapi.periodSizeInFramesCapture = data.periodSizeInFramesOut; + ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, &pDevice->wasapi.actualPeriodSizeInFramesCapture); + + /* We must always have a valid ID. */ + ma_wcscpy_s(pDevice->capture.id.wasapi, sizeof(pDevice->capture.id.wasapi), data.id.wasapi); + + /* The descriptor needs to be updated with actual values. */ + pDescriptorCapture->format = data.formatOut; + pDescriptorCapture->channels = data.channelsOut; + pDescriptorCapture->sampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDescriptorCapture->channelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDescriptorCapture->periodSizeInFrames = data.periodSizeInFramesOut; + pDescriptorCapture->periodCount = data.periodsOut; + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_device_init_internal_data__wasapi data; + data.formatIn = pDescriptorPlayback->format; + data.channelsIn = pDescriptorPlayback->channels; + data.sampleRateIn = pDescriptorPlayback->sampleRate; + MA_COPY_MEMORY(data.channelMapIn, pDescriptorPlayback->channelMap, sizeof(pDescriptorPlayback->channelMap)); + data.periodSizeInFramesIn = pDescriptorPlayback->periodSizeInFrames; + data.periodSizeInMillisecondsIn = pDescriptorPlayback->periodSizeInMilliseconds; + data.periodsIn = pDescriptorPlayback->periodCount; + data.shareMode = pDescriptorPlayback->shareMode; + data.performanceProfile = pConfig->performanceProfile; + data.noAutoConvertSRC = pConfig->wasapi.noAutoConvertSRC; + data.noDefaultQualitySRC = pConfig->wasapi.noDefaultQualitySRC; + data.noHardwareOffloading = pConfig->wasapi.noHardwareOffloading; + + result = ma_device_init_internal__wasapi(pDevice->pContext, ma_device_type_playback, pDescriptorPlayback->pDeviceID, &data); + if (result != MA_SUCCESS) { + if (pConfig->deviceType == ma_device_type_duplex) { + if (pDevice->wasapi.pCaptureClient != NULL) { + ma_IAudioCaptureClient_Release((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient); + pDevice->wasapi.pCaptureClient = NULL; + } + if (pDevice->wasapi.pAudioClientCapture != NULL) { + ma_IAudioClient_Release((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + pDevice->wasapi.pAudioClientCapture = NULL; + } + + CloseHandle(pDevice->wasapi.hEventCapture); + pDevice->wasapi.hEventCapture = NULL; + } + return result; + } + + pDevice->wasapi.pAudioClientPlayback = data.pAudioClient; + pDevice->wasapi.pRenderClient = data.pRenderClient; + pDevice->wasapi.originalPeriodSizeInMilliseconds = pDescriptorPlayback->periodSizeInMilliseconds; + pDevice->wasapi.originalPeriodSizeInFrames = pDescriptorPlayback->periodSizeInFrames; + pDevice->wasapi.originalPeriods = pDescriptorPlayback->periodCount; + pDevice->wasapi.originalPerformanceProfile = pConfig->performanceProfile; + + /* + The event for playback is needs to be manual reset because we want to explicitly control the fact that it becomes signalled + only after the whole available space has been filled, never before. + + The playback event also needs to be initially set to a signaled state so that the first call to ma_device_write() is able + to get passed WaitForMultipleObjects(). + */ + pDevice->wasapi.hEventPlayback = CreateEventW(NULL, FALSE, TRUE, NULL); /* Auto reset, signaled by default. */ + if (pDevice->wasapi.hEventPlayback == NULL) { + result = ma_result_from_GetLastError(GetLastError()); + + if (pConfig->deviceType == ma_device_type_duplex) { + if (pDevice->wasapi.pCaptureClient != NULL) { + ma_IAudioCaptureClient_Release((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient); + pDevice->wasapi.pCaptureClient = NULL; + } + if (pDevice->wasapi.pAudioClientCapture != NULL) { + ma_IAudioClient_Release((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + pDevice->wasapi.pAudioClientCapture = NULL; + } + + CloseHandle(pDevice->wasapi.hEventCapture); + pDevice->wasapi.hEventCapture = NULL; + } + + if (pDevice->wasapi.pRenderClient != NULL) { + ma_IAudioRenderClient_Release((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient); + pDevice->wasapi.pRenderClient = NULL; + } + if (pDevice->wasapi.pAudioClientPlayback != NULL) { + ma_IAudioClient_Release((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); + pDevice->wasapi.pAudioClientPlayback = NULL; + } + + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create event for playback.", result); + } + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, pDevice->wasapi.hEventPlayback); + + pDevice->wasapi.periodSizeInFramesPlayback = data.periodSizeInFramesOut; + ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, &pDevice->wasapi.actualPeriodSizeInFramesPlayback); + + /* We must always have a valid ID. */ + ma_wcscpy_s(pDevice->playback.id.wasapi, sizeof(pDevice->playback.id.wasapi), data.id.wasapi); + + /* The descriptor needs to be updated with actual values. */ + pDescriptorPlayback->format = data.formatOut; + pDescriptorPlayback->channels = data.channelsOut; + pDescriptorPlayback->sampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDescriptorPlayback->channelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDescriptorPlayback->periodSizeInFrames = data.periodSizeInFramesOut; + pDescriptorPlayback->periodCount = data.periodsOut; + } + + /* + We need to register a notification client to detect when the device has been disabled, unplugged or re-routed (when the default device changes). When + we are connecting to the default device we want to do automatic stream routing when the device is disabled or unplugged. Otherwise we want to just + stop the device outright and let the application handle it. + */ +#ifdef MA_WIN32_DESKTOP + if (pConfig->wasapi.noAutoStreamRouting == MA_FALSE) { + if ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pConfig->capture.pDeviceID == NULL) { + pDevice->wasapi.allowCaptureAutoStreamRouting = MA_TRUE; + } + if ((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pConfig->playback.pDeviceID == NULL) { + pDevice->wasapi.allowPlaybackAutoStreamRouting = MA_TRUE; + } + } + + hr = ma_CoCreateInstance(pDevice->pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + if (FAILED(hr)) { + ma_device_uninit__wasapi(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create device enumerator.", ma_result_from_HRESULT(hr)); + } + + pDevice->wasapi.notificationClient.lpVtbl = (void*)&g_maNotificationCientVtbl; + pDevice->wasapi.notificationClient.counter = 1; + pDevice->wasapi.notificationClient.pDevice = pDevice; + + hr = pDeviceEnumerator->lpVtbl->RegisterEndpointNotificationCallback(pDeviceEnumerator, &pDevice->wasapi.notificationClient); + if (SUCCEEDED(hr)) { + pDevice->wasapi.pDeviceEnumerator = (ma_ptr)pDeviceEnumerator; + } else { + /* Not the end of the world if we fail to register the notification callback. We just won't support automatic stream routing. */ + ma_IMMDeviceEnumerator_Release(pDeviceEnumerator); + } +#endif + + c89atomic_exchange_32(&pDevice->wasapi.isStartedCapture, MA_FALSE); + c89atomic_exchange_32(&pDevice->wasapi.isStartedPlayback, MA_FALSE); + + return MA_SUCCESS; +} + +static ma_result ma_device__get_available_frames__wasapi(ma_device* pDevice, ma_IAudioClient* pAudioClient, ma_uint32* pFrameCount) +{ + ma_uint32 paddingFramesCount; + HRESULT hr; + ma_share_mode shareMode; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pFrameCount != NULL); + + *pFrameCount = 0; + + if ((ma_ptr)pAudioClient != pDevice->wasapi.pAudioClientPlayback && (ma_ptr)pAudioClient != pDevice->wasapi.pAudioClientCapture) { + return MA_INVALID_OPERATION; + } + + /* + I've had a report that GetCurrentPadding() is returning a frame count of 0 which is preventing + higher level function calls from doing anything because it thinks nothing is available. I have + taken a look at the documentation and it looks like this is unnecessary in exclusive mode. + + From Microsoft's documentation: + + For an exclusive-mode rendering or capture stream that was initialized with the + AUDCLNT_STREAMFLAGS_EVENTCALLBACK flag, the client typically has no use for the padding + value reported by GetCurrentPadding. Instead, the client accesses an entire buffer during + each processing pass. + + Considering this, I'm going to skip GetCurrentPadding() for exclusive mode and just report the + entire buffer. This depends on the caller making sure they wait on the event handler. + */ + shareMode = ((ma_ptr)pAudioClient == pDevice->wasapi.pAudioClientPlayback) ? pDevice->playback.shareMode : pDevice->capture.shareMode; + if (shareMode == ma_share_mode_shared) { + /* Shared mode. */ + hr = ma_IAudioClient_GetCurrentPadding(pAudioClient, &paddingFramesCount); + if (FAILED(hr)) { + return ma_result_from_HRESULT(hr); + } + + if ((ma_ptr)pAudioClient == pDevice->wasapi.pAudioClientPlayback) { + *pFrameCount = pDevice->wasapi.actualPeriodSizeInFramesPlayback - paddingFramesCount; + } else { + *pFrameCount = paddingFramesCount; + } + } else { + /* Exclusive mode. */ + if ((ma_ptr)pAudioClient == pDevice->wasapi.pAudioClientPlayback) { + *pFrameCount = pDevice->wasapi.actualPeriodSizeInFramesPlayback; + } else { + *pFrameCount = pDevice->wasapi.actualPeriodSizeInFramesCapture; + } + } + + return MA_SUCCESS; +} + + +static ma_result ma_device_reroute__wasapi(ma_device* pDevice, ma_device_type deviceType) +{ + ma_result result; + + if (deviceType == ma_device_type_duplex) { + return MA_INVALID_ARGS; + } + +#ifdef MA_DEBUG_OUTPUT + printf("=== CHANGING DEVICE ===\n"); +#endif + + result = ma_device_reinit__wasapi(pDevice, deviceType); + if (result != MA_SUCCESS) { + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Reinitializing device after route change failed.\n"); + #endif + return result; + } + + ma_device__post_init_setup(pDevice, deviceType); + + return MA_SUCCESS; +} + +static ma_result ma_device_start__wasapi(ma_device* pDevice) +{ + HRESULT hr; + + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { + hr = ma_IAudioClient_Start((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to start internal capture device.", ma_result_from_HRESULT(hr)); + } + + c89atomic_exchange_32(&pDevice->wasapi.isStartedCapture, MA_TRUE); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* No need to do anything for playback as that'll be started automatically in the data loop. */ + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__wasapi(ma_device* pDevice) +{ + ma_result result; + HRESULT hr; + + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { + hr = ma_IAudioClient_Stop((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to stop internal capture device.", ma_result_from_HRESULT(hr)); + } + + /* The audio client needs to be reset otherwise restarting will fail. */ + hr = ma_IAudioClient_Reset((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to reset internal capture device.", ma_result_from_HRESULT(hr)); + } + + c89atomic_exchange_32(&pDevice->wasapi.isStartedCapture, MA_FALSE); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* + The buffer needs to be drained before stopping the device. Not doing this will result in the last few frames not getting output to + the speakers. This is a problem for very short sounds because it'll result in a significant portion of it not getting played. + */ + if (c89atomic_load_32(&pDevice->wasapi.isStartedPlayback)) { + /* We need to make sure we put a timeout here or else we'll risk getting stuck in a deadlock in some cases. */ + DWORD waitTime = pDevice->wasapi.actualPeriodSizeInFramesPlayback / pDevice->playback.internalSampleRate; + + if (pDevice->playback.shareMode == ma_share_mode_exclusive) { + WaitForSingleObject(pDevice->wasapi.hEventPlayback, waitTime); + } else { + ma_uint32 prevFramesAvaialablePlayback = (ma_uint32)-1; + ma_uint32 framesAvailablePlayback; + for (;;) { + result = ma_device__get_available_frames__wasapi(pDevice, (ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, &framesAvailablePlayback); + if (result != MA_SUCCESS) { + break; + } + + if (framesAvailablePlayback >= pDevice->wasapi.actualPeriodSizeInFramesPlayback) { + break; + } + + /* + Just a safety check to avoid an infinite loop. If this iteration results in a situation where the number of available frames + has not changed, get out of the loop. I don't think this should ever happen, but I think it's nice to have just in case. + */ + if (framesAvailablePlayback == prevFramesAvaialablePlayback) { + break; + } + prevFramesAvaialablePlayback = framesAvailablePlayback; + + WaitForSingleObject(pDevice->wasapi.hEventPlayback, waitTime); + ResetEvent(pDevice->wasapi.hEventPlayback); /* Manual reset. */ + } + } + } + + hr = ma_IAudioClient_Stop((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to stop internal playback device.", ma_result_from_HRESULT(hr)); + } + + /* The audio client needs to be reset otherwise restarting will fail. */ + hr = ma_IAudioClient_Reset((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to reset internal playback device.", ma_result_from_HRESULT(hr)); + } + + c89atomic_exchange_32(&pDevice->wasapi.isStartedPlayback, MA_FALSE); + } + + return MA_SUCCESS; +} + + +#ifndef MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS +#define MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS 5000 +#endif + +static ma_result ma_device_data_loop__wasapi(ma_device* pDevice) +{ + ma_result result; + HRESULT hr; + ma_bool32 exitLoop = MA_FALSE; + ma_uint32 framesWrittenToPlaybackDevice = 0; + ma_uint32 mappedDeviceBufferSizeInFramesCapture = 0; + ma_uint32 mappedDeviceBufferSizeInFramesPlayback = 0; + ma_uint32 mappedDeviceBufferFramesRemainingCapture = 0; + ma_uint32 mappedDeviceBufferFramesRemainingPlayback = 0; + BYTE* pMappedDeviceBufferCapture = NULL; + BYTE* pMappedDeviceBufferPlayback = NULL; + ma_uint32 bpfCaptureDevice = ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + ma_uint32 bpfPlaybackDevice = ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + ma_uint32 bpfCaptureClient = ma_get_bytes_per_frame(pDevice->capture.format, pDevice->capture.channels); + ma_uint32 bpfPlaybackClient = ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels); + ma_uint8 inputDataInClientFormat[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 inputDataInClientFormatCap = 0; + ma_uint8 outputDataInClientFormat[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 outputDataInClientFormatCap = 0; + ma_uint32 outputDataInClientFormatCount = 0; + ma_uint32 outputDataInClientFormatConsumed = 0; + ma_uint32 periodSizeInFramesCapture = 0; + + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { + periodSizeInFramesCapture = pDevice->capture.internalPeriodSizeInFrames; + inputDataInClientFormatCap = sizeof(inputDataInClientFormat) / bpfCaptureClient; + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + outputDataInClientFormatCap = sizeof(outputDataInClientFormat) / bpfPlaybackClient; + } + + while (ma_device_get_state(pDevice) == MA_STATE_STARTED && !exitLoop) { + switch (pDevice->type) + { + case ma_device_type_duplex: + { + ma_uint32 framesAvailableCapture; + ma_uint32 framesAvailablePlayback; + DWORD flagsCapture; /* Passed to IAudioCaptureClient_GetBuffer(). */ + + /* The process is to map the playback buffer and fill it as quickly as possible from input data. */ + if (pMappedDeviceBufferPlayback == NULL) { + result = ma_device__get_available_frames__wasapi(pDevice, (ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, &framesAvailablePlayback); + if (result != MA_SUCCESS) { + return result; + } + + /*printf("TRACE 1: framesAvailablePlayback=%d\n", framesAvailablePlayback);*/ + + + /* In exclusive mode, the frame count needs to exactly match the value returned by GetCurrentPadding(). */ + if (pDevice->playback.shareMode != ma_share_mode_exclusive) { + if (framesAvailablePlayback > pDevice->wasapi.periodSizeInFramesPlayback) { + framesAvailablePlayback = pDevice->wasapi.periodSizeInFramesPlayback; + } + } + + /* We're ready to map the playback device's buffer. We don't release this until it's been entirely filled. */ + hr = ma_IAudioRenderClient_GetBuffer((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient, framesAvailablePlayback, &pMappedDeviceBufferPlayback); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve internal buffer from playback device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + mappedDeviceBufferSizeInFramesPlayback = framesAvailablePlayback; + mappedDeviceBufferFramesRemainingPlayback = framesAvailablePlayback; + } + + if (mappedDeviceBufferFramesRemainingPlayback > 0) { + /* At this point we should have a buffer available for output. We need to keep writing input samples to it. */ + for (;;) { + /* Try grabbing some captured data if we haven't already got a mapped buffer. */ + if (pMappedDeviceBufferCapture == NULL) { + if (pDevice->capture.shareMode == ma_share_mode_shared) { + if (WaitForSingleObject(pDevice->wasapi.hEventCapture, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + return MA_ERROR; /* Wait failed. */ + } + } + + result = ma_device__get_available_frames__wasapi(pDevice, (ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, &framesAvailableCapture); + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + + /*printf("TRACE 2: framesAvailableCapture=%d\n", framesAvailableCapture);*/ + + /* Wait for more if nothing is available. */ + if (framesAvailableCapture == 0) { + /* In exclusive mode we waited at the top. */ + if (pDevice->capture.shareMode != ma_share_mode_shared) { + if (WaitForSingleObject(pDevice->wasapi.hEventCapture, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + return MA_ERROR; /* Wait failed. */ + } + } + + continue; + } + + /* Getting here means there's data available for writing to the output device. */ + mappedDeviceBufferSizeInFramesCapture = ma_min(framesAvailableCapture, periodSizeInFramesCapture); + hr = ma_IAudioCaptureClient_GetBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, (BYTE**)&pMappedDeviceBufferCapture, &mappedDeviceBufferSizeInFramesCapture, &flagsCapture, NULL, NULL); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve internal buffer from capture device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + + /* Overrun detection. */ + if ((flagsCapture & MA_AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY) != 0) { + /* Glitched. Probably due to an overrun. */ + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Data discontinuity (possible overrun). framesAvailableCapture=%d, mappedBufferSizeInFramesCapture=%d\n", framesAvailableCapture, mappedDeviceBufferSizeInFramesCapture); + #endif + + /* + Exeriment: If we get an overrun it probably means we're straddling the end of the buffer. In order to prevent a never-ending sequence of glitches let's experiment + by dropping every frame until we're left with only a single period. To do this we just keep retrieving and immediately releasing buffers until we're down to the + last period. + */ + if (framesAvailableCapture >= pDevice->wasapi.actualPeriodSizeInFramesCapture) { + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Synchronizing capture stream. "); + #endif + do + { + hr = ma_IAudioCaptureClient_ReleaseBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, mappedDeviceBufferSizeInFramesCapture); + if (FAILED(hr)) { + break; + } + + framesAvailableCapture -= mappedDeviceBufferSizeInFramesCapture; + + if (framesAvailableCapture > 0) { + mappedDeviceBufferSizeInFramesCapture = ma_min(framesAvailableCapture, periodSizeInFramesCapture); + hr = ma_IAudioCaptureClient_GetBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, (BYTE**)&pMappedDeviceBufferCapture, &mappedDeviceBufferSizeInFramesCapture, &flagsCapture, NULL, NULL); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve internal buffer from capture device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + } else { + pMappedDeviceBufferCapture = NULL; + mappedDeviceBufferSizeInFramesCapture = 0; + } + } while (framesAvailableCapture > periodSizeInFramesCapture); + #ifdef MA_DEBUG_OUTPUT + printf("framesAvailableCapture=%d, mappedBufferSizeInFramesCapture=%d\n", framesAvailableCapture, mappedDeviceBufferSizeInFramesCapture); + #endif + } + } else { + #ifdef MA_DEBUG_OUTPUT + if (flagsCapture != 0) { + printf("[WASAPI] Capture Flags: %ld\n", flagsCapture); + } + #endif + } + + mappedDeviceBufferFramesRemainingCapture = mappedDeviceBufferSizeInFramesCapture; + } + + + /* At this point we should have both input and output data available. We now need to convert the data and post it to the client. */ + for (;;) { + BYTE* pRunningDeviceBufferCapture; + BYTE* pRunningDeviceBufferPlayback; + ma_uint32 framesToProcess; + ma_uint32 framesProcessed; + + pRunningDeviceBufferCapture = pMappedDeviceBufferCapture + ((mappedDeviceBufferSizeInFramesCapture - mappedDeviceBufferFramesRemainingCapture ) * bpfCaptureDevice); + pRunningDeviceBufferPlayback = pMappedDeviceBufferPlayback + ((mappedDeviceBufferSizeInFramesPlayback - mappedDeviceBufferFramesRemainingPlayback) * bpfPlaybackDevice); + + /* There may be some data sitting in the converter that needs to be processed first. Once this is exhaused, run the data callback again. */ + if (!pDevice->playback.converter.isPassthrough && outputDataInClientFormatConsumed < outputDataInClientFormatCount) { + ma_uint64 convertedFrameCountClient = (outputDataInClientFormatCount - outputDataInClientFormatConsumed); + ma_uint64 convertedFrameCountDevice = mappedDeviceBufferFramesRemainingPlayback; + void* pConvertedFramesClient = outputDataInClientFormat + (outputDataInClientFormatConsumed * bpfPlaybackClient); + void* pConvertedFramesDevice = pRunningDeviceBufferPlayback; + result = ma_data_converter_process_pcm_frames(&pDevice->playback.converter, pConvertedFramesClient, &convertedFrameCountClient, pConvertedFramesDevice, &convertedFrameCountDevice); + if (result != MA_SUCCESS) { + break; + } + + outputDataInClientFormatConsumed += (ma_uint32)convertedFrameCountClient; /* Safe cast. */ + mappedDeviceBufferFramesRemainingPlayback -= (ma_uint32)convertedFrameCountDevice; /* Safe cast. */ + + if (mappedDeviceBufferFramesRemainingPlayback == 0) { + break; + } + } + + /* + Getting here means we need to fire the callback. If format conversion is unnecessary, we can optimize this by passing the pointers to the internal + buffers directly to the callback. + */ + if (pDevice->capture.converter.isPassthrough && pDevice->playback.converter.isPassthrough) { + /* Optimal path. We can pass mapped pointers directly to the callback. */ + framesToProcess = ma_min(mappedDeviceBufferFramesRemainingCapture, mappedDeviceBufferFramesRemainingPlayback); + framesProcessed = framesToProcess; + + ma_device__on_data(pDevice, pRunningDeviceBufferPlayback, pRunningDeviceBufferCapture, framesToProcess); + + mappedDeviceBufferFramesRemainingCapture -= framesProcessed; + mappedDeviceBufferFramesRemainingPlayback -= framesProcessed; + + if (mappedDeviceBufferFramesRemainingCapture == 0) { + break; /* Exhausted input data. */ + } + if (mappedDeviceBufferFramesRemainingPlayback == 0) { + break; /* Exhausted output data. */ + } + } else if (pDevice->capture.converter.isPassthrough) { + /* The input buffer is a passthrough, but the playback buffer requires a conversion. */ + framesToProcess = ma_min(mappedDeviceBufferFramesRemainingCapture, outputDataInClientFormatCap); + framesProcessed = framesToProcess; + + ma_device__on_data(pDevice, outputDataInClientFormat, pRunningDeviceBufferCapture, framesToProcess); + outputDataInClientFormatCount = framesProcessed; + outputDataInClientFormatConsumed = 0; + + mappedDeviceBufferFramesRemainingCapture -= framesProcessed; + if (mappedDeviceBufferFramesRemainingCapture == 0) { + break; /* Exhausted input data. */ + } + } else if (pDevice->playback.converter.isPassthrough) { + /* The input buffer requires conversion, the playback buffer is passthrough. */ + ma_uint64 capturedDeviceFramesToProcess = mappedDeviceBufferFramesRemainingCapture; + ma_uint64 capturedClientFramesToProcess = ma_min(inputDataInClientFormatCap, mappedDeviceBufferFramesRemainingPlayback); + + result = ma_data_converter_process_pcm_frames(&pDevice->capture.converter, pRunningDeviceBufferCapture, &capturedDeviceFramesToProcess, inputDataInClientFormat, &capturedClientFramesToProcess); + if (result != MA_SUCCESS) { + break; + } + + if (capturedClientFramesToProcess == 0) { + break; + } + + ma_device__on_data(pDevice, pRunningDeviceBufferPlayback, inputDataInClientFormat, (ma_uint32)capturedClientFramesToProcess); /* Safe cast. */ + + mappedDeviceBufferFramesRemainingCapture -= (ma_uint32)capturedDeviceFramesToProcess; + mappedDeviceBufferFramesRemainingPlayback -= (ma_uint32)capturedClientFramesToProcess; + } else { + ma_uint64 capturedDeviceFramesToProcess = mappedDeviceBufferFramesRemainingCapture; + ma_uint64 capturedClientFramesToProcess = ma_min(inputDataInClientFormatCap, outputDataInClientFormatCap); + + result = ma_data_converter_process_pcm_frames(&pDevice->capture.converter, pRunningDeviceBufferCapture, &capturedDeviceFramesToProcess, inputDataInClientFormat, &capturedClientFramesToProcess); + if (result != MA_SUCCESS) { + break; + } + + if (capturedClientFramesToProcess == 0) { + break; + } + + ma_device__on_data(pDevice, outputDataInClientFormat, inputDataInClientFormat, (ma_uint32)capturedClientFramesToProcess); + + mappedDeviceBufferFramesRemainingCapture -= (ma_uint32)capturedDeviceFramesToProcess; + outputDataInClientFormatCount = (ma_uint32)capturedClientFramesToProcess; + outputDataInClientFormatConsumed = 0; + } + } + + + /* If at this point we've run out of capture data we need to release the buffer. */ + if (mappedDeviceBufferFramesRemainingCapture == 0 && pMappedDeviceBufferCapture != NULL) { + hr = ma_IAudioCaptureClient_ReleaseBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, mappedDeviceBufferSizeInFramesCapture); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to release internal buffer from capture device after reading from the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + /*printf("TRACE: Released capture buffer\n");*/ + + pMappedDeviceBufferCapture = NULL; + mappedDeviceBufferFramesRemainingCapture = 0; + mappedDeviceBufferSizeInFramesCapture = 0; + } + + /* Get out of this loop if we're run out of room in the playback buffer. */ + if (mappedDeviceBufferFramesRemainingPlayback == 0) { + break; + } + } + } + + + /* If at this point we've run out of data we need to release the buffer. */ + if (mappedDeviceBufferFramesRemainingPlayback == 0 && pMappedDeviceBufferPlayback != NULL) { + hr = ma_IAudioRenderClient_ReleaseBuffer((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient, mappedDeviceBufferSizeInFramesPlayback, 0); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to release internal buffer from playback device after writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + /*printf("TRACE: Released playback buffer\n");*/ + framesWrittenToPlaybackDevice += mappedDeviceBufferSizeInFramesPlayback; + + pMappedDeviceBufferPlayback = NULL; + mappedDeviceBufferFramesRemainingPlayback = 0; + mappedDeviceBufferSizeInFramesPlayback = 0; + } + + if (!c89atomic_load_32(&pDevice->wasapi.isStartedPlayback)) { + ma_uint32 startThreshold = pDevice->playback.internalPeriodSizeInFrames * 1; + + /* Prevent a deadlock. If we don't clamp against the actual buffer size we'll never end up starting the playback device which will result in a deadlock. */ + if (startThreshold > pDevice->wasapi.actualPeriodSizeInFramesPlayback) { + startThreshold = pDevice->wasapi.actualPeriodSizeInFramesPlayback; + } + + if (pDevice->playback.shareMode == ma_share_mode_exclusive || framesWrittenToPlaybackDevice >= startThreshold) { + hr = ma_IAudioClient_Start((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); + if (FAILED(hr)) { + ma_IAudioClient_Stop((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + ma_IAudioClient_Reset((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to start internal playback device.", ma_result_from_HRESULT(hr)); + } + + c89atomic_exchange_32(&pDevice->wasapi.isStartedPlayback, MA_TRUE); + } + } + + /* Make sure the device has started before waiting. */ + if (WaitForSingleObject(pDevice->wasapi.hEventPlayback, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + return MA_ERROR; /* Wait failed. */ + } + } break; + + + + case ma_device_type_capture: + case ma_device_type_loopback: + { + ma_uint32 framesAvailableCapture; + DWORD flagsCapture; /* Passed to IAudioCaptureClient_GetBuffer(). */ + + /* Wait for data to become available first. */ + if (WaitForSingleObject(pDevice->wasapi.hEventCapture, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + /* + For capture we can terminate here because it probably means the microphone just isn't delivering data for whatever reason, but + for loopback is most likely means nothing is actually playing. We want to keep trying in this situation. + */ + if (pDevice->type == ma_device_type_loopback) { + continue; /* Keep waiting in loopback mode. */ + } else { + exitLoop = MA_TRUE; + break; /* Wait failed. */ + } + } + + /* See how many frames are available. Since we waited at the top, I don't think this should ever return 0. I'm checking for this anyway. */ + result = ma_device__get_available_frames__wasapi(pDevice, (ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, &framesAvailableCapture); + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + + if (framesAvailableCapture < pDevice->wasapi.periodSizeInFramesCapture) { + continue; /* Nothing available. Keep waiting. */ + } + + /* Map the data buffer in preparation for sending to the client. */ + mappedDeviceBufferSizeInFramesCapture = framesAvailableCapture; + hr = ma_IAudioCaptureClient_GetBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, (BYTE**)&pMappedDeviceBufferCapture, &mappedDeviceBufferSizeInFramesCapture, &flagsCapture, NULL, NULL); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve internal buffer from capture device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + /* Overrun detection. */ + if ((flagsCapture & MA_AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY) != 0) { + /* Glitched. Probably due to an overrun. */ + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Data discontinuity (possible overrun). framesAvailableCapture=%d, mappedBufferSizeInFramesCapture=%d\n", framesAvailableCapture, mappedDeviceBufferSizeInFramesCapture); + #endif + + /* + Exeriment: If we get an overrun it probably means we're straddling the end of the buffer. In order to prevent a never-ending sequence of glitches let's experiment + by dropping every frame until we're left with only a single period. To do this we just keep retrieving and immediately releasing buffers until we're down to the + last period. + */ + if (framesAvailableCapture >= pDevice->wasapi.actualPeriodSizeInFramesCapture) { + #ifdef MA_DEBUG_OUTPUT + printf("[WASAPI] Synchronizing capture stream. "); + #endif + do + { + hr = ma_IAudioCaptureClient_ReleaseBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, mappedDeviceBufferSizeInFramesCapture); + if (FAILED(hr)) { + break; + } + + framesAvailableCapture -= mappedDeviceBufferSizeInFramesCapture; + + if (framesAvailableCapture > 0) { + mappedDeviceBufferSizeInFramesCapture = ma_min(framesAvailableCapture, periodSizeInFramesCapture); + hr = ma_IAudioCaptureClient_GetBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, (BYTE**)&pMappedDeviceBufferCapture, &mappedDeviceBufferSizeInFramesCapture, &flagsCapture, NULL, NULL); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve internal buffer from capture device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + } else { + pMappedDeviceBufferCapture = NULL; + mappedDeviceBufferSizeInFramesCapture = 0; + } + } while (framesAvailableCapture > periodSizeInFramesCapture); + #ifdef MA_DEBUG_OUTPUT + printf("framesAvailableCapture=%d, mappedBufferSizeInFramesCapture=%d\n", framesAvailableCapture, mappedDeviceBufferSizeInFramesCapture); + #endif + } + } else { + #ifdef MA_DEBUG_OUTPUT + if (flagsCapture != 0) { + printf("[WASAPI] Capture Flags: %ld\n", flagsCapture); + } + #endif + } + + /* We should have a buffer at this point, but let's just do a sanity check anyway. */ + if (mappedDeviceBufferSizeInFramesCapture > 0 && pMappedDeviceBufferCapture != NULL) { + ma_device__send_frames_to_client(pDevice, mappedDeviceBufferSizeInFramesCapture, pMappedDeviceBufferCapture); + + /* At this point we're done with the buffer. */ + hr = ma_IAudioCaptureClient_ReleaseBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, mappedDeviceBufferSizeInFramesCapture); + pMappedDeviceBufferCapture = NULL; /* <-- Important. Not doing this can result in an error once we leave this loop because it will use this to know whether or not a final ReleaseBuffer() needs to be called. */ + mappedDeviceBufferSizeInFramesCapture = 0; + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to release internal buffer from capture device after reading from the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + } + } break; + + + + case ma_device_type_playback: + { + ma_uint32 framesAvailablePlayback; + + /* Check how much space is available. If this returns 0 we just keep waiting. */ + result = ma_device__get_available_frames__wasapi(pDevice, (ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, &framesAvailablePlayback); + if (result != MA_SUCCESS) { + exitLoop = MA_TRUE; + break; + } + + if (framesAvailablePlayback >= pDevice->wasapi.periodSizeInFramesPlayback) { + /* Map a the data buffer in preparation for the callback. */ + hr = ma_IAudioRenderClient_GetBuffer((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient, framesAvailablePlayback, &pMappedDeviceBufferPlayback); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve internal buffer from playback device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + /* We should have a buffer at this point. */ + ma_device__read_frames_from_client(pDevice, framesAvailablePlayback, pMappedDeviceBufferPlayback); + + /* At this point we're done writing to the device and we just need to release the buffer. */ + hr = ma_IAudioRenderClient_ReleaseBuffer((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient, framesAvailablePlayback, 0); + pMappedDeviceBufferPlayback = NULL; /* <-- Important. Not doing this can result in an error once we leave this loop because it will use this to know whether or not a final ReleaseBuffer() needs to be called. */ + mappedDeviceBufferSizeInFramesPlayback = 0; + + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to release internal buffer from playback device after writing to the device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + framesWrittenToPlaybackDevice += framesAvailablePlayback; + } + + if (!c89atomic_load_32(&pDevice->wasapi.isStartedPlayback)) { + hr = ma_IAudioClient_Start((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); + if (FAILED(hr)) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to start internal playback device.", ma_result_from_HRESULT(hr)); + exitLoop = MA_TRUE; + break; + } + + c89atomic_exchange_32(&pDevice->wasapi.isStartedPlayback, MA_TRUE); + } + + /* Make sure we don't wait on the event before we've started the device or we may end up deadlocking. */ + if (WaitForSingleObject(pDevice->wasapi.hEventPlayback, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + exitLoop = MA_TRUE; + break; /* Wait failed. Probably timed out. */ + } + } break; + + default: return MA_INVALID_ARGS; + } + } + + /* Here is where the device needs to be stopped. */ + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { + /* Any mapped buffers need to be released. */ + if (pMappedDeviceBufferCapture != NULL) { + hr = ma_IAudioCaptureClient_ReleaseBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, mappedDeviceBufferSizeInFramesCapture); + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* Any mapped buffers need to be released. */ + if (pMappedDeviceBufferPlayback != NULL) { + hr = ma_IAudioRenderClient_ReleaseBuffer((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient, mappedDeviceBufferSizeInFramesPlayback, 0); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_data_loop_wakeup__wasapi(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { + SetEvent((HANDLE)pDevice->wasapi.hEventCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + SetEvent((HANDLE)pDevice->wasapi.hEventPlayback); + } + + return MA_SUCCESS; +} + + +static ma_result ma_context_uninit__wasapi(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_wasapi); + + if (pContext->wasapi.commandThread != NULL) { + ma_context_command__wasapi cmd = ma_context_init_command__wasapi(MA_CONTEXT_COMMAND_QUIT__WASAPI); + ma_context_post_command__wasapi(pContext, &cmd); + ma_thread_wait(&pContext->wasapi.commandThread); + + /* Only after the thread has been terminated can we uninitialize the sync objects for the command thread. */ + ma_semaphore_uninit(&pContext->wasapi.commandSem); + ma_mutex_uninit(&pContext->wasapi.commandLock); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_init__wasapi(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + ma_result result = MA_SUCCESS; + + MA_ASSERT(pContext != NULL); + + (void)pConfig; + +#ifdef MA_WIN32_DESKTOP + /* + WASAPI is only supported in Vista SP1 and newer. The reason for SP1 and not the base version of Vista is that event-driven + exclusive mode does not work until SP1. + + Unfortunately older compilers don't define these functions so we need to dynamically load them in order to avoid a link error. + */ + { + ma_OSVERSIONINFOEXW osvi; + ma_handle kernel32DLL; + ma_PFNVerifyVersionInfoW _VerifyVersionInfoW; + ma_PFNVerSetConditionMask _VerSetConditionMask; + + kernel32DLL = ma_dlopen(pContext, "kernel32.dll"); + if (kernel32DLL == NULL) { + return MA_NO_BACKEND; + } + + _VerifyVersionInfoW = (ma_PFNVerifyVersionInfoW )ma_dlsym(pContext, kernel32DLL, "VerifyVersionInfoW"); + _VerSetConditionMask = (ma_PFNVerSetConditionMask)ma_dlsym(pContext, kernel32DLL, "VerSetConditionMask"); + if (_VerifyVersionInfoW == NULL || _VerSetConditionMask == NULL) { + ma_dlclose(pContext, kernel32DLL); + return MA_NO_BACKEND; + } + + MA_ZERO_OBJECT(&osvi); + osvi.dwOSVersionInfoSize = sizeof(osvi); + osvi.dwMajorVersion = ((MA_WIN32_WINNT_VISTA >> 8) & 0xFF); + osvi.dwMinorVersion = ((MA_WIN32_WINNT_VISTA >> 0) & 0xFF); + osvi.wServicePackMajor = 1; + if (_VerifyVersionInfoW(&osvi, MA_VER_MAJORVERSION | MA_VER_MINORVERSION | MA_VER_SERVICEPACKMAJOR, _VerSetConditionMask(_VerSetConditionMask(_VerSetConditionMask(0, MA_VER_MAJORVERSION, MA_VER_GREATER_EQUAL), MA_VER_MINORVERSION, MA_VER_GREATER_EQUAL), MA_VER_SERVICEPACKMAJOR, MA_VER_GREATER_EQUAL))) { + result = MA_SUCCESS; + } else { + result = MA_NO_BACKEND; + } + + ma_dlclose(pContext, kernel32DLL); + } +#endif + + if (result != MA_SUCCESS) { + return result; + } + + MA_ZERO_OBJECT(&pContext->wasapi); + + /* + Annoyingly, WASAPI does not allow you to release an IAudioClient object from a different thread + than the one that retrieved it with GetService(). This can result in a deadlock in two + situations: + + 1) When calling ma_device_uninit() from a different thread to ma_device_init(); and + 2) When uninitializing and reinitializing the internal IAudioClient object in response to + automatic stream routing. + + We could define ma_device_uninit() such that it must be called on the same thread as + ma_device_init(). We could also just not release the IAudioClient when performing automatic + stream routing to avoid the deadlock. Neither of these are acceptable solutions in my view so + we're going to have to work around this with a worker thread. This is not ideal, but I can't + think of a better way to do this. + + More information about this can be found here: + + https://docs.microsoft.com/en-us/windows/win32/api/audioclient/nn-audioclient-iaudiorenderclient + + Note this section: + + When releasing an IAudioRenderClient interface instance, the client must call the interface's + Release method from the same thread as the call to IAudioClient::GetService that created the + object. + */ + { + result = ma_mutex_init(&pContext->wasapi.commandLock); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_semaphore_init(0, &pContext->wasapi.commandSem); + if (result != MA_SUCCESS) { + ma_mutex_uninit(&pContext->wasapi.commandLock); + return result; + } + + result = ma_thread_create(&pContext->wasapi.commandThread, ma_thread_priority_normal, 0, ma_context_command_thread__wasapi, pContext); + if (result != MA_SUCCESS) { + ma_semaphore_uninit(&pContext->wasapi.commandSem); + ma_mutex_uninit(&pContext->wasapi.commandLock); + return result; + } + } + + + pCallbacks->onContextInit = ma_context_init__wasapi; + pCallbacks->onContextUninit = ma_context_uninit__wasapi; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__wasapi; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__wasapi; + pCallbacks->onDeviceInit = ma_device_init__wasapi; + pCallbacks->onDeviceUninit = ma_device_uninit__wasapi; + pCallbacks->onDeviceStart = ma_device_start__wasapi; + pCallbacks->onDeviceStop = ma_device_stop__wasapi; + pCallbacks->onDeviceRead = NULL; /* Not used. Reading is done manually in the audio thread. */ + pCallbacks->onDeviceWrite = NULL; /* Not used. Writing is done manually in the audio thread. */ + pCallbacks->onDeviceDataLoop = ma_device_data_loop__wasapi; + pCallbacks->onDeviceDataLoopWakeup = ma_device_data_loop_wakeup__wasapi; + + return MA_SUCCESS; +} +#endif + +/****************************************************************************** + +DirectSound Backend + +******************************************************************************/ +#ifdef MA_HAS_DSOUND +/*#include */ + +/*static const GUID MA_GUID_IID_DirectSoundNotify = {0xb0210783, 0x89cd, 0x11d0, {0xaf, 0x08, 0x00, 0xa0, 0xc9, 0x25, 0xcd, 0x16}};*/ + +/* miniaudio only uses priority or exclusive modes. */ +#define MA_DSSCL_NORMAL 1 +#define MA_DSSCL_PRIORITY 2 +#define MA_DSSCL_EXCLUSIVE 3 +#define MA_DSSCL_WRITEPRIMARY 4 + +#define MA_DSCAPS_PRIMARYMONO 0x00000001 +#define MA_DSCAPS_PRIMARYSTEREO 0x00000002 +#define MA_DSCAPS_PRIMARY8BIT 0x00000004 +#define MA_DSCAPS_PRIMARY16BIT 0x00000008 +#define MA_DSCAPS_CONTINUOUSRATE 0x00000010 +#define MA_DSCAPS_EMULDRIVER 0x00000020 +#define MA_DSCAPS_CERTIFIED 0x00000040 +#define MA_DSCAPS_SECONDARYMONO 0x00000100 +#define MA_DSCAPS_SECONDARYSTEREO 0x00000200 +#define MA_DSCAPS_SECONDARY8BIT 0x00000400 +#define MA_DSCAPS_SECONDARY16BIT 0x00000800 + +#define MA_DSBCAPS_PRIMARYBUFFER 0x00000001 +#define MA_DSBCAPS_STATIC 0x00000002 +#define MA_DSBCAPS_LOCHARDWARE 0x00000004 +#define MA_DSBCAPS_LOCSOFTWARE 0x00000008 +#define MA_DSBCAPS_CTRL3D 0x00000010 +#define MA_DSBCAPS_CTRLFREQUENCY 0x00000020 +#define MA_DSBCAPS_CTRLPAN 0x00000040 +#define MA_DSBCAPS_CTRLVOLUME 0x00000080 +#define MA_DSBCAPS_CTRLPOSITIONNOTIFY 0x00000100 +#define MA_DSBCAPS_CTRLFX 0x00000200 +#define MA_DSBCAPS_STICKYFOCUS 0x00004000 +#define MA_DSBCAPS_GLOBALFOCUS 0x00008000 +#define MA_DSBCAPS_GETCURRENTPOSITION2 0x00010000 +#define MA_DSBCAPS_MUTE3DATMAXDISTANCE 0x00020000 +#define MA_DSBCAPS_LOCDEFER 0x00040000 +#define MA_DSBCAPS_TRUEPLAYPOSITION 0x00080000 + +#define MA_DSBPLAY_LOOPING 0x00000001 +#define MA_DSBPLAY_LOCHARDWARE 0x00000002 +#define MA_DSBPLAY_LOCSOFTWARE 0x00000004 +#define MA_DSBPLAY_TERMINATEBY_TIME 0x00000008 +#define MA_DSBPLAY_TERMINATEBY_DISTANCE 0x00000010 +#define MA_DSBPLAY_TERMINATEBY_PRIORITY 0x00000020 + +#define MA_DSCBSTART_LOOPING 0x00000001 + +typedef struct +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwBufferBytes; + DWORD dwReserved; + WAVEFORMATEX* lpwfxFormat; + GUID guid3DAlgorithm; +} MA_DSBUFFERDESC; + +typedef struct +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwBufferBytes; + DWORD dwReserved; + WAVEFORMATEX* lpwfxFormat; + DWORD dwFXCount; + void* lpDSCFXDesc; /* <-- miniaudio doesn't use this, so set to void*. */ +} MA_DSCBUFFERDESC; + +typedef struct +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwMinSecondarySampleRate; + DWORD dwMaxSecondarySampleRate; + DWORD dwPrimaryBuffers; + DWORD dwMaxHwMixingAllBuffers; + DWORD dwMaxHwMixingStaticBuffers; + DWORD dwMaxHwMixingStreamingBuffers; + DWORD dwFreeHwMixingAllBuffers; + DWORD dwFreeHwMixingStaticBuffers; + DWORD dwFreeHwMixingStreamingBuffers; + DWORD dwMaxHw3DAllBuffers; + DWORD dwMaxHw3DStaticBuffers; + DWORD dwMaxHw3DStreamingBuffers; + DWORD dwFreeHw3DAllBuffers; + DWORD dwFreeHw3DStaticBuffers; + DWORD dwFreeHw3DStreamingBuffers; + DWORD dwTotalHwMemBytes; + DWORD dwFreeHwMemBytes; + DWORD dwMaxContigFreeHwMemBytes; + DWORD dwUnlockTransferRateHwBuffers; + DWORD dwPlayCpuOverheadSwBuffers; + DWORD dwReserved1; + DWORD dwReserved2; +} MA_DSCAPS; + +typedef struct +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwBufferBytes; + DWORD dwUnlockTransferRate; + DWORD dwPlayCpuOverhead; +} MA_DSBCAPS; + +typedef struct +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwFormats; + DWORD dwChannels; +} MA_DSCCAPS; + +typedef struct +{ + DWORD dwSize; + DWORD dwFlags; + DWORD dwBufferBytes; + DWORD dwReserved; +} MA_DSCBCAPS; + +typedef struct +{ + DWORD dwOffset; + HANDLE hEventNotify; +} MA_DSBPOSITIONNOTIFY; + +typedef struct ma_IDirectSound ma_IDirectSound; +typedef struct ma_IDirectSoundBuffer ma_IDirectSoundBuffer; +typedef struct ma_IDirectSoundCapture ma_IDirectSoundCapture; +typedef struct ma_IDirectSoundCaptureBuffer ma_IDirectSoundCaptureBuffer; +typedef struct ma_IDirectSoundNotify ma_IDirectSoundNotify; + + +/* +COM objects. The way these work is that you have a vtable (a list of function pointers, kind of +like how C++ works internally), and then you have a structure with a single member, which is a +pointer to the vtable. The vtable is where the methods of the object are defined. Methods need +to be in a specific order, and parent classes need to have their methods declared first. +*/ + +/* IDirectSound */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IDirectSound* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IDirectSound* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IDirectSound* pThis); + + /* IDirectSound */ + HRESULT (STDMETHODCALLTYPE * CreateSoundBuffer) (ma_IDirectSound* pThis, const MA_DSBUFFERDESC* pDSBufferDesc, ma_IDirectSoundBuffer** ppDSBuffer, void* pUnkOuter); + HRESULT (STDMETHODCALLTYPE * GetCaps) (ma_IDirectSound* pThis, MA_DSCAPS* pDSCaps); + HRESULT (STDMETHODCALLTYPE * DuplicateSoundBuffer)(ma_IDirectSound* pThis, ma_IDirectSoundBuffer* pDSBufferOriginal, ma_IDirectSoundBuffer** ppDSBufferDuplicate); + HRESULT (STDMETHODCALLTYPE * SetCooperativeLevel) (ma_IDirectSound* pThis, HWND hwnd, DWORD dwLevel); + HRESULT (STDMETHODCALLTYPE * Compact) (ma_IDirectSound* pThis); + HRESULT (STDMETHODCALLTYPE * GetSpeakerConfig) (ma_IDirectSound* pThis, DWORD* pSpeakerConfig); + HRESULT (STDMETHODCALLTYPE * SetSpeakerConfig) (ma_IDirectSound* pThis, DWORD dwSpeakerConfig); + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IDirectSound* pThis, const GUID* pGuidDevice); +} ma_IDirectSoundVtbl; +struct ma_IDirectSound +{ + ma_IDirectSoundVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IDirectSound_QueryInterface(ma_IDirectSound* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IDirectSound_AddRef(ma_IDirectSound* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IDirectSound_Release(ma_IDirectSound* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IDirectSound_CreateSoundBuffer(ma_IDirectSound* pThis, const MA_DSBUFFERDESC* pDSBufferDesc, ma_IDirectSoundBuffer** ppDSBuffer, void* pUnkOuter) { return pThis->lpVtbl->CreateSoundBuffer(pThis, pDSBufferDesc, ppDSBuffer, pUnkOuter); } +static MA_INLINE HRESULT ma_IDirectSound_GetCaps(ma_IDirectSound* pThis, MA_DSCAPS* pDSCaps) { return pThis->lpVtbl->GetCaps(pThis, pDSCaps); } +static MA_INLINE HRESULT ma_IDirectSound_DuplicateSoundBuffer(ma_IDirectSound* pThis, ma_IDirectSoundBuffer* pDSBufferOriginal, ma_IDirectSoundBuffer** ppDSBufferDuplicate) { return pThis->lpVtbl->DuplicateSoundBuffer(pThis, pDSBufferOriginal, ppDSBufferDuplicate); } +static MA_INLINE HRESULT ma_IDirectSound_SetCooperativeLevel(ma_IDirectSound* pThis, HWND hwnd, DWORD dwLevel) { return pThis->lpVtbl->SetCooperativeLevel(pThis, hwnd, dwLevel); } +static MA_INLINE HRESULT ma_IDirectSound_Compact(ma_IDirectSound* pThis) { return pThis->lpVtbl->Compact(pThis); } +static MA_INLINE HRESULT ma_IDirectSound_GetSpeakerConfig(ma_IDirectSound* pThis, DWORD* pSpeakerConfig) { return pThis->lpVtbl->GetSpeakerConfig(pThis, pSpeakerConfig); } +static MA_INLINE HRESULT ma_IDirectSound_SetSpeakerConfig(ma_IDirectSound* pThis, DWORD dwSpeakerConfig) { return pThis->lpVtbl->SetSpeakerConfig(pThis, dwSpeakerConfig); } +static MA_INLINE HRESULT ma_IDirectSound_Initialize(ma_IDirectSound* pThis, const GUID* pGuidDevice) { return pThis->lpVtbl->Initialize(pThis, pGuidDevice); } + + +/* IDirectSoundBuffer */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IDirectSoundBuffer* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IDirectSoundBuffer* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IDirectSoundBuffer* pThis); + + /* IDirectSoundBuffer */ + HRESULT (STDMETHODCALLTYPE * GetCaps) (ma_IDirectSoundBuffer* pThis, MA_DSBCAPS* pDSBufferCaps); + HRESULT (STDMETHODCALLTYPE * GetCurrentPosition)(ma_IDirectSoundBuffer* pThis, DWORD* pCurrentPlayCursor, DWORD* pCurrentWriteCursor); + HRESULT (STDMETHODCALLTYPE * GetFormat) (ma_IDirectSoundBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten); + HRESULT (STDMETHODCALLTYPE * GetVolume) (ma_IDirectSoundBuffer* pThis, LONG* pVolume); + HRESULT (STDMETHODCALLTYPE * GetPan) (ma_IDirectSoundBuffer* pThis, LONG* pPan); + HRESULT (STDMETHODCALLTYPE * GetFrequency) (ma_IDirectSoundBuffer* pThis, DWORD* pFrequency); + HRESULT (STDMETHODCALLTYPE * GetStatus) (ma_IDirectSoundBuffer* pThis, DWORD* pStatus); + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IDirectSoundBuffer* pThis, ma_IDirectSound* pDirectSound, const MA_DSBUFFERDESC* pDSBufferDesc); + HRESULT (STDMETHODCALLTYPE * Lock) (ma_IDirectSoundBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags); + HRESULT (STDMETHODCALLTYPE * Play) (ma_IDirectSoundBuffer* pThis, DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags); + HRESULT (STDMETHODCALLTYPE * SetCurrentPosition)(ma_IDirectSoundBuffer* pThis, DWORD dwNewPosition); + HRESULT (STDMETHODCALLTYPE * SetFormat) (ma_IDirectSoundBuffer* pThis, const WAVEFORMATEX* pFormat); + HRESULT (STDMETHODCALLTYPE * SetVolume) (ma_IDirectSoundBuffer* pThis, LONG volume); + HRESULT (STDMETHODCALLTYPE * SetPan) (ma_IDirectSoundBuffer* pThis, LONG pan); + HRESULT (STDMETHODCALLTYPE * SetFrequency) (ma_IDirectSoundBuffer* pThis, DWORD dwFrequency); + HRESULT (STDMETHODCALLTYPE * Stop) (ma_IDirectSoundBuffer* pThis); + HRESULT (STDMETHODCALLTYPE * Unlock) (ma_IDirectSoundBuffer* pThis, void* pAudioPtr1, DWORD dwAudioBytes1, void* pAudioPtr2, DWORD dwAudioBytes2); + HRESULT (STDMETHODCALLTYPE * Restore) (ma_IDirectSoundBuffer* pThis); +} ma_IDirectSoundBufferVtbl; +struct ma_IDirectSoundBuffer +{ + ma_IDirectSoundBufferVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IDirectSoundBuffer_QueryInterface(ma_IDirectSoundBuffer* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IDirectSoundBuffer_AddRef(ma_IDirectSoundBuffer* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IDirectSoundBuffer_Release(ma_IDirectSoundBuffer* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetCaps(ma_IDirectSoundBuffer* pThis, MA_DSBCAPS* pDSBufferCaps) { return pThis->lpVtbl->GetCaps(pThis, pDSBufferCaps); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetCurrentPosition(ma_IDirectSoundBuffer* pThis, DWORD* pCurrentPlayCursor, DWORD* pCurrentWriteCursor) { return pThis->lpVtbl->GetCurrentPosition(pThis, pCurrentPlayCursor, pCurrentWriteCursor); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetFormat(ma_IDirectSoundBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten) { return pThis->lpVtbl->GetFormat(pThis, pFormat, dwSizeAllocated, pSizeWritten); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetVolume(ma_IDirectSoundBuffer* pThis, LONG* pVolume) { return pThis->lpVtbl->GetVolume(pThis, pVolume); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetPan(ma_IDirectSoundBuffer* pThis, LONG* pPan) { return pThis->lpVtbl->GetPan(pThis, pPan); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetFrequency(ma_IDirectSoundBuffer* pThis, DWORD* pFrequency) { return pThis->lpVtbl->GetFrequency(pThis, pFrequency); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetStatus(ma_IDirectSoundBuffer* pThis, DWORD* pStatus) { return pThis->lpVtbl->GetStatus(pThis, pStatus); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_Initialize(ma_IDirectSoundBuffer* pThis, ma_IDirectSound* pDirectSound, const MA_DSBUFFERDESC* pDSBufferDesc) { return pThis->lpVtbl->Initialize(pThis, pDirectSound, pDSBufferDesc); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_Lock(ma_IDirectSoundBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags) { return pThis->lpVtbl->Lock(pThis, dwOffset, dwBytes, ppAudioPtr1, pAudioBytes1, ppAudioPtr2, pAudioBytes2, dwFlags); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_Play(ma_IDirectSoundBuffer* pThis, DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags) { return pThis->lpVtbl->Play(pThis, dwReserved1, dwPriority, dwFlags); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetCurrentPosition(ma_IDirectSoundBuffer* pThis, DWORD dwNewPosition) { return pThis->lpVtbl->SetCurrentPosition(pThis, dwNewPosition); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetFormat(ma_IDirectSoundBuffer* pThis, const WAVEFORMATEX* pFormat) { return pThis->lpVtbl->SetFormat(pThis, pFormat); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetVolume(ma_IDirectSoundBuffer* pThis, LONG volume) { return pThis->lpVtbl->SetVolume(pThis, volume); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetPan(ma_IDirectSoundBuffer* pThis, LONG pan) { return pThis->lpVtbl->SetPan(pThis, pan); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetFrequency(ma_IDirectSoundBuffer* pThis, DWORD dwFrequency) { return pThis->lpVtbl->SetFrequency(pThis, dwFrequency); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_Stop(ma_IDirectSoundBuffer* pThis) { return pThis->lpVtbl->Stop(pThis); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_Unlock(ma_IDirectSoundBuffer* pThis, void* pAudioPtr1, DWORD dwAudioBytes1, void* pAudioPtr2, DWORD dwAudioBytes2) { return pThis->lpVtbl->Unlock(pThis, pAudioPtr1, dwAudioBytes1, pAudioPtr2, dwAudioBytes2); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_Restore(ma_IDirectSoundBuffer* pThis) { return pThis->lpVtbl->Restore(pThis); } + + +/* IDirectSoundCapture */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IDirectSoundCapture* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IDirectSoundCapture* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IDirectSoundCapture* pThis); + + /* IDirectSoundCapture */ + HRESULT (STDMETHODCALLTYPE * CreateCaptureBuffer)(ma_IDirectSoundCapture* pThis, const MA_DSCBUFFERDESC* pDSCBufferDesc, ma_IDirectSoundCaptureBuffer** ppDSCBuffer, void* pUnkOuter); + HRESULT (STDMETHODCALLTYPE * GetCaps) (ma_IDirectSoundCapture* pThis, MA_DSCCAPS* pDSCCaps); + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IDirectSoundCapture* pThis, const GUID* pGuidDevice); +} ma_IDirectSoundCaptureVtbl; +struct ma_IDirectSoundCapture +{ + ma_IDirectSoundCaptureVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IDirectSoundCapture_QueryInterface(ma_IDirectSoundCapture* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IDirectSoundCapture_AddRef(ma_IDirectSoundCapture* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IDirectSoundCapture_Release(ma_IDirectSoundCapture* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IDirectSoundCapture_CreateCaptureBuffer(ma_IDirectSoundCapture* pThis, const MA_DSCBUFFERDESC* pDSCBufferDesc, ma_IDirectSoundCaptureBuffer** ppDSCBuffer, void* pUnkOuter) { return pThis->lpVtbl->CreateCaptureBuffer(pThis, pDSCBufferDesc, ppDSCBuffer, pUnkOuter); } +static MA_INLINE HRESULT ma_IDirectSoundCapture_GetCaps (ma_IDirectSoundCapture* pThis, MA_DSCCAPS* pDSCCaps) { return pThis->lpVtbl->GetCaps(pThis, pDSCCaps); } +static MA_INLINE HRESULT ma_IDirectSoundCapture_Initialize (ma_IDirectSoundCapture* pThis, const GUID* pGuidDevice) { return pThis->lpVtbl->Initialize(pThis, pGuidDevice); } + + +/* IDirectSoundCaptureBuffer */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IDirectSoundCaptureBuffer* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IDirectSoundCaptureBuffer* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IDirectSoundCaptureBuffer* pThis); + + /* IDirectSoundCaptureBuffer */ + HRESULT (STDMETHODCALLTYPE * GetCaps) (ma_IDirectSoundCaptureBuffer* pThis, MA_DSCBCAPS* pDSCBCaps); + HRESULT (STDMETHODCALLTYPE * GetCurrentPosition)(ma_IDirectSoundCaptureBuffer* pThis, DWORD* pCapturePosition, DWORD* pReadPosition); + HRESULT (STDMETHODCALLTYPE * GetFormat) (ma_IDirectSoundCaptureBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten); + HRESULT (STDMETHODCALLTYPE * GetStatus) (ma_IDirectSoundCaptureBuffer* pThis, DWORD* pStatus); + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IDirectSoundCaptureBuffer* pThis, ma_IDirectSoundCapture* pDirectSoundCapture, const MA_DSCBUFFERDESC* pDSCBufferDesc); + HRESULT (STDMETHODCALLTYPE * Lock) (ma_IDirectSoundCaptureBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags); + HRESULT (STDMETHODCALLTYPE * Start) (ma_IDirectSoundCaptureBuffer* pThis, DWORD dwFlags); + HRESULT (STDMETHODCALLTYPE * Stop) (ma_IDirectSoundCaptureBuffer* pThis); + HRESULT (STDMETHODCALLTYPE * Unlock) (ma_IDirectSoundCaptureBuffer* pThis, void* pAudioPtr1, DWORD dwAudioBytes1, void* pAudioPtr2, DWORD dwAudioBytes2); +} ma_IDirectSoundCaptureBufferVtbl; +struct ma_IDirectSoundCaptureBuffer +{ + ma_IDirectSoundCaptureBufferVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_QueryInterface(ma_IDirectSoundCaptureBuffer* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IDirectSoundCaptureBuffer_AddRef(ma_IDirectSoundCaptureBuffer* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IDirectSoundCaptureBuffer_Release(ma_IDirectSoundCaptureBuffer* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetCaps(ma_IDirectSoundCaptureBuffer* pThis, MA_DSCBCAPS* pDSCBCaps) { return pThis->lpVtbl->GetCaps(pThis, pDSCBCaps); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetCurrentPosition(ma_IDirectSoundCaptureBuffer* pThis, DWORD* pCapturePosition, DWORD* pReadPosition) { return pThis->lpVtbl->GetCurrentPosition(pThis, pCapturePosition, pReadPosition); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetFormat(ma_IDirectSoundCaptureBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten) { return pThis->lpVtbl->GetFormat(pThis, pFormat, dwSizeAllocated, pSizeWritten); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetStatus(ma_IDirectSoundCaptureBuffer* pThis, DWORD* pStatus) { return pThis->lpVtbl->GetStatus(pThis, pStatus); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_Initialize(ma_IDirectSoundCaptureBuffer* pThis, ma_IDirectSoundCapture* pDirectSoundCapture, const MA_DSCBUFFERDESC* pDSCBufferDesc) { return pThis->lpVtbl->Initialize(pThis, pDirectSoundCapture, pDSCBufferDesc); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_Lock(ma_IDirectSoundCaptureBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags) { return pThis->lpVtbl->Lock(pThis, dwOffset, dwBytes, ppAudioPtr1, pAudioBytes1, ppAudioPtr2, pAudioBytes2, dwFlags); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_Start(ma_IDirectSoundCaptureBuffer* pThis, DWORD dwFlags) { return pThis->lpVtbl->Start(pThis, dwFlags); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_Stop(ma_IDirectSoundCaptureBuffer* pThis) { return pThis->lpVtbl->Stop(pThis); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_Unlock(ma_IDirectSoundCaptureBuffer* pThis, void* pAudioPtr1, DWORD dwAudioBytes1, void* pAudioPtr2, DWORD dwAudioBytes2) { return pThis->lpVtbl->Unlock(pThis, pAudioPtr1, dwAudioBytes1, pAudioPtr2, dwAudioBytes2); } + + +/* IDirectSoundNotify */ +typedef struct +{ + /* IUnknown */ + HRESULT (STDMETHODCALLTYPE * QueryInterface)(ma_IDirectSoundNotify* pThis, const IID* const riid, void** ppObject); + ULONG (STDMETHODCALLTYPE * AddRef) (ma_IDirectSoundNotify* pThis); + ULONG (STDMETHODCALLTYPE * Release) (ma_IDirectSoundNotify* pThis); + + /* IDirectSoundNotify */ + HRESULT (STDMETHODCALLTYPE * SetNotificationPositions)(ma_IDirectSoundNotify* pThis, DWORD dwPositionNotifies, const MA_DSBPOSITIONNOTIFY* pPositionNotifies); +} ma_IDirectSoundNotifyVtbl; +struct ma_IDirectSoundNotify +{ + ma_IDirectSoundNotifyVtbl* lpVtbl; +}; +static MA_INLINE HRESULT ma_IDirectSoundNotify_QueryInterface(ma_IDirectSoundNotify* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } +static MA_INLINE ULONG ma_IDirectSoundNotify_AddRef(ma_IDirectSoundNotify* pThis) { return pThis->lpVtbl->AddRef(pThis); } +static MA_INLINE ULONG ma_IDirectSoundNotify_Release(ma_IDirectSoundNotify* pThis) { return pThis->lpVtbl->Release(pThis); } +static MA_INLINE HRESULT ma_IDirectSoundNotify_SetNotificationPositions(ma_IDirectSoundNotify* pThis, DWORD dwPositionNotifies, const MA_DSBPOSITIONNOTIFY* pPositionNotifies) { return pThis->lpVtbl->SetNotificationPositions(pThis, dwPositionNotifies, pPositionNotifies); } + + +typedef BOOL (CALLBACK * ma_DSEnumCallbackAProc) (LPGUID pDeviceGUID, LPCSTR pDeviceDescription, LPCSTR pModule, LPVOID pContext); +typedef HRESULT (WINAPI * ma_DirectSoundCreateProc) (const GUID* pcGuidDevice, ma_IDirectSound** ppDS8, LPUNKNOWN pUnkOuter); +typedef HRESULT (WINAPI * ma_DirectSoundEnumerateAProc) (ma_DSEnumCallbackAProc pDSEnumCallback, LPVOID pContext); +typedef HRESULT (WINAPI * ma_DirectSoundCaptureCreateProc) (const GUID* pcGuidDevice, ma_IDirectSoundCapture** ppDSC8, LPUNKNOWN pUnkOuter); +typedef HRESULT (WINAPI * ma_DirectSoundCaptureEnumerateAProc)(ma_DSEnumCallbackAProc pDSEnumCallback, LPVOID pContext); + +static ma_uint32 ma_get_best_sample_rate_within_range(ma_uint32 sampleRateMin, ma_uint32 sampleRateMax) +{ + /* Normalize the range in case we were given something stupid. */ + if (sampleRateMin < (ma_uint32)ma_standard_sample_rate_min) { + sampleRateMin = (ma_uint32)ma_standard_sample_rate_min; + } + if (sampleRateMax > (ma_uint32)ma_standard_sample_rate_max) { + sampleRateMax = (ma_uint32)ma_standard_sample_rate_max; + } + if (sampleRateMin > sampleRateMax) { + sampleRateMin = sampleRateMax; + } + + if (sampleRateMin == sampleRateMax) { + return sampleRateMax; + } else { + size_t iStandardRate; + for (iStandardRate = 0; iStandardRate < ma_countof(g_maStandardSampleRatePriorities); ++iStandardRate) { + ma_uint32 standardRate = g_maStandardSampleRatePriorities[iStandardRate]; + if (standardRate >= sampleRateMin && standardRate <= sampleRateMax) { + return standardRate; + } + } + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return 0; +} + +/* +Retrieves the channel count and channel map for the given speaker configuration. If the speaker configuration is unknown, +the channel count and channel map will be left unmodified. +*/ +static void ma_get_channels_from_speaker_config__dsound(DWORD speakerConfig, WORD* pChannelsOut, DWORD* pChannelMapOut) +{ + WORD channels; + DWORD channelMap; + + channels = 0; + if (pChannelsOut != NULL) { + channels = *pChannelsOut; + } + + channelMap = 0; + if (pChannelMapOut != NULL) { + channelMap = *pChannelMapOut; + } + + /* + The speaker configuration is a combination of speaker config and speaker geometry. The lower 8 bits is what we care about. The upper + 16 bits is for the geometry. + */ + switch ((BYTE)(speakerConfig)) { + case 1 /*DSSPEAKER_HEADPHONE*/: channels = 2; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; break; + case 2 /*DSSPEAKER_MONO*/: channels = 1; channelMap = SPEAKER_FRONT_CENTER; break; + case 3 /*DSSPEAKER_QUAD*/: channels = 4; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT; break; + case 4 /*DSSPEAKER_STEREO*/: channels = 2; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; break; + case 5 /*DSSPEAKER_SURROUND*/: channels = 4; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER; break; + case 6 /*DSSPEAKER_5POINT1_BACK*/ /*DSSPEAKER_5POINT1*/: channels = 6; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT; break; + case 7 /*DSSPEAKER_7POINT1_WIDE*/ /*DSSPEAKER_7POINT1*/: channels = 8; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER; break; + case 8 /*DSSPEAKER_7POINT1_SURROUND*/: channels = 8; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; break; + case 9 /*DSSPEAKER_5POINT1_SURROUND*/: channels = 6; channelMap = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT; break; + default: break; + } + + if (pChannelsOut != NULL) { + *pChannelsOut = channels; + } + + if (pChannelMapOut != NULL) { + *pChannelMapOut = channelMap; + } +} + + +static ma_result ma_context_create_IDirectSound__dsound(ma_context* pContext, ma_share_mode shareMode, const ma_device_id* pDeviceID, ma_IDirectSound** ppDirectSound) +{ + ma_IDirectSound* pDirectSound; + HWND hWnd; + HRESULT hr; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppDirectSound != NULL); + + *ppDirectSound = NULL; + pDirectSound = NULL; + + if (FAILED(((ma_DirectSoundCreateProc)pContext->dsound.DirectSoundCreate)((pDeviceID == NULL) ? NULL : (const GUID*)pDeviceID->dsound, &pDirectSound, NULL))) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[DirectSound] DirectSoundCreate() failed for playback device.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + /* The cooperative level must be set before doing anything else. */ + hWnd = ((MA_PFN_GetForegroundWindow)pContext->win32.GetForegroundWindow)(); + if (hWnd == NULL) { + hWnd = ((MA_PFN_GetDesktopWindow)pContext->win32.GetDesktopWindow)(); + } + + hr = ma_IDirectSound_SetCooperativeLevel(pDirectSound, hWnd, (shareMode == ma_share_mode_exclusive) ? MA_DSSCL_EXCLUSIVE : MA_DSSCL_PRIORITY); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSound_SetCooperateiveLevel() failed for playback device.", ma_result_from_HRESULT(hr)); + } + + *ppDirectSound = pDirectSound; + return MA_SUCCESS; +} + +static ma_result ma_context_create_IDirectSoundCapture__dsound(ma_context* pContext, ma_share_mode shareMode, const ma_device_id* pDeviceID, ma_IDirectSoundCapture** ppDirectSoundCapture) +{ + ma_IDirectSoundCapture* pDirectSoundCapture; + HRESULT hr; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppDirectSoundCapture != NULL); + + /* DirectSound does not support exclusive mode for capture. */ + if (shareMode == ma_share_mode_exclusive) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + *ppDirectSoundCapture = NULL; + pDirectSoundCapture = NULL; + + hr = ((ma_DirectSoundCaptureCreateProc)pContext->dsound.DirectSoundCaptureCreate)((pDeviceID == NULL) ? NULL : (const GUID*)pDeviceID->dsound, &pDirectSoundCapture, NULL); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[DirectSound] DirectSoundCaptureCreate() failed for capture device.", ma_result_from_HRESULT(hr)); + } + + *ppDirectSoundCapture = pDirectSoundCapture; + return MA_SUCCESS; +} + +static ma_result ma_context_get_format_info_for_IDirectSoundCapture__dsound(ma_context* pContext, ma_IDirectSoundCapture* pDirectSoundCapture, WORD* pChannels, WORD* pBitsPerSample, DWORD* pSampleRate) +{ + HRESULT hr; + MA_DSCCAPS caps; + WORD bitsPerSample; + DWORD sampleRate; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDirectSoundCapture != NULL); + + if (pChannels) { + *pChannels = 0; + } + if (pBitsPerSample) { + *pBitsPerSample = 0; + } + if (pSampleRate) { + *pSampleRate = 0; + } + + MA_ZERO_OBJECT(&caps); + caps.dwSize = sizeof(caps); + hr = ma_IDirectSoundCapture_GetCaps(pDirectSoundCapture, &caps); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundCapture_GetCaps() failed for capture device.", ma_result_from_HRESULT(hr)); + } + + if (pChannels) { + *pChannels = (WORD)caps.dwChannels; + } + + /* The device can support multiple formats. We just go through the different formats in order of priority and pick the first one. This the same type of system as the WinMM backend. */ + bitsPerSample = 16; + sampleRate = 48000; + + if (caps.dwChannels == 1) { + if ((caps.dwFormats & WAVE_FORMAT_48M16) != 0) { + sampleRate = 48000; + } else if ((caps.dwFormats & WAVE_FORMAT_44M16) != 0) { + sampleRate = 44100; + } else if ((caps.dwFormats & WAVE_FORMAT_2M16) != 0) { + sampleRate = 22050; + } else if ((caps.dwFormats & WAVE_FORMAT_1M16) != 0) { + sampleRate = 11025; + } else if ((caps.dwFormats & WAVE_FORMAT_96M16) != 0) { + sampleRate = 96000; + } else { + bitsPerSample = 8; + if ((caps.dwFormats & WAVE_FORMAT_48M08) != 0) { + sampleRate = 48000; + } else if ((caps.dwFormats & WAVE_FORMAT_44M08) != 0) { + sampleRate = 44100; + } else if ((caps.dwFormats & WAVE_FORMAT_2M08) != 0) { + sampleRate = 22050; + } else if ((caps.dwFormats & WAVE_FORMAT_1M08) != 0) { + sampleRate = 11025; + } else if ((caps.dwFormats & WAVE_FORMAT_96M08) != 0) { + sampleRate = 96000; + } else { + bitsPerSample = 16; /* Didn't find it. Just fall back to 16-bit. */ + } + } + } else if (caps.dwChannels == 2) { + if ((caps.dwFormats & WAVE_FORMAT_48S16) != 0) { + sampleRate = 48000; + } else if ((caps.dwFormats & WAVE_FORMAT_44S16) != 0) { + sampleRate = 44100; + } else if ((caps.dwFormats & WAVE_FORMAT_2S16) != 0) { + sampleRate = 22050; + } else if ((caps.dwFormats & WAVE_FORMAT_1S16) != 0) { + sampleRate = 11025; + } else if ((caps.dwFormats & WAVE_FORMAT_96S16) != 0) { + sampleRate = 96000; + } else { + bitsPerSample = 8; + if ((caps.dwFormats & WAVE_FORMAT_48S08) != 0) { + sampleRate = 48000; + } else if ((caps.dwFormats & WAVE_FORMAT_44S08) != 0) { + sampleRate = 44100; + } else if ((caps.dwFormats & WAVE_FORMAT_2S08) != 0) { + sampleRate = 22050; + } else if ((caps.dwFormats & WAVE_FORMAT_1S08) != 0) { + sampleRate = 11025; + } else if ((caps.dwFormats & WAVE_FORMAT_96S08) != 0) { + sampleRate = 96000; + } else { + bitsPerSample = 16; /* Didn't find it. Just fall back to 16-bit. */ + } + } + } + + if (pBitsPerSample) { + *pBitsPerSample = bitsPerSample; + } + if (pSampleRate) { + *pSampleRate = sampleRate; + } + + return MA_SUCCESS; +} + + +typedef struct +{ + ma_context* pContext; + ma_device_type deviceType; + ma_enum_devices_callback_proc callback; + void* pUserData; + ma_bool32 terminated; +} ma_context_enumerate_devices_callback_data__dsound; + +static BOOL CALLBACK ma_context_enumerate_devices_callback__dsound(LPGUID lpGuid, LPCSTR lpcstrDescription, LPCSTR lpcstrModule, LPVOID lpContext) +{ + ma_context_enumerate_devices_callback_data__dsound* pData = (ma_context_enumerate_devices_callback_data__dsound*)lpContext; + ma_device_info deviceInfo; + + (void)lpcstrModule; + + MA_ZERO_OBJECT(&deviceInfo); + + /* ID. */ + if (lpGuid != NULL) { + MA_COPY_MEMORY(deviceInfo.id.dsound, lpGuid, 16); + } else { + MA_ZERO_MEMORY(deviceInfo.id.dsound, 16); + deviceInfo.isDefault = MA_TRUE; + } + + /* Name / Description */ + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), lpcstrDescription, (size_t)-1); + + + /* Call the callback function, but make sure we stop enumerating if the callee requested so. */ + MA_ASSERT(pData != NULL); + pData->terminated = !pData->callback(pData->pContext, pData->deviceType, &deviceInfo, pData->pUserData); + if (pData->terminated) { + return FALSE; /* Stop enumeration. */ + } else { + return TRUE; /* Continue enumeration. */ + } +} + +static ma_result ma_context_enumerate_devices__dsound(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_context_enumerate_devices_callback_data__dsound data; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + data.pContext = pContext; + data.callback = callback; + data.pUserData = pUserData; + data.terminated = MA_FALSE; + + /* Playback. */ + if (!data.terminated) { + data.deviceType = ma_device_type_playback; + ((ma_DirectSoundEnumerateAProc)pContext->dsound.DirectSoundEnumerateA)(ma_context_enumerate_devices_callback__dsound, &data); + } + + /* Capture. */ + if (!data.terminated) { + data.deviceType = ma_device_type_capture; + ((ma_DirectSoundCaptureEnumerateAProc)pContext->dsound.DirectSoundCaptureEnumerateA)(ma_context_enumerate_devices_callback__dsound, &data); + } + + return MA_SUCCESS; +} + + +typedef struct +{ + const ma_device_id* pDeviceID; + ma_device_info* pDeviceInfo; + ma_bool32 found; +} ma_context_get_device_info_callback_data__dsound; + +static BOOL CALLBACK ma_context_get_device_info_callback__dsound(LPGUID lpGuid, LPCSTR lpcstrDescription, LPCSTR lpcstrModule, LPVOID lpContext) +{ + ma_context_get_device_info_callback_data__dsound* pData = (ma_context_get_device_info_callback_data__dsound*)lpContext; + MA_ASSERT(pData != NULL); + + if ((pData->pDeviceID == NULL || ma_is_guid_null(pData->pDeviceID->dsound)) && (lpGuid == NULL || ma_is_guid_null(lpGuid))) { + /* Default device. */ + ma_strncpy_s(pData->pDeviceInfo->name, sizeof(pData->pDeviceInfo->name), lpcstrDescription, (size_t)-1); + pData->pDeviceInfo->isDefault = MA_TRUE; + pData->found = MA_TRUE; + return FALSE; /* Stop enumeration. */ + } else { + /* Not the default device. */ + if (lpGuid != NULL && pData->pDeviceID != NULL) { + if (memcmp(pData->pDeviceID->dsound, lpGuid, sizeof(pData->pDeviceID->dsound)) == 0) { + ma_strncpy_s(pData->pDeviceInfo->name, sizeof(pData->pDeviceInfo->name), lpcstrDescription, (size_t)-1); + pData->found = MA_TRUE; + return FALSE; /* Stop enumeration. */ + } + } + } + + (void)lpcstrModule; + return TRUE; +} + +static ma_result ma_context_get_device_info__dsound(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + ma_result result; + HRESULT hr; + + if (pDeviceID != NULL) { + ma_context_get_device_info_callback_data__dsound data; + + /* ID. */ + MA_COPY_MEMORY(pDeviceInfo->id.dsound, pDeviceID->dsound, 16); + + /* Name / Description. This is retrieved by enumerating over each device until we find that one that matches the input ID. */ + data.pDeviceID = pDeviceID; + data.pDeviceInfo = pDeviceInfo; + data.found = MA_FALSE; + if (deviceType == ma_device_type_playback) { + ((ma_DirectSoundEnumerateAProc)pContext->dsound.DirectSoundEnumerateA)(ma_context_get_device_info_callback__dsound, &data); + } else { + ((ma_DirectSoundCaptureEnumerateAProc)pContext->dsound.DirectSoundCaptureEnumerateA)(ma_context_get_device_info_callback__dsound, &data); + } + + if (!data.found) { + return MA_NO_DEVICE; + } + } else { + /* I don't think there's a way to get the name of the default device with DirectSound. In this case we just need to use defaults. */ + + /* ID */ + MA_ZERO_MEMORY(pDeviceInfo->id.dsound, 16); + + /* Name / Description */ + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + + pDeviceInfo->isDefault = MA_TRUE; + } + + /* Retrieving detailed information is slightly different depending on the device type. */ + if (deviceType == ma_device_type_playback) { + /* Playback. */ + ma_IDirectSound* pDirectSound; + MA_DSCAPS caps; + WORD channels; + + result = ma_context_create_IDirectSound__dsound(pContext, ma_share_mode_shared, pDeviceID, &pDirectSound); + if (result != MA_SUCCESS) { + return result; + } + + MA_ZERO_OBJECT(&caps); + caps.dwSize = sizeof(caps); + hr = ma_IDirectSound_GetCaps(pDirectSound, &caps); + if (FAILED(hr)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSound_GetCaps() failed for playback device.", ma_result_from_HRESULT(hr)); + } + + + /* Channels. Only a single channel count is reported for DirectSound. */ + if ((caps.dwFlags & MA_DSCAPS_PRIMARYSTEREO) != 0) { + /* It supports at least stereo, but could support more. */ + DWORD speakerConfig; + + channels = 2; + + /* Look at the speaker configuration to get a better idea on the channel count. */ + hr = ma_IDirectSound_GetSpeakerConfig(pDirectSound, &speakerConfig); + if (SUCCEEDED(hr)) { + ma_get_channels_from_speaker_config__dsound(speakerConfig, &channels, NULL); + } + } else { + /* It does not support stereo, which means we are stuck with mono. */ + channels = 1; + } + + + /* + In DirectSound, our native formats are centered around sample rates. All formats are supported, and we're only reporting a single channel + count. However, DirectSound can report a range of supported sample rates. We're only going to include standard rates known by miniaudio + in order to keep the size of this within reason. + */ + if ((caps.dwFlags & MA_DSCAPS_CONTINUOUSRATE) != 0) { + /* Multiple sample rates are supported. We'll report in order of our preferred sample rates. */ + size_t iStandardSampleRate; + for (iStandardSampleRate = 0; iStandardSampleRate < ma_countof(g_maStandardSampleRatePriorities); iStandardSampleRate += 1) { + ma_uint32 sampleRate = g_maStandardSampleRatePriorities[iStandardSampleRate]; + if (sampleRate >= caps.dwMinSecondarySampleRate && sampleRate <= caps.dwMaxSecondarySampleRate) { + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].format = ma_format_unknown; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].channels = channels; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].sampleRate = sampleRate; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].flags = 0; + pDeviceInfo->nativeDataFormatCount += 1; + } + } + } else { + /* Only a single sample rate is supported. */ + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].format = ma_format_unknown; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].channels = channels; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].sampleRate = caps.dwMaxSecondarySampleRate; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].flags = 0; + pDeviceInfo->nativeDataFormatCount += 1; + } + + ma_IDirectSound_Release(pDirectSound); + } else { + /* + Capture. This is a little different to playback due to the say the supported formats are reported. Technically capture + devices can support a number of different formats, but for simplicity and consistency with ma_device_init() I'm just + reporting the best format. + */ + ma_IDirectSoundCapture* pDirectSoundCapture; + WORD channels; + WORD bitsPerSample; + DWORD sampleRate; + + result = ma_context_create_IDirectSoundCapture__dsound(pContext, ma_share_mode_shared, pDeviceID, &pDirectSoundCapture); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_context_get_format_info_for_IDirectSoundCapture__dsound(pContext, pDirectSoundCapture, &channels, &bitsPerSample, &sampleRate); + if (result != MA_SUCCESS) { + ma_IDirectSoundCapture_Release(pDirectSoundCapture); + return result; + } + + ma_IDirectSoundCapture_Release(pDirectSoundCapture); + + /* The format is always an integer format and is based on the bits per sample. */ + if (bitsPerSample == 8) { + pDeviceInfo->formats[0] = ma_format_u8; + } else if (bitsPerSample == 16) { + pDeviceInfo->formats[0] = ma_format_s16; + } else if (bitsPerSample == 24) { + pDeviceInfo->formats[0] = ma_format_s24; + } else if (bitsPerSample == 32) { + pDeviceInfo->formats[0] = ma_format_s32; + } else { + return MA_FORMAT_NOT_SUPPORTED; + } + + pDeviceInfo->nativeDataFormats[0].channels = channels; + pDeviceInfo->nativeDataFormats[0].sampleRate = sampleRate; + pDeviceInfo->nativeDataFormats[0].flags = 0; + pDeviceInfo->nativeDataFormatCount = 1; + } + + return MA_SUCCESS; +} + + + +static ma_result ma_device_uninit__dsound(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->dsound.pCaptureBuffer != NULL) { + ma_IDirectSoundCaptureBuffer_Release((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer); + } + if (pDevice->dsound.pCapture != NULL) { + ma_IDirectSoundCapture_Release((ma_IDirectSoundCapture*)pDevice->dsound.pCapture); + } + + if (pDevice->dsound.pPlaybackBuffer != NULL) { + ma_IDirectSoundBuffer_Release((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer); + } + if (pDevice->dsound.pPlaybackPrimaryBuffer != NULL) { + ma_IDirectSoundBuffer_Release((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer); + } + if (pDevice->dsound.pPlayback != NULL) { + ma_IDirectSound_Release((ma_IDirectSound*)pDevice->dsound.pPlayback); + } + + return MA_SUCCESS; +} + +static ma_result ma_config_to_WAVEFORMATEXTENSIBLE(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, const ma_channel* pChannelMap, WAVEFORMATEXTENSIBLE* pWF) +{ + GUID subformat; + + if (format == ma_format_unknown) { + format = MA_DEFAULT_FORMAT; + } + + if (channels == 0) { + channels = MA_DEFAULT_CHANNELS; + } + + if (sampleRate == 0) { + sampleRate = MA_DEFAULT_SAMPLE_RATE; + } + + switch (format) + { + case ma_format_u8: + case ma_format_s16: + case ma_format_s24: + /*case ma_format_s24_32:*/ + case ma_format_s32: + { + subformat = MA_GUID_KSDATAFORMAT_SUBTYPE_PCM; + } break; + + case ma_format_f32: + { + subformat = MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; + } break; + + default: + return MA_FORMAT_NOT_SUPPORTED; + } + + MA_ZERO_OBJECT(pWF); + pWF->Format.cbSize = sizeof(*pWF); + pWF->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; + pWF->Format.nChannels = (WORD)channels; + pWF->Format.nSamplesPerSec = (DWORD)sampleRate; + pWF->Format.wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8); + pWF->Format.nBlockAlign = (WORD)(pWF->Format.nChannels * pWF->Format.wBitsPerSample / 8); + pWF->Format.nAvgBytesPerSec = pWF->Format.nBlockAlign * pWF->Format.nSamplesPerSec; + pWF->Samples.wValidBitsPerSample = pWF->Format.wBitsPerSample; + pWF->dwChannelMask = ma_channel_map_to_channel_mask__win32(pChannelMap, channels); + pWF->SubFormat = subformat; + + return MA_SUCCESS; +} + +static ma_uint32 ma_calculate_period_size_in_frames_from_descriptor__dsound(const ma_device_descriptor* pDescriptor, ma_uint32 nativeSampleRate, ma_performance_profile performanceProfile) +{ + /* DirectSound has a minimum period size of 20ms. */ + ma_uint32 minPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(20, nativeSampleRate); + ma_uint32 periodSizeInFrames; + + periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, nativeSampleRate, performanceProfile); + if (periodSizeInFrames < minPeriodSizeInFrames) { + periodSizeInFrames = minPeriodSizeInFrames; + } + + return periodSizeInFrames; +} + +static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + ma_result result; + HRESULT hr; + + MA_ASSERT(pDevice != NULL); + + MA_ZERO_OBJECT(&pDevice->dsound); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* + Unfortunately DirectSound uses different APIs and data structures for playback and catpure devices. We need to initialize + the capture device first because we'll want to match it's buffer size and period count on the playback side if we're using + full-duplex mode. + */ + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + WAVEFORMATEXTENSIBLE wf; + MA_DSCBUFFERDESC descDS; + ma_uint32 periodSizeInFrames; + ma_uint32 periodCount; + char rawdata[1024]; /* <-- Ugly hack to avoid a malloc() due to a crappy DirectSound API. */ + WAVEFORMATEXTENSIBLE* pActualFormat; + + result = ma_config_to_WAVEFORMATEXTENSIBLE(pDescriptorCapture->format, pDescriptorCapture->channels, pDescriptorCapture->sampleRate, pDescriptorCapture->channelMap, &wf); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_context_create_IDirectSoundCapture__dsound(pDevice->pContext, pDescriptorCapture->shareMode, pDescriptorCapture->pDeviceID, (ma_IDirectSoundCapture**)&pDevice->dsound.pCapture); + if (result != MA_SUCCESS) { + ma_device_uninit__dsound(pDevice); + return result; + } + + result = ma_context_get_format_info_for_IDirectSoundCapture__dsound(pDevice->pContext, (ma_IDirectSoundCapture*)pDevice->dsound.pCapture, &wf.Format.nChannels, &wf.Format.wBitsPerSample, &wf.Format.nSamplesPerSec); + if (result != MA_SUCCESS) { + ma_device_uninit__dsound(pDevice); + return result; + } + + wf.Format.nBlockAlign = (WORD)(wf.Format.nChannels * wf.Format.wBitsPerSample / 8); + wf.Format.nAvgBytesPerSec = wf.Format.nBlockAlign * wf.Format.nSamplesPerSec; + wf.Samples.wValidBitsPerSample = wf.Format.wBitsPerSample; + wf.SubFormat = MA_GUID_KSDATAFORMAT_SUBTYPE_PCM; + + /* The size of the buffer must be a clean multiple of the period count. */ + periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__dsound(pDescriptorCapture, wf.Format.nSamplesPerSec, pConfig->performanceProfile); + periodCount = (pDescriptorCapture->periodCount > 0) ? pDescriptorCapture->periodCount : MA_DEFAULT_PERIODS; + + MA_ZERO_OBJECT(&descDS); + descDS.dwSize = sizeof(descDS); + descDS.dwFlags = 0; + descDS.dwBufferBytes = periodSizeInFrames * periodCount * wf.Format.nBlockAlign; + descDS.lpwfxFormat = (WAVEFORMATEX*)&wf; + hr = ma_IDirectSoundCapture_CreateCaptureBuffer((ma_IDirectSoundCapture*)pDevice->dsound.pCapture, &descDS, (ma_IDirectSoundCaptureBuffer**)&pDevice->dsound.pCaptureBuffer, NULL); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundCapture_CreateCaptureBuffer() failed for capture device.", ma_result_from_HRESULT(hr)); + } + + /* Get the _actual_ properties of the buffer. */ + pActualFormat = (WAVEFORMATEXTENSIBLE*)rawdata; + hr = ma_IDirectSoundCaptureBuffer_GetFormat((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, (WAVEFORMATEX*)pActualFormat, sizeof(rawdata), NULL); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to retrieve the actual format of the capture device's buffer.", ma_result_from_HRESULT(hr)); + } + + /* We can now start setting the output data formats. */ + pDescriptorCapture->format = ma_format_from_WAVEFORMATEX((WAVEFORMATEX*)pActualFormat); + pDescriptorCapture->channels = pActualFormat->Format.nChannels; + pDescriptorCapture->sampleRate = pActualFormat->Format.nSamplesPerSec; + + /* Get the native channel map based on the channel mask. */ + if (pActualFormat->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) { + ma_channel_mask_to_channel_map__win32(pActualFormat->dwChannelMask, pDescriptorCapture->channels, pDescriptorCapture->channelMap); + } else { + ma_channel_mask_to_channel_map__win32(wf.dwChannelMask, pDescriptorCapture->channels, pDescriptorCapture->channelMap); + } + + /* + After getting the actual format the size of the buffer in frames may have actually changed. However, we want this to be as close to what the + user has asked for as possible, so let's go ahead and release the old capture buffer and create a new one in this case. + */ + if (periodSizeInFrames != (descDS.dwBufferBytes / ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels) / periodCount)) { + descDS.dwBufferBytes = periodSizeInFrames * ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels) * periodCount; + ma_IDirectSoundCaptureBuffer_Release((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer); + + hr = ma_IDirectSoundCapture_CreateCaptureBuffer((ma_IDirectSoundCapture*)pDevice->dsound.pCapture, &descDS, (ma_IDirectSoundCaptureBuffer**)&pDevice->dsound.pCaptureBuffer, NULL); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Second attempt at IDirectSoundCapture_CreateCaptureBuffer() failed for capture device.", ma_result_from_HRESULT(hr)); + } + } + + /* DirectSound should give us a buffer exactly the size we asked for. */ + pDescriptorCapture->periodSizeInFrames = periodSizeInFrames; + pDescriptorCapture->periodCount = periodCount; + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + WAVEFORMATEXTENSIBLE wf; + MA_DSBUFFERDESC descDSPrimary; + MA_DSCAPS caps; + char rawdata[1024]; /* <-- Ugly hack to avoid a malloc() due to a crappy DirectSound API. */ + WAVEFORMATEXTENSIBLE* pActualFormat; + ma_uint32 periodSizeInFrames; + ma_uint32 periodCount; + MA_DSBUFFERDESC descDS; + + result = ma_config_to_WAVEFORMATEXTENSIBLE(pDescriptorPlayback->format, pDescriptorPlayback->channels, pDescriptorPlayback->sampleRate, pDescriptorPlayback->channelMap, &wf); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_context_create_IDirectSound__dsound(pDevice->pContext, pDescriptorPlayback->shareMode, pDescriptorPlayback->pDeviceID, (ma_IDirectSound**)&pDevice->dsound.pPlayback); + if (result != MA_SUCCESS) { + ma_device_uninit__dsound(pDevice); + return result; + } + + MA_ZERO_OBJECT(&descDSPrimary); + descDSPrimary.dwSize = sizeof(MA_DSBUFFERDESC); + descDSPrimary.dwFlags = MA_DSBCAPS_PRIMARYBUFFER | MA_DSBCAPS_CTRLVOLUME; + hr = ma_IDirectSound_CreateSoundBuffer((ma_IDirectSound*)pDevice->dsound.pPlayback, &descDSPrimary, (ma_IDirectSoundBuffer**)&pDevice->dsound.pPlaybackPrimaryBuffer, NULL); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSound_CreateSoundBuffer() failed for playback device's primary buffer.", ma_result_from_HRESULT(hr)); + } + + + /* We may want to make some adjustments to the format if we are using defaults. */ + MA_ZERO_OBJECT(&caps); + caps.dwSize = sizeof(caps); + hr = ma_IDirectSound_GetCaps((ma_IDirectSound*)pDevice->dsound.pPlayback, &caps); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSound_GetCaps() failed for playback device.", ma_result_from_HRESULT(hr)); + } + + if (pDescriptorPlayback->channels == 0) { + if ((caps.dwFlags & MA_DSCAPS_PRIMARYSTEREO) != 0) { + DWORD speakerConfig; + + /* It supports at least stereo, but could support more. */ + wf.Format.nChannels = 2; + + /* Look at the speaker configuration to get a better idea on the channel count. */ + if (SUCCEEDED(ma_IDirectSound_GetSpeakerConfig((ma_IDirectSound*)pDevice->dsound.pPlayback, &speakerConfig))) { + ma_get_channels_from_speaker_config__dsound(speakerConfig, &wf.Format.nChannels, &wf.dwChannelMask); + } + } else { + /* It does not support stereo, which means we are stuck with mono. */ + wf.Format.nChannels = 1; + } + } + + if (pDescriptorPlayback->sampleRate == 0) { + /* We base the sample rate on the values returned by GetCaps(). */ + if ((caps.dwFlags & MA_DSCAPS_CONTINUOUSRATE) != 0) { + wf.Format.nSamplesPerSec = ma_get_best_sample_rate_within_range(caps.dwMinSecondarySampleRate, caps.dwMaxSecondarySampleRate); + } else { + wf.Format.nSamplesPerSec = caps.dwMaxSecondarySampleRate; + } + } + + wf.Format.nBlockAlign = (WORD)(wf.Format.nChannels * wf.Format.wBitsPerSample / 8); + wf.Format.nAvgBytesPerSec = wf.Format.nBlockAlign * wf.Format.nSamplesPerSec; + + /* + From MSDN: + + The method succeeds even if the hardware does not support the requested format; DirectSound sets the buffer to the closest + supported format. To determine whether this has happened, an application can call the GetFormat method for the primary buffer + and compare the result with the format that was requested with the SetFormat method. + */ + hr = ma_IDirectSoundBuffer_SetFormat((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer, (WAVEFORMATEX*)&wf); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to set format of playback device's primary buffer.", ma_result_from_HRESULT(hr)); + } + + /* Get the _actual_ properties of the buffer. */ + pActualFormat = (WAVEFORMATEXTENSIBLE*)rawdata; + hr = ma_IDirectSoundBuffer_GetFormat((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer, (WAVEFORMATEX*)pActualFormat, sizeof(rawdata), NULL); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to retrieve the actual format of the playback device's primary buffer.", ma_result_from_HRESULT(hr)); + } + + /* We now have enough information to start setting some output properties. */ + pDescriptorPlayback->format = ma_format_from_WAVEFORMATEX((WAVEFORMATEX*)pActualFormat); + pDescriptorPlayback->channels = pActualFormat->Format.nChannels; + pDescriptorPlayback->sampleRate = pActualFormat->Format.nSamplesPerSec; + + /* Get the internal channel map based on the channel mask. */ + if (pActualFormat->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) { + ma_channel_mask_to_channel_map__win32(pActualFormat->dwChannelMask, pDescriptorPlayback->channels, pDescriptorPlayback->channelMap); + } else { + ma_channel_mask_to_channel_map__win32(wf.dwChannelMask, pDescriptorPlayback->channels, pDescriptorPlayback->channelMap); + } + + /* The size of the buffer must be a clean multiple of the period count. */ + periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__dsound(pDescriptorPlayback, pDescriptorPlayback->sampleRate, pConfig->performanceProfile); + periodCount = (pDescriptorPlayback->periodCount > 0) ? pDescriptorPlayback->periodCount : MA_DEFAULT_PERIODS; + + /* + Meaning of dwFlags (from MSDN): + + DSBCAPS_CTRLPOSITIONNOTIFY + The buffer has position notification capability. + + DSBCAPS_GLOBALFOCUS + With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to + another application, even if the new application uses DirectSound. + + DSBCAPS_GETCURRENTPOSITION2 + In the first version of DirectSound, the play cursor was significantly ahead of the actual playing sound on emulated + sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the + application can get a more accurate play cursor. + */ + MA_ZERO_OBJECT(&descDS); + descDS.dwSize = sizeof(descDS); + descDS.dwFlags = MA_DSBCAPS_CTRLPOSITIONNOTIFY | MA_DSBCAPS_GLOBALFOCUS | MA_DSBCAPS_GETCURRENTPOSITION2; + descDS.dwBufferBytes = periodSizeInFrames * periodCount * ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels); + descDS.lpwfxFormat = (WAVEFORMATEX*)&wf; + hr = ma_IDirectSound_CreateSoundBuffer((ma_IDirectSound*)pDevice->dsound.pPlayback, &descDS, (ma_IDirectSoundBuffer**)&pDevice->dsound.pPlaybackBuffer, NULL); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSound_CreateSoundBuffer() failed for playback device's secondary buffer.", ma_result_from_HRESULT(hr)); + } + + /* DirectSound should give us a buffer exactly the size we asked for. */ + pDescriptorPlayback->periodSizeInFrames = periodSizeInFrames; + pDescriptorPlayback->periodCount = periodCount; + } + + return MA_SUCCESS; +} + + +static ma_result ma_device_data_loop__dsound(ma_device* pDevice) +{ + ma_result result = MA_SUCCESS; + ma_uint32 bpfDeviceCapture = ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + ma_uint32 bpfDevicePlayback = ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + HRESULT hr; + DWORD lockOffsetInBytesCapture; + DWORD lockSizeInBytesCapture; + DWORD mappedSizeInBytesCapture; + DWORD mappedDeviceFramesProcessedCapture; + void* pMappedDeviceBufferCapture; + DWORD lockOffsetInBytesPlayback; + DWORD lockSizeInBytesPlayback; + DWORD mappedSizeInBytesPlayback; + void* pMappedDeviceBufferPlayback; + DWORD prevReadCursorInBytesCapture = 0; + DWORD prevPlayCursorInBytesPlayback = 0; + ma_bool32 physicalPlayCursorLoopFlagPlayback = 0; + DWORD virtualWriteCursorInBytesPlayback = 0; + ma_bool32 virtualWriteCursorLoopFlagPlayback = 0; + ma_bool32 isPlaybackDeviceStarted = MA_FALSE; + ma_uint32 framesWrittenToPlaybackDevice = 0; /* For knowing whether or not the playback device needs to be started. */ + ma_uint32 waitTimeInMilliseconds = 1; + + MA_ASSERT(pDevice != NULL); + + /* The first thing to do is start the capture device. The playback device is only started after the first period is written. */ + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + if (FAILED(ma_IDirectSoundCaptureBuffer_Start((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, MA_DSCBSTART_LOOPING))) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundCaptureBuffer_Start() failed.", MA_FAILED_TO_START_BACKEND_DEVICE); + } + } + + while (ma_device_get_state(pDevice) == MA_STATE_STARTED) { + switch (pDevice->type) + { + case ma_device_type_duplex: + { + DWORD physicalCaptureCursorInBytes; + DWORD physicalReadCursorInBytes; + hr = ma_IDirectSoundCaptureBuffer_GetCurrentPosition((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, &physicalCaptureCursorInBytes, &physicalReadCursorInBytes); + if (FAILED(hr)) { + return ma_result_from_HRESULT(hr); + } + + /* If nothing is available we just sleep for a bit and return from this iteration. */ + if (physicalReadCursorInBytes == prevReadCursorInBytesCapture) { + ma_sleep(waitTimeInMilliseconds); + continue; /* Nothing is available in the capture buffer. */ + } + + /* + The current position has moved. We need to map all of the captured samples and write them to the playback device, making sure + we don't return until every frame has been copied over. + */ + if (prevReadCursorInBytesCapture < physicalReadCursorInBytes) { + /* The capture position has not looped. This is the simple case. */ + lockOffsetInBytesCapture = prevReadCursorInBytesCapture; + lockSizeInBytesCapture = (physicalReadCursorInBytes - prevReadCursorInBytesCapture); + } else { + /* + The capture position has looped. This is the more complex case. Map to the end of the buffer. If this does not return anything, + do it again from the start. + */ + if (prevReadCursorInBytesCapture < pDevice->capture.internalPeriodSizeInFrames*pDevice->capture.internalPeriods*bpfDeviceCapture) { + /* Lock up to the end of the buffer. */ + lockOffsetInBytesCapture = prevReadCursorInBytesCapture; + lockSizeInBytesCapture = (pDevice->capture.internalPeriodSizeInFrames*pDevice->capture.internalPeriods*bpfDeviceCapture) - prevReadCursorInBytesCapture; + } else { + /* Lock starting from the start of the buffer. */ + lockOffsetInBytesCapture = 0; + lockSizeInBytesCapture = physicalReadCursorInBytes; + } + } + + if (lockSizeInBytesCapture == 0) { + ma_sleep(waitTimeInMilliseconds); + continue; /* Nothing is available in the capture buffer. */ + } + + hr = ma_IDirectSoundCaptureBuffer_Lock((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, lockOffsetInBytesCapture, lockSizeInBytesCapture, &pMappedDeviceBufferCapture, &mappedSizeInBytesCapture, NULL, NULL, 0); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to map buffer from capture device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + } + + + /* At this point we have some input data that we need to output. We do not return until every mapped frame of the input data is written to the playback device. */ + mappedDeviceFramesProcessedCapture = 0; + + for (;;) { /* Keep writing to the playback device. */ + ma_uint8 inputFramesInClientFormat[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 inputFramesInClientFormatCap = sizeof(inputFramesInClientFormat) / ma_get_bytes_per_frame(pDevice->capture.format, pDevice->capture.channels); + ma_uint8 outputFramesInClientFormat[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 outputFramesInClientFormatCap = sizeof(outputFramesInClientFormat) / ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels); + ma_uint32 outputFramesInClientFormatCount; + ma_uint32 outputFramesInClientFormatConsumed = 0; + ma_uint64 clientCapturedFramesToProcess = ma_min(inputFramesInClientFormatCap, outputFramesInClientFormatCap); + ma_uint64 deviceCapturedFramesToProcess = (mappedSizeInBytesCapture / bpfDeviceCapture) - mappedDeviceFramesProcessedCapture; + void* pRunningMappedDeviceBufferCapture = ma_offset_ptr(pMappedDeviceBufferCapture, mappedDeviceFramesProcessedCapture * bpfDeviceCapture); + + result = ma_data_converter_process_pcm_frames(&pDevice->capture.converter, pRunningMappedDeviceBufferCapture, &deviceCapturedFramesToProcess, inputFramesInClientFormat, &clientCapturedFramesToProcess); + if (result != MA_SUCCESS) { + break; + } + + outputFramesInClientFormatCount = (ma_uint32)clientCapturedFramesToProcess; + mappedDeviceFramesProcessedCapture += (ma_uint32)deviceCapturedFramesToProcess; + + ma_device__on_data(pDevice, outputFramesInClientFormat, inputFramesInClientFormat, (ma_uint32)clientCapturedFramesToProcess); + + /* At this point we have input and output data in client format. All we need to do now is convert it to the output device format. This may take a few passes. */ + for (;;) { + ma_uint32 framesWrittenThisIteration; + DWORD physicalPlayCursorInBytes; + DWORD physicalWriteCursorInBytes; + DWORD availableBytesPlayback; + DWORD silentPaddingInBytes = 0; /* <-- Must be initialized to 0. */ + + /* We need the physical play and write cursors. */ + if (FAILED(ma_IDirectSoundBuffer_GetCurrentPosition((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, &physicalPlayCursorInBytes, &physicalWriteCursorInBytes))) { + break; + } + + if (physicalPlayCursorInBytes < prevPlayCursorInBytesPlayback) { + physicalPlayCursorLoopFlagPlayback = !physicalPlayCursorLoopFlagPlayback; + } + prevPlayCursorInBytesPlayback = physicalPlayCursorInBytes; + + /* If there's any bytes available for writing we can do that now. The space between the virtual cursor position and play cursor. */ + if (physicalPlayCursorLoopFlagPlayback == virtualWriteCursorLoopFlagPlayback) { + /* Same loop iteration. The available bytes wraps all the way around from the virtual write cursor to the physical play cursor. */ + if (physicalPlayCursorInBytes <= virtualWriteCursorInBytesPlayback) { + availableBytesPlayback = (pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback) - virtualWriteCursorInBytesPlayback; + availableBytesPlayback += physicalPlayCursorInBytes; /* Wrap around. */ + } else { + /* This is an error. */ + #ifdef MA_DEBUG_OUTPUT + printf("[DirectSound] (Duplex/Playback) WARNING: Play cursor has moved in front of the write cursor (same loop iterations). physicalPlayCursorInBytes=%ld, virtualWriteCursorInBytes=%ld.\n", physicalPlayCursorInBytes, virtualWriteCursorInBytesPlayback); + #endif + availableBytesPlayback = 0; + } + } else { + /* Different loop iterations. The available bytes only goes from the virtual write cursor to the physical play cursor. */ + if (physicalPlayCursorInBytes >= virtualWriteCursorInBytesPlayback) { + availableBytesPlayback = physicalPlayCursorInBytes - virtualWriteCursorInBytesPlayback; + } else { + /* This is an error. */ + #ifdef MA_DEBUG_OUTPUT + printf("[DirectSound] (Duplex/Playback) WARNING: Write cursor has moved behind the play cursor (different loop iterations). physicalPlayCursorInBytes=%ld, virtualWriteCursorInBytes=%ld.\n", physicalPlayCursorInBytes, virtualWriteCursorInBytesPlayback); + #endif + availableBytesPlayback = 0; + } + } + + #ifdef MA_DEBUG_OUTPUT + /*printf("[DirectSound] (Duplex/Playback) physicalPlayCursorInBytes=%d, availableBytesPlayback=%d\n", physicalPlayCursorInBytes, availableBytesPlayback);*/ + #endif + + /* If there's no room available for writing we need to wait for more. */ + if (availableBytesPlayback == 0) { + /* If we haven't started the device yet, this will never get beyond 0. In this case we need to get the device started. */ + if (!isPlaybackDeviceStarted) { + hr = ma_IDirectSoundBuffer_Play((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, 0, 0, MA_DSBPLAY_LOOPING); + if (FAILED(hr)) { + ma_IDirectSoundCaptureBuffer_Stop((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundBuffer_Play() failed.", ma_result_from_HRESULT(hr)); + } + isPlaybackDeviceStarted = MA_TRUE; + } else { + ma_sleep(waitTimeInMilliseconds); + continue; + } + } + + + /* Getting here means there room available somewhere. We limit this to either the end of the buffer or the physical play cursor, whichever is closest. */ + lockOffsetInBytesPlayback = virtualWriteCursorInBytesPlayback; + if (physicalPlayCursorLoopFlagPlayback == virtualWriteCursorLoopFlagPlayback) { + /* Same loop iteration. Go up to the end of the buffer. */ + lockSizeInBytesPlayback = (pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback) - virtualWriteCursorInBytesPlayback; + } else { + /* Different loop iterations. Go up to the physical play cursor. */ + lockSizeInBytesPlayback = physicalPlayCursorInBytes - virtualWriteCursorInBytesPlayback; + } + + hr = ma_IDirectSoundBuffer_Lock((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, lockOffsetInBytesPlayback, lockSizeInBytesPlayback, &pMappedDeviceBufferPlayback, &mappedSizeInBytesPlayback, NULL, NULL, 0); + if (FAILED(hr)) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to map buffer from playback device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + break; + } + + /* + Experiment: If the playback buffer is being starved, pad it with some silence to get it back in sync. This will cause a glitch, but it may prevent + endless glitching due to it constantly running out of data. + */ + if (isPlaybackDeviceStarted) { + DWORD bytesQueuedForPlayback = (pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback) - availableBytesPlayback; + if (bytesQueuedForPlayback < (pDevice->playback.internalPeriodSizeInFrames*bpfDevicePlayback)) { + silentPaddingInBytes = (pDevice->playback.internalPeriodSizeInFrames*2*bpfDevicePlayback) - bytesQueuedForPlayback; + if (silentPaddingInBytes > lockSizeInBytesPlayback) { + silentPaddingInBytes = lockSizeInBytesPlayback; + } + + #ifdef MA_DEBUG_OUTPUT + printf("[DirectSound] (Duplex/Playback) Playback buffer starved. availableBytesPlayback=%ld, silentPaddingInBytes=%ld\n", availableBytesPlayback, silentPaddingInBytes); + #endif + } + } + + /* At this point we have a buffer for output. */ + if (silentPaddingInBytes > 0) { + MA_ZERO_MEMORY(pMappedDeviceBufferPlayback, silentPaddingInBytes); + framesWrittenThisIteration = silentPaddingInBytes/bpfDevicePlayback; + } else { + ma_uint64 convertedFrameCountIn = (outputFramesInClientFormatCount - outputFramesInClientFormatConsumed); + ma_uint64 convertedFrameCountOut = mappedSizeInBytesPlayback/bpfDevicePlayback; + void* pConvertedFramesIn = ma_offset_ptr(outputFramesInClientFormat, outputFramesInClientFormatConsumed * bpfDevicePlayback); + void* pConvertedFramesOut = pMappedDeviceBufferPlayback; + + result = ma_data_converter_process_pcm_frames(&pDevice->playback.converter, pConvertedFramesIn, &convertedFrameCountIn, pConvertedFramesOut, &convertedFrameCountOut); + if (result != MA_SUCCESS) { + break; + } + + outputFramesInClientFormatConsumed += (ma_uint32)convertedFrameCountOut; + framesWrittenThisIteration = (ma_uint32)convertedFrameCountOut; + } + + + hr = ma_IDirectSoundBuffer_Unlock((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, pMappedDeviceBufferPlayback, framesWrittenThisIteration*bpfDevicePlayback, NULL, 0); + if (FAILED(hr)) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to unlock internal buffer from playback device after writing to the device.", ma_result_from_HRESULT(hr)); + break; + } + + virtualWriteCursorInBytesPlayback += framesWrittenThisIteration*bpfDevicePlayback; + if ((virtualWriteCursorInBytesPlayback/bpfDevicePlayback) == pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods) { + virtualWriteCursorInBytesPlayback = 0; + virtualWriteCursorLoopFlagPlayback = !virtualWriteCursorLoopFlagPlayback; + } + + /* + We may need to start the device. We want two full periods to be written before starting the playback device. Having an extra period adds + a bit of a buffer to prevent the playback buffer from getting starved. + */ + framesWrittenToPlaybackDevice += framesWrittenThisIteration; + if (!isPlaybackDeviceStarted && framesWrittenToPlaybackDevice >= (pDevice->playback.internalPeriodSizeInFrames*2)) { + hr = ma_IDirectSoundBuffer_Play((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, 0, 0, MA_DSBPLAY_LOOPING); + if (FAILED(hr)) { + ma_IDirectSoundCaptureBuffer_Stop((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundBuffer_Play() failed.", ma_result_from_HRESULT(hr)); + } + isPlaybackDeviceStarted = MA_TRUE; + } + + if (framesWrittenThisIteration < mappedSizeInBytesPlayback/bpfDevicePlayback) { + break; /* We're finished with the output data.*/ + } + } + + if (clientCapturedFramesToProcess == 0) { + break; /* We just consumed every input sample. */ + } + } + + + /* At this point we're done with the mapped portion of the capture buffer. */ + hr = ma_IDirectSoundCaptureBuffer_Unlock((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, pMappedDeviceBufferCapture, mappedSizeInBytesCapture, NULL, 0); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to unlock internal buffer from capture device after reading from the device.", ma_result_from_HRESULT(hr)); + } + prevReadCursorInBytesCapture = (lockOffsetInBytesCapture + mappedSizeInBytesCapture); + } break; + + + + case ma_device_type_capture: + { + DWORD physicalCaptureCursorInBytes; + DWORD physicalReadCursorInBytes; + hr = ma_IDirectSoundCaptureBuffer_GetCurrentPosition((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, &physicalCaptureCursorInBytes, &physicalReadCursorInBytes); + if (FAILED(hr)) { + return MA_ERROR; + } + + /* If the previous capture position is the same as the current position we need to wait a bit longer. */ + if (prevReadCursorInBytesCapture == physicalReadCursorInBytes) { + ma_sleep(waitTimeInMilliseconds); + continue; + } + + /* Getting here means we have capture data available. */ + if (prevReadCursorInBytesCapture < physicalReadCursorInBytes) { + /* The capture position has not looped. This is the simple case. */ + lockOffsetInBytesCapture = prevReadCursorInBytesCapture; + lockSizeInBytesCapture = (physicalReadCursorInBytes - prevReadCursorInBytesCapture); + } else { + /* + The capture position has looped. This is the more complex case. Map to the end of the buffer. If this does not return anything, + do it again from the start. + */ + if (prevReadCursorInBytesCapture < pDevice->capture.internalPeriodSizeInFrames*pDevice->capture.internalPeriods*bpfDeviceCapture) { + /* Lock up to the end of the buffer. */ + lockOffsetInBytesCapture = prevReadCursorInBytesCapture; + lockSizeInBytesCapture = (pDevice->capture.internalPeriodSizeInFrames*pDevice->capture.internalPeriods*bpfDeviceCapture) - prevReadCursorInBytesCapture; + } else { + /* Lock starting from the start of the buffer. */ + lockOffsetInBytesCapture = 0; + lockSizeInBytesCapture = physicalReadCursorInBytes; + } + } + + #ifdef MA_DEBUG_OUTPUT + /*printf("[DirectSound] (Capture) physicalCaptureCursorInBytes=%d, physicalReadCursorInBytes=%d\n", physicalCaptureCursorInBytes, physicalReadCursorInBytes);*/ + /*printf("[DirectSound] (Capture) lockOffsetInBytesCapture=%d, lockSizeInBytesCapture=%d\n", lockOffsetInBytesCapture, lockSizeInBytesCapture);*/ + #endif + + if (lockSizeInBytesCapture < pDevice->capture.internalPeriodSizeInFrames) { + ma_sleep(waitTimeInMilliseconds); + continue; /* Nothing is available in the capture buffer. */ + } + + hr = ma_IDirectSoundCaptureBuffer_Lock((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, lockOffsetInBytesCapture, lockSizeInBytesCapture, &pMappedDeviceBufferCapture, &mappedSizeInBytesCapture, NULL, NULL, 0); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to map buffer from capture device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + } + + #ifdef MA_DEBUG_OUTPUT + if (lockSizeInBytesCapture != mappedSizeInBytesCapture) { + printf("[DirectSound] (Capture) lockSizeInBytesCapture=%ld != mappedSizeInBytesCapture=%ld\n", lockSizeInBytesCapture, mappedSizeInBytesCapture); + } + #endif + + ma_device__send_frames_to_client(pDevice, mappedSizeInBytesCapture/bpfDeviceCapture, pMappedDeviceBufferCapture); + + hr = ma_IDirectSoundCaptureBuffer_Unlock((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, pMappedDeviceBufferCapture, mappedSizeInBytesCapture, NULL, 0); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to unlock internal buffer from capture device after reading from the device.", ma_result_from_HRESULT(hr)); + } + prevReadCursorInBytesCapture = lockOffsetInBytesCapture + mappedSizeInBytesCapture; + + if (prevReadCursorInBytesCapture == (pDevice->capture.internalPeriodSizeInFrames*pDevice->capture.internalPeriods*bpfDeviceCapture)) { + prevReadCursorInBytesCapture = 0; + } + } break; + + + + case ma_device_type_playback: + { + DWORD availableBytesPlayback; + DWORD physicalPlayCursorInBytes; + DWORD physicalWriteCursorInBytes; + hr = ma_IDirectSoundBuffer_GetCurrentPosition((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, &physicalPlayCursorInBytes, &physicalWriteCursorInBytes); + if (FAILED(hr)) { + break; + } + + if (physicalPlayCursorInBytes < prevPlayCursorInBytesPlayback) { + physicalPlayCursorLoopFlagPlayback = !physicalPlayCursorLoopFlagPlayback; + } + prevPlayCursorInBytesPlayback = physicalPlayCursorInBytes; + + /* If there's any bytes available for writing we can do that now. The space between the virtual cursor position and play cursor. */ + if (physicalPlayCursorLoopFlagPlayback == virtualWriteCursorLoopFlagPlayback) { + /* Same loop iteration. The available bytes wraps all the way around from the virtual write cursor to the physical play cursor. */ + if (physicalPlayCursorInBytes <= virtualWriteCursorInBytesPlayback) { + availableBytesPlayback = (pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback) - virtualWriteCursorInBytesPlayback; + availableBytesPlayback += physicalPlayCursorInBytes; /* Wrap around. */ + } else { + /* This is an error. */ + #ifdef MA_DEBUG_OUTPUT + printf("[DirectSound] (Playback) WARNING: Play cursor has moved in front of the write cursor (same loop iterations). physicalPlayCursorInBytes=%ld, virtualWriteCursorInBytes=%ld.\n", physicalPlayCursorInBytes, virtualWriteCursorInBytesPlayback); + #endif + availableBytesPlayback = 0; + } + } else { + /* Different loop iterations. The available bytes only goes from the virtual write cursor to the physical play cursor. */ + if (physicalPlayCursorInBytes >= virtualWriteCursorInBytesPlayback) { + availableBytesPlayback = physicalPlayCursorInBytes - virtualWriteCursorInBytesPlayback; + } else { + /* This is an error. */ + #ifdef MA_DEBUG_OUTPUT + printf("[DirectSound] (Playback) WARNING: Write cursor has moved behind the play cursor (different loop iterations). physicalPlayCursorInBytes=%ld, virtualWriteCursorInBytes=%ld.\n", physicalPlayCursorInBytes, virtualWriteCursorInBytesPlayback); + #endif + availableBytesPlayback = 0; + } + } + + #ifdef MA_DEBUG_OUTPUT + /*printf("[DirectSound] (Playback) physicalPlayCursorInBytes=%d, availableBytesPlayback=%d\n", physicalPlayCursorInBytes, availableBytesPlayback);*/ + #endif + + /* If there's no room available for writing we need to wait for more. */ + if (availableBytesPlayback < pDevice->playback.internalPeriodSizeInFrames) { + /* If we haven't started the device yet, this will never get beyond 0. In this case we need to get the device started. */ + if (availableBytesPlayback == 0 && !isPlaybackDeviceStarted) { + hr = ma_IDirectSoundBuffer_Play((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, 0, 0, MA_DSBPLAY_LOOPING); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundBuffer_Play() failed.", ma_result_from_HRESULT(hr)); + } + isPlaybackDeviceStarted = MA_TRUE; + } else { + ma_sleep(waitTimeInMilliseconds); + continue; + } + } + + /* Getting here means there room available somewhere. We limit this to either the end of the buffer or the physical play cursor, whichever is closest. */ + lockOffsetInBytesPlayback = virtualWriteCursorInBytesPlayback; + if (physicalPlayCursorLoopFlagPlayback == virtualWriteCursorLoopFlagPlayback) { + /* Same loop iteration. Go up to the end of the buffer. */ + lockSizeInBytesPlayback = (pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback) - virtualWriteCursorInBytesPlayback; + } else { + /* Different loop iterations. Go up to the physical play cursor. */ + lockSizeInBytesPlayback = physicalPlayCursorInBytes - virtualWriteCursorInBytesPlayback; + } + + hr = ma_IDirectSoundBuffer_Lock((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, lockOffsetInBytesPlayback, lockSizeInBytesPlayback, &pMappedDeviceBufferPlayback, &mappedSizeInBytesPlayback, NULL, NULL, 0); + if (FAILED(hr)) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to map buffer from playback device in preparation for writing to the device.", ma_result_from_HRESULT(hr)); + break; + } + + /* At this point we have a buffer for output. */ + ma_device__read_frames_from_client(pDevice, (mappedSizeInBytesPlayback/bpfDevicePlayback), pMappedDeviceBufferPlayback); + + hr = ma_IDirectSoundBuffer_Unlock((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, pMappedDeviceBufferPlayback, mappedSizeInBytesPlayback, NULL, 0); + if (FAILED(hr)) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to unlock internal buffer from playback device after writing to the device.", ma_result_from_HRESULT(hr)); + break; + } + + virtualWriteCursorInBytesPlayback += mappedSizeInBytesPlayback; + if (virtualWriteCursorInBytesPlayback == pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback) { + virtualWriteCursorInBytesPlayback = 0; + virtualWriteCursorLoopFlagPlayback = !virtualWriteCursorLoopFlagPlayback; + } + + /* + We may need to start the device. We want two full periods to be written before starting the playback device. Having an extra period adds + a bit of a buffer to prevent the playback buffer from getting starved. + */ + framesWrittenToPlaybackDevice += mappedSizeInBytesPlayback/bpfDevicePlayback; + if (!isPlaybackDeviceStarted && framesWrittenToPlaybackDevice >= pDevice->playback.internalPeriodSizeInFrames) { + hr = ma_IDirectSoundBuffer_Play((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, 0, 0, MA_DSBPLAY_LOOPING); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundBuffer_Play() failed.", ma_result_from_HRESULT(hr)); + } + isPlaybackDeviceStarted = MA_TRUE; + } + } break; + + + default: return MA_INVALID_ARGS; /* Invalid device type. */ + } + + if (result != MA_SUCCESS) { + return result; + } + } + + /* Getting here means the device is being stopped. */ + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + hr = ma_IDirectSoundCaptureBuffer_Stop((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundCaptureBuffer_Stop() failed.", ma_result_from_HRESULT(hr)); + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* The playback device should be drained before stopping. All we do is wait until the available bytes is equal to the size of the buffer. */ + if (isPlaybackDeviceStarted) { + for (;;) { + DWORD availableBytesPlayback = 0; + DWORD physicalPlayCursorInBytes; + DWORD physicalWriteCursorInBytes; + hr = ma_IDirectSoundBuffer_GetCurrentPosition((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, &physicalPlayCursorInBytes, &physicalWriteCursorInBytes); + if (FAILED(hr)) { + break; + } + + if (physicalPlayCursorInBytes < prevPlayCursorInBytesPlayback) { + physicalPlayCursorLoopFlagPlayback = !physicalPlayCursorLoopFlagPlayback; + } + prevPlayCursorInBytesPlayback = physicalPlayCursorInBytes; + + if (physicalPlayCursorLoopFlagPlayback == virtualWriteCursorLoopFlagPlayback) { + /* Same loop iteration. The available bytes wraps all the way around from the virtual write cursor to the physical play cursor. */ + if (physicalPlayCursorInBytes <= virtualWriteCursorInBytesPlayback) { + availableBytesPlayback = (pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback) - virtualWriteCursorInBytesPlayback; + availableBytesPlayback += physicalPlayCursorInBytes; /* Wrap around. */ + } else { + break; + } + } else { + /* Different loop iterations. The available bytes only goes from the virtual write cursor to the physical play cursor. */ + if (physicalPlayCursorInBytes >= virtualWriteCursorInBytesPlayback) { + availableBytesPlayback = physicalPlayCursorInBytes - virtualWriteCursorInBytesPlayback; + } else { + break; + } + } + + if (availableBytesPlayback >= (pDevice->playback.internalPeriodSizeInFrames*pDevice->playback.internalPeriods*bpfDevicePlayback)) { + break; + } + + ma_sleep(waitTimeInMilliseconds); + } + } + + hr = ma_IDirectSoundBuffer_Stop((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer); + if (FAILED(hr)) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[DirectSound] IDirectSoundBuffer_Stop() failed.", ma_result_from_HRESULT(hr)); + } + + ma_IDirectSoundBuffer_SetCurrentPosition((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackBuffer, 0); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_uninit__dsound(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_dsound); + + ma_dlclose(pContext, pContext->dsound.hDSoundDLL); + + return MA_SUCCESS; +} + +static ma_result ma_context_init__dsound(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + MA_ASSERT(pContext != NULL); + + (void)pConfig; + + pContext->dsound.hDSoundDLL = ma_dlopen(pContext, "dsound.dll"); + if (pContext->dsound.hDSoundDLL == NULL) { + return MA_API_NOT_FOUND; + } + + pContext->dsound.DirectSoundCreate = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCreate"); + pContext->dsound.DirectSoundEnumerateA = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundEnumerateA"); + pContext->dsound.DirectSoundCaptureCreate = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCaptureCreate"); + pContext->dsound.DirectSoundCaptureEnumerateA = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCaptureEnumerateA"); + + pCallbacks->onContextInit = ma_context_init__dsound; + pCallbacks->onContextUninit = ma_context_uninit__dsound; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__dsound; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__dsound; + pCallbacks->onDeviceInit = ma_device_init__dsound; + pCallbacks->onDeviceUninit = ma_device_uninit__dsound; + pCallbacks->onDeviceStart = NULL; /* Not used. Started in onDeviceDataLoop. */ + pCallbacks->onDeviceStop = NULL; /* Not used. Stopped in onDeviceDataLoop. */ + pCallbacks->onDeviceRead = NULL; /* Not used. Data is read directly in onDeviceDataLoop. */ + pCallbacks->onDeviceWrite = NULL; /* Not used. Data is written directly in onDeviceDataLoop. */ + pCallbacks->onDeviceDataLoop = ma_device_data_loop__dsound; + + return MA_SUCCESS; +} +#endif + + + +/****************************************************************************** + +WinMM Backend + +******************************************************************************/ +#ifdef MA_HAS_WINMM + +/* +Some older compilers don't have WAVEOUTCAPS2A and WAVEINCAPS2A, so we'll need to write this ourselves. These structures +are exactly the same as the older ones but they have a few GUIDs for manufacturer/product/name identification. I'm keeping +the names the same as the Win32 library for consistency, but namespaced to avoid naming conflicts with the Win32 version. +*/ +typedef struct +{ + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MA_WAVEOUTCAPS2A; +typedef struct +{ + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MA_WAVEINCAPS2A; + +typedef UINT (WINAPI * MA_PFN_waveOutGetNumDevs)(void); +typedef MMRESULT (WINAPI * MA_PFN_waveOutGetDevCapsA)(ma_uintptr uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc); +typedef MMRESULT (WINAPI * MA_PFN_waveOutOpen)(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); +typedef MMRESULT (WINAPI * MA_PFN_waveOutClose)(HWAVEOUT hwo); +typedef MMRESULT (WINAPI * MA_PFN_waveOutPrepareHeader)(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); +typedef MMRESULT (WINAPI * MA_PFN_waveOutUnprepareHeader)(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); +typedef MMRESULT (WINAPI * MA_PFN_waveOutWrite)(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); +typedef MMRESULT (WINAPI * MA_PFN_waveOutReset)(HWAVEOUT hwo); +typedef UINT (WINAPI * MA_PFN_waveInGetNumDevs)(void); +typedef MMRESULT (WINAPI * MA_PFN_waveInGetDevCapsA)(ma_uintptr uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic); +typedef MMRESULT (WINAPI * MA_PFN_waveInOpen)(LPHWAVEIN phwi, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); +typedef MMRESULT (WINAPI * MA_PFN_waveInClose)(HWAVEIN hwi); +typedef MMRESULT (WINAPI * MA_PFN_waveInPrepareHeader)(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); +typedef MMRESULT (WINAPI * MA_PFN_waveInUnprepareHeader)(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); +typedef MMRESULT (WINAPI * MA_PFN_waveInAddBuffer)(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); +typedef MMRESULT (WINAPI * MA_PFN_waveInStart)(HWAVEIN hwi); +typedef MMRESULT (WINAPI * MA_PFN_waveInReset)(HWAVEIN hwi); + +static ma_result ma_result_from_MMRESULT(MMRESULT resultMM) +{ + switch (resultMM) { + case MMSYSERR_NOERROR: return MA_SUCCESS; + case MMSYSERR_BADDEVICEID: return MA_INVALID_ARGS; + case MMSYSERR_INVALHANDLE: return MA_INVALID_ARGS; + case MMSYSERR_NOMEM: return MA_OUT_OF_MEMORY; + case MMSYSERR_INVALFLAG: return MA_INVALID_ARGS; + case MMSYSERR_INVALPARAM: return MA_INVALID_ARGS; + case MMSYSERR_HANDLEBUSY: return MA_BUSY; + case MMSYSERR_ERROR: return MA_ERROR; + default: return MA_ERROR; + } +} + +static char* ma_find_last_character(char* str, char ch) +{ + char* last; + + if (str == NULL) { + return NULL; + } + + last = NULL; + while (*str != '\0') { + if (*str == ch) { + last = str; + } + + str += 1; + } + + return last; +} + +static ma_uint32 ma_get_period_size_in_bytes(ma_uint32 periodSizeInFrames, ma_format format, ma_uint32 channels) +{ + return periodSizeInFrames * ma_get_bytes_per_frame(format, channels); +} + + +/* +Our own "WAVECAPS" structure that contains generic information shared between WAVEOUTCAPS2 and WAVEINCAPS2 so +we can do things generically and typesafely. Names are being kept the same for consistency. +*/ +typedef struct +{ + CHAR szPname[MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + GUID NameGuid; +} MA_WAVECAPSA; + +static ma_result ma_get_best_info_from_formats_flags__winmm(DWORD dwFormats, WORD channels, WORD* pBitsPerSample, DWORD* pSampleRate) +{ + WORD bitsPerSample = 0; + DWORD sampleRate = 0; + + if (pBitsPerSample) { + *pBitsPerSample = 0; + } + if (pSampleRate) { + *pSampleRate = 0; + } + + if (channels == 1) { + bitsPerSample = 16; + if ((dwFormats & WAVE_FORMAT_48M16) != 0) { + sampleRate = 48000; + } else if ((dwFormats & WAVE_FORMAT_44M16) != 0) { + sampleRate = 44100; + } else if ((dwFormats & WAVE_FORMAT_2M16) != 0) { + sampleRate = 22050; + } else if ((dwFormats & WAVE_FORMAT_1M16) != 0) { + sampleRate = 11025; + } else if ((dwFormats & WAVE_FORMAT_96M16) != 0) { + sampleRate = 96000; + } else { + bitsPerSample = 8; + if ((dwFormats & WAVE_FORMAT_48M08) != 0) { + sampleRate = 48000; + } else if ((dwFormats & WAVE_FORMAT_44M08) != 0) { + sampleRate = 44100; + } else if ((dwFormats & WAVE_FORMAT_2M08) != 0) { + sampleRate = 22050; + } else if ((dwFormats & WAVE_FORMAT_1M08) != 0) { + sampleRate = 11025; + } else if ((dwFormats & WAVE_FORMAT_96M08) != 0) { + sampleRate = 96000; + } else { + return MA_FORMAT_NOT_SUPPORTED; + } + } + } else { + bitsPerSample = 16; + if ((dwFormats & WAVE_FORMAT_48S16) != 0) { + sampleRate = 48000; + } else if ((dwFormats & WAVE_FORMAT_44S16) != 0) { + sampleRate = 44100; + } else if ((dwFormats & WAVE_FORMAT_2S16) != 0) { + sampleRate = 22050; + } else if ((dwFormats & WAVE_FORMAT_1S16) != 0) { + sampleRate = 11025; + } else if ((dwFormats & WAVE_FORMAT_96S16) != 0) { + sampleRate = 96000; + } else { + bitsPerSample = 8; + if ((dwFormats & WAVE_FORMAT_48S08) != 0) { + sampleRate = 48000; + } else if ((dwFormats & WAVE_FORMAT_44S08) != 0) { + sampleRate = 44100; + } else if ((dwFormats & WAVE_FORMAT_2S08) != 0) { + sampleRate = 22050; + } else if ((dwFormats & WAVE_FORMAT_1S08) != 0) { + sampleRate = 11025; + } else if ((dwFormats & WAVE_FORMAT_96S08) != 0) { + sampleRate = 96000; + } else { + return MA_FORMAT_NOT_SUPPORTED; + } + } + } + + if (pBitsPerSample) { + *pBitsPerSample = bitsPerSample; + } + if (pSampleRate) { + *pSampleRate = sampleRate; + } + + return MA_SUCCESS; +} + +static ma_result ma_formats_flags_to_WAVEFORMATEX__winmm(DWORD dwFormats, WORD channels, WAVEFORMATEX* pWF) +{ + ma_result result; + + MA_ASSERT(pWF != NULL); + + MA_ZERO_OBJECT(pWF); + pWF->cbSize = sizeof(*pWF); + pWF->wFormatTag = WAVE_FORMAT_PCM; + pWF->nChannels = (WORD)channels; + if (pWF->nChannels > 2) { + pWF->nChannels = 2; + } + + result = ma_get_best_info_from_formats_flags__winmm(dwFormats, channels, &pWF->wBitsPerSample, &pWF->nSamplesPerSec); + if (result != MA_SUCCESS) { + return result; + } + + pWF->nBlockAlign = (WORD)(pWF->nChannels * pWF->wBitsPerSample / 8); + pWF->nAvgBytesPerSec = pWF->nBlockAlign * pWF->nSamplesPerSec; + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info_from_WAVECAPS(ma_context* pContext, MA_WAVECAPSA* pCaps, ma_device_info* pDeviceInfo) +{ + WORD bitsPerSample; + DWORD sampleRate; + ma_result result; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pCaps != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + /* + Name / Description + + Unfortunately the name specified in WAVE(OUT/IN)CAPS2 is limited to 31 characters. This results in an unprofessional looking + situation where the names of the devices are truncated. To help work around this, we need to look at the name GUID and try + looking in the registry for the full name. If we can't find it there, we need to just fall back to the default name. + */ + + /* Set the default to begin with. */ + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), pCaps->szPname, (size_t)-1); + + /* + Now try the registry. There's a few things to consider here: + - The name GUID can be null, in which we case we just need to stick to the original 31 characters. + - If the name GUID is not present in the registry we'll also need to stick to the original 31 characters. + - I like consistency, so I want the returned device names to be consistent with those returned by WASAPI and DirectSound. The + problem, however is that WASAPI and DirectSound use " ()" format (such as "Speakers (High Definition Audio)"), + but WinMM does not specificy the component name. From my admittedly limited testing, I've notice the component name seems to + usually fit within the 31 characters of the fixed sized buffer, so what I'm going to do is parse that string for the component + name, and then concatenate the name from the registry. + */ + if (!ma_is_guid_null(&pCaps->NameGuid)) { + wchar_t guidStrW[256]; + if (((MA_PFN_StringFromGUID2)pContext->win32.StringFromGUID2)(&pCaps->NameGuid, guidStrW, ma_countof(guidStrW)) > 0) { + char guidStr[256]; + char keyStr[1024]; + HKEY hKey; + + WideCharToMultiByte(CP_UTF8, 0, guidStrW, -1, guidStr, sizeof(guidStr), 0, FALSE); + + ma_strcpy_s(keyStr, sizeof(keyStr), "SYSTEM\\CurrentControlSet\\Control\\MediaCategories\\"); + ma_strcat_s(keyStr, sizeof(keyStr), guidStr); + + if (((MA_PFN_RegOpenKeyExA)pContext->win32.RegOpenKeyExA)(HKEY_LOCAL_MACHINE, keyStr, 0, KEY_READ, &hKey) == ERROR_SUCCESS) { + BYTE nameFromReg[512]; + DWORD nameFromRegSize = sizeof(nameFromReg); + result = ((MA_PFN_RegQueryValueExA)pContext->win32.RegQueryValueExA)(hKey, "Name", 0, NULL, (LPBYTE)nameFromReg, (LPDWORD)&nameFromRegSize); + ((MA_PFN_RegCloseKey)pContext->win32.RegCloseKey)(hKey); + + if (result == ERROR_SUCCESS) { + /* We have the value from the registry, so now we need to construct the name string. */ + char name[1024]; + if (ma_strcpy_s(name, sizeof(name), pDeviceInfo->name) == 0) { + char* nameBeg = ma_find_last_character(name, '('); + if (nameBeg != NULL) { + size_t leadingLen = (nameBeg - name); + ma_strncpy_s(nameBeg + 1, sizeof(name) - leadingLen, (const char*)nameFromReg, (size_t)-1); + + /* The closing ")", if it can fit. */ + if (leadingLen + nameFromRegSize < sizeof(name)-1) { + ma_strcat_s(name, sizeof(name), ")"); + } + + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), name, (size_t)-1); + } + } + } + } + } + } + + + result = ma_get_best_info_from_formats_flags__winmm(pCaps->dwFormats, pCaps->wChannels, &bitsPerSample, &sampleRate); + if (result != MA_SUCCESS) { + return result; + } + + if (bitsPerSample == 8) { + pDeviceInfo->nativeDataFormats[0].format = ma_format_u8; + } else if (bitsPerSample == 16) { + pDeviceInfo->nativeDataFormats[0].format = ma_format_s16; + } else if (bitsPerSample == 24) { + pDeviceInfo->nativeDataFormats[0].format = ma_format_s24; + } else if (bitsPerSample == 32) { + pDeviceInfo->nativeDataFormats[0].format = ma_format_s32; + } else { + return MA_FORMAT_NOT_SUPPORTED; + } + pDeviceInfo->nativeDataFormats[0].channels = pCaps->wChannels; + pDeviceInfo->nativeDataFormats[0].sampleRate = sampleRate; + pDeviceInfo->nativeDataFormats[0].flags = 0; + pDeviceInfo->nativeDataFormatCount = 1; + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info_from_WAVEOUTCAPS2(ma_context* pContext, MA_WAVEOUTCAPS2A* pCaps, ma_device_info* pDeviceInfo) +{ + MA_WAVECAPSA caps; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pCaps != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + MA_COPY_MEMORY(caps.szPname, pCaps->szPname, sizeof(caps.szPname)); + caps.dwFormats = pCaps->dwFormats; + caps.wChannels = pCaps->wChannels; + caps.NameGuid = pCaps->NameGuid; + return ma_context_get_device_info_from_WAVECAPS(pContext, &caps, pDeviceInfo); +} + +static ma_result ma_context_get_device_info_from_WAVEINCAPS2(ma_context* pContext, MA_WAVEINCAPS2A* pCaps, ma_device_info* pDeviceInfo) +{ + MA_WAVECAPSA caps; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pCaps != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + MA_COPY_MEMORY(caps.szPname, pCaps->szPname, sizeof(caps.szPname)); + caps.dwFormats = pCaps->dwFormats; + caps.wChannels = pCaps->wChannels; + caps.NameGuid = pCaps->NameGuid; + return ma_context_get_device_info_from_WAVECAPS(pContext, &caps, pDeviceInfo); +} + + +static ma_result ma_context_enumerate_devices__winmm(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + UINT playbackDeviceCount; + UINT captureDeviceCount; + UINT iPlaybackDevice; + UINT iCaptureDevice; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* Playback. */ + playbackDeviceCount = ((MA_PFN_waveOutGetNumDevs)pContext->winmm.waveOutGetNumDevs)(); + for (iPlaybackDevice = 0; iPlaybackDevice < playbackDeviceCount; ++iPlaybackDevice) { + MMRESULT result; + MA_WAVEOUTCAPS2A caps; + + MA_ZERO_OBJECT(&caps); + + result = ((MA_PFN_waveOutGetDevCapsA)pContext->winmm.waveOutGetDevCapsA)(iPlaybackDevice, (WAVEOUTCAPSA*)&caps, sizeof(caps)); + if (result == MMSYSERR_NOERROR) { + ma_device_info deviceInfo; + + MA_ZERO_OBJECT(&deviceInfo); + deviceInfo.id.winmm = iPlaybackDevice; + + /* The first enumerated device is the default device. */ + if (iPlaybackDevice == 0) { + deviceInfo.isDefault = MA_TRUE; + } + + if (ma_context_get_device_info_from_WAVEOUTCAPS2(pContext, &caps, &deviceInfo) == MA_SUCCESS) { + ma_bool32 cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + if (cbResult == MA_FALSE) { + return MA_SUCCESS; /* Enumeration was stopped. */ + } + } + } + } + + /* Capture. */ + captureDeviceCount = ((MA_PFN_waveInGetNumDevs)pContext->winmm.waveInGetNumDevs)(); + for (iCaptureDevice = 0; iCaptureDevice < captureDeviceCount; ++iCaptureDevice) { + MMRESULT result; + MA_WAVEINCAPS2A caps; + + MA_ZERO_OBJECT(&caps); + + result = ((MA_PFN_waveInGetDevCapsA)pContext->winmm.waveInGetDevCapsA)(iCaptureDevice, (WAVEINCAPSA*)&caps, sizeof(caps)); + if (result == MMSYSERR_NOERROR) { + ma_device_info deviceInfo; + + MA_ZERO_OBJECT(&deviceInfo); + deviceInfo.id.winmm = iCaptureDevice; + + /* The first enumerated device is the default device. */ + if (iCaptureDevice == 0) { + deviceInfo.isDefault = MA_TRUE; + } + + if (ma_context_get_device_info_from_WAVEINCAPS2(pContext, &caps, &deviceInfo) == MA_SUCCESS) { + ma_bool32 cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + if (cbResult == MA_FALSE) { + return MA_SUCCESS; /* Enumeration was stopped. */ + } + } + } + } + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__winmm(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + UINT winMMDeviceID; + + MA_ASSERT(pContext != NULL); + + winMMDeviceID = 0; + if (pDeviceID != NULL) { + winMMDeviceID = (UINT)pDeviceID->winmm; + } + + pDeviceInfo->id.winmm = winMMDeviceID; + + /* The first ID is the default device. */ + if (winMMDeviceID == 0) { + pDeviceInfo->isDefault = MA_TRUE; + } + + if (deviceType == ma_device_type_playback) { + MMRESULT result; + MA_WAVEOUTCAPS2A caps; + + MA_ZERO_OBJECT(&caps); + + result = ((MA_PFN_waveOutGetDevCapsA)pContext->winmm.waveOutGetDevCapsA)(winMMDeviceID, (WAVEOUTCAPSA*)&caps, sizeof(caps)); + if (result == MMSYSERR_NOERROR) { + return ma_context_get_device_info_from_WAVEOUTCAPS2(pContext, &caps, pDeviceInfo); + } + } else { + MMRESULT result; + MA_WAVEINCAPS2A caps; + + MA_ZERO_OBJECT(&caps); + + result = ((MA_PFN_waveInGetDevCapsA)pContext->winmm.waveInGetDevCapsA)(winMMDeviceID, (WAVEINCAPSA*)&caps, sizeof(caps)); + if (result == MMSYSERR_NOERROR) { + return ma_context_get_device_info_from_WAVEINCAPS2(pContext, &caps, pDeviceInfo); + } + } + + return MA_NO_DEVICE; +} + + +static ma_result ma_device_uninit__winmm(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ((MA_PFN_waveInClose)pDevice->pContext->winmm.waveInClose)((HWAVEIN)pDevice->winmm.hDeviceCapture); + CloseHandle((HANDLE)pDevice->winmm.hEventCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ((MA_PFN_waveOutReset)pDevice->pContext->winmm.waveOutReset)((HWAVEOUT)pDevice->winmm.hDevicePlayback); + ((MA_PFN_waveOutClose)pDevice->pContext->winmm.waveOutClose)((HWAVEOUT)pDevice->winmm.hDevicePlayback); + CloseHandle((HANDLE)pDevice->winmm.hEventPlayback); + } + + ma__free_from_callbacks(pDevice->winmm._pHeapData, &pDevice->pContext->allocationCallbacks); + + MA_ZERO_OBJECT(&pDevice->winmm); /* Safety. */ + + return MA_SUCCESS; +} + +static ma_uint32 ma_calculate_period_size_in_frames_from_descriptor__winmm(const ma_device_descriptor* pDescriptor, ma_uint32 nativeSampleRate, ma_performance_profile performanceProfile) +{ + /* WinMM has a minimum period size of 40ms. */ + ma_uint32 minPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(40, nativeSampleRate); + ma_uint32 periodSizeInFrames; + + periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, nativeSampleRate, performanceProfile); + if (periodSizeInFrames < minPeriodSizeInFrames) { + periodSizeInFrames = minPeriodSizeInFrames; + } + + return periodSizeInFrames; +} + +static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + const char* errorMsg = ""; + ma_result errorCode = MA_ERROR; + ma_result result = MA_SUCCESS; + ma_uint32 heapSize; + UINT winMMDeviceIDPlayback = 0; + UINT winMMDeviceIDCapture = 0; + + MA_ASSERT(pDevice != NULL); + + MA_ZERO_OBJECT(&pDevice->winmm); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* No exlusive mode with WinMM. */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + if (pDescriptorPlayback->pDeviceID != NULL) { + winMMDeviceIDPlayback = (UINT)pDescriptorPlayback->pDeviceID->winmm; + } + if (pDescriptorCapture->pDeviceID != NULL) { + winMMDeviceIDCapture = (UINT)pDescriptorCapture->pDeviceID->winmm; + } + + /* The capture device needs to be initialized first. */ + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + WAVEINCAPSA caps; + WAVEFORMATEX wf; + MMRESULT resultMM; + + /* We use an event to know when a new fragment needs to be enqueued. */ + pDevice->winmm.hEventCapture = (ma_handle)CreateEventW(NULL, TRUE, TRUE, NULL); + if (pDevice->winmm.hEventCapture == NULL) { + errorMsg = "[WinMM] Failed to create event for fragment enqueing for the capture device.", errorCode = ma_result_from_GetLastError(GetLastError()); + goto on_error; + } + + /* The format should be based on the device's actual format. */ + if (((MA_PFN_waveInGetDevCapsA)pDevice->pContext->winmm.waveInGetDevCapsA)(winMMDeviceIDCapture, &caps, sizeof(caps)) != MMSYSERR_NOERROR) { + errorMsg = "[WinMM] Failed to retrieve internal device caps.", errorCode = MA_FORMAT_NOT_SUPPORTED; + goto on_error; + } + + result = ma_formats_flags_to_WAVEFORMATEX__winmm(caps.dwFormats, caps.wChannels, &wf); + if (result != MA_SUCCESS) { + errorMsg = "[WinMM] Could not find appropriate format for internal device.", errorCode = result; + goto on_error; + } + + resultMM = ((MA_PFN_waveInOpen)pDevice->pContext->winmm.waveInOpen)((LPHWAVEIN)&pDevice->winmm.hDeviceCapture, winMMDeviceIDCapture, &wf, (DWORD_PTR)pDevice->winmm.hEventCapture, (DWORD_PTR)pDevice, CALLBACK_EVENT | WAVE_ALLOWSYNC); + if (resultMM != MMSYSERR_NOERROR) { + errorMsg = "[WinMM] Failed to open capture device.", errorCode = MA_FAILED_TO_OPEN_BACKEND_DEVICE; + goto on_error; + } + + pDescriptorCapture->format = ma_format_from_WAVEFORMATEX(&wf); + pDescriptorCapture->channels = wf.nChannels; + pDescriptorCapture->sampleRate = wf.nSamplesPerSec; + ma_get_standard_channel_map(ma_standard_channel_map_microsoft, pDescriptorCapture->channels, pDescriptorCapture->channelMap); + pDescriptorCapture->periodCount = pDescriptorCapture->periodCount; + pDescriptorCapture->periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__winmm(pDescriptorCapture, pDescriptorCapture->sampleRate, pConfig->performanceProfile); + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + WAVEOUTCAPSA caps; + WAVEFORMATEX wf; + MMRESULT resultMM; + + /* We use an event to know when a new fragment needs to be enqueued. */ + pDevice->winmm.hEventPlayback = (ma_handle)CreateEvent(NULL, TRUE, TRUE, NULL); + if (pDevice->winmm.hEventPlayback == NULL) { + errorMsg = "[WinMM] Failed to create event for fragment enqueing for the playback device.", errorCode = ma_result_from_GetLastError(GetLastError()); + goto on_error; + } + + /* The format should be based on the device's actual format. */ + if (((MA_PFN_waveOutGetDevCapsA)pDevice->pContext->winmm.waveOutGetDevCapsA)(winMMDeviceIDPlayback, &caps, sizeof(caps)) != MMSYSERR_NOERROR) { + errorMsg = "[WinMM] Failed to retrieve internal device caps.", errorCode = MA_FORMAT_NOT_SUPPORTED; + goto on_error; + } + + result = ma_formats_flags_to_WAVEFORMATEX__winmm(caps.dwFormats, caps.wChannels, &wf); + if (result != MA_SUCCESS) { + errorMsg = "[WinMM] Could not find appropriate format for internal device.", errorCode = result; + goto on_error; + } + + resultMM = ((MA_PFN_waveOutOpen)pDevice->pContext->winmm.waveOutOpen)((LPHWAVEOUT)&pDevice->winmm.hDevicePlayback, winMMDeviceIDPlayback, &wf, (DWORD_PTR)pDevice->winmm.hEventPlayback, (DWORD_PTR)pDevice, CALLBACK_EVENT | WAVE_ALLOWSYNC); + if (resultMM != MMSYSERR_NOERROR) { + errorMsg = "[WinMM] Failed to open playback device.", errorCode = MA_FAILED_TO_OPEN_BACKEND_DEVICE; + goto on_error; + } + + pDescriptorPlayback->format = ma_format_from_WAVEFORMATEX(&wf); + pDescriptorPlayback->channels = wf.nChannels; + pDescriptorPlayback->sampleRate = wf.nSamplesPerSec; + ma_get_standard_channel_map(ma_standard_channel_map_microsoft, pDescriptorPlayback->channels, pDescriptorPlayback->channelMap); + pDescriptorPlayback->periodCount = pDescriptorPlayback->periodCount; + pDescriptorPlayback->periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__winmm(pDescriptorPlayback, pDescriptorPlayback->sampleRate, pConfig->performanceProfile); + } + + /* + The heap allocated data is allocated like so: + + [Capture WAVEHDRs][Playback WAVEHDRs][Capture Intermediary Buffer][Playback Intermediary Buffer] + */ + heapSize = 0; + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + heapSize += sizeof(WAVEHDR)*pDescriptorCapture->periodCount + (pDescriptorCapture->periodSizeInFrames * pDescriptorCapture->periodCount * ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels)); + } + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + heapSize += sizeof(WAVEHDR)*pDescriptorPlayback->periodCount + (pDescriptorPlayback->periodSizeInFrames * pDescriptorPlayback->periodCount * ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels)); + } + + pDevice->winmm._pHeapData = (ma_uint8*)ma__calloc_from_callbacks(heapSize, &pDevice->pContext->allocationCallbacks); + if (pDevice->winmm._pHeapData == NULL) { + errorMsg = "[WinMM] Failed to allocate memory for the intermediary buffer.", errorCode = MA_OUT_OF_MEMORY; + goto on_error; + } + + MA_ZERO_MEMORY(pDevice->winmm._pHeapData, heapSize); + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ma_uint32 iPeriod; + + if (pConfig->deviceType == ma_device_type_capture) { + pDevice->winmm.pWAVEHDRCapture = pDevice->winmm._pHeapData; + pDevice->winmm.pIntermediaryBufferCapture = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount)); + } else { + pDevice->winmm.pWAVEHDRCapture = pDevice->winmm._pHeapData; + pDevice->winmm.pIntermediaryBufferCapture = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount + pDescriptorPlayback->periodCount)); + } + + /* Prepare headers. */ + for (iPeriod = 0; iPeriod < pDescriptorCapture->periodCount; ++iPeriod) { + ma_uint32 periodSizeInBytes = ma_get_period_size_in_bytes(pDescriptorCapture->periodSizeInFrames, pDescriptorCapture->format, pDescriptorCapture->channels); + + ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].lpData = (LPSTR)(pDevice->winmm.pIntermediaryBufferCapture + (periodSizeInBytes*iPeriod)); + ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwBufferLength = periodSizeInBytes; + ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwFlags = 0L; + ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwLoops = 0L; + ((MA_PFN_waveInPrepareHeader)pDevice->pContext->winmm.waveInPrepareHeader)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(WAVEHDR)); + + /* + The user data of the WAVEHDR structure is a single flag the controls whether or not it is ready for writing. Consider it to be named "isLocked". A value of 0 means + it's unlocked and available for writing. A value of 1 means it's locked. + */ + ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwUser = 0; + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_uint32 iPeriod; + + if (pConfig->deviceType == ma_device_type_playback) { + pDevice->winmm.pWAVEHDRPlayback = pDevice->winmm._pHeapData; + pDevice->winmm.pIntermediaryBufferPlayback = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*pDescriptorPlayback->periodCount); + } else { + pDevice->winmm.pWAVEHDRPlayback = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount)); + pDevice->winmm.pIntermediaryBufferPlayback = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount + pDescriptorPlayback->periodCount)) + (pDescriptorCapture->periodSizeInFrames*pDescriptorCapture->periodCount*ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels)); + } + + /* Prepare headers. */ + for (iPeriod = 0; iPeriod < pDescriptorPlayback->periodCount; ++iPeriod) { + ma_uint32 periodSizeInBytes = ma_get_period_size_in_bytes(pDescriptorPlayback->periodSizeInFrames, pDescriptorPlayback->format, pDescriptorPlayback->channels); + + ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].lpData = (LPSTR)(pDevice->winmm.pIntermediaryBufferPlayback + (periodSizeInBytes*iPeriod)); + ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwBufferLength = periodSizeInBytes; + ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwFlags = 0L; + ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwLoops = 0L; + ((MA_PFN_waveOutPrepareHeader)pDevice->pContext->winmm.waveOutPrepareHeader)((HWAVEOUT)pDevice->winmm.hDevicePlayback, &((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod], sizeof(WAVEHDR)); + + /* + The user data of the WAVEHDR structure is a single flag the controls whether or not it is ready for writing. Consider it to be named "isLocked". A value of 0 means + it's unlocked and available for writing. A value of 1 means it's locked. + */ + ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwUser = 0; + } + } + + return MA_SUCCESS; + +on_error: + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + if (pDevice->winmm.pWAVEHDRCapture != NULL) { + ma_uint32 iPeriod; + for (iPeriod = 0; iPeriod < pDescriptorCapture->periodCount; ++iPeriod) { + ((MA_PFN_waveInUnprepareHeader)pDevice->pContext->winmm.waveInUnprepareHeader)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(WAVEHDR)); + } + } + + ((MA_PFN_waveInClose)pDevice->pContext->winmm.waveInClose)((HWAVEIN)pDevice->winmm.hDeviceCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + if (pDevice->winmm.pWAVEHDRCapture != NULL) { + ma_uint32 iPeriod; + for (iPeriod = 0; iPeriod < pDescriptorPlayback->periodCount; ++iPeriod) { + ((MA_PFN_waveOutUnprepareHeader)pDevice->pContext->winmm.waveOutUnprepareHeader)((HWAVEOUT)pDevice->winmm.hDevicePlayback, &((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod], sizeof(WAVEHDR)); + } + } + + ((MA_PFN_waveOutClose)pDevice->pContext->winmm.waveOutClose)((HWAVEOUT)pDevice->winmm.hDevicePlayback); + } + + ma__free_from_callbacks(pDevice->winmm._pHeapData, &pDevice->pContext->allocationCallbacks); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, errorMsg, errorCode); +} + +static ma_result ma_device_start__winmm(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + MMRESULT resultMM; + WAVEHDR* pWAVEHDR; + ma_uint32 iPeriod; + + pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRCapture; + + /* Make sure the event is reset to a non-signaled state to ensure we don't prematurely return from WaitForSingleObject(). */ + ResetEvent((HANDLE)pDevice->winmm.hEventCapture); + + /* To start the device we attach all of the buffers and then start it. As the buffers are filled with data we will get notifications. */ + for (iPeriod = 0; iPeriod < pDevice->capture.internalPeriods; ++iPeriod) { + resultMM = ((MA_PFN_waveInAddBuffer)pDevice->pContext->winmm.waveInAddBuffer)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((LPWAVEHDR)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(WAVEHDR)); + if (resultMM != MMSYSERR_NOERROR) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WinMM] Failed to attach input buffers to capture device in preparation for capture.", ma_result_from_MMRESULT(resultMM)); + } + + /* Make sure all of the buffers start out locked. We don't want to access them until the backend tells us we can. */ + pWAVEHDR[iPeriod].dwUser = 1; /* 1 = locked. */ + } + + /* Capture devices need to be explicitly started, unlike playback devices. */ + resultMM = ((MA_PFN_waveInStart)pDevice->pContext->winmm.waveInStart)((HWAVEIN)pDevice->winmm.hDeviceCapture); + if (resultMM != MMSYSERR_NOERROR) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WinMM] Failed to start backend device.", ma_result_from_MMRESULT(resultMM)); + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* Don't need to do anything for playback. It'll be started automatically in ma_device_start__winmm(). */ + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__winmm(ma_device* pDevice) +{ + MMRESULT resultMM; + + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + if (pDevice->winmm.hDeviceCapture == NULL) { + return MA_INVALID_ARGS; + } + + resultMM = ((MA_PFN_waveInReset)pDevice->pContext->winmm.waveInReset)((HWAVEIN)pDevice->winmm.hDeviceCapture); + if (resultMM != MMSYSERR_NOERROR) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WinMM] WARNING: Failed to reset capture device.", ma_result_from_MMRESULT(resultMM)); + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_uint32 iPeriod; + WAVEHDR* pWAVEHDR; + + if (pDevice->winmm.hDevicePlayback == NULL) { + return MA_INVALID_ARGS; + } + + /* We need to drain the device. To do this we just loop over each header and if it's locked just wait for the event. */ + pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback; + for (iPeriod = 0; iPeriod < pDevice->playback.internalPeriods; iPeriod += 1) { + if (pWAVEHDR[iPeriod].dwUser == 1) { /* 1 = locked. */ + if (WaitForSingleObject((HANDLE)pDevice->winmm.hEventPlayback, INFINITE) != WAIT_OBJECT_0) { + break; /* An error occurred so just abandon ship and stop the device without draining. */ + } + + pWAVEHDR[iPeriod].dwUser = 0; + } + } + + resultMM = ((MA_PFN_waveOutReset)pDevice->pContext->winmm.waveOutReset)((HWAVEOUT)pDevice->winmm.hDevicePlayback); + if (resultMM != MMSYSERR_NOERROR) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WinMM] WARNING: Failed to reset playback device.", ma_result_from_MMRESULT(resultMM)); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_write__winmm(ma_device* pDevice, const void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) +{ + ma_result result = MA_SUCCESS; + MMRESULT resultMM; + ma_uint32 totalFramesWritten; + WAVEHDR* pWAVEHDR; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pPCMFrames != NULL); + + if (pFramesWritten != NULL) { + *pFramesWritten = 0; + } + + pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback; + + /* Keep processing as much data as possible. */ + totalFramesWritten = 0; + while (totalFramesWritten < frameCount) { + /* If the current header has some space available we need to write part of it. */ + if (pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwUser == 0) { /* 0 = unlocked. */ + /* + This header has room in it. We copy as much of it as we can. If we end up fully consuming the buffer we need to + write it out and move on to the next iteration. + */ + ma_uint32 bpf = ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + ma_uint32 framesRemainingInHeader = (pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwBufferLength/bpf) - pDevice->winmm.headerFramesConsumedPlayback; + + ma_uint32 framesToCopy = ma_min(framesRemainingInHeader, (frameCount - totalFramesWritten)); + const void* pSrc = ma_offset_ptr(pPCMFrames, totalFramesWritten*bpf); + void* pDst = ma_offset_ptr(pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].lpData, pDevice->winmm.headerFramesConsumedPlayback*bpf); + MA_COPY_MEMORY(pDst, pSrc, framesToCopy*bpf); + + pDevice->winmm.headerFramesConsumedPlayback += framesToCopy; + totalFramesWritten += framesToCopy; + + /* If we've consumed the buffer entirely we need to write it out to the device. */ + if (pDevice->winmm.headerFramesConsumedPlayback == (pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwBufferLength/bpf)) { + pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwUser = 1; /* 1 = locked. */ + pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwFlags &= ~WHDR_DONE; /* <-- Need to make sure the WHDR_DONE flag is unset. */ + + /* Make sure the event is reset to a non-signaled state to ensure we don't prematurely return from WaitForSingleObject(). */ + ResetEvent((HANDLE)pDevice->winmm.hEventPlayback); + + /* The device will be started here. */ + resultMM = ((MA_PFN_waveOutWrite)pDevice->pContext->winmm.waveOutWrite)((HWAVEOUT)pDevice->winmm.hDevicePlayback, &pWAVEHDR[pDevice->winmm.iNextHeaderPlayback], sizeof(WAVEHDR)); + if (resultMM != MMSYSERR_NOERROR) { + result = ma_result_from_MMRESULT(resultMM); + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WinMM] waveOutWrite() failed.", result); + break; + } + + /* Make sure we move to the next header. */ + pDevice->winmm.iNextHeaderPlayback = (pDevice->winmm.iNextHeaderPlayback + 1) % pDevice->playback.internalPeriods; + pDevice->winmm.headerFramesConsumedPlayback = 0; + } + + /* If at this point we have consumed the entire input buffer we can return. */ + MA_ASSERT(totalFramesWritten <= frameCount); + if (totalFramesWritten == frameCount) { + break; + } + + /* Getting here means there's more to process. */ + continue; + } + + /* Getting here means there isn't enough room in the buffer and we need to wait for one to become available. */ + if (WaitForSingleObject((HANDLE)pDevice->winmm.hEventPlayback, INFINITE) != WAIT_OBJECT_0) { + result = MA_ERROR; + break; + } + + /* Something happened. If the next buffer has been marked as done we need to reset a bit of state. */ + if ((pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwFlags & WHDR_DONE) != 0) { + pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwUser = 0; /* 0 = unlocked (make it available for writing). */ + pDevice->winmm.headerFramesConsumedPlayback = 0; + } + + /* If the device has been stopped we need to break. */ + if (ma_device_get_state(pDevice) != MA_STATE_STARTED) { + break; + } + } + + if (pFramesWritten != NULL) { + *pFramesWritten = totalFramesWritten; + } + + return result; +} + +static ma_result ma_device_read__winmm(ma_device* pDevice, void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesRead) +{ + ma_result result = MA_SUCCESS; + MMRESULT resultMM; + ma_uint32 totalFramesRead; + WAVEHDR* pWAVEHDR; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pPCMFrames != NULL); + + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRCapture; + + /* Keep processing as much data as possible. */ + totalFramesRead = 0; + while (totalFramesRead < frameCount) { + /* If the current header has some space available we need to write part of it. */ + if (pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwUser == 0) { /* 0 = unlocked. */ + /* The buffer is available for reading. If we fully consume it we need to add it back to the buffer. */ + ma_uint32 bpf = ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + ma_uint32 framesRemainingInHeader = (pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwBufferLength/bpf) - pDevice->winmm.headerFramesConsumedCapture; + + ma_uint32 framesToCopy = ma_min(framesRemainingInHeader, (frameCount - totalFramesRead)); + const void* pSrc = ma_offset_ptr(pWAVEHDR[pDevice->winmm.iNextHeaderCapture].lpData, pDevice->winmm.headerFramesConsumedCapture*bpf); + void* pDst = ma_offset_ptr(pPCMFrames, totalFramesRead*bpf); + MA_COPY_MEMORY(pDst, pSrc, framesToCopy*bpf); + + pDevice->winmm.headerFramesConsumedCapture += framesToCopy; + totalFramesRead += framesToCopy; + + /* If we've consumed the buffer entirely we need to add it back to the device. */ + if (pDevice->winmm.headerFramesConsumedCapture == (pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwBufferLength/bpf)) { + pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwUser = 1; /* 1 = locked. */ + pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwFlags &= ~WHDR_DONE; /* <-- Need to make sure the WHDR_DONE flag is unset. */ + + /* Make sure the event is reset to a non-signaled state to ensure we don't prematurely return from WaitForSingleObject(). */ + ResetEvent((HANDLE)pDevice->winmm.hEventCapture); + + /* The device will be started here. */ + resultMM = ((MA_PFN_waveInAddBuffer)pDevice->pContext->winmm.waveInAddBuffer)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((LPWAVEHDR)pDevice->winmm.pWAVEHDRCapture)[pDevice->winmm.iNextHeaderCapture], sizeof(WAVEHDR)); + if (resultMM != MMSYSERR_NOERROR) { + result = ma_result_from_MMRESULT(resultMM); + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[WinMM] waveInAddBuffer() failed.", result); + break; + } + + /* Make sure we move to the next header. */ + pDevice->winmm.iNextHeaderCapture = (pDevice->winmm.iNextHeaderCapture + 1) % pDevice->capture.internalPeriods; + pDevice->winmm.headerFramesConsumedCapture = 0; + } + + /* If at this point we have filled the entire input buffer we can return. */ + MA_ASSERT(totalFramesRead <= frameCount); + if (totalFramesRead == frameCount) { + break; + } + + /* Getting here means there's more to process. */ + continue; + } + + /* Getting here means there isn't enough any data left to send to the client which means we need to wait for more. */ + if (WaitForSingleObject((HANDLE)pDevice->winmm.hEventCapture, INFINITE) != WAIT_OBJECT_0) { + result = MA_ERROR; + break; + } + + /* Something happened. If the next buffer has been marked as done we need to reset a bit of state. */ + if ((pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwFlags & WHDR_DONE) != 0) { + pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwUser = 0; /* 0 = unlocked (make it available for reading). */ + pDevice->winmm.headerFramesConsumedCapture = 0; + } + + /* If the device has been stopped we need to break. */ + if (ma_device_get_state(pDevice) != MA_STATE_STARTED) { + break; + } + } + + if (pFramesRead != NULL) { + *pFramesRead = totalFramesRead; + } + + return result; +} + +static ma_result ma_context_uninit__winmm(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_winmm); + + ma_dlclose(pContext, pContext->winmm.hWinMM); + return MA_SUCCESS; +} + +static ma_result ma_context_init__winmm(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + MA_ASSERT(pContext != NULL); + + (void)pConfig; + + pContext->winmm.hWinMM = ma_dlopen(pContext, "winmm.dll"); + if (pContext->winmm.hWinMM == NULL) { + return MA_NO_BACKEND; + } + + pContext->winmm.waveOutGetNumDevs = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutGetNumDevs"); + pContext->winmm.waveOutGetDevCapsA = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutGetDevCapsA"); + pContext->winmm.waveOutOpen = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutOpen"); + pContext->winmm.waveOutClose = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutClose"); + pContext->winmm.waveOutPrepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutPrepareHeader"); + pContext->winmm.waveOutUnprepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutUnprepareHeader"); + pContext->winmm.waveOutWrite = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutWrite"); + pContext->winmm.waveOutReset = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutReset"); + pContext->winmm.waveInGetNumDevs = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInGetNumDevs"); + pContext->winmm.waveInGetDevCapsA = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInGetDevCapsA"); + pContext->winmm.waveInOpen = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInOpen"); + pContext->winmm.waveInClose = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInClose"); + pContext->winmm.waveInPrepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInPrepareHeader"); + pContext->winmm.waveInUnprepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInUnprepareHeader"); + pContext->winmm.waveInAddBuffer = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInAddBuffer"); + pContext->winmm.waveInStart = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInStart"); + pContext->winmm.waveInReset = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInReset"); + + pCallbacks->onContextInit = ma_context_init__winmm; + pCallbacks->onContextUninit = ma_context_uninit__winmm; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__winmm; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__winmm; + pCallbacks->onDeviceInit = ma_device_init__winmm; + pCallbacks->onDeviceUninit = ma_device_uninit__winmm; + pCallbacks->onDeviceStart = ma_device_start__winmm; + pCallbacks->onDeviceStop = ma_device_stop__winmm; + pCallbacks->onDeviceRead = ma_device_read__winmm; + pCallbacks->onDeviceWrite = ma_device_write__winmm; + pCallbacks->onDeviceDataLoop = NULL; /* This is a blocking read-write API, so this can be NULL since miniaudio will manage the audio thread for us. */ + + return MA_SUCCESS; +} +#endif + + + + +/****************************************************************************** + +ALSA Backend + +******************************************************************************/ +#ifdef MA_HAS_ALSA + +#include /* poll(), struct pollfd */ +#include /* eventfd() */ + +#ifdef MA_NO_RUNTIME_LINKING + +/* asoundlib.h marks some functions with "inline" which isn't always supported. Need to emulate it. */ +#if !defined(__cplusplus) + #if defined(__STRICT_ANSI__) + #if !defined(inline) + #define inline __inline__ __attribute__((always_inline)) + #define MA_INLINE_DEFINED + #endif + #endif +#endif +#include +#if defined(MA_INLINE_DEFINED) + #undef inline + #undef MA_INLINE_DEFINED +#endif + +typedef snd_pcm_uframes_t ma_snd_pcm_uframes_t; +typedef snd_pcm_sframes_t ma_snd_pcm_sframes_t; +typedef snd_pcm_stream_t ma_snd_pcm_stream_t; +typedef snd_pcm_format_t ma_snd_pcm_format_t; +typedef snd_pcm_access_t ma_snd_pcm_access_t; +typedef snd_pcm_t ma_snd_pcm_t; +typedef snd_pcm_hw_params_t ma_snd_pcm_hw_params_t; +typedef snd_pcm_sw_params_t ma_snd_pcm_sw_params_t; +typedef snd_pcm_format_mask_t ma_snd_pcm_format_mask_t; +typedef snd_pcm_info_t ma_snd_pcm_info_t; +typedef snd_pcm_channel_area_t ma_snd_pcm_channel_area_t; +typedef snd_pcm_chmap_t ma_snd_pcm_chmap_t; +typedef snd_pcm_state_t ma_snd_pcm_state_t; + +/* snd_pcm_stream_t */ +#define MA_SND_PCM_STREAM_PLAYBACK SND_PCM_STREAM_PLAYBACK +#define MA_SND_PCM_STREAM_CAPTURE SND_PCM_STREAM_CAPTURE + +/* snd_pcm_format_t */ +#define MA_SND_PCM_FORMAT_UNKNOWN SND_PCM_FORMAT_UNKNOWN +#define MA_SND_PCM_FORMAT_U8 SND_PCM_FORMAT_U8 +#define MA_SND_PCM_FORMAT_S16_LE SND_PCM_FORMAT_S16_LE +#define MA_SND_PCM_FORMAT_S16_BE SND_PCM_FORMAT_S16_BE +#define MA_SND_PCM_FORMAT_S24_LE SND_PCM_FORMAT_S24_LE +#define MA_SND_PCM_FORMAT_S24_BE SND_PCM_FORMAT_S24_BE +#define MA_SND_PCM_FORMAT_S32_LE SND_PCM_FORMAT_S32_LE +#define MA_SND_PCM_FORMAT_S32_BE SND_PCM_FORMAT_S32_BE +#define MA_SND_PCM_FORMAT_FLOAT_LE SND_PCM_FORMAT_FLOAT_LE +#define MA_SND_PCM_FORMAT_FLOAT_BE SND_PCM_FORMAT_FLOAT_BE +#define MA_SND_PCM_FORMAT_FLOAT64_LE SND_PCM_FORMAT_FLOAT64_LE +#define MA_SND_PCM_FORMAT_FLOAT64_BE SND_PCM_FORMAT_FLOAT64_BE +#define MA_SND_PCM_FORMAT_MU_LAW SND_PCM_FORMAT_MU_LAW +#define MA_SND_PCM_FORMAT_A_LAW SND_PCM_FORMAT_A_LAW +#define MA_SND_PCM_FORMAT_S24_3LE SND_PCM_FORMAT_S24_3LE +#define MA_SND_PCM_FORMAT_S24_3BE SND_PCM_FORMAT_S24_3BE + +/* ma_snd_pcm_access_t */ +#define MA_SND_PCM_ACCESS_MMAP_INTERLEAVED SND_PCM_ACCESS_MMAP_INTERLEAVED +#define MA_SND_PCM_ACCESS_MMAP_NONINTERLEAVED SND_PCM_ACCESS_MMAP_NONINTERLEAVED +#define MA_SND_PCM_ACCESS_MMAP_COMPLEX SND_PCM_ACCESS_MMAP_COMPLEX +#define MA_SND_PCM_ACCESS_RW_INTERLEAVED SND_PCM_ACCESS_RW_INTERLEAVED +#define MA_SND_PCM_ACCESS_RW_NONINTERLEAVED SND_PCM_ACCESS_RW_NONINTERLEAVED + +/* Channel positions. */ +#define MA_SND_CHMAP_UNKNOWN SND_CHMAP_UNKNOWN +#define MA_SND_CHMAP_NA SND_CHMAP_NA +#define MA_SND_CHMAP_MONO SND_CHMAP_MONO +#define MA_SND_CHMAP_FL SND_CHMAP_FL +#define MA_SND_CHMAP_FR SND_CHMAP_FR +#define MA_SND_CHMAP_RL SND_CHMAP_RL +#define MA_SND_CHMAP_RR SND_CHMAP_RR +#define MA_SND_CHMAP_FC SND_CHMAP_FC +#define MA_SND_CHMAP_LFE SND_CHMAP_LFE +#define MA_SND_CHMAP_SL SND_CHMAP_SL +#define MA_SND_CHMAP_SR SND_CHMAP_SR +#define MA_SND_CHMAP_RC SND_CHMAP_RC +#define MA_SND_CHMAP_FLC SND_CHMAP_FLC +#define MA_SND_CHMAP_FRC SND_CHMAP_FRC +#define MA_SND_CHMAP_RLC SND_CHMAP_RLC +#define MA_SND_CHMAP_RRC SND_CHMAP_RRC +#define MA_SND_CHMAP_FLW SND_CHMAP_FLW +#define MA_SND_CHMAP_FRW SND_CHMAP_FRW +#define MA_SND_CHMAP_FLH SND_CHMAP_FLH +#define MA_SND_CHMAP_FCH SND_CHMAP_FCH +#define MA_SND_CHMAP_FRH SND_CHMAP_FRH +#define MA_SND_CHMAP_TC SND_CHMAP_TC +#define MA_SND_CHMAP_TFL SND_CHMAP_TFL +#define MA_SND_CHMAP_TFR SND_CHMAP_TFR +#define MA_SND_CHMAP_TFC SND_CHMAP_TFC +#define MA_SND_CHMAP_TRL SND_CHMAP_TRL +#define MA_SND_CHMAP_TRR SND_CHMAP_TRR +#define MA_SND_CHMAP_TRC SND_CHMAP_TRC +#define MA_SND_CHMAP_TFLC SND_CHMAP_TFLC +#define MA_SND_CHMAP_TFRC SND_CHMAP_TFRC +#define MA_SND_CHMAP_TSL SND_CHMAP_TSL +#define MA_SND_CHMAP_TSR SND_CHMAP_TSR +#define MA_SND_CHMAP_LLFE SND_CHMAP_LLFE +#define MA_SND_CHMAP_RLFE SND_CHMAP_RLFE +#define MA_SND_CHMAP_BC SND_CHMAP_BC +#define MA_SND_CHMAP_BLC SND_CHMAP_BLC +#define MA_SND_CHMAP_BRC SND_CHMAP_BRC + +/* Open mode flags. */ +#define MA_SND_PCM_NO_AUTO_RESAMPLE SND_PCM_NO_AUTO_RESAMPLE +#define MA_SND_PCM_NO_AUTO_CHANNELS SND_PCM_NO_AUTO_CHANNELS +#define MA_SND_PCM_NO_AUTO_FORMAT SND_PCM_NO_AUTO_FORMAT +#else +#include /* For EPIPE, etc. */ +typedef unsigned long ma_snd_pcm_uframes_t; +typedef long ma_snd_pcm_sframes_t; +typedef int ma_snd_pcm_stream_t; +typedef int ma_snd_pcm_format_t; +typedef int ma_snd_pcm_access_t; +typedef int ma_snd_pcm_state_t; +typedef struct ma_snd_pcm_t ma_snd_pcm_t; +typedef struct ma_snd_pcm_hw_params_t ma_snd_pcm_hw_params_t; +typedef struct ma_snd_pcm_sw_params_t ma_snd_pcm_sw_params_t; +typedef struct ma_snd_pcm_format_mask_t ma_snd_pcm_format_mask_t; +typedef struct ma_snd_pcm_info_t ma_snd_pcm_info_t; +typedef struct +{ + void* addr; + unsigned int first; + unsigned int step; +} ma_snd_pcm_channel_area_t; +typedef struct +{ + unsigned int channels; + unsigned int pos[1]; +} ma_snd_pcm_chmap_t; + +/* snd_pcm_state_t */ +#define MA_SND_PCM_STATE_OPEN 0 +#define MA_SND_PCM_STATE_SETUP 1 +#define MA_SND_PCM_STATE_PREPARED 2 +#define MA_SND_PCM_STATE_RUNNING 3 +#define MA_SND_PCM_STATE_XRUN 4 +#define MA_SND_PCM_STATE_DRAINING 5 +#define MA_SND_PCM_STATE_PAUSED 6 +#define MA_SND_PCM_STATE_SUSPENDED 7 +#define MA_SND_PCM_STATE_DISCONNECTED 8 + +/* snd_pcm_stream_t */ +#define MA_SND_PCM_STREAM_PLAYBACK 0 +#define MA_SND_PCM_STREAM_CAPTURE 1 + +/* snd_pcm_format_t */ +#define MA_SND_PCM_FORMAT_UNKNOWN -1 +#define MA_SND_PCM_FORMAT_U8 1 +#define MA_SND_PCM_FORMAT_S16_LE 2 +#define MA_SND_PCM_FORMAT_S16_BE 3 +#define MA_SND_PCM_FORMAT_S24_LE 6 +#define MA_SND_PCM_FORMAT_S24_BE 7 +#define MA_SND_PCM_FORMAT_S32_LE 10 +#define MA_SND_PCM_FORMAT_S32_BE 11 +#define MA_SND_PCM_FORMAT_FLOAT_LE 14 +#define MA_SND_PCM_FORMAT_FLOAT_BE 15 +#define MA_SND_PCM_FORMAT_FLOAT64_LE 16 +#define MA_SND_PCM_FORMAT_FLOAT64_BE 17 +#define MA_SND_PCM_FORMAT_MU_LAW 20 +#define MA_SND_PCM_FORMAT_A_LAW 21 +#define MA_SND_PCM_FORMAT_S24_3LE 32 +#define MA_SND_PCM_FORMAT_S24_3BE 33 + +/* snd_pcm_access_t */ +#define MA_SND_PCM_ACCESS_MMAP_INTERLEAVED 0 +#define MA_SND_PCM_ACCESS_MMAP_NONINTERLEAVED 1 +#define MA_SND_PCM_ACCESS_MMAP_COMPLEX 2 +#define MA_SND_PCM_ACCESS_RW_INTERLEAVED 3 +#define MA_SND_PCM_ACCESS_RW_NONINTERLEAVED 4 + +/* Channel positions. */ +#define MA_SND_CHMAP_UNKNOWN 0 +#define MA_SND_CHMAP_NA 1 +#define MA_SND_CHMAP_MONO 2 +#define MA_SND_CHMAP_FL 3 +#define MA_SND_CHMAP_FR 4 +#define MA_SND_CHMAP_RL 5 +#define MA_SND_CHMAP_RR 6 +#define MA_SND_CHMAP_FC 7 +#define MA_SND_CHMAP_LFE 8 +#define MA_SND_CHMAP_SL 9 +#define MA_SND_CHMAP_SR 10 +#define MA_SND_CHMAP_RC 11 +#define MA_SND_CHMAP_FLC 12 +#define MA_SND_CHMAP_FRC 13 +#define MA_SND_CHMAP_RLC 14 +#define MA_SND_CHMAP_RRC 15 +#define MA_SND_CHMAP_FLW 16 +#define MA_SND_CHMAP_FRW 17 +#define MA_SND_CHMAP_FLH 18 +#define MA_SND_CHMAP_FCH 19 +#define MA_SND_CHMAP_FRH 20 +#define MA_SND_CHMAP_TC 21 +#define MA_SND_CHMAP_TFL 22 +#define MA_SND_CHMAP_TFR 23 +#define MA_SND_CHMAP_TFC 24 +#define MA_SND_CHMAP_TRL 25 +#define MA_SND_CHMAP_TRR 26 +#define MA_SND_CHMAP_TRC 27 +#define MA_SND_CHMAP_TFLC 28 +#define MA_SND_CHMAP_TFRC 29 +#define MA_SND_CHMAP_TSL 30 +#define MA_SND_CHMAP_TSR 31 +#define MA_SND_CHMAP_LLFE 32 +#define MA_SND_CHMAP_RLFE 33 +#define MA_SND_CHMAP_BC 34 +#define MA_SND_CHMAP_BLC 35 +#define MA_SND_CHMAP_BRC 36 + +/* Open mode flags. */ +#define MA_SND_PCM_NO_AUTO_RESAMPLE 0x00010000 +#define MA_SND_PCM_NO_AUTO_CHANNELS 0x00020000 +#define MA_SND_PCM_NO_AUTO_FORMAT 0x00040000 +#endif + +typedef int (* ma_snd_pcm_open_proc) (ma_snd_pcm_t **pcm, const char *name, ma_snd_pcm_stream_t stream, int mode); +typedef int (* ma_snd_pcm_close_proc) (ma_snd_pcm_t *pcm); +typedef size_t (* ma_snd_pcm_hw_params_sizeof_proc) (void); +typedef int (* ma_snd_pcm_hw_params_any_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params); +typedef int (* ma_snd_pcm_hw_params_set_format_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, ma_snd_pcm_format_t val); +typedef int (* ma_snd_pcm_hw_params_set_format_first_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, ma_snd_pcm_format_t *format); +typedef void (* ma_snd_pcm_hw_params_get_format_mask_proc) (ma_snd_pcm_hw_params_t *params, ma_snd_pcm_format_mask_t *mask); +typedef int (* ma_snd_pcm_hw_params_set_channels_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int val); +typedef int (* ma_snd_pcm_hw_params_set_channels_near_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int *val); +typedef int (* ma_snd_pcm_hw_params_set_channels_minmax_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int *minimum, unsigned int *maximum); +typedef int (* ma_snd_pcm_hw_params_set_rate_resample_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int val); +typedef int (* ma_snd_pcm_hw_params_set_rate_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int val, int dir); +typedef int (* ma_snd_pcm_hw_params_set_rate_near_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int *val, int *dir); +typedef int (* ma_snd_pcm_hw_params_set_buffer_size_near_proc)(ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, ma_snd_pcm_uframes_t *val); +typedef int (* ma_snd_pcm_hw_params_set_periods_near_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int *val, int *dir); +typedef int (* ma_snd_pcm_hw_params_set_access_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, ma_snd_pcm_access_t _access); +typedef int (* ma_snd_pcm_hw_params_get_format_proc) (const ma_snd_pcm_hw_params_t *params, ma_snd_pcm_format_t *format); +typedef int (* ma_snd_pcm_hw_params_get_channels_proc) (const ma_snd_pcm_hw_params_t *params, unsigned int *val); +typedef int (* ma_snd_pcm_hw_params_get_channels_min_proc) (const ma_snd_pcm_hw_params_t *params, unsigned int *val); +typedef int (* ma_snd_pcm_hw_params_get_channels_max_proc) (const ma_snd_pcm_hw_params_t *params, unsigned int *val); +typedef int (* ma_snd_pcm_hw_params_get_rate_proc) (const ma_snd_pcm_hw_params_t *params, unsigned int *rate, int *dir); +typedef int (* ma_snd_pcm_hw_params_get_rate_min_proc) (const ma_snd_pcm_hw_params_t *params, unsigned int *rate, int *dir); +typedef int (* ma_snd_pcm_hw_params_get_rate_max_proc) (const ma_snd_pcm_hw_params_t *params, unsigned int *rate, int *dir); +typedef int (* ma_snd_pcm_hw_params_get_buffer_size_proc) (const ma_snd_pcm_hw_params_t *params, ma_snd_pcm_uframes_t *val); +typedef int (* ma_snd_pcm_hw_params_get_periods_proc) (const ma_snd_pcm_hw_params_t *params, unsigned int *val, int *dir); +typedef int (* ma_snd_pcm_hw_params_get_access_proc) (const ma_snd_pcm_hw_params_t *params, ma_snd_pcm_access_t *_access); +typedef int (* ma_snd_pcm_hw_params_test_format_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, ma_snd_pcm_format_t val); +typedef int (* ma_snd_pcm_hw_params_test_channels_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int val); +typedef int (* ma_snd_pcm_hw_params_test_rate_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params, unsigned int val, int dir); +typedef int (* ma_snd_pcm_hw_params_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_hw_params_t *params); +typedef size_t (* ma_snd_pcm_sw_params_sizeof_proc) (void); +typedef int (* ma_snd_pcm_sw_params_current_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_sw_params_t *params); +typedef int (* ma_snd_pcm_sw_params_get_boundary_proc) (const ma_snd_pcm_sw_params_t *params, ma_snd_pcm_uframes_t* val); +typedef int (* ma_snd_pcm_sw_params_set_avail_min_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_sw_params_t *params, ma_snd_pcm_uframes_t val); +typedef int (* ma_snd_pcm_sw_params_set_start_threshold_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_sw_params_t *params, ma_snd_pcm_uframes_t val); +typedef int (* ma_snd_pcm_sw_params_set_stop_threshold_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_sw_params_t *params, ma_snd_pcm_uframes_t val); +typedef int (* ma_snd_pcm_sw_params_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_sw_params_t *params); +typedef size_t (* ma_snd_pcm_format_mask_sizeof_proc) (void); +typedef int (* ma_snd_pcm_format_mask_test_proc) (const ma_snd_pcm_format_mask_t *mask, ma_snd_pcm_format_t val); +typedef ma_snd_pcm_chmap_t * (* ma_snd_pcm_get_chmap_proc) (ma_snd_pcm_t *pcm); +typedef ma_snd_pcm_state_t (* ma_snd_pcm_state_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_pcm_prepare_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_pcm_start_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_pcm_drop_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_pcm_drain_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_pcm_reset_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_device_name_hint_proc) (int card, const char *iface, void ***hints); +typedef char * (* ma_snd_device_name_get_hint_proc) (const void *hint, const char *id); +typedef int (* ma_snd_card_get_index_proc) (const char *name); +typedef int (* ma_snd_device_name_free_hint_proc) (void **hints); +typedef int (* ma_snd_pcm_mmap_begin_proc) (ma_snd_pcm_t *pcm, const ma_snd_pcm_channel_area_t **areas, ma_snd_pcm_uframes_t *offset, ma_snd_pcm_uframes_t *frames); +typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_mmap_commit_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_uframes_t offset, ma_snd_pcm_uframes_t frames); +typedef int (* ma_snd_pcm_recover_proc) (ma_snd_pcm_t *pcm, int err, int silent); +typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_readi_proc) (ma_snd_pcm_t *pcm, void *buffer, ma_snd_pcm_uframes_t size); +typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_writei_proc) (ma_snd_pcm_t *pcm, const void *buffer, ma_snd_pcm_uframes_t size); +typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_avail_proc) (ma_snd_pcm_t *pcm); +typedef ma_snd_pcm_sframes_t (* ma_snd_pcm_avail_update_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_pcm_wait_proc) (ma_snd_pcm_t *pcm, int timeout); +typedef int (* ma_snd_pcm_nonblock_proc) (ma_snd_pcm_t *pcm, int nonblock); +typedef int (* ma_snd_pcm_info_proc) (ma_snd_pcm_t *pcm, ma_snd_pcm_info_t* info); +typedef size_t (* ma_snd_pcm_info_sizeof_proc) (void); +typedef const char* (* ma_snd_pcm_info_get_name_proc) (const ma_snd_pcm_info_t* info); +typedef int (* ma_snd_pcm_poll_descriptors_proc) (ma_snd_pcm_t *pcm, struct pollfd *pfds, unsigned int space); +typedef int (* ma_snd_pcm_poll_descriptors_count_proc) (ma_snd_pcm_t *pcm); +typedef int (* ma_snd_pcm_poll_descriptors_revents_proc) (ma_snd_pcm_t *pcm, struct pollfd *pfds, unsigned int nfds, unsigned short *revents); +typedef int (* ma_snd_config_update_free_global_proc) (void); + +/* This array specifies each of the common devices that can be used for both playback and capture. */ +static const char* g_maCommonDeviceNamesALSA[] = { + "default", + "null", + "pulse", + "jack" +}; + +/* This array allows us to blacklist specific playback devices. */ +static const char* g_maBlacklistedPlaybackDeviceNamesALSA[] = { + "" +}; + +/* This array allows us to blacklist specific capture devices. */ +static const char* g_maBlacklistedCaptureDeviceNamesALSA[] = { + "" +}; + + +static ma_snd_pcm_format_t ma_convert_ma_format_to_alsa_format(ma_format format) +{ + ma_snd_pcm_format_t ALSAFormats[] = { + MA_SND_PCM_FORMAT_UNKNOWN, /* ma_format_unknown */ + MA_SND_PCM_FORMAT_U8, /* ma_format_u8 */ + MA_SND_PCM_FORMAT_S16_LE, /* ma_format_s16 */ + MA_SND_PCM_FORMAT_S24_3LE, /* ma_format_s24 */ + MA_SND_PCM_FORMAT_S32_LE, /* ma_format_s32 */ + MA_SND_PCM_FORMAT_FLOAT_LE /* ma_format_f32 */ + }; + + if (ma_is_big_endian()) { + ALSAFormats[0] = MA_SND_PCM_FORMAT_UNKNOWN; + ALSAFormats[1] = MA_SND_PCM_FORMAT_U8; + ALSAFormats[2] = MA_SND_PCM_FORMAT_S16_BE; + ALSAFormats[3] = MA_SND_PCM_FORMAT_S24_3BE; + ALSAFormats[4] = MA_SND_PCM_FORMAT_S32_BE; + ALSAFormats[5] = MA_SND_PCM_FORMAT_FLOAT_BE; + } + + return ALSAFormats[format]; +} + +static ma_format ma_format_from_alsa(ma_snd_pcm_format_t formatALSA) +{ + if (ma_is_little_endian()) { + switch (formatALSA) { + case MA_SND_PCM_FORMAT_S16_LE: return ma_format_s16; + case MA_SND_PCM_FORMAT_S24_3LE: return ma_format_s24; + case MA_SND_PCM_FORMAT_S32_LE: return ma_format_s32; + case MA_SND_PCM_FORMAT_FLOAT_LE: return ma_format_f32; + default: break; + } + } else { + switch (formatALSA) { + case MA_SND_PCM_FORMAT_S16_BE: return ma_format_s16; + case MA_SND_PCM_FORMAT_S24_3BE: return ma_format_s24; + case MA_SND_PCM_FORMAT_S32_BE: return ma_format_s32; + case MA_SND_PCM_FORMAT_FLOAT_BE: return ma_format_f32; + default: break; + } + } + + /* Endian agnostic. */ + switch (formatALSA) { + case MA_SND_PCM_FORMAT_U8: return ma_format_u8; + default: return ma_format_unknown; + } +} + +static ma_channel ma_convert_alsa_channel_position_to_ma_channel(unsigned int alsaChannelPos) +{ + switch (alsaChannelPos) + { + case MA_SND_CHMAP_MONO: return MA_CHANNEL_MONO; + case MA_SND_CHMAP_FL: return MA_CHANNEL_FRONT_LEFT; + case MA_SND_CHMAP_FR: return MA_CHANNEL_FRONT_RIGHT; + case MA_SND_CHMAP_RL: return MA_CHANNEL_BACK_LEFT; + case MA_SND_CHMAP_RR: return MA_CHANNEL_BACK_RIGHT; + case MA_SND_CHMAP_FC: return MA_CHANNEL_FRONT_CENTER; + case MA_SND_CHMAP_LFE: return MA_CHANNEL_LFE; + case MA_SND_CHMAP_SL: return MA_CHANNEL_SIDE_LEFT; + case MA_SND_CHMAP_SR: return MA_CHANNEL_SIDE_RIGHT; + case MA_SND_CHMAP_RC: return MA_CHANNEL_BACK_CENTER; + case MA_SND_CHMAP_FLC: return MA_CHANNEL_FRONT_LEFT_CENTER; + case MA_SND_CHMAP_FRC: return MA_CHANNEL_FRONT_RIGHT_CENTER; + case MA_SND_CHMAP_RLC: return 0; + case MA_SND_CHMAP_RRC: return 0; + case MA_SND_CHMAP_FLW: return 0; + case MA_SND_CHMAP_FRW: return 0; + case MA_SND_CHMAP_FLH: return 0; + case MA_SND_CHMAP_FCH: return 0; + case MA_SND_CHMAP_FRH: return 0; + case MA_SND_CHMAP_TC: return MA_CHANNEL_TOP_CENTER; + case MA_SND_CHMAP_TFL: return MA_CHANNEL_TOP_FRONT_LEFT; + case MA_SND_CHMAP_TFR: return MA_CHANNEL_TOP_FRONT_RIGHT; + case MA_SND_CHMAP_TFC: return MA_CHANNEL_TOP_FRONT_CENTER; + case MA_SND_CHMAP_TRL: return MA_CHANNEL_TOP_BACK_LEFT; + case MA_SND_CHMAP_TRR: return MA_CHANNEL_TOP_BACK_RIGHT; + case MA_SND_CHMAP_TRC: return MA_CHANNEL_TOP_BACK_CENTER; + default: break; + } + + return 0; +} + +static ma_bool32 ma_is_common_device_name__alsa(const char* name) +{ + size_t iName; + for (iName = 0; iName < ma_countof(g_maCommonDeviceNamesALSA); ++iName) { + if (ma_strcmp(name, g_maCommonDeviceNamesALSA[iName]) == 0) { + return MA_TRUE; + } + } + + return MA_FALSE; +} + + +static ma_bool32 ma_is_playback_device_blacklisted__alsa(const char* name) +{ + size_t iName; + for (iName = 0; iName < ma_countof(g_maBlacklistedPlaybackDeviceNamesALSA); ++iName) { + if (ma_strcmp(name, g_maBlacklistedPlaybackDeviceNamesALSA[iName]) == 0) { + return MA_TRUE; + } + } + + return MA_FALSE; +} + +static ma_bool32 ma_is_capture_device_blacklisted__alsa(const char* name) +{ + size_t iName; + for (iName = 0; iName < ma_countof(g_maBlacklistedCaptureDeviceNamesALSA); ++iName) { + if (ma_strcmp(name, g_maBlacklistedCaptureDeviceNamesALSA[iName]) == 0) { + return MA_TRUE; + } + } + + return MA_FALSE; +} + +static ma_bool32 ma_is_device_blacklisted__alsa(ma_device_type deviceType, const char* name) +{ + if (deviceType == ma_device_type_playback) { + return ma_is_playback_device_blacklisted__alsa(name); + } else { + return ma_is_capture_device_blacklisted__alsa(name); + } +} + + +static const char* ma_find_char(const char* str, char c, int* index) +{ + int i = 0; + for (;;) { + if (str[i] == '\0') { + if (index) *index = -1; + return NULL; + } + + if (str[i] == c) { + if (index) *index = i; + return str + i; + } + + i += 1; + } + + /* Should never get here, but treat it as though the character was not found to make me feel better inside. */ + if (index) *index = -1; + return NULL; +} + +static ma_bool32 ma_is_device_name_in_hw_format__alsa(const char* hwid) +{ + /* This function is just checking whether or not hwid is in "hw:%d,%d" format. */ + + int commaPos; + const char* dev; + int i; + + if (hwid == NULL) { + return MA_FALSE; + } + + if (hwid[0] != 'h' || hwid[1] != 'w' || hwid[2] != ':') { + return MA_FALSE; + } + + hwid += 3; + + dev = ma_find_char(hwid, ',', &commaPos); + if (dev == NULL) { + return MA_FALSE; + } else { + dev += 1; /* Skip past the ",". */ + } + + /* Check if the part between the ":" and the "," contains only numbers. If not, return false. */ + for (i = 0; i < commaPos; ++i) { + if (hwid[i] < '0' || hwid[i] > '9') { + return MA_FALSE; + } + } + + /* Check if everything after the "," is numeric. If not, return false. */ + i = 0; + while (dev[i] != '\0') { + if (dev[i] < '0' || dev[i] > '9') { + return MA_FALSE; + } + i += 1; + } + + return MA_TRUE; +} + +static int ma_convert_device_name_to_hw_format__alsa(ma_context* pContext, char* dst, size_t dstSize, const char* src) /* Returns 0 on success, non-0 on error. */ +{ + /* src should look something like this: "hw:CARD=I82801AAICH,DEV=0" */ + + int colonPos; + int commaPos; + char card[256]; + const char* dev; + int cardIndex; + + if (dst == NULL) { + return -1; + } + if (dstSize < 7) { + return -1; /* Absolute minimum size of the output buffer is 7 bytes. */ + } + + *dst = '\0'; /* Safety. */ + if (src == NULL) { + return -1; + } + + /* If the input name is already in "hw:%d,%d" format, just return that verbatim. */ + if (ma_is_device_name_in_hw_format__alsa(src)) { + return ma_strcpy_s(dst, dstSize, src); + } + + src = ma_find_char(src, ':', &colonPos); + if (src == NULL) { + return -1; /* Couldn't find a colon */ + } + + dev = ma_find_char(src, ',', &commaPos); + if (dev == NULL) { + dev = "0"; + ma_strncpy_s(card, sizeof(card), src+6, (size_t)-1); /* +6 = ":CARD=" */ + } else { + dev = dev + 5; /* +5 = ",DEV=" */ + ma_strncpy_s(card, sizeof(card), src+6, commaPos-6); /* +6 = ":CARD=" */ + } + + cardIndex = ((ma_snd_card_get_index_proc)pContext->alsa.snd_card_get_index)(card); + if (cardIndex < 0) { + return -2; /* Failed to retrieve the card index. */ + } + + /*printf("TESTING: CARD=%s,DEV=%s\n", card, dev); */ + + + /* Construction. */ + dst[0] = 'h'; dst[1] = 'w'; dst[2] = ':'; + if (ma_itoa_s(cardIndex, dst+3, dstSize-3, 10) != 0) { + return -3; + } + if (ma_strcat_s(dst, dstSize, ",") != 0) { + return -3; + } + if (ma_strcat_s(dst, dstSize, dev) != 0) { + return -3; + } + + return 0; +} + +static ma_bool32 ma_does_id_exist_in_list__alsa(ma_device_id* pUniqueIDs, ma_uint32 count, const char* pHWID) +{ + ma_uint32 i; + + MA_ASSERT(pHWID != NULL); + + for (i = 0; i < count; ++i) { + if (ma_strcmp(pUniqueIDs[i].alsa, pHWID) == 0) { + return MA_TRUE; + } + } + + return MA_FALSE; +} + + +static ma_result ma_context_open_pcm__alsa(ma_context* pContext, ma_share_mode shareMode, ma_device_type deviceType, const ma_device_id* pDeviceID, int openMode, ma_snd_pcm_t** ppPCM) +{ + ma_snd_pcm_t* pPCM; + ma_snd_pcm_stream_t stream; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppPCM != NULL); + + *ppPCM = NULL; + pPCM = NULL; + + stream = (deviceType == ma_device_type_playback) ? MA_SND_PCM_STREAM_PLAYBACK : MA_SND_PCM_STREAM_CAPTURE; + + if (pDeviceID == NULL) { + ma_bool32 isDeviceOpen; + size_t i; + + /* + We're opening the default device. I don't know if trying anything other than "default" is necessary, but it makes + me feel better to try as hard as we can get to get _something_ working. + */ + const char* defaultDeviceNames[] = { + "default", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL + }; + + if (shareMode == ma_share_mode_exclusive) { + defaultDeviceNames[1] = "hw"; + defaultDeviceNames[2] = "hw:0"; + defaultDeviceNames[3] = "hw:0,0"; + } else { + if (deviceType == ma_device_type_playback) { + defaultDeviceNames[1] = "dmix"; + defaultDeviceNames[2] = "dmix:0"; + defaultDeviceNames[3] = "dmix:0,0"; + } else { + defaultDeviceNames[1] = "dsnoop"; + defaultDeviceNames[2] = "dsnoop:0"; + defaultDeviceNames[3] = "dsnoop:0,0"; + } + defaultDeviceNames[4] = "hw"; + defaultDeviceNames[5] = "hw:0"; + defaultDeviceNames[6] = "hw:0,0"; + } + + isDeviceOpen = MA_FALSE; + for (i = 0; i < ma_countof(defaultDeviceNames); ++i) { + if (defaultDeviceNames[i] != NULL && defaultDeviceNames[i][0] != '\0') { + if (((ma_snd_pcm_open_proc)pContext->alsa.snd_pcm_open)(&pPCM, defaultDeviceNames[i], stream, openMode) == 0) { + isDeviceOpen = MA_TRUE; + break; + } + } + } + + if (!isDeviceOpen) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[ALSA] snd_pcm_open() failed when trying to open an appropriate default device.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + } else { + /* + We're trying to open a specific device. There's a few things to consider here: + + miniaudio recongnizes a special format of device id that excludes the "hw", "dmix", etc. prefix. It looks like this: ":0,0", ":0,1", etc. When + an ID of this format is specified, it indicates to miniaudio that it can try different combinations of plugins ("hw", "dmix", etc.) until it + finds an appropriate one that works. This comes in very handy when trying to open a device in shared mode ("dmix"), vs exclusive mode ("hw"). + */ + + /* May end up needing to make small adjustments to the ID, so make a copy. */ + ma_device_id deviceID = *pDeviceID; + int resultALSA = -ENODEV; + + if (deviceID.alsa[0] != ':') { + /* The ID is not in ":0,0" format. Use the ID exactly as-is. */ + resultALSA = ((ma_snd_pcm_open_proc)pContext->alsa.snd_pcm_open)(&pPCM, deviceID.alsa, stream, openMode); + } else { + char hwid[256]; + + /* The ID is in ":0,0" format. Try different plugins depending on the shared mode. */ + if (deviceID.alsa[1] == '\0') { + deviceID.alsa[0] = '\0'; /* An ID of ":" should be converted to "". */ + } + + if (shareMode == ma_share_mode_shared) { + if (deviceType == ma_device_type_playback) { + ma_strcpy_s(hwid, sizeof(hwid), "dmix"); + } else { + ma_strcpy_s(hwid, sizeof(hwid), "dsnoop"); + } + + if (ma_strcat_s(hwid, sizeof(hwid), deviceID.alsa) == 0) { + resultALSA = ((ma_snd_pcm_open_proc)pContext->alsa.snd_pcm_open)(&pPCM, hwid, stream, openMode); + } + } + + /* If at this point we still don't have an open device it means we're either preferencing exclusive mode or opening with "dmix"/"dsnoop" failed. */ + if (resultALSA != 0) { + ma_strcpy_s(hwid, sizeof(hwid), "hw"); + if (ma_strcat_s(hwid, sizeof(hwid), deviceID.alsa) == 0) { + resultALSA = ((ma_snd_pcm_open_proc)pContext->alsa.snd_pcm_open)(&pPCM, hwid, stream, openMode); + } + } + } + + if (resultALSA < 0) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[ALSA] snd_pcm_open() failed.", ma_result_from_errno(-resultALSA)); + } + } + + *ppPCM = pPCM; + return MA_SUCCESS; +} + + +static ma_result ma_context_enumerate_devices__alsa(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + int resultALSA; + ma_bool32 cbResult = MA_TRUE; + char** ppDeviceHints; + ma_device_id* pUniqueIDs = NULL; + ma_uint32 uniqueIDCount = 0; + char** ppNextDeviceHint; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + ma_mutex_lock(&pContext->alsa.internalDeviceEnumLock); + + resultALSA = ((ma_snd_device_name_hint_proc)pContext->alsa.snd_device_name_hint)(-1, "pcm", (void***)&ppDeviceHints); + if (resultALSA < 0) { + ma_mutex_unlock(&pContext->alsa.internalDeviceEnumLock); + return ma_result_from_errno(-resultALSA); + } + + ppNextDeviceHint = ppDeviceHints; + while (*ppNextDeviceHint != NULL) { + char* NAME = ((ma_snd_device_name_get_hint_proc)pContext->alsa.snd_device_name_get_hint)(*ppNextDeviceHint, "NAME"); + char* DESC = ((ma_snd_device_name_get_hint_proc)pContext->alsa.snd_device_name_get_hint)(*ppNextDeviceHint, "DESC"); + char* IOID = ((ma_snd_device_name_get_hint_proc)pContext->alsa.snd_device_name_get_hint)(*ppNextDeviceHint, "IOID"); + ma_device_type deviceType = ma_device_type_playback; + ma_bool32 stopEnumeration = MA_FALSE; + char hwid[sizeof(pUniqueIDs->alsa)]; + ma_device_info deviceInfo; + + if ((IOID == NULL || ma_strcmp(IOID, "Output") == 0)) { + deviceType = ma_device_type_playback; + } + if ((IOID != NULL && ma_strcmp(IOID, "Input" ) == 0)) { + deviceType = ma_device_type_capture; + } + + if (NAME != NULL) { + if (pContext->alsa.useVerboseDeviceEnumeration) { + /* Verbose mode. Use the name exactly as-is. */ + ma_strncpy_s(hwid, sizeof(hwid), NAME, (size_t)-1); + } else { + /* Simplified mode. Use ":%d,%d" format. */ + if (ma_convert_device_name_to_hw_format__alsa(pContext, hwid, sizeof(hwid), NAME) == 0) { + /* + At this point, hwid looks like "hw:0,0". In simplified enumeration mode, we actually want to strip off the + plugin name so it looks like ":0,0". The reason for this is that this special format is detected at device + initialization time and is used as an indicator to try and use the most appropriate plugin depending on the + device type and sharing mode. + */ + char* dst = hwid; + char* src = hwid+2; + while ((*dst++ = *src++)); + } else { + /* Conversion to "hw:%d,%d" failed. Just use the name as-is. */ + ma_strncpy_s(hwid, sizeof(hwid), NAME, (size_t)-1); + } + + if (ma_does_id_exist_in_list__alsa(pUniqueIDs, uniqueIDCount, hwid)) { + goto next_device; /* The device has already been enumerated. Move on to the next one. */ + } else { + /* The device has not yet been enumerated. Make sure it's added to our list so that it's not enumerated again. */ + size_t oldCapacity = sizeof(*pUniqueIDs) * uniqueIDCount; + size_t newCapacity = sizeof(*pUniqueIDs) * (uniqueIDCount + 1); + ma_device_id* pNewUniqueIDs = (ma_device_id*)ma__realloc_from_callbacks(pUniqueIDs, newCapacity, oldCapacity, &pContext->allocationCallbacks); + if (pNewUniqueIDs == NULL) { + goto next_device; /* Failed to allocate memory. */ + } + + pUniqueIDs = pNewUniqueIDs; + MA_COPY_MEMORY(pUniqueIDs[uniqueIDCount].alsa, hwid, sizeof(hwid)); + uniqueIDCount += 1; + } + } + } else { + MA_ZERO_MEMORY(hwid, sizeof(hwid)); + } + + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.id.alsa, sizeof(deviceInfo.id.alsa), hwid, (size_t)-1); + + /* + There's no good way to determine whether or not a device is the default on Linux. We're just going to do something simple and + just use the name of "default" as the indicator. + */ + if (ma_strcmp(deviceInfo.id.alsa, "default") == 0) { + deviceInfo.isDefault = MA_TRUE; + } + + + /* + DESC is the friendly name. We treat this slightly differently depending on whether or not we are using verbose + device enumeration. In verbose mode we want to take the entire description so that the end-user can distinguish + between the subdevices of each card/dev pair. In simplified mode, however, we only want the first part of the + description. + + The value in DESC seems to be split into two lines, with the first line being the name of the device and the + second line being a description of the device. I don't like having the description be across two lines because + it makes formatting ugly and annoying. I'm therefore deciding to put it all on a single line with the second line + being put into parentheses. In simplified mode I'm just stripping the second line entirely. + */ + if (DESC != NULL) { + int lfPos; + const char* line2 = ma_find_char(DESC, '\n', &lfPos); + if (line2 != NULL) { + line2 += 1; /* Skip past the new-line character. */ + + if (pContext->alsa.useVerboseDeviceEnumeration) { + /* Verbose mode. Put the second line in brackets. */ + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), DESC, lfPos); + ma_strcat_s (deviceInfo.name, sizeof(deviceInfo.name), " ("); + ma_strcat_s (deviceInfo.name, sizeof(deviceInfo.name), line2); + ma_strcat_s (deviceInfo.name, sizeof(deviceInfo.name), ")"); + } else { + /* Simplified mode. Strip the second line entirely. */ + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), DESC, lfPos); + } + } else { + /* There's no second line. Just copy the whole description. */ + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), DESC, (size_t)-1); + } + } + + if (!ma_is_device_blacklisted__alsa(deviceType, NAME)) { + cbResult = callback(pContext, deviceType, &deviceInfo, pUserData); + } + + /* + Some devices are both playback and capture, but they are only enumerated by ALSA once. We need to fire the callback + again for the other device type in this case. We do this for known devices. + */ + if (cbResult) { + if (ma_is_common_device_name__alsa(NAME)) { + if (deviceType == ma_device_type_playback) { + if (!ma_is_capture_device_blacklisted__alsa(NAME)) { + cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + } else { + if (!ma_is_playback_device_blacklisted__alsa(NAME)) { + cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + } + } + } + + if (cbResult == MA_FALSE) { + stopEnumeration = MA_TRUE; + } + + next_device: + free(NAME); + free(DESC); + free(IOID); + ppNextDeviceHint += 1; + + /* We need to stop enumeration if the callback returned false. */ + if (stopEnumeration) { + break; + } + } + + ma__free_from_callbacks(pUniqueIDs, &pContext->allocationCallbacks); + ((ma_snd_device_name_free_hint_proc)pContext->alsa.snd_device_name_free_hint)((void**)ppDeviceHints); + + ma_mutex_unlock(&pContext->alsa.internalDeviceEnumLock); + + return MA_SUCCESS; +} + + +typedef struct +{ + ma_device_type deviceType; + const ma_device_id* pDeviceID; + ma_share_mode shareMode; + ma_device_info* pDeviceInfo; + ma_bool32 foundDevice; +} ma_context_get_device_info_enum_callback_data__alsa; + +static ma_bool32 ma_context_get_device_info_enum_callback__alsa(ma_context* pContext, ma_device_type deviceType, const ma_device_info* pDeviceInfo, void* pUserData) +{ + ma_context_get_device_info_enum_callback_data__alsa* pData = (ma_context_get_device_info_enum_callback_data__alsa*)pUserData; + MA_ASSERT(pData != NULL); + + (void)pContext; + + if (pData->pDeviceID == NULL && ma_strcmp(pDeviceInfo->id.alsa, "default") == 0) { + ma_strncpy_s(pData->pDeviceInfo->name, sizeof(pData->pDeviceInfo->name), pDeviceInfo->name, (size_t)-1); + pData->foundDevice = MA_TRUE; + } else { + if (pData->deviceType == deviceType && (pData->pDeviceID != NULL && ma_strcmp(pData->pDeviceID->alsa, pDeviceInfo->id.alsa) == 0)) { + ma_strncpy_s(pData->pDeviceInfo->name, sizeof(pData->pDeviceInfo->name), pDeviceInfo->name, (size_t)-1); + pData->foundDevice = MA_TRUE; + } + } + + /* Keep enumerating until we have found the device. */ + return !pData->foundDevice; +} + +static void ma_context_test_rate_and_add_native_data_format__alsa(ma_context* pContext, ma_snd_pcm_t* pPCM, ma_snd_pcm_hw_params_t* pHWParams, ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_uint32 flags, ma_device_info* pDeviceInfo) +{ + MA_ASSERT(pPCM != NULL); + MA_ASSERT(pHWParams != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + if (pDeviceInfo->nativeDataFormatCount < ma_countof(pDeviceInfo->nativeDataFormats) && ((ma_snd_pcm_hw_params_test_rate_proc)pContext->alsa.snd_pcm_hw_params_test_rate)(pPCM, pHWParams, sampleRate, 0) == 0) { + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].format = format; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].channels = channels; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].sampleRate = sampleRate; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].flags = flags; + pDeviceInfo->nativeDataFormatCount += 1; + } +} + +static void ma_context_iterate_rates_and_add_native_data_format__alsa(ma_context* pContext, ma_snd_pcm_t* pPCM, ma_snd_pcm_hw_params_t* pHWParams, ma_format format, ma_uint32 channels, ma_uint32 flags, ma_device_info* pDeviceInfo) +{ + ma_uint32 iSampleRate; + unsigned int minSampleRate; + unsigned int maxSampleRate; + int sampleRateDir; /* Not used. Just passed into snd_pcm_hw_params_get_rate_min/max(). */ + + /* There could be a range. */ + ((ma_snd_pcm_hw_params_get_rate_min_proc)pContext->alsa.snd_pcm_hw_params_get_rate_min)(pHWParams, &minSampleRate, &sampleRateDir); + ((ma_snd_pcm_hw_params_get_rate_max_proc)pContext->alsa.snd_pcm_hw_params_get_rate_max)(pHWParams, &maxSampleRate, &sampleRateDir); + + /* Make sure our sample rates are clamped to sane values. Stupid devices like "pulse" will reports rates like "1" which is ridiculus. */ + minSampleRate = ma_clamp(minSampleRate, (unsigned int)ma_standard_sample_rate_min, (unsigned int)ma_standard_sample_rate_max); + maxSampleRate = ma_clamp(maxSampleRate, (unsigned int)ma_standard_sample_rate_min, (unsigned int)ma_standard_sample_rate_max); + + for (iSampleRate = 0; iSampleRate < ma_countof(g_maStandardSampleRatePriorities); iSampleRate += 1) { + ma_uint32 standardSampleRate = g_maStandardSampleRatePriorities[iSampleRate]; + + if (standardSampleRate >= minSampleRate && standardSampleRate <= maxSampleRate) { + ma_context_test_rate_and_add_native_data_format__alsa(pContext, pPCM, pHWParams, format, channels, standardSampleRate, flags, pDeviceInfo); + } + } + + /* Now make sure our min and max rates are included just in case they aren't in the range of our standard rates. */ + if (!ma_is_standard_sample_rate(minSampleRate)) { + ma_context_test_rate_and_add_native_data_format__alsa(pContext, pPCM, pHWParams, format, channels, minSampleRate, flags, pDeviceInfo); + } + + if (!ma_is_standard_sample_rate(maxSampleRate) && maxSampleRate != minSampleRate) { + ma_context_test_rate_and_add_native_data_format__alsa(pContext, pPCM, pHWParams, format, channels, maxSampleRate, flags, pDeviceInfo); + } +} + +static ma_result ma_context_get_device_info__alsa(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + ma_context_get_device_info_enum_callback_data__alsa data; + ma_result result; + int resultALSA; + ma_snd_pcm_t* pPCM; + ma_snd_pcm_hw_params_t* pHWParams; + ma_uint32 iFormat; + ma_uint32 iChannel; + + MA_ASSERT(pContext != NULL); + + /* We just enumerate to find basic information about the device. */ + data.deviceType = deviceType; + data.pDeviceID = pDeviceID; + data.pDeviceInfo = pDeviceInfo; + data.foundDevice = MA_FALSE; + result = ma_context_enumerate_devices__alsa(pContext, ma_context_get_device_info_enum_callback__alsa, &data); + if (result != MA_SUCCESS) { + return result; + } + + if (!data.foundDevice) { + return MA_NO_DEVICE; + } + + if (ma_strcmp(pDeviceInfo->id.alsa, "default") == 0) { + pDeviceInfo->isDefault = MA_TRUE; + } + + /* For detailed info we need to open the device. */ + result = ma_context_open_pcm__alsa(pContext, ma_share_mode_shared, deviceType, pDeviceID, 0, &pPCM); + if (result != MA_SUCCESS) { + return result; + } + + /* We need to initialize a HW parameters object in order to know what formats are supported. */ + pHWParams = (ma_snd_pcm_hw_params_t*)ma__calloc_from_callbacks(((ma_snd_pcm_hw_params_sizeof_proc)pContext->alsa.snd_pcm_hw_params_sizeof)(), &pContext->allocationCallbacks); + if (pHWParams == NULL) { + ((ma_snd_pcm_close_proc)pContext->alsa.snd_pcm_close)(pPCM); + return MA_OUT_OF_MEMORY; + } + + resultALSA = ((ma_snd_pcm_hw_params_any_proc)pContext->alsa.snd_pcm_hw_params_any)(pPCM, pHWParams); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pContext->alsa.snd_pcm_close)(pPCM); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to initialize hardware parameters. snd_pcm_hw_params_any() failed.", ma_result_from_errno(-resultALSA)); + } + + /* + Some ALSA devices can support many permutations of formats, channels and rates. We only support + a fixed number of permutations which means we need to employ some strategies to ensure the best + combinations are returned. An example is the "pulse" device which can do it's own data conversion + in software and as a result can support any combination of format, channels and rate. + + We want to ensure the the first data formats are the best. We have a list of favored sample + formats and sample rates, so these will be the basis of our iteration. + */ + + /* Formats. We just iterate over our standard formats and test them, making sure we reset the configuration space each iteration. */ + for (iFormat = 0; iFormat < ma_countof(g_maFormatPriorities); iFormat += 1) { + ma_format format = g_maFormatPriorities[iFormat]; + + /* + For each format we need to make sure we reset the configuration space so we don't return + channel counts and rates that aren't compatible with a format. + */ + ((ma_snd_pcm_hw_params_any_proc)pContext->alsa.snd_pcm_hw_params_any)(pPCM, pHWParams); + + /* Test the format first. If this fails it means the format is not supported and we can skip it. */ + if (((ma_snd_pcm_hw_params_test_format_proc)pContext->alsa.snd_pcm_hw_params_test_format)(pPCM, pHWParams, ma_convert_ma_format_to_alsa_format(format)) == 0) { + /* The format is supported. */ + unsigned int minChannels; + unsigned int maxChannels; + + /* + The configuration space needs to be restricted to this format so we can get an accurate + picture of which sample rates and channel counts are support with this format. + */ + ((ma_snd_pcm_hw_params_set_format_proc)pContext->alsa.snd_pcm_hw_params_set_format)(pPCM, pHWParams, ma_convert_ma_format_to_alsa_format(format)); + + /* Now we need to check for supported channels. */ + ((ma_snd_pcm_hw_params_get_channels_min_proc)pContext->alsa.snd_pcm_hw_params_get_channels_min)(pHWParams, &minChannels); + ((ma_snd_pcm_hw_params_get_channels_max_proc)pContext->alsa.snd_pcm_hw_params_get_channels_max)(pHWParams, &maxChannels); + + if (minChannels > MA_MAX_CHANNELS) { + continue; /* Too many channels. */ + } + if (maxChannels < MA_MIN_CHANNELS) { + continue; /* Not enough channels. */ + } + + /* + Make sure the channel count is clamped. This is mainly intended for the max channels + because some devices can report an unbound maximum. + */ + minChannels = ma_clamp(minChannels, MA_MIN_CHANNELS, MA_MAX_CHANNELS); + maxChannels = ma_clamp(maxChannels, MA_MIN_CHANNELS, MA_MAX_CHANNELS); + + if (minChannels == MA_MIN_CHANNELS && maxChannels == MA_MAX_CHANNELS) { + /* The device supports all channels. Don't iterate over every single one. Instead just set the channels to 0 which means all channels are supported. */ + ma_context_iterate_rates_and_add_native_data_format__alsa(pContext, pPCM, pHWParams, format, 0, 0, pDeviceInfo); /* Intentionally setting the channel count to 0 as that means all channels are supported. */ + } else { + /* The device only supports a specific set of channels. We need to iterate over all of them. */ + for (iChannel = minChannels; iChannel <= maxChannels; iChannel += 1) { + /* Test the channel before applying it to the configuration space. */ + unsigned int channels = iChannel; + + /* Make sure our channel range is reset before testing again or else we'll always fail the test. */ + ((ma_snd_pcm_hw_params_any_proc)pContext->alsa.snd_pcm_hw_params_any)(pPCM, pHWParams); + ((ma_snd_pcm_hw_params_set_format_proc)pContext->alsa.snd_pcm_hw_params_set_format)(pPCM, pHWParams, ma_convert_ma_format_to_alsa_format(format)); + + if (((ma_snd_pcm_hw_params_test_channels_proc)pContext->alsa.snd_pcm_hw_params_test_channels)(pPCM, pHWParams, channels) == 0) { + /* The channel count is supported. */ + + /* The configuration space now needs to be restricted to the channel count before extracting the sample rate. */ + ((ma_snd_pcm_hw_params_set_channels_proc)pContext->alsa.snd_pcm_hw_params_set_channels)(pPCM, pHWParams, channels); + + /* Only after the configuration space has been restricted to the specific channel count should we iterate over our sample rates. */ + ma_context_iterate_rates_and_add_native_data_format__alsa(pContext, pPCM, pHWParams, format, channels, 0, pDeviceInfo); + } else { + /* The channel count is not supported. Skip. */ + } + } + } + } else { + /* The format is not supported. Skip. */ + } + } + + ma__free_from_callbacks(pHWParams, &pContext->allocationCallbacks); + + ((ma_snd_pcm_close_proc)pContext->alsa.snd_pcm_close)(pPCM); + return MA_SUCCESS; +} + +static ma_result ma_device_uninit__alsa(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if ((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture) { + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture); + close(pDevice->alsa.wakeupfdCapture); + ma_free(pDevice->alsa.pPollDescriptorsCapture, &pDevice->pContext->allocationCallbacks); + } + + if ((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback) { + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback); + close(pDevice->alsa.wakeupfdPlayback); + ma_free(pDevice->alsa.pPollDescriptorsPlayback, &pDevice->pContext->allocationCallbacks); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_init_by_type__alsa(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptor, ma_device_type deviceType) +{ + ma_result result; + int resultALSA; + ma_snd_pcm_t* pPCM; + ma_bool32 isUsingMMap; + ma_snd_pcm_format_t formatALSA; + ma_format internalFormat; + ma_uint32 internalChannels; + ma_uint32 internalSampleRate; + ma_channel internalChannelMap[MA_MAX_CHANNELS]; + ma_uint32 internalPeriodSizeInFrames; + ma_uint32 internalPeriods; + int openMode; + ma_snd_pcm_hw_params_t* pHWParams; + ma_snd_pcm_sw_params_t* pSWParams; + ma_snd_pcm_uframes_t bufferBoundary; + int pollDescriptorCount; + struct pollfd* pPollDescriptors; + int wakeupfd; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(deviceType != ma_device_type_duplex); /* This function should only be called for playback _or_ capture, never duplex. */ + MA_ASSERT(pDevice != NULL); + + formatALSA = ma_convert_ma_format_to_alsa_format(pDescriptor->format); + + openMode = 0; + if (pConfig->alsa.noAutoResample) { + openMode |= MA_SND_PCM_NO_AUTO_RESAMPLE; + } + if (pConfig->alsa.noAutoChannels) { + openMode |= MA_SND_PCM_NO_AUTO_CHANNELS; + } + if (pConfig->alsa.noAutoFormat) { + openMode |= MA_SND_PCM_NO_AUTO_FORMAT; + } + + result = ma_context_open_pcm__alsa(pDevice->pContext, pDescriptor->shareMode, deviceType, pDescriptor->pDeviceID, openMode, &pPCM); + if (result != MA_SUCCESS) { + return result; + } + + + /* Hardware parameters. */ + pHWParams = (ma_snd_pcm_hw_params_t*)ma__calloc_from_callbacks(((ma_snd_pcm_hw_params_sizeof_proc)pDevice->pContext->alsa.snd_pcm_hw_params_sizeof)(), &pDevice->pContext->allocationCallbacks); + if (pHWParams == NULL) { + return MA_OUT_OF_MEMORY; + } + + resultALSA = ((ma_snd_pcm_hw_params_any_proc)pDevice->pContext->alsa.snd_pcm_hw_params_any)(pPCM, pHWParams); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to initialize hardware parameters. snd_pcm_hw_params_any() failed.", ma_result_from_errno(-resultALSA)); + } + + /* MMAP Mode. Try using interleaved MMAP access. If this fails, fall back to standard readi/writei. */ + isUsingMMap = MA_FALSE; +#if 0 /* NOTE: MMAP mode temporarily disabled. */ + if (deviceType != ma_device_type_capture) { /* <-- Disabling MMAP mode for capture devices because I apparently do not have a device that supports it which means I can't test it... Contributions welcome. */ + if (!pConfig->alsa.noMMap && ma_device__is_async(pDevice)) { + if (((ma_snd_pcm_hw_params_set_access_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_access)(pPCM, pHWParams, MA_SND_PCM_ACCESS_MMAP_INTERLEAVED) == 0) { + pDevice->alsa.isUsingMMap = MA_TRUE; + } + } + } +#endif + + if (!isUsingMMap) { + resultALSA = ((ma_snd_pcm_hw_params_set_access_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_access)(pPCM, pHWParams, MA_SND_PCM_ACCESS_RW_INTERLEAVED); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set access mode to neither SND_PCM_ACCESS_MMAP_INTERLEAVED nor SND_PCM_ACCESS_RW_INTERLEAVED. snd_pcm_hw_params_set_access() failed.", ma_result_from_errno(-resultALSA)); + } + } + + /* + Most important properties first. The documentation for OSS (yes, I know this is ALSA!) recommends format, channels, then sample rate. I can't + find any documentation for ALSA specifically, so I'm going to copy the recommendation for OSS. + */ + + /* Format. */ + { + /* + At this point we should have a list of supported formats, so now we need to find the best one. We first check if the requested format is + supported, and if so, use that one. If it's not supported, we just run though a list of formats and try to find the best one. + */ + if (formatALSA == MA_SND_PCM_FORMAT_UNKNOWN || ((ma_snd_pcm_hw_params_test_format_proc)pDevice->pContext->alsa.snd_pcm_hw_params_test_format)(pPCM, pHWParams, formatALSA) != 0) { + /* We're either requesting the native format or the specified format is not supported. */ + size_t iFormat; + + formatALSA = MA_SND_PCM_FORMAT_UNKNOWN; + for (iFormat = 0; iFormat < ma_countof(g_maFormatPriorities); ++iFormat) { + if (((ma_snd_pcm_hw_params_test_format_proc)pDevice->pContext->alsa.snd_pcm_hw_params_test_format)(pPCM, pHWParams, ma_convert_ma_format_to_alsa_format(g_maFormatPriorities[iFormat])) == 0) { + formatALSA = ma_convert_ma_format_to_alsa_format(g_maFormatPriorities[iFormat]); + break; + } + } + + if (formatALSA == MA_SND_PCM_FORMAT_UNKNOWN) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Format not supported. The device does not support any miniaudio formats.", MA_FORMAT_NOT_SUPPORTED); + } + } + + resultALSA = ((ma_snd_pcm_hw_params_set_format_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_format)(pPCM, pHWParams, formatALSA); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Format not supported. snd_pcm_hw_params_set_format() failed.", ma_result_from_errno(-resultALSA)); + } + + internalFormat = ma_format_from_alsa(formatALSA); + if (internalFormat == ma_format_unknown) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] The chosen format is not supported by miniaudio.", MA_FORMAT_NOT_SUPPORTED); + } + } + + /* Channels. */ + { + unsigned int channels = pDescriptor->channels; + if (channels == 0) { + channels = MA_DEFAULT_CHANNELS; + } + + resultALSA = ((ma_snd_pcm_hw_params_set_channels_near_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_channels_near)(pPCM, pHWParams, &channels); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set channel count. snd_pcm_hw_params_set_channels_near() failed.", ma_result_from_errno(-resultALSA)); + } + + internalChannels = (ma_uint32)channels; + } + + /* Sample Rate */ + { + unsigned int sampleRate; + + /* + It appears there's either a bug in ALSA, a bug in some drivers, or I'm doing something silly; but having resampling enabled causes + problems with some device configurations when used in conjunction with MMAP access mode. To fix this problem we need to disable + resampling. + + To reproduce this problem, open the "plug:dmix" device, and set the sample rate to 44100. Internally, it looks like dmix uses a + sample rate of 48000. The hardware parameters will get set correctly with no errors, but it looks like the 44100 -> 48000 resampling + doesn't work properly - but only with MMAP access mode. You will notice skipping/crackling in the audio, and it'll run at a slightly + faster rate. + + miniaudio has built-in support for sample rate conversion (albeit low quality at the moment), so disabling resampling should be fine + for us. The only problem is that it won't be taking advantage of any kind of hardware-accelerated resampling and it won't be very + good quality until I get a chance to improve the quality of miniaudio's software sample rate conversion. + + I don't currently know if the dmix plugin is the only one with this error. Indeed, this is the only one I've been able to reproduce + this error with. In the future, we may want to restrict the disabling of resampling to only known bad plugins. + */ + ((ma_snd_pcm_hw_params_set_rate_resample_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_rate_resample)(pPCM, pHWParams, 0); + + sampleRate = pDescriptor->sampleRate; + if (sampleRate == 0) { + sampleRate = MA_DEFAULT_SAMPLE_RATE; + } + + resultALSA = ((ma_snd_pcm_hw_params_set_rate_near_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_rate_near)(pPCM, pHWParams, &sampleRate, 0); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Sample rate not supported. snd_pcm_hw_params_set_rate_near() failed.", ma_result_from_errno(-resultALSA)); + } + + internalSampleRate = (ma_uint32)sampleRate; + } + + /* Periods. */ + { + ma_uint32 periods = pDescriptor->periodCount; + + resultALSA = ((ma_snd_pcm_hw_params_set_periods_near_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_periods_near)(pPCM, pHWParams, &periods, NULL); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set period count. snd_pcm_hw_params_set_periods_near() failed.", ma_result_from_errno(-resultALSA)); + } + + internalPeriods = periods; + } + + /* Buffer Size */ + { + ma_snd_pcm_uframes_t actualBufferSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, internalSampleRate, pConfig->performanceProfile) * internalPeriods; + + resultALSA = ((ma_snd_pcm_hw_params_set_buffer_size_near_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_buffer_size_near)(pPCM, pHWParams, &actualBufferSizeInFrames); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set buffer size for device. snd_pcm_hw_params_set_buffer_size() failed.", ma_result_from_errno(-resultALSA)); + } + + internalPeriodSizeInFrames = actualBufferSizeInFrames / internalPeriods; + } + + /* Apply hardware parameters. */ + resultALSA = ((ma_snd_pcm_hw_params_proc)pDevice->pContext->alsa.snd_pcm_hw_params)(pPCM, pHWParams); + if (resultALSA < 0) { + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set hardware parameters. snd_pcm_hw_params() failed.", ma_result_from_errno(-resultALSA)); + } + + ma__free_from_callbacks(pHWParams, &pDevice->pContext->allocationCallbacks); + pHWParams = NULL; + + + /* Software parameters. */ + pSWParams = (ma_snd_pcm_sw_params_t*)ma__calloc_from_callbacks(((ma_snd_pcm_sw_params_sizeof_proc)pDevice->pContext->alsa.snd_pcm_sw_params_sizeof)(), &pDevice->pContext->allocationCallbacks); + if (pSWParams == NULL) { + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return MA_OUT_OF_MEMORY; + } + + resultALSA = ((ma_snd_pcm_sw_params_current_proc)pDevice->pContext->alsa.snd_pcm_sw_params_current)(pPCM, pSWParams); + if (resultALSA < 0) { + ma__free_from_callbacks(pSWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to initialize software parameters. snd_pcm_sw_params_current() failed.", ma_result_from_errno(-resultALSA)); + } + + resultALSA = ((ma_snd_pcm_sw_params_set_avail_min_proc)pDevice->pContext->alsa.snd_pcm_sw_params_set_avail_min)(pPCM, pSWParams, ma_prev_power_of_2(internalPeriodSizeInFrames)); + if (resultALSA < 0) { + ma__free_from_callbacks(pSWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] snd_pcm_sw_params_set_avail_min() failed.", ma_result_from_errno(-resultALSA)); + } + + resultALSA = ((ma_snd_pcm_sw_params_get_boundary_proc)pDevice->pContext->alsa.snd_pcm_sw_params_get_boundary)(pSWParams, &bufferBoundary); + if (resultALSA < 0) { + bufferBoundary = internalPeriodSizeInFrames * internalPeriods; + } + + /*printf("TRACE: bufferBoundary=%ld\n", bufferBoundary);*/ + + if (deviceType == ma_device_type_playback && !isUsingMMap) { /* Only playback devices in writei/readi mode need a start threshold. */ + /* + Subtle detail here with the start threshold. When in playback-only mode (no full-duplex) we can set the start threshold to + the size of a period. But for full-duplex we need to set it such that it is at least two periods. + */ + resultALSA = ((ma_snd_pcm_sw_params_set_start_threshold_proc)pDevice->pContext->alsa.snd_pcm_sw_params_set_start_threshold)(pPCM, pSWParams, internalPeriodSizeInFrames*2); + if (resultALSA < 0) { + ma__free_from_callbacks(pSWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set start threshold for playback device. snd_pcm_sw_params_set_start_threshold() failed.", ma_result_from_errno(-resultALSA)); + } + + resultALSA = ((ma_snd_pcm_sw_params_set_stop_threshold_proc)pDevice->pContext->alsa.snd_pcm_sw_params_set_stop_threshold)(pPCM, pSWParams, bufferBoundary); + if (resultALSA < 0) { /* Set to boundary to loop instead of stop in the event of an xrun. */ + ma__free_from_callbacks(pSWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set stop threshold for playback device. snd_pcm_sw_params_set_stop_threshold() failed.", ma_result_from_errno(-resultALSA)); + } + } + + resultALSA = ((ma_snd_pcm_sw_params_proc)pDevice->pContext->alsa.snd_pcm_sw_params)(pPCM, pSWParams); + if (resultALSA < 0) { + ma__free_from_callbacks(pSWParams, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to set software parameters. snd_pcm_sw_params() failed.", ma_result_from_errno(-resultALSA)); + } + + ma__free_from_callbacks(pSWParams, &pDevice->pContext->allocationCallbacks); + pSWParams = NULL; + + + /* Grab the internal channel map. For now we're not going to bother trying to change the channel map and instead just do it ourselves. */ + { + ma_snd_pcm_chmap_t* pChmap = ((ma_snd_pcm_get_chmap_proc)pDevice->pContext->alsa.snd_pcm_get_chmap)(pPCM); + if (pChmap != NULL) { + ma_uint32 iChannel; + + /* There are cases where the returned channel map can have a different channel count than was returned by snd_pcm_hw_params_set_channels_near(). */ + if (pChmap->channels >= internalChannels) { + /* Drop excess channels. */ + for (iChannel = 0; iChannel < internalChannels; ++iChannel) { + internalChannelMap[iChannel] = ma_convert_alsa_channel_position_to_ma_channel(pChmap->pos[iChannel]); + } + } else { + ma_uint32 i; + + /* + Excess channels use defaults. Do an initial fill with defaults, overwrite the first pChmap->channels, validate to ensure there are no duplicate + channels. If validation fails, fall back to defaults. + */ + ma_bool32 isValid = MA_TRUE; + + /* Fill with defaults. */ + ma_get_standard_channel_map(ma_standard_channel_map_alsa, internalChannels, internalChannelMap); + + /* Overwrite first pChmap->channels channels. */ + for (iChannel = 0; iChannel < pChmap->channels; ++iChannel) { + internalChannelMap[iChannel] = ma_convert_alsa_channel_position_to_ma_channel(pChmap->pos[iChannel]); + } + + /* Validate. */ + for (i = 0; i < internalChannels && isValid; ++i) { + ma_uint32 j; + for (j = i+1; j < internalChannels; ++j) { + if (internalChannelMap[i] == internalChannelMap[j]) { + isValid = MA_FALSE; + break; + } + } + } + + /* If our channel map is invalid, fall back to defaults. */ + if (!isValid) { + ma_get_standard_channel_map(ma_standard_channel_map_alsa, internalChannels, internalChannelMap); + } + } + + free(pChmap); + pChmap = NULL; + } else { + /* Could not retrieve the channel map. Fall back to a hard-coded assumption. */ + ma_get_standard_channel_map(ma_standard_channel_map_alsa, internalChannels, internalChannelMap); + } + } + + + /* + We need to retrieve the poll descriptors so we can use poll() to wait for data to become + available for reading or writing. There's no well defined maximum for this so we're just going + to allocate this on the heap. + */ + pollDescriptorCount = ((ma_snd_pcm_poll_descriptors_count_proc)pDevice->pContext->alsa.snd_pcm_poll_descriptors_count)(pPCM); + if (pollDescriptorCount <= 0) { + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to retrieve poll descriptors count.", MA_ERROR); + } + + pPollDescriptors = (struct pollfd*)ma_malloc(sizeof(*pPollDescriptors) * (pollDescriptorCount + 1), &pDevice->pContext->allocationCallbacks/*, MA_ALLOCATION_TYPE_GENERAL*/); /* +1 because we want room for the wakeup descriptor. */ + if (pPollDescriptors == NULL) { + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to allocate memory for poll descriptors.", MA_OUT_OF_MEMORY); + } + + /* + We need an eventfd to wakeup from poll() and avoid a deadlock in situations where the driver + never returns from writei() and readi(). This has been observed with the "pulse" device. + */ + wakeupfd = eventfd(0, 0); + if (wakeupfd < 0) { + ma_free(pPollDescriptors, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to create eventfd for poll wakeup.", ma_result_from_errno(errno)); + } + + /* We'll place the wakeup fd at the start of the buffer. */ + pPollDescriptors[0].fd = wakeupfd; + pPollDescriptors[0].events = POLLIN; /* We only care about waiting to read from the wakeup file descriptor. */ + pPollDescriptors[0].revents = 0; + + /* We can now extract the PCM poll descriptors which we place after the wakeup descriptor. */ + pollDescriptorCount = ((ma_snd_pcm_poll_descriptors_proc)pDevice->pContext->alsa.snd_pcm_poll_descriptors)(pPCM, pPollDescriptors + 1, pollDescriptorCount); /* +1 because we want to place these descriptors after the wakeup descriptor. */ + if (pollDescriptorCount <= 0) { + close(wakeupfd); + ma_free(pPollDescriptors, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to retrieve poll descriptors.", MA_ERROR); + } + + if (deviceType == ma_device_type_capture) { + pDevice->alsa.pollDescriptorCountCapture = pollDescriptorCount; + pDevice->alsa.pPollDescriptorsCapture = pPollDescriptors; + pDevice->alsa.wakeupfdCapture = wakeupfd; + } else { + pDevice->alsa.pollDescriptorCountPlayback = pollDescriptorCount; + pDevice->alsa.pPollDescriptorsPlayback = pPollDescriptors; + pDevice->alsa.wakeupfdPlayback = wakeupfd; + } + + + /* We're done. Prepare the device. */ + resultALSA = ((ma_snd_pcm_prepare_proc)pDevice->pContext->alsa.snd_pcm_prepare)(pPCM); + if (resultALSA < 0) { + close(wakeupfd); + ma_free(pPollDescriptors, &pDevice->pContext->allocationCallbacks); + ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to prepare device.", ma_result_from_errno(-resultALSA)); + } + + + if (deviceType == ma_device_type_capture) { + pDevice->alsa.pPCMCapture = (ma_ptr)pPCM; + pDevice->alsa.isUsingMMapCapture = isUsingMMap; + } else { + pDevice->alsa.pPCMPlayback = (ma_ptr)pPCM; + pDevice->alsa.isUsingMMapPlayback = isUsingMMap; + } + + pDescriptor->format = internalFormat; + pDescriptor->channels = internalChannels; + pDescriptor->sampleRate = internalSampleRate; + ma_channel_map_copy(pDescriptor->channelMap, internalChannelMap, ma_min(internalChannels, MA_MAX_CHANNELS)); + pDescriptor->periodSizeInFrames = internalPeriodSizeInFrames; + pDescriptor->periodCount = internalPeriods; + + /*printf("format=%d; channels=%d; sampleRate=%d; periodSizeInFrames=%d; periodCount=%d\n", internalFormat, internalChannels, internalSampleRate, internalPeriodSizeInFrames, internalPeriods);*/ + + return MA_SUCCESS; +} + +static ma_result ma_device_init__alsa(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + MA_ASSERT(pDevice != NULL); + + MA_ZERO_OBJECT(&pDevice->alsa); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_by_type__alsa(pDevice, pConfig, pDescriptorCapture, ma_device_type_capture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_by_type__alsa(pDevice, pConfig, pDescriptorPlayback, ma_device_type_playback); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start__alsa(ma_device* pDevice) +{ + int resultALSA; + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + resultALSA = ((ma_snd_pcm_start_proc)pDevice->pContext->alsa.snd_pcm_start)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture); + if (resultALSA < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to start capture device.", ma_result_from_errno(-resultALSA)); + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* Don't need to do anything for playback because it'll be started automatically when enough data has been written. */ + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__alsa(ma_device* pDevice) +{ + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + #ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Dropping capture device... "); + #endif + ((ma_snd_pcm_drop_proc)pDevice->pContext->alsa.snd_pcm_drop)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture); + #ifdef MA_DEBUG_OUTPUT + printf("Done\n"); + #endif + + /* We need to prepare the device again, otherwise we won't be able to restart the device. */ + #ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Preparing capture device... "); + #endif + if (((ma_snd_pcm_prepare_proc)pDevice->pContext->alsa.snd_pcm_prepare)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture) < 0) { + #ifdef MA_DEBUG_OUTPUT + printf("Failed\n"); + #endif + } else { + #ifdef MA_DEBUG_OUTPUT + printf("Done\n"); + #endif + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + #ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Dropping playback device... "); + #endif + ((ma_snd_pcm_drop_proc)pDevice->pContext->alsa.snd_pcm_drop)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback); + #ifdef MA_DEBUG_OUTPUT + printf("Done\n"); + #endif + + /* We need to prepare the device again, otherwise we won't be able to restart the device. */ + #ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Preparing playback device... "); + #endif + if (((ma_snd_pcm_prepare_proc)pDevice->pContext->alsa.snd_pcm_prepare)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback) < 0) { + #ifdef MA_DEBUG_OUTPUT + printf("Failed\n"); + #endif + } else { + #ifdef MA_DEBUG_OUTPUT + printf("Done\n"); + #endif + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_wait__alsa(ma_device* pDevice, ma_snd_pcm_t* pPCM, struct pollfd* pPollDescriptors, int pollDescriptorCount, short requiredEvent) +{ + for (;;) { + unsigned short revents; + int resultALSA; + int resultPoll = poll(pPollDescriptors, pollDescriptorCount, -1); + if (resultPoll < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] poll() failed.", ma_result_from_errno(errno)); + } + + /* + Before checking the ALSA poll descriptor flag we need to check if the wakeup descriptor + has had it's POLLIN flag set. If so, we need to actually read the data and then exit + function. The wakeup descriptor will be the first item in the descriptors buffer. + */ + if ((pPollDescriptors[0].revents & POLLIN) != 0) { + ma_uint64 t; + read(pPollDescriptors[0].fd, &t, sizeof(t)); /* <-- Important that we read here so that the next write() does not block. */ + + #ifdef MA_DEBUG_OUTPUT + printf("[ALSA] POLLIN set for wakeupfd\n"); + #endif + + return MA_DEVICE_NOT_STARTED; + } + + /* + Getting here means that some data should be able to be read. We need to use ALSA to + translate the revents flags for us. + */ + resultALSA = ((ma_snd_pcm_poll_descriptors_revents_proc)pDevice->pContext->alsa.snd_pcm_poll_descriptors_revents)(pPCM, pPollDescriptors + 1, pollDescriptorCount - 1, &revents); /* +1, -1 to ignore the wakeup descriptor. */ + if (resultALSA < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] snd_pcm_poll_descriptors_revents() failed.", ma_result_from_errno(-resultALSA)); + } + + if ((revents & POLLERR) != 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] POLLERR detected.", ma_result_from_errno(errno)); + } + + if ((revents & requiredEvent) == requiredEvent) { + break; /* We're done. Data available for reading or writing. */ + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_wait_read__alsa(ma_device* pDevice) +{ + return ma_device_wait__alsa(pDevice, (ma_snd_pcm_t*)pDevice->alsa.pPCMCapture, (struct pollfd*)pDevice->alsa.pPollDescriptorsCapture, pDevice->alsa.pollDescriptorCountCapture + 1, POLLIN); /* +1 to account for the wakeup descriptor. */ +} + +static ma_result ma_device_wait_write__alsa(ma_device* pDevice) +{ + return ma_device_wait__alsa(pDevice, (ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback, (struct pollfd*)pDevice->alsa.pPollDescriptorsPlayback, pDevice->alsa.pollDescriptorCountPlayback + 1, POLLOUT); /* +1 to account for the wakeup descriptor. */ +} + +static ma_result ma_device_read__alsa(ma_device* pDevice, void* pFramesOut, ma_uint32 frameCount, ma_uint32* pFramesRead) +{ + ma_snd_pcm_sframes_t resultALSA; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pFramesOut != NULL); + + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + while (ma_device_get_state(pDevice) == MA_STATE_STARTED) { + ma_result result; + + /* The first thing to do is wait for data to become available for reading. This will return an error code if the device has been stopped. */ + result = ma_device_wait_read__alsa(pDevice); + if (result != MA_SUCCESS) { + return result; + } + + /* Getting here means we should have data available. */ + resultALSA = ((ma_snd_pcm_readi_proc)pDevice->pContext->alsa.snd_pcm_readi)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture, pFramesOut, frameCount); + if (resultALSA >= 0) { + break; /* Success. */ + } else { + if (resultALSA == -EAGAIN) { + /*printf("TRACE: EGAIN (read)\n");*/ + continue; /* Try again. */ + } else if (resultALSA == -EPIPE) { + #if defined(MA_DEBUG_OUTPUT) + printf("TRACE: EPIPE (read)\n"); + #endif + + /* Overrun. Recover and try again. If this fails we need to return an error. */ + resultALSA = ((ma_snd_pcm_recover_proc)pDevice->pContext->alsa.snd_pcm_recover)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture, resultALSA, MA_TRUE); + if (resultALSA < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to recover device after overrun.", ma_result_from_errno((int)-resultALSA)); + } + + resultALSA = ((ma_snd_pcm_start_proc)pDevice->pContext->alsa.snd_pcm_start)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture); + if (resultALSA < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to start device after underrun.", ma_result_from_errno((int)-resultALSA)); + } + + continue; /* Try reading again. */ + } + } + } + + if (pFramesRead != NULL) { + *pFramesRead = resultALSA; + } + + return MA_SUCCESS; +} + +static ma_result ma_device_write__alsa(ma_device* pDevice, const void* pFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) +{ + ma_snd_pcm_sframes_t resultALSA; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pFrames != NULL); + + if (pFramesWritten != NULL) { + *pFramesWritten = 0; + } + + while (ma_device_get_state(pDevice) == MA_STATE_STARTED) { + ma_result result; + + /* The first thing to do is wait for space to become available for writing. This will return an error code if the device has been stopped. */ + result = ma_device_wait_write__alsa(pDevice); + if (result != MA_SUCCESS) { + return result; + } + + resultALSA = ((ma_snd_pcm_writei_proc)pDevice->pContext->alsa.snd_pcm_writei)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback, pFrames, frameCount); + if (resultALSA >= 0) { + break; /* Success. */ + } else { + if (resultALSA == -EAGAIN) { + /*printf("TRACE: EGAIN (write)\n");*/ + continue; /* Try again. */ + } else if (resultALSA == -EPIPE) { + #if defined(MA_DEBUG_OUTPUT) + printf("TRACE: EPIPE (write)\n"); + #endif + + /* Underrun. Recover and try again. If this fails we need to return an error. */ + resultALSA = ((ma_snd_pcm_recover_proc)pDevice->pContext->alsa.snd_pcm_recover)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback, resultALSA, MA_TRUE); /* MA_TRUE=silent (don't print anything on error). */ + if (resultALSA < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to recover device after underrun.", ma_result_from_errno((int)-resultALSA)); + } + + /* + In my testing I have had a situation where writei() does not automatically restart the device even though I've set it + up as such in the software parameters. What will happen is writei() will block indefinitely even though the number of + frames is well beyond the auto-start threshold. To work around this I've needed to add an explicit start here. Not sure + if this is me just being stupid and not recovering the device properly, but this definitely feels like something isn't + quite right here. + */ + resultALSA = ((ma_snd_pcm_start_proc)pDevice->pContext->alsa.snd_pcm_start)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback); + if (resultALSA < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to start device after underrun.", ma_result_from_errno((int)-resultALSA)); + } + + continue; /* Try writing again. */ + } + } + } + + if (pFramesWritten != NULL) { + *pFramesWritten = resultALSA; + } + + return MA_SUCCESS; +} + +static ma_result ma_device_data_loop_wakeup__alsa(ma_device* pDevice) +{ + ma_uint64 t = 1; + + MA_ASSERT(pDevice != NULL); + +#ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Waking up... "); +#endif + + /* Write to an eventfd to trigger a wakeup from poll() and abort any reading or writing. */ + if (pDevice->alsa.pPollDescriptorsCapture != NULL) { + write(pDevice->alsa.wakeupfdCapture, &t, sizeof(t)); + } + if (pDevice->alsa.pPollDescriptorsPlayback != NULL) { + write(pDevice->alsa.wakeupfdPlayback, &t, sizeof(t)); + } + +#ifdef MA_DEBUG_OUTPUT + printf("Done\n"); +#endif + + return MA_SUCCESS; +} + +static ma_result ma_context_uninit__alsa(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_alsa); + + /* Clean up memory for memory leak checkers. */ + ((ma_snd_config_update_free_global_proc)pContext->alsa.snd_config_update_free_global)(); + +#ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->alsa.asoundSO); +#endif + + ma_mutex_uninit(&pContext->alsa.internalDeviceEnumLock); + + return MA_SUCCESS; +} + +static ma_result ma_context_init__alsa(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ +#ifndef MA_NO_RUNTIME_LINKING + const char* libasoundNames[] = { + "libasound.so.2", + "libasound.so" + }; + size_t i; + + for (i = 0; i < ma_countof(libasoundNames); ++i) { + pContext->alsa.asoundSO = ma_dlopen(pContext, libasoundNames[i]); + if (pContext->alsa.asoundSO != NULL) { + break; + } + } + + if (pContext->alsa.asoundSO == NULL) { +#ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Failed to open shared object.\n"); +#endif + return MA_NO_BACKEND; + } + + pContext->alsa.snd_pcm_open = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_open"); + pContext->alsa.snd_pcm_close = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_close"); + pContext->alsa.snd_pcm_hw_params_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_sizeof"); + pContext->alsa.snd_pcm_hw_params_any = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_any"); + pContext->alsa.snd_pcm_hw_params_set_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format"); + pContext->alsa.snd_pcm_hw_params_set_format_first = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format_first"); + pContext->alsa.snd_pcm_hw_params_get_format_mask = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format_mask"); + pContext->alsa.snd_pcm_hw_params_set_channels = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels"); + pContext->alsa.snd_pcm_hw_params_set_channels_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_near"); + pContext->alsa.snd_pcm_hw_params_set_channels_minmax = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_minmax"); + pContext->alsa.snd_pcm_hw_params_set_rate_resample = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_resample"); + pContext->alsa.snd_pcm_hw_params_set_rate = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate"); + pContext->alsa.snd_pcm_hw_params_set_rate_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_near"); + pContext->alsa.snd_pcm_hw_params_set_buffer_size_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_buffer_size_near"); + pContext->alsa.snd_pcm_hw_params_set_periods_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_periods_near"); + pContext->alsa.snd_pcm_hw_params_set_access = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_access"); + pContext->alsa.snd_pcm_hw_params_get_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format"); + pContext->alsa.snd_pcm_hw_params_get_channels = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels"); + pContext->alsa.snd_pcm_hw_params_get_channels_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_min"); + pContext->alsa.snd_pcm_hw_params_get_channels_max = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_max"); + pContext->alsa.snd_pcm_hw_params_get_rate = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate"); + pContext->alsa.snd_pcm_hw_params_get_rate_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_min"); + pContext->alsa.snd_pcm_hw_params_get_rate_max = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_max"); + pContext->alsa.snd_pcm_hw_params_get_buffer_size = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_buffer_size"); + pContext->alsa.snd_pcm_hw_params_get_periods = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_periods"); + pContext->alsa.snd_pcm_hw_params_get_access = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_access"); + pContext->alsa.snd_pcm_hw_params_test_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_test_format"); + pContext->alsa.snd_pcm_hw_params_test_channels = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_test_channels"); + pContext->alsa.snd_pcm_hw_params_test_rate = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_test_rate"); + pContext->alsa.snd_pcm_hw_params = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params"); + pContext->alsa.snd_pcm_sw_params_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_sizeof"); + pContext->alsa.snd_pcm_sw_params_current = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_current"); + pContext->alsa.snd_pcm_sw_params_get_boundary = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_get_boundary"); + pContext->alsa.snd_pcm_sw_params_set_avail_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_avail_min"); + pContext->alsa.snd_pcm_sw_params_set_start_threshold = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_start_threshold"); + pContext->alsa.snd_pcm_sw_params_set_stop_threshold = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_stop_threshold"); + pContext->alsa.snd_pcm_sw_params = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params"); + pContext->alsa.snd_pcm_format_mask_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_format_mask_sizeof"); + pContext->alsa.snd_pcm_format_mask_test = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_format_mask_test"); + pContext->alsa.snd_pcm_get_chmap = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_get_chmap"); + pContext->alsa.snd_pcm_state = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_state"); + pContext->alsa.snd_pcm_prepare = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_prepare"); + pContext->alsa.snd_pcm_start = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_start"); + pContext->alsa.snd_pcm_drop = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_drop"); + pContext->alsa.snd_pcm_drain = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_drain"); + pContext->alsa.snd_pcm_reset = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_reset"); + pContext->alsa.snd_device_name_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_hint"); + pContext->alsa.snd_device_name_get_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_get_hint"); + pContext->alsa.snd_card_get_index = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_card_get_index"); + pContext->alsa.snd_device_name_free_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_free_hint"); + pContext->alsa.snd_pcm_mmap_begin = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_mmap_begin"); + pContext->alsa.snd_pcm_mmap_commit = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_mmap_commit"); + pContext->alsa.snd_pcm_recover = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_recover"); + pContext->alsa.snd_pcm_readi = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_readi"); + pContext->alsa.snd_pcm_writei = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_writei"); + pContext->alsa.snd_pcm_avail = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_avail"); + pContext->alsa.snd_pcm_avail_update = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_avail_update"); + pContext->alsa.snd_pcm_wait = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_wait"); + pContext->alsa.snd_pcm_nonblock = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_nonblock"); + pContext->alsa.snd_pcm_info = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info"); + pContext->alsa.snd_pcm_info_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info_sizeof"); + pContext->alsa.snd_pcm_info_get_name = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info_get_name"); + pContext->alsa.snd_pcm_poll_descriptors = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_poll_descriptors"); + pContext->alsa.snd_pcm_poll_descriptors_count = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_poll_descriptors_count"); + pContext->alsa.snd_pcm_poll_descriptors_revents = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_poll_descriptors_revents"); + pContext->alsa.snd_config_update_free_global = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_config_update_free_global"); +#else + /* The system below is just for type safety. */ + ma_snd_pcm_open_proc _snd_pcm_open = snd_pcm_open; + ma_snd_pcm_close_proc _snd_pcm_close = snd_pcm_close; + ma_snd_pcm_hw_params_sizeof_proc _snd_pcm_hw_params_sizeof = snd_pcm_hw_params_sizeof; + ma_snd_pcm_hw_params_any_proc _snd_pcm_hw_params_any = snd_pcm_hw_params_any; + ma_snd_pcm_hw_params_set_format_proc _snd_pcm_hw_params_set_format = snd_pcm_hw_params_set_format; + ma_snd_pcm_hw_params_set_format_first_proc _snd_pcm_hw_params_set_format_first = snd_pcm_hw_params_set_format_first; + ma_snd_pcm_hw_params_get_format_mask_proc _snd_pcm_hw_params_get_format_mask = snd_pcm_hw_params_get_format_mask; + ma_snd_pcm_hw_params_set_channels_proc _snd_pcm_hw_params_set_channels = snd_pcm_hw_params_set_channels; + ma_snd_pcm_hw_params_set_channels_near_proc _snd_pcm_hw_params_set_channels_near = snd_pcm_hw_params_set_channels_near; + ma_snd_pcm_hw_params_set_rate_resample_proc _snd_pcm_hw_params_set_rate_resample = snd_pcm_hw_params_set_rate_resample; + ma_snd_pcm_hw_params_set_rate_near _snd_pcm_hw_params_set_rate = snd_pcm_hw_params_set_rate; + ma_snd_pcm_hw_params_set_rate_near_proc _snd_pcm_hw_params_set_rate_near = snd_pcm_hw_params_set_rate_near; + ma_snd_pcm_hw_params_set_rate_minmax_proc _snd_pcm_hw_params_set_rate_minmax = snd_pcm_hw_params_set_rate_minmax; + ma_snd_pcm_hw_params_set_buffer_size_near_proc _snd_pcm_hw_params_set_buffer_size_near = snd_pcm_hw_params_set_buffer_size_near; + ma_snd_pcm_hw_params_set_periods_near_proc _snd_pcm_hw_params_set_periods_near = snd_pcm_hw_params_set_periods_near; + ma_snd_pcm_hw_params_set_access_proc _snd_pcm_hw_params_set_access = snd_pcm_hw_params_set_access; + ma_snd_pcm_hw_params_get_format_proc _snd_pcm_hw_params_get_format = snd_pcm_hw_params_get_format; + ma_snd_pcm_hw_params_get_channels_proc _snd_pcm_hw_params_get_channels = snd_pcm_hw_params_get_channels; + ma_snd_pcm_hw_params_get_channels_min_proc _snd_pcm_hw_params_get_channels_min = snd_pcm_hw_params_get_channels_min; + ma_snd_pcm_hw_params_get_channels_max_proc _snd_pcm_hw_params_get_channels_max = snd_pcm_hw_params_get_channels_max; + ma_snd_pcm_hw_params_get_rate_proc _snd_pcm_hw_params_get_rate = snd_pcm_hw_params_get_rate; + ma_snd_pcm_hw_params_get_rate_min_proc _snd_pcm_hw_params_get_rate_min = snd_pcm_hw_params_get_rate_min; + ma_snd_pcm_hw_params_get_rate_max_proc _snd_pcm_hw_params_get_rate_max = snd_pcm_hw_params_get_rate_max; + ma_snd_pcm_hw_params_get_buffer_size_proc _snd_pcm_hw_params_get_buffer_size = snd_pcm_hw_params_get_buffer_size; + ma_snd_pcm_hw_params_get_periods_proc _snd_pcm_hw_params_get_periods = snd_pcm_hw_params_get_periods; + ma_snd_pcm_hw_params_get_access_proc _snd_pcm_hw_params_get_access = snd_pcm_hw_params_get_access; + ma_snd_pcm_hw_params_test_format_proc _snd_pcm_hw_params_test_format = snd_pcm_hw_params_test_format; + ma_snd_pcm_hw_params_test_channels_proc _snd_pcm_hw_params_test_channels = snd_pcm_hw_params_test_channels; + ma_snd_pcm_hw_params_test_rate_proc _snd_pcm_hw_params_test_rate = snd_pcm_hw_params_test_rate; + ma_snd_pcm_hw_params_proc _snd_pcm_hw_params = snd_pcm_hw_params; + ma_snd_pcm_sw_params_sizeof_proc _snd_pcm_sw_params_sizeof = snd_pcm_sw_params_sizeof; + ma_snd_pcm_sw_params_current_proc _snd_pcm_sw_params_current = snd_pcm_sw_params_current; + ma_snd_pcm_sw_params_get_boundary_proc _snd_pcm_sw_params_get_boundary = snd_pcm_sw_params_get_boundary; + ma_snd_pcm_sw_params_set_avail_min_proc _snd_pcm_sw_params_set_avail_min = snd_pcm_sw_params_set_avail_min; + ma_snd_pcm_sw_params_set_start_threshold_proc _snd_pcm_sw_params_set_start_threshold = snd_pcm_sw_params_set_start_threshold; + ma_snd_pcm_sw_params_set_stop_threshold_proc _snd_pcm_sw_params_set_stop_threshold = snd_pcm_sw_params_set_stop_threshold; + ma_snd_pcm_sw_params_proc _snd_pcm_sw_params = snd_pcm_sw_params; + ma_snd_pcm_format_mask_sizeof_proc _snd_pcm_format_mask_sizeof = snd_pcm_format_mask_sizeof; + ma_snd_pcm_format_mask_test_proc _snd_pcm_format_mask_test = snd_pcm_format_mask_test; + ma_snd_pcm_get_chmap_proc _snd_pcm_get_chmap = snd_pcm_get_chmap; + ma_snd_pcm_state_proc _snd_pcm_state = snd_pcm_state; + ma_snd_pcm_prepare_proc _snd_pcm_prepare = snd_pcm_prepare; + ma_snd_pcm_start_proc _snd_pcm_start = snd_pcm_start; + ma_snd_pcm_drop_proc _snd_pcm_drop = snd_pcm_drop; + ma_snd_pcm_drain_proc _snd_pcm_drain = snd_pcm_drain; + ma_snd_pcm_reset_proc _snd_pcm_reset = snd_pcm_reset; + ma_snd_device_name_hint_proc _snd_device_name_hint = snd_device_name_hint; + ma_snd_device_name_get_hint_proc _snd_device_name_get_hint = snd_device_name_get_hint; + ma_snd_card_get_index_proc _snd_card_get_index = snd_card_get_index; + ma_snd_device_name_free_hint_proc _snd_device_name_free_hint = snd_device_name_free_hint; + ma_snd_pcm_mmap_begin_proc _snd_pcm_mmap_begin = snd_pcm_mmap_begin; + ma_snd_pcm_mmap_commit_proc _snd_pcm_mmap_commit = snd_pcm_mmap_commit; + ma_snd_pcm_recover_proc _snd_pcm_recover = snd_pcm_recover; + ma_snd_pcm_readi_proc _snd_pcm_readi = snd_pcm_readi; + ma_snd_pcm_writei_proc _snd_pcm_writei = snd_pcm_writei; + ma_snd_pcm_avail_proc _snd_pcm_avail = snd_pcm_avail; + ma_snd_pcm_avail_update_proc _snd_pcm_avail_update = snd_pcm_avail_update; + ma_snd_pcm_wait_proc _snd_pcm_wait = snd_pcm_wait; + ma_snd_pcm_nonblock_proc _snd_pcm_nonblock = snd_pcm_nonblock; + ma_snd_pcm_info_proc _snd_pcm_info = snd_pcm_info; + ma_snd_pcm_info_sizeof_proc _snd_pcm_info_sizeof = snd_pcm_info_sizeof; + ma_snd_pcm_info_get_name_proc _snd_pcm_info_get_name = snd_pcm_info_get_name; + ma_snd_pcm_poll_descriptors _snd_pcm_poll_descriptors = snd_pcm_poll_descriptors; + ma_snd_pcm_poll_descriptors_count _snd_pcm_poll_descriptors_count = snd_pcm_poll_descriptors_count; + ma_snd_pcm_poll_descriptors_revents _snd_pcm_poll_descriptors_revents = snd_pcm_poll_descriptors_revents; + ma_snd_config_update_free_global_proc _snd_config_update_free_global = snd_config_update_free_global; + + pContext->alsa.snd_pcm_open = (ma_proc)_snd_pcm_open; + pContext->alsa.snd_pcm_close = (ma_proc)_snd_pcm_close; + pContext->alsa.snd_pcm_hw_params_sizeof = (ma_proc)_snd_pcm_hw_params_sizeof; + pContext->alsa.snd_pcm_hw_params_any = (ma_proc)_snd_pcm_hw_params_any; + pContext->alsa.snd_pcm_hw_params_set_format = (ma_proc)_snd_pcm_hw_params_set_format; + pContext->alsa.snd_pcm_hw_params_set_format_first = (ma_proc)_snd_pcm_hw_params_set_format_first; + pContext->alsa.snd_pcm_hw_params_get_format_mask = (ma_proc)_snd_pcm_hw_params_get_format_mask; + pContext->alsa.snd_pcm_hw_params_set_channels = (ma_proc)_snd_pcm_hw_params_set_channels; + pContext->alsa.snd_pcm_hw_params_set_channels_near = (ma_proc)_snd_pcm_hw_params_set_channels_near; + pContext->alsa.snd_pcm_hw_params_set_channels_minmax = (ma_proc)_snd_pcm_hw_params_set_channels_minmax; + pContext->alsa.snd_pcm_hw_params_set_rate_resample = (ma_proc)_snd_pcm_hw_params_set_rate_resample; + pContext->alsa.snd_pcm_hw_params_set_rate = (ma_proc)_snd_pcm_hw_params_set_rate; + pContext->alsa.snd_pcm_hw_params_set_rate_near = (ma_proc)_snd_pcm_hw_params_set_rate_near; + pContext->alsa.snd_pcm_hw_params_set_buffer_size_near = (ma_proc)_snd_pcm_hw_params_set_buffer_size_near; + pContext->alsa.snd_pcm_hw_params_set_periods_near = (ma_proc)_snd_pcm_hw_params_set_periods_near; + pContext->alsa.snd_pcm_hw_params_set_access = (ma_proc)_snd_pcm_hw_params_set_access; + pContext->alsa.snd_pcm_hw_params_get_format = (ma_proc)_snd_pcm_hw_params_get_format; + pContext->alsa.snd_pcm_hw_params_get_channels = (ma_proc)_snd_pcm_hw_params_get_channels; + pContext->alsa.snd_pcm_hw_params_get_channels_min = (ma_proc)_snd_pcm_hw_params_get_channels_min; + pContext->alsa.snd_pcm_hw_params_get_channels_max = (ma_proc)_snd_pcm_hw_params_get_channels_max; + pContext->alsa.snd_pcm_hw_params_get_rate = (ma_proc)_snd_pcm_hw_params_get_rate; + pContext->alsa.snd_pcm_hw_params_get_rate_min = (ma_proc)_snd_pcm_hw_params_get_rate_min; + pContext->alsa.snd_pcm_hw_params_get_rate_max = (ma_proc)_snd_pcm_hw_params_get_rate_max; + pContext->alsa.snd_pcm_hw_params_get_buffer_size = (ma_proc)_snd_pcm_hw_params_get_buffer_size; + pContext->alsa.snd_pcm_hw_params_get_periods = (ma_proc)_snd_pcm_hw_params_get_periods; + pContext->alsa.snd_pcm_hw_params_get_access = (ma_proc)_snd_pcm_hw_params_get_access; + pContext->alsa.snd_pcm_hw_params_test_format = (ma_proc)_snd_pcm_hw_params_test_format; + pContext->alsa.snd_pcm_hw_params_test_channels = (ma_proc)_snd_pcm_hw_params_test_channels; + pContext->alsa.snd_pcm_hw_params_test_rate = (ma_proc)_snd_pcm_hw_params_test_rate; + pContext->alsa.snd_pcm_hw_params = (ma_proc)_snd_pcm_hw_params; + pContext->alsa.snd_pcm_sw_params_sizeof = (ma_proc)_snd_pcm_sw_params_sizeof; + pContext->alsa.snd_pcm_sw_params_current = (ma_proc)_snd_pcm_sw_params_current; + pContext->alsa.snd_pcm_sw_params_get_boundary = (ma_proc)_snd_pcm_sw_params_get_boundary; + pContext->alsa.snd_pcm_sw_params_set_avail_min = (ma_proc)_snd_pcm_sw_params_set_avail_min; + pContext->alsa.snd_pcm_sw_params_set_start_threshold = (ma_proc)_snd_pcm_sw_params_set_start_threshold; + pContext->alsa.snd_pcm_sw_params_set_stop_threshold = (ma_proc)_snd_pcm_sw_params_set_stop_threshold; + pContext->alsa.snd_pcm_sw_params = (ma_proc)_snd_pcm_sw_params; + pContext->alsa.snd_pcm_format_mask_sizeof = (ma_proc)_snd_pcm_format_mask_sizeof; + pContext->alsa.snd_pcm_format_mask_test = (ma_proc)_snd_pcm_format_mask_test; + pContext->alsa.snd_pcm_get_chmap = (ma_proc)_snd_pcm_get_chmap; + pContext->alsa.snd_pcm_state = (ma_proc)_snd_pcm_state; + pContext->alsa.snd_pcm_prepare = (ma_proc)_snd_pcm_prepare; + pContext->alsa.snd_pcm_start = (ma_proc)_snd_pcm_start; + pContext->alsa.snd_pcm_drop = (ma_proc)_snd_pcm_drop; + pContext->alsa.snd_pcm_drain = (ma_proc)_snd_pcm_drain; + pContext->alsa.snd_pcm_reset = (ma_proc)_snd_pcm_reset; + pContext->alsa.snd_device_name_hint = (ma_proc)_snd_device_name_hint; + pContext->alsa.snd_device_name_get_hint = (ma_proc)_snd_device_name_get_hint; + pContext->alsa.snd_card_get_index = (ma_proc)_snd_card_get_index; + pContext->alsa.snd_device_name_free_hint = (ma_proc)_snd_device_name_free_hint; + pContext->alsa.snd_pcm_mmap_begin = (ma_proc)_snd_pcm_mmap_begin; + pContext->alsa.snd_pcm_mmap_commit = (ma_proc)_snd_pcm_mmap_commit; + pContext->alsa.snd_pcm_recover = (ma_proc)_snd_pcm_recover; + pContext->alsa.snd_pcm_readi = (ma_proc)_snd_pcm_readi; + pContext->alsa.snd_pcm_writei = (ma_proc)_snd_pcm_writei; + pContext->alsa.snd_pcm_avail = (ma_proc)_snd_pcm_avail; + pContext->alsa.snd_pcm_avail_update = (ma_proc)_snd_pcm_avail_update; + pContext->alsa.snd_pcm_wait = (ma_proc)_snd_pcm_wait; + pContext->alsa.snd_pcm_nonblock = (ma_proc)_snd_pcm_nonblock; + pContext->alsa.snd_pcm_info = (ma_proc)_snd_pcm_info; + pContext->alsa.snd_pcm_info_sizeof = (ma_proc)_snd_pcm_info_sizeof; + pContext->alsa.snd_pcm_info_get_name = (ma_proc)_snd_pcm_info_get_name; + pContext->alsa.snd_pcm_poll_descriptors = (ma_proc)_snd_pcm_poll_descriptors; + pContext->alsa.snd_pcm_poll_descriptors_count = (ma_proc)_snd_pcm_poll_descriptors_count; + pContext->alsa.snd_pcm_poll_descriptors_revents = (ma_proc)_snd_pcm_poll_descriptors_revents; + pContext->alsa.snd_config_update_free_global = (ma_proc)_snd_config_update_free_global; +#endif + + pContext->alsa.useVerboseDeviceEnumeration = pConfig->alsa.useVerboseDeviceEnumeration; + + if (ma_mutex_init(&pContext->alsa.internalDeviceEnumLock) != MA_SUCCESS) { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[ALSA] WARNING: Failed to initialize mutex for internal device enumeration.", MA_ERROR); + } + + pCallbacks->onContextInit = ma_context_init__alsa; + pCallbacks->onContextUninit = ma_context_uninit__alsa; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__alsa; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__alsa; + pCallbacks->onDeviceInit = ma_device_init__alsa; + pCallbacks->onDeviceUninit = ma_device_uninit__alsa; + pCallbacks->onDeviceStart = ma_device_start__alsa; + pCallbacks->onDeviceStop = ma_device_stop__alsa; + pCallbacks->onDeviceRead = ma_device_read__alsa; + pCallbacks->onDeviceWrite = ma_device_write__alsa; + pCallbacks->onDeviceDataLoop = NULL; + pCallbacks->onDeviceDataLoopWakeup = ma_device_data_loop_wakeup__alsa; + + return MA_SUCCESS; +} +#endif /* ALSA */ + + + +/****************************************************************************** + +PulseAudio Backend + +******************************************************************************/ +#ifdef MA_HAS_PULSEAUDIO +/* +The PulseAudio API, along with Apple's Core Audio, is the worst of the maintream audio APIs. This is a brief description of what's going on +in the PulseAudio backend. I apologize if this gets a bit ranty for your liking - you might want to skip this discussion. + +PulseAudio has something they call the "Simple API", which unfortunately isn't suitable for miniaudio. I've not seen anywhere where it +allows you to enumerate over devices, nor does it seem to support the ability to stop and start streams. Looking at the documentation, it +appears as though the stream is constantly running and you prevent sound from being emitted or captured by simply not calling the read or +write functions. This is not a professional solution as it would be much better to *actually* stop the underlying stream. Perhaps the +simple API has some smarts to do this automatically, but I'm not sure. Another limitation with the simple API is that it seems inefficient +when you want to have multiple streams to a single context. For these reasons, miniaudio is not using the simple API. + +Since we're not using the simple API, we're left with the asynchronous API as our only other option. And boy, is this where it starts to +get fun, and I don't mean that in a good way... + +The problems start with the very name of the API - "asynchronous". Yes, this is an asynchronous oriented API which means your commands +don't immediately take effect. You instead need to issue your commands, and then wait for them to complete. The waiting mechanism is +enabled through the use of a "main loop". In the asychronous API you cannot get away from the main loop, and the main loop is where almost +all of PulseAudio's problems stem from. + +When you first initialize PulseAudio you need an object referred to as "main loop". You can implement this yourself by defining your own +vtable, but it's much easier to just use one of the built-in main loop implementations. There's two generic implementations called +pa_mainloop and pa_threaded_mainloop, and another implementation specific to GLib called pa_glib_mainloop. We're using pa_threaded_mainloop +because it simplifies management of the worker thread. The idea of the main loop object is pretty self explanatory - you're supposed to use +it to implement a worker thread which runs in a loop. The main loop is where operations are actually executed. + +To initialize the main loop, you just use `pa_threaded_mainloop_new()`. This is the first function you'll call. You can then get a pointer +to the vtable with `pa_threaded_mainloop_get_api()` (the main loop vtable is called `pa_mainloop_api`). Again, you can bypass the threaded +main loop object entirely and just implement `pa_mainloop_api` directly, but there's no need for it unless you're doing something extremely +specialized such as if you want to integrate it into your application's existing main loop infrastructure. + +(EDIT 2021-01-26: miniaudio is no longer using `pa_threaded_mainloop` due to this issue: https://github.com/mackron/miniaudio/issues/262. +It is now using `pa_mainloop` which turns out to be a simpler solution anyway. The rest of this rant still applies, however.) + +Once you have your main loop vtable (the `pa_mainloop_api` object) you can create the PulseAudio context. This is very similar to +miniaudio's context and they map to each other quite well. You have one context to many streams, which is basically the same as miniaudio's +one `ma_context` to many `ma_device`s. Here's where it starts to get annoying, however. When you first create the PulseAudio context, which +is done with `pa_context_new()`, it's not actually connected to anything. When you connect, you call `pa_context_connect()`. However, if +you remember, PulseAudio is an asynchronous API. That means you cannot just assume the context is connected after `pa_context_context()` +has returned. You instead need to wait for it to connect. To do this, you need to either wait for a callback to get fired, which you can +set with `pa_context_set_state_callback()`, or you can continuously poll the context's state. Either way, you need to run this in a loop. +All objects from here out are created from the context, and, I believe, you can't be creating these objects until the context is connected. +This waiting loop is therefore unavoidable. In order for the waiting to ever complete, however, the main loop needs to be running. Before +attempting to connect the context, the main loop needs to be started with `pa_threaded_mainloop_start()`. + +The reason for this asynchronous design is to support cases where you're connecting to a remote server, say through a local network or an +internet connection. However, the *VAST* majority of cases don't involve this at all - they just connect to a local "server" running on the +host machine. The fact that this would be the default rather than making `pa_context_connect()` synchronous tends to boggle the mind. + +Once the context has been created and connected you can start creating a stream. A PulseAudio stream is analogous to miniaudio's device. +The initialization of a stream is fairly standard - you configure some attributes (analogous to miniaudio's device config) and then call +`pa_stream_new()` to actually create it. Here is where we start to get into "operations". When configuring the stream, you can get +information about the source (such as sample format, sample rate, etc.), however it's not synchronous. Instead, a `pa_operation` object +is returned from `pa_context_get_source_info_by_name()` (capture) or `pa_context_get_sink_info_by_name()` (playback). Then, you need to +run a loop (again!) to wait for the operation to complete which you can determine via a callback or polling, just like we did with the +context. Then, as an added bonus, you need to decrement the reference counter of the `pa_operation` object to ensure memory is cleaned up. +All of that just to retrieve basic information about a device! + +Once the basic information about the device has been retrieved, miniaudio can now create the stream with `ma_stream_new()`. Like the +context, this needs to be connected. But we need to be careful here, because we're now about to introduce one of the most horrific design +choices in PulseAudio. + +PulseAudio allows you to specify a callback that is fired when data can be written to or read from a stream. The language is important here +because PulseAudio takes it literally, specifically the "can be". You would think these callbacks would be appropriate as the place for +writing and reading data to and from the stream, and that would be right, except when it's not. When you initialize the stream, you can +set a flag that tells PulseAudio to not start the stream automatically. This is required because miniaudio does not auto-start devices +straight after initialization - you need to call `ma_device_start()` manually. The problem is that even when this flag is specified, +PulseAudio will immediately fire it's write or read callback. This is *technically* correct (based on the wording in the documentation) +because indeed, data *can* be written at this point. The problem is that it's not *practical*. It makes sense that the write/read callback +would be where a program will want to write or read data to or from the stream, but when it's called before the application has even +requested that the stream be started, it's just not practical because the program probably isn't ready for any kind of data delivery at +that point (it may still need to load files or whatnot). Instead, this callback should only be fired when the application requests the +stream be started which is how it works with literally *every* other callback-based audio API. Since miniaudio forbids firing of the data +callback until the device has been started (as it should be with *all* callback based APIs), logic needs to be added to ensure miniaudio +doesn't just blindly fire the application-defined data callback from within the PulseAudio callback before the stream has actually been +started. The device state is used for this - if the state is anything other than `MA_STATE_STARTING` or `MA_STATE_STARTED`, the main data +callback is not fired. + +This, unfortunately, is not the end of the problems with the PulseAudio write callback. Any normal callback based audio API will +continuously fire the callback at regular intervals based on the size of the internal buffer. This will only ever be fired when the device +is running, and will be fired regardless of whether or not the user actually wrote anything to the device/stream. This not the case in +PulseAudio. In PulseAudio, the data callback will *only* be called if you wrote something to it previously. That means, if you don't call +`pa_stream_write()`, the callback will not get fired. On the surface you wouldn't think this would matter because you should be always +writing data, and if you don't have anything to write, just write silence. That's fine until you want to drain the stream. You see, if +you're continuously writing data to the stream, the stream will never get drained! That means in order to drain the stream, you need to +*not* write data to it! But remember, when you don't write data to the stream, the callback won't get fired again! Why is draining +important? Because that's how we've defined stopping to work in miniaudio. In miniaudio, stopping the device requires it to be drained +before returning from ma_device_stop(). So we've stopped the device, which requires us to drain, but draining requires us to *not* write +data to the stream (or else it won't ever complete draining), but not writing to the stream means the callback won't get fired again! + +This becomes a problem when stopping and then restarting the device. When the device is stopped, it's drained, which requires us to *not* +write anything to the stream. But then, since we didn't write anything to it, the write callback will *never* get called again if we just +resume the stream naively. This means that starting the stream requires us to write data to the stream from outside the callback. This +disconnect is something PulseAudio has got seriously wrong - there should only ever be a single source of data delivery, that being the +callback. (I have tried using `pa_stream_flush()` to trigger the write callback to fire, but this just doesn't work for some reason.) + +Once you've created the stream, you need to connect it which involves the whole waiting procedure. This is the same process as the context, +only this time you'll poll for the state with `pa_stream_get_status()`. The starting and stopping of a streaming is referred to as +"corking" in PulseAudio. The analogy is corking a barrel. To start the stream, you uncork it, to stop it you cork it. Personally I think +it's silly - why would you not just call it "starting" and "stopping" like any other normal audio API? Anyway, the act of corking is, you +guessed it, asynchronous. This means you'll need our waiting loop as usual. Again, why this asynchronous design is the default is +absolutely beyond me. Would it really be that hard to just make it run synchronously? + +Teardown is pretty simple (what?!). It's just a matter of calling the relevant `_unref()` function on each object in reverse order that +they were initialized in. + +That's about it from the PulseAudio side. A bit ranty, I know, but they really need to fix that main loop and callback system. They're +embarrassingly unpractical. The main loop thing is an easy fix - have synchronous versions of all APIs. If an application wants these to +run asynchronously, they can execute them in a separate thread themselves. The desire to run these asynchronously is such a niche +requirement - it makes no sense to make it the default. The stream write callback needs to be change, or an alternative provided, that is +constantly fired, regardless of whether or not `pa_stream_write()` has been called, and it needs to take a pointer to a buffer as a +parameter which the program just writes to directly rather than having to call `pa_stream_writable_size()` and `pa_stream_write()`. These +changes alone will change PulseAudio from one of the worst audio APIs to one of the best. +*/ + + +/* +It is assumed pulseaudio.h is available when linking at compile time. When linking at compile time, we use the declarations in the header +to check for type safety. We cannot do this when linking at run time because the header might not be available. +*/ +#ifdef MA_NO_RUNTIME_LINKING + +/* pulseaudio.h marks some functions with "inline" which isn't always supported. Need to emulate it. */ +#if !defined(__cplusplus) + #if defined(__STRICT_ANSI__) + #if !defined(inline) + #define inline __inline__ __attribute__((always_inline)) + #define MA_INLINE_DEFINED + #endif + #endif +#endif +#include +#if defined(MA_INLINE_DEFINED) + #undef inline + #undef MA_INLINE_DEFINED +#endif + +#define MA_PA_OK PA_OK +#define MA_PA_ERR_ACCESS PA_ERR_ACCESS +#define MA_PA_ERR_INVALID PA_ERR_INVALID +#define MA_PA_ERR_NOENTITY PA_ERR_NOENTITY + +#define MA_PA_CHANNELS_MAX PA_CHANNELS_MAX +#define MA_PA_RATE_MAX PA_RATE_MAX + +typedef pa_context_flags_t ma_pa_context_flags_t; +#define MA_PA_CONTEXT_NOFLAGS PA_CONTEXT_NOFLAGS +#define MA_PA_CONTEXT_NOAUTOSPAWN PA_CONTEXT_NOAUTOSPAWN +#define MA_PA_CONTEXT_NOFAIL PA_CONTEXT_NOFAIL + +typedef pa_stream_flags_t ma_pa_stream_flags_t; +#define MA_PA_STREAM_NOFLAGS PA_STREAM_NOFLAGS +#define MA_PA_STREAM_START_CORKED PA_STREAM_START_CORKED +#define MA_PA_STREAM_INTERPOLATE_TIMING PA_STREAM_INTERPOLATE_TIMING +#define MA_PA_STREAM_NOT_MONOTONIC PA_STREAM_NOT_MONOTONIC +#define MA_PA_STREAM_AUTO_TIMING_UPDATE PA_STREAM_AUTO_TIMING_UPDATE +#define MA_PA_STREAM_NO_REMAP_CHANNELS PA_STREAM_NO_REMAP_CHANNELS +#define MA_PA_STREAM_NO_REMIX_CHANNELS PA_STREAM_NO_REMIX_CHANNELS +#define MA_PA_STREAM_FIX_FORMAT PA_STREAM_FIX_FORMAT +#define MA_PA_STREAM_FIX_RATE PA_STREAM_FIX_RATE +#define MA_PA_STREAM_FIX_CHANNELS PA_STREAM_FIX_CHANNELS +#define MA_PA_STREAM_DONT_MOVE PA_STREAM_DONT_MOVE +#define MA_PA_STREAM_VARIABLE_RATE PA_STREAM_VARIABLE_RATE +#define MA_PA_STREAM_PEAK_DETECT PA_STREAM_PEAK_DETECT +#define MA_PA_STREAM_START_MUTED PA_STREAM_START_MUTED +#define MA_PA_STREAM_ADJUST_LATENCY PA_STREAM_ADJUST_LATENCY +#define MA_PA_STREAM_EARLY_REQUESTS PA_STREAM_EARLY_REQUESTS +#define MA_PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND +#define MA_PA_STREAM_START_UNMUTED PA_STREAM_START_UNMUTED +#define MA_PA_STREAM_FAIL_ON_SUSPEND PA_STREAM_FAIL_ON_SUSPEND +#define MA_PA_STREAM_RELATIVE_VOLUME PA_STREAM_RELATIVE_VOLUME +#define MA_PA_STREAM_PASSTHROUGH PA_STREAM_PASSTHROUGH + +typedef pa_sink_flags_t ma_pa_sink_flags_t; +#define MA_PA_SINK_NOFLAGS PA_SINK_NOFLAGS +#define MA_PA_SINK_HW_VOLUME_CTRL PA_SINK_HW_VOLUME_CTRL +#define MA_PA_SINK_LATENCY PA_SINK_LATENCY +#define MA_PA_SINK_HARDWARE PA_SINK_HARDWARE +#define MA_PA_SINK_NETWORK PA_SINK_NETWORK +#define MA_PA_SINK_HW_MUTE_CTRL PA_SINK_HW_MUTE_CTRL +#define MA_PA_SINK_DECIBEL_VOLUME PA_SINK_DECIBEL_VOLUME +#define MA_PA_SINK_FLAT_VOLUME PA_SINK_FLAT_VOLUME +#define MA_PA_SINK_DYNAMIC_LATENCY PA_SINK_DYNAMIC_LATENCY +#define MA_PA_SINK_SET_FORMATS PA_SINK_SET_FORMATS + +typedef pa_source_flags_t ma_pa_source_flags_t; +#define MA_PA_SOURCE_NOFLAGS PA_SOURCE_NOFLAGS +#define MA_PA_SOURCE_HW_VOLUME_CTRL PA_SOURCE_HW_VOLUME_CTRL +#define MA_PA_SOURCE_LATENCY PA_SOURCE_LATENCY +#define MA_PA_SOURCE_HARDWARE PA_SOURCE_HARDWARE +#define MA_PA_SOURCE_NETWORK PA_SOURCE_NETWORK +#define MA_PA_SOURCE_HW_MUTE_CTRL PA_SOURCE_HW_MUTE_CTRL +#define MA_PA_SOURCE_DECIBEL_VOLUME PA_SOURCE_DECIBEL_VOLUME +#define MA_PA_SOURCE_DYNAMIC_LATENCY PA_SOURCE_DYNAMIC_LATENCY +#define MA_PA_SOURCE_FLAT_VOLUME PA_SOURCE_FLAT_VOLUME + +typedef pa_context_state_t ma_pa_context_state_t; +#define MA_PA_CONTEXT_UNCONNECTED PA_CONTEXT_UNCONNECTED +#define MA_PA_CONTEXT_CONNECTING PA_CONTEXT_CONNECTING +#define MA_PA_CONTEXT_AUTHORIZING PA_CONTEXT_AUTHORIZING +#define MA_PA_CONTEXT_SETTING_NAME PA_CONTEXT_SETTING_NAME +#define MA_PA_CONTEXT_READY PA_CONTEXT_READY +#define MA_PA_CONTEXT_FAILED PA_CONTEXT_FAILED +#define MA_PA_CONTEXT_TERMINATED PA_CONTEXT_TERMINATED + +typedef pa_stream_state_t ma_pa_stream_state_t; +#define MA_PA_STREAM_UNCONNECTED PA_STREAM_UNCONNECTED +#define MA_PA_STREAM_CREATING PA_STREAM_CREATING +#define MA_PA_STREAM_READY PA_STREAM_READY +#define MA_PA_STREAM_FAILED PA_STREAM_FAILED +#define MA_PA_STREAM_TERMINATED PA_STREAM_TERMINATED + +typedef pa_operation_state_t ma_pa_operation_state_t; +#define MA_PA_OPERATION_RUNNING PA_OPERATION_RUNNING +#define MA_PA_OPERATION_DONE PA_OPERATION_DONE +#define MA_PA_OPERATION_CANCELLED PA_OPERATION_CANCELLED + +typedef pa_sink_state_t ma_pa_sink_state_t; +#define MA_PA_SINK_INVALID_STATE PA_SINK_INVALID_STATE +#define MA_PA_SINK_RUNNING PA_SINK_RUNNING +#define MA_PA_SINK_IDLE PA_SINK_IDLE +#define MA_PA_SINK_SUSPENDED PA_SINK_SUSPENDED + +typedef pa_source_state_t ma_pa_source_state_t; +#define MA_PA_SOURCE_INVALID_STATE PA_SOURCE_INVALID_STATE +#define MA_PA_SOURCE_RUNNING PA_SOURCE_RUNNING +#define MA_PA_SOURCE_IDLE PA_SOURCE_IDLE +#define MA_PA_SOURCE_SUSPENDED PA_SOURCE_SUSPENDED + +typedef pa_seek_mode_t ma_pa_seek_mode_t; +#define MA_PA_SEEK_RELATIVE PA_SEEK_RELATIVE +#define MA_PA_SEEK_ABSOLUTE PA_SEEK_ABSOLUTE +#define MA_PA_SEEK_RELATIVE_ON_READ PA_SEEK_RELATIVE_ON_READ +#define MA_PA_SEEK_RELATIVE_END PA_SEEK_RELATIVE_END + +typedef pa_channel_position_t ma_pa_channel_position_t; +#define MA_PA_CHANNEL_POSITION_INVALID PA_CHANNEL_POSITION_INVALID +#define MA_PA_CHANNEL_POSITION_MONO PA_CHANNEL_POSITION_MONO +#define MA_PA_CHANNEL_POSITION_FRONT_LEFT PA_CHANNEL_POSITION_FRONT_LEFT +#define MA_PA_CHANNEL_POSITION_FRONT_RIGHT PA_CHANNEL_POSITION_FRONT_RIGHT +#define MA_PA_CHANNEL_POSITION_FRONT_CENTER PA_CHANNEL_POSITION_FRONT_CENTER +#define MA_PA_CHANNEL_POSITION_REAR_CENTER PA_CHANNEL_POSITION_REAR_CENTER +#define MA_PA_CHANNEL_POSITION_REAR_LEFT PA_CHANNEL_POSITION_REAR_LEFT +#define MA_PA_CHANNEL_POSITION_REAR_RIGHT PA_CHANNEL_POSITION_REAR_RIGHT +#define MA_PA_CHANNEL_POSITION_LFE PA_CHANNEL_POSITION_LFE +#define MA_PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER +#define MA_PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER +#define MA_PA_CHANNEL_POSITION_SIDE_LEFT PA_CHANNEL_POSITION_SIDE_LEFT +#define MA_PA_CHANNEL_POSITION_SIDE_RIGHT PA_CHANNEL_POSITION_SIDE_RIGHT +#define MA_PA_CHANNEL_POSITION_AUX0 PA_CHANNEL_POSITION_AUX0 +#define MA_PA_CHANNEL_POSITION_AUX1 PA_CHANNEL_POSITION_AUX1 +#define MA_PA_CHANNEL_POSITION_AUX2 PA_CHANNEL_POSITION_AUX2 +#define MA_PA_CHANNEL_POSITION_AUX3 PA_CHANNEL_POSITION_AUX3 +#define MA_PA_CHANNEL_POSITION_AUX4 PA_CHANNEL_POSITION_AUX4 +#define MA_PA_CHANNEL_POSITION_AUX5 PA_CHANNEL_POSITION_AUX5 +#define MA_PA_CHANNEL_POSITION_AUX6 PA_CHANNEL_POSITION_AUX6 +#define MA_PA_CHANNEL_POSITION_AUX7 PA_CHANNEL_POSITION_AUX7 +#define MA_PA_CHANNEL_POSITION_AUX8 PA_CHANNEL_POSITION_AUX8 +#define MA_PA_CHANNEL_POSITION_AUX9 PA_CHANNEL_POSITION_AUX9 +#define MA_PA_CHANNEL_POSITION_AUX10 PA_CHANNEL_POSITION_AUX10 +#define MA_PA_CHANNEL_POSITION_AUX11 PA_CHANNEL_POSITION_AUX11 +#define MA_PA_CHANNEL_POSITION_AUX12 PA_CHANNEL_POSITION_AUX12 +#define MA_PA_CHANNEL_POSITION_AUX13 PA_CHANNEL_POSITION_AUX13 +#define MA_PA_CHANNEL_POSITION_AUX14 PA_CHANNEL_POSITION_AUX14 +#define MA_PA_CHANNEL_POSITION_AUX15 PA_CHANNEL_POSITION_AUX15 +#define MA_PA_CHANNEL_POSITION_AUX16 PA_CHANNEL_POSITION_AUX16 +#define MA_PA_CHANNEL_POSITION_AUX17 PA_CHANNEL_POSITION_AUX17 +#define MA_PA_CHANNEL_POSITION_AUX18 PA_CHANNEL_POSITION_AUX18 +#define MA_PA_CHANNEL_POSITION_AUX19 PA_CHANNEL_POSITION_AUX19 +#define MA_PA_CHANNEL_POSITION_AUX20 PA_CHANNEL_POSITION_AUX20 +#define MA_PA_CHANNEL_POSITION_AUX21 PA_CHANNEL_POSITION_AUX21 +#define MA_PA_CHANNEL_POSITION_AUX22 PA_CHANNEL_POSITION_AUX22 +#define MA_PA_CHANNEL_POSITION_AUX23 PA_CHANNEL_POSITION_AUX23 +#define MA_PA_CHANNEL_POSITION_AUX24 PA_CHANNEL_POSITION_AUX24 +#define MA_PA_CHANNEL_POSITION_AUX25 PA_CHANNEL_POSITION_AUX25 +#define MA_PA_CHANNEL_POSITION_AUX26 PA_CHANNEL_POSITION_AUX26 +#define MA_PA_CHANNEL_POSITION_AUX27 PA_CHANNEL_POSITION_AUX27 +#define MA_PA_CHANNEL_POSITION_AUX28 PA_CHANNEL_POSITION_AUX28 +#define MA_PA_CHANNEL_POSITION_AUX29 PA_CHANNEL_POSITION_AUX29 +#define MA_PA_CHANNEL_POSITION_AUX30 PA_CHANNEL_POSITION_AUX30 +#define MA_PA_CHANNEL_POSITION_AUX31 PA_CHANNEL_POSITION_AUX31 +#define MA_PA_CHANNEL_POSITION_TOP_CENTER PA_CHANNEL_POSITION_TOP_CENTER +#define MA_PA_CHANNEL_POSITION_TOP_FRONT_LEFT PA_CHANNEL_POSITION_TOP_FRONT_LEFT +#define MA_PA_CHANNEL_POSITION_TOP_FRONT_RIGHT PA_CHANNEL_POSITION_TOP_FRONT_RIGHT +#define MA_PA_CHANNEL_POSITION_TOP_FRONT_CENTER PA_CHANNEL_POSITION_TOP_FRONT_CENTER +#define MA_PA_CHANNEL_POSITION_TOP_REAR_LEFT PA_CHANNEL_POSITION_TOP_REAR_LEFT +#define MA_PA_CHANNEL_POSITION_TOP_REAR_RIGHT PA_CHANNEL_POSITION_TOP_REAR_RIGHT +#define MA_PA_CHANNEL_POSITION_TOP_REAR_CENTER PA_CHANNEL_POSITION_TOP_REAR_CENTER +#define MA_PA_CHANNEL_POSITION_LEFT PA_CHANNEL_POSITION_LEFT +#define MA_PA_CHANNEL_POSITION_RIGHT PA_CHANNEL_POSITION_RIGHT +#define MA_PA_CHANNEL_POSITION_CENTER PA_CHANNEL_POSITION_CENTER +#define MA_PA_CHANNEL_POSITION_SUBWOOFER PA_CHANNEL_POSITION_SUBWOOFER + +typedef pa_channel_map_def_t ma_pa_channel_map_def_t; +#define MA_PA_CHANNEL_MAP_AIFF PA_CHANNEL_MAP_AIFF +#define MA_PA_CHANNEL_MAP_ALSA PA_CHANNEL_MAP_ALSA +#define MA_PA_CHANNEL_MAP_AUX PA_CHANNEL_MAP_AUX +#define MA_PA_CHANNEL_MAP_WAVEEX PA_CHANNEL_MAP_WAVEEX +#define MA_PA_CHANNEL_MAP_OSS PA_CHANNEL_MAP_OSS +#define MA_PA_CHANNEL_MAP_DEFAULT PA_CHANNEL_MAP_DEFAULT + +typedef pa_sample_format_t ma_pa_sample_format_t; +#define MA_PA_SAMPLE_INVALID PA_SAMPLE_INVALID +#define MA_PA_SAMPLE_U8 PA_SAMPLE_U8 +#define MA_PA_SAMPLE_ALAW PA_SAMPLE_ALAW +#define MA_PA_SAMPLE_ULAW PA_SAMPLE_ULAW +#define MA_PA_SAMPLE_S16LE PA_SAMPLE_S16LE +#define MA_PA_SAMPLE_S16BE PA_SAMPLE_S16BE +#define MA_PA_SAMPLE_FLOAT32LE PA_SAMPLE_FLOAT32LE +#define MA_PA_SAMPLE_FLOAT32BE PA_SAMPLE_FLOAT32BE +#define MA_PA_SAMPLE_S32LE PA_SAMPLE_S32LE +#define MA_PA_SAMPLE_S32BE PA_SAMPLE_S32BE +#define MA_PA_SAMPLE_S24LE PA_SAMPLE_S24LE +#define MA_PA_SAMPLE_S24BE PA_SAMPLE_S24BE +#define MA_PA_SAMPLE_S24_32LE PA_SAMPLE_S24_32LE +#define MA_PA_SAMPLE_S24_32BE PA_SAMPLE_S24_32BE + +typedef pa_mainloop ma_pa_mainloop; +typedef pa_threaded_mainloop ma_pa_threaded_mainloop; +typedef pa_mainloop_api ma_pa_mainloop_api; +typedef pa_context ma_pa_context; +typedef pa_operation ma_pa_operation; +typedef pa_stream ma_pa_stream; +typedef pa_spawn_api ma_pa_spawn_api; +typedef pa_buffer_attr ma_pa_buffer_attr; +typedef pa_channel_map ma_pa_channel_map; +typedef pa_cvolume ma_pa_cvolume; +typedef pa_sample_spec ma_pa_sample_spec; +typedef pa_sink_info ma_pa_sink_info; +typedef pa_source_info ma_pa_source_info; + +typedef pa_context_notify_cb_t ma_pa_context_notify_cb_t; +typedef pa_sink_info_cb_t ma_pa_sink_info_cb_t; +typedef pa_source_info_cb_t ma_pa_source_info_cb_t; +typedef pa_stream_success_cb_t ma_pa_stream_success_cb_t; +typedef pa_stream_request_cb_t ma_pa_stream_request_cb_t; +typedef pa_free_cb_t ma_pa_free_cb_t; +#else +#define MA_PA_OK 0 +#define MA_PA_ERR_ACCESS 1 +#define MA_PA_ERR_INVALID 2 +#define MA_PA_ERR_NOENTITY 5 + +#define MA_PA_CHANNELS_MAX 32 +#define MA_PA_RATE_MAX 384000 + +typedef int ma_pa_context_flags_t; +#define MA_PA_CONTEXT_NOFLAGS 0x00000000 +#define MA_PA_CONTEXT_NOAUTOSPAWN 0x00000001 +#define MA_PA_CONTEXT_NOFAIL 0x00000002 + +typedef int ma_pa_stream_flags_t; +#define MA_PA_STREAM_NOFLAGS 0x00000000 +#define MA_PA_STREAM_START_CORKED 0x00000001 +#define MA_PA_STREAM_INTERPOLATE_TIMING 0x00000002 +#define MA_PA_STREAM_NOT_MONOTONIC 0x00000004 +#define MA_PA_STREAM_AUTO_TIMING_UPDATE 0x00000008 +#define MA_PA_STREAM_NO_REMAP_CHANNELS 0x00000010 +#define MA_PA_STREAM_NO_REMIX_CHANNELS 0x00000020 +#define MA_PA_STREAM_FIX_FORMAT 0x00000040 +#define MA_PA_STREAM_FIX_RATE 0x00000080 +#define MA_PA_STREAM_FIX_CHANNELS 0x00000100 +#define MA_PA_STREAM_DONT_MOVE 0x00000200 +#define MA_PA_STREAM_VARIABLE_RATE 0x00000400 +#define MA_PA_STREAM_PEAK_DETECT 0x00000800 +#define MA_PA_STREAM_START_MUTED 0x00001000 +#define MA_PA_STREAM_ADJUST_LATENCY 0x00002000 +#define MA_PA_STREAM_EARLY_REQUESTS 0x00004000 +#define MA_PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND 0x00008000 +#define MA_PA_STREAM_START_UNMUTED 0x00010000 +#define MA_PA_STREAM_FAIL_ON_SUSPEND 0x00020000 +#define MA_PA_STREAM_RELATIVE_VOLUME 0x00040000 +#define MA_PA_STREAM_PASSTHROUGH 0x00080000 + +typedef int ma_pa_sink_flags_t; +#define MA_PA_SINK_NOFLAGS 0x00000000 +#define MA_PA_SINK_HW_VOLUME_CTRL 0x00000001 +#define MA_PA_SINK_LATENCY 0x00000002 +#define MA_PA_SINK_HARDWARE 0x00000004 +#define MA_PA_SINK_NETWORK 0x00000008 +#define MA_PA_SINK_HW_MUTE_CTRL 0x00000010 +#define MA_PA_SINK_DECIBEL_VOLUME 0x00000020 +#define MA_PA_SINK_FLAT_VOLUME 0x00000040 +#define MA_PA_SINK_DYNAMIC_LATENCY 0x00000080 +#define MA_PA_SINK_SET_FORMATS 0x00000100 + +typedef int ma_pa_source_flags_t; +#define MA_PA_SOURCE_NOFLAGS 0x00000000 +#define MA_PA_SOURCE_HW_VOLUME_CTRL 0x00000001 +#define MA_PA_SOURCE_LATENCY 0x00000002 +#define MA_PA_SOURCE_HARDWARE 0x00000004 +#define MA_PA_SOURCE_NETWORK 0x00000008 +#define MA_PA_SOURCE_HW_MUTE_CTRL 0x00000010 +#define MA_PA_SOURCE_DECIBEL_VOLUME 0x00000020 +#define MA_PA_SOURCE_DYNAMIC_LATENCY 0x00000040 +#define MA_PA_SOURCE_FLAT_VOLUME 0x00000080 + +typedef int ma_pa_context_state_t; +#define MA_PA_CONTEXT_UNCONNECTED 0 +#define MA_PA_CONTEXT_CONNECTING 1 +#define MA_PA_CONTEXT_AUTHORIZING 2 +#define MA_PA_CONTEXT_SETTING_NAME 3 +#define MA_PA_CONTEXT_READY 4 +#define MA_PA_CONTEXT_FAILED 5 +#define MA_PA_CONTEXT_TERMINATED 6 + +typedef int ma_pa_stream_state_t; +#define MA_PA_STREAM_UNCONNECTED 0 +#define MA_PA_STREAM_CREATING 1 +#define MA_PA_STREAM_READY 2 +#define MA_PA_STREAM_FAILED 3 +#define MA_PA_STREAM_TERMINATED 4 + +typedef int ma_pa_operation_state_t; +#define MA_PA_OPERATION_RUNNING 0 +#define MA_PA_OPERATION_DONE 1 +#define MA_PA_OPERATION_CANCELLED 2 + +typedef int ma_pa_sink_state_t; +#define MA_PA_SINK_INVALID_STATE -1 +#define MA_PA_SINK_RUNNING 0 +#define MA_PA_SINK_IDLE 1 +#define MA_PA_SINK_SUSPENDED 2 + +typedef int ma_pa_source_state_t; +#define MA_PA_SOURCE_INVALID_STATE -1 +#define MA_PA_SOURCE_RUNNING 0 +#define MA_PA_SOURCE_IDLE 1 +#define MA_PA_SOURCE_SUSPENDED 2 + +typedef int ma_pa_seek_mode_t; +#define MA_PA_SEEK_RELATIVE 0 +#define MA_PA_SEEK_ABSOLUTE 1 +#define MA_PA_SEEK_RELATIVE_ON_READ 2 +#define MA_PA_SEEK_RELATIVE_END 3 + +typedef int ma_pa_channel_position_t; +#define MA_PA_CHANNEL_POSITION_INVALID -1 +#define MA_PA_CHANNEL_POSITION_MONO 0 +#define MA_PA_CHANNEL_POSITION_FRONT_LEFT 1 +#define MA_PA_CHANNEL_POSITION_FRONT_RIGHT 2 +#define MA_PA_CHANNEL_POSITION_FRONT_CENTER 3 +#define MA_PA_CHANNEL_POSITION_REAR_CENTER 4 +#define MA_PA_CHANNEL_POSITION_REAR_LEFT 5 +#define MA_PA_CHANNEL_POSITION_REAR_RIGHT 6 +#define MA_PA_CHANNEL_POSITION_LFE 7 +#define MA_PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER 8 +#define MA_PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER 9 +#define MA_PA_CHANNEL_POSITION_SIDE_LEFT 10 +#define MA_PA_CHANNEL_POSITION_SIDE_RIGHT 11 +#define MA_PA_CHANNEL_POSITION_AUX0 12 +#define MA_PA_CHANNEL_POSITION_AUX1 13 +#define MA_PA_CHANNEL_POSITION_AUX2 14 +#define MA_PA_CHANNEL_POSITION_AUX3 15 +#define MA_PA_CHANNEL_POSITION_AUX4 16 +#define MA_PA_CHANNEL_POSITION_AUX5 17 +#define MA_PA_CHANNEL_POSITION_AUX6 18 +#define MA_PA_CHANNEL_POSITION_AUX7 19 +#define MA_PA_CHANNEL_POSITION_AUX8 20 +#define MA_PA_CHANNEL_POSITION_AUX9 21 +#define MA_PA_CHANNEL_POSITION_AUX10 22 +#define MA_PA_CHANNEL_POSITION_AUX11 23 +#define MA_PA_CHANNEL_POSITION_AUX12 24 +#define MA_PA_CHANNEL_POSITION_AUX13 25 +#define MA_PA_CHANNEL_POSITION_AUX14 26 +#define MA_PA_CHANNEL_POSITION_AUX15 27 +#define MA_PA_CHANNEL_POSITION_AUX16 28 +#define MA_PA_CHANNEL_POSITION_AUX17 29 +#define MA_PA_CHANNEL_POSITION_AUX18 30 +#define MA_PA_CHANNEL_POSITION_AUX19 31 +#define MA_PA_CHANNEL_POSITION_AUX20 32 +#define MA_PA_CHANNEL_POSITION_AUX21 33 +#define MA_PA_CHANNEL_POSITION_AUX22 34 +#define MA_PA_CHANNEL_POSITION_AUX23 35 +#define MA_PA_CHANNEL_POSITION_AUX24 36 +#define MA_PA_CHANNEL_POSITION_AUX25 37 +#define MA_PA_CHANNEL_POSITION_AUX26 38 +#define MA_PA_CHANNEL_POSITION_AUX27 39 +#define MA_PA_CHANNEL_POSITION_AUX28 40 +#define MA_PA_CHANNEL_POSITION_AUX29 41 +#define MA_PA_CHANNEL_POSITION_AUX30 42 +#define MA_PA_CHANNEL_POSITION_AUX31 43 +#define MA_PA_CHANNEL_POSITION_TOP_CENTER 44 +#define MA_PA_CHANNEL_POSITION_TOP_FRONT_LEFT 45 +#define MA_PA_CHANNEL_POSITION_TOP_FRONT_RIGHT 46 +#define MA_PA_CHANNEL_POSITION_TOP_FRONT_CENTER 47 +#define MA_PA_CHANNEL_POSITION_TOP_REAR_LEFT 48 +#define MA_PA_CHANNEL_POSITION_TOP_REAR_RIGHT 49 +#define MA_PA_CHANNEL_POSITION_TOP_REAR_CENTER 50 +#define MA_PA_CHANNEL_POSITION_LEFT MA_PA_CHANNEL_POSITION_FRONT_LEFT +#define MA_PA_CHANNEL_POSITION_RIGHT MA_PA_CHANNEL_POSITION_FRONT_RIGHT +#define MA_PA_CHANNEL_POSITION_CENTER MA_PA_CHANNEL_POSITION_FRONT_CENTER +#define MA_PA_CHANNEL_POSITION_SUBWOOFER MA_PA_CHANNEL_POSITION_LFE + +typedef int ma_pa_channel_map_def_t; +#define MA_PA_CHANNEL_MAP_AIFF 0 +#define MA_PA_CHANNEL_MAP_ALSA 1 +#define MA_PA_CHANNEL_MAP_AUX 2 +#define MA_PA_CHANNEL_MAP_WAVEEX 3 +#define MA_PA_CHANNEL_MAP_OSS 4 +#define MA_PA_CHANNEL_MAP_DEFAULT MA_PA_CHANNEL_MAP_AIFF + +typedef int ma_pa_sample_format_t; +#define MA_PA_SAMPLE_INVALID -1 +#define MA_PA_SAMPLE_U8 0 +#define MA_PA_SAMPLE_ALAW 1 +#define MA_PA_SAMPLE_ULAW 2 +#define MA_PA_SAMPLE_S16LE 3 +#define MA_PA_SAMPLE_S16BE 4 +#define MA_PA_SAMPLE_FLOAT32LE 5 +#define MA_PA_SAMPLE_FLOAT32BE 6 +#define MA_PA_SAMPLE_S32LE 7 +#define MA_PA_SAMPLE_S32BE 8 +#define MA_PA_SAMPLE_S24LE 9 +#define MA_PA_SAMPLE_S24BE 10 +#define MA_PA_SAMPLE_S24_32LE 11 +#define MA_PA_SAMPLE_S24_32BE 12 + +typedef struct ma_pa_mainloop ma_pa_mainloop; +typedef struct ma_pa_threaded_mainloop ma_pa_threaded_mainloop; +typedef struct ma_pa_mainloop_api ma_pa_mainloop_api; +typedef struct ma_pa_context ma_pa_context; +typedef struct ma_pa_operation ma_pa_operation; +typedef struct ma_pa_stream ma_pa_stream; +typedef struct ma_pa_spawn_api ma_pa_spawn_api; + +typedef struct +{ + ma_uint32 maxlength; + ma_uint32 tlength; + ma_uint32 prebuf; + ma_uint32 minreq; + ma_uint32 fragsize; +} ma_pa_buffer_attr; + +typedef struct +{ + ma_uint8 channels; + ma_pa_channel_position_t map[MA_PA_CHANNELS_MAX]; +} ma_pa_channel_map; + +typedef struct +{ + ma_uint8 channels; + ma_uint32 values[MA_PA_CHANNELS_MAX]; +} ma_pa_cvolume; + +typedef struct +{ + ma_pa_sample_format_t format; + ma_uint32 rate; + ma_uint8 channels; +} ma_pa_sample_spec; + +typedef struct +{ + const char* name; + ma_uint32 index; + const char* description; + ma_pa_sample_spec sample_spec; + ma_pa_channel_map channel_map; + ma_uint32 owner_module; + ma_pa_cvolume volume; + int mute; + ma_uint32 monitor_source; + const char* monitor_source_name; + ma_uint64 latency; + const char* driver; + ma_pa_sink_flags_t flags; + void* proplist; + ma_uint64 configured_latency; + ma_uint32 base_volume; + ma_pa_sink_state_t state; + ma_uint32 n_volume_steps; + ma_uint32 card; + ma_uint32 n_ports; + void** ports; + void* active_port; + ma_uint8 n_formats; + void** formats; +} ma_pa_sink_info; + +typedef struct +{ + const char *name; + ma_uint32 index; + const char *description; + ma_pa_sample_spec sample_spec; + ma_pa_channel_map channel_map; + ma_uint32 owner_module; + ma_pa_cvolume volume; + int mute; + ma_uint32 monitor_of_sink; + const char *monitor_of_sink_name; + ma_uint64 latency; + const char *driver; + ma_pa_source_flags_t flags; + void* proplist; + ma_uint64 configured_latency; + ma_uint32 base_volume; + ma_pa_source_state_t state; + ma_uint32 n_volume_steps; + ma_uint32 card; + ma_uint32 n_ports; + void** ports; + void* active_port; + ma_uint8 n_formats; + void** formats; +} ma_pa_source_info; + +typedef void (* ma_pa_context_notify_cb_t)(ma_pa_context* c, void* userdata); +typedef void (* ma_pa_sink_info_cb_t) (ma_pa_context* c, const ma_pa_sink_info* i, int eol, void* userdata); +typedef void (* ma_pa_source_info_cb_t) (ma_pa_context* c, const ma_pa_source_info* i, int eol, void* userdata); +typedef void (* ma_pa_stream_success_cb_t)(ma_pa_stream* s, int success, void* userdata); +typedef void (* ma_pa_stream_request_cb_t)(ma_pa_stream* s, size_t nbytes, void* userdata); +typedef void (* ma_pa_free_cb_t) (void* p); +#endif + + +typedef ma_pa_mainloop* (* ma_pa_mainloop_new_proc) (void); +typedef void (* ma_pa_mainloop_free_proc) (ma_pa_mainloop* m); +typedef void (* ma_pa_mainloop_quit_proc) (ma_pa_mainloop* m, int retval); +typedef ma_pa_mainloop_api* (* ma_pa_mainloop_get_api_proc) (ma_pa_mainloop* m); +typedef int (* ma_pa_mainloop_iterate_proc) (ma_pa_mainloop* m, int block, int* retval); +typedef void (* ma_pa_mainloop_wakeup_proc) (ma_pa_mainloop* m); +typedef ma_pa_threaded_mainloop* (* ma_pa_threaded_mainloop_new_proc) (void); +typedef void (* ma_pa_threaded_mainloop_free_proc) (ma_pa_threaded_mainloop* m); +typedef int (* ma_pa_threaded_mainloop_start_proc) (ma_pa_threaded_mainloop* m); +typedef void (* ma_pa_threaded_mainloop_stop_proc) (ma_pa_threaded_mainloop* m); +typedef void (* ma_pa_threaded_mainloop_lock_proc) (ma_pa_threaded_mainloop* m); +typedef void (* ma_pa_threaded_mainloop_unlock_proc) (ma_pa_threaded_mainloop* m); +typedef void (* ma_pa_threaded_mainloop_wait_proc) (ma_pa_threaded_mainloop* m); +typedef void (* ma_pa_threaded_mainloop_signal_proc) (ma_pa_threaded_mainloop* m, int wait_for_accept); +typedef void (* ma_pa_threaded_mainloop_accept_proc) (ma_pa_threaded_mainloop* m); +typedef int (* ma_pa_threaded_mainloop_get_retval_proc) (ma_pa_threaded_mainloop* m); +typedef ma_pa_mainloop_api* (* ma_pa_threaded_mainloop_get_api_proc) (ma_pa_threaded_mainloop* m); +typedef int (* ma_pa_threaded_mainloop_in_thread_proc) (ma_pa_threaded_mainloop* m); +typedef void (* ma_pa_threaded_mainloop_set_name_proc) (ma_pa_threaded_mainloop* m, const char* name); +typedef ma_pa_context* (* ma_pa_context_new_proc) (ma_pa_mainloop_api* mainloop, const char* name); +typedef void (* ma_pa_context_unref_proc) (ma_pa_context* c); +typedef int (* ma_pa_context_connect_proc) (ma_pa_context* c, const char* server, ma_pa_context_flags_t flags, const ma_pa_spawn_api* api); +typedef void (* ma_pa_context_disconnect_proc) (ma_pa_context* c); +typedef void (* ma_pa_context_set_state_callback_proc) (ma_pa_context* c, ma_pa_context_notify_cb_t cb, void* userdata); +typedef ma_pa_context_state_t (* ma_pa_context_get_state_proc) (ma_pa_context* c); +typedef ma_pa_operation* (* ma_pa_context_get_sink_info_list_proc) (ma_pa_context* c, ma_pa_sink_info_cb_t cb, void* userdata); +typedef ma_pa_operation* (* ma_pa_context_get_source_info_list_proc) (ma_pa_context* c, ma_pa_source_info_cb_t cb, void* userdata); +typedef ma_pa_operation* (* ma_pa_context_get_sink_info_by_name_proc) (ma_pa_context* c, const char* name, ma_pa_sink_info_cb_t cb, void* userdata); +typedef ma_pa_operation* (* ma_pa_context_get_source_info_by_name_proc)(ma_pa_context* c, const char* name, ma_pa_source_info_cb_t cb, void* userdata); +typedef void (* ma_pa_operation_unref_proc) (ma_pa_operation* o); +typedef ma_pa_operation_state_t (* ma_pa_operation_get_state_proc) (ma_pa_operation* o); +typedef ma_pa_channel_map* (* ma_pa_channel_map_init_extend_proc) (ma_pa_channel_map* m, unsigned channels, ma_pa_channel_map_def_t def); +typedef int (* ma_pa_channel_map_valid_proc) (const ma_pa_channel_map* m); +typedef int (* ma_pa_channel_map_compatible_proc) (const ma_pa_channel_map* m, const ma_pa_sample_spec* ss); +typedef ma_pa_stream* (* ma_pa_stream_new_proc) (ma_pa_context* c, const char* name, const ma_pa_sample_spec* ss, const ma_pa_channel_map* map); +typedef void (* ma_pa_stream_unref_proc) (ma_pa_stream* s); +typedef int (* ma_pa_stream_connect_playback_proc) (ma_pa_stream* s, const char* dev, const ma_pa_buffer_attr* attr, ma_pa_stream_flags_t flags, const ma_pa_cvolume* volume, ma_pa_stream* sync_stream); +typedef int (* ma_pa_stream_connect_record_proc) (ma_pa_stream* s, const char* dev, const ma_pa_buffer_attr* attr, ma_pa_stream_flags_t flags); +typedef int (* ma_pa_stream_disconnect_proc) (ma_pa_stream* s); +typedef ma_pa_stream_state_t (* ma_pa_stream_get_state_proc) (ma_pa_stream* s); +typedef const ma_pa_sample_spec* (* ma_pa_stream_get_sample_spec_proc) (ma_pa_stream* s); +typedef const ma_pa_channel_map* (* ma_pa_stream_get_channel_map_proc) (ma_pa_stream* s); +typedef const ma_pa_buffer_attr* (* ma_pa_stream_get_buffer_attr_proc) (ma_pa_stream* s); +typedef ma_pa_operation* (* ma_pa_stream_set_buffer_attr_proc) (ma_pa_stream* s, const ma_pa_buffer_attr* attr, ma_pa_stream_success_cb_t cb, void* userdata); +typedef const char* (* ma_pa_stream_get_device_name_proc) (ma_pa_stream* s); +typedef void (* ma_pa_stream_set_write_callback_proc) (ma_pa_stream* s, ma_pa_stream_request_cb_t cb, void* userdata); +typedef void (* ma_pa_stream_set_read_callback_proc) (ma_pa_stream* s, ma_pa_stream_request_cb_t cb, void* userdata); +typedef ma_pa_operation* (* ma_pa_stream_flush_proc) (ma_pa_stream* s, ma_pa_stream_success_cb_t cb, void* userdata); +typedef ma_pa_operation* (* ma_pa_stream_drain_proc) (ma_pa_stream* s, ma_pa_stream_success_cb_t cb, void* userdata); +typedef int (* ma_pa_stream_is_corked_proc) (ma_pa_stream* s); +typedef ma_pa_operation* (* ma_pa_stream_cork_proc) (ma_pa_stream* s, int b, ma_pa_stream_success_cb_t cb, void* userdata); +typedef ma_pa_operation* (* ma_pa_stream_trigger_proc) (ma_pa_stream* s, ma_pa_stream_success_cb_t cb, void* userdata); +typedef int (* ma_pa_stream_begin_write_proc) (ma_pa_stream* s, void** data, size_t* nbytes); +typedef int (* ma_pa_stream_write_proc) (ma_pa_stream* s, const void* data, size_t nbytes, ma_pa_free_cb_t free_cb, int64_t offset, ma_pa_seek_mode_t seek); +typedef int (* ma_pa_stream_peek_proc) (ma_pa_stream* s, const void** data, size_t* nbytes); +typedef int (* ma_pa_stream_drop_proc) (ma_pa_stream* s); +typedef size_t (* ma_pa_stream_writable_size_proc) (ma_pa_stream* s); +typedef size_t (* ma_pa_stream_readable_size_proc) (ma_pa_stream* s); + +typedef struct +{ + ma_uint32 count; + ma_uint32 capacity; + ma_device_info* pInfo; +} ma_pulse_device_enum_data; + +static ma_result ma_result_from_pulse(int result) +{ + if (result < 0) { + return MA_ERROR; + } + + switch (result) { + case MA_PA_OK: return MA_SUCCESS; + case MA_PA_ERR_ACCESS: return MA_ACCESS_DENIED; + case MA_PA_ERR_INVALID: return MA_INVALID_ARGS; + case MA_PA_ERR_NOENTITY: return MA_NO_DEVICE; + default: return MA_ERROR; + } +} + +#if 0 +static ma_pa_sample_format_t ma_format_to_pulse(ma_format format) +{ + if (ma_is_little_endian()) { + switch (format) { + case ma_format_s16: return MA_PA_SAMPLE_S16LE; + case ma_format_s24: return MA_PA_SAMPLE_S24LE; + case ma_format_s32: return MA_PA_SAMPLE_S32LE; + case ma_format_f32: return MA_PA_SAMPLE_FLOAT32LE; + default: break; + } + } else { + switch (format) { + case ma_format_s16: return MA_PA_SAMPLE_S16BE; + case ma_format_s24: return MA_PA_SAMPLE_S24BE; + case ma_format_s32: return MA_PA_SAMPLE_S32BE; + case ma_format_f32: return MA_PA_SAMPLE_FLOAT32BE; + default: break; + } + } + + /* Endian agnostic. */ + switch (format) { + case ma_format_u8: return MA_PA_SAMPLE_U8; + default: return MA_PA_SAMPLE_INVALID; + } +} +#endif + +static ma_format ma_format_from_pulse(ma_pa_sample_format_t format) +{ + if (ma_is_little_endian()) { + switch (format) { + case MA_PA_SAMPLE_S16LE: return ma_format_s16; + case MA_PA_SAMPLE_S24LE: return ma_format_s24; + case MA_PA_SAMPLE_S32LE: return ma_format_s32; + case MA_PA_SAMPLE_FLOAT32LE: return ma_format_f32; + default: break; + } + } else { + switch (format) { + case MA_PA_SAMPLE_S16BE: return ma_format_s16; + case MA_PA_SAMPLE_S24BE: return ma_format_s24; + case MA_PA_SAMPLE_S32BE: return ma_format_s32; + case MA_PA_SAMPLE_FLOAT32BE: return ma_format_f32; + default: break; + } + } + + /* Endian agnostic. */ + switch (format) { + case MA_PA_SAMPLE_U8: return ma_format_u8; + default: return ma_format_unknown; + } +} + +static ma_channel ma_channel_position_from_pulse(ma_pa_channel_position_t position) +{ + switch (position) + { + case MA_PA_CHANNEL_POSITION_INVALID: return MA_CHANNEL_NONE; + case MA_PA_CHANNEL_POSITION_MONO: return MA_CHANNEL_MONO; + case MA_PA_CHANNEL_POSITION_FRONT_LEFT: return MA_CHANNEL_FRONT_LEFT; + case MA_PA_CHANNEL_POSITION_FRONT_RIGHT: return MA_CHANNEL_FRONT_RIGHT; + case MA_PA_CHANNEL_POSITION_FRONT_CENTER: return MA_CHANNEL_FRONT_CENTER; + case MA_PA_CHANNEL_POSITION_REAR_CENTER: return MA_CHANNEL_BACK_CENTER; + case MA_PA_CHANNEL_POSITION_REAR_LEFT: return MA_CHANNEL_BACK_LEFT; + case MA_PA_CHANNEL_POSITION_REAR_RIGHT: return MA_CHANNEL_BACK_RIGHT; + case MA_PA_CHANNEL_POSITION_LFE: return MA_CHANNEL_LFE; + case MA_PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER: return MA_CHANNEL_FRONT_LEFT_CENTER; + case MA_PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER: return MA_CHANNEL_FRONT_RIGHT_CENTER; + case MA_PA_CHANNEL_POSITION_SIDE_LEFT: return MA_CHANNEL_SIDE_LEFT; + case MA_PA_CHANNEL_POSITION_SIDE_RIGHT: return MA_CHANNEL_SIDE_RIGHT; + case MA_PA_CHANNEL_POSITION_AUX0: return MA_CHANNEL_AUX_0; + case MA_PA_CHANNEL_POSITION_AUX1: return MA_CHANNEL_AUX_1; + case MA_PA_CHANNEL_POSITION_AUX2: return MA_CHANNEL_AUX_2; + case MA_PA_CHANNEL_POSITION_AUX3: return MA_CHANNEL_AUX_3; + case MA_PA_CHANNEL_POSITION_AUX4: return MA_CHANNEL_AUX_4; + case MA_PA_CHANNEL_POSITION_AUX5: return MA_CHANNEL_AUX_5; + case MA_PA_CHANNEL_POSITION_AUX6: return MA_CHANNEL_AUX_6; + case MA_PA_CHANNEL_POSITION_AUX7: return MA_CHANNEL_AUX_7; + case MA_PA_CHANNEL_POSITION_AUX8: return MA_CHANNEL_AUX_8; + case MA_PA_CHANNEL_POSITION_AUX9: return MA_CHANNEL_AUX_9; + case MA_PA_CHANNEL_POSITION_AUX10: return MA_CHANNEL_AUX_10; + case MA_PA_CHANNEL_POSITION_AUX11: return MA_CHANNEL_AUX_11; + case MA_PA_CHANNEL_POSITION_AUX12: return MA_CHANNEL_AUX_12; + case MA_PA_CHANNEL_POSITION_AUX13: return MA_CHANNEL_AUX_13; + case MA_PA_CHANNEL_POSITION_AUX14: return MA_CHANNEL_AUX_14; + case MA_PA_CHANNEL_POSITION_AUX15: return MA_CHANNEL_AUX_15; + case MA_PA_CHANNEL_POSITION_AUX16: return MA_CHANNEL_AUX_16; + case MA_PA_CHANNEL_POSITION_AUX17: return MA_CHANNEL_AUX_17; + case MA_PA_CHANNEL_POSITION_AUX18: return MA_CHANNEL_AUX_18; + case MA_PA_CHANNEL_POSITION_AUX19: return MA_CHANNEL_AUX_19; + case MA_PA_CHANNEL_POSITION_AUX20: return MA_CHANNEL_AUX_20; + case MA_PA_CHANNEL_POSITION_AUX21: return MA_CHANNEL_AUX_21; + case MA_PA_CHANNEL_POSITION_AUX22: return MA_CHANNEL_AUX_22; + case MA_PA_CHANNEL_POSITION_AUX23: return MA_CHANNEL_AUX_23; + case MA_PA_CHANNEL_POSITION_AUX24: return MA_CHANNEL_AUX_24; + case MA_PA_CHANNEL_POSITION_AUX25: return MA_CHANNEL_AUX_25; + case MA_PA_CHANNEL_POSITION_AUX26: return MA_CHANNEL_AUX_26; + case MA_PA_CHANNEL_POSITION_AUX27: return MA_CHANNEL_AUX_27; + case MA_PA_CHANNEL_POSITION_AUX28: return MA_CHANNEL_AUX_28; + case MA_PA_CHANNEL_POSITION_AUX29: return MA_CHANNEL_AUX_29; + case MA_PA_CHANNEL_POSITION_AUX30: return MA_CHANNEL_AUX_30; + case MA_PA_CHANNEL_POSITION_AUX31: return MA_CHANNEL_AUX_31; + case MA_PA_CHANNEL_POSITION_TOP_CENTER: return MA_CHANNEL_TOP_CENTER; + case MA_PA_CHANNEL_POSITION_TOP_FRONT_LEFT: return MA_CHANNEL_TOP_FRONT_LEFT; + case MA_PA_CHANNEL_POSITION_TOP_FRONT_RIGHT: return MA_CHANNEL_TOP_FRONT_RIGHT; + case MA_PA_CHANNEL_POSITION_TOP_FRONT_CENTER: return MA_CHANNEL_TOP_FRONT_CENTER; + case MA_PA_CHANNEL_POSITION_TOP_REAR_LEFT: return MA_CHANNEL_TOP_BACK_LEFT; + case MA_PA_CHANNEL_POSITION_TOP_REAR_RIGHT: return MA_CHANNEL_TOP_BACK_RIGHT; + case MA_PA_CHANNEL_POSITION_TOP_REAR_CENTER: return MA_CHANNEL_TOP_BACK_CENTER; + default: return MA_CHANNEL_NONE; + } +} + +#if 0 +static ma_pa_channel_position_t ma_channel_position_to_pulse(ma_channel position) +{ + switch (position) + { + case MA_CHANNEL_NONE: return MA_PA_CHANNEL_POSITION_INVALID; + case MA_CHANNEL_FRONT_LEFT: return MA_PA_CHANNEL_POSITION_FRONT_LEFT; + case MA_CHANNEL_FRONT_RIGHT: return MA_PA_CHANNEL_POSITION_FRONT_RIGHT; + case MA_CHANNEL_FRONT_CENTER: return MA_PA_CHANNEL_POSITION_FRONT_CENTER; + case MA_CHANNEL_LFE: return MA_PA_CHANNEL_POSITION_LFE; + case MA_CHANNEL_BACK_LEFT: return MA_PA_CHANNEL_POSITION_REAR_LEFT; + case MA_CHANNEL_BACK_RIGHT: return MA_PA_CHANNEL_POSITION_REAR_RIGHT; + case MA_CHANNEL_FRONT_LEFT_CENTER: return MA_PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER; + case MA_CHANNEL_FRONT_RIGHT_CENTER: return MA_PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER; + case MA_CHANNEL_BACK_CENTER: return MA_PA_CHANNEL_POSITION_REAR_CENTER; + case MA_CHANNEL_SIDE_LEFT: return MA_PA_CHANNEL_POSITION_SIDE_LEFT; + case MA_CHANNEL_SIDE_RIGHT: return MA_PA_CHANNEL_POSITION_SIDE_RIGHT; + case MA_CHANNEL_TOP_CENTER: return MA_PA_CHANNEL_POSITION_TOP_CENTER; + case MA_CHANNEL_TOP_FRONT_LEFT: return MA_PA_CHANNEL_POSITION_TOP_FRONT_LEFT; + case MA_CHANNEL_TOP_FRONT_CENTER: return MA_PA_CHANNEL_POSITION_TOP_FRONT_CENTER; + case MA_CHANNEL_TOP_FRONT_RIGHT: return MA_PA_CHANNEL_POSITION_TOP_FRONT_RIGHT; + case MA_CHANNEL_TOP_BACK_LEFT: return MA_PA_CHANNEL_POSITION_TOP_REAR_LEFT; + case MA_CHANNEL_TOP_BACK_CENTER: return MA_PA_CHANNEL_POSITION_TOP_REAR_CENTER; + case MA_CHANNEL_TOP_BACK_RIGHT: return MA_PA_CHANNEL_POSITION_TOP_REAR_RIGHT; + case MA_CHANNEL_19: return MA_PA_CHANNEL_POSITION_AUX18; + case MA_CHANNEL_20: return MA_PA_CHANNEL_POSITION_AUX19; + case MA_CHANNEL_21: return MA_PA_CHANNEL_POSITION_AUX20; + case MA_CHANNEL_22: return MA_PA_CHANNEL_POSITION_AUX21; + case MA_CHANNEL_23: return MA_PA_CHANNEL_POSITION_AUX22; + case MA_CHANNEL_24: return MA_PA_CHANNEL_POSITION_AUX23; + case MA_CHANNEL_25: return MA_PA_CHANNEL_POSITION_AUX24; + case MA_CHANNEL_26: return MA_PA_CHANNEL_POSITION_AUX25; + case MA_CHANNEL_27: return MA_PA_CHANNEL_POSITION_AUX26; + case MA_CHANNEL_28: return MA_PA_CHANNEL_POSITION_AUX27; + case MA_CHANNEL_29: return MA_PA_CHANNEL_POSITION_AUX28; + case MA_CHANNEL_30: return MA_PA_CHANNEL_POSITION_AUX29; + case MA_CHANNEL_31: return MA_PA_CHANNEL_POSITION_AUX30; + case MA_CHANNEL_32: return MA_PA_CHANNEL_POSITION_AUX31; + default: return (ma_pa_channel_position_t)position; + } +} +#endif + +static ma_result ma_wait_for_operation__pulse(ma_context* pContext, ma_pa_operation* pOP) +{ + int resultPA; + ma_pa_operation_state_t state; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pOP != NULL); + + for (;;) { + state = ((ma_pa_operation_get_state_proc)pContext->pulse.pa_operation_get_state)(pOP); + if (state != MA_PA_OPERATION_RUNNING) { + break; /* Done. */ + } + + resultPA = ((ma_pa_mainloop_iterate_proc)pContext->pulse.pa_mainloop_iterate)((ma_pa_mainloop*)pContext->pulse.pMainLoop, 1, NULL); + if (resultPA < 0) { + return ma_result_from_pulse(resultPA); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_wait_for_operation_and_unref__pulse(ma_context* pContext, ma_pa_operation* pOP) +{ + ma_result result; + + if (pOP == NULL) { + return MA_INVALID_ARGS; + } + + result = ma_wait_for_operation__pulse(pContext, pOP); + ((ma_pa_operation_unref_proc)pContext->pulse.pa_operation_unref)(pOP); + + return result; +} + +static ma_result ma_context_wait_for_pa_context_to_connect__pulse(ma_context* pContext) +{ + int resultPA; + ma_pa_context_state_t state; + + for (;;) { + state = ((ma_pa_context_get_state_proc)pContext->pulse.pa_context_get_state)((ma_pa_context*)pContext->pulse.pPulseContext); + if (state == MA_PA_CONTEXT_READY) { + break; /* Done. */ + } + + if (state == MA_PA_CONTEXT_FAILED || state == MA_PA_CONTEXT_TERMINATED) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[PulseAudio] An error occurred while connecting the PulseAudio context.", MA_ERROR); + } + + resultPA = ((ma_pa_mainloop_iterate_proc)pContext->pulse.pa_mainloop_iterate)((ma_pa_mainloop*)pContext->pulse.pMainLoop, 1, NULL); + if (resultPA < 0) { + return ma_result_from_pulse(resultPA); + } + } + + /* Should never get here. */ + return MA_SUCCESS; +} + +static ma_result ma_context_wait_for_pa_stream_to_connect__pulse(ma_context* pContext, ma_pa_stream* pStream) +{ + int resultPA; + ma_pa_stream_state_t state; + + for (;;) { + state = ((ma_pa_stream_get_state_proc)pContext->pulse.pa_stream_get_state)(pStream); + if (state == MA_PA_STREAM_READY) { + break; /* Done. */ + } + + if (state == MA_PA_STREAM_FAILED || state == MA_PA_STREAM_TERMINATED) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[PulseAudio] An error occurred while connecting the PulseAudio stream.", MA_ERROR); + } + + resultPA = ((ma_pa_mainloop_iterate_proc)pContext->pulse.pa_mainloop_iterate)((ma_pa_mainloop*)pContext->pulse.pMainLoop, 1, NULL); + if (resultPA < 0) { + return ma_result_from_pulse(resultPA); + } + } + + return MA_SUCCESS; +} + + +static void ma_device_sink_info_callback(ma_pa_context* pPulseContext, const ma_pa_sink_info* pInfo, int endOfList, void* pUserData) +{ + ma_pa_sink_info* pInfoOut; + + if (endOfList > 0) { + return; + } + + pInfoOut = (ma_pa_sink_info*)pUserData; + MA_ASSERT(pInfoOut != NULL); + + *pInfoOut = *pInfo; + + (void)pPulseContext; /* Unused. */ +} + +static void ma_device_source_info_callback(ma_pa_context* pPulseContext, const ma_pa_source_info* pInfo, int endOfList, void* pUserData) +{ + ma_pa_source_info* pInfoOut; + + if (endOfList > 0) { + return; + } + + pInfoOut = (ma_pa_source_info*)pUserData; + MA_ASSERT(pInfoOut != NULL); + + *pInfoOut = *pInfo; + + (void)pPulseContext; /* Unused. */ +} + +static void ma_device_sink_name_callback(ma_pa_context* pPulseContext, const ma_pa_sink_info* pInfo, int endOfList, void* pUserData) +{ + ma_device* pDevice; + + if (endOfList > 0) { + return; + } + + pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + ma_strncpy_s(pDevice->playback.name, sizeof(pDevice->playback.name), pInfo->description, (size_t)-1); + + (void)pPulseContext; /* Unused. */ +} + +static void ma_device_source_name_callback(ma_pa_context* pPulseContext, const ma_pa_source_info* pInfo, int endOfList, void* pUserData) +{ + ma_device* pDevice; + + if (endOfList > 0) { + return; + } + + pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + ma_strncpy_s(pDevice->capture.name, sizeof(pDevice->capture.name), pInfo->description, (size_t)-1); + + (void)pPulseContext; /* Unused. */ +} + + +static ma_result ma_context_get_sink_info__pulse(ma_context* pContext, const char* pDeviceName, ma_pa_sink_info* pSinkInfo) +{ + ma_pa_operation* pOP; + + pOP = ((ma_pa_context_get_sink_info_by_name_proc)pContext->pulse.pa_context_get_sink_info_by_name)((ma_pa_context*)pContext->pulse.pPulseContext, pDeviceName, ma_device_sink_info_callback, pSinkInfo); + if (pOP == NULL) { + return MA_ERROR; + } + + return ma_wait_for_operation_and_unref__pulse(pContext, pOP); +} + +static ma_result ma_context_get_source_info__pulse(ma_context* pContext, const char* pDeviceName, ma_pa_source_info* pSourceInfo) +{ + ma_pa_operation* pOP; + + pOP = ((ma_pa_context_get_source_info_by_name_proc)pContext->pulse.pa_context_get_source_info_by_name)((ma_pa_context*)pContext->pulse.pPulseContext, pDeviceName, ma_device_source_info_callback, pSourceInfo); + if (pOP == NULL) { + return MA_ERROR; + } + + return ma_wait_for_operation_and_unref__pulse(pContext, pOP);; +} + +static ma_result ma_context_get_default_device_index__pulse(ma_context* pContext, ma_device_type deviceType, ma_uint32* pIndex) +{ + ma_result result; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pIndex != NULL); + + if (pIndex != NULL) { + *pIndex = (ma_uint32)-1; + } + + if (deviceType == ma_device_type_playback) { + ma_pa_sink_info sinkInfo; + result = ma_context_get_sink_info__pulse(pContext, NULL, &sinkInfo); + if (result != MA_SUCCESS) { + return result; + } + + if (pIndex != NULL) { + *pIndex = sinkInfo.index; + } + } + + if (deviceType == ma_device_type_capture) { + ma_pa_source_info sourceInfo; + result = ma_context_get_source_info__pulse(pContext, NULL, &sourceInfo); + if (result != MA_SUCCESS) { + return result; + } + + if (pIndex != NULL) { + *pIndex = sourceInfo.index; + } + } + + return MA_SUCCESS; +} + + +typedef struct +{ + ma_context* pContext; + ma_enum_devices_callback_proc callback; + void* pUserData; + ma_bool32 isTerminated; + ma_uint32 defaultDeviceIndexPlayback; + ma_uint32 defaultDeviceIndexCapture; +} ma_context_enumerate_devices_callback_data__pulse; + +static void ma_context_enumerate_devices_sink_callback__pulse(ma_pa_context* pPulseContext, const ma_pa_sink_info* pSinkInfo, int endOfList, void* pUserData) +{ + ma_context_enumerate_devices_callback_data__pulse* pData = (ma_context_enumerate_devices_callback_data__pulse*)pUserData; + ma_device_info deviceInfo; + + MA_ASSERT(pData != NULL); + + if (endOfList || pData->isTerminated) { + return; + } + + MA_ZERO_OBJECT(&deviceInfo); + + /* The name from PulseAudio is the ID for miniaudio. */ + if (pSinkInfo->name != NULL) { + ma_strncpy_s(deviceInfo.id.pulse, sizeof(deviceInfo.id.pulse), pSinkInfo->name, (size_t)-1); + } + + /* The description from PulseAudio is the name for miniaudio. */ + if (pSinkInfo->description != NULL) { + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), pSinkInfo->description, (size_t)-1); + } + + if (pSinkInfo->index == pData->defaultDeviceIndexPlayback) { + deviceInfo.isDefault = MA_TRUE; + } + + pData->isTerminated = !pData->callback(pData->pContext, ma_device_type_playback, &deviceInfo, pData->pUserData); + + (void)pPulseContext; /* Unused. */ +} + +static void ma_context_enumerate_devices_source_callback__pulse(ma_pa_context* pPulseContext, const ma_pa_source_info* pSourceInfo, int endOfList, void* pUserData) +{ + ma_context_enumerate_devices_callback_data__pulse* pData = (ma_context_enumerate_devices_callback_data__pulse*)pUserData; + ma_device_info deviceInfo; + + MA_ASSERT(pData != NULL); + + if (endOfList || pData->isTerminated) { + return; + } + + MA_ZERO_OBJECT(&deviceInfo); + + /* The name from PulseAudio is the ID for miniaudio. */ + if (pSourceInfo->name != NULL) { + ma_strncpy_s(deviceInfo.id.pulse, sizeof(deviceInfo.id.pulse), pSourceInfo->name, (size_t)-1); + } + + /* The description from PulseAudio is the name for miniaudio. */ + if (pSourceInfo->description != NULL) { + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), pSourceInfo->description, (size_t)-1); + } + + if (pSourceInfo->index == pData->defaultDeviceIndexCapture) { + deviceInfo.isDefault = MA_TRUE; + } + + pData->isTerminated = !pData->callback(pData->pContext, ma_device_type_capture, &deviceInfo, pData->pUserData); + + (void)pPulseContext; /* Unused. */ +} + +static ma_result ma_context_enumerate_devices__pulse(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_result result = MA_SUCCESS; + ma_context_enumerate_devices_callback_data__pulse callbackData; + ma_pa_operation* pOP = NULL; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + callbackData.pContext = pContext; + callbackData.callback = callback; + callbackData.pUserData = pUserData; + callbackData.isTerminated = MA_FALSE; + callbackData.defaultDeviceIndexPlayback = (ma_uint32)-1; + callbackData.defaultDeviceIndexCapture = (ma_uint32)-1; + + /* We need to get the index of the default devices. */ + ma_context_get_default_device_index__pulse(pContext, ma_device_type_playback, &callbackData.defaultDeviceIndexPlayback); + ma_context_get_default_device_index__pulse(pContext, ma_device_type_capture, &callbackData.defaultDeviceIndexCapture); + + /* Playback. */ + if (!callbackData.isTerminated) { + pOP = ((ma_pa_context_get_sink_info_list_proc)pContext->pulse.pa_context_get_sink_info_list)((ma_pa_context*)(pContext->pulse.pPulseContext), ma_context_enumerate_devices_sink_callback__pulse, &callbackData); + if (pOP == NULL) { + result = MA_ERROR; + goto done; + } + + result = ma_wait_for_operation__pulse(pContext, pOP); + ((ma_pa_operation_unref_proc)pContext->pulse.pa_operation_unref)(pOP); + + if (result != MA_SUCCESS) { + goto done; + } + } + + + /* Capture. */ + if (!callbackData.isTerminated) { + pOP = ((ma_pa_context_get_source_info_list_proc)pContext->pulse.pa_context_get_source_info_list)((ma_pa_context*)(pContext->pulse.pPulseContext), ma_context_enumerate_devices_source_callback__pulse, &callbackData); + if (pOP == NULL) { + result = MA_ERROR; + goto done; + } + + result = ma_wait_for_operation__pulse(pContext, pOP); + ((ma_pa_operation_unref_proc)pContext->pulse.pa_operation_unref)(pOP); + + if (result != MA_SUCCESS) { + goto done; + } + } + +done: + return result; +} + + +typedef struct +{ + ma_device_info* pDeviceInfo; + ma_uint32 defaultDeviceIndex; + ma_bool32 foundDevice; +} ma_context_get_device_info_callback_data__pulse; + +static void ma_context_get_device_info_sink_callback__pulse(ma_pa_context* pPulseContext, const ma_pa_sink_info* pInfo, int endOfList, void* pUserData) +{ + ma_context_get_device_info_callback_data__pulse* pData = (ma_context_get_device_info_callback_data__pulse*)pUserData; + + if (endOfList > 0) { + return; + } + + MA_ASSERT(pData != NULL); + pData->foundDevice = MA_TRUE; + + if (pInfo->name != NULL) { + ma_strncpy_s(pData->pDeviceInfo->id.pulse, sizeof(pData->pDeviceInfo->id.pulse), pInfo->name, (size_t)-1); + } + + if (pInfo->description != NULL) { + ma_strncpy_s(pData->pDeviceInfo->name, sizeof(pData->pDeviceInfo->name), pInfo->description, (size_t)-1); + } + + /* + We're just reporting a single data format here. I think technically PulseAudio might support + all formats, but I don't trust that PulseAudio will do *anything* right, so I'm just going to + report the "native" device format. + */ + pData->pDeviceInfo->nativeDataFormats[0].format = ma_format_from_pulse(pInfo->sample_spec.format); + pData->pDeviceInfo->nativeDataFormats[0].channels = pInfo->sample_spec.channels; + pData->pDeviceInfo->nativeDataFormats[0].sampleRate = pInfo->sample_spec.rate; + pData->pDeviceInfo->nativeDataFormats[0].flags = 0; + pData->pDeviceInfo->nativeDataFormatCount = 1; + + if (pData->defaultDeviceIndex == pInfo->index) { + pData->pDeviceInfo->isDefault = MA_TRUE; + } + + (void)pPulseContext; /* Unused. */ +} + +static void ma_context_get_device_info_source_callback__pulse(ma_pa_context* pPulseContext, const ma_pa_source_info* pInfo, int endOfList, void* pUserData) +{ + ma_context_get_device_info_callback_data__pulse* pData = (ma_context_get_device_info_callback_data__pulse*)pUserData; + + if (endOfList > 0) { + return; + } + + MA_ASSERT(pData != NULL); + pData->foundDevice = MA_TRUE; + + if (pInfo->name != NULL) { + ma_strncpy_s(pData->pDeviceInfo->id.pulse, sizeof(pData->pDeviceInfo->id.pulse), pInfo->name, (size_t)-1); + } + + if (pInfo->description != NULL) { + ma_strncpy_s(pData->pDeviceInfo->name, sizeof(pData->pDeviceInfo->name), pInfo->description, (size_t)-1); + } + + /* + We're just reporting a single data format here. I think technically PulseAudio might support + all formats, but I don't trust that PulseAudio will do *anything* right, so I'm just going to + report the "native" device format. + */ + pData->pDeviceInfo->nativeDataFormats[0].format = ma_format_from_pulse(pInfo->sample_spec.format); + pData->pDeviceInfo->nativeDataFormats[0].channels = pInfo->sample_spec.channels; + pData->pDeviceInfo->nativeDataFormats[0].sampleRate = pInfo->sample_spec.rate; + pData->pDeviceInfo->nativeDataFormats[0].flags = 0; + pData->pDeviceInfo->nativeDataFormatCount = 1; + + if (pData->defaultDeviceIndex == pInfo->index) { + pData->pDeviceInfo->isDefault = MA_TRUE; + } + + (void)pPulseContext; /* Unused. */ +} + +static ma_result ma_context_get_device_info__pulse(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + ma_result result = MA_SUCCESS; + ma_context_get_device_info_callback_data__pulse callbackData; + ma_pa_operation* pOP = NULL; + + MA_ASSERT(pContext != NULL); + + callbackData.pDeviceInfo = pDeviceInfo; + callbackData.foundDevice = MA_FALSE; + + result = ma_context_get_default_device_index__pulse(pContext, deviceType, &callbackData.defaultDeviceIndex); + + if (deviceType == ma_device_type_playback) { + pOP = ((ma_pa_context_get_sink_info_by_name_proc)pContext->pulse.pa_context_get_sink_info_by_name)((ma_pa_context*)(pContext->pulse.pPulseContext), pDeviceID->pulse, ma_context_get_device_info_sink_callback__pulse, &callbackData); + } else { + pOP = ((ma_pa_context_get_source_info_by_name_proc)pContext->pulse.pa_context_get_source_info_by_name)((ma_pa_context*)(pContext->pulse.pPulseContext), pDeviceID->pulse, ma_context_get_device_info_source_callback__pulse, &callbackData); + } + + if (pOP != NULL) { + ma_wait_for_operation_and_unref__pulse(pContext, pOP); + } else { + result = MA_ERROR; + goto done; + } + + if (!callbackData.foundDevice) { + result = MA_NO_DEVICE; + goto done; + } + +done: + return result; +} + +static ma_result ma_device_uninit__pulse(ma_device* pDevice) +{ + ma_context* pContext; + + MA_ASSERT(pDevice != NULL); + + pContext = pDevice->pContext; + MA_ASSERT(pContext != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ((ma_pa_stream_disconnect_proc)pContext->pulse.pa_stream_disconnect)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + ((ma_pa_stream_unref_proc)pContext->pulse.pa_stream_unref)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ((ma_pa_stream_disconnect_proc)pContext->pulse.pa_stream_disconnect)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + ((ma_pa_stream_unref_proc)pContext->pulse.pa_stream_unref)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + } + + if (pDevice->type == ma_device_type_duplex) { + ma_duplex_rb_uninit(&pDevice->duplexRB); + } + + return MA_SUCCESS; +} + +static ma_pa_buffer_attr ma_device__pa_buffer_attr_new(ma_uint32 periodSizeInFrames, ma_uint32 periods, const ma_pa_sample_spec* ss) +{ + ma_pa_buffer_attr attr; + attr.maxlength = periodSizeInFrames * periods * ma_get_bytes_per_frame(ma_format_from_pulse(ss->format), ss->channels); + attr.tlength = attr.maxlength / periods; + attr.prebuf = (ma_uint32)-1; + attr.minreq = (ma_uint32)-1; + attr.fragsize = attr.maxlength / periods; + + return attr; +} + +static ma_pa_stream* ma_context__pa_stream_new__pulse(ma_context* pContext, const char* pStreamName, const ma_pa_sample_spec* ss, const ma_pa_channel_map* cmap) +{ + static int g_StreamCounter = 0; + char actualStreamName[256]; + + if (pStreamName != NULL) { + ma_strncpy_s(actualStreamName, sizeof(actualStreamName), pStreamName, (size_t)-1); + } else { + ma_strcpy_s(actualStreamName, sizeof(actualStreamName), "miniaudio:"); + ma_itoa_s(g_StreamCounter, actualStreamName + 8, sizeof(actualStreamName)-8, 10); /* 8 = strlen("miniaudio:") */ + } + g_StreamCounter += 1; + + return ((ma_pa_stream_new_proc)pContext->pulse.pa_stream_new)((ma_pa_context*)pContext->pulse.pPulseContext, actualStreamName, ss, cmap); +} + + +static void ma_device_on_read__pulse(ma_pa_stream* pStream, size_t byteCount, void* pUserData) +{ + ma_device* pDevice = (ma_device*)pUserData; + ma_uint32 bpf; + ma_uint64 frameCount; + ma_uint64 framesProcessed; + + MA_ASSERT(pDevice != NULL); + + bpf = ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + MA_ASSERT(bpf > 0); + + frameCount = byteCount / bpf; + framesProcessed = 0; + + while (ma_device_get_state(pDevice) == MA_STATE_STARTED && framesProcessed < frameCount) { + const void* pMappedPCMFrames; + size_t bytesMapped; + ma_uint64 framesMapped; + + int pulseResult = ((ma_pa_stream_peek_proc)pDevice->pContext->pulse.pa_stream_peek)(pStream, &pMappedPCMFrames, &bytesMapped); + if (pulseResult < 0) { + break; /* Failed to map. Abort. */ + } + + framesMapped = bytesMapped / bpf; + if (framesMapped > 0) { + if (pMappedPCMFrames != NULL) { + ma_device_handle_backend_data_callback(pDevice, NULL, pMappedPCMFrames, framesMapped); + } else { + /* It's a hole. */ + #if defined(MA_DEBUG_OUTPUT) + printf("[PulseAudio] ma_device_on_read__pulse: Hole.\n"); + #endif + } + + pulseResult = ((ma_pa_stream_drop_proc)pDevice->pContext->pulse.pa_stream_drop)(pStream); + if (pulseResult < 0) { + break; /* Failed to drop the buffer. */ + } + + framesProcessed += framesMapped; + + } else { + /* Nothing was mapped. Just abort. */ + break; + } + } +} + +static ma_result ma_device_write_to_stream__pulse(ma_device* pDevice, ma_pa_stream* pStream, ma_uint64* pFramesProcessed) +{ + ma_result result = MA_SUCCESS; + ma_uint64 framesProcessed = 0; + size_t bytesMapped; + ma_uint32 bpf; + ma_uint32 deviceState; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pStream != NULL); + + bpf = ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + MA_ASSERT(bpf > 0); + + deviceState = ma_device_get_state(pDevice); + + bytesMapped = ((ma_pa_stream_writable_size_proc)pDevice->pContext->pulse.pa_stream_writable_size)(pStream); + if (bytesMapped != (size_t)-1) { + if (bytesMapped > 0) { + ma_uint64 framesMapped; + void* pMappedPCMFrames; + int pulseResult = ((ma_pa_stream_begin_write_proc)pDevice->pContext->pulse.pa_stream_begin_write)(pStream, &pMappedPCMFrames, &bytesMapped); + if (pulseResult < 0) { + result = ma_result_from_pulse(pulseResult); + goto done; + } + + framesMapped = bytesMapped / bpf; + + if (deviceState == MA_STATE_STARTED) { + ma_device_handle_backend_data_callback(pDevice, pMappedPCMFrames, NULL, framesMapped); + } else { + /* Device is not started. Don't write anything to it. */ + } + + pulseResult = ((ma_pa_stream_write_proc)pDevice->pContext->pulse.pa_stream_write)(pStream, pMappedPCMFrames, bytesMapped, NULL, 0, MA_PA_SEEK_RELATIVE); + if (pulseResult < 0) { + result = ma_result_from_pulse(pulseResult); + goto done; /* Failed to write data to stream. */ + } + + framesProcessed += framesMapped; + } else { + result = MA_ERROR; /* No data available. Abort. */ + goto done; + } + } else { + result = MA_ERROR; /* Failed to retrieve the writable size. Abort. */ + goto done; + } + +done: + if (pFramesProcessed != NULL) { + *pFramesProcessed = framesProcessed; + } + + return result; +} + +static void ma_device_on_write__pulse(ma_pa_stream* pStream, size_t byteCount, void* pUserData) +{ + ma_device* pDevice = (ma_device*)pUserData; + ma_uint32 bpf; + ma_uint64 frameCount; + ma_uint64 framesProcessed; + ma_uint32 deviceState; + ma_result result; + + MA_ASSERT(pDevice != NULL); + + /* + Don't do anything if the device isn't initialized yet. Yes, this can happen because PulseAudio + can fire this callback before the stream has even started. Ridiculous. + */ + deviceState = ma_device_get_state(pDevice); + if (deviceState != MA_STATE_STARTING && deviceState != MA_STATE_STARTED) { + return; + } + + bpf = ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + MA_ASSERT(bpf > 0); + + frameCount = byteCount / bpf; + framesProcessed = 0; + + while (framesProcessed < frameCount) { + ma_uint64 framesProcessedThisIteration; + + /* Don't keep trying to process frames if the device isn't started. */ + deviceState = ma_device_get_state(pDevice); + if (deviceState != MA_STATE_STARTING && deviceState != MA_STATE_STARTED) { + break; + } + + result = ma_device_write_to_stream__pulse(pDevice, pStream, &framesProcessedThisIteration); + if (result != MA_SUCCESS) { + break; + } + + framesProcessed += framesProcessedThisIteration; + } +} + +static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + /* + Notes for PulseAudio: + + - We're always using native format/channels/rate regardless of whether or not PulseAudio + supports the format directly through their own data conversion system. I'm doing this to + reduce as much variability from the PulseAudio side as possible because it's seems to be + extremely unreliable at everything it does. + + - When both the period size in frames and milliseconds are 0, we default to miniaudio's + default buffer sizes rather than leaving it up to PulseAudio because I don't trust + PulseAudio to give us any kind of reasonable latency by default. + + - Do not ever, *ever* forget to use MA_PA_STREAM_ADJUST_LATENCY. If you don't specify this + flag, capture mode will just not work properly until you open another PulseAudio app. + */ + + ma_result result = MA_SUCCESS; + int error = 0; + const char* devPlayback = NULL; + const char* devCapture = NULL; + ma_format format = ma_format_unknown; + ma_uint32 channels = 0; + ma_uint32 sampleRate = 0; + ma_pa_sink_info sinkInfo; + ma_pa_source_info sourceInfo; + ma_pa_sample_spec ss; + ma_pa_channel_map cmap; + ma_pa_buffer_attr attr; + const ma_pa_sample_spec* pActualSS = NULL; + const ma_pa_channel_map* pActualCMap = NULL; + const ma_pa_buffer_attr* pActualAttr = NULL; + ma_uint32 iChannel; + ma_pa_stream_flags_t streamFlags; + + MA_ASSERT(pDevice != NULL); + MA_ZERO_OBJECT(&pDevice->pulse); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* No exclusive mode with the PulseAudio backend. */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pConfig->playback.shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pConfig->capture.shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + if (pDescriptorPlayback->pDeviceID != NULL) { + devPlayback = pDescriptorPlayback->pDeviceID->pulse; + } + + format = pDescriptorPlayback->format; + channels = pDescriptorPlayback->channels; + sampleRate = pDescriptorPlayback->sampleRate; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + if (pDescriptorCapture->pDeviceID != NULL) { + devCapture = pDescriptorCapture->pDeviceID->pulse; + } + + format = pDescriptorCapture->format; + channels = pDescriptorCapture->channels; + sampleRate = pDescriptorCapture->sampleRate; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + result = ma_context_get_source_info__pulse(pDevice->pContext, devCapture, &sourceInfo); + if (result != MA_SUCCESS) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to retrieve source info for capture device.", result); + goto on_error0; + } + + ss = sourceInfo.sample_spec; + cmap = sourceInfo.channel_map; + + /* We now have enough information to calculate our actual period size in frames. */ + pDescriptorCapture->periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptorCapture, ss.rate, pConfig->performanceProfile); + + attr = ma_device__pa_buffer_attr_new(pDescriptorCapture->periodSizeInFrames, pDescriptorCapture->periodCount, &ss); + #ifdef MA_DEBUG_OUTPUT + printf("[PulseAudio] Capture attr: maxlength=%d, tlength=%d, prebuf=%d, minreq=%d, fragsize=%d; periodSizeInFrames=%d\n", attr.maxlength, attr.tlength, attr.prebuf, attr.minreq, attr.fragsize, pDescriptorCapture->periodSizeInFrames); + #endif + + pDevice->pulse.pStreamCapture = ma_context__pa_stream_new__pulse(pDevice->pContext, pConfig->pulse.pStreamNameCapture, &ss, &cmap); + if (pDevice->pulse.pStreamCapture == NULL) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to create PulseAudio capture stream.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + goto on_error0; + } + + + /* The callback needs to be set before connecting the stream. */ + ((ma_pa_stream_set_read_callback_proc)pDevice->pContext->pulse.pa_stream_set_read_callback)((ma_pa_stream*)pDevice->pulse.pStreamCapture, ma_device_on_read__pulse, pDevice); + + + /* Connect after we've got all of our internal state set up. */ + streamFlags = MA_PA_STREAM_START_CORKED | MA_PA_STREAM_ADJUST_LATENCY | MA_PA_STREAM_FIX_FORMAT | MA_PA_STREAM_FIX_RATE | MA_PA_STREAM_FIX_CHANNELS; + if (devCapture != NULL) { + streamFlags |= MA_PA_STREAM_DONT_MOVE; + } + + error = ((ma_pa_stream_connect_record_proc)pDevice->pContext->pulse.pa_stream_connect_record)((ma_pa_stream*)pDevice->pulse.pStreamCapture, devCapture, &attr, streamFlags); + if (error != MA_PA_OK) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to connect PulseAudio capture stream.", ma_result_from_pulse(error)); + goto on_error1; + } + + result = ma_context_wait_for_pa_stream_to_connect__pulse(pDevice->pContext, (ma_pa_stream*)pDevice->pulse.pStreamCapture); + if (result != MA_SUCCESS) { + goto on_error2; + } + + /* Internal format. */ + pActualSS = ((ma_pa_stream_get_sample_spec_proc)pDevice->pContext->pulse.pa_stream_get_sample_spec)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + if (pActualSS != NULL) { + ss = *pActualSS; + } + + pDescriptorCapture->format = ma_format_from_pulse(ss.format); + pDescriptorCapture->channels = ss.channels; + pDescriptorCapture->sampleRate = ss.rate; + + /* Internal channel map. */ + pActualCMap = ((ma_pa_stream_get_channel_map_proc)pDevice->pContext->pulse.pa_stream_get_channel_map)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + if (pActualCMap != NULL) { + cmap = *pActualCMap; + } + + for (iChannel = 0; iChannel < pDevice->capture.internalChannels; ++iChannel) { + pDescriptorCapture->channelMap[iChannel] = ma_channel_position_from_pulse(cmap.map[iChannel]); + } + + + /* Buffer. */ + pActualAttr = ((ma_pa_stream_get_buffer_attr_proc)pDevice->pContext->pulse.pa_stream_get_buffer_attr)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + if (pActualAttr != NULL) { + attr = *pActualAttr; + } + + pDescriptorCapture->periodCount = attr.maxlength / attr.fragsize; + pDescriptorCapture->periodSizeInFrames = attr.maxlength / ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels) / pDescriptorCapture->periodCount; + #ifdef MA_DEBUG_OUTPUT + printf("[PulseAudio] Capture actual attr: maxlength=%d, tlength=%d, prebuf=%d, minreq=%d, fragsize=%d; periodSizeInFrames=%d\n", attr.maxlength, attr.tlength, attr.prebuf, attr.minreq, attr.fragsize, pDescriptorCapture->periodSizeInFrames); + #endif + + + /* Name. */ + devCapture = ((ma_pa_stream_get_device_name_proc)pDevice->pContext->pulse.pa_stream_get_device_name)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + if (devCapture != NULL) { + ma_pa_operation* pOP = ((ma_pa_context_get_source_info_by_name_proc)pDevice->pContext->pulse.pa_context_get_source_info_by_name)((ma_pa_context*)pDevice->pContext->pulse.pPulseContext, devCapture, ma_device_source_name_callback, pDevice); + ma_wait_for_operation_and_unref__pulse(pDevice->pContext, pOP); + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + result = ma_context_get_sink_info__pulse(pDevice->pContext, devPlayback, &sinkInfo); + if (result != MA_SUCCESS) { + ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to retrieve sink info for playback device.", result); + goto on_error2; + } + + ss = sinkInfo.sample_spec; + cmap = sinkInfo.channel_map; + + /* We now have enough information to calculate the actual buffer size in frames. */ + pDescriptorPlayback->periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptorPlayback, ss.rate, pConfig->performanceProfile); + + attr = ma_device__pa_buffer_attr_new(pDescriptorPlayback->periodSizeInFrames, pDescriptorPlayback->periodCount, &ss); + #ifdef MA_DEBUG_OUTPUT + printf("[PulseAudio] Playback attr: maxlength=%d, tlength=%d, prebuf=%d, minreq=%d, fragsize=%d; periodSizeInFrames=%d\n", attr.maxlength, attr.tlength, attr.prebuf, attr.minreq, attr.fragsize, pDescriptorPlayback->periodSizeInFrames); + #endif + + pDevice->pulse.pStreamPlayback = ma_context__pa_stream_new__pulse(pDevice->pContext, pConfig->pulse.pStreamNamePlayback, &ss, &cmap); + if (pDevice->pulse.pStreamPlayback == NULL) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to create PulseAudio playback stream.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + goto on_error2; + } + + + /* + Note that this callback will be fired as soon as the stream is connected, even though it's started as corked. The callback needs to handle a + device state of MA_STATE_UNINITIALIZED. + */ + ((ma_pa_stream_set_write_callback_proc)pDevice->pContext->pulse.pa_stream_set_write_callback)((ma_pa_stream*)pDevice->pulse.pStreamPlayback, ma_device_on_write__pulse, pDevice); + + + /* Connect after we've got all of our internal state set up. */ + streamFlags = MA_PA_STREAM_START_CORKED | MA_PA_STREAM_ADJUST_LATENCY | MA_PA_STREAM_FIX_FORMAT | MA_PA_STREAM_FIX_RATE | MA_PA_STREAM_FIX_CHANNELS; + if (devPlayback != NULL) { + streamFlags |= MA_PA_STREAM_DONT_MOVE; + } + + error = ((ma_pa_stream_connect_playback_proc)pDevice->pContext->pulse.pa_stream_connect_playback)((ma_pa_stream*)pDevice->pulse.pStreamPlayback, devPlayback, &attr, streamFlags, NULL, NULL); + if (error != MA_PA_OK) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to connect PulseAudio playback stream.", ma_result_from_pulse(error)); + goto on_error3; + } + + result = ma_context_wait_for_pa_stream_to_connect__pulse(pDevice->pContext, (ma_pa_stream*)pDevice->pulse.pStreamPlayback); + if (result != MA_SUCCESS) { + goto on_error3; + } + + + /* Internal format. */ + pActualSS = ((ma_pa_stream_get_sample_spec_proc)pDevice->pContext->pulse.pa_stream_get_sample_spec)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + if (pActualSS != NULL) { + ss = *pActualSS; + } + + pDescriptorPlayback->format = ma_format_from_pulse(ss.format); + pDescriptorPlayback->channels = ss.channels; + pDescriptorPlayback->sampleRate = ss.rate; + + /* Internal channel map. */ + pActualCMap = ((ma_pa_stream_get_channel_map_proc)pDevice->pContext->pulse.pa_stream_get_channel_map)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + if (pActualCMap != NULL) { + cmap = *pActualCMap; + } + + for (iChannel = 0; iChannel < pDevice->playback.internalChannels; ++iChannel) { + pDescriptorPlayback->channelMap[iChannel] = ma_channel_position_from_pulse(cmap.map[iChannel]); + } + + + /* Buffer. */ + pActualAttr = ((ma_pa_stream_get_buffer_attr_proc)pDevice->pContext->pulse.pa_stream_get_buffer_attr)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + if (pActualAttr != NULL) { + attr = *pActualAttr; + } + + pDescriptorPlayback->periodCount = attr.maxlength / attr.tlength; + pDescriptorPlayback->periodSizeInFrames = attr.maxlength / ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels) / pDescriptorPlayback->periodCount; + #ifdef MA_DEBUG_OUTPUT + printf("[PulseAudio] Playback actual attr: maxlength=%d, tlength=%d, prebuf=%d, minreq=%d, fragsize=%d; internalPeriodSizeInFrames=%d\n", attr.maxlength, attr.tlength, attr.prebuf, attr.minreq, attr.fragsize, pDevice->playback.internalPeriodSizeInFrames); + #endif + + + /* Name. */ + devPlayback = ((ma_pa_stream_get_device_name_proc)pDevice->pContext->pulse.pa_stream_get_device_name)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + if (devPlayback != NULL) { + ma_pa_operation* pOP = ((ma_pa_context_get_sink_info_by_name_proc)pDevice->pContext->pulse.pa_context_get_sink_info_by_name)((ma_pa_context*)pDevice->pContext->pulse.pPulseContext, devPlayback, ma_device_sink_name_callback, pDevice); + ma_wait_for_operation_and_unref__pulse(pDevice->pContext, pOP); + } + } + + + /* + We need a ring buffer for handling duplex mode. We can use the main duplex ring buffer in the main + part of the ma_device struct. We cannot, however, depend on ma_device_init() initializing this for + us later on because that will only do it if it's a fully asynchronous backend - i.e. the + onDeviceDataLoop callback is NULL, which is not the case for PulseAudio. + */ + if (pConfig->deviceType == ma_device_type_duplex) { + result = ma_duplex_rb_init(format, channels, sampleRate, pDescriptorCapture->sampleRate, pDescriptorCapture->periodSizeInFrames, &pDevice->pContext->allocationCallbacks, &pDevice->duplexRB); + if (result != MA_SUCCESS) { + result = ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to initialize ring buffer.", result); + goto on_error4; + } + } + + return MA_SUCCESS; + + +on_error4: + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ((ma_pa_stream_disconnect_proc)pDevice->pContext->pulse.pa_stream_disconnect)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + } +on_error3: + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ((ma_pa_stream_unref_proc)pDevice->pContext->pulse.pa_stream_unref)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); + } +on_error2: + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ((ma_pa_stream_disconnect_proc)pDevice->pContext->pulse.pa_stream_disconnect)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + } +on_error1: + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ((ma_pa_stream_unref_proc)pDevice->pContext->pulse.pa_stream_unref)((ma_pa_stream*)pDevice->pulse.pStreamCapture); + } +on_error0: + return result; +} + + +static void ma_pulse_operation_complete_callback(ma_pa_stream* pStream, int success, void* pUserData) +{ + ma_bool32* pIsSuccessful = (ma_bool32*)pUserData; + MA_ASSERT(pIsSuccessful != NULL); + + *pIsSuccessful = (ma_bool32)success; + + (void)pStream; /* Unused. */ +} + +static ma_result ma_device__cork_stream__pulse(ma_device* pDevice, ma_device_type deviceType, int cork) +{ + ma_context* pContext = pDevice->pContext; + ma_bool32 wasSuccessful; + ma_pa_stream* pStream; + ma_pa_operation* pOP; + ma_result result; + + /* This should not be called with a duplex device type. */ + if (deviceType == ma_device_type_duplex) { + return MA_INVALID_ARGS; + } + + wasSuccessful = MA_FALSE; + + pStream = (ma_pa_stream*)((deviceType == ma_device_type_capture) ? pDevice->pulse.pStreamCapture : pDevice->pulse.pStreamPlayback); + MA_ASSERT(pStream != NULL); + + pOP = ((ma_pa_stream_cork_proc)pContext->pulse.pa_stream_cork)(pStream, cork, ma_pulse_operation_complete_callback, &wasSuccessful); + if (pOP == NULL) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to cork PulseAudio stream.", (cork == 0) ? MA_FAILED_TO_START_BACKEND_DEVICE : MA_FAILED_TO_STOP_BACKEND_DEVICE); + } + + result = ma_wait_for_operation_and_unref__pulse(pDevice->pContext, pOP); + if (result != MA_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] An error occurred while waiting for the PulseAudio stream to cork.", result); + } + + if (!wasSuccessful) { + if (cork) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to stop PulseAudio stream.", MA_FAILED_TO_STOP_BACKEND_DEVICE); + } else { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to start PulseAudio stream.", MA_FAILED_TO_START_BACKEND_DEVICE); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start__pulse(ma_device* pDevice) +{ + ma_result result; + + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + result = ma_device__cork_stream__pulse(pDevice, ma_device_type_capture, 0); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* We need to fill some data before uncorking. Not doing this will result in the write callback never getting fired. */ + result = ma_device_write_to_stream__pulse(pDevice, (ma_pa_stream*)(pDevice->pulse.pStreamPlayback), NULL); + if (result != MA_SUCCESS) { + return result; /* Failed to write data. Not sure what to do here... Just aborting. */ + } + + result = ma_device__cork_stream__pulse(pDevice, ma_device_type_playback, 0); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__pulse(ma_device* pDevice) +{ + ma_result result; + ma_bool32 wasSuccessful; + + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + result = ma_device__cork_stream__pulse(pDevice, ma_device_type_capture, 1); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + /* The stream needs to be drained if it's a playback device. */ + ma_pa_operation* pOP = ((ma_pa_stream_drain_proc)pDevice->pContext->pulse.pa_stream_drain)((ma_pa_stream*)pDevice->pulse.pStreamPlayback, ma_pulse_operation_complete_callback, &wasSuccessful); + ma_wait_for_operation_and_unref__pulse(pDevice->pContext, pOP); + + result = ma_device__cork_stream__pulse(pDevice, ma_device_type_playback, 1); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_data_loop__pulse(ma_device* pDevice) +{ + int resultPA; + + MA_ASSERT(pDevice != NULL); + + /* NOTE: Don't start the device here. It'll be done at a higher level. */ + + /* + All data is handled through callbacks. All we need to do is iterate over the main loop and let + the callbacks deal with it. + */ + while (ma_device_get_state(pDevice) == MA_STATE_STARTED) { + resultPA = ((ma_pa_mainloop_iterate_proc)pDevice->pContext->pulse.pa_mainloop_iterate)((ma_pa_mainloop*)pDevice->pContext->pulse.pMainLoop, 1, NULL); + if (resultPA < 0) { + break; + } + } + + /* NOTE: Don't stop the device here. It'll be done at a higher level. */ + return MA_SUCCESS; +} + +static ma_result ma_device_data_loop_wakeup__pulse(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + ((ma_pa_mainloop_wakeup_proc)pDevice->pContext->pulse.pa_mainloop_wakeup)((ma_pa_mainloop*)pDevice->pContext->pulse.pMainLoop); + + return MA_SUCCESS; +} + +static ma_result ma_context_uninit__pulse(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_pulseaudio); + + ((ma_pa_context_disconnect_proc)pContext->pulse.pa_context_disconnect)((ma_pa_context*)pContext->pulse.pPulseContext); + ((ma_pa_context_unref_proc)pContext->pulse.pa_context_unref)((ma_pa_context*)pContext->pulse.pPulseContext); + ((ma_pa_mainloop_free_proc)pContext->pulse.pa_mainloop_free)((ma_pa_mainloop*)pContext->pulse.pMainLoop); + +#ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->pulse.pulseSO); +#endif + + return MA_SUCCESS; +} + +static ma_result ma_context_init__pulse(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + ma_result result; +#ifndef MA_NO_RUNTIME_LINKING + const char* libpulseNames[] = { + "libpulse.so", + "libpulse.so.0" + }; + size_t i; + + for (i = 0; i < ma_countof(libpulseNames); ++i) { + pContext->pulse.pulseSO = ma_dlopen(pContext, libpulseNames[i]); + if (pContext->pulse.pulseSO != NULL) { + break; + } + } + + if (pContext->pulse.pulseSO == NULL) { + return MA_NO_BACKEND; + } + + pContext->pulse.pa_mainloop_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_new"); + pContext->pulse.pa_mainloop_free = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_free"); + pContext->pulse.pa_mainloop_quit = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_quit"); + pContext->pulse.pa_mainloop_get_api = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_get_api"); + pContext->pulse.pa_mainloop_iterate = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_iterate"); + pContext->pulse.pa_mainloop_wakeup = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_wakeup"); + pContext->pulse.pa_threaded_mainloop_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_new"); + pContext->pulse.pa_threaded_mainloop_free = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_free"); + pContext->pulse.pa_threaded_mainloop_start = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_start"); + pContext->pulse.pa_threaded_mainloop_stop = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_stop"); + pContext->pulse.pa_threaded_mainloop_lock = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_lock"); + pContext->pulse.pa_threaded_mainloop_unlock = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_unlock"); + pContext->pulse.pa_threaded_mainloop_wait = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_wait"); + pContext->pulse.pa_threaded_mainloop_signal = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_signal"); + pContext->pulse.pa_threaded_mainloop_accept = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_accept"); + pContext->pulse.pa_threaded_mainloop_get_retval = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_get_retval"); + pContext->pulse.pa_threaded_mainloop_get_api = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_get_api"); + pContext->pulse.pa_threaded_mainloop_in_thread = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_in_thread"); + pContext->pulse.pa_threaded_mainloop_set_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_set_name"); + pContext->pulse.pa_context_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_new"); + pContext->pulse.pa_context_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_unref"); + pContext->pulse.pa_context_connect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_connect"); + pContext->pulse.pa_context_disconnect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_disconnect"); + pContext->pulse.pa_context_set_state_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_set_state_callback"); + pContext->pulse.pa_context_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_state"); + pContext->pulse.pa_context_get_sink_info_list = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_sink_info_list"); + pContext->pulse.pa_context_get_source_info_list = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_source_info_list"); + pContext->pulse.pa_context_get_sink_info_by_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_sink_info_by_name"); + pContext->pulse.pa_context_get_source_info_by_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_source_info_by_name"); + pContext->pulse.pa_operation_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_operation_unref"); + pContext->pulse.pa_operation_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_operation_get_state"); + pContext->pulse.pa_channel_map_init_extend = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_init_extend"); + pContext->pulse.pa_channel_map_valid = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_valid"); + pContext->pulse.pa_channel_map_compatible = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_compatible"); + pContext->pulse.pa_stream_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_new"); + pContext->pulse.pa_stream_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_unref"); + pContext->pulse.pa_stream_connect_playback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_connect_playback"); + pContext->pulse.pa_stream_connect_record = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_connect_record"); + pContext->pulse.pa_stream_disconnect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_disconnect"); + pContext->pulse.pa_stream_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_state"); + pContext->pulse.pa_stream_get_sample_spec = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_sample_spec"); + pContext->pulse.pa_stream_get_channel_map = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_channel_map"); + pContext->pulse.pa_stream_get_buffer_attr = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_buffer_attr"); + pContext->pulse.pa_stream_set_buffer_attr = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_buffer_attr"); + pContext->pulse.pa_stream_get_device_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_device_name"); + pContext->pulse.pa_stream_set_write_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_write_callback"); + pContext->pulse.pa_stream_set_read_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_read_callback"); + pContext->pulse.pa_stream_flush = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_flush"); + pContext->pulse.pa_stream_drain = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_drain"); + pContext->pulse.pa_stream_is_corked = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_is_corked"); + pContext->pulse.pa_stream_cork = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_cork"); + pContext->pulse.pa_stream_trigger = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_trigger"); + pContext->pulse.pa_stream_begin_write = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_begin_write"); + pContext->pulse.pa_stream_write = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_write"); + pContext->pulse.pa_stream_peek = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_peek"); + pContext->pulse.pa_stream_drop = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_drop"); + pContext->pulse.pa_stream_writable_size = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_writable_size"); + pContext->pulse.pa_stream_readable_size = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_readable_size"); +#else + /* This strange assignment system is just for type safety. */ + ma_pa_mainloop_new_proc _pa_mainloop_new = pa_mainloop_new; + ma_pa_mainloop_free_proc _pa_mainloop_free = pa_mainloop_free; + ma_pa_mainloop_quit_proc _pa_mainloop_quit = pa_mainloop_quit; + ma_pa_mainloop_get_api_proc _pa_mainloop_get_api = pa_mainloop_get_api; + ma_pa_mainloop_iterate_proc _pa_mainloop_iterate = pa_mainloop_iterate; + ma_pa_mainloop_wakeup_proc _pa_mainloop_wakeup = pa_mainloop_wakeup; + ma_pa_threaded_mainloop_new_proc _pa_threaded_mainloop_new = pa_threaded_mainloop_new; + ma_pa_threaded_mainloop_free_proc _pa_threaded_mainloop_free = pa_threaded_mainloop_free; + ma_pa_threaded_mainloop_start_proc _pa_threaded_mainloop_start = pa_threaded_mainloop_start; + ma_pa_threaded_mainloop_stop_proc _pa_threaded_mainloop_stop = pa_threaded_mainloop_stop; + ma_pa_threaded_mainloop_lock_proc _pa_threaded_mainloop_lock = pa_threaded_mainloop_lock; + ma_pa_threaded_mainloop_unlock_proc _pa_threaded_mainloop_unlock = pa_threaded_mainloop_unlock; + ma_pa_threaded_mainloop_wait_proc _pa_threaded_mainloop_wait = pa_threaded_mainloop_wait; + ma_pa_threaded_mainloop_signal_proc _pa_threaded_mainloop_signal = pa_threaded_mainloop_signal; + ma_pa_threaded_mainloop_accept_proc _pa_threaded_mainloop_accept = pa_threaded_mainloop_accept; + ma_pa_threaded_mainloop_get_retval_proc _pa_threaded_mainloop_get_retval = pa_threaded_mainloop_get_retval; + ma_pa_threaded_mainloop_get_api_proc _pa_threaded_mainloop_get_api = pa_threaded_mainloop_get_api; + ma_pa_threaded_mainloop_in_thread_proc _pa_threaded_mainloop_in_thread = pa_threaded_mainloop_in_thread; + ma_pa_threaded_mainloop_set_name_proc _pa_threaded_mainloop_set_name = pa_threaded_mainloop_set_name; + ma_pa_context_new_proc _pa_context_new = pa_context_new; + ma_pa_context_unref_proc _pa_context_unref = pa_context_unref; + ma_pa_context_connect_proc _pa_context_connect = pa_context_connect; + ma_pa_context_disconnect_proc _pa_context_disconnect = pa_context_disconnect; + ma_pa_context_set_state_callback_proc _pa_context_set_state_callback = pa_context_set_state_callback; + ma_pa_context_get_state_proc _pa_context_get_state = pa_context_get_state; + ma_pa_context_get_sink_info_list_proc _pa_context_get_sink_info_list = pa_context_get_sink_info_list; + ma_pa_context_get_source_info_list_proc _pa_context_get_source_info_list = pa_context_get_source_info_list; + ma_pa_context_get_sink_info_by_name_proc _pa_context_get_sink_info_by_name = pa_context_get_sink_info_by_name; + ma_pa_context_get_source_info_by_name_proc _pa_context_get_source_info_by_name= pa_context_get_source_info_by_name; + ma_pa_operation_unref_proc _pa_operation_unref = pa_operation_unref; + ma_pa_operation_get_state_proc _pa_operation_get_state = pa_operation_get_state; + ma_pa_channel_map_init_extend_proc _pa_channel_map_init_extend = pa_channel_map_init_extend; + ma_pa_channel_map_valid_proc _pa_channel_map_valid = pa_channel_map_valid; + ma_pa_channel_map_compatible_proc _pa_channel_map_compatible = pa_channel_map_compatible; + ma_pa_stream_new_proc _pa_stream_new = pa_stream_new; + ma_pa_stream_unref_proc _pa_stream_unref = pa_stream_unref; + ma_pa_stream_connect_playback_proc _pa_stream_connect_playback = pa_stream_connect_playback; + ma_pa_stream_connect_record_proc _pa_stream_connect_record = pa_stream_connect_record; + ma_pa_stream_disconnect_proc _pa_stream_disconnect = pa_stream_disconnect; + ma_pa_stream_get_state_proc _pa_stream_get_state = pa_stream_get_state; + ma_pa_stream_get_sample_spec_proc _pa_stream_get_sample_spec = pa_stream_get_sample_spec; + ma_pa_stream_get_channel_map_proc _pa_stream_get_channel_map = pa_stream_get_channel_map; + ma_pa_stream_get_buffer_attr_proc _pa_stream_get_buffer_attr = pa_stream_get_buffer_attr; + ma_pa_stream_set_buffer_attr_proc _pa_stream_set_buffer_attr = pa_stream_set_buffer_attr; + ma_pa_stream_get_device_name_proc _pa_stream_get_device_name = pa_stream_get_device_name; + ma_pa_stream_set_write_callback_proc _pa_stream_set_write_callback = pa_stream_set_write_callback; + ma_pa_stream_set_read_callback_proc _pa_stream_set_read_callback = pa_stream_set_read_callback; + ma_pa_stream_flush_proc _pa_stream_flush = pa_stream_flush; + ma_pa_stream_drain_proc _pa_stream_drain = pa_stream_drain; + ma_pa_stream_is_corked_proc _pa_stream_is_corked = pa_stream_is_corked; + ma_pa_stream_cork_proc _pa_stream_cork = pa_stream_cork; + ma_pa_stream_trigger_proc _pa_stream_trigger = pa_stream_trigger; + ma_pa_stream_begin_write_proc _pa_stream_begin_write = pa_stream_begin_write; + ma_pa_stream_write_proc _pa_stream_write = pa_stream_write; + ma_pa_stream_peek_proc _pa_stream_peek = pa_stream_peek; + ma_pa_stream_drop_proc _pa_stream_drop = pa_stream_drop; + ma_pa_stream_writable_size_proc _pa_stream_writable_size = pa_stream_writable_size; + ma_pa_stream_readable_size_proc _pa_stream_readable_size = pa_stream_readable_size; + + pContext->pulse.pa_mainloop_new = (ma_proc)_pa_mainloop_new; + pContext->pulse.pa_mainloop_free = (ma_proc)_pa_mainloop_free; + pContext->pulse.pa_mainloop_quit = (ma_proc)_pa_mainloop_quit; + pContext->pulse.pa_mainloop_get_api = (ma_proc)_pa_mainloop_get_api; + pContext->pulse.pa_mainloop_iterate = (ma_proc)_pa_mainloop_iterate; + pContext->pulse.pa_mainloop_wakeup = (ma_proc)_pa_mainloop_wakeup; + pContext->pulse.pa_threaded_mainloop_new = (ma_proc)_pa_threaded_mainloop_new; + pContext->pulse.pa_threaded_mainloop_free = (ma_proc)_pa_threaded_mainloop_free; + pContext->pulse.pa_threaded_mainloop_start = (ma_proc)_pa_threaded_mainloop_start; + pContext->pulse.pa_threaded_mainloop_stop = (ma_proc)_pa_threaded_mainloop_stop; + pContext->pulse.pa_threaded_mainloop_lock = (ma_proc)_pa_threaded_mainloop_lock; + pContext->pulse.pa_threaded_mainloop_unlock = (ma_proc)_pa_threaded_mainloop_unlock; + pContext->pulse.pa_threaded_mainloop_wait = (ma_proc)_pa_threaded_mainloop_wait; + pContext->pulse.pa_threaded_mainloop_signal = (ma_proc)_pa_threaded_mainloop_signal; + pContext->pulse.pa_threaded_mainloop_accept = (ma_proc)_pa_threaded_mainloop_accept; + pContext->pulse.pa_threaded_mainloop_get_retval = (ma_proc)_pa_threaded_mainloop_get_retval; + pContext->pulse.pa_threaded_mainloop_get_api = (ma_proc)_pa_threaded_mainloop_get_api; + pContext->pulse.pa_threaded_mainloop_in_thread = (ma_proc)_pa_threaded_mainloop_in_thread; + pContext->pulse.pa_threaded_mainloop_set_name = (ma_proc)_pa_threaded_mainloop_set_name; + pContext->pulse.pa_context_new = (ma_proc)_pa_context_new; + pContext->pulse.pa_context_unref = (ma_proc)_pa_context_unref; + pContext->pulse.pa_context_connect = (ma_proc)_pa_context_connect; + pContext->pulse.pa_context_disconnect = (ma_proc)_pa_context_disconnect; + pContext->pulse.pa_context_set_state_callback = (ma_proc)_pa_context_set_state_callback; + pContext->pulse.pa_context_get_state = (ma_proc)_pa_context_get_state; + pContext->pulse.pa_context_get_sink_info_list = (ma_proc)_pa_context_get_sink_info_list; + pContext->pulse.pa_context_get_source_info_list = (ma_proc)_pa_context_get_source_info_list; + pContext->pulse.pa_context_get_sink_info_by_name = (ma_proc)_pa_context_get_sink_info_by_name; + pContext->pulse.pa_context_get_source_info_by_name = (ma_proc)_pa_context_get_source_info_by_name; + pContext->pulse.pa_operation_unref = (ma_proc)_pa_operation_unref; + pContext->pulse.pa_operation_get_state = (ma_proc)_pa_operation_get_state; + pContext->pulse.pa_channel_map_init_extend = (ma_proc)_pa_channel_map_init_extend; + pContext->pulse.pa_channel_map_valid = (ma_proc)_pa_channel_map_valid; + pContext->pulse.pa_channel_map_compatible = (ma_proc)_pa_channel_map_compatible; + pContext->pulse.pa_stream_new = (ma_proc)_pa_stream_new; + pContext->pulse.pa_stream_unref = (ma_proc)_pa_stream_unref; + pContext->pulse.pa_stream_connect_playback = (ma_proc)_pa_stream_connect_playback; + pContext->pulse.pa_stream_connect_record = (ma_proc)_pa_stream_connect_record; + pContext->pulse.pa_stream_disconnect = (ma_proc)_pa_stream_disconnect; + pContext->pulse.pa_stream_get_state = (ma_proc)_pa_stream_get_state; + pContext->pulse.pa_stream_get_sample_spec = (ma_proc)_pa_stream_get_sample_spec; + pContext->pulse.pa_stream_get_channel_map = (ma_proc)_pa_stream_get_channel_map; + pContext->pulse.pa_stream_get_buffer_attr = (ma_proc)_pa_stream_get_buffer_attr; + pContext->pulse.pa_stream_set_buffer_attr = (ma_proc)_pa_stream_set_buffer_attr; + pContext->pulse.pa_stream_get_device_name = (ma_proc)_pa_stream_get_device_name; + pContext->pulse.pa_stream_set_write_callback = (ma_proc)_pa_stream_set_write_callback; + pContext->pulse.pa_stream_set_read_callback = (ma_proc)_pa_stream_set_read_callback; + pContext->pulse.pa_stream_flush = (ma_proc)_pa_stream_flush; + pContext->pulse.pa_stream_drain = (ma_proc)_pa_stream_drain; + pContext->pulse.pa_stream_is_corked = (ma_proc)_pa_stream_is_corked; + pContext->pulse.pa_stream_cork = (ma_proc)_pa_stream_cork; + pContext->pulse.pa_stream_trigger = (ma_proc)_pa_stream_trigger; + pContext->pulse.pa_stream_begin_write = (ma_proc)_pa_stream_begin_write; + pContext->pulse.pa_stream_write = (ma_proc)_pa_stream_write; + pContext->pulse.pa_stream_peek = (ma_proc)_pa_stream_peek; + pContext->pulse.pa_stream_drop = (ma_proc)_pa_stream_drop; + pContext->pulse.pa_stream_writable_size = (ma_proc)_pa_stream_writable_size; + pContext->pulse.pa_stream_readable_size = (ma_proc)_pa_stream_readable_size; +#endif + + /* The PulseAudio context maps well to miniaudio's notion of a context. The pa_context object will be initialized as part of the ma_context. */ + pContext->pulse.pMainLoop = ((ma_pa_mainloop_new_proc)pContext->pulse.pa_mainloop_new)(); + if (pContext->pulse.pMainLoop == NULL) { + result = ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to create mainloop.", MA_FAILED_TO_INIT_BACKEND); + #ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->pulse.pulseSO); + #endif + return result; + } + + pContext->pulse.pPulseContext = ((ma_pa_context_new_proc)pContext->pulse.pa_context_new)(((ma_pa_mainloop_get_api_proc)pContext->pulse.pa_mainloop_get_api)((ma_pa_mainloop*)pContext->pulse.pMainLoop), pConfig->pulse.pApplicationName); + if (pContext->pulse.pPulseContext == NULL) { + result = ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to create PulseAudio context.", MA_FAILED_TO_INIT_BACKEND); + ((ma_pa_mainloop_free_proc)pContext->pulse.pa_mainloop_free)((ma_pa_mainloop*)(pContext->pulse.pMainLoop)); + #ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->pulse.pulseSO); + #endif + return result; + } + + /* Now we need to connect to the context. Everything is asynchronous so we need to wait for it to connect before returning. */ + result = ma_result_from_pulse(((ma_pa_context_connect_proc)pContext->pulse.pa_context_connect)((ma_pa_context*)pContext->pulse.pPulseContext, pConfig->pulse.pServerName, (pConfig->pulse.tryAutoSpawn) ? 0 : MA_PA_CONTEXT_NOAUTOSPAWN, NULL)); + if (result != MA_SUCCESS) { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[PulseAudio] Failed to connect PulseAudio context.", result); + ((ma_pa_mainloop_free_proc)pContext->pulse.pa_mainloop_free)((ma_pa_mainloop*)(pContext->pulse.pMainLoop)); + #ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->pulse.pulseSO); + #endif + return result; + } + + /* Since ma_context_init() runs synchronously we need to wait for the PulseAudio context to connect before we return. */ + result = ma_context_wait_for_pa_context_to_connect__pulse(pContext); + if (result != MA_SUCCESS) { + ((ma_pa_mainloop_free_proc)pContext->pulse.pa_mainloop_free)((ma_pa_mainloop*)(pContext->pulse.pMainLoop)); + #ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->pulse.pulseSO); + #endif + return result; + } + + + /* With pa_mainloop we run a synchronous backend, but we implement our own main loop. */ + pCallbacks->onContextInit = ma_context_init__pulse; + pCallbacks->onContextUninit = ma_context_uninit__pulse; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__pulse; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__pulse; + pCallbacks->onDeviceInit = ma_device_init__pulse; + pCallbacks->onDeviceUninit = ma_device_uninit__pulse; + pCallbacks->onDeviceStart = ma_device_start__pulse; + pCallbacks->onDeviceStop = ma_device_stop__pulse; + pCallbacks->onDeviceRead = NULL; /* Not used because we're implementing onDeviceDataLoop. */ + pCallbacks->onDeviceWrite = NULL; /* Not used because we're implementing onDeviceDataLoop. */ + pCallbacks->onDeviceDataLoop = ma_device_data_loop__pulse; + pCallbacks->onDeviceDataLoopWakeup = ma_device_data_loop_wakeup__pulse; + + return MA_SUCCESS; +} +#endif + + +/****************************************************************************** + +JACK Backend + +******************************************************************************/ +#ifdef MA_HAS_JACK + +/* It is assumed jack.h is available when compile-time linking is being used. */ +#ifdef MA_NO_RUNTIME_LINKING +#include + +typedef jack_nframes_t ma_jack_nframes_t; +typedef jack_options_t ma_jack_options_t; +typedef jack_status_t ma_jack_status_t; +typedef jack_client_t ma_jack_client_t; +typedef jack_port_t ma_jack_port_t; +typedef JackProcessCallback ma_JackProcessCallback; +typedef JackBufferSizeCallback ma_JackBufferSizeCallback; +typedef JackShutdownCallback ma_JackShutdownCallback; +#define MA_JACK_DEFAULT_AUDIO_TYPE JACK_DEFAULT_AUDIO_TYPE +#define ma_JackNoStartServer JackNoStartServer +#define ma_JackPortIsInput JackPortIsInput +#define ma_JackPortIsOutput JackPortIsOutput +#define ma_JackPortIsPhysical JackPortIsPhysical +#else +typedef ma_uint32 ma_jack_nframes_t; +typedef int ma_jack_options_t; +typedef int ma_jack_status_t; +typedef struct ma_jack_client_t ma_jack_client_t; +typedef struct ma_jack_port_t ma_jack_port_t; +typedef int (* ma_JackProcessCallback) (ma_jack_nframes_t nframes, void* arg); +typedef int (* ma_JackBufferSizeCallback)(ma_jack_nframes_t nframes, void* arg); +typedef void (* ma_JackShutdownCallback) (void* arg); +#define MA_JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio" +#define ma_JackNoStartServer 1 +#define ma_JackPortIsInput 1 +#define ma_JackPortIsOutput 2 +#define ma_JackPortIsPhysical 4 +#endif + +typedef ma_jack_client_t* (* ma_jack_client_open_proc) (const char* client_name, ma_jack_options_t options, ma_jack_status_t* status, ...); +typedef int (* ma_jack_client_close_proc) (ma_jack_client_t* client); +typedef int (* ma_jack_client_name_size_proc) (void); +typedef int (* ma_jack_set_process_callback_proc) (ma_jack_client_t* client, ma_JackProcessCallback process_callback, void* arg); +typedef int (* ma_jack_set_buffer_size_callback_proc)(ma_jack_client_t* client, ma_JackBufferSizeCallback bufsize_callback, void* arg); +typedef void (* ma_jack_on_shutdown_proc) (ma_jack_client_t* client, ma_JackShutdownCallback function, void* arg); +typedef ma_jack_nframes_t (* ma_jack_get_sample_rate_proc) (ma_jack_client_t* client); +typedef ma_jack_nframes_t (* ma_jack_get_buffer_size_proc) (ma_jack_client_t* client); +typedef const char** (* ma_jack_get_ports_proc) (ma_jack_client_t* client, const char* port_name_pattern, const char* type_name_pattern, unsigned long flags); +typedef int (* ma_jack_activate_proc) (ma_jack_client_t* client); +typedef int (* ma_jack_deactivate_proc) (ma_jack_client_t* client); +typedef int (* ma_jack_connect_proc) (ma_jack_client_t* client, const char* source_port, const char* destination_port); +typedef ma_jack_port_t* (* ma_jack_port_register_proc) (ma_jack_client_t* client, const char* port_name, const char* port_type, unsigned long flags, unsigned long buffer_size); +typedef const char* (* ma_jack_port_name_proc) (const ma_jack_port_t* port); +typedef void* (* ma_jack_port_get_buffer_proc) (ma_jack_port_t* port, ma_jack_nframes_t nframes); +typedef void (* ma_jack_free_proc) (void* ptr); + +static ma_result ma_context_open_client__jack(ma_context* pContext, ma_jack_client_t** ppClient) +{ + size_t maxClientNameSize; + char clientName[256]; + ma_jack_status_t status; + ma_jack_client_t* pClient; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppClient != NULL); + + if (ppClient) { + *ppClient = NULL; + } + + maxClientNameSize = ((ma_jack_client_name_size_proc)pContext->jack.jack_client_name_size)(); /* Includes null terminator. */ + ma_strncpy_s(clientName, ma_min(sizeof(clientName), maxClientNameSize), (pContext->jack.pClientName != NULL) ? pContext->jack.pClientName : "miniaudio", (size_t)-1); + + pClient = ((ma_jack_client_open_proc)pContext->jack.jack_client_open)(clientName, (pContext->jack.tryStartServer) ? 0 : ma_JackNoStartServer, &status, NULL); + if (pClient == NULL) { + return MA_FAILED_TO_OPEN_BACKEND_DEVICE; + } + + if (ppClient) { + *ppClient = pClient; + } + + return MA_SUCCESS; +} + + +static ma_result ma_context_enumerate_devices__jack(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_bool32 cbResult = MA_TRUE; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* Playback. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + deviceInfo.isDefault = MA_TRUE; /* JACK only uses default devices. */ + cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + + /* Capture. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + deviceInfo.isDefault = MA_TRUE; /* JACK only uses default devices. */ + cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + + (void)cbResult; /* For silencing a static analysis warning. */ + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__jack(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + ma_jack_client_t* pClient; + ma_result result; + const char** ppPorts; + + MA_ASSERT(pContext != NULL); + + if (pDeviceID != NULL && pDeviceID->jack != 0) { + return MA_NO_DEVICE; /* Don't know the device. */ + } + + /* Name / Description */ + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + + /* Jack only uses default devices. */ + pDeviceInfo->isDefault = MA_TRUE; + + /* Jack only supports f32 and has a specific channel count and sample rate. */ + pDeviceInfo->nativeDataFormats[0].format = ma_format_f32; + + /* The channel count and sample rate can only be determined by opening the device. */ + result = ma_context_open_client__jack(pContext, &pClient); + if (result != MA_SUCCESS) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[JACK] Failed to open client.", result); + } + + pDeviceInfo->nativeDataFormats[0].sampleRate = ((ma_jack_get_sample_rate_proc)pContext->jack.jack_get_sample_rate)((ma_jack_client_t*)pClient); + pDeviceInfo->nativeDataFormats[0].channels = 0; + + ppPorts = ((ma_jack_get_ports_proc)pContext->jack.jack_get_ports)((ma_jack_client_t*)pClient, NULL, MA_JACK_DEFAULT_AUDIO_TYPE, ma_JackPortIsPhysical | ((deviceType == ma_device_type_playback) ? ma_JackPortIsInput : ma_JackPortIsOutput)); + if (ppPorts == NULL) { + ((ma_jack_client_close_proc)pContext->jack.jack_client_close)((ma_jack_client_t*)pClient); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[JACK] Failed to query physical ports.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + while (ppPorts[pDeviceInfo->nativeDataFormats[0].channels] != NULL) { + pDeviceInfo->nativeDataFormats[0].channels += 1; + } + + pDeviceInfo->nativeDataFormats[0].flags = 0; + pDeviceInfo->nativeDataFormatCount = 1; + + ((ma_jack_free_proc)pContext->jack.jack_free)((void*)ppPorts); + ((ma_jack_client_close_proc)pContext->jack.jack_client_close)((ma_jack_client_t*)pClient); + + (void)pContext; + return MA_SUCCESS; +} + + +static ma_result ma_device_uninit__jack(ma_device* pDevice) +{ + ma_context* pContext; + + MA_ASSERT(pDevice != NULL); + + pContext = pDevice->pContext; + MA_ASSERT(pContext != NULL); + + if (pDevice->jack.pClient != NULL) { + ((ma_jack_client_close_proc)pContext->jack.jack_client_close)((ma_jack_client_t*)pDevice->jack.pClient); + } + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma__free_from_callbacks(pDevice->jack.pIntermediaryBufferCapture, &pDevice->pContext->allocationCallbacks); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma__free_from_callbacks(pDevice->jack.pIntermediaryBufferPlayback, &pDevice->pContext->allocationCallbacks); + } + + return MA_SUCCESS; +} + +static void ma_device__jack_shutdown_callback(void* pUserData) +{ + /* JACK died. Stop the device. */ + ma_device* pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + ma_device_stop(pDevice); +} + +static int ma_device__jack_buffer_size_callback(ma_jack_nframes_t frameCount, void* pUserData) +{ + ma_device* pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + size_t newBufferSize = frameCount * (pDevice->capture.internalChannels * ma_get_bytes_per_sample(pDevice->capture.internalFormat)); + float* pNewBuffer = (float*)ma__calloc_from_callbacks(newBufferSize, &pDevice->pContext->allocationCallbacks); + if (pNewBuffer == NULL) { + return MA_OUT_OF_MEMORY; + } + + ma__free_from_callbacks(pDevice->jack.pIntermediaryBufferCapture, &pDevice->pContext->allocationCallbacks); + + pDevice->jack.pIntermediaryBufferCapture = pNewBuffer; + pDevice->playback.internalPeriodSizeInFrames = frameCount; + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + size_t newBufferSize = frameCount * (pDevice->playback.internalChannels * ma_get_bytes_per_sample(pDevice->playback.internalFormat)); + float* pNewBuffer = (float*)ma__calloc_from_callbacks(newBufferSize, &pDevice->pContext->allocationCallbacks); + if (pNewBuffer == NULL) { + return MA_OUT_OF_MEMORY; + } + + ma__free_from_callbacks(pDevice->jack.pIntermediaryBufferPlayback, &pDevice->pContext->allocationCallbacks); + + pDevice->jack.pIntermediaryBufferPlayback = pNewBuffer; + pDevice->playback.internalPeriodSizeInFrames = frameCount; + } + + return 0; +} + +static int ma_device__jack_process_callback(ma_jack_nframes_t frameCount, void* pUserData) +{ + ma_device* pDevice; + ma_context* pContext; + ma_uint32 iChannel; + + pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + pContext = pDevice->pContext; + MA_ASSERT(pContext != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + /* Channels need to be interleaved. */ + for (iChannel = 0; iChannel < pDevice->capture.internalChannels; ++iChannel) { + const float* pSrc = (const float*)((ma_jack_port_get_buffer_proc)pContext->jack.jack_port_get_buffer)((ma_jack_port_t*)pDevice->jack.pPortsCapture[iChannel], frameCount); + if (pSrc != NULL) { + float* pDst = pDevice->jack.pIntermediaryBufferCapture + iChannel; + ma_jack_nframes_t iFrame; + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + *pDst = *pSrc; + + pDst += pDevice->capture.internalChannels; + pSrc += 1; + } + } + } + + ma_device_handle_backend_data_callback(pDevice, NULL, pDevice->jack.pIntermediaryBufferCapture, frameCount); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_device_handle_backend_data_callback(pDevice, pDevice->jack.pIntermediaryBufferPlayback, NULL, frameCount); + + /* Channels need to be deinterleaved. */ + for (iChannel = 0; iChannel < pDevice->playback.internalChannels; ++iChannel) { + float* pDst = (float*)((ma_jack_port_get_buffer_proc)pContext->jack.jack_port_get_buffer)((ma_jack_port_t*)pDevice->jack.pPortsPlayback[iChannel], frameCount); + if (pDst != NULL) { + const float* pSrc = pDevice->jack.pIntermediaryBufferPlayback + iChannel; + ma_jack_nframes_t iFrame; + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + *pDst = *pSrc; + + pDst += 1; + pSrc += pDevice->playback.internalChannels; + } + } + } + } + + return 0; +} + +static ma_result ma_device_init__jack(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + ma_result result; + ma_uint32 periodSizeInFrames; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDevice != NULL); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* Only supporting default devices with JACK. */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->pDeviceID != NULL && pDescriptorPlayback->pDeviceID->jack != 0) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->pDeviceID != NULL && pDescriptorCapture->pDeviceID->jack != 0)) { + return MA_NO_DEVICE; + } + + /* No exclusive mode with the JACK backend. */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + /* Open the client. */ + result = ma_context_open_client__jack(pDevice->pContext, (ma_jack_client_t**)&pDevice->jack.pClient); + if (result != MA_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to open client.", result); + } + + /* Callbacks. */ + if (((ma_jack_set_process_callback_proc)pDevice->pContext->jack.jack_set_process_callback)((ma_jack_client_t*)pDevice->jack.pClient, ma_device__jack_process_callback, pDevice) != 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to set process callback.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + if (((ma_jack_set_buffer_size_callback_proc)pDevice->pContext->jack.jack_set_buffer_size_callback)((ma_jack_client_t*)pDevice->jack.pClient, ma_device__jack_buffer_size_callback, pDevice) != 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to set buffer size callback.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + ((ma_jack_on_shutdown_proc)pDevice->pContext->jack.jack_on_shutdown)((ma_jack_client_t*)pDevice->jack.pClient, ma_device__jack_shutdown_callback, pDevice); + + + /* The buffer size in frames can change. */ + periodSizeInFrames = ((ma_jack_get_buffer_size_proc)pDevice->pContext->jack.jack_get_buffer_size)((ma_jack_client_t*)pDevice->jack.pClient); + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + const char** ppPorts; + + pDescriptorCapture->format = ma_format_f32; + pDescriptorCapture->channels = 0; + pDescriptorCapture->sampleRate = ((ma_jack_get_sample_rate_proc)pDevice->pContext->jack.jack_get_sample_rate)((ma_jack_client_t*)pDevice->jack.pClient); + ma_get_standard_channel_map(ma_standard_channel_map_alsa, pDescriptorCapture->channels, pDescriptorCapture->channelMap); + + ppPorts = ((ma_jack_get_ports_proc)pDevice->pContext->jack.jack_get_ports)((ma_jack_client_t*)pDevice->jack.pClient, NULL, MA_JACK_DEFAULT_AUDIO_TYPE, ma_JackPortIsPhysical | ma_JackPortIsOutput); + if (ppPorts == NULL) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to query physical ports.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + while (ppPorts[pDescriptorCapture->channels] != NULL) { + char name[64]; + ma_strcpy_s(name, sizeof(name), "capture"); + ma_itoa_s((int)pDescriptorCapture->channels, name+7, sizeof(name)-7, 10); /* 7 = length of "capture" */ + + pDevice->jack.pPortsCapture[pDescriptorCapture->channels] = ((ma_jack_port_register_proc)pDevice->pContext->jack.jack_port_register)((ma_jack_client_t*)pDevice->jack.pClient, name, MA_JACK_DEFAULT_AUDIO_TYPE, ma_JackPortIsInput, 0); + if (pDevice->jack.pPortsCapture[pDescriptorCapture->channels] == NULL) { + ((ma_jack_free_proc)pDevice->pContext->jack.jack_free)((void*)ppPorts); + ma_device_uninit__jack(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to register ports.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + pDescriptorCapture->channels += 1; + } + + ((ma_jack_free_proc)pDevice->pContext->jack.jack_free)((void*)ppPorts); + + pDescriptorCapture->periodSizeInFrames = periodSizeInFrames; + pDescriptorCapture->periodCount = 1; /* There's no notion of a period in JACK. Just set to 1. */ + + pDevice->jack.pIntermediaryBufferCapture = (float*)ma__calloc_from_callbacks(pDescriptorCapture->periodSizeInFrames * ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels), &pDevice->pContext->allocationCallbacks); + if (pDevice->jack.pIntermediaryBufferCapture == NULL) { + ma_device_uninit__jack(pDevice); + return MA_OUT_OF_MEMORY; + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + const char** ppPorts; + + pDescriptorPlayback->format = ma_format_f32; + pDescriptorPlayback->channels = 0; + pDescriptorPlayback->sampleRate = ((ma_jack_get_sample_rate_proc)pDevice->pContext->jack.jack_get_sample_rate)((ma_jack_client_t*)pDevice->jack.pClient); + ma_get_standard_channel_map(ma_standard_channel_map_alsa, pDescriptorPlayback->channels, pDescriptorPlayback->channelMap); + + ppPorts = ((ma_jack_get_ports_proc)pDevice->pContext->jack.jack_get_ports)((ma_jack_client_t*)pDevice->jack.pClient, NULL, MA_JACK_DEFAULT_AUDIO_TYPE, ma_JackPortIsPhysical | ma_JackPortIsInput); + if (ppPorts == NULL) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to query physical ports.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + while (ppPorts[pDescriptorPlayback->channels] != NULL) { + char name[64]; + ma_strcpy_s(name, sizeof(name), "playback"); + ma_itoa_s((int)pDescriptorPlayback->channels, name+8, sizeof(name)-8, 10); /* 8 = length of "playback" */ + + pDevice->jack.pPortsPlayback[pDescriptorPlayback->channels] = ((ma_jack_port_register_proc)pDevice->pContext->jack.jack_port_register)((ma_jack_client_t*)pDevice->jack.pClient, name, MA_JACK_DEFAULT_AUDIO_TYPE, ma_JackPortIsOutput, 0); + if (pDevice->jack.pPortsPlayback[pDescriptorPlayback->channels] == NULL) { + ((ma_jack_free_proc)pDevice->pContext->jack.jack_free)((void*)ppPorts); + ma_device_uninit__jack(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to register ports.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + pDescriptorPlayback->channels += 1; + } + + ((ma_jack_free_proc)pDevice->pContext->jack.jack_free)((void*)ppPorts); + + pDescriptorPlayback->periodSizeInFrames = periodSizeInFrames; + pDescriptorPlayback->periodCount = 1; /* There's no notion of a period in JACK. Just set to 1. */ + + pDevice->jack.pIntermediaryBufferPlayback = (float*)ma__calloc_from_callbacks(pDescriptorPlayback->periodSizeInFrames * ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels), &pDevice->pContext->allocationCallbacks); + if (pDevice->jack.pIntermediaryBufferPlayback == NULL) { + ma_device_uninit__jack(pDevice); + return MA_OUT_OF_MEMORY; + } + } + + return MA_SUCCESS; +} + + +static ma_result ma_device_start__jack(ma_device* pDevice) +{ + ma_context* pContext = pDevice->pContext; + int resultJACK; + size_t i; + + resultJACK = ((ma_jack_activate_proc)pContext->jack.jack_activate)((ma_jack_client_t*)pDevice->jack.pClient); + if (resultJACK != 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to activate the JACK client.", MA_FAILED_TO_START_BACKEND_DEVICE); + } + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + const char** ppServerPorts = ((ma_jack_get_ports_proc)pContext->jack.jack_get_ports)((ma_jack_client_t*)pDevice->jack.pClient, NULL, MA_JACK_DEFAULT_AUDIO_TYPE, ma_JackPortIsPhysical | ma_JackPortIsOutput); + if (ppServerPorts == NULL) { + ((ma_jack_deactivate_proc)pContext->jack.jack_deactivate)((ma_jack_client_t*)pDevice->jack.pClient); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to retrieve physical ports.", MA_ERROR); + } + + for (i = 0; ppServerPorts[i] != NULL; ++i) { + const char* pServerPort = ppServerPorts[i]; + const char* pClientPort = ((ma_jack_port_name_proc)pContext->jack.jack_port_name)((ma_jack_port_t*)pDevice->jack.pPortsCapture[i]); + + resultJACK = ((ma_jack_connect_proc)pContext->jack.jack_connect)((ma_jack_client_t*)pDevice->jack.pClient, pServerPort, pClientPort); + if (resultJACK != 0) { + ((ma_jack_free_proc)pContext->jack.jack_free)((void*)ppServerPorts); + ((ma_jack_deactivate_proc)pContext->jack.jack_deactivate)((ma_jack_client_t*)pDevice->jack.pClient); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to connect ports.", MA_ERROR); + } + } + + ((ma_jack_free_proc)pContext->jack.jack_free)((void*)ppServerPorts); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + const char** ppServerPorts = ((ma_jack_get_ports_proc)pContext->jack.jack_get_ports)((ma_jack_client_t*)pDevice->jack.pClient, NULL, MA_JACK_DEFAULT_AUDIO_TYPE, ma_JackPortIsPhysical | ma_JackPortIsInput); + if (ppServerPorts == NULL) { + ((ma_jack_deactivate_proc)pContext->jack.jack_deactivate)((ma_jack_client_t*)pDevice->jack.pClient); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to retrieve physical ports.", MA_ERROR); + } + + for (i = 0; ppServerPorts[i] != NULL; ++i) { + const char* pServerPort = ppServerPorts[i]; + const char* pClientPort = ((ma_jack_port_name_proc)pContext->jack.jack_port_name)((ma_jack_port_t*)pDevice->jack.pPortsPlayback[i]); + + resultJACK = ((ma_jack_connect_proc)pContext->jack.jack_connect)((ma_jack_client_t*)pDevice->jack.pClient, pClientPort, pServerPort); + if (resultJACK != 0) { + ((ma_jack_free_proc)pContext->jack.jack_free)((void*)ppServerPorts); + ((ma_jack_deactivate_proc)pContext->jack.jack_deactivate)((ma_jack_client_t*)pDevice->jack.pClient); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] Failed to connect ports.", MA_ERROR); + } + } + + ((ma_jack_free_proc)pContext->jack.jack_free)((void*)ppServerPorts); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__jack(ma_device* pDevice) +{ + ma_context* pContext = pDevice->pContext; + ma_stop_proc onStop; + + if (((ma_jack_deactivate_proc)pContext->jack.jack_deactivate)((ma_jack_client_t*)pDevice->jack.pClient) != 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[JACK] An error occurred when deactivating the JACK client.", MA_ERROR); + } + + onStop = pDevice->onStop; + if (onStop) { + onStop(pDevice); + } + + return MA_SUCCESS; +} + + +static ma_result ma_context_uninit__jack(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_jack); + + ma_free(pContext->jack.pClientName, &pContext->allocationCallbacks); + pContext->jack.pClientName = NULL; + +#ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->jack.jackSO); +#endif + + return MA_SUCCESS; +} + +static ma_result ma_context_init__jack(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ +#ifndef MA_NO_RUNTIME_LINKING + const char* libjackNames[] = { +#ifdef MA_WIN32 + "libjack.dll", + "libjack64.dll" +#else + "libjack.so", + "libjack.so.0" +#endif + }; + size_t i; + + for (i = 0; i < ma_countof(libjackNames); ++i) { + pContext->jack.jackSO = ma_dlopen(pContext, libjackNames[i]); + if (pContext->jack.jackSO != NULL) { + break; + } + } + + if (pContext->jack.jackSO == NULL) { + return MA_NO_BACKEND; + } + + pContext->jack.jack_client_open = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_open"); + pContext->jack.jack_client_close = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_close"); + pContext->jack.jack_client_name_size = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_name_size"); + pContext->jack.jack_set_process_callback = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_set_process_callback"); + pContext->jack.jack_set_buffer_size_callback = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_set_buffer_size_callback"); + pContext->jack.jack_on_shutdown = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_on_shutdown"); + pContext->jack.jack_get_sample_rate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_sample_rate"); + pContext->jack.jack_get_buffer_size = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_buffer_size"); + pContext->jack.jack_get_ports = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_ports"); + pContext->jack.jack_activate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_activate"); + pContext->jack.jack_deactivate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_deactivate"); + pContext->jack.jack_connect = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_connect"); + pContext->jack.jack_port_register = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_register"); + pContext->jack.jack_port_name = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_name"); + pContext->jack.jack_port_get_buffer = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_get_buffer"); + pContext->jack.jack_free = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_free"); +#else + /* + This strange assignment system is here just to ensure type safety of miniaudio's function pointer + types. If anything differs slightly the compiler should throw a warning. + */ + ma_jack_client_open_proc _jack_client_open = jack_client_open; + ma_jack_client_close_proc _jack_client_close = jack_client_close; + ma_jack_client_name_size_proc _jack_client_name_size = jack_client_name_size; + ma_jack_set_process_callback_proc _jack_set_process_callback = jack_set_process_callback; + ma_jack_set_buffer_size_callback_proc _jack_set_buffer_size_callback = jack_set_buffer_size_callback; + ma_jack_on_shutdown_proc _jack_on_shutdown = jack_on_shutdown; + ma_jack_get_sample_rate_proc _jack_get_sample_rate = jack_get_sample_rate; + ma_jack_get_buffer_size_proc _jack_get_buffer_size = jack_get_buffer_size; + ma_jack_get_ports_proc _jack_get_ports = jack_get_ports; + ma_jack_activate_proc _jack_activate = jack_activate; + ma_jack_deactivate_proc _jack_deactivate = jack_deactivate; + ma_jack_connect_proc _jack_connect = jack_connect; + ma_jack_port_register_proc _jack_port_register = jack_port_register; + ma_jack_port_name_proc _jack_port_name = jack_port_name; + ma_jack_port_get_buffer_proc _jack_port_get_buffer = jack_port_get_buffer; + ma_jack_free_proc _jack_free = jack_free; + + pContext->jack.jack_client_open = (ma_proc)_jack_client_open; + pContext->jack.jack_client_close = (ma_proc)_jack_client_close; + pContext->jack.jack_client_name_size = (ma_proc)_jack_client_name_size; + pContext->jack.jack_set_process_callback = (ma_proc)_jack_set_process_callback; + pContext->jack.jack_set_buffer_size_callback = (ma_proc)_jack_set_buffer_size_callback; + pContext->jack.jack_on_shutdown = (ma_proc)_jack_on_shutdown; + pContext->jack.jack_get_sample_rate = (ma_proc)_jack_get_sample_rate; + pContext->jack.jack_get_buffer_size = (ma_proc)_jack_get_buffer_size; + pContext->jack.jack_get_ports = (ma_proc)_jack_get_ports; + pContext->jack.jack_activate = (ma_proc)_jack_activate; + pContext->jack.jack_deactivate = (ma_proc)_jack_deactivate; + pContext->jack.jack_connect = (ma_proc)_jack_connect; + pContext->jack.jack_port_register = (ma_proc)_jack_port_register; + pContext->jack.jack_port_name = (ma_proc)_jack_port_name; + pContext->jack.jack_port_get_buffer = (ma_proc)_jack_port_get_buffer; + pContext->jack.jack_free = (ma_proc)_jack_free; +#endif + + if (pConfig->jack.pClientName != NULL) { + pContext->jack.pClientName = ma_copy_string(pConfig->jack.pClientName, &pContext->allocationCallbacks); + } + pContext->jack.tryStartServer = pConfig->jack.tryStartServer; + + /* + Getting here means the JACK library is installed, but it doesn't necessarily mean it's usable. We need to quickly test this by connecting + a temporary client. + */ + { + ma_jack_client_t* pDummyClient; + ma_result result = ma_context_open_client__jack(pContext, &pDummyClient); + if (result != MA_SUCCESS) { + ma_free(pContext->jack.pClientName, &pContext->allocationCallbacks); + #ifndef MA_NO_RUNTIME_LINKING + ma_dlclose(pContext, pContext->jack.jackSO); + #endif + return MA_NO_BACKEND; + } + + ((ma_jack_client_close_proc)pContext->jack.jack_client_close)((ma_jack_client_t*)pDummyClient); + } + + + pCallbacks->onContextInit = ma_context_init__jack; + pCallbacks->onContextUninit = ma_context_uninit__jack; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__jack; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__jack; + pCallbacks->onDeviceInit = ma_device_init__jack; + pCallbacks->onDeviceUninit = ma_device_uninit__jack; + pCallbacks->onDeviceStart = ma_device_start__jack; + pCallbacks->onDeviceStop = ma_device_stop__jack; + pCallbacks->onDeviceRead = NULL; /* Not used because JACK is asynchronous. */ + pCallbacks->onDeviceWrite = NULL; /* Not used because JACK is asynchronous. */ + pCallbacks->onDeviceDataLoop = NULL; /* Not used because JACK is asynchronous. */ + + return MA_SUCCESS; +} +#endif /* JACK */ + + + +/****************************************************************************** + +Core Audio Backend + +References +========== +- Technical Note TN2091: Device input using the HAL Output Audio Unit + https://developer.apple.com/library/archive/technotes/tn2091/_index.html + +******************************************************************************/ +#ifdef MA_HAS_COREAUDIO +#include + +#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE == 1 + #define MA_APPLE_MOBILE + #if defined(TARGET_OS_TV) && TARGET_OS_TV == 1 + #define MA_APPLE_TV + #endif + #if defined(TARGET_OS_WATCH) && TARGET_OS_WATCH == 1 + #define MA_APPLE_WATCH + #endif +#else + #define MA_APPLE_DESKTOP +#endif + +#if defined(MA_APPLE_DESKTOP) +#include +#else +#include +#endif + +#include + +/* CoreFoundation */ +typedef Boolean (* ma_CFStringGetCString_proc)(CFStringRef theString, char* buffer, CFIndex bufferSize, CFStringEncoding encoding); +typedef void (* ma_CFRelease_proc)(CFTypeRef cf); + +/* CoreAudio */ +#if defined(MA_APPLE_DESKTOP) +typedef OSStatus (* ma_AudioObjectGetPropertyData_proc)(AudioObjectID inObjectID, const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize, const void* inQualifierData, UInt32* ioDataSize, void* outData); +typedef OSStatus (* ma_AudioObjectGetPropertyDataSize_proc)(AudioObjectID inObjectID, const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize, const void* inQualifierData, UInt32* outDataSize); +typedef OSStatus (* ma_AudioObjectSetPropertyData_proc)(AudioObjectID inObjectID, const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize, const void* inQualifierData, UInt32 inDataSize, const void* inData); +typedef OSStatus (* ma_AudioObjectAddPropertyListener_proc)(AudioObjectID inObjectID, const AudioObjectPropertyAddress* inAddress, AudioObjectPropertyListenerProc inListener, void* inClientData); +typedef OSStatus (* ma_AudioObjectRemovePropertyListener_proc)(AudioObjectID inObjectID, const AudioObjectPropertyAddress* inAddress, AudioObjectPropertyListenerProc inListener, void* inClientData); +#endif + +/* AudioToolbox */ +typedef AudioComponent (* ma_AudioComponentFindNext_proc)(AudioComponent inComponent, const AudioComponentDescription* inDesc); +typedef OSStatus (* ma_AudioComponentInstanceDispose_proc)(AudioComponentInstance inInstance); +typedef OSStatus (* ma_AudioComponentInstanceNew_proc)(AudioComponent inComponent, AudioComponentInstance* outInstance); +typedef OSStatus (* ma_AudioOutputUnitStart_proc)(AudioUnit inUnit); +typedef OSStatus (* ma_AudioOutputUnitStop_proc)(AudioUnit inUnit); +typedef OSStatus (* ma_AudioUnitAddPropertyListener_proc)(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitPropertyListenerProc inProc, void* inProcUserData); +typedef OSStatus (* ma_AudioUnitGetPropertyInfo_proc)(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32* outDataSize, Boolean* outWriteable); +typedef OSStatus (* ma_AudioUnitGetProperty_proc)(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData, UInt32* ioDataSize); +typedef OSStatus (* ma_AudioUnitSetProperty_proc)(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void* inData, UInt32 inDataSize); +typedef OSStatus (* ma_AudioUnitInitialize_proc)(AudioUnit inUnit); +typedef OSStatus (* ma_AudioUnitRender_proc)(AudioUnit inUnit, AudioUnitRenderActionFlags* ioActionFlags, const AudioTimeStamp* inTimeStamp, UInt32 inOutputBusNumber, UInt32 inNumberFrames, AudioBufferList* ioData); + + +#define MA_COREAUDIO_OUTPUT_BUS 0 +#define MA_COREAUDIO_INPUT_BUS 1 + +#if defined(MA_APPLE_DESKTOP) +static ma_result ma_device_reinit_internal__coreaudio(ma_device* pDevice, ma_device_type deviceType, ma_bool32 disposePreviousAudioUnit); +#endif + +/* +Core Audio + +So far, Core Audio has been the worst backend to work with due to being both unintuitive and having almost no documentation +apart from comments in the headers (which admittedly are quite good). For my own purposes, and for anybody out there whose +needing to figure out how this darn thing works, I'm going to outline a few things here. + +Since miniaudio is a fairly low-level API, one of the things it needs is control over specific devices, and it needs to be +able to identify whether or not it can be used as playback and/or capture. The AudioObject API is the only one I've seen +that supports this level of detail. There was some public domain sample code I stumbled across that used the AudioComponent +and AudioUnit APIs, but I couldn't see anything that gave low-level control over device selection and capabilities (the +distinction between playback and capture in particular). Therefore, miniaudio is using the AudioObject API. + +Most (all?) functions in the AudioObject API take a AudioObjectID as it's input. This is the device identifier. When +retrieving global information, such as the device list, you use kAudioObjectSystemObject. When retrieving device-specific +data, you pass in the ID for that device. In order to retrieve device-specific IDs you need to enumerate over each of the +devices. This is done using the AudioObjectGetPropertyDataSize() and AudioObjectGetPropertyData() APIs which seem to be +the central APIs for retrieving information about the system and specific devices. + +To use the AudioObjectGetPropertyData() API you need to use the notion of a property address. A property address is a +structure with three variables and is used to identify which property you are getting or setting. The first is the "selector" +which is basically the specific property that you're wanting to retrieve or set. The second is the "scope", which is +typically set to kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyScopeInput for input-specific properties and +kAudioObjectPropertyScopeOutput for output-specific properties. The last is the "element" which is always set to +kAudioObjectPropertyElementMaster in miniaudio's case. I don't know of any cases where this would be set to anything different. + +Back to the earlier issue of device retrieval, you first use the AudioObjectGetPropertyDataSize() API to retrieve the size +of the raw data which is just a list of AudioDeviceID's. You use the kAudioObjectSystemObject AudioObjectID, and a property +address with the kAudioHardwarePropertyDevices selector and the kAudioObjectPropertyScopeGlobal scope. Once you have the +size, allocate a block of memory of that size and then call AudioObjectGetPropertyData(). The data is just a list of +AudioDeviceID's so just do "dataSize/sizeof(AudioDeviceID)" to know the device count. +*/ + +static ma_result ma_result_from_OSStatus(OSStatus status) +{ + switch (status) + { + case noErr: return MA_SUCCESS; + #if defined(MA_APPLE_DESKTOP) + case kAudioHardwareNotRunningError: return MA_DEVICE_NOT_STARTED; + case kAudioHardwareUnspecifiedError: return MA_ERROR; + case kAudioHardwareUnknownPropertyError: return MA_INVALID_ARGS; + case kAudioHardwareBadPropertySizeError: return MA_INVALID_OPERATION; + case kAudioHardwareIllegalOperationError: return MA_INVALID_OPERATION; + case kAudioHardwareBadObjectError: return MA_INVALID_ARGS; + case kAudioHardwareBadDeviceError: return MA_INVALID_ARGS; + case kAudioHardwareBadStreamError: return MA_INVALID_ARGS; + case kAudioHardwareUnsupportedOperationError: return MA_INVALID_OPERATION; + case kAudioDeviceUnsupportedFormatError: return MA_FORMAT_NOT_SUPPORTED; + case kAudioDevicePermissionsError: return MA_ACCESS_DENIED; + #endif + default: return MA_ERROR; + } +} + +#if 0 +static ma_channel ma_channel_from_AudioChannelBitmap(AudioChannelBitmap bit) +{ + switch (bit) + { + case kAudioChannelBit_Left: return MA_CHANNEL_LEFT; + case kAudioChannelBit_Right: return MA_CHANNEL_RIGHT; + case kAudioChannelBit_Center: return MA_CHANNEL_FRONT_CENTER; + case kAudioChannelBit_LFEScreen: return MA_CHANNEL_LFE; + case kAudioChannelBit_LeftSurround: return MA_CHANNEL_BACK_LEFT; + case kAudioChannelBit_RightSurround: return MA_CHANNEL_BACK_RIGHT; + case kAudioChannelBit_LeftCenter: return MA_CHANNEL_FRONT_LEFT_CENTER; + case kAudioChannelBit_RightCenter: return MA_CHANNEL_FRONT_RIGHT_CENTER; + case kAudioChannelBit_CenterSurround: return MA_CHANNEL_BACK_CENTER; + case kAudioChannelBit_LeftSurroundDirect: return MA_CHANNEL_SIDE_LEFT; + case kAudioChannelBit_RightSurroundDirect: return MA_CHANNEL_SIDE_RIGHT; + case kAudioChannelBit_TopCenterSurround: return MA_CHANNEL_TOP_CENTER; + case kAudioChannelBit_VerticalHeightLeft: return MA_CHANNEL_TOP_FRONT_LEFT; + case kAudioChannelBit_VerticalHeightCenter: return MA_CHANNEL_TOP_FRONT_CENTER; + case kAudioChannelBit_VerticalHeightRight: return MA_CHANNEL_TOP_FRONT_RIGHT; + case kAudioChannelBit_TopBackLeft: return MA_CHANNEL_TOP_BACK_LEFT; + case kAudioChannelBit_TopBackCenter: return MA_CHANNEL_TOP_BACK_CENTER; + case kAudioChannelBit_TopBackRight: return MA_CHANNEL_TOP_BACK_RIGHT; + default: return MA_CHANNEL_NONE; + } +} +#endif + +static ma_result ma_format_from_AudioStreamBasicDescription(const AudioStreamBasicDescription* pDescription, ma_format* pFormatOut) +{ + MA_ASSERT(pDescription != NULL); + MA_ASSERT(pFormatOut != NULL); + + *pFormatOut = ma_format_unknown; /* Safety. */ + + /* There's a few things miniaudio doesn't support. */ + if (pDescription->mFormatID != kAudioFormatLinearPCM) { + return MA_FORMAT_NOT_SUPPORTED; + } + + /* We don't support any non-packed formats that are aligned high. */ + if ((pDescription->mFormatFlags & kLinearPCMFormatFlagIsAlignedHigh) != 0) { + return MA_FORMAT_NOT_SUPPORTED; + } + + /* Only supporting native-endian. */ + if ((ma_is_little_endian() && (pDescription->mFormatFlags & kAudioFormatFlagIsBigEndian) != 0) || (ma_is_big_endian() && (pDescription->mFormatFlags & kAudioFormatFlagIsBigEndian) == 0)) { + return MA_FORMAT_NOT_SUPPORTED; + } + + /* We are not currently supporting non-interleaved formats (this will be added in a future version of miniaudio). */ + /*if ((pDescription->mFormatFlags & kAudioFormatFlagIsNonInterleaved) != 0) { + return MA_FORMAT_NOT_SUPPORTED; + }*/ + + if ((pDescription->mFormatFlags & kLinearPCMFormatFlagIsFloat) != 0) { + if (pDescription->mBitsPerChannel == 32) { + *pFormatOut = ma_format_f32; + return MA_SUCCESS; + } + } else { + if ((pDescription->mFormatFlags & kLinearPCMFormatFlagIsSignedInteger) != 0) { + if (pDescription->mBitsPerChannel == 16) { + *pFormatOut = ma_format_s16; + return MA_SUCCESS; + } else if (pDescription->mBitsPerChannel == 24) { + if (pDescription->mBytesPerFrame == (pDescription->mBitsPerChannel/8 * pDescription->mChannelsPerFrame)) { + *pFormatOut = ma_format_s24; + return MA_SUCCESS; + } else { + if (pDescription->mBytesPerFrame/pDescription->mChannelsPerFrame == sizeof(ma_int32)) { + /* TODO: Implement ma_format_s24_32. */ + /**pFormatOut = ma_format_s24_32;*/ + /*return MA_SUCCESS;*/ + return MA_FORMAT_NOT_SUPPORTED; + } + } + } else if (pDescription->mBitsPerChannel == 32) { + *pFormatOut = ma_format_s32; + return MA_SUCCESS; + } + } else { + if (pDescription->mBitsPerChannel == 8) { + *pFormatOut = ma_format_u8; + return MA_SUCCESS; + } + } + } + + /* Getting here means the format is not supported. */ + return MA_FORMAT_NOT_SUPPORTED; +} + +#if defined(MA_APPLE_DESKTOP) +static ma_channel ma_channel_from_AudioChannelLabel(AudioChannelLabel label) +{ + switch (label) + { + case kAudioChannelLabel_Unknown: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Unused: return MA_CHANNEL_NONE; + case kAudioChannelLabel_UseCoordinates: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Left: return MA_CHANNEL_LEFT; + case kAudioChannelLabel_Right: return MA_CHANNEL_RIGHT; + case kAudioChannelLabel_Center: return MA_CHANNEL_FRONT_CENTER; + case kAudioChannelLabel_LFEScreen: return MA_CHANNEL_LFE; + case kAudioChannelLabel_LeftSurround: return MA_CHANNEL_BACK_LEFT; + case kAudioChannelLabel_RightSurround: return MA_CHANNEL_BACK_RIGHT; + case kAudioChannelLabel_LeftCenter: return MA_CHANNEL_FRONT_LEFT_CENTER; + case kAudioChannelLabel_RightCenter: return MA_CHANNEL_FRONT_RIGHT_CENTER; + case kAudioChannelLabel_CenterSurround: return MA_CHANNEL_BACK_CENTER; + case kAudioChannelLabel_LeftSurroundDirect: return MA_CHANNEL_SIDE_LEFT; + case kAudioChannelLabel_RightSurroundDirect: return MA_CHANNEL_SIDE_RIGHT; + case kAudioChannelLabel_TopCenterSurround: return MA_CHANNEL_TOP_CENTER; + case kAudioChannelLabel_VerticalHeightLeft: return MA_CHANNEL_TOP_FRONT_LEFT; + case kAudioChannelLabel_VerticalHeightCenter: return MA_CHANNEL_TOP_FRONT_CENTER; + case kAudioChannelLabel_VerticalHeightRight: return MA_CHANNEL_TOP_FRONT_RIGHT; + case kAudioChannelLabel_TopBackLeft: return MA_CHANNEL_TOP_BACK_LEFT; + case kAudioChannelLabel_TopBackCenter: return MA_CHANNEL_TOP_BACK_CENTER; + case kAudioChannelLabel_TopBackRight: return MA_CHANNEL_TOP_BACK_RIGHT; + case kAudioChannelLabel_RearSurroundLeft: return MA_CHANNEL_BACK_LEFT; + case kAudioChannelLabel_RearSurroundRight: return MA_CHANNEL_BACK_RIGHT; + case kAudioChannelLabel_LeftWide: return MA_CHANNEL_SIDE_LEFT; + case kAudioChannelLabel_RightWide: return MA_CHANNEL_SIDE_RIGHT; + case kAudioChannelLabel_LFE2: return MA_CHANNEL_LFE; + case kAudioChannelLabel_LeftTotal: return MA_CHANNEL_LEFT; + case kAudioChannelLabel_RightTotal: return MA_CHANNEL_RIGHT; + case kAudioChannelLabel_HearingImpaired: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Narration: return MA_CHANNEL_MONO; + case kAudioChannelLabel_Mono: return MA_CHANNEL_MONO; + case kAudioChannelLabel_DialogCentricMix: return MA_CHANNEL_MONO; + case kAudioChannelLabel_CenterSurroundDirect: return MA_CHANNEL_BACK_CENTER; + case kAudioChannelLabel_Haptic: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Ambisonic_W: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Ambisonic_X: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Ambisonic_Y: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Ambisonic_Z: return MA_CHANNEL_NONE; + case kAudioChannelLabel_MS_Mid: return MA_CHANNEL_LEFT; + case kAudioChannelLabel_MS_Side: return MA_CHANNEL_RIGHT; + case kAudioChannelLabel_XY_X: return MA_CHANNEL_LEFT; + case kAudioChannelLabel_XY_Y: return MA_CHANNEL_RIGHT; + case kAudioChannelLabel_HeadphonesLeft: return MA_CHANNEL_LEFT; + case kAudioChannelLabel_HeadphonesRight: return MA_CHANNEL_RIGHT; + case kAudioChannelLabel_ClickTrack: return MA_CHANNEL_NONE; + case kAudioChannelLabel_ForeignLanguage: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Discrete: return MA_CHANNEL_NONE; + case kAudioChannelLabel_Discrete_0: return MA_CHANNEL_AUX_0; + case kAudioChannelLabel_Discrete_1: return MA_CHANNEL_AUX_1; + case kAudioChannelLabel_Discrete_2: return MA_CHANNEL_AUX_2; + case kAudioChannelLabel_Discrete_3: return MA_CHANNEL_AUX_3; + case kAudioChannelLabel_Discrete_4: return MA_CHANNEL_AUX_4; + case kAudioChannelLabel_Discrete_5: return MA_CHANNEL_AUX_5; + case kAudioChannelLabel_Discrete_6: return MA_CHANNEL_AUX_6; + case kAudioChannelLabel_Discrete_7: return MA_CHANNEL_AUX_7; + case kAudioChannelLabel_Discrete_8: return MA_CHANNEL_AUX_8; + case kAudioChannelLabel_Discrete_9: return MA_CHANNEL_AUX_9; + case kAudioChannelLabel_Discrete_10: return MA_CHANNEL_AUX_10; + case kAudioChannelLabel_Discrete_11: return MA_CHANNEL_AUX_11; + case kAudioChannelLabel_Discrete_12: return MA_CHANNEL_AUX_12; + case kAudioChannelLabel_Discrete_13: return MA_CHANNEL_AUX_13; + case kAudioChannelLabel_Discrete_14: return MA_CHANNEL_AUX_14; + case kAudioChannelLabel_Discrete_15: return MA_CHANNEL_AUX_15; + case kAudioChannelLabel_Discrete_65535: return MA_CHANNEL_NONE; + + #if 0 /* Introduced in a later version of macOS. */ + case kAudioChannelLabel_HOA_ACN: return MA_CHANNEL_NONE; + case kAudioChannelLabel_HOA_ACN_0: return MA_CHANNEL_AUX_0; + case kAudioChannelLabel_HOA_ACN_1: return MA_CHANNEL_AUX_1; + case kAudioChannelLabel_HOA_ACN_2: return MA_CHANNEL_AUX_2; + case kAudioChannelLabel_HOA_ACN_3: return MA_CHANNEL_AUX_3; + case kAudioChannelLabel_HOA_ACN_4: return MA_CHANNEL_AUX_4; + case kAudioChannelLabel_HOA_ACN_5: return MA_CHANNEL_AUX_5; + case kAudioChannelLabel_HOA_ACN_6: return MA_CHANNEL_AUX_6; + case kAudioChannelLabel_HOA_ACN_7: return MA_CHANNEL_AUX_7; + case kAudioChannelLabel_HOA_ACN_8: return MA_CHANNEL_AUX_8; + case kAudioChannelLabel_HOA_ACN_9: return MA_CHANNEL_AUX_9; + case kAudioChannelLabel_HOA_ACN_10: return MA_CHANNEL_AUX_10; + case kAudioChannelLabel_HOA_ACN_11: return MA_CHANNEL_AUX_11; + case kAudioChannelLabel_HOA_ACN_12: return MA_CHANNEL_AUX_12; + case kAudioChannelLabel_HOA_ACN_13: return MA_CHANNEL_AUX_13; + case kAudioChannelLabel_HOA_ACN_14: return MA_CHANNEL_AUX_14; + case kAudioChannelLabel_HOA_ACN_15: return MA_CHANNEL_AUX_15; + case kAudioChannelLabel_HOA_ACN_65024: return MA_CHANNEL_NONE; + #endif + + default: return MA_CHANNEL_NONE; + } +} + +static ma_result ma_get_channel_map_from_AudioChannelLayout(AudioChannelLayout* pChannelLayout, ma_channel* pChannelMap, size_t channelMapCap) +{ + MA_ASSERT(pChannelLayout != NULL); + + if (pChannelLayout->mChannelLayoutTag == kAudioChannelLayoutTag_UseChannelDescriptions) { + UInt32 iChannel; + for (iChannel = 0; iChannel < pChannelLayout->mNumberChannelDescriptions && iChannel < channelMapCap; ++iChannel) { + pChannelMap[iChannel] = ma_channel_from_AudioChannelLabel(pChannelLayout->mChannelDescriptions[iChannel].mChannelLabel); + } + } else +#if 0 + if (pChannelLayout->mChannelLayoutTag == kAudioChannelLayoutTag_UseChannelBitmap) { + /* This is the same kind of system that's used by Windows audio APIs. */ + UInt32 iChannel = 0; + UInt32 iBit; + AudioChannelBitmap bitmap = pChannelLayout->mChannelBitmap; + for (iBit = 0; iBit < 32 && iChannel < channelMapCap; ++iBit) { + AudioChannelBitmap bit = bitmap & (1 << iBit); + if (bit != 0) { + pChannelMap[iChannel++] = ma_channel_from_AudioChannelBit(bit); + } + } + } else +#endif + { + /* + Need to use the tag to determine the channel map. For now I'm just assuming a default channel map, but later on this should + be updated to determine the mapping based on the tag. + */ + UInt32 channelCount; + + /* Our channel map retrieval APIs below take 32-bit integers, so we'll want to clamp the channel map capacity. */ + if (channelMapCap > 0xFFFFFFFF) { + channelMapCap = 0xFFFFFFFF; + } + + channelCount = ma_min(AudioChannelLayoutTag_GetNumberOfChannels(pChannelLayout->mChannelLayoutTag), (UInt32)channelMapCap); + + switch (pChannelLayout->mChannelLayoutTag) + { + case kAudioChannelLayoutTag_Mono: + case kAudioChannelLayoutTag_Stereo: + case kAudioChannelLayoutTag_StereoHeadphones: + case kAudioChannelLayoutTag_MatrixStereo: + case kAudioChannelLayoutTag_MidSide: + case kAudioChannelLayoutTag_XY: + case kAudioChannelLayoutTag_Binaural: + case kAudioChannelLayoutTag_Ambisonic_B_Format: + { + ma_get_standard_channel_map(ma_standard_channel_map_default, channelCount, pChannelMap); + } break; + + case kAudioChannelLayoutTag_Octagonal: + { + pChannelMap[7] = MA_CHANNEL_SIDE_RIGHT; + pChannelMap[6] = MA_CHANNEL_SIDE_LEFT; + } /* Intentional fallthrough. */ + case kAudioChannelLayoutTag_Hexagonal: + { + pChannelMap[5] = MA_CHANNEL_BACK_CENTER; + } /* Intentional fallthrough. */ + case kAudioChannelLayoutTag_Pentagonal: + { + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + } /* Intentional fallghrough. */ + case kAudioChannelLayoutTag_Quadraphonic: + { + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[1] = MA_CHANNEL_RIGHT; + pChannelMap[0] = MA_CHANNEL_LEFT; + } break; + + /* TODO: Add support for more tags here. */ + + default: + { + ma_get_standard_channel_map(ma_standard_channel_map_default, channelCount, pChannelMap); + } break; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_get_device_object_ids__coreaudio(ma_context* pContext, UInt32* pDeviceCount, AudioObjectID** ppDeviceObjectIDs) /* NOTE: Free the returned buffer with ma_free(). */ +{ + AudioObjectPropertyAddress propAddressDevices; + UInt32 deviceObjectsDataSize; + OSStatus status; + AudioObjectID* pDeviceObjectIDs; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDeviceCount != NULL); + MA_ASSERT(ppDeviceObjectIDs != NULL); + + /* Safety. */ + *pDeviceCount = 0; + *ppDeviceObjectIDs = NULL; + + propAddressDevices.mSelector = kAudioHardwarePropertyDevices; + propAddressDevices.mScope = kAudioObjectPropertyScopeGlobal; + propAddressDevices.mElement = kAudioObjectPropertyElementMaster; + + status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(kAudioObjectSystemObject, &propAddressDevices, 0, NULL, &deviceObjectsDataSize); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + pDeviceObjectIDs = (AudioObjectID*)ma_malloc(deviceObjectsDataSize, &pContext->allocationCallbacks); + if (pDeviceObjectIDs == NULL) { + return MA_OUT_OF_MEMORY; + } + + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(kAudioObjectSystemObject, &propAddressDevices, 0, NULL, &deviceObjectsDataSize, pDeviceObjectIDs); + if (status != noErr) { + ma_free(pDeviceObjectIDs, &pContext->allocationCallbacks); + return ma_result_from_OSStatus(status); + } + + *pDeviceCount = deviceObjectsDataSize / sizeof(AudioObjectID); + *ppDeviceObjectIDs = pDeviceObjectIDs; + + return MA_SUCCESS; +} + +static ma_result ma_get_AudioObject_uid_as_CFStringRef(ma_context* pContext, AudioObjectID objectID, CFStringRef* pUID) +{ + AudioObjectPropertyAddress propAddress; + UInt32 dataSize; + OSStatus status; + + MA_ASSERT(pContext != NULL); + + propAddress.mSelector = kAudioDevicePropertyDeviceUID; + propAddress.mScope = kAudioObjectPropertyScopeGlobal; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + dataSize = sizeof(*pUID); + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(objectID, &propAddress, 0, NULL, &dataSize, pUID); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + return MA_SUCCESS; +} + +static ma_result ma_get_AudioObject_uid(ma_context* pContext, AudioObjectID objectID, size_t bufferSize, char* bufferOut) +{ + CFStringRef uid; + ma_result result; + + MA_ASSERT(pContext != NULL); + + result = ma_get_AudioObject_uid_as_CFStringRef(pContext, objectID, &uid); + if (result != MA_SUCCESS) { + return result; + } + + if (!((ma_CFStringGetCString_proc)pContext->coreaudio.CFStringGetCString)(uid, bufferOut, bufferSize, kCFStringEncodingUTF8)) { + return MA_ERROR; + } + + ((ma_CFRelease_proc)pContext->coreaudio.CFRelease)(uid); + return MA_SUCCESS; +} + +static ma_result ma_get_AudioObject_name(ma_context* pContext, AudioObjectID objectID, size_t bufferSize, char* bufferOut) +{ + AudioObjectPropertyAddress propAddress; + CFStringRef deviceName = NULL; + UInt32 dataSize; + OSStatus status; + + MA_ASSERT(pContext != NULL); + + propAddress.mSelector = kAudioDevicePropertyDeviceNameCFString; + propAddress.mScope = kAudioObjectPropertyScopeGlobal; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + dataSize = sizeof(deviceName); + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(objectID, &propAddress, 0, NULL, &dataSize, &deviceName); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + if (!((ma_CFStringGetCString_proc)pContext->coreaudio.CFStringGetCString)(deviceName, bufferOut, bufferSize, kCFStringEncodingUTF8)) { + return MA_ERROR; + } + + ((ma_CFRelease_proc)pContext->coreaudio.CFRelease)(deviceName); + return MA_SUCCESS; +} + +static ma_bool32 ma_does_AudioObject_support_scope(ma_context* pContext, AudioObjectID deviceObjectID, AudioObjectPropertyScope scope) +{ + AudioObjectPropertyAddress propAddress; + UInt32 dataSize; + OSStatus status; + AudioBufferList* pBufferList; + ma_bool32 isSupported; + + MA_ASSERT(pContext != NULL); + + /* To know whether or not a device is an input device we need ot look at the stream configuration. If it has an output channel it's a playback device. */ + propAddress.mSelector = kAudioDevicePropertyStreamConfiguration; + propAddress.mScope = scope; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); + if (status != noErr) { + return MA_FALSE; + } + + pBufferList = (AudioBufferList*)ma__malloc_from_callbacks(dataSize, &pContext->allocationCallbacks); + if (pBufferList == NULL) { + return MA_FALSE; /* Out of memory. */ + } + + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(deviceObjectID, &propAddress, 0, NULL, &dataSize, pBufferList); + if (status != noErr) { + ma__free_from_callbacks(pBufferList, &pContext->allocationCallbacks); + return MA_FALSE; + } + + isSupported = MA_FALSE; + if (pBufferList->mNumberBuffers > 0) { + isSupported = MA_TRUE; + } + + ma__free_from_callbacks(pBufferList, &pContext->allocationCallbacks); + return isSupported; +} + +static ma_bool32 ma_does_AudioObject_support_playback(ma_context* pContext, AudioObjectID deviceObjectID) +{ + return ma_does_AudioObject_support_scope(pContext, deviceObjectID, kAudioObjectPropertyScopeOutput); +} + +static ma_bool32 ma_does_AudioObject_support_capture(ma_context* pContext, AudioObjectID deviceObjectID) +{ + return ma_does_AudioObject_support_scope(pContext, deviceObjectID, kAudioObjectPropertyScopeInput); +} + + +static ma_result ma_get_AudioObject_stream_descriptions(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, UInt32* pDescriptionCount, AudioStreamRangedDescription** ppDescriptions) /* NOTE: Free the returned pointer with ma_free(). */ +{ + AudioObjectPropertyAddress propAddress; + UInt32 dataSize; + OSStatus status; + AudioStreamRangedDescription* pDescriptions; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDescriptionCount != NULL); + MA_ASSERT(ppDescriptions != NULL); + + /* + TODO: Experiment with kAudioStreamPropertyAvailablePhysicalFormats instead of (or in addition to) kAudioStreamPropertyAvailableVirtualFormats. My + MacBook Pro uses s24/32 format, however, which miniaudio does not currently support. + */ + propAddress.mSelector = kAudioStreamPropertyAvailableVirtualFormats; /*kAudioStreamPropertyAvailablePhysicalFormats;*/ + propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + pDescriptions = (AudioStreamRangedDescription*)ma_malloc(dataSize, &pContext->allocationCallbacks); + if (pDescriptions == NULL) { + return MA_OUT_OF_MEMORY; + } + + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(deviceObjectID, &propAddress, 0, NULL, &dataSize, pDescriptions); + if (status != noErr) { + ma_free(pDescriptions, &pContext->allocationCallbacks); + return ma_result_from_OSStatus(status); + } + + *pDescriptionCount = dataSize / sizeof(*pDescriptions); + *ppDescriptions = pDescriptions; + return MA_SUCCESS; +} + + +static ma_result ma_get_AudioObject_channel_layout(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, AudioChannelLayout** ppChannelLayout) /* NOTE: Free the returned pointer with ma_free(). */ +{ + AudioObjectPropertyAddress propAddress; + UInt32 dataSize; + OSStatus status; + AudioChannelLayout* pChannelLayout; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(ppChannelLayout != NULL); + + *ppChannelLayout = NULL; /* Safety. */ + + propAddress.mSelector = kAudioDevicePropertyPreferredChannelLayout; + propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + pChannelLayout = (AudioChannelLayout*)ma_malloc(dataSize, &pContext->allocationCallbacks); + if (pChannelLayout == NULL) { + return MA_OUT_OF_MEMORY; + } + + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(deviceObjectID, &propAddress, 0, NULL, &dataSize, pChannelLayout); + if (status != noErr) { + ma_free(pChannelLayout, &pContext->allocationCallbacks); + return ma_result_from_OSStatus(status); + } + + *ppChannelLayout = pChannelLayout; + return MA_SUCCESS; +} + +static ma_result ma_get_AudioObject_channel_count(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, ma_uint32* pChannelCount) +{ + AudioChannelLayout* pChannelLayout; + ma_result result; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pChannelCount != NULL); + + *pChannelCount = 0; /* Safety. */ + + result = ma_get_AudioObject_channel_layout(pContext, deviceObjectID, deviceType, &pChannelLayout); + if (result != MA_SUCCESS) { + return result; + } + + if (pChannelLayout->mChannelLayoutTag == kAudioChannelLayoutTag_UseChannelDescriptions) { + *pChannelCount = pChannelLayout->mNumberChannelDescriptions; + } else if (pChannelLayout->mChannelLayoutTag == kAudioChannelLayoutTag_UseChannelBitmap) { + *pChannelCount = ma_count_set_bits(pChannelLayout->mChannelBitmap); + } else { + *pChannelCount = AudioChannelLayoutTag_GetNumberOfChannels(pChannelLayout->mChannelLayoutTag); + } + + ma_free(pChannelLayout, &pContext->allocationCallbacks); + return MA_SUCCESS; +} + +#if 0 +static ma_result ma_get_AudioObject_channel_map(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, ma_channel* pChannelMap, size_t channelMapCap) +{ + AudioChannelLayout* pChannelLayout; + ma_result result; + + MA_ASSERT(pContext != NULL); + + result = ma_get_AudioObject_channel_layout(pContext, deviceObjectID, deviceType, &pChannelLayout); + if (result != MA_SUCCESS) { + return result; /* Rather than always failing here, would it be more robust to simply assume a default? */ + } + + result = ma_get_channel_map_from_AudioChannelLayout(pChannelLayout, pChannelMap, channelMapCap); + if (result != MA_SUCCESS) { + ma_free(pChannelLayout, &pContext->allocationCallbacks); + return result; + } + + ma_free(pChannelLayout, &pContext->allocationCallbacks); + return result; +} +#endif + +static ma_result ma_get_AudioObject_sample_rates(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, UInt32* pSampleRateRangesCount, AudioValueRange** ppSampleRateRanges) /* NOTE: Free the returned pointer with ma_free(). */ +{ + AudioObjectPropertyAddress propAddress; + UInt32 dataSize; + OSStatus status; + AudioValueRange* pSampleRateRanges; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pSampleRateRangesCount != NULL); + MA_ASSERT(ppSampleRateRanges != NULL); + + /* Safety. */ + *pSampleRateRangesCount = 0; + *ppSampleRateRanges = NULL; + + propAddress.mSelector = kAudioDevicePropertyAvailableNominalSampleRates; + propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + pSampleRateRanges = (AudioValueRange*)ma_malloc(dataSize, &pContext->allocationCallbacks); + if (pSampleRateRanges == NULL) { + return MA_OUT_OF_MEMORY; + } + + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(deviceObjectID, &propAddress, 0, NULL, &dataSize, pSampleRateRanges); + if (status != noErr) { + ma_free(pSampleRateRanges, &pContext->allocationCallbacks); + return ma_result_from_OSStatus(status); + } + + *pSampleRateRangesCount = dataSize / sizeof(*pSampleRateRanges); + *ppSampleRateRanges = pSampleRateRanges; + return MA_SUCCESS; +} + +#if 0 +static ma_result ma_get_AudioObject_get_closest_sample_rate(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, ma_uint32 sampleRateIn, ma_uint32* pSampleRateOut) +{ + UInt32 sampleRateRangeCount; + AudioValueRange* pSampleRateRanges; + ma_result result; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pSampleRateOut != NULL); + + *pSampleRateOut = 0; /* Safety. */ + + result = ma_get_AudioObject_sample_rates(pContext, deviceObjectID, deviceType, &sampleRateRangeCount, &pSampleRateRanges); + if (result != MA_SUCCESS) { + return result; + } + + if (sampleRateRangeCount == 0) { + ma_free(pSampleRateRanges, &pContext->allocationCallbacks); + return MA_ERROR; /* Should never hit this case should we? */ + } + + if (sampleRateIn == 0) { + /* Search in order of miniaudio's preferred priority. */ + UInt32 iMALSampleRate; + for (iMALSampleRate = 0; iMALSampleRate < ma_countof(g_maStandardSampleRatePriorities); ++iMALSampleRate) { + ma_uint32 malSampleRate = g_maStandardSampleRatePriorities[iMALSampleRate]; + UInt32 iCASampleRate; + for (iCASampleRate = 0; iCASampleRate < sampleRateRangeCount; ++iCASampleRate) { + AudioValueRange caSampleRate = pSampleRateRanges[iCASampleRate]; + if (caSampleRate.mMinimum <= malSampleRate && caSampleRate.mMaximum >= malSampleRate) { + *pSampleRateOut = malSampleRate; + ma_free(pSampleRateRanges, &pContext->allocationCallbacks); + return MA_SUCCESS; + } + } + } + + /* + If we get here it means none of miniaudio's standard sample rates matched any of the supported sample rates from the device. In this + case we just fall back to the first one reported by Core Audio. + */ + MA_ASSERT(sampleRateRangeCount > 0); + + *pSampleRateOut = pSampleRateRanges[0].mMinimum; + ma_free(pSampleRateRanges, &pContext->allocationCallbacks); + return MA_SUCCESS; + } else { + /* Find the closest match to this sample rate. */ + UInt32 currentAbsoluteDifference = INT32_MAX; + UInt32 iCurrentClosestRange = (UInt32)-1; + UInt32 iRange; + for (iRange = 0; iRange < sampleRateRangeCount; ++iRange) { + if (pSampleRateRanges[iRange].mMinimum <= sampleRateIn && pSampleRateRanges[iRange].mMaximum >= sampleRateIn) { + *pSampleRateOut = sampleRateIn; + ma_free(pSampleRateRanges, &pContext->allocationCallbacks); + return MA_SUCCESS; + } else { + UInt32 absoluteDifference; + if (pSampleRateRanges[iRange].mMinimum > sampleRateIn) { + absoluteDifference = pSampleRateRanges[iRange].mMinimum - sampleRateIn; + } else { + absoluteDifference = sampleRateIn - pSampleRateRanges[iRange].mMaximum; + } + + if (currentAbsoluteDifference > absoluteDifference) { + currentAbsoluteDifference = absoluteDifference; + iCurrentClosestRange = iRange; + } + } + } + + MA_ASSERT(iCurrentClosestRange != (UInt32)-1); + + *pSampleRateOut = pSampleRateRanges[iCurrentClosestRange].mMinimum; + ma_free(pSampleRateRanges, &pContext->allocationCallbacks); + return MA_SUCCESS; + } + + /* Should never get here, but it would mean we weren't able to find any suitable sample rates. */ + /*ma_free(pSampleRateRanges, &pContext->allocationCallbacks);*/ + /*return MA_ERROR;*/ +} +#endif + +static ma_result ma_get_AudioObject_closest_buffer_size_in_frames(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, ma_uint32 bufferSizeInFramesIn, ma_uint32* pBufferSizeInFramesOut) +{ + AudioObjectPropertyAddress propAddress; + AudioValueRange bufferSizeRange; + UInt32 dataSize; + OSStatus status; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pBufferSizeInFramesOut != NULL); + + *pBufferSizeInFramesOut = 0; /* Safety. */ + + propAddress.mSelector = kAudioDevicePropertyBufferFrameSizeRange; + propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + dataSize = sizeof(bufferSizeRange); + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(deviceObjectID, &propAddress, 0, NULL, &dataSize, &bufferSizeRange); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + /* This is just a clamp. */ + if (bufferSizeInFramesIn < bufferSizeRange.mMinimum) { + *pBufferSizeInFramesOut = (ma_uint32)bufferSizeRange.mMinimum; + } else if (bufferSizeInFramesIn > bufferSizeRange.mMaximum) { + *pBufferSizeInFramesOut = (ma_uint32)bufferSizeRange.mMaximum; + } else { + *pBufferSizeInFramesOut = bufferSizeInFramesIn; + } + + return MA_SUCCESS; +} + +static ma_result ma_set_AudioObject_buffer_size_in_frames(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, ma_uint32* pPeriodSizeInOut) +{ + ma_result result; + ma_uint32 chosenBufferSizeInFrames; + AudioObjectPropertyAddress propAddress; + UInt32 dataSize; + OSStatus status; + + MA_ASSERT(pContext != NULL); + + result = ma_get_AudioObject_closest_buffer_size_in_frames(pContext, deviceObjectID, deviceType, *pPeriodSizeInOut, &chosenBufferSizeInFrames); + if (result != MA_SUCCESS) { + return result; + } + + /* Try setting the size of the buffer... If this fails we just use whatever is currently set. */ + propAddress.mSelector = kAudioDevicePropertyBufferFrameSize; + propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + ((ma_AudioObjectSetPropertyData_proc)pContext->coreaudio.AudioObjectSetPropertyData)(deviceObjectID, &propAddress, 0, NULL, sizeof(chosenBufferSizeInFrames), &chosenBufferSizeInFrames); + + /* Get the actual size of the buffer. */ + dataSize = sizeof(*pPeriodSizeInOut); + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(deviceObjectID, &propAddress, 0, NULL, &dataSize, &chosenBufferSizeInFrames); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + *pPeriodSizeInOut = chosenBufferSizeInFrames; + return MA_SUCCESS; +} + +static ma_result ma_find_default_AudioObjectID(ma_context* pContext, ma_device_type deviceType, AudioObjectID* pDeviceObjectID) +{ + AudioObjectPropertyAddress propAddressDefaultDevice; + UInt32 defaultDeviceObjectIDSize = sizeof(AudioObjectID); + AudioObjectID defaultDeviceObjectID; + OSStatus status; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDeviceObjectID != NULL); + + /* Safety. */ + *pDeviceObjectID = 0; + + propAddressDefaultDevice.mScope = kAudioObjectPropertyScopeGlobal; + propAddressDefaultDevice.mElement = kAudioObjectPropertyElementMaster; + if (deviceType == ma_device_type_playback) { + propAddressDefaultDevice.mSelector = kAudioHardwarePropertyDefaultOutputDevice; + } else { + propAddressDefaultDevice.mSelector = kAudioHardwarePropertyDefaultInputDevice; + } + + defaultDeviceObjectIDSize = sizeof(AudioObjectID); + status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(kAudioObjectSystemObject, &propAddressDefaultDevice, 0, NULL, &defaultDeviceObjectIDSize, &defaultDeviceObjectID); + if (status == noErr) { + *pDeviceObjectID = defaultDeviceObjectID; + return MA_SUCCESS; + } + + /* If we get here it means we couldn't find the device. */ + return MA_NO_DEVICE; +} + +static ma_result ma_find_AudioObjectID(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, AudioObjectID* pDeviceObjectID) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDeviceObjectID != NULL); + + /* Safety. */ + *pDeviceObjectID = 0; + + if (pDeviceID == NULL) { + /* Default device. */ + return ma_find_default_AudioObjectID(pContext, deviceType, pDeviceObjectID); + } else { + /* Explicit device. */ + UInt32 deviceCount; + AudioObjectID* pDeviceObjectIDs; + ma_result result; + UInt32 iDevice; + + result = ma_get_device_object_ids__coreaudio(pContext, &deviceCount, &pDeviceObjectIDs); + if (result != MA_SUCCESS) { + return result; + } + + for (iDevice = 0; iDevice < deviceCount; ++iDevice) { + AudioObjectID deviceObjectID = pDeviceObjectIDs[iDevice]; + + char uid[256]; + if (ma_get_AudioObject_uid(pContext, deviceObjectID, sizeof(uid), uid) != MA_SUCCESS) { + continue; + } + + if (deviceType == ma_device_type_playback) { + if (ma_does_AudioObject_support_playback(pContext, deviceObjectID)) { + if (strcmp(uid, pDeviceID->coreaudio) == 0) { + *pDeviceObjectID = deviceObjectID; + ma_free(pDeviceObjectIDs, &pContext->allocationCallbacks); + return MA_SUCCESS; + } + } + } else { + if (ma_does_AudioObject_support_capture(pContext, deviceObjectID)) { + if (strcmp(uid, pDeviceID->coreaudio) == 0) { + *pDeviceObjectID = deviceObjectID; + ma_free(pDeviceObjectIDs, &pContext->allocationCallbacks); + return MA_SUCCESS; + } + } + } + } + + ma_free(pDeviceObjectIDs, &pContext->allocationCallbacks); + } + + /* If we get here it means we couldn't find the device. */ + return MA_NO_DEVICE; +} + + +static ma_result ma_find_best_format__coreaudio(ma_context* pContext, AudioObjectID deviceObjectID, ma_device_type deviceType, ma_format format, ma_uint32 channels, ma_uint32 sampleRate, const AudioStreamBasicDescription* pOrigFormat, AudioStreamBasicDescription* pFormat) +{ + UInt32 deviceFormatDescriptionCount; + AudioStreamRangedDescription* pDeviceFormatDescriptions; + ma_result result; + ma_uint32 desiredSampleRate; + ma_uint32 desiredChannelCount; + ma_format desiredFormat; + AudioStreamBasicDescription bestDeviceFormatSoFar; + ma_bool32 hasSupportedFormat; + UInt32 iFormat; + + result = ma_get_AudioObject_stream_descriptions(pContext, deviceObjectID, deviceType, &deviceFormatDescriptionCount, &pDeviceFormatDescriptions); + if (result != MA_SUCCESS) { + return result; + } + + desiredSampleRate = sampleRate; + if (desiredSampleRate == 0) { + desiredSampleRate = pOrigFormat->mSampleRate; + } + + desiredChannelCount = channels; + if (desiredChannelCount == 0) { + desiredChannelCount = pOrigFormat->mChannelsPerFrame; + } + + desiredFormat = format; + if (desiredFormat == ma_format_unknown) { + result = ma_format_from_AudioStreamBasicDescription(pOrigFormat, &desiredFormat); + if (result != MA_SUCCESS || desiredFormat == ma_format_unknown) { + desiredFormat = g_maFormatPriorities[0]; + } + } + + /* + If we get here it means we don't have an exact match to what the client is asking for. We'll need to find the closest one. The next + loop will check for formats that have the same sample rate to what we're asking for. If there is, we prefer that one in all cases. + */ + MA_ZERO_OBJECT(&bestDeviceFormatSoFar); + + hasSupportedFormat = MA_FALSE; + for (iFormat = 0; iFormat < deviceFormatDescriptionCount; ++iFormat) { + ma_format format; + ma_result formatResult = ma_format_from_AudioStreamBasicDescription(&pDeviceFormatDescriptions[iFormat].mFormat, &format); + if (formatResult == MA_SUCCESS && format != ma_format_unknown) { + hasSupportedFormat = MA_TRUE; + bestDeviceFormatSoFar = pDeviceFormatDescriptions[iFormat].mFormat; + break; + } + } + + if (!hasSupportedFormat) { + ma_free(pDeviceFormatDescriptions, &pContext->allocationCallbacks); + return MA_FORMAT_NOT_SUPPORTED; + } + + + for (iFormat = 0; iFormat < deviceFormatDescriptionCount; ++iFormat) { + AudioStreamBasicDescription thisDeviceFormat = pDeviceFormatDescriptions[iFormat].mFormat; + ma_format thisSampleFormat; + ma_result formatResult; + ma_format bestSampleFormatSoFar; + + /* If the format is not supported by miniaudio we need to skip this one entirely. */ + formatResult = ma_format_from_AudioStreamBasicDescription(&pDeviceFormatDescriptions[iFormat].mFormat, &thisSampleFormat); + if (formatResult != MA_SUCCESS || thisSampleFormat == ma_format_unknown) { + continue; /* The format is not supported by miniaudio. Skip. */ + } + + ma_format_from_AudioStreamBasicDescription(&bestDeviceFormatSoFar, &bestSampleFormatSoFar); + + /* Getting here means the format is supported by miniaudio which makes this format a candidate. */ + if (thisDeviceFormat.mSampleRate != desiredSampleRate) { + /* + The sample rate does not match, but this format could still be usable, although it's a very low priority. If the best format + so far has an equal sample rate we can just ignore this one. + */ + if (bestDeviceFormatSoFar.mSampleRate == desiredSampleRate) { + continue; /* The best sample rate so far has the same sample rate as what we requested which means it's still the best so far. Skip this format. */ + } else { + /* In this case, neither the best format so far nor this one have the same sample rate. Check the channel count next. */ + if (thisDeviceFormat.mChannelsPerFrame != desiredChannelCount) { + /* This format has a different sample rate _and_ a different channel count. */ + if (bestDeviceFormatSoFar.mChannelsPerFrame == desiredChannelCount) { + continue; /* No change to the best format. */ + } else { + /* + Both this format and the best so far have different sample rates and different channel counts. Whichever has the + best format is the new best. + */ + if (ma_get_format_priority_index(thisSampleFormat) < ma_get_format_priority_index(bestSampleFormatSoFar)) { + bestDeviceFormatSoFar = thisDeviceFormat; + continue; + } else { + continue; /* No change to the best format. */ + } + } + } else { + /* This format has a different sample rate but the desired channel count. */ + if (bestDeviceFormatSoFar.mChannelsPerFrame == desiredChannelCount) { + /* Both this format and the best so far have the desired channel count. Whichever has the best format is the new best. */ + if (ma_get_format_priority_index(thisSampleFormat) < ma_get_format_priority_index(bestSampleFormatSoFar)) { + bestDeviceFormatSoFar = thisDeviceFormat; + continue; + } else { + continue; /* No change to the best format for now. */ + } + } else { + /* This format has the desired channel count, but the best so far does not. We have a new best. */ + bestDeviceFormatSoFar = thisDeviceFormat; + continue; + } + } + } + } else { + /* + The sample rates match which makes this format a very high priority contender. If the best format so far has a different + sample rate it needs to be replaced with this one. + */ + if (bestDeviceFormatSoFar.mSampleRate != desiredSampleRate) { + bestDeviceFormatSoFar = thisDeviceFormat; + continue; + } else { + /* In this case both this format and the best format so far have the same sample rate. Check the channel count next. */ + if (thisDeviceFormat.mChannelsPerFrame == desiredChannelCount) { + /* + In this case this format has the same channel count as what the client is requesting. If the best format so far has + a different count, this one becomes the new best. + */ + if (bestDeviceFormatSoFar.mChannelsPerFrame != desiredChannelCount) { + bestDeviceFormatSoFar = thisDeviceFormat; + continue; + } else { + /* In this case both this format and the best so far have the ideal sample rate and channel count. Check the format. */ + if (thisSampleFormat == desiredFormat) { + bestDeviceFormatSoFar = thisDeviceFormat; + break; /* Found the exact match. */ + } else { + /* The formats are different. The new best format is the one with the highest priority format according to miniaudio. */ + if (ma_get_format_priority_index(thisSampleFormat) < ma_get_format_priority_index(bestSampleFormatSoFar)) { + bestDeviceFormatSoFar = thisDeviceFormat; + continue; + } else { + continue; /* No change to the best format for now. */ + } + } + } + } else { + /* + In this case the channel count is different to what the client has requested. If the best so far has the same channel + count as the requested count then it remains the best. + */ + if (bestDeviceFormatSoFar.mChannelsPerFrame == desiredChannelCount) { + continue; + } else { + /* + This is the case where both have the same sample rate (good) but different channel counts. Right now both have about + the same priority, but we need to compare the format now. + */ + if (thisSampleFormat == bestSampleFormatSoFar) { + if (ma_get_format_priority_index(thisSampleFormat) < ma_get_format_priority_index(bestSampleFormatSoFar)) { + bestDeviceFormatSoFar = thisDeviceFormat; + continue; + } else { + continue; /* No change to the best format for now. */ + } + } + } + } + } + } + } + + *pFormat = bestDeviceFormatSoFar; + + ma_free(pDeviceFormatDescriptions, &pContext->allocationCallbacks); + return MA_SUCCESS; +} + +static ma_result ma_get_AudioUnit_channel_map(ma_context* pContext, AudioUnit audioUnit, ma_device_type deviceType, ma_channel* pChannelMap, size_t channelMapCap) +{ + AudioUnitScope deviceScope; + AudioUnitElement deviceBus; + UInt32 channelLayoutSize; + OSStatus status; + AudioChannelLayout* pChannelLayout; + ma_result result; + + MA_ASSERT(pContext != NULL); + + if (deviceType == ma_device_type_playback) { + deviceScope = kAudioUnitScope_Input; + deviceBus = MA_COREAUDIO_OUTPUT_BUS; + } else { + deviceScope = kAudioUnitScope_Output; + deviceBus = MA_COREAUDIO_INPUT_BUS; + } + + status = ((ma_AudioUnitGetPropertyInfo_proc)pContext->coreaudio.AudioUnitGetPropertyInfo)(audioUnit, kAudioUnitProperty_AudioChannelLayout, deviceScope, deviceBus, &channelLayoutSize, NULL); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + pChannelLayout = (AudioChannelLayout*)ma__malloc_from_callbacks(channelLayoutSize, &pContext->allocationCallbacks); + if (pChannelLayout == NULL) { + return MA_OUT_OF_MEMORY; + } + + status = ((ma_AudioUnitGetProperty_proc)pContext->coreaudio.AudioUnitGetProperty)(audioUnit, kAudioUnitProperty_AudioChannelLayout, deviceScope, deviceBus, pChannelLayout, &channelLayoutSize); + if (status != noErr) { + ma__free_from_callbacks(pChannelLayout, &pContext->allocationCallbacks); + return ma_result_from_OSStatus(status); + } + + result = ma_get_channel_map_from_AudioChannelLayout(pChannelLayout, pChannelMap, channelMapCap); + if (result != MA_SUCCESS) { + ma__free_from_callbacks(pChannelLayout, &pContext->allocationCallbacks); + return result; + } + + ma__free_from_callbacks(pChannelLayout, &pContext->allocationCallbacks); + return MA_SUCCESS; +} +#endif /* MA_APPLE_DESKTOP */ + + +#if !defined(MA_APPLE_DESKTOP) +static void ma_AVAudioSessionPortDescription_to_device_info(AVAudioSessionPortDescription* pPortDesc, ma_device_info* pInfo) +{ + MA_ZERO_OBJECT(pInfo); + ma_strncpy_s(pInfo->name, sizeof(pInfo->name), [pPortDesc.portName UTF8String], (size_t)-1); + ma_strncpy_s(pInfo->id.coreaudio, sizeof(pInfo->id.coreaudio), [pPortDesc.UID UTF8String], (size_t)-1); +} +#endif + +static ma_result ma_context_enumerate_devices__coreaudio(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ +#if defined(MA_APPLE_DESKTOP) + UInt32 deviceCount; + AudioObjectID* pDeviceObjectIDs; + AudioObjectID defaultDeviceObjectIDPlayback; + AudioObjectID defaultDeviceObjectIDCapture; + ma_result result; + UInt32 iDevice; + + ma_find_default_AudioObjectID(pContext, ma_device_type_playback, &defaultDeviceObjectIDPlayback); /* OK if this fails. */ + ma_find_default_AudioObjectID(pContext, ma_device_type_capture, &defaultDeviceObjectIDCapture); /* OK if this fails. */ + + result = ma_get_device_object_ids__coreaudio(pContext, &deviceCount, &pDeviceObjectIDs); + if (result != MA_SUCCESS) { + return result; + } + + for (iDevice = 0; iDevice < deviceCount; ++iDevice) { + AudioObjectID deviceObjectID = pDeviceObjectIDs[iDevice]; + ma_device_info info; + + MA_ZERO_OBJECT(&info); + if (ma_get_AudioObject_uid(pContext, deviceObjectID, sizeof(info.id.coreaudio), info.id.coreaudio) != MA_SUCCESS) { + continue; + } + if (ma_get_AudioObject_name(pContext, deviceObjectID, sizeof(info.name), info.name) != MA_SUCCESS) { + continue; + } + + if (ma_does_AudioObject_support_playback(pContext, deviceObjectID)) { + if (deviceObjectID == defaultDeviceObjectIDPlayback) { + info.isDefault = MA_TRUE; + } + + if (!callback(pContext, ma_device_type_playback, &info, pUserData)) { + break; + } + } + if (ma_does_AudioObject_support_capture(pContext, deviceObjectID)) { + if (deviceObjectID == defaultDeviceObjectIDCapture) { + info.isDefault = MA_TRUE; + } + + if (!callback(pContext, ma_device_type_capture, &info, pUserData)) { + break; + } + } + } + + ma_free(pDeviceObjectIDs, &pContext->allocationCallbacks); +#else + ma_device_info info; + NSArray *pInputs = [[[AVAudioSession sharedInstance] currentRoute] inputs]; + NSArray *pOutputs = [[[AVAudioSession sharedInstance] currentRoute] outputs]; + + for (AVAudioSessionPortDescription* pPortDesc in pOutputs) { + ma_AVAudioSessionPortDescription_to_device_info(pPortDesc, &info); + if (!callback(pContext, ma_device_type_playback, &info, pUserData)) { + return MA_SUCCESS; + } + } + + for (AVAudioSessionPortDescription* pPortDesc in pInputs) { + ma_AVAudioSessionPortDescription_to_device_info(pPortDesc, &info); + if (!callback(pContext, ma_device_type_capture, &info, pUserData)) { + return MA_SUCCESS; + } + } +#endif + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__coreaudio(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + ma_result result; + + MA_ASSERT(pContext != NULL); + +#if defined(MA_APPLE_DESKTOP) + /* Desktop */ + { + AudioObjectID deviceObjectID; + AudioObjectID defaultDeviceObjectID; + UInt32 streamDescriptionCount; + AudioStreamRangedDescription* pStreamDescriptions; + UInt32 iStreamDescription; + UInt32 sampleRateRangeCount; + AudioValueRange* pSampleRateRanges; + + ma_find_default_AudioObjectID(pContext, deviceType, &defaultDeviceObjectID); /* OK if this fails. */ + + result = ma_find_AudioObjectID(pContext, deviceType, pDeviceID, &deviceObjectID); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_get_AudioObject_uid(pContext, deviceObjectID, sizeof(pDeviceInfo->id.coreaudio), pDeviceInfo->id.coreaudio); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_get_AudioObject_name(pContext, deviceObjectID, sizeof(pDeviceInfo->name), pDeviceInfo->name); + if (result != MA_SUCCESS) { + return result; + } + + if (deviceObjectID == defaultDeviceObjectID) { + pDeviceInfo->isDefault = MA_TRUE; + } + + /* + There could be a large number of permutations here. Fortunately there is only a single channel count + being reported which reduces this quite a bit. For sample rates we're only reporting those that are + one of miniaudio's recognized "standard" rates. If there are still more formats than can fit into + our fixed sized array we'll just need to truncate them. This is unlikely and will probably only happen + if some driver performs software data conversion and therefore reports every possible format and + sample rate. + */ + pDeviceInfo->nativeDataFormatCount = 0; + + /* Formats. */ + { + ma_format uniqueFormats[ma_format_count]; + ma_uint32 uniqueFormatCount = 0; + ma_uint32 channels; + + /* Channels. */ + result = ma_get_AudioObject_channel_count(pContext, deviceObjectID, deviceType, &channels); + if (result != MA_SUCCESS) { + return result; + } + + /* Formats. */ + result = ma_get_AudioObject_stream_descriptions(pContext, deviceObjectID, deviceType, &streamDescriptionCount, &pStreamDescriptions); + if (result != MA_SUCCESS) { + return result; + } + + for (iStreamDescription = 0; iStreamDescription < streamDescriptionCount; ++iStreamDescription) { + ma_format format; + ma_bool32 hasFormatBeenHandled = MA_FALSE; + ma_uint32 iOutputFormat; + ma_uint32 iSampleRate; + + result = ma_format_from_AudioStreamBasicDescription(&pStreamDescriptions[iStreamDescription].mFormat, &format); + if (result != MA_SUCCESS) { + continue; + } + + MA_ASSERT(format != ma_format_unknown); + + /* Make sure the format isn't already in the output list. */ + for (iOutputFormat = 0; iOutputFormat < uniqueFormatCount; ++iOutputFormat) { + if (uniqueFormats[iOutputFormat] == format) { + hasFormatBeenHandled = MA_TRUE; + break; + } + } + + /* If we've already handled this format just skip it. */ + if (hasFormatBeenHandled) { + continue; + } + + uniqueFormats[uniqueFormatCount] = format; + uniqueFormatCount += 1; + + /* Sample Rates */ + result = ma_get_AudioObject_sample_rates(pContext, deviceObjectID, deviceType, &sampleRateRangeCount, &pSampleRateRanges); + if (result != MA_SUCCESS) { + return result; + } + + /* + Annoyingly Core Audio reports a sample rate range. We just get all the standard rates that are + between this range. + */ + for (iSampleRate = 0; iSampleRate < sampleRateRangeCount; ++iSampleRate) { + ma_uint32 iStandardSampleRate; + for (iStandardSampleRate = 0; iStandardSampleRate < ma_countof(g_maStandardSampleRatePriorities); iStandardSampleRate += 1) { + ma_uint32 standardSampleRate = g_maStandardSampleRatePriorities[iStandardSampleRate]; + if (standardSampleRate >= pSampleRateRanges[iSampleRate].mMinimum && standardSampleRate <= pSampleRateRanges[iSampleRate].mMaximum) { + /* We have a new data format. Add it to the list. */ + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].format = format; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].channels = channels; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].sampleRate = standardSampleRate; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].flags = 0; + pDeviceInfo->nativeDataFormatCount += 1; + + if (pDeviceInfo->nativeDataFormatCount >= ma_countof(pDeviceInfo->nativeDataFormats)) { + break; /* No more room for any more formats. */ + } + } + } + } + + ma_free(pSampleRateRanges, &pContext->allocationCallbacks); + + if (pDeviceInfo->nativeDataFormatCount >= ma_countof(pDeviceInfo->nativeDataFormats)) { + break; /* No more room for any more formats. */ + } + } + + ma_free(pStreamDescriptions, &pContext->allocationCallbacks); + } + } +#else + /* Mobile */ + { + AudioComponentDescription desc; + AudioComponent component; + AudioUnit audioUnit; + OSStatus status; + AudioUnitScope formatScope; + AudioUnitElement formatElement; + AudioStreamBasicDescription bestFormat; + UInt32 propSize; + + /* We want to ensure we use a consistent device name to device enumeration. */ + if (pDeviceID != NULL) { + ma_bool32 found = MA_FALSE; + if (deviceType == ma_device_type_playback) { + NSArray *pOutputs = [[[AVAudioSession sharedInstance] currentRoute] outputs]; + for (AVAudioSessionPortDescription* pPortDesc in pOutputs) { + if (strcmp(pDeviceID->coreaudio, [pPortDesc.UID UTF8String]) == 0) { + ma_AVAudioSessionPortDescription_to_device_info(pPortDesc, pDeviceInfo); + found = MA_TRUE; + break; + } + } + } else { + NSArray *pInputs = [[[AVAudioSession sharedInstance] currentRoute] inputs]; + for (AVAudioSessionPortDescription* pPortDesc in pInputs) { + if (strcmp(pDeviceID->coreaudio, [pPortDesc.UID UTF8String]) == 0) { + ma_AVAudioSessionPortDescription_to_device_info(pPortDesc, pDeviceInfo); + found = MA_TRUE; + break; + } + } + } + + if (!found) { + return MA_DOES_NOT_EXIST; + } + } else { + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + } + + + /* + Retrieving device information is more annoying on mobile than desktop. For simplicity I'm locking this down to whatever format is + reported on a temporary I/O unit. The problem, however, is that this doesn't return a value for the sample rate which we need to + retrieve from the AVAudioSession shared instance. + */ + desc.componentType = kAudioUnitType_Output; + desc.componentSubType = kAudioUnitSubType_RemoteIO; + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + desc.componentFlags = 0; + desc.componentFlagsMask = 0; + + component = ((ma_AudioComponentFindNext_proc)pContext->coreaudio.AudioComponentFindNext)(NULL, &desc); + if (component == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + status = ((ma_AudioComponentInstanceNew_proc)pContext->coreaudio.AudioComponentInstanceNew)(component, &audioUnit); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + formatScope = (deviceType == ma_device_type_playback) ? kAudioUnitScope_Input : kAudioUnitScope_Output; + formatElement = (deviceType == ma_device_type_playback) ? MA_COREAUDIO_OUTPUT_BUS : MA_COREAUDIO_INPUT_BUS; + + propSize = sizeof(bestFormat); + status = ((ma_AudioUnitGetProperty_proc)pContext->coreaudio.AudioUnitGetProperty)(audioUnit, kAudioUnitProperty_StreamFormat, formatScope, formatElement, &bestFormat, &propSize); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(audioUnit); + return ma_result_from_OSStatus(status); + } + + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(audioUnit); + audioUnit = NULL; + + /* Only a single format is being reported for iOS. */ + pDeviceInfo->nativeDataFormatCount = 1; + + result = ma_format_from_AudioStreamBasicDescription(&bestFormat, &pDeviceInfo->nativeDataFormats[0].format); + if (result != MA_SUCCESS) { + return result; + } + + pDeviceInfo->nativeDataFormats[0].channels = bestFormat.mChannelsPerFrame; + + /* + It looks like Apple are wanting to push the whole AVAudioSession thing. Thus, we need to use that to determine device settings. To do + this we just get the shared instance and inspect. + */ + @autoreleasepool { + AVAudioSession* pAudioSession = [AVAudioSession sharedInstance]; + MA_ASSERT(pAudioSession != NULL); + + pDeviceInfo->nativeDataFormats[0].sampleRate = (ma_uint32)pAudioSession.sampleRate; + } + } +#endif + + (void)pDeviceInfo; /* Unused. */ + return MA_SUCCESS; +} + +static AudioBufferList* ma_allocate_AudioBufferList__coreaudio(ma_uint32 sizeInFrames, ma_format format, ma_uint32 channels, ma_stream_layout layout, const ma_allocation_callbacks* pAllocationCallbacks) +{ + AudioBufferList* pBufferList; + UInt32 audioBufferSizeInBytes; + size_t allocationSize; + + MA_ASSERT(sizeInFrames > 0); + MA_ASSERT(format != ma_format_unknown); + MA_ASSERT(channels > 0); + + allocationSize = sizeof(AudioBufferList) - sizeof(AudioBuffer); /* Subtract sizeof(AudioBuffer) because that part is dynamically sized. */ + if (layout == ma_stream_layout_interleaved) { + /* Interleaved case. This is the simple case because we just have one buffer. */ + allocationSize += sizeof(AudioBuffer) * 1; + } else { + /* Non-interleaved case. This is the more complex case because there's more than one buffer. */ + allocationSize += sizeof(AudioBuffer) * channels; + } + + allocationSize += sizeInFrames * ma_get_bytes_per_frame(format, channels); + + pBufferList = (AudioBufferList*)ma__malloc_from_callbacks(allocationSize, pAllocationCallbacks); + if (pBufferList == NULL) { + return NULL; + } + + audioBufferSizeInBytes = (UInt32)(sizeInFrames * ma_get_bytes_per_sample(format)); + + if (layout == ma_stream_layout_interleaved) { + pBufferList->mNumberBuffers = 1; + pBufferList->mBuffers[0].mNumberChannels = channels; + pBufferList->mBuffers[0].mDataByteSize = audioBufferSizeInBytes * channels; + pBufferList->mBuffers[0].mData = (ma_uint8*)pBufferList + sizeof(AudioBufferList); + } else { + ma_uint32 iBuffer; + pBufferList->mNumberBuffers = channels; + for (iBuffer = 0; iBuffer < pBufferList->mNumberBuffers; ++iBuffer) { + pBufferList->mBuffers[iBuffer].mNumberChannels = 1; + pBufferList->mBuffers[iBuffer].mDataByteSize = audioBufferSizeInBytes; + pBufferList->mBuffers[iBuffer].mData = (ma_uint8*)pBufferList + ((sizeof(AudioBufferList) - sizeof(AudioBuffer)) + (sizeof(AudioBuffer) * channels)) + (audioBufferSizeInBytes * iBuffer); + } + } + + return pBufferList; +} + +static ma_result ma_device_realloc_AudioBufferList__coreaudio(ma_device* pDevice, ma_uint32 sizeInFrames, ma_format format, ma_uint32 channels, ma_stream_layout layout) +{ + MA_ASSERT(pDevice != NULL); + MA_ASSERT(format != ma_format_unknown); + MA_ASSERT(channels > 0); + + /* Only resize the buffer if necessary. */ + if (pDevice->coreaudio.audioBufferCapInFrames < sizeInFrames) { + AudioBufferList* pNewAudioBufferList; + + pNewAudioBufferList = ma_allocate_AudioBufferList__coreaudio(sizeInFrames, format, channels, layout, &pDevice->pContext->allocationCallbacks); + if (pNewAudioBufferList != NULL) { + return MA_OUT_OF_MEMORY; + } + + /* At this point we'll have a new AudioBufferList and we can free the old one. */ + ma__free_from_callbacks(pDevice->coreaudio.pAudioBufferList, &pDevice->pContext->allocationCallbacks); + pDevice->coreaudio.pAudioBufferList = pNewAudioBufferList; + pDevice->coreaudio.audioBufferCapInFrames = sizeInFrames; + } + + /* Getting here means the capacity of the audio is fine. */ + return MA_SUCCESS; +} + + +static OSStatus ma_on_output__coreaudio(void* pUserData, AudioUnitRenderActionFlags* pActionFlags, const AudioTimeStamp* pTimeStamp, UInt32 busNumber, UInt32 frameCount, AudioBufferList* pBufferList) +{ + ma_device* pDevice = (ma_device*)pUserData; + ma_stream_layout layout; + + MA_ASSERT(pDevice != NULL); + +#if defined(MA_DEBUG_OUTPUT) + printf("INFO: Output Callback: busNumber=%d, frameCount=%d, mNumberBuffers=%d\n", busNumber, frameCount, pBufferList->mNumberBuffers); +#endif + + /* We need to check whether or not we are outputting interleaved or non-interleaved samples. The way we do this is slightly different for each type. */ + layout = ma_stream_layout_interleaved; + if (pBufferList->mBuffers[0].mNumberChannels != pDevice->playback.internalChannels) { + layout = ma_stream_layout_deinterleaved; + } + + if (layout == ma_stream_layout_interleaved) { + /* For now we can assume everything is interleaved. */ + UInt32 iBuffer; + for (iBuffer = 0; iBuffer < pBufferList->mNumberBuffers; ++iBuffer) { + if (pBufferList->mBuffers[iBuffer].mNumberChannels == pDevice->playback.internalChannels) { + ma_uint32 frameCountForThisBuffer = pBufferList->mBuffers[iBuffer].mDataByteSize / ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + if (frameCountForThisBuffer > 0) { + ma_device_handle_backend_data_callback(pDevice, pBufferList->mBuffers[iBuffer].mData, NULL, frameCountForThisBuffer); + } + + #if defined(MA_DEBUG_OUTPUT) + printf(" frameCount=%d, mNumberChannels=%d, mDataByteSize=%d\n", frameCount, pBufferList->mBuffers[iBuffer].mNumberChannels, pBufferList->mBuffers[iBuffer].mDataByteSize); + #endif + } else { + /* + This case is where the number of channels in the output buffer do not match our internal channels. It could mean that it's + not interleaved, in which case we can't handle right now since miniaudio does not yet support non-interleaved streams. We just + output silence here. + */ + MA_ZERO_MEMORY(pBufferList->mBuffers[iBuffer].mData, pBufferList->mBuffers[iBuffer].mDataByteSize); + + #if defined(MA_DEBUG_OUTPUT) + printf(" WARNING: Outputting silence. frameCount=%d, mNumberChannels=%d, mDataByteSize=%d\n", frameCount, pBufferList->mBuffers[iBuffer].mNumberChannels, pBufferList->mBuffers[iBuffer].mDataByteSize); + #endif + } + } + } else { + /* This is the deinterleaved case. We need to update each buffer in groups of internalChannels. This assumes each buffer is the same size. */ + MA_ASSERT(pDevice->playback.internalChannels <= MA_MAX_CHANNELS); /* This should heve been validated at initialization time. */ + + /* + For safety we'll check that the internal channels is a multiple of the buffer count. If it's not it means something + very strange has happened and we're not going to support it. + */ + if ((pBufferList->mNumberBuffers % pDevice->playback.internalChannels) == 0) { + ma_uint8 tempBuffer[4096]; + UInt32 iBuffer; + + for (iBuffer = 0; iBuffer < pBufferList->mNumberBuffers; iBuffer += pDevice->playback.internalChannels) { + ma_uint32 frameCountPerBuffer = pBufferList->mBuffers[iBuffer].mDataByteSize / ma_get_bytes_per_sample(pDevice->playback.internalFormat); + ma_uint32 framesRemaining = frameCountPerBuffer; + + while (framesRemaining > 0) { + void* ppDeinterleavedBuffers[MA_MAX_CHANNELS]; + ma_uint32 iChannel; + ma_uint32 framesToRead = sizeof(tempBuffer) / ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + if (framesToRead > framesRemaining) { + framesToRead = framesRemaining; + } + + ma_device_handle_backend_data_callback(pDevice, tempBuffer, NULL, framesToRead); + + for (iChannel = 0; iChannel < pDevice->playback.internalChannels; ++iChannel) { + ppDeinterleavedBuffers[iChannel] = (void*)ma_offset_ptr(pBufferList->mBuffers[iBuffer+iChannel].mData, (frameCountPerBuffer - framesRemaining) * ma_get_bytes_per_sample(pDevice->playback.internalFormat)); + } + + ma_deinterleave_pcm_frames(pDevice->playback.internalFormat, pDevice->playback.internalChannels, framesToRead, tempBuffer, ppDeinterleavedBuffers); + + framesRemaining -= framesToRead; + } + } + } + } + + (void)pActionFlags; + (void)pTimeStamp; + (void)busNumber; + (void)frameCount; + + return noErr; +} + +static OSStatus ma_on_input__coreaudio(void* pUserData, AudioUnitRenderActionFlags* pActionFlags, const AudioTimeStamp* pTimeStamp, UInt32 busNumber, UInt32 frameCount, AudioBufferList* pUnusedBufferList) +{ + ma_device* pDevice = (ma_device*)pUserData; + AudioBufferList* pRenderedBufferList; + ma_result result; + ma_stream_layout layout; + ma_uint32 iBuffer; + OSStatus status; + + MA_ASSERT(pDevice != NULL); + + pRenderedBufferList = (AudioBufferList*)pDevice->coreaudio.pAudioBufferList; + MA_ASSERT(pRenderedBufferList); + + /* We need to check whether or not we are outputting interleaved or non-interleaved samples. The way we do this is slightly different for each type. */ + layout = ma_stream_layout_interleaved; + if (pRenderedBufferList->mBuffers[0].mNumberChannels != pDevice->capture.internalChannels) { + layout = ma_stream_layout_deinterleaved; + } + +#if defined(MA_DEBUG_OUTPUT) + printf("INFO: Input Callback: busNumber=%d, frameCount=%d, mNumberBuffers=%d\n", busNumber, frameCount, pRenderedBufferList->mNumberBuffers); +#endif + + /* + There has been a situation reported where frame count passed into this function is greater than the capacity of + our capture buffer. There doesn't seem to be a reliable way to determine what the maximum frame count will be, + so we need to instead resort to dynamically reallocating our buffer to ensure it's large enough to capture the + number of frames requested by this callback. + */ + result = ma_device_realloc_AudioBufferList__coreaudio(pDevice, frameCount, pDevice->capture.internalFormat, pDevice->capture.internalChannels, layout); + if (result != MA_SUCCESS) { + #if defined(MA_DEBUG_OUTPUT) + printf("Failed to allocate AudioBufferList for capture."); + #endif + return noErr; + } + + /* + When you call AudioUnitRender(), Core Audio tries to be helpful by setting the mDataByteSize to the number of bytes + that were actually rendered. The problem with this is that the next call can fail with -50 due to the size no longer + being set to the capacity of the buffer, but instead the size in bytes of the previous render. This will cause a + problem when a future call to this callback specifies a larger number of frames. + + To work around this we need to explicitly set the size of each buffer to their respective size in bytes. + */ + for (iBuffer = 0; iBuffer < pRenderedBufferList->mNumberBuffers; ++iBuffer) { + pRenderedBufferList->mBuffers[iBuffer].mDataByteSize = pDevice->coreaudio.audioBufferCapInFrames * ma_get_bytes_per_sample(pDevice->capture.internalFormat) * pRenderedBufferList->mBuffers[iBuffer].mNumberChannels; + } + + status = ((ma_AudioUnitRender_proc)pDevice->pContext->coreaudio.AudioUnitRender)((AudioUnit)pDevice->coreaudio.audioUnitCapture, pActionFlags, pTimeStamp, busNumber, frameCount, pRenderedBufferList); + if (status != noErr) { + #if defined(MA_DEBUG_OUTPUT) + printf(" ERROR: AudioUnitRender() failed with %d\n", status); + #endif + return status; + } + + if (layout == ma_stream_layout_interleaved) { + for (iBuffer = 0; iBuffer < pRenderedBufferList->mNumberBuffers; ++iBuffer) { + if (pRenderedBufferList->mBuffers[iBuffer].mNumberChannels == pDevice->capture.internalChannels) { + ma_device_handle_backend_data_callback(pDevice, NULL, pRenderedBufferList->mBuffers[iBuffer].mData, frameCount); + + #if defined(MA_DEBUG_OUTPUT) + printf(" mDataByteSize=%d\n", pRenderedBufferList->mBuffers[iBuffer].mDataByteSize); + #endif + } else { + /* + This case is where the number of channels in the output buffer do not match our internal channels. It could mean that it's + not interleaved, in which case we can't handle right now since miniaudio does not yet support non-interleaved streams. + */ + ma_uint8 silentBuffer[4096]; + ma_uint32 framesRemaining; + + MA_ZERO_MEMORY(silentBuffer, sizeof(silentBuffer)); + + framesRemaining = frameCount; + while (framesRemaining > 0) { + ma_uint32 framesToSend = sizeof(silentBuffer) / ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + if (framesToSend > framesRemaining) { + framesToSend = framesRemaining; + } + + ma_device_handle_backend_data_callback(pDevice, NULL, silentBuffer, framesToSend); + + framesRemaining -= framesToSend; + } + + #if defined(MA_DEBUG_OUTPUT) + printf(" WARNING: Outputting silence. frameCount=%d, mNumberChannels=%d, mDataByteSize=%d\n", frameCount, pRenderedBufferList->mBuffers[iBuffer].mNumberChannels, pRenderedBufferList->mBuffers[iBuffer].mDataByteSize); + #endif + } + } + } else { + /* This is the deinterleaved case. We need to interleave the audio data before sending it to the client. This assumes each buffer is the same size. */ + MA_ASSERT(pDevice->capture.internalChannels <= MA_MAX_CHANNELS); /* This should have been validated at initialization time. */ + + /* + For safety we'll check that the internal channels is a multiple of the buffer count. If it's not it means something + very strange has happened and we're not going to support it. + */ + if ((pRenderedBufferList->mNumberBuffers % pDevice->capture.internalChannels) == 0) { + ma_uint8 tempBuffer[4096]; + for (iBuffer = 0; iBuffer < pRenderedBufferList->mNumberBuffers; iBuffer += pDevice->capture.internalChannels) { + ma_uint32 framesRemaining = frameCount; + while (framesRemaining > 0) { + void* ppDeinterleavedBuffers[MA_MAX_CHANNELS]; + ma_uint32 iChannel; + ma_uint32 framesToSend = sizeof(tempBuffer) / ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + if (framesToSend > framesRemaining) { + framesToSend = framesRemaining; + } + + for (iChannel = 0; iChannel < pDevice->capture.internalChannels; ++iChannel) { + ppDeinterleavedBuffers[iChannel] = (void*)ma_offset_ptr(pRenderedBufferList->mBuffers[iBuffer+iChannel].mData, (frameCount - framesRemaining) * ma_get_bytes_per_sample(pDevice->capture.internalFormat)); + } + + ma_interleave_pcm_frames(pDevice->capture.internalFormat, pDevice->capture.internalChannels, framesToSend, (const void**)ppDeinterleavedBuffers, tempBuffer); + ma_device_handle_backend_data_callback(pDevice, NULL, tempBuffer, framesToSend); + + framesRemaining -= framesToSend; + } + } + } + } + + (void)pActionFlags; + (void)pTimeStamp; + (void)busNumber; + (void)frameCount; + (void)pUnusedBufferList; + + return noErr; +} + +static void on_start_stop__coreaudio(void* pUserData, AudioUnit audioUnit, AudioUnitPropertyID propertyID, AudioUnitScope scope, AudioUnitElement element) +{ + ma_device* pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + /* + There's been a report of a deadlock here when triggered by ma_device_uninit(). It looks like + AudioUnitGetProprty (called below) and AudioComponentInstanceDispose (called in ma_device_uninit) + can try waiting on the same lock. I'm going to try working around this by not calling any Core + Audio APIs in the callback when the device has been stopped or uninitialized. + */ + if (ma_device_get_state(pDevice) == MA_STATE_UNINITIALIZED || ma_device_get_state(pDevice) == MA_STATE_STOPPING || ma_device_get_state(pDevice) == MA_STATE_STOPPED) { + ma_stop_proc onStop = pDevice->onStop; + if (onStop) { + onStop(pDevice); + } + + ma_event_signal(&pDevice->coreaudio.stopEvent); + } else { + UInt32 isRunning; + UInt32 isRunningSize = sizeof(isRunning); + OSStatus status = ((ma_AudioUnitGetProperty_proc)pDevice->pContext->coreaudio.AudioUnitGetProperty)(audioUnit, kAudioOutputUnitProperty_IsRunning, scope, element, &isRunning, &isRunningSize); + if (status != noErr) { + return; /* Don't really know what to do in this case... just ignore it, I suppose... */ + } + + if (!isRunning) { + ma_stop_proc onStop; + + /* + The stop event is a bit annoying in Core Audio because it will be called when we automatically switch the default device. Some scenarios to consider: + + 1) When the device is unplugged, this will be called _before_ the default device change notification. + 2) When the device is changed via the default device change notification, this will be called _after_ the switch. + + For case #1, we just check if there's a new default device available. If so, we just ignore the stop event. For case #2 we check a flag. + */ + if (((audioUnit == pDevice->coreaudio.audioUnitPlayback) && pDevice->coreaudio.isDefaultPlaybackDevice) || + ((audioUnit == pDevice->coreaudio.audioUnitCapture) && pDevice->coreaudio.isDefaultCaptureDevice)) { + /* + It looks like the device is switching through an external event, such as the user unplugging the device or changing the default device + via the operating system's sound settings. If we're re-initializing the device, we just terminate because we want the stopping of the + device to be seamless to the client (we don't want them receiving the onStop event and thinking that the device has stopped when it + hasn't!). + */ + if (((audioUnit == pDevice->coreaudio.audioUnitPlayback) && pDevice->coreaudio.isSwitchingPlaybackDevice) || + ((audioUnit == pDevice->coreaudio.audioUnitCapture) && pDevice->coreaudio.isSwitchingCaptureDevice)) { + return; + } + + /* + Getting here means the device is not reinitializing which means it may have been unplugged. From what I can see, it looks like Core Audio + will try switching to the new default device seamlessly. We need to somehow find a way to determine whether or not Core Audio will most + likely be successful in switching to the new device. + + TODO: Try to predict if Core Audio will switch devices. If not, the onStop callback needs to be posted. + */ + return; + } + + /* Getting here means we need to stop the device. */ + onStop = pDevice->onStop; + if (onStop) { + onStop(pDevice); + } + } + } + + (void)propertyID; /* Unused. */ +} + +#if defined(MA_APPLE_DESKTOP) +static ma_spinlock g_DeviceTrackingInitLock_CoreAudio = 0; /* A spinlock for mutal exclusion of the init/uninit of the global tracking data. Initialization to 0 is what we need. */ +static ma_uint32 g_DeviceTrackingInitCounter_CoreAudio = 0; +static ma_mutex g_DeviceTrackingMutex_CoreAudio; +static ma_device** g_ppTrackedDevices_CoreAudio = NULL; +static ma_uint32 g_TrackedDeviceCap_CoreAudio = 0; +static ma_uint32 g_TrackedDeviceCount_CoreAudio = 0; + +static OSStatus ma_default_device_changed__coreaudio(AudioObjectID objectID, UInt32 addressCount, const AudioObjectPropertyAddress* pAddresses, void* pUserData) +{ + ma_device_type deviceType; + + /* Not sure if I really need to check this, but it makes me feel better. */ + if (addressCount == 0) { + return noErr; + } + + if (pAddresses[0].mSelector == kAudioHardwarePropertyDefaultOutputDevice) { + deviceType = ma_device_type_playback; + } else if (pAddresses[0].mSelector == kAudioHardwarePropertyDefaultInputDevice) { + deviceType = ma_device_type_capture; + } else { + return noErr; /* Should never hit this. */ + } + + ma_mutex_lock(&g_DeviceTrackingMutex_CoreAudio); + { + ma_uint32 iDevice; + for (iDevice = 0; iDevice < g_TrackedDeviceCount_CoreAudio; iDevice += 1) { + ma_result reinitResult; + ma_device* pDevice; + + pDevice = g_ppTrackedDevices_CoreAudio[iDevice]; + if (pDevice->type == deviceType || pDevice->type == ma_device_type_duplex) { + if (deviceType == ma_device_type_playback) { + pDevice->coreaudio.isSwitchingPlaybackDevice = MA_TRUE; + reinitResult = ma_device_reinit_internal__coreaudio(pDevice, deviceType, MA_TRUE); + pDevice->coreaudio.isSwitchingPlaybackDevice = MA_FALSE; + } else { + pDevice->coreaudio.isSwitchingCaptureDevice = MA_TRUE; + reinitResult = ma_device_reinit_internal__coreaudio(pDevice, deviceType, MA_TRUE); + pDevice->coreaudio.isSwitchingCaptureDevice = MA_FALSE; + } + + if (reinitResult == MA_SUCCESS) { + ma_device__post_init_setup(pDevice, deviceType); + + /* Restart the device if required. If this fails we need to stop the device entirely. */ + if (ma_device_get_state(pDevice) == MA_STATE_STARTED) { + OSStatus status; + if (deviceType == ma_device_type_playback) { + status = ((ma_AudioOutputUnitStart_proc)pDevice->pContext->coreaudio.AudioOutputUnitStart)((AudioUnit)pDevice->coreaudio.audioUnitPlayback); + if (status != noErr) { + if (pDevice->type == ma_device_type_duplex) { + ((ma_AudioOutputUnitStop_proc)pDevice->pContext->coreaudio.AudioOutputUnitStop)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + } + ma_device__set_state(pDevice, MA_STATE_STOPPED); + } + } else if (deviceType == ma_device_type_capture) { + status = ((ma_AudioOutputUnitStart_proc)pDevice->pContext->coreaudio.AudioOutputUnitStart)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + if (status != noErr) { + if (pDevice->type == ma_device_type_duplex) { + ((ma_AudioOutputUnitStop_proc)pDevice->pContext->coreaudio.AudioOutputUnitStop)((AudioUnit)pDevice->coreaudio.audioUnitPlayback); + } + ma_device__set_state(pDevice, MA_STATE_STOPPED); + } + } + } + } + } + } + } + ma_mutex_unlock(&g_DeviceTrackingMutex_CoreAudio); + + /* Unused parameters. */ + (void)objectID; + (void)pUserData; + + return noErr; +} + +static ma_result ma_context__init_device_tracking__coreaudio(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + + ma_spinlock_lock(&g_DeviceTrackingInitLock_CoreAudio); + { + /* Don't do anything if we've already initializd device tracking. */ + if (g_DeviceTrackingInitCounter_CoreAudio == 0) { + AudioObjectPropertyAddress propAddress; + propAddress.mScope = kAudioObjectPropertyScopeGlobal; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + ma_mutex_init(&g_DeviceTrackingMutex_CoreAudio); + + propAddress.mSelector = kAudioHardwarePropertyDefaultInputDevice; + ((ma_AudioObjectAddPropertyListener_proc)pContext->coreaudio.AudioObjectAddPropertyListener)(kAudioObjectSystemObject, &propAddress, &ma_default_device_changed__coreaudio, NULL); + + propAddress.mSelector = kAudioHardwarePropertyDefaultOutputDevice; + ((ma_AudioObjectAddPropertyListener_proc)pContext->coreaudio.AudioObjectAddPropertyListener)(kAudioObjectSystemObject, &propAddress, &ma_default_device_changed__coreaudio, NULL); + + g_DeviceTrackingInitCounter_CoreAudio += 1; + } + } + ma_spinlock_unlock(&g_DeviceTrackingInitLock_CoreAudio); + + return MA_SUCCESS; +} + +static ma_result ma_context__uninit_device_tracking__coreaudio(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + + ma_spinlock_lock(&g_DeviceTrackingInitLock_CoreAudio); + { + g_DeviceTrackingInitCounter_CoreAudio -= 1; + + if (g_DeviceTrackingInitCounter_CoreAudio == 0) { + AudioObjectPropertyAddress propAddress; + propAddress.mScope = kAudioObjectPropertyScopeGlobal; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + propAddress.mSelector = kAudioHardwarePropertyDefaultInputDevice; + ((ma_AudioObjectRemovePropertyListener_proc)pContext->coreaudio.AudioObjectRemovePropertyListener)(kAudioObjectSystemObject, &propAddress, &ma_default_device_changed__coreaudio, NULL); + + propAddress.mSelector = kAudioHardwarePropertyDefaultOutputDevice; + ((ma_AudioObjectRemovePropertyListener_proc)pContext->coreaudio.AudioObjectRemovePropertyListener)(kAudioObjectSystemObject, &propAddress, &ma_default_device_changed__coreaudio, NULL); + + /* At this point there should be no tracked devices. If not there's an error somewhere. */ + if (g_ppTrackedDevices_CoreAudio != NULL) { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_WARNING, "You have uninitialized all contexts while an associated device is still active.", MA_INVALID_OPERATION); + } + + ma_mutex_uninit(&g_DeviceTrackingMutex_CoreAudio); + } + } + ma_spinlock_unlock(&g_DeviceTrackingInitLock_CoreAudio); + + return MA_SUCCESS; +} + +static ma_result ma_device__track__coreaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + ma_mutex_lock(&g_DeviceTrackingMutex_CoreAudio); + { + /* Allocate memory if required. */ + if (g_TrackedDeviceCap_CoreAudio <= g_TrackedDeviceCount_CoreAudio) { + ma_uint32 oldCap; + ma_uint32 newCap; + ma_device** ppNewDevices; + + oldCap = g_TrackedDeviceCap_CoreAudio; + newCap = g_TrackedDeviceCap_CoreAudio * 2; + if (newCap == 0) { + newCap = 1; + } + + ppNewDevices = (ma_device**)ma__realloc_from_callbacks(g_ppTrackedDevices_CoreAudio, sizeof(*g_ppTrackedDevices_CoreAudio)*newCap, sizeof(*g_ppTrackedDevices_CoreAudio)*oldCap, &pDevice->pContext->allocationCallbacks); + if (ppNewDevices == NULL) { + ma_mutex_unlock(&g_DeviceTrackingMutex_CoreAudio); + return MA_OUT_OF_MEMORY; + } + + g_ppTrackedDevices_CoreAudio = ppNewDevices; + g_TrackedDeviceCap_CoreAudio = newCap; + } + + g_ppTrackedDevices_CoreAudio[g_TrackedDeviceCount_CoreAudio] = pDevice; + g_TrackedDeviceCount_CoreAudio += 1; + } + ma_mutex_unlock(&g_DeviceTrackingMutex_CoreAudio); + + return MA_SUCCESS; +} + +static ma_result ma_device__untrack__coreaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + ma_mutex_lock(&g_DeviceTrackingMutex_CoreAudio); + { + ma_uint32 iDevice; + for (iDevice = 0; iDevice < g_TrackedDeviceCount_CoreAudio; iDevice += 1) { + if (g_ppTrackedDevices_CoreAudio[iDevice] == pDevice) { + /* We've found the device. We now need to remove it from the list. */ + ma_uint32 jDevice; + for (jDevice = iDevice; jDevice < g_TrackedDeviceCount_CoreAudio-1; jDevice += 1) { + g_ppTrackedDevices_CoreAudio[jDevice] = g_ppTrackedDevices_CoreAudio[jDevice+1]; + } + + g_TrackedDeviceCount_CoreAudio -= 1; + + /* If there's nothing else in the list we need to free memory. */ + if (g_TrackedDeviceCount_CoreAudio == 0) { + ma__free_from_callbacks(g_ppTrackedDevices_CoreAudio, &pDevice->pContext->allocationCallbacks); + g_ppTrackedDevices_CoreAudio = NULL; + g_TrackedDeviceCap_CoreAudio = 0; + } + + break; + } + } + } + ma_mutex_unlock(&g_DeviceTrackingMutex_CoreAudio); + + return MA_SUCCESS; +} +#endif + +#if defined(MA_APPLE_MOBILE) +@interface ma_router_change_handler:NSObject { + ma_device* m_pDevice; +} +@end + +@implementation ma_router_change_handler +-(id)init:(ma_device*)pDevice +{ + self = [super init]; + m_pDevice = pDevice; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handle_route_change:) name:AVAudioSessionRouteChangeNotification object:[AVAudioSession sharedInstance]]; + + return self; +} + +-(void)dealloc +{ + [self remove_handler]; +} + +-(void)remove_handler +{ + [[NSNotificationCenter defaultCenter] removeObserver:self name:AVAudioSessionRouteChangeNotification object:nil]; +} + +-(void)handle_route_change:(NSNotification*)pNotification +{ + AVAudioSession* pSession = [AVAudioSession sharedInstance]; + + NSInteger reason = [[[pNotification userInfo] objectForKey:AVAudioSessionRouteChangeReasonKey] integerValue]; + switch (reason) + { + case AVAudioSessionRouteChangeReasonOldDeviceUnavailable: + { + #if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonOldDeviceUnavailable\n"); + #endif + } break; + + case AVAudioSessionRouteChangeReasonNewDeviceAvailable: + { + #if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonNewDeviceAvailable\n"); + #endif + } break; + + case AVAudioSessionRouteChangeReasonNoSuitableRouteForCategory: + { + #if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonNoSuitableRouteForCategory\n"); + #endif + } break; + + case AVAudioSessionRouteChangeReasonWakeFromSleep: + { + #if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonWakeFromSleep\n"); + #endif + } break; + + case AVAudioSessionRouteChangeReasonOverride: + { + #if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonOverride\n"); + #endif + } break; + + case AVAudioSessionRouteChangeReasonCategoryChange: + { + #if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonCategoryChange\n"); + #endif + } break; + + case AVAudioSessionRouteChangeReasonUnknown: + default: + { + #if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Route Changed: AVAudioSessionRouteChangeReasonUnknown\n"); + #endif + } break; + } + +#if defined(MA_DEBUG_OUTPUT) + printf("[Core Audio] Changing Route. inputNumberChannels=%d; outputNumberOfChannels=%d\n", (int)pSession.inputNumberOfChannels, (int)pSession.outputNumberOfChannels); +#endif + + ma_uint32 previousState = ma_device_get_state(m_pDevice); + + if (previousState == MA_STATE_STARTED) { + ma_device_stop(m_pDevice); + } + + if (m_pDevice->type == ma_device_type_capture || m_pDevice->type == ma_device_type_duplex) { + m_pDevice->capture.internalChannels = (ma_uint32)pSession.inputNumberOfChannels; + m_pDevice->capture.internalSampleRate = (ma_uint32)pSession.sampleRate; + ma_device__post_init_setup(m_pDevice, ma_device_type_capture); + } + if (m_pDevice->type == ma_device_type_playback || m_pDevice->type == ma_device_type_duplex) { + m_pDevice->playback.internalChannels = (ma_uint32)pSession.outputNumberOfChannels; + m_pDevice->playback.internalSampleRate = (ma_uint32)pSession.sampleRate; + ma_device__post_init_setup(m_pDevice, ma_device_type_playback); + } + + if (previousState == MA_STATE_STARTED) { + ma_device_start(m_pDevice); + } +} +@end +#endif + +static ma_result ma_device_uninit__coreaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + MA_ASSERT(ma_device_get_state(pDevice) == MA_STATE_UNINITIALIZED); + +#if defined(MA_APPLE_DESKTOP) + /* + Make sure we're no longer tracking the device. It doesn't matter if we call this for a non-default device because it'll + just gracefully ignore it. + */ + ma_device__untrack__coreaudio(pDevice); +#endif +#if defined(MA_APPLE_MOBILE) + if (pDevice->coreaudio.pRouteChangeHandler != NULL) { + ma_router_change_handler* pRouteChangeHandler = (__bridge_transfer ma_router_change_handler*)pDevice->coreaudio.pRouteChangeHandler; + [pRouteChangeHandler remove_handler]; + } +#endif + + if (pDevice->coreaudio.audioUnitCapture != NULL) { + ((ma_AudioComponentInstanceDispose_proc)pDevice->pContext->coreaudio.AudioComponentInstanceDispose)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + } + if (pDevice->coreaudio.audioUnitPlayback != NULL) { + ((ma_AudioComponentInstanceDispose_proc)pDevice->pContext->coreaudio.AudioComponentInstanceDispose)((AudioUnit)pDevice->coreaudio.audioUnitPlayback); + } + + if (pDevice->coreaudio.pAudioBufferList) { + ma__free_from_callbacks(pDevice->coreaudio.pAudioBufferList, &pDevice->pContext->allocationCallbacks); + } + + return MA_SUCCESS; +} + +typedef struct +{ + ma_bool32 allowNominalSampleRateChange; + + /* Input. */ + ma_format formatIn; + ma_uint32 channelsIn; + ma_uint32 sampleRateIn; + ma_channel channelMapIn[MA_MAX_CHANNELS]; + ma_uint32 periodSizeInFramesIn; + ma_uint32 periodSizeInMillisecondsIn; + ma_uint32 periodsIn; + ma_share_mode shareMode; + ma_performance_profile performanceProfile; + ma_bool32 registerStopEvent; + + /* Output. */ +#if defined(MA_APPLE_DESKTOP) + AudioObjectID deviceObjectID; +#endif + AudioComponent component; + AudioUnit audioUnit; + AudioBufferList* pAudioBufferList; /* Only used for input devices. */ + ma_format formatOut; + ma_uint32 channelsOut; + ma_uint32 sampleRateOut; + ma_channel channelMapOut[MA_MAX_CHANNELS]; + ma_uint32 periodSizeInFramesOut; + ma_uint32 periodsOut; + char deviceName[256]; +} ma_device_init_internal_data__coreaudio; + +static ma_result ma_device_init_internal__coreaudio(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_init_internal_data__coreaudio* pData, void* pDevice_DoNotReference) /* <-- pDevice is typed as void* intentionally so as to avoid accidentally referencing it. */ +{ + ma_result result; + OSStatus status; + UInt32 enableIOFlag; + AudioStreamBasicDescription bestFormat; + UInt32 actualPeriodSizeInFrames; + AURenderCallbackStruct callbackInfo; +#if defined(MA_APPLE_DESKTOP) + AudioObjectID deviceObjectID; +#else + UInt32 actualPeriodSizeInFramesSize = sizeof(actualPeriodSizeInFrames); +#endif + + /* This API should only be used for a single device type: playback or capture. No full-duplex mode. */ + if (deviceType == ma_device_type_duplex) { + return MA_INVALID_ARGS; + } + + MA_ASSERT(pContext != NULL); + MA_ASSERT(deviceType == ma_device_type_playback || deviceType == ma_device_type_capture); + +#if defined(MA_APPLE_DESKTOP) + pData->deviceObjectID = 0; +#endif + pData->component = NULL; + pData->audioUnit = NULL; + pData->pAudioBufferList = NULL; + +#if defined(MA_APPLE_DESKTOP) + result = ma_find_AudioObjectID(pContext, deviceType, pDeviceID, &deviceObjectID); + if (result != MA_SUCCESS) { + return result; + } + + pData->deviceObjectID = deviceObjectID; +#endif + + /* Core audio doesn't really use the notion of a period so we can leave this unmodified, but not too over the top. */ + pData->periodsOut = pData->periodsIn; + if (pData->periodsOut == 0) { + pData->periodsOut = MA_DEFAULT_PERIODS; + } + if (pData->periodsOut > 16) { + pData->periodsOut = 16; + } + + + /* Audio unit. */ + status = ((ma_AudioComponentInstanceNew_proc)pContext->coreaudio.AudioComponentInstanceNew)((AudioComponent)pContext->coreaudio.component, (AudioUnit*)&pData->audioUnit); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + + + /* The input/output buses need to be explicitly enabled and disabled. We set the flag based on the output unit first, then we just swap it for input. */ + enableIOFlag = 1; + if (deviceType == ma_device_type_capture) { + enableIOFlag = 0; + } + + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Output, MA_COREAUDIO_OUTPUT_BUS, &enableIOFlag, sizeof(enableIOFlag)); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + + enableIOFlag = (enableIOFlag == 0) ? 1 : 0; + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioOutputUnitProperty_EnableIO, kAudioUnitScope_Input, MA_COREAUDIO_INPUT_BUS, &enableIOFlag, sizeof(enableIOFlag)); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + + + /* Set the device to use with this audio unit. This is only used on desktop since we are using defaults on mobile. */ +#if defined(MA_APPLE_DESKTOP) + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &deviceObjectID, sizeof(deviceObjectID)); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(result); + } +#else + /* + For some reason it looks like Apple is only allowing selection of the input device. There does not appear to be any way to change + the default output route. I have no idea why this is like this, but for now we'll only be able to configure capture devices. + */ + if (pDeviceID != NULL) { + if (deviceType == ma_device_type_capture) { + ma_bool32 found = MA_FALSE; + NSArray *pInputs = [[[AVAudioSession sharedInstance] currentRoute] inputs]; + for (AVAudioSessionPortDescription* pPortDesc in pInputs) { + if (strcmp(pDeviceID->coreaudio, [pPortDesc.UID UTF8String]) == 0) { + [[AVAudioSession sharedInstance] setPreferredInput:pPortDesc error:nil]; + found = MA_TRUE; + break; + } + } + + if (found == MA_FALSE) { + return MA_DOES_NOT_EXIST; + } + } + } +#endif + + /* + Format. This is the hardest part of initialization because there's a few variables to take into account. + 1) The format must be supported by the device. + 2) The format must be supported miniaudio. + 3) There's a priority that miniaudio prefers. + + Ideally we would like to use a format that's as close to the hardware as possible so we can get as close to a passthrough as possible. The + most important property is the sample rate. miniaudio can do format conversion for any sample rate and channel count, but cannot do the same + for the sample data format. If the sample data format is not supported by miniaudio it must be ignored completely. + + On mobile platforms this is a bit different. We just force the use of whatever the audio unit's current format is set to. + */ + { + AudioStreamBasicDescription origFormat; + UInt32 origFormatSize = sizeof(origFormat); + AudioUnitScope formatScope = (deviceType == ma_device_type_playback) ? kAudioUnitScope_Input : kAudioUnitScope_Output; + AudioUnitElement formatElement = (deviceType == ma_device_type_playback) ? MA_COREAUDIO_OUTPUT_BUS : MA_COREAUDIO_INPUT_BUS; + + if (deviceType == ma_device_type_playback) { + status = ((ma_AudioUnitGetProperty_proc)pContext->coreaudio.AudioUnitGetProperty)(pData->audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, MA_COREAUDIO_OUTPUT_BUS, &origFormat, &origFormatSize); + } else { + status = ((ma_AudioUnitGetProperty_proc)pContext->coreaudio.AudioUnitGetProperty)(pData->audioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, MA_COREAUDIO_INPUT_BUS, &origFormat, &origFormatSize); + } + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + + #if defined(MA_APPLE_DESKTOP) + result = ma_find_best_format__coreaudio(pContext, deviceObjectID, deviceType, pData->formatIn, pData->channelsIn, pData->sampleRateIn, &origFormat, &bestFormat); + if (result != MA_SUCCESS) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return result; + } + + /* + Technical Note TN2091: Device input using the HAL Output Audio Unit + https://developer.apple.com/library/archive/technotes/tn2091/_index.html + + This documentation says the following: + + The internal AudioConverter can handle any *simple* conversion. Typically, this means that a client can specify ANY + variant of the PCM formats. Consequently, the device's sample rate should match the desired sample rate. If sample rate + conversion is needed, it can be accomplished by buffering the input and converting the data on a separate thread with + another AudioConverter. + + The important part here is the mention that it can handle *simple* conversions, which does *not* include sample rate. We + therefore want to ensure the sample rate stays consistent. This document is specifically for input, but I'm going to play it + safe and apply the same rule to output as well. + + I have tried going against the documentation by setting the sample rate anyway, but this just results in AudioUnitRender() + returning a result code of -10863. I have also tried changing the format directly on the input scope on the input bus, but + this just results in `ca_require: IsStreamFormatWritable(inScope, inElement) NotWritable` when trying to set the format. + + Something that does seem to work, however, has been setting the nominal sample rate on the deivce object. The problem with + this, however, is that it actually changes the sample rate at the operating system level and not just the application. This + could be intrusive to the user, however, so I don't think it's wise to make this the default. Instead I'm making this a + configuration option. When the `coreaudio.allowNominalSampleRateChange` config option is set to true, changing the sample + rate will be allowed. Otherwise it'll be fixed to the current sample rate. To check the system-defined sample rate, run + the Audio MIDI Setup program that comes installed on macOS and observe how the sample rate changes as the sample rate is + changed by miniaudio. + */ + if (pData->allowNominalSampleRateChange) { + AudioValueRange sampleRateRange; + AudioObjectPropertyAddress propAddress; + + sampleRateRange.mMinimum = bestFormat.mSampleRate; + sampleRateRange.mMaximum = bestFormat.mSampleRate; + + propAddress.mSelector = kAudioDevicePropertyNominalSampleRate; + propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; + propAddress.mElement = kAudioObjectPropertyElementMaster; + + status = ((ma_AudioObjectSetPropertyData_proc)pContext->coreaudio.AudioObjectSetPropertyData)(deviceObjectID, &propAddress, 0, NULL, sizeof(sampleRateRange), &sampleRateRange); + if (status != noErr) { + bestFormat.mSampleRate = origFormat.mSampleRate; + } + } else { + bestFormat.mSampleRate = origFormat.mSampleRate; + } + + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioUnitProperty_StreamFormat, formatScope, formatElement, &bestFormat, sizeof(bestFormat)); + if (status != noErr) { + /* We failed to set the format, so fall back to the current format of the audio unit. */ + bestFormat = origFormat; + } + #else + bestFormat = origFormat; + + /* + Sample rate is a little different here because for some reason kAudioUnitProperty_StreamFormat returns 0... Oh well. We need to instead try + setting the sample rate to what the user has requested and then just see the results of it. Need to use some Objective-C here for this since + it depends on Apple's AVAudioSession API. To do this we just get the shared AVAudioSession instance and then set it. Note that from what I + can tell, it looks like the sample rate is shared between playback and capture for everything. + */ + @autoreleasepool { + AVAudioSession* pAudioSession = [AVAudioSession sharedInstance]; + MA_ASSERT(pAudioSession != NULL); + + [pAudioSession setPreferredSampleRate:(double)pData->sampleRateIn error:nil]; + bestFormat.mSampleRate = pAudioSession.sampleRate; + + /* + I've had a report that the channel count returned by AudioUnitGetProperty above is inconsistent with + AVAudioSession outputNumberOfChannels. I'm going to try using the AVAudioSession values instead. + */ + if (deviceType == ma_device_type_playback) { + bestFormat.mChannelsPerFrame = (UInt32)pAudioSession.outputNumberOfChannels; + } + if (deviceType == ma_device_type_capture) { + bestFormat.mChannelsPerFrame = (UInt32)pAudioSession.inputNumberOfChannels; + } + } + + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioUnitProperty_StreamFormat, formatScope, formatElement, &bestFormat, sizeof(bestFormat)); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + #endif + + result = ma_format_from_AudioStreamBasicDescription(&bestFormat, &pData->formatOut); + if (result != MA_SUCCESS) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return result; + } + + if (pData->formatOut == ma_format_unknown) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return MA_FORMAT_NOT_SUPPORTED; + } + + pData->channelsOut = bestFormat.mChannelsPerFrame; + pData->sampleRateOut = bestFormat.mSampleRate; + } + + /* Clamp the channel count for safety. */ + if (pData->channelsOut > MA_MAX_CHANNELS) { + pData->channelsOut = MA_MAX_CHANNELS; + } + + /* + Internal channel map. This is weird in my testing. If I use the AudioObject to get the + channel map, the channel descriptions are set to "Unknown" for some reason. To work around + this it looks like retrieving it from the AudioUnit will work. However, and this is where + it gets weird, it doesn't seem to work with capture devices, nor at all on iOS... Therefore + I'm going to fall back to a default assumption in these cases. + */ +#if defined(MA_APPLE_DESKTOP) + result = ma_get_AudioUnit_channel_map(pContext, pData->audioUnit, deviceType, pData->channelMapOut, pData->channelsOut); + if (result != MA_SUCCESS) { + #if 0 + /* Try falling back to the channel map from the AudioObject. */ + result = ma_get_AudioObject_channel_map(pContext, deviceObjectID, deviceType, pData->channelMapOut, pData->channelsOut); + if (result != MA_SUCCESS) { + return result; + } + #else + /* Fall back to default assumptions. */ + ma_get_standard_channel_map(ma_standard_channel_map_default, pData->channelsOut, pData->channelMapOut); + #endif + } +#else + /* TODO: Figure out how to get the channel map using AVAudioSession. */ + ma_get_standard_channel_map(ma_standard_channel_map_default, pData->channelsOut, pData->channelMapOut); +#endif + + + /* Buffer size. Not allowing this to be configurable on iOS. */ + if (pData->periodSizeInFramesIn == 0) { + if (pData->periodSizeInMillisecondsIn == 0) { + if (pData->performanceProfile == ma_performance_profile_low_latency) { + actualPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY, pData->sampleRateOut); + } else { + actualPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE, pData->sampleRateOut); + } + } else { + actualPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(pData->periodSizeInMillisecondsIn, pData->sampleRateOut); + } + } else { + actualPeriodSizeInFrames = pData->periodSizeInFramesIn; + } + +#if defined(MA_APPLE_DESKTOP) + result = ma_set_AudioObject_buffer_size_in_frames(pContext, deviceObjectID, deviceType, &actualPeriodSizeInFrames); + if (result != MA_SUCCESS) { + return result; + } +#else + /* + I don't know how to configure buffer sizes on iOS so for now we're not allowing it to be configured. Instead we're + just going to set it to the value of kAudioUnitProperty_MaximumFramesPerSlice. + */ + status = ((ma_AudioUnitGetProperty_proc)pContext->coreaudio.AudioUnitGetProperty)(pData->audioUnit, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0, &actualPeriodSizeInFrames, &actualPeriodSizeInFramesSize); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } +#endif + + + /* + During testing I discovered that the buffer size can be too big. You'll get an error like this: + + kAudioUnitErr_TooManyFramesToProcess : inFramesToProcess=4096, mMaxFramesPerSlice=512 + + Note how inFramesToProcess is smaller than mMaxFramesPerSlice. To fix, we need to set kAudioUnitProperty_MaximumFramesPerSlice to that + of the size of our buffer, or do it the other way around and set our buffer size to the kAudioUnitProperty_MaximumFramesPerSlice. + */ + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0, &actualPeriodSizeInFrames, sizeof(actualPeriodSizeInFrames)); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + + pData->periodSizeInFramesOut = (ma_uint32)actualPeriodSizeInFrames; + + /* We need a buffer list if this is an input device. We render into this in the input callback. */ + if (deviceType == ma_device_type_capture) { + ma_bool32 isInterleaved = (bestFormat.mFormatFlags & kAudioFormatFlagIsNonInterleaved) == 0; + AudioBufferList* pBufferList; + + pBufferList = ma_allocate_AudioBufferList__coreaudio(pData->periodSizeInFramesOut, pData->formatOut, pData->channelsOut, (isInterleaved) ? ma_stream_layout_interleaved : ma_stream_layout_deinterleaved, &pContext->allocationCallbacks); + if (pBufferList == NULL) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return MA_OUT_OF_MEMORY; + } + + pData->pAudioBufferList = pBufferList; + } + + /* Callbacks. */ + callbackInfo.inputProcRefCon = pDevice_DoNotReference; + if (deviceType == ma_device_type_playback) { + callbackInfo.inputProc = ma_on_output__coreaudio; + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Global, 0, &callbackInfo, sizeof(callbackInfo)); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + } else { + callbackInfo.inputProc = ma_on_input__coreaudio; + status = ((ma_AudioUnitSetProperty_proc)pContext->coreaudio.AudioUnitSetProperty)(pData->audioUnit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &callbackInfo, sizeof(callbackInfo)); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + } + + /* We need to listen for stop events. */ + if (pData->registerStopEvent) { + status = ((ma_AudioUnitAddPropertyListener_proc)pContext->coreaudio.AudioUnitAddPropertyListener)(pData->audioUnit, kAudioOutputUnitProperty_IsRunning, on_start_stop__coreaudio, pDevice_DoNotReference); + if (status != noErr) { + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + } + + /* Initialize the audio unit. */ + status = ((ma_AudioUnitInitialize_proc)pContext->coreaudio.AudioUnitInitialize)(pData->audioUnit); + if (status != noErr) { + ma__free_from_callbacks(pData->pAudioBufferList, &pContext->allocationCallbacks); + pData->pAudioBufferList = NULL; + ((ma_AudioComponentInstanceDispose_proc)pContext->coreaudio.AudioComponentInstanceDispose)(pData->audioUnit); + return ma_result_from_OSStatus(status); + } + + /* Grab the name. */ +#if defined(MA_APPLE_DESKTOP) + ma_get_AudioObject_name(pContext, deviceObjectID, sizeof(pData->deviceName), pData->deviceName); +#else + if (deviceType == ma_device_type_playback) { + ma_strcpy_s(pData->deviceName, sizeof(pData->deviceName), MA_DEFAULT_PLAYBACK_DEVICE_NAME); + } else { + ma_strcpy_s(pData->deviceName, sizeof(pData->deviceName), MA_DEFAULT_CAPTURE_DEVICE_NAME); + } +#endif + + return result; +} + +#if defined(MA_APPLE_DESKTOP) +static ma_result ma_device_reinit_internal__coreaudio(ma_device* pDevice, ma_device_type deviceType, ma_bool32 disposePreviousAudioUnit) +{ + ma_device_init_internal_data__coreaudio data; + ma_result result; + + /* This should only be called for playback or capture, not duplex. */ + if (deviceType == ma_device_type_duplex) { + return MA_INVALID_ARGS; + } + + data.allowNominalSampleRateChange = MA_FALSE; /* Don't change the nominal sample rate when switching devices. */ + + if (deviceType == ma_device_type_capture) { + data.formatIn = pDevice->capture.format; + data.channelsIn = pDevice->capture.channels; + data.sampleRateIn = pDevice->sampleRate; + MA_COPY_MEMORY(data.channelMapIn, pDevice->capture.channelMap, sizeof(pDevice->capture.channelMap)); + data.shareMode = pDevice->capture.shareMode; + data.performanceProfile = pDevice->coreaudio.originalPerformanceProfile; + data.registerStopEvent = MA_TRUE; + + if (disposePreviousAudioUnit) { + ((ma_AudioOutputUnitStop_proc)pDevice->pContext->coreaudio.AudioOutputUnitStop)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + ((ma_AudioComponentInstanceDispose_proc)pDevice->pContext->coreaudio.AudioComponentInstanceDispose)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + } + if (pDevice->coreaudio.pAudioBufferList) { + ma__free_from_callbacks(pDevice->coreaudio.pAudioBufferList, &pDevice->pContext->allocationCallbacks); + } + } else if (deviceType == ma_device_type_playback) { + data.formatIn = pDevice->playback.format; + data.channelsIn = pDevice->playback.channels; + data.sampleRateIn = pDevice->sampleRate; + MA_COPY_MEMORY(data.channelMapIn, pDevice->playback.channelMap, sizeof(pDevice->playback.channelMap)); + data.shareMode = pDevice->playback.shareMode; + data.performanceProfile = pDevice->coreaudio.originalPerformanceProfile; + data.registerStopEvent = (pDevice->type != ma_device_type_duplex); + + if (disposePreviousAudioUnit) { + ((ma_AudioOutputUnitStop_proc)pDevice->pContext->coreaudio.AudioOutputUnitStop)((AudioUnit)pDevice->coreaudio.audioUnitPlayback); + ((ma_AudioComponentInstanceDispose_proc)pDevice->pContext->coreaudio.AudioComponentInstanceDispose)((AudioUnit)pDevice->coreaudio.audioUnitPlayback); + } + } + data.periodSizeInFramesIn = pDevice->coreaudio.originalPeriodSizeInFrames; + data.periodSizeInMillisecondsIn = pDevice->coreaudio.originalPeriodSizeInMilliseconds; + data.periodsIn = pDevice->coreaudio.originalPeriods; + + /* Need at least 3 periods for duplex. */ + if (data.periodsIn < 3 && pDevice->type == ma_device_type_duplex) { + data.periodsIn = 3; + } + + result = ma_device_init_internal__coreaudio(pDevice->pContext, deviceType, NULL, &data, (void*)pDevice); + if (result != MA_SUCCESS) { + return result; + } + + if (deviceType == ma_device_type_capture) { + #if defined(MA_APPLE_DESKTOP) + pDevice->coreaudio.deviceObjectIDCapture = (ma_uint32)data.deviceObjectID; + #endif + pDevice->coreaudio.audioUnitCapture = (ma_ptr)data.audioUnit; + pDevice->coreaudio.pAudioBufferList = (ma_ptr)data.pAudioBufferList; + pDevice->coreaudio.audioBufferCapInFrames = data.periodSizeInFramesOut; + + pDevice->capture.internalFormat = data.formatOut; + pDevice->capture.internalChannels = data.channelsOut; + pDevice->capture.internalSampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDevice->capture.internalChannelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDevice->capture.internalPeriodSizeInFrames = data.periodSizeInFramesOut; + pDevice->capture.internalPeriods = data.periodsOut; + } else if (deviceType == ma_device_type_playback) { + #if defined(MA_APPLE_DESKTOP) + pDevice->coreaudio.deviceObjectIDPlayback = (ma_uint32)data.deviceObjectID; + #endif + pDevice->coreaudio.audioUnitPlayback = (ma_ptr)data.audioUnit; + + pDevice->playback.internalFormat = data.formatOut; + pDevice->playback.internalChannels = data.channelsOut; + pDevice->playback.internalSampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDevice->playback.internalChannelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDevice->playback.internalPeriodSizeInFrames = data.periodSizeInFramesOut; + pDevice->playback.internalPeriods = data.periodsOut; + } + + return MA_SUCCESS; +} +#endif /* MA_APPLE_DESKTOP */ + +static ma_result ma_device_init__coreaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + ma_result result; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pConfig != NULL); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* No exclusive mode with the Core Audio backend for now. */ + if (((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + /* Capture needs to be initialized first. */ + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ma_device_init_internal_data__coreaudio data; + data.allowNominalSampleRateChange = pConfig->coreaudio.allowNominalSampleRateChange; + data.formatIn = pDescriptorCapture->format; + data.channelsIn = pDescriptorCapture->channels; + data.sampleRateIn = pDescriptorCapture->sampleRate; + MA_COPY_MEMORY(data.channelMapIn, pDescriptorCapture->channelMap, sizeof(pDescriptorCapture->channelMap)); + data.periodSizeInFramesIn = pDescriptorCapture->periodSizeInFrames; + data.periodSizeInMillisecondsIn = pDescriptorCapture->periodSizeInMilliseconds; + data.periodsIn = pDescriptorCapture->periodCount; + data.shareMode = pDescriptorCapture->shareMode; + data.performanceProfile = pConfig->performanceProfile; + data.registerStopEvent = MA_TRUE; + + /* Need at least 3 periods for duplex. */ + if (data.periodsIn < 3 && pConfig->deviceType == ma_device_type_duplex) { + data.periodsIn = 3; + } + + result = ma_device_init_internal__coreaudio(pDevice->pContext, ma_device_type_capture, pDescriptorCapture->pDeviceID, &data, (void*)pDevice); + if (result != MA_SUCCESS) { + return result; + } + + pDevice->coreaudio.isDefaultCaptureDevice = (pConfig->capture.pDeviceID == NULL); + #if defined(MA_APPLE_DESKTOP) + pDevice->coreaudio.deviceObjectIDCapture = (ma_uint32)data.deviceObjectID; + #endif + pDevice->coreaudio.audioUnitCapture = (ma_ptr)data.audioUnit; + pDevice->coreaudio.pAudioBufferList = (ma_ptr)data.pAudioBufferList; + pDevice->coreaudio.audioBufferCapInFrames = data.periodSizeInFramesOut; + pDevice->coreaudio.originalPeriodSizeInFrames = pDescriptorCapture->periodSizeInFrames; + pDevice->coreaudio.originalPeriodSizeInMilliseconds = pDescriptorCapture->periodSizeInMilliseconds; + pDevice->coreaudio.originalPeriods = pDescriptorCapture->periodCount; + pDevice->coreaudio.originalPerformanceProfile = pConfig->performanceProfile; + + pDescriptorCapture->format = data.formatOut; + pDescriptorCapture->channels = data.channelsOut; + pDescriptorCapture->sampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDescriptorCapture->channelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDescriptorCapture->periodSizeInFrames = data.periodSizeInFramesOut; + pDescriptorCapture->periodCount = data.periodsOut; + + #if defined(MA_APPLE_DESKTOP) + /* + If we are using the default device we'll need to listen for changes to the system's default device so we can seemlessly + switch the device in the background. + */ + if (pConfig->capture.pDeviceID == NULL) { + ma_device__track__coreaudio(pDevice); + } + #endif + } + + /* Playback. */ + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_device_init_internal_data__coreaudio data; + data.allowNominalSampleRateChange = pConfig->coreaudio.allowNominalSampleRateChange; + data.formatIn = pDescriptorPlayback->format; + data.channelsIn = pDescriptorPlayback->channels; + data.sampleRateIn = pDescriptorPlayback->sampleRate; + MA_COPY_MEMORY(data.channelMapIn, pDescriptorPlayback->channelMap, sizeof(pDescriptorPlayback->channelMap)); + data.shareMode = pDescriptorPlayback->shareMode; + data.performanceProfile = pConfig->performanceProfile; + + /* In full-duplex mode we want the playback buffer to be the same size as the capture buffer. */ + if (pConfig->deviceType == ma_device_type_duplex) { + data.periodSizeInFramesIn = pDescriptorCapture->periodSizeInFrames; + data.periodsIn = pDescriptorCapture->periodCount; + data.registerStopEvent = MA_FALSE; + } else { + data.periodSizeInFramesIn = pDescriptorPlayback->periodSizeInFrames; + data.periodSizeInMillisecondsIn = pDescriptorPlayback->periodSizeInMilliseconds; + data.periodsIn = pDescriptorPlayback->periodCount; + data.registerStopEvent = MA_TRUE; + } + + result = ma_device_init_internal__coreaudio(pDevice->pContext, ma_device_type_playback, pDescriptorPlayback->pDeviceID, &data, (void*)pDevice); + if (result != MA_SUCCESS) { + if (pConfig->deviceType == ma_device_type_duplex) { + ((ma_AudioComponentInstanceDispose_proc)pDevice->pContext->coreaudio.AudioComponentInstanceDispose)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + if (pDevice->coreaudio.pAudioBufferList) { + ma__free_from_callbacks(pDevice->coreaudio.pAudioBufferList, &pDevice->pContext->allocationCallbacks); + } + } + return result; + } + + pDevice->coreaudio.isDefaultPlaybackDevice = (pConfig->playback.pDeviceID == NULL); + #if defined(MA_APPLE_DESKTOP) + pDevice->coreaudio.deviceObjectIDPlayback = (ma_uint32)data.deviceObjectID; + #endif + pDevice->coreaudio.audioUnitPlayback = (ma_ptr)data.audioUnit; + pDevice->coreaudio.originalPeriodSizeInFrames = pDescriptorPlayback->periodSizeInFrames; + pDevice->coreaudio.originalPeriodSizeInMilliseconds = pDescriptorPlayback->periodSizeInMilliseconds; + pDevice->coreaudio.originalPeriods = pDescriptorPlayback->periodCount; + pDevice->coreaudio.originalPerformanceProfile = pConfig->performanceProfile; + + pDescriptorPlayback->format = data.formatOut; + pDescriptorPlayback->channels = data.channelsOut; + pDescriptorPlayback->sampleRate = data.sampleRateOut; + MA_COPY_MEMORY(pDescriptorPlayback->channelMap, data.channelMapOut, sizeof(data.channelMapOut)); + pDescriptorPlayback->periodSizeInFrames = data.periodSizeInFramesOut; + pDescriptorPlayback->periodCount = data.periodsOut; + + #if defined(MA_APPLE_DESKTOP) + /* + If we are using the default device we'll need to listen for changes to the system's default device so we can seemlessly + switch the device in the background. + */ + if (pDescriptorPlayback->pDeviceID == NULL && (pConfig->deviceType != ma_device_type_duplex || pDescriptorCapture->pDeviceID != NULL)) { + ma_device__track__coreaudio(pDevice); + } + #endif + } + + + + /* + When stopping the device, a callback is called on another thread. We need to wait for this callback + before returning from ma_device_stop(). This event is used for this. + */ + ma_event_init(&pDevice->coreaudio.stopEvent); + + /* + We need to detect when a route has changed so we can update the data conversion pipeline accordingly. This is done + differently on non-Desktop Apple platforms. + */ +#if defined(MA_APPLE_MOBILE) + pDevice->coreaudio.pRouteChangeHandler = (__bridge_retained void*)[[ma_router_change_handler alloc] init:pDevice]; +#endif + + return MA_SUCCESS; +} + + +static ma_result ma_device_start__coreaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + OSStatus status = ((ma_AudioOutputUnitStart_proc)pDevice->pContext->coreaudio.AudioOutputUnitStart)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + OSStatus status = ((ma_AudioOutputUnitStart_proc)pDevice->pContext->coreaudio.AudioOutputUnitStart)((AudioUnit)pDevice->coreaudio.audioUnitPlayback); + if (status != noErr) { + if (pDevice->type == ma_device_type_duplex) { + ((ma_AudioOutputUnitStop_proc)pDevice->pContext->coreaudio.AudioOutputUnitStop)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + } + return ma_result_from_OSStatus(status); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__coreaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + /* It's not clear from the documentation whether or not AudioOutputUnitStop() actually drains the device or not. */ + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + OSStatus status = ((ma_AudioOutputUnitStop_proc)pDevice->pContext->coreaudio.AudioOutputUnitStop)((AudioUnit)pDevice->coreaudio.audioUnitCapture); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + OSStatus status = ((ma_AudioOutputUnitStop_proc)pDevice->pContext->coreaudio.AudioOutputUnitStop)((AudioUnit)pDevice->coreaudio.audioUnitPlayback); + if (status != noErr) { + return ma_result_from_OSStatus(status); + } + } + + /* We need to wait for the callback to finish before returning. */ + ma_event_wait(&pDevice->coreaudio.stopEvent); + return MA_SUCCESS; +} + + +static ma_result ma_context_uninit__coreaudio(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_coreaudio); + +#if defined(MA_APPLE_MOBILE) + if (!pContext->coreaudio.noAudioSessionDeactivate) { + if (![[AVAudioSession sharedInstance] setActive:false error:nil]) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "Failed to deactivate audio session.", MA_FAILED_TO_INIT_BACKEND); + } + } +#endif + +#if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) + ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); +#endif + +#if !defined(MA_APPLE_MOBILE) + ma_context__uninit_device_tracking__coreaudio(pContext); +#endif + + (void)pContext; + return MA_SUCCESS; +} + +#if defined(MA_APPLE_MOBILE) +static AVAudioSessionCategory ma_to_AVAudioSessionCategory(ma_ios_session_category category) +{ + /* The "default" and "none" categories are treated different and should not be used as an input into this function. */ + MA_ASSERT(category != ma_ios_session_category_default); + MA_ASSERT(category != ma_ios_session_category_none); + + switch (category) { + case ma_ios_session_category_ambient: return AVAudioSessionCategoryAmbient; + case ma_ios_session_category_solo_ambient: return AVAudioSessionCategorySoloAmbient; + case ma_ios_session_category_playback: return AVAudioSessionCategoryPlayback; + case ma_ios_session_category_record: return AVAudioSessionCategoryRecord; + case ma_ios_session_category_play_and_record: return AVAudioSessionCategoryPlayAndRecord; + case ma_ios_session_category_multi_route: return AVAudioSessionCategoryMultiRoute; + case ma_ios_session_category_none: return AVAudioSessionCategoryAmbient; + case ma_ios_session_category_default: return AVAudioSessionCategoryAmbient; + default: return AVAudioSessionCategoryAmbient; + } +} +#endif + +static ma_result ma_context_init__coreaudio(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ +#if !defined(MA_APPLE_MOBILE) + ma_result result; +#endif + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pContext != NULL); + +#if defined(MA_APPLE_MOBILE) + @autoreleasepool { + AVAudioSession* pAudioSession = [AVAudioSession sharedInstance]; + AVAudioSessionCategoryOptions options = pConfig->coreaudio.sessionCategoryOptions; + + MA_ASSERT(pAudioSession != NULL); + + if (pConfig->coreaudio.sessionCategory == ma_ios_session_category_default) { + /* + I'm going to use trial and error to determine our default session category. First we'll try PlayAndRecord. If that fails + we'll try Playback and if that fails we'll try record. If all of these fail we'll just not set the category. + */ + #if !defined(MA_APPLE_TV) && !defined(MA_APPLE_WATCH) + options |= AVAudioSessionCategoryOptionDefaultToSpeaker; + #endif + + if ([pAudioSession setCategory: AVAudioSessionCategoryPlayAndRecord withOptions:options error:nil]) { + /* Using PlayAndRecord */ + } else if ([pAudioSession setCategory: AVAudioSessionCategoryPlayback withOptions:options error:nil]) { + /* Using Playback */ + } else if ([pAudioSession setCategory: AVAudioSessionCategoryRecord withOptions:options error:nil]) { + /* Using Record */ + } else { + /* Leave as default? */ + } + } else { + if (pConfig->coreaudio.sessionCategory != ma_ios_session_category_none) { + if (![pAudioSession setCategory: ma_to_AVAudioSessionCategory(pConfig->coreaudio.sessionCategory) withOptions:options error:nil]) { + return MA_INVALID_OPERATION; /* Failed to set session category. */ + } + } + } + + if (!pConfig->coreaudio.noAudioSessionActivate) { + if (![pAudioSession setActive:true error:nil]) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "Failed to activate audio session.", MA_FAILED_TO_INIT_BACKEND); + } + } + } +#endif + +#if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) + pContext->coreaudio.hCoreFoundation = ma_dlopen(pContext, "CoreFoundation.framework/CoreFoundation"); + if (pContext->coreaudio.hCoreFoundation == NULL) { + return MA_API_NOT_FOUND; + } + + pContext->coreaudio.CFStringGetCString = ma_dlsym(pContext, pContext->coreaudio.hCoreFoundation, "CFStringGetCString"); + pContext->coreaudio.CFRelease = ma_dlsym(pContext, pContext->coreaudio.hCoreFoundation, "CFRelease"); + + + pContext->coreaudio.hCoreAudio = ma_dlopen(pContext, "CoreAudio.framework/CoreAudio"); + if (pContext->coreaudio.hCoreAudio == NULL) { + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + return MA_API_NOT_FOUND; + } + + pContext->coreaudio.AudioObjectGetPropertyData = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyData"); + pContext->coreaudio.AudioObjectGetPropertyDataSize = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyDataSize"); + pContext->coreaudio.AudioObjectSetPropertyData = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectSetPropertyData"); + pContext->coreaudio.AudioObjectAddPropertyListener = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectAddPropertyListener"); + pContext->coreaudio.AudioObjectRemovePropertyListener = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectRemovePropertyListener"); + + /* + It looks like Apple has moved some APIs from AudioUnit into AudioToolbox on more recent versions of macOS. They are still + defined in AudioUnit, but just in case they decide to remove them from there entirely I'm going to implement a fallback. + The way it'll work is that it'll first try AudioUnit, and if the required symbols are not present there we'll fall back to + AudioToolbox. + */ + pContext->coreaudio.hAudioUnit = ma_dlopen(pContext, "AudioUnit.framework/AudioUnit"); + if (pContext->coreaudio.hAudioUnit == NULL) { + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + return MA_API_NOT_FOUND; + } + + if (ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentFindNext") == NULL) { + /* Couldn't find the required symbols in AudioUnit, so fall back to AudioToolbox. */ + ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); + pContext->coreaudio.hAudioUnit = ma_dlopen(pContext, "AudioToolbox.framework/AudioToolbox"); + if (pContext->coreaudio.hAudioUnit == NULL) { + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + return MA_API_NOT_FOUND; + } + } + + pContext->coreaudio.AudioComponentFindNext = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentFindNext"); + pContext->coreaudio.AudioComponentInstanceDispose = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentInstanceDispose"); + pContext->coreaudio.AudioComponentInstanceNew = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentInstanceNew"); + pContext->coreaudio.AudioOutputUnitStart = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioOutputUnitStart"); + pContext->coreaudio.AudioOutputUnitStop = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioOutputUnitStop"); + pContext->coreaudio.AudioUnitAddPropertyListener = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitAddPropertyListener"); + pContext->coreaudio.AudioUnitGetPropertyInfo = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitGetPropertyInfo"); + pContext->coreaudio.AudioUnitGetProperty = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitGetProperty"); + pContext->coreaudio.AudioUnitSetProperty = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitSetProperty"); + pContext->coreaudio.AudioUnitInitialize = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitInitialize"); + pContext->coreaudio.AudioUnitRender = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitRender"); +#else + pContext->coreaudio.CFStringGetCString = (ma_proc)CFStringGetCString; + pContext->coreaudio.CFRelease = (ma_proc)CFRelease; + + #if defined(MA_APPLE_DESKTOP) + pContext->coreaudio.AudioObjectGetPropertyData = (ma_proc)AudioObjectGetPropertyData; + pContext->coreaudio.AudioObjectGetPropertyDataSize = (ma_proc)AudioObjectGetPropertyDataSize; + pContext->coreaudio.AudioObjectSetPropertyData = (ma_proc)AudioObjectSetPropertyData; + pContext->coreaudio.AudioObjectAddPropertyListener = (ma_proc)AudioObjectAddPropertyListener; + pContext->coreaudio.AudioObjectRemovePropertyListener = (ma_proc)AudioObjectRemovePropertyListener; + #endif + + pContext->coreaudio.AudioComponentFindNext = (ma_proc)AudioComponentFindNext; + pContext->coreaudio.AudioComponentInstanceDispose = (ma_proc)AudioComponentInstanceDispose; + pContext->coreaudio.AudioComponentInstanceNew = (ma_proc)AudioComponentInstanceNew; + pContext->coreaudio.AudioOutputUnitStart = (ma_proc)AudioOutputUnitStart; + pContext->coreaudio.AudioOutputUnitStop = (ma_proc)AudioOutputUnitStop; + pContext->coreaudio.AudioUnitAddPropertyListener = (ma_proc)AudioUnitAddPropertyListener; + pContext->coreaudio.AudioUnitGetPropertyInfo = (ma_proc)AudioUnitGetPropertyInfo; + pContext->coreaudio.AudioUnitGetProperty = (ma_proc)AudioUnitGetProperty; + pContext->coreaudio.AudioUnitSetProperty = (ma_proc)AudioUnitSetProperty; + pContext->coreaudio.AudioUnitInitialize = (ma_proc)AudioUnitInitialize; + pContext->coreaudio.AudioUnitRender = (ma_proc)AudioUnitRender; +#endif + + /* Audio component. */ + { + AudioComponentDescription desc; + desc.componentType = kAudioUnitType_Output; + #if defined(MA_APPLE_DESKTOP) + desc.componentSubType = kAudioUnitSubType_HALOutput; + #else + desc.componentSubType = kAudioUnitSubType_RemoteIO; + #endif + desc.componentManufacturer = kAudioUnitManufacturer_Apple; + desc.componentFlags = 0; + desc.componentFlagsMask = 0; + + pContext->coreaudio.component = ((ma_AudioComponentFindNext_proc)pContext->coreaudio.AudioComponentFindNext)(NULL, &desc); + if (pContext->coreaudio.component == NULL) { + #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) + ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + #endif + return MA_FAILED_TO_INIT_BACKEND; + } + } + +#if !defined(MA_APPLE_MOBILE) + result = ma_context__init_device_tracking__coreaudio(pContext); + if (result != MA_SUCCESS) { + #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) + ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + #endif + return result; + } +#endif + + pContext->coreaudio.noAudioSessionDeactivate = pConfig->coreaudio.noAudioSessionDeactivate; + + pCallbacks->onContextInit = ma_context_init__coreaudio; + pCallbacks->onContextUninit = ma_context_uninit__coreaudio; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__coreaudio; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__coreaudio; + pCallbacks->onDeviceInit = ma_device_init__coreaudio; + pCallbacks->onDeviceUninit = ma_device_uninit__coreaudio; + pCallbacks->onDeviceStart = ma_device_start__coreaudio; + pCallbacks->onDeviceStop = ma_device_stop__coreaudio; + pCallbacks->onDeviceRead = NULL; + pCallbacks->onDeviceWrite = NULL; + pCallbacks->onDeviceDataLoop = NULL; + + return MA_SUCCESS; +} +#endif /* Core Audio */ + + + +/****************************************************************************** + +sndio Backend + +******************************************************************************/ +#ifdef MA_HAS_SNDIO +#include + +/* +Only supporting OpenBSD. This did not work very well at all on FreeBSD when I tried it. Not sure if this is due +to miniaudio's implementation or if it's some kind of system configuration issue, but basically the default device +just doesn't emit any sound, or at times you'll hear tiny pieces. I will consider enabling this when there's +demand for it or if I can get it tested and debugged more thoroughly. +*/ +#if 0 +#if defined(__NetBSD__) || defined(__OpenBSD__) +#include +#endif +#if defined(__FreeBSD__) || defined(__DragonFly__) +#include +#endif +#endif + +#define MA_SIO_DEVANY "default" +#define MA_SIO_PLAY 1 +#define MA_SIO_REC 2 +#define MA_SIO_NENC 8 +#define MA_SIO_NCHAN 8 +#define MA_SIO_NRATE 16 +#define MA_SIO_NCONF 4 + +struct ma_sio_hdl; /* <-- Opaque */ + +struct ma_sio_par +{ + unsigned int bits; + unsigned int bps; + unsigned int sig; + unsigned int le; + unsigned int msb; + unsigned int rchan; + unsigned int pchan; + unsigned int rate; + unsigned int bufsz; + unsigned int xrun; + unsigned int round; + unsigned int appbufsz; + int __pad[3]; + unsigned int __magic; +}; + +struct ma_sio_enc +{ + unsigned int bits; + unsigned int bps; + unsigned int sig; + unsigned int le; + unsigned int msb; +}; + +struct ma_sio_conf +{ + unsigned int enc; + unsigned int rchan; + unsigned int pchan; + unsigned int rate; +}; + +struct ma_sio_cap +{ + struct ma_sio_enc enc[MA_SIO_NENC]; + unsigned int rchan[MA_SIO_NCHAN]; + unsigned int pchan[MA_SIO_NCHAN]; + unsigned int rate[MA_SIO_NRATE]; + int __pad[7]; + unsigned int nconf; + struct ma_sio_conf confs[MA_SIO_NCONF]; +}; + +typedef struct ma_sio_hdl* (* ma_sio_open_proc) (const char*, unsigned int, int); +typedef void (* ma_sio_close_proc) (struct ma_sio_hdl*); +typedef int (* ma_sio_setpar_proc) (struct ma_sio_hdl*, struct ma_sio_par*); +typedef int (* ma_sio_getpar_proc) (struct ma_sio_hdl*, struct ma_sio_par*); +typedef int (* ma_sio_getcap_proc) (struct ma_sio_hdl*, struct ma_sio_cap*); +typedef size_t (* ma_sio_write_proc) (struct ma_sio_hdl*, const void*, size_t); +typedef size_t (* ma_sio_read_proc) (struct ma_sio_hdl*, void*, size_t); +typedef int (* ma_sio_start_proc) (struct ma_sio_hdl*); +typedef int (* ma_sio_stop_proc) (struct ma_sio_hdl*); +typedef int (* ma_sio_initpar_proc)(struct ma_sio_par*); + +static ma_uint32 ma_get_standard_sample_rate_priority_index__sndio(ma_uint32 sampleRate) /* Lower = higher priority */ +{ + ma_uint32 i; + for (i = 0; i < ma_countof(g_maStandardSampleRatePriorities); ++i) { + if (g_maStandardSampleRatePriorities[i] == sampleRate) { + return i; + } + } + + return (ma_uint32)-1; +} + +static ma_format ma_format_from_sio_enc__sndio(unsigned int bits, unsigned int bps, unsigned int sig, unsigned int le, unsigned int msb) +{ + /* We only support native-endian right now. */ + if ((ma_is_little_endian() && le == 0) || (ma_is_big_endian() && le == 1)) { + return ma_format_unknown; + } + + if (bits == 8 && bps == 1 && sig == 0) { + return ma_format_u8; + } + if (bits == 16 && bps == 2 && sig == 1) { + return ma_format_s16; + } + if (bits == 24 && bps == 3 && sig == 1) { + return ma_format_s24; + } + if (bits == 24 && bps == 4 && sig == 1 && msb == 0) { + /*return ma_format_s24_32;*/ + } + if (bits == 32 && bps == 4 && sig == 1) { + return ma_format_s32; + } + + return ma_format_unknown; +} + +static ma_format ma_find_best_format_from_sio_cap__sndio(struct ma_sio_cap* caps) +{ + ma_format bestFormat; + unsigned int iConfig; + + MA_ASSERT(caps != NULL); + + bestFormat = ma_format_unknown; + for (iConfig = 0; iConfig < caps->nconf; iConfig += 1) { + unsigned int iEncoding; + for (iEncoding = 0; iEncoding < MA_SIO_NENC; iEncoding += 1) { + unsigned int bits; + unsigned int bps; + unsigned int sig; + unsigned int le; + unsigned int msb; + ma_format format; + + if ((caps->confs[iConfig].enc & (1UL << iEncoding)) == 0) { + continue; + } + + bits = caps->enc[iEncoding].bits; + bps = caps->enc[iEncoding].bps; + sig = caps->enc[iEncoding].sig; + le = caps->enc[iEncoding].le; + msb = caps->enc[iEncoding].msb; + format = ma_format_from_sio_enc__sndio(bits, bps, sig, le, msb); + if (format == ma_format_unknown) { + continue; /* Format not supported. */ + } + + if (bestFormat == ma_format_unknown) { + bestFormat = format; + } else { + if (ma_get_format_priority_index(bestFormat) > ma_get_format_priority_index(format)) { /* <-- Lower = better. */ + bestFormat = format; + } + } + } + } + + return bestFormat; +} + +static ma_uint32 ma_find_best_channels_from_sio_cap__sndio(struct ma_sio_cap* caps, ma_device_type deviceType, ma_format requiredFormat) +{ + ma_uint32 maxChannels; + unsigned int iConfig; + + MA_ASSERT(caps != NULL); + MA_ASSERT(requiredFormat != ma_format_unknown); + + /* Just pick whatever configuration has the most channels. */ + maxChannels = 0; + for (iConfig = 0; iConfig < caps->nconf; iConfig += 1) { + /* The encoding should be of requiredFormat. */ + unsigned int iEncoding; + for (iEncoding = 0; iEncoding < MA_SIO_NENC; iEncoding += 1) { + unsigned int iChannel; + unsigned int bits; + unsigned int bps; + unsigned int sig; + unsigned int le; + unsigned int msb; + ma_format format; + + if ((caps->confs[iConfig].enc & (1UL << iEncoding)) == 0) { + continue; + } + + bits = caps->enc[iEncoding].bits; + bps = caps->enc[iEncoding].bps; + sig = caps->enc[iEncoding].sig; + le = caps->enc[iEncoding].le; + msb = caps->enc[iEncoding].msb; + format = ma_format_from_sio_enc__sndio(bits, bps, sig, le, msb); + if (format != requiredFormat) { + continue; + } + + /* Getting here means the format is supported. Iterate over each channel count and grab the biggest one. */ + for (iChannel = 0; iChannel < MA_SIO_NCHAN; iChannel += 1) { + unsigned int chan = 0; + unsigned int channels; + + if (deviceType == ma_device_type_playback) { + chan = caps->confs[iConfig].pchan; + } else { + chan = caps->confs[iConfig].rchan; + } + + if ((chan & (1UL << iChannel)) == 0) { + continue; + } + + if (deviceType == ma_device_type_playback) { + channels = caps->pchan[iChannel]; + } else { + channels = caps->rchan[iChannel]; + } + + if (maxChannels < channels) { + maxChannels = channels; + } + } + } + } + + return maxChannels; +} + +static ma_uint32 ma_find_best_sample_rate_from_sio_cap__sndio(struct ma_sio_cap* caps, ma_device_type deviceType, ma_format requiredFormat, ma_uint32 requiredChannels) +{ + ma_uint32 firstSampleRate; + ma_uint32 bestSampleRate; + unsigned int iConfig; + + MA_ASSERT(caps != NULL); + MA_ASSERT(requiredFormat != ma_format_unknown); + MA_ASSERT(requiredChannels > 0); + MA_ASSERT(requiredChannels <= MA_MAX_CHANNELS); + + firstSampleRate = 0; /* <-- If the device does not support a standard rate we'll fall back to the first one that's found. */ + bestSampleRate = 0; + + for (iConfig = 0; iConfig < caps->nconf; iConfig += 1) { + /* The encoding should be of requiredFormat. */ + unsigned int iEncoding; + for (iEncoding = 0; iEncoding < MA_SIO_NENC; iEncoding += 1) { + unsigned int iChannel; + unsigned int bits; + unsigned int bps; + unsigned int sig; + unsigned int le; + unsigned int msb; + ma_format format; + + if ((caps->confs[iConfig].enc & (1UL << iEncoding)) == 0) { + continue; + } + + bits = caps->enc[iEncoding].bits; + bps = caps->enc[iEncoding].bps; + sig = caps->enc[iEncoding].sig; + le = caps->enc[iEncoding].le; + msb = caps->enc[iEncoding].msb; + format = ma_format_from_sio_enc__sndio(bits, bps, sig, le, msb); + if (format != requiredFormat) { + continue; + } + + /* Getting here means the format is supported. Iterate over each channel count and grab the biggest one. */ + for (iChannel = 0; iChannel < MA_SIO_NCHAN; iChannel += 1) { + unsigned int chan = 0; + unsigned int channels; + unsigned int iRate; + + if (deviceType == ma_device_type_playback) { + chan = caps->confs[iConfig].pchan; + } else { + chan = caps->confs[iConfig].rchan; + } + + if ((chan & (1UL << iChannel)) == 0) { + continue; + } + + if (deviceType == ma_device_type_playback) { + channels = caps->pchan[iChannel]; + } else { + channels = caps->rchan[iChannel]; + } + + if (channels != requiredChannels) { + continue; + } + + /* Getting here means we have found a compatible encoding/channel pair. */ + for (iRate = 0; iRate < MA_SIO_NRATE; iRate += 1) { + ma_uint32 rate = (ma_uint32)caps->rate[iRate]; + ma_uint32 ratePriority; + + if (firstSampleRate == 0) { + firstSampleRate = rate; + } + + /* Disregard this rate if it's not a standard one. */ + ratePriority = ma_get_standard_sample_rate_priority_index__sndio(rate); + if (ratePriority == (ma_uint32)-1) { + continue; + } + + if (ma_get_standard_sample_rate_priority_index__sndio(bestSampleRate) > ratePriority) { /* Lower = better. */ + bestSampleRate = rate; + } + } + } + } + } + + /* If a standard sample rate was not found just fall back to the first one that was iterated. */ + if (bestSampleRate == 0) { + bestSampleRate = firstSampleRate; + } + + return bestSampleRate; +} + + +static ma_result ma_context_enumerate_devices__sndio(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_bool32 isTerminating = MA_FALSE; + struct ma_sio_hdl* handle; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* sndio doesn't seem to have a good device enumeration API, so I'm therefore only enumerating over default devices for now. */ + + /* Playback. */ + if (!isTerminating) { + handle = ((ma_sio_open_proc)pContext->sndio.sio_open)(MA_SIO_DEVANY, MA_SIO_PLAY, 0); + if (handle != NULL) { + /* Supports playback. */ + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strcpy_s(deviceInfo.id.sndio, sizeof(deviceInfo.id.sndio), MA_SIO_DEVANY); + ma_strcpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_PLAYBACK_DEVICE_NAME); + + isTerminating = !callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + + ((ma_sio_close_proc)pContext->sndio.sio_close)(handle); + } + } + + /* Capture. */ + if (!isTerminating) { + handle = ((ma_sio_open_proc)pContext->sndio.sio_open)(MA_SIO_DEVANY, MA_SIO_REC, 0); + if (handle != NULL) { + /* Supports capture. */ + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strcpy_s(deviceInfo.id.sndio, sizeof(deviceInfo.id.sndio), "default"); + ma_strcpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_CAPTURE_DEVICE_NAME); + + isTerminating = !callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + + ((ma_sio_close_proc)pContext->sndio.sio_close)(handle); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__sndio(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + char devid[256]; + struct ma_sio_hdl* handle; + struct ma_sio_cap caps; + unsigned int iConfig; + + MA_ASSERT(pContext != NULL); + + /* We need to open the device before we can get information about it. */ + if (pDeviceID == NULL) { + ma_strcpy_s(devid, sizeof(devid), MA_SIO_DEVANY); + ma_strcpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), (deviceType == ma_device_type_playback) ? MA_DEFAULT_PLAYBACK_DEVICE_NAME : MA_DEFAULT_CAPTURE_DEVICE_NAME); + } else { + ma_strcpy_s(devid, sizeof(devid), pDeviceID->sndio); + ma_strcpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), devid); + } + + handle = ((ma_sio_open_proc)pContext->sndio.sio_open)(devid, (deviceType == ma_device_type_playback) ? MA_SIO_PLAY : MA_SIO_REC, 0); + if (handle == NULL) { + return MA_NO_DEVICE; + } + + if (((ma_sio_getcap_proc)pContext->sndio.sio_getcap)(handle, &caps) == 0) { + return MA_ERROR; + } + + pDeviceInfo->nativeDataFormatCount = 0; + + for (iConfig = 0; iConfig < caps.nconf; iConfig += 1) { + /* + The main thing we care about is that the encoding is supported by miniaudio. If it is, we want to give + preference to some formats over others. + */ + unsigned int iEncoding; + unsigned int iChannel; + unsigned int iRate; + + for (iEncoding = 0; iEncoding < MA_SIO_NENC; iEncoding += 1) { + unsigned int bits; + unsigned int bps; + unsigned int sig; + unsigned int le; + unsigned int msb; + ma_format format; + + if ((caps.confs[iConfig].enc & (1UL << iEncoding)) == 0) { + continue; + } + + bits = caps.enc[iEncoding].bits; + bps = caps.enc[iEncoding].bps; + sig = caps.enc[iEncoding].sig; + le = caps.enc[iEncoding].le; + msb = caps.enc[iEncoding].msb; + format = ma_format_from_sio_enc__sndio(bits, bps, sig, le, msb); + if (format == ma_format_unknown) { + continue; /* Format not supported. */ + } + + + /* Channels. */ + for (iChannel = 0; iChannel < MA_SIO_NCHAN; iChannel += 1) { + unsigned int chan = 0; + unsigned int channels; + + if (deviceType == ma_device_type_playback) { + chan = caps.confs[iConfig].pchan; + } else { + chan = caps.confs[iConfig].rchan; + } + + if ((chan & (1UL << iChannel)) == 0) { + continue; + } + + if (deviceType == ma_device_type_playback) { + channels = caps.pchan[iChannel]; + } else { + channels = caps.rchan[iChannel]; + } + + + /* Sample Rates. */ + for (iRate = 0; iRate < MA_SIO_NRATE; iRate += 1) { + if ((caps.confs[iConfig].rate & (1UL << iRate)) != 0) { + ma_device_info_add_native_data_format(pDeviceInfo, format, channels, caps.rate[iRate], 0); + } + } + } + } + } + + ((ma_sio_close_proc)pContext->sndio.sio_close)(handle); + return MA_SUCCESS; +} + +static ma_result ma_device_uninit__sndio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ((ma_sio_close_proc)pDevice->pContext->sndio.sio_close)((struct ma_sio_hdl*)pDevice->sndio.handleCapture); + } + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ((ma_sio_close_proc)pDevice->pContext->sndio.sio_close)((struct ma_sio_hdl*)pDevice->sndio.handlePlayback); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_init_handle__sndio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptor, ma_device_type deviceType) +{ + const char* pDeviceName; + ma_ptr handle; + int openFlags = 0; + struct ma_sio_cap caps; + struct ma_sio_par par; + const ma_device_id* pDeviceID; + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_format internalFormat; + ma_uint32 internalChannels; + ma_uint32 internalSampleRate; + ma_uint32 internalPeriodSizeInFrames; + ma_uint32 internalPeriods; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(deviceType != ma_device_type_duplex); + MA_ASSERT(pDevice != NULL); + + if (deviceType == ma_device_type_capture) { + openFlags = MA_SIO_REC; + } else { + openFlags = MA_SIO_PLAY; + } + + pDeviceID = pDescriptor->pDeviceID; + format = pDescriptor->format; + channels = pDescriptor->channels; + sampleRate = pDescriptor->sampleRate; + + pDeviceName = MA_SIO_DEVANY; + if (pDeviceID != NULL) { + pDeviceName = pDeviceID->sndio; + } + + handle = (ma_ptr)((ma_sio_open_proc)pDevice->pContext->sndio.sio_open)(pDeviceName, openFlags, 0); + if (handle == NULL) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[sndio] Failed to open device.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); + } + + /* We need to retrieve the device caps to determine the most appropriate format to use. */ + if (((ma_sio_getcap_proc)pDevice->pContext->sndio.sio_getcap)((struct ma_sio_hdl*)handle, &caps) == 0) { + ((ma_sio_close_proc)pDevice->pContext->sndio.sio_close)((struct ma_sio_hdl*)handle); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[sndio] Failed to retrieve device caps.", MA_ERROR); + } + + /* + Note: sndio reports a huge range of available channels. This is inconvenient for us because there's no real + way, as far as I can tell, to get the _actual_ channel count of the device. I'm therefore restricting this + to the requested channels, regardless of whether or not the default channel count is requested. + + For hardware devices, I'm suspecting only a single channel count will be reported and we can safely use the + value returned by ma_find_best_channels_from_sio_cap__sndio(). + */ + if (deviceType == ma_device_type_capture) { + if (format == ma_format_unknown) { + format = ma_find_best_format_from_sio_cap__sndio(&caps); + } + + if (channels == 0) { + if (strlen(pDeviceName) > strlen("rsnd/") && strncmp(pDeviceName, "rsnd/", strlen("rsnd/")) == 0) { + channels = ma_find_best_channels_from_sio_cap__sndio(&caps, deviceType, format); + } else { + channels = MA_DEFAULT_CHANNELS; + } + } + } else { + if (format == ma_format_unknown) { + format = ma_find_best_format_from_sio_cap__sndio(&caps); + } + + if (channels == 0) { + if (strlen(pDeviceName) > strlen("rsnd/") && strncmp(pDeviceName, "rsnd/", strlen("rsnd/")) == 0) { + channels = ma_find_best_channels_from_sio_cap__sndio(&caps, deviceType, format); + } else { + channels = MA_DEFAULT_CHANNELS; + } + } + } + + if (sampleRate == 0) { + sampleRate = ma_find_best_sample_rate_from_sio_cap__sndio(&caps, pConfig->deviceType, format, channels); + } + + + ((ma_sio_initpar_proc)pDevice->pContext->sndio.sio_initpar)(&par); + par.msb = 0; + par.le = ma_is_little_endian(); + + switch (format) { + case ma_format_u8: + { + par.bits = 8; + par.bps = 1; + par.sig = 0; + } break; + + case ma_format_s24: + { + par.bits = 24; + par.bps = 3; + par.sig = 1; + } break; + + case ma_format_s32: + { + par.bits = 32; + par.bps = 4; + par.sig = 1; + } break; + + case ma_format_s16: + case ma_format_f32: + case ma_format_unknown: + default: + { + par.bits = 16; + par.bps = 2; + par.sig = 1; + } break; + } + + if (deviceType == ma_device_type_capture) { + par.rchan = channels; + } else { + par.pchan = channels; + } + + par.rate = sampleRate; + + internalPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, par.rate, pConfig->performanceProfile); + + par.round = internalPeriodSizeInFrames; + par.appbufsz = par.round * pDescriptor->periodCount; + + if (((ma_sio_setpar_proc)pDevice->pContext->sndio.sio_setpar)((struct ma_sio_hdl*)handle, &par) == 0) { + ((ma_sio_close_proc)pDevice->pContext->sndio.sio_close)((struct ma_sio_hdl*)handle); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[sndio] Failed to set buffer size.", MA_FORMAT_NOT_SUPPORTED); + } + + if (((ma_sio_getpar_proc)pDevice->pContext->sndio.sio_getpar)((struct ma_sio_hdl*)handle, &par) == 0) { + ((ma_sio_close_proc)pDevice->pContext->sndio.sio_close)((struct ma_sio_hdl*)handle); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[sndio] Failed to retrieve buffer size.", MA_FORMAT_NOT_SUPPORTED); + } + + internalFormat = ma_format_from_sio_enc__sndio(par.bits, par.bps, par.sig, par.le, par.msb); + internalChannels = (deviceType == ma_device_type_capture) ? par.rchan : par.pchan; + internalSampleRate = par.rate; + internalPeriods = par.appbufsz / par.round; + internalPeriodSizeInFrames = par.round; + + if (deviceType == ma_device_type_capture) { + pDevice->sndio.handleCapture = handle; + } else { + pDevice->sndio.handlePlayback = handle; + } + + pDescriptor->format = internalFormat; + pDescriptor->channels = internalChannels; + pDescriptor->sampleRate = internalSampleRate; + ma_get_standard_channel_map(ma_standard_channel_map_sndio, pDevice->playback.internalChannels, pDevice->playback.internalChannelMap); + pDescriptor->periodSizeInFrames = internalPeriodSizeInFrames; + pDescriptor->periodCount = internalPeriods; + +#ifdef MA_DEBUG_OUTPUT + printf("DEVICE INFO\n"); + printf(" Format: %s\n", ma_get_format_name(internalFormat)); + printf(" Channels: %d\n", internalChannels); + printf(" Sample Rate: %d\n", internalSampleRate); + printf(" Period Size: %d\n", internalPeriodSizeInFrames); + printf(" Periods: %d\n", internalPeriods); + printf(" appbufsz: %d\n", par.appbufsz); + printf(" round: %d\n", par.round); +#endif + + return MA_SUCCESS; +} + +static ma_result ma_device_init__sndio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + MA_ASSERT(pDevice != NULL); + + MA_ZERO_OBJECT(&pDevice->sndio); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_handle__sndio(pDevice, pConfig, pDescriptorCapture, ma_device_type_capture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_handle__sndio(pDevice, pConfig, pDescriptorPlayback, ma_device_type_playback); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start__sndio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ((ma_sio_start_proc)pDevice->pContext->sndio.sio_start)((struct ma_sio_hdl*)pDevice->sndio.handleCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ((ma_sio_start_proc)pDevice->pContext->sndio.sio_start)((struct ma_sio_hdl*)pDevice->sndio.handlePlayback); /* <-- Doesn't actually playback until data is written. */ + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__sndio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + /* + From the documentation: + + The sio_stop() function puts the audio subsystem in the same state as before sio_start() is called. It stops recording, drains the play buffer and then + stops playback. If samples to play are queued but playback hasn't started yet then playback is forced immediately; playback will actually stop once the + buffer is drained. In no case are samples in the play buffer discarded. + + Therefore, sio_stop() performs all of the necessary draining for us. + */ + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ((ma_sio_stop_proc)pDevice->pContext->sndio.sio_stop)((struct ma_sio_hdl*)pDevice->sndio.handleCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ((ma_sio_stop_proc)pDevice->pContext->sndio.sio_stop)((struct ma_sio_hdl*)pDevice->sndio.handlePlayback); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_write__sndio(ma_device* pDevice, const void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) +{ + int result; + + if (pFramesWritten != NULL) { + *pFramesWritten = 0; + } + + result = ((ma_sio_write_proc)pDevice->pContext->sndio.sio_write)((struct ma_sio_hdl*)pDevice->sndio.handlePlayback, pPCMFrames, frameCount * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels)); + if (result == 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[sndio] Failed to send data from the client to the device.", MA_IO_ERROR); + } + + if (pFramesWritten != NULL) { + *pFramesWritten = frameCount; + } + + return MA_SUCCESS; +} + +static ma_result ma_device_read__sndio(ma_device* pDevice, void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesRead) +{ + int result; + + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + result = ((ma_sio_read_proc)pDevice->pContext->sndio.sio_read)((struct ma_sio_hdl*)pDevice->sndio.handleCapture, pPCMFrames, frameCount * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels)); + if (result == 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[sndio] Failed to read data from the device to be sent to the device.", MA_IO_ERROR); + } + + if (pFramesRead != NULL) { + *pFramesRead = frameCount; + } + + return MA_SUCCESS; +} + +static ma_result ma_context_uninit__sndio(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_sndio); + + (void)pContext; + return MA_SUCCESS; +} + +static ma_result ma_context_init__sndio(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ +#ifndef MA_NO_RUNTIME_LINKING + const char* libsndioNames[] = { + "libsndio.so" + }; + size_t i; + + for (i = 0; i < ma_countof(libsndioNames); ++i) { + pContext->sndio.sndioSO = ma_dlopen(pContext, libsndioNames[i]); + if (pContext->sndio.sndioSO != NULL) { + break; + } + } + + if (pContext->sndio.sndioSO == NULL) { + return MA_NO_BACKEND; + } + + pContext->sndio.sio_open = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_open"); + pContext->sndio.sio_close = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_close"); + pContext->sndio.sio_setpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_setpar"); + pContext->sndio.sio_getpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_getpar"); + pContext->sndio.sio_getcap = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_getcap"); + pContext->sndio.sio_write = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_write"); + pContext->sndio.sio_read = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_read"); + pContext->sndio.sio_start = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_start"); + pContext->sndio.sio_stop = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_stop"); + pContext->sndio.sio_initpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_initpar"); +#else + pContext->sndio.sio_open = sio_open; + pContext->sndio.sio_close = sio_close; + pContext->sndio.sio_setpar = sio_setpar; + pContext->sndio.sio_getpar = sio_getpar; + pContext->sndio.sio_getcap = sio_getcap; + pContext->sndio.sio_write = sio_write; + pContext->sndio.sio_read = sio_read; + pContext->sndio.sio_start = sio_start; + pContext->sndio.sio_stop = sio_stop; + pContext->sndio.sio_initpar = sio_initpar; +#endif + + pCallbacks->onContextInit = ma_context_init__sndio; + pCallbacks->onContextUninit = ma_context_uninit__sndio; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__sndio; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__sndio; + pCallbacks->onDeviceInit = ma_device_init__sndio; + pCallbacks->onDeviceUninit = ma_device_uninit__sndio; + pCallbacks->onDeviceStart = ma_device_start__sndio; + pCallbacks->onDeviceStop = ma_device_stop__sndio; + pCallbacks->onDeviceRead = ma_device_read__sndio; + pCallbacks->onDeviceWrite = ma_device_write__sndio; + pCallbacks->onDeviceDataLoop = NULL; + + (void)pConfig; + return MA_SUCCESS; +} +#endif /* sndio */ + + + +/****************************************************************************** + +audio(4) Backend + +******************************************************************************/ +#ifdef MA_HAS_AUDIO4 +#include +#include +#include +#include +#include +#include +#include + +#if defined(__OpenBSD__) + #include + #if defined(OpenBSD) && OpenBSD >= 201709 + #define MA_AUDIO4_USE_NEW_API + #endif +#endif + +static void ma_construct_device_id__audio4(char* id, size_t idSize, const char* base, int deviceIndex) +{ + size_t baseLen; + + MA_ASSERT(id != NULL); + MA_ASSERT(idSize > 0); + MA_ASSERT(deviceIndex >= 0); + + baseLen = strlen(base); + MA_ASSERT(idSize > baseLen); + + ma_strcpy_s(id, idSize, base); + ma_itoa_s(deviceIndex, id+baseLen, idSize-baseLen, 10); +} + +static ma_result ma_extract_device_index_from_id__audio4(const char* id, const char* base, int* pIndexOut) +{ + size_t idLen; + size_t baseLen; + const char* deviceIndexStr; + + MA_ASSERT(id != NULL); + MA_ASSERT(base != NULL); + MA_ASSERT(pIndexOut != NULL); + + idLen = strlen(id); + baseLen = strlen(base); + if (idLen <= baseLen) { + return MA_ERROR; /* Doesn't look like the id starts with the base. */ + } + + if (strncmp(id, base, baseLen) != 0) { + return MA_ERROR; /* ID does not begin with base. */ + } + + deviceIndexStr = id + baseLen; + if (deviceIndexStr[0] == '\0') { + return MA_ERROR; /* No index specified in the ID. */ + } + + if (pIndexOut) { + *pIndexOut = atoi(deviceIndexStr); + } + + return MA_SUCCESS; +} + + +#if !defined(MA_AUDIO4_USE_NEW_API) /* Old API */ +static ma_format ma_format_from_encoding__audio4(unsigned int encoding, unsigned int precision) +{ + if (precision == 8 && (encoding == AUDIO_ENCODING_ULINEAR || encoding == AUDIO_ENCODING_ULINEAR || encoding == AUDIO_ENCODING_ULINEAR_LE || encoding == AUDIO_ENCODING_ULINEAR_BE)) { + return ma_format_u8; + } else { + if (ma_is_little_endian() && encoding == AUDIO_ENCODING_SLINEAR_LE) { + if (precision == 16) { + return ma_format_s16; + } else if (precision == 24) { + return ma_format_s24; + } else if (precision == 32) { + return ma_format_s32; + } + } else if (ma_is_big_endian() && encoding == AUDIO_ENCODING_SLINEAR_BE) { + if (precision == 16) { + return ma_format_s16; + } else if (precision == 24) { + return ma_format_s24; + } else if (precision == 32) { + return ma_format_s32; + } + } + } + + return ma_format_unknown; /* Encoding not supported. */ +} + +static void ma_encoding_from_format__audio4(ma_format format, unsigned int* pEncoding, unsigned int* pPrecision) +{ + MA_ASSERT(pEncoding != NULL); + MA_ASSERT(pPrecision != NULL); + + switch (format) + { + case ma_format_u8: + { + *pEncoding = AUDIO_ENCODING_ULINEAR; + *pPrecision = 8; + } break; + + case ma_format_s24: + { + *pEncoding = (ma_is_little_endian()) ? AUDIO_ENCODING_SLINEAR_LE : AUDIO_ENCODING_SLINEAR_BE; + *pPrecision = 24; + } break; + + case ma_format_s32: + { + *pEncoding = (ma_is_little_endian()) ? AUDIO_ENCODING_SLINEAR_LE : AUDIO_ENCODING_SLINEAR_BE; + *pPrecision = 32; + } break; + + case ma_format_s16: + case ma_format_f32: + case ma_format_unknown: + default: + { + *pEncoding = (ma_is_little_endian()) ? AUDIO_ENCODING_SLINEAR_LE : AUDIO_ENCODING_SLINEAR_BE; + *pPrecision = 16; + } break; + } +} + +static ma_format ma_format_from_prinfo__audio4(struct audio_prinfo* prinfo) +{ + return ma_format_from_encoding__audio4(prinfo->encoding, prinfo->precision); +} + +static ma_format ma_best_format_from_fd__audio4(int fd, ma_format preferredFormat) +{ + audio_encoding_t encoding; + ma_uint32 iFormat; + int counter = 0; + + /* First check to see if the preferred format is supported. */ + if (preferredFormat != ma_format_unknown) { + counter = 0; + for (;;) { + MA_ZERO_OBJECT(&encoding); + encoding.index = counter; + if (ioctl(fd, AUDIO_GETENC, &encoding) < 0) { + break; + } + + if (preferredFormat == ma_format_from_encoding__audio4(encoding.encoding, encoding.precision)) { + return preferredFormat; /* Found the preferred format. */ + } + + /* Getting here means this encoding does not match our preferred format so we need to more on to the next encoding. */ + counter += 1; + } + } + + /* Getting here means our preferred format is not supported, so fall back to our standard priorities. */ + for (iFormat = 0; iFormat < ma_countof(g_maFormatPriorities); iFormat += 1) { + ma_format format = g_maFormatPriorities[iFormat]; + + counter = 0; + for (;;) { + MA_ZERO_OBJECT(&encoding); + encoding.index = counter; + if (ioctl(fd, AUDIO_GETENC, &encoding) < 0) { + break; + } + + if (format == ma_format_from_encoding__audio4(encoding.encoding, encoding.precision)) { + return format; /* Found a workable format. */ + } + + /* Getting here means this encoding does not match our preferred format so we need to more on to the next encoding. */ + counter += 1; + } + } + + /* Getting here means not appropriate format was found. */ + return ma_format_unknown; +} +#else +static ma_format ma_format_from_swpar__audio4(struct audio_swpar* par) +{ + if (par->bits == 8 && par->bps == 1 && par->sig == 0) { + return ma_format_u8; + } + if (par->bits == 16 && par->bps == 2 && par->sig == 1 && par->le == ma_is_little_endian()) { + return ma_format_s16; + } + if (par->bits == 24 && par->bps == 3 && par->sig == 1 && par->le == ma_is_little_endian()) { + return ma_format_s24; + } + if (par->bits == 32 && par->bps == 4 && par->sig == 1 && par->le == ma_is_little_endian()) { + return ma_format_f32; + } + + /* Format not supported. */ + return ma_format_unknown; +} +#endif + +static ma_result ma_context_get_device_info_from_fd__audio4(ma_context* pContext, ma_device_type deviceType, int fd, ma_device_info* pDeviceInfo) +{ + audio_device_t fdDevice; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(fd >= 0); + MA_ASSERT(pDeviceInfo != NULL); + + (void)pContext; + (void)deviceType; + + if (ioctl(fd, AUDIO_GETDEV, &fdDevice) < 0) { + return MA_ERROR; /* Failed to retrieve device info. */ + } + + /* Name. */ + ma_strcpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), fdDevice.name); + + #if !defined(MA_AUDIO4_USE_NEW_API) + { + audio_info_t fdInfo; + int counter = 0; + ma_uint32 channels; + ma_uint32 sampleRate; + + if (ioctl(fd, AUDIO_GETINFO, &fdInfo) < 0) { + return MA_ERROR; + } + + if (deviceType == ma_device_type_playback) { + channels = fdInfo.play.channels; + sampleRate = fdInfo.play.sample_rate; + } else { + channels = fdInfo.record.channels; + sampleRate = fdInfo.record.sample_rate; + } + + /* Supported formats. We get this by looking at the encodings. */ + pDeviceInfo->nativeDataFormatCount = 0; + for (;;) { + audio_encoding_t encoding; + ma_format format; + + MA_ZERO_OBJECT(&encoding); + encoding.index = counter; + if (ioctl(fd, AUDIO_GETENC, &encoding) < 0) { + break; + } + + format = ma_format_from_encoding__audio4(encoding.encoding, encoding.precision); + if (format != ma_format_unknown) { + ma_device_info_add_native_data_format(pDeviceInfo, format, channels, sampleRate, 0); + } + + counter += 1; + } + } + #else + { + struct audio_swpar fdPar; + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + + if (ioctl(fd, AUDIO_GETPAR, &fdPar) < 0) { + return MA_ERROR; + } + + format = ma_format_from_swpar__audio4(&fdPar); + if (format == ma_format_unknown) { + return MA_FORMAT_NOT_SUPPORTED; + } + + if (deviceType == ma_device_type_playback) { + channels = fdPar.pchan; + } else { + channels = fdPar.rchan; + } + + sampleRate = fdPar.rate; + + pDeviceInfo->nativeDataFormatCount = 0; + ma_device_info_add_native_data_format(pDeviceInfo, format, channels, sampleRate, 0); + } + #endif + + return MA_SUCCESS; +} + +static ma_result ma_context_enumerate_devices__audio4(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + const int maxDevices = 64; + char devpath[256]; + int iDevice; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* + Every device will be named "/dev/audioN", with a "/dev/audioctlN" equivalent. We use the "/dev/audioctlN" + version here since we can open it even when another process has control of the "/dev/audioN" device. + */ + for (iDevice = 0; iDevice < maxDevices; ++iDevice) { + struct stat st; + int fd; + ma_bool32 isTerminating = MA_FALSE; + + ma_strcpy_s(devpath, sizeof(devpath), "/dev/audioctl"); + ma_itoa_s(iDevice, devpath+strlen(devpath), sizeof(devpath)-strlen(devpath), 10); + + if (stat(devpath, &st) < 0) { + break; + } + + /* The device exists, but we need to check if it's usable as playback and/or capture. */ + + /* Playback. */ + if (!isTerminating) { + fd = open(devpath, O_RDONLY, 0); + if (fd >= 0) { + /* Supports playback. */ + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_construct_device_id__audio4(deviceInfo.id.audio4, sizeof(deviceInfo.id.audio4), "/dev/audio", iDevice); + if (ma_context_get_device_info_from_fd__audio4(pContext, ma_device_type_playback, fd, &deviceInfo) == MA_SUCCESS) { + isTerminating = !callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + + close(fd); + } + } + + /* Capture. */ + if (!isTerminating) { + fd = open(devpath, O_WRONLY, 0); + if (fd >= 0) { + /* Supports capture. */ + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_construct_device_id__audio4(deviceInfo.id.audio4, sizeof(deviceInfo.id.audio4), "/dev/audio", iDevice); + if (ma_context_get_device_info_from_fd__audio4(pContext, ma_device_type_capture, fd, &deviceInfo) == MA_SUCCESS) { + isTerminating = !callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + + close(fd); + } + } + + if (isTerminating) { + break; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__audio4(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + int fd = -1; + int deviceIndex = -1; + char ctlid[256]; + ma_result result; + + MA_ASSERT(pContext != NULL); + + /* + We need to open the "/dev/audioctlN" device to get the info. To do this we need to extract the number + from the device ID which will be in "/dev/audioN" format. + */ + if (pDeviceID == NULL) { + /* Default device. */ + ma_strcpy_s(ctlid, sizeof(ctlid), "/dev/audioctl"); + } else { + /* Specific device. We need to convert from "/dev/audioN" to "/dev/audioctlN". */ + result = ma_extract_device_index_from_id__audio4(pDeviceID->audio4, "/dev/audio", &deviceIndex); + if (result != MA_SUCCESS) { + return result; + } + + ma_construct_device_id__audio4(ctlid, sizeof(ctlid), "/dev/audioctl", deviceIndex); + } + + fd = open(ctlid, (deviceType == ma_device_type_playback) ? O_WRONLY : O_RDONLY, 0); + if (fd == -1) { + return MA_NO_DEVICE; + } + + if (deviceIndex == -1) { + ma_strcpy_s(pDeviceInfo->id.audio4, sizeof(pDeviceInfo->id.audio4), "/dev/audio"); + } else { + ma_construct_device_id__audio4(pDeviceInfo->id.audio4, sizeof(pDeviceInfo->id.audio4), "/dev/audio", deviceIndex); + } + + result = ma_context_get_device_info_from_fd__audio4(pContext, deviceType, fd, pDeviceInfo); + + close(fd); + return result; +} + +static ma_result ma_device_uninit__audio4(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + close(pDevice->audio4.fdCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + close(pDevice->audio4.fdPlayback); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_init_fd__audio4(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptor, ma_device_type deviceType) +{ + const char* pDefaultDeviceNames[] = { + "/dev/audio", + "/dev/audio0" + }; + int fd; + int fdFlags = 0; + ma_format internalFormat; + ma_uint32 internalChannels; + ma_uint32 internalSampleRate; + ma_uint32 internalPeriodSizeInFrames; + ma_uint32 internalPeriods; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(deviceType != ma_device_type_duplex); + MA_ASSERT(pDevice != NULL); + + /* The first thing to do is open the file. */ + if (deviceType == ma_device_type_capture) { + fdFlags = O_RDONLY; + } else { + fdFlags = O_WRONLY; + } + /*fdFlags |= O_NONBLOCK;*/ + + if (pDescriptor->pDeviceID == NULL) { + /* Default device. */ + size_t iDevice; + for (iDevice = 0; iDevice < ma_countof(pDefaultDeviceNames); ++iDevice) { + fd = open(pDefaultDeviceNames[iDevice], fdFlags, 0); + if (fd != -1) { + break; + } + } + } else { + /* Specific device. */ + fd = open(pDescriptor->pDeviceID->audio4, fdFlags, 0); + } + + if (fd == -1) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to open device.", ma_result_from_errno(errno)); + } + + #if !defined(MA_AUDIO4_USE_NEW_API) /* Old API */ + { + audio_info_t fdInfo; + + /* + The documentation is a little bit unclear to me as to how it handles formats. It says the + following: + + Regardless of formats supported by underlying driver, the audio driver accepts the + following formats. + + By then the next sentence says this: + + `encoding` and `precision` are one of the values obtained by AUDIO_GETENC. + + It sounds like a direct contradiction to me. I'm going to play this safe any only use the + best sample format returned by AUDIO_GETENC. If the requested format is supported we'll + use that, but otherwise we'll just use our standard format priorities to pick an + appropriate one. + */ + AUDIO_INITINFO(&fdInfo); + + /* We get the driver to do as much of the data conversion as possible. */ + if (deviceType == ma_device_type_capture) { + fdInfo.mode = AUMODE_RECORD; + ma_encoding_from_format__audio4(ma_best_format_from_fd__audio4(fd, pDescriptor->format), &fdInfo.record.encoding, &fdInfo.record.precision); + + if (pDescriptor->channels != 0) { + fdInfo.record.channels = ma_clamp(pDescriptor->channels, 1, 12); /* From the documentation: `channels` ranges from 1 to 12. */ + } + + if (pDescriptor->sampleRate != 0) { + fdInfo.record.sample_rate = ma_clamp(pDescriptor->sampleRate, 1000, 192000); /* From the documentation: `frequency` ranges from 1000Hz to 192000Hz. (They mean `sample_rate` instead of `frequency`.) */ + } + } else { + fdInfo.mode = AUMODE_PLAY; + ma_encoding_from_format__audio4(ma_best_format_from_fd__audio4(fd, pDescriptor->format), &fdInfo.play.encoding, &fdInfo.play.precision); + + if (pDescriptor->channels != 0) { + fdInfo.play.channels = ma_clamp(pDescriptor->channels, 1, 12); /* From the documentation: `channels` ranges from 1 to 12. */ + } + + if (pDescriptor->sampleRate != 0) { + fdInfo.play.sample_rate = ma_clamp(pDescriptor->sampleRate, 1000, 192000); /* From the documentation: `frequency` ranges from 1000Hz to 192000Hz. (They mean `sample_rate` instead of `frequency`.) */ + } + } + + if (ioctl(fd, AUDIO_SETINFO, &fdInfo) < 0) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to set device format. AUDIO_SETINFO failed.", MA_FORMAT_NOT_SUPPORTED); + } + + if (ioctl(fd, AUDIO_GETINFO, &fdInfo) < 0) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] AUDIO_GETINFO failed.", MA_FORMAT_NOT_SUPPORTED); + } + + if (deviceType == ma_device_type_capture) { + internalFormat = ma_format_from_prinfo__audio4(&fdInfo.record); + internalChannels = fdInfo.record.channels; + internalSampleRate = fdInfo.record.sample_rate; + } else { + internalFormat = ma_format_from_prinfo__audio4(&fdInfo.play); + internalChannels = fdInfo.play.channels; + internalSampleRate = fdInfo.play.sample_rate; + } + + if (internalFormat == ma_format_unknown) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] The device's internal device format is not supported by miniaudio. The device is unusable.", MA_FORMAT_NOT_SUPPORTED); + } + + /* Buffer. */ + { + ma_uint32 internalPeriodSizeInBytes; + + internalPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, internalSampleRate, pConfig->performanceProfile); + + internalPeriodSizeInBytes = internalPeriodSizeInFrames * ma_get_bytes_per_frame(internalFormat, internalChannels); + if (internalPeriodSizeInBytes < 16) { + internalPeriodSizeInBytes = 16; + } + + internalPeriods = pDescriptor->periodCount; + if (internalPeriods < 2) { + internalPeriods = 2; + } + + /* What miniaudio calls a period, audio4 calls a block. */ + AUDIO_INITINFO(&fdInfo); + fdInfo.hiwat = internalPeriods; + fdInfo.lowat = internalPeriods-1; + fdInfo.blocksize = internalPeriodSizeInBytes; + if (ioctl(fd, AUDIO_SETINFO, &fdInfo) < 0) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to set internal buffer size. AUDIO_SETINFO failed.", MA_FORMAT_NOT_SUPPORTED); + } + + internalPeriods = fdInfo.hiwat; + internalPeriodSizeInFrames = fdInfo.blocksize / ma_get_bytes_per_frame(internalFormat, internalChannels); + } + } + #else + { + struct audio_swpar fdPar; + + /* We need to retrieve the format of the device so we can know the channel count and sample rate. Then we can calculate the buffer size. */ + if (ioctl(fd, AUDIO_GETPAR, &fdPar) < 0) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to retrieve initial device parameters.", MA_FORMAT_NOT_SUPPORTED); + } + + internalFormat = ma_format_from_swpar__audio4(&fdPar); + internalChannels = (deviceType == ma_device_type_capture) ? fdPar.rchan : fdPar.pchan; + internalSampleRate = fdPar.rate; + + if (internalFormat == ma_format_unknown) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] The device's internal device format is not supported by miniaudio. The device is unusable.", MA_FORMAT_NOT_SUPPORTED); + } + + /* Buffer. */ + { + ma_uint32 internalPeriodSizeInBytes; + + internalPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, internalSampleRate, pConfig->performanceProfile); + + /* What miniaudio calls a period, audio4 calls a block. */ + internalPeriodSizeInBytes = internalPeriodSizeInFrames * ma_get_bytes_per_frame(internalFormat, internalChannels); + if (internalPeriodSizeInBytes < 16) { + internalPeriodSizeInBytes = 16; + } + + fdPar.nblks = pDescriptor->periodCount; + fdPar.round = internalPeriodSizeInBytes; + + if (ioctl(fd, AUDIO_SETPAR, &fdPar) < 0) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to set device parameters.", MA_FORMAT_NOT_SUPPORTED); + } + + if (ioctl(fd, AUDIO_GETPAR, &fdPar) < 0) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to retrieve actual device parameters.", MA_FORMAT_NOT_SUPPORTED); + } + } + + internalFormat = ma_format_from_swpar__audio4(&fdPar); + internalChannels = (deviceType == ma_device_type_capture) ? fdPar.rchan : fdPar.pchan; + internalSampleRate = fdPar.rate; + internalPeriods = fdPar.nblks; + internalPeriodSizeInFrames = fdPar.round / ma_get_bytes_per_frame(internalFormat, internalChannels); + } + #endif + + if (internalFormat == ma_format_unknown) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] The device's internal device format is not supported by miniaudio. The device is unusable.", MA_FORMAT_NOT_SUPPORTED); + } + + if (deviceType == ma_device_type_capture) { + pDevice->audio4.fdCapture = fd; + } else { + pDevice->audio4.fdPlayback = fd; + } + + pDescriptor->format = internalFormat; + pDescriptor->channels = internalChannels; + pDescriptor->sampleRate = internalSampleRate; + ma_get_standard_channel_map(ma_standard_channel_map_sound4, internalChannels, pDescriptor->channelMap); + pDescriptor->periodSizeInFrames = internalPeriodSizeInFrames; + pDescriptor->periodCount = internalPeriods; + + return MA_SUCCESS; +} + +static ma_result ma_device_init__audio4(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + MA_ASSERT(pDevice != NULL); + + MA_ZERO_OBJECT(&pDevice->audio4); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + pDevice->audio4.fdCapture = -1; + pDevice->audio4.fdPlayback = -1; + + /* + The version of the operating system dictates whether or not the device is exclusive or shared. NetBSD + introduced in-kernel mixing which means it's shared. All other BSD flavours are exclusive as far as + I'm aware. + */ +#if defined(__NetBSD_Version__) && __NetBSD_Version__ >= 800000000 + /* NetBSD 8.0+ */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } +#else + /* All other flavors. */ +#endif + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_fd__audio4(pDevice, pConfig, pDescriptorCapture, ma_device_type_capture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_fd__audio4(pDevice, pConfig, pDescriptorPlayback, ma_device_type_playback); + if (result != MA_SUCCESS) { + if (pConfig->deviceType == ma_device_type_duplex) { + close(pDevice->audio4.fdCapture); + } + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start__audio4(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + if (pDevice->audio4.fdCapture == -1) { + return MA_INVALID_ARGS; + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + if (pDevice->audio4.fdPlayback == -1) { + return MA_INVALID_ARGS; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop_fd__audio4(ma_device* pDevice, int fd) +{ + if (fd == -1) { + return MA_INVALID_ARGS; + } + +#if !defined(MA_AUDIO4_USE_NEW_API) + if (ioctl(fd, AUDIO_FLUSH, 0) < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to stop device. AUDIO_FLUSH failed.", ma_result_from_errno(errno)); + } +#else + if (ioctl(fd, AUDIO_STOP, 0) < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to stop device. AUDIO_STOP failed.", ma_result_from_errno(errno)); + } +#endif + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__audio4(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma_result result; + + result = ma_device_stop_fd__audio4(pDevice, pDevice->audio4.fdCapture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_result result; + + /* Drain the device first. If this fails we'll just need to flush without draining. Unfortunately draining isn't available on newer version of OpenBSD. */ + #if !defined(MA_AUDIO4_USE_NEW_API) + ioctl(pDevice->audio4.fdPlayback, AUDIO_DRAIN, 0); + #endif + + /* Here is where the device is stopped immediately. */ + result = ma_device_stop_fd__audio4(pDevice, pDevice->audio4.fdPlayback); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_write__audio4(ma_device* pDevice, const void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) +{ + int result; + + if (pFramesWritten != NULL) { + *pFramesWritten = 0; + } + + result = write(pDevice->audio4.fdPlayback, pPCMFrames, frameCount * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels)); + if (result < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to write data to the device.", ma_result_from_errno(errno)); + } + + if (pFramesWritten != NULL) { + *pFramesWritten = (ma_uint32)result / ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_read__audio4(ma_device* pDevice, void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesRead) +{ + int result; + + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + result = read(pDevice->audio4.fdCapture, pPCMFrames, frameCount * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels)); + if (result < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[audio4] Failed to read data from the device.", ma_result_from_errno(errno)); + } + + if (pFramesRead != NULL) { + *pFramesRead = (ma_uint32)result / ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_uninit__audio4(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_audio4); + + (void)pContext; + return MA_SUCCESS; +} + +static ma_result ma_context_init__audio4(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + MA_ASSERT(pContext != NULL); + + (void)pConfig; + + pCallbacks->onContextInit = ma_context_init__audio4; + pCallbacks->onContextUninit = ma_context_uninit__audio4; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__audio4; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__audio4; + pCallbacks->onDeviceInit = ma_device_init__audio4; + pCallbacks->onDeviceUninit = ma_device_uninit__audio4; + pCallbacks->onDeviceStart = ma_device_start__audio4; + pCallbacks->onDeviceStop = ma_device_stop__audio4; + pCallbacks->onDeviceRead = ma_device_read__audio4; + pCallbacks->onDeviceWrite = ma_device_write__audio4; + pCallbacks->onDeviceDataLoop = NULL; + + return MA_SUCCESS; +} +#endif /* audio4 */ + + +/****************************************************************************** + +OSS Backend + +******************************************************************************/ +#ifdef MA_HAS_OSS +#include +#include +#include +#include + +#ifndef SNDCTL_DSP_HALT +#define SNDCTL_DSP_HALT SNDCTL_DSP_RESET +#endif + +#define MA_OSS_DEFAULT_DEVICE_NAME "/dev/dsp" + +static int ma_open_temp_device__oss() +{ + /* The OSS sample code uses "/dev/mixer" as the device for getting system properties so I'm going to do the same. */ + int fd = open("/dev/mixer", O_RDONLY, 0); + if (fd >= 0) { + return fd; + } + + return -1; +} + +static ma_result ma_context_open_device__oss(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_share_mode shareMode, int* pfd) +{ + const char* deviceName; + int flags; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pfd != NULL); + (void)pContext; + + *pfd = -1; + + /* This function should only be called for playback or capture, not duplex. */ + if (deviceType == ma_device_type_duplex) { + return MA_INVALID_ARGS; + } + + deviceName = MA_OSS_DEFAULT_DEVICE_NAME; + if (pDeviceID != NULL) { + deviceName = pDeviceID->oss; + } + + flags = (deviceType == ma_device_type_playback) ? O_WRONLY : O_RDONLY; + if (shareMode == ma_share_mode_exclusive) { + flags |= O_EXCL; + } + + *pfd = open(deviceName, flags, 0); + if (*pfd == -1) { + return ma_result_from_errno(errno); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_enumerate_devices__oss(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + int fd; + oss_sysinfo si; + int result; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + fd = ma_open_temp_device__oss(); + if (fd == -1) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[OSS] Failed to open a temporary device for retrieving system information used for device enumeration.", MA_NO_BACKEND); + } + + result = ioctl(fd, SNDCTL_SYSINFO, &si); + if (result != -1) { + int iAudioDevice; + for (iAudioDevice = 0; iAudioDevice < si.numaudios; ++iAudioDevice) { + oss_audioinfo ai; + ai.dev = iAudioDevice; + result = ioctl(fd, SNDCTL_AUDIOINFO, &ai); + if (result != -1) { + if (ai.devnode[0] != '\0') { /* <-- Can be blank, according to documentation. */ + ma_device_info deviceInfo; + ma_bool32 isTerminating = MA_FALSE; + + MA_ZERO_OBJECT(&deviceInfo); + + /* ID */ + ma_strncpy_s(deviceInfo.id.oss, sizeof(deviceInfo.id.oss), ai.devnode, (size_t)-1); + + /* + The human readable device name should be in the "ai.handle" variable, but it can + sometimes be empty in which case we just fall back to "ai.name" which is less user + friendly, but usually has a value. + */ + if (ai.handle[0] != '\0') { + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), ai.handle, (size_t)-1); + } else { + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), ai.name, (size_t)-1); + } + + /* The device can be both playback and capture. */ + if (!isTerminating && (ai.caps & PCM_CAP_OUTPUT) != 0) { + isTerminating = !callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + if (!isTerminating && (ai.caps & PCM_CAP_INPUT) != 0) { + isTerminating = !callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + + if (isTerminating) { + break; + } + } + } + } + } else { + close(fd); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[OSS] Failed to retrieve system information for device enumeration.", MA_NO_BACKEND); + } + + close(fd); + return MA_SUCCESS; +} + +static void ma_context_add_native_data_format__oss(ma_context* pContext, oss_audioinfo* pAudioInfo, ma_format format, ma_device_info* pDeviceInfo) +{ + unsigned int minChannels; + unsigned int maxChannels; + unsigned int iRate; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pAudioInfo != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + /* If we support all channels we just report 0. */ + minChannels = ma_clamp(pAudioInfo->min_channels, MA_MIN_CHANNELS, MA_MAX_CHANNELS); + maxChannels = ma_clamp(pAudioInfo->max_channels, MA_MIN_CHANNELS, MA_MAX_CHANNELS); + + /* + OSS has this annoying thing where sample rates can be reported in two ways. We prefer explicitness, + which OSS has in the form of nrates/rates, however there are times where nrates can be 0, in which + case we'll need to use min_rate and max_rate and report only standard rates. + */ + if (pAudioInfo->nrates > 0) { + for (iRate = 0; iRate < pAudioInfo->nrates; iRate += 1) { + unsigned int rate = pAudioInfo->rates[iRate]; + + if (minChannels == MA_MIN_CHANNELS && maxChannels == MA_MAX_CHANNELS) { + ma_device_info_add_native_data_format(pDeviceInfo, format, 0, rate, 0); /* Set the channel count to 0 to indicate that all channel counts are supported. */ + } else { + unsigned int iChannel; + for (iChannel = minChannels; iChannel <= maxChannels; iChannel += 1) { + ma_device_info_add_native_data_format(pDeviceInfo, format, iChannel, rate, 0); + } + } + } + } else { + for (iRate = 0; iRate < ma_countof(g_maStandardSampleRatePriorities); iRate += 1) { + ma_uint32 standardRate = g_maStandardSampleRatePriorities[iRate]; + + if (standardRate >= (ma_uint32)pAudioInfo->min_rate && standardRate <= (ma_uint32)pAudioInfo->max_rate) { + if (minChannels == MA_MIN_CHANNELS && maxChannels == MA_MAX_CHANNELS) { + ma_device_info_add_native_data_format(pDeviceInfo, format, 0, standardRate, 0); /* Set the channel count to 0 to indicate that all channel counts are supported. */ + } else { + unsigned int iChannel; + for (iChannel = minChannels; iChannel <= maxChannels; iChannel += 1) { + ma_device_info_add_native_data_format(pDeviceInfo, format, iChannel, standardRate, 0); + } + } + } + } + } +} + +static ma_result ma_context_get_device_info__oss(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + ma_bool32 foundDevice; + int fdTemp; + oss_sysinfo si; + int result; + + MA_ASSERT(pContext != NULL); + + /* Handle the default device a little differently. */ + if (pDeviceID == NULL) { + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + + return MA_SUCCESS; + } + + + /* If we get here it means we are _not_ using the default device. */ + foundDevice = MA_FALSE; + + fdTemp = ma_open_temp_device__oss(); + if (fdTemp == -1) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[OSS] Failed to open a temporary device for retrieving system information used for device enumeration.", MA_NO_BACKEND); + } + + result = ioctl(fdTemp, SNDCTL_SYSINFO, &si); + if (result != -1) { + int iAudioDevice; + for (iAudioDevice = 0; iAudioDevice < si.numaudios; ++iAudioDevice) { + oss_audioinfo ai; + ai.dev = iAudioDevice; + result = ioctl(fdTemp, SNDCTL_AUDIOINFO, &ai); + if (result != -1) { + if (ma_strcmp(ai.devnode, pDeviceID->oss) == 0) { + /* It has the same name, so now just confirm the type. */ + if ((deviceType == ma_device_type_playback && ((ai.caps & PCM_CAP_OUTPUT) != 0)) || + (deviceType == ma_device_type_capture && ((ai.caps & PCM_CAP_INPUT) != 0))) { + unsigned int formatMask; + + /* ID */ + ma_strncpy_s(pDeviceInfo->id.oss, sizeof(pDeviceInfo->id.oss), ai.devnode, (size_t)-1); + + /* + The human readable device name should be in the "ai.handle" variable, but it can + sometimes be empty in which case we just fall back to "ai.name" which is less user + friendly, but usually has a value. + */ + if (ai.handle[0] != '\0') { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), ai.handle, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), ai.name, (size_t)-1); + } + + + pDeviceInfo->nativeDataFormatCount = 0; + + if (deviceType == ma_device_type_playback) { + formatMask = ai.oformats; + } else { + formatMask = ai.iformats; + } + + if (((formatMask & AFMT_S16_LE) != 0 && ma_is_little_endian()) || (AFMT_S16_BE && ma_is_big_endian())) { + ma_context_add_native_data_format__oss(pContext, &ai, ma_format_s16, pDeviceInfo); + } + if (((formatMask & AFMT_S32_LE) != 0 && ma_is_little_endian()) || (AFMT_S32_BE && ma_is_big_endian())) { + ma_context_add_native_data_format__oss(pContext, &ai, ma_format_s32, pDeviceInfo); + } + if ((formatMask & AFMT_U8) != 0) { + ma_context_add_native_data_format__oss(pContext, &ai, ma_format_u8, pDeviceInfo); + } + + foundDevice = MA_TRUE; + break; + } + } + } + } + } else { + close(fdTemp); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[OSS] Failed to retrieve system information for device enumeration.", MA_NO_BACKEND); + } + + + close(fdTemp); + + if (!foundDevice) { + return MA_NO_DEVICE; + } + + return MA_SUCCESS; +} + +static ma_result ma_device_uninit__oss(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + close(pDevice->oss.fdCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + close(pDevice->oss.fdPlayback); + } + + return MA_SUCCESS; +} + +static int ma_format_to_oss(ma_format format) +{ + int ossFormat = AFMT_U8; + switch (format) { + case ma_format_s16: ossFormat = (ma_is_little_endian()) ? AFMT_S16_LE : AFMT_S16_BE; break; + case ma_format_s24: ossFormat = (ma_is_little_endian()) ? AFMT_S32_LE : AFMT_S32_BE; break; + case ma_format_s32: ossFormat = (ma_is_little_endian()) ? AFMT_S32_LE : AFMT_S32_BE; break; + case ma_format_f32: ossFormat = (ma_is_little_endian()) ? AFMT_S16_LE : AFMT_S16_BE; break; + case ma_format_u8: + default: ossFormat = AFMT_U8; break; + } + + return ossFormat; +} + +static ma_format ma_format_from_oss(int ossFormat) +{ + if (ossFormat == AFMT_U8) { + return ma_format_u8; + } else { + if (ma_is_little_endian()) { + switch (ossFormat) { + case AFMT_S16_LE: return ma_format_s16; + case AFMT_S32_LE: return ma_format_s32; + default: return ma_format_unknown; + } + } else { + switch (ossFormat) { + case AFMT_S16_BE: return ma_format_s16; + case AFMT_S32_BE: return ma_format_s32; + default: return ma_format_unknown; + } + } + } + + return ma_format_unknown; +} + +static ma_result ma_device_init_fd__oss(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptor, ma_device_type deviceType) +{ + ma_result result; + int ossResult; + int fd; + const ma_device_id* pDeviceID = NULL; + ma_share_mode shareMode; + int ossFormat; + int ossChannels; + int ossSampleRate; + int ossFragment; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pConfig != NULL); + MA_ASSERT(deviceType != ma_device_type_duplex); + + pDeviceID = pDescriptor->pDeviceID; + shareMode = pDescriptor->shareMode; + ossFormat = ma_format_to_oss((pDescriptor->format != ma_format_unknown) ? pDescriptor->format : ma_format_s16); /* Use s16 by default because OSS doesn't like floating point. */ + ossChannels = (int)(pDescriptor->channels > 0) ? pDescriptor->channels : MA_DEFAULT_CHANNELS; + ossSampleRate = (int)(pDescriptor->sampleRate > 0) ? pDescriptor->sampleRate : MA_DEFAULT_SAMPLE_RATE; + + result = ma_context_open_device__oss(pDevice->pContext, deviceType, pDeviceID, shareMode, &fd); + if (result != MA_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to open device.", result); + } + + /* + The OSS documantation is very clear about the order we should be initializing the device's properties: + 1) Format + 2) Channels + 3) Sample rate. + */ + + /* Format. */ + ossResult = ioctl(fd, SNDCTL_DSP_SETFMT, &ossFormat); + if (ossResult == -1) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to set format.", MA_FORMAT_NOT_SUPPORTED); + } + + /* Channels. */ + ossResult = ioctl(fd, SNDCTL_DSP_CHANNELS, &ossChannels); + if (ossResult == -1) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to set channel count.", MA_FORMAT_NOT_SUPPORTED); + } + + /* Sample Rate. */ + ossResult = ioctl(fd, SNDCTL_DSP_SPEED, &ossSampleRate); + if (ossResult == -1) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to set sample rate.", MA_FORMAT_NOT_SUPPORTED); + } + + /* + Buffer. + + The documentation says that the fragment settings should be set as soon as possible, but I'm not sure if + it should be done before or after format/channels/rate. + + OSS wants the fragment size in bytes and a power of 2. When setting, we specify the power, not the actual + value. + */ + { + ma_uint32 periodSizeInFrames; + ma_uint32 periodSizeInBytes; + ma_uint32 ossFragmentSizePower; + + periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, (ma_uint32)ossSampleRate, pConfig->performanceProfile); + + periodSizeInBytes = ma_round_to_power_of_2(periodSizeInFrames * ma_get_bytes_per_frame(ma_format_from_oss(ossFormat), ossChannels)); + if (periodSizeInBytes < 16) { + periodSizeInBytes = 16; + } + + ossFragmentSizePower = 4; + periodSizeInBytes >>= 4; + while (periodSizeInBytes >>= 1) { + ossFragmentSizePower += 1; + } + + ossFragment = (int)((pConfig->periods << 16) | ossFragmentSizePower); + ossResult = ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &ossFragment); + if (ossResult == -1) { + close(fd); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to set fragment size and period count.", MA_FORMAT_NOT_SUPPORTED); + } + } + + /* Internal settings. */ + if (deviceType == ma_device_type_capture) { + pDevice->oss.fdCapture = fd; + } else { + pDevice->oss.fdPlayback = fd; + } + + pDescriptor->format = ma_format_from_oss(ossFormat); + pDescriptor->channels = ossChannels; + pDescriptor->sampleRate = ossSampleRate; + ma_get_standard_channel_map(ma_standard_channel_map_sound4, pDescriptor->channels, pDescriptor->channelMap); + pDescriptor->periodCount = (ma_uint32)(ossFragment >> 16); + pDescriptor->periodSizeInFrames = (ma_uint32)(1 << (ossFragment & 0xFFFF)) / ma_get_bytes_per_frame(pDescriptor->format, pDescriptor->channels); + + if (pDescriptor->format == ma_format_unknown) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] The device's internal format is not supported by miniaudio.", MA_FORMAT_NOT_SUPPORTED); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_init__oss(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pConfig != NULL); + + MA_ZERO_OBJECT(&pDevice->oss); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_fd__oss(pDevice, pConfig, pDescriptorCapture, ma_device_type_capture); + if (result != MA_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to open device.", result); + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_result result = ma_device_init_fd__oss(pDevice, pConfig, pDescriptorPlayback, ma_device_type_playback); + if (result != MA_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to open device.", result); + } + } + + return MA_SUCCESS; +} + +/* +Note on Starting and Stopping +============================= +In the past I was using SNDCTL_DSP_HALT to stop the device, however this results in issues when +trying to resume the device again. If we use SNDCTL_DSP_HALT, the next write() or read() will +fail. Instead what we need to do is just not write or read to and from the device when the +device is not running. + +As a result, both the start and stop functions for OSS are just empty stubs. The starting and +stopping logic is handled by ma_device_write__oss() and ma_device_read__oss(). These will check +the device state, and if the device is stopped they will simply not do any kind of processing. + +The downside to this technique is that I've noticed a fairly lengthy delay in stopping the +device, up to a second. This is on a virtual machine, and as such might just be due to the +virtual drivers, but I'm not fully sure. I am not sure how to work around this problem so for +the moment that's just how it's going to have to be. + +When starting the device, OSS will automatically start it when write() or read() is called. +*/ +static ma_result ma_device_start__oss(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + /* The device is automatically started with reading and writing. */ + (void)pDevice; + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__oss(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + /* See note above on why this is empty. */ + (void)pDevice; + + return MA_SUCCESS; +} + +static ma_result ma_device_write__oss(ma_device* pDevice, const void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) +{ + int resultOSS; + ma_uint32 deviceState; + + if (pFramesWritten != NULL) { + *pFramesWritten = 0; + } + + /* Don't do any processing if the device is stopped. */ + deviceState = ma_device_get_state(pDevice); + if (deviceState != MA_STATE_STARTED && deviceState != MA_STATE_STARTING) { + return MA_SUCCESS; + } + + resultOSS = write(pDevice->oss.fdPlayback, pPCMFrames, frameCount * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels)); + if (resultOSS < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to send data from the client to the device.", ma_result_from_errno(errno)); + } + + if (pFramesWritten != NULL) { + *pFramesWritten = (ma_uint32)resultOSS / ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_read__oss(ma_device* pDevice, void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesRead) +{ + int resultOSS; + ma_uint32 deviceState; + + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + /* Don't do any processing if the device is stopped. */ + deviceState = ma_device_get_state(pDevice); + if (deviceState != MA_STATE_STARTED && deviceState != MA_STATE_STARTING) { + return MA_SUCCESS; + } + + resultOSS = read(pDevice->oss.fdCapture, pPCMFrames, frameCount * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels)); + if (resultOSS < 0) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OSS] Failed to read data from the device to be sent to the client.", ma_result_from_errno(errno)); + } + + if (pFramesRead != NULL) { + *pFramesRead = (ma_uint32)resultOSS / ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_uninit__oss(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_oss); + + (void)pContext; + return MA_SUCCESS; +} + +static ma_result ma_context_init__oss(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + int fd; + int ossVersion; + int result; + + MA_ASSERT(pContext != NULL); + + (void)pConfig; + + /* Try opening a temporary device first so we can get version information. This is closed at the end. */ + fd = ma_open_temp_device__oss(); + if (fd == -1) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[OSS] Failed to open temporary device for retrieving system properties.", MA_NO_BACKEND); /* Looks liks OSS isn't installed, or there are no available devices. */ + } + + /* Grab the OSS version. */ + ossVersion = 0; + result = ioctl(fd, OSS_GETVERSION, &ossVersion); + if (result == -1) { + close(fd); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[OSS] Failed to retrieve OSS version.", MA_NO_BACKEND); + } + + /* The file handle to temp device is no longer needed. Close ASAP. */ + close(fd); + + pContext->oss.versionMajor = ((ossVersion & 0xFF0000) >> 16); + pContext->oss.versionMinor = ((ossVersion & 0x00FF00) >> 8); + + pCallbacks->onContextInit = ma_context_init__oss; + pCallbacks->onContextUninit = ma_context_uninit__oss; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__oss; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__oss; + pCallbacks->onDeviceInit = ma_device_init__oss; + pCallbacks->onDeviceUninit = ma_device_uninit__oss; + pCallbacks->onDeviceStart = ma_device_start__oss; + pCallbacks->onDeviceStop = ma_device_stop__oss; + pCallbacks->onDeviceRead = ma_device_read__oss; + pCallbacks->onDeviceWrite = ma_device_write__oss; + pCallbacks->onDeviceDataLoop = NULL; + + return MA_SUCCESS; +} +#endif /* OSS */ + + +/****************************************************************************** + +AAudio Backend + +******************************************************************************/ +#ifdef MA_HAS_AAUDIO + +/*#include */ + +typedef int32_t ma_aaudio_result_t; +typedef int32_t ma_aaudio_direction_t; +typedef int32_t ma_aaudio_sharing_mode_t; +typedef int32_t ma_aaudio_format_t; +typedef int32_t ma_aaudio_stream_state_t; +typedef int32_t ma_aaudio_performance_mode_t; +typedef int32_t ma_aaudio_usage_t; +typedef int32_t ma_aaudio_content_type_t; +typedef int32_t ma_aaudio_input_preset_t; +typedef int32_t ma_aaudio_data_callback_result_t; +typedef struct ma_AAudioStreamBuilder_t* ma_AAudioStreamBuilder; +typedef struct ma_AAudioStream_t* ma_AAudioStream; + +#define MA_AAUDIO_UNSPECIFIED 0 + +/* Result codes. miniaudio only cares about the success code. */ +#define MA_AAUDIO_OK 0 + +/* Directions. */ +#define MA_AAUDIO_DIRECTION_OUTPUT 0 +#define MA_AAUDIO_DIRECTION_INPUT 1 + +/* Sharing modes. */ +#define MA_AAUDIO_SHARING_MODE_EXCLUSIVE 0 +#define MA_AAUDIO_SHARING_MODE_SHARED 1 + +/* Formats. */ +#define MA_AAUDIO_FORMAT_PCM_I16 1 +#define MA_AAUDIO_FORMAT_PCM_FLOAT 2 + +/* Stream states. */ +#define MA_AAUDIO_STREAM_STATE_UNINITIALIZED 0 +#define MA_AAUDIO_STREAM_STATE_UNKNOWN 1 +#define MA_AAUDIO_STREAM_STATE_OPEN 2 +#define MA_AAUDIO_STREAM_STATE_STARTING 3 +#define MA_AAUDIO_STREAM_STATE_STARTED 4 +#define MA_AAUDIO_STREAM_STATE_PAUSING 5 +#define MA_AAUDIO_STREAM_STATE_PAUSED 6 +#define MA_AAUDIO_STREAM_STATE_FLUSHING 7 +#define MA_AAUDIO_STREAM_STATE_FLUSHED 8 +#define MA_AAUDIO_STREAM_STATE_STOPPING 9 +#define MA_AAUDIO_STREAM_STATE_STOPPED 10 +#define MA_AAUDIO_STREAM_STATE_CLOSING 11 +#define MA_AAUDIO_STREAM_STATE_CLOSED 12 +#define MA_AAUDIO_STREAM_STATE_DISCONNECTED 13 + +/* Performance modes. */ +#define MA_AAUDIO_PERFORMANCE_MODE_NONE 10 +#define MA_AAUDIO_PERFORMANCE_MODE_POWER_SAVING 11 +#define MA_AAUDIO_PERFORMANCE_MODE_LOW_LATENCY 12 + +/* Usage types. */ +#define MA_AAUDIO_USAGE_MEDIA 1 +#define MA_AAUDIO_USAGE_VOICE_COMMUNICATION 2 +#define MA_AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING 3 +#define MA_AAUDIO_USAGE_ALARM 4 +#define MA_AAUDIO_USAGE_NOTIFICATION 5 +#define MA_AAUDIO_USAGE_NOTIFICATION_RINGTONE 6 +#define MA_AAUDIO_USAGE_NOTIFICATION_EVENT 10 +#define MA_AAUDIO_USAGE_ASSISTANCE_ACCESSIBILITY 11 +#define MA_AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE 12 +#define MA_AAUDIO_USAGE_ASSISTANCE_SONIFICATION 13 +#define MA_AAUDIO_USAGE_GAME 14 +#define MA_AAUDIO_USAGE_ASSISTANT 16 +#define MA_AAUDIO_SYSTEM_USAGE_EMERGENCY 1000 +#define MA_AAUDIO_SYSTEM_USAGE_SAFETY 1001 +#define MA_AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS 1002 +#define MA_AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT 1003 + +/* Content types. */ +#define MA_AAUDIO_CONTENT_TYPE_SPEECH 1 +#define MA_AAUDIO_CONTENT_TYPE_MUSIC 2 +#define MA_AAUDIO_CONTENT_TYPE_MOVIE 3 +#define MA_AAUDIO_CONTENT_TYPE_SONIFICATION 4 + +/* Input presets. */ +#define MA_AAUDIO_INPUT_PRESET_GENERIC 1 +#define MA_AAUDIO_INPUT_PRESET_CAMCORDER 5 +#define MA_AAUDIO_INPUT_PRESET_VOICE_RECOGNITION 6 +#define MA_AAUDIO_INPUT_PRESET_VOICE_COMMUNICATION 7 +#define MA_AAUDIO_INPUT_PRESET_UNPROCESSED 9 +#define MA_AAUDIO_INPUT_PRESET_VOICE_PERFORMANCE 10 + +/* Callback results. */ +#define MA_AAUDIO_CALLBACK_RESULT_CONTINUE 0 +#define MA_AAUDIO_CALLBACK_RESULT_STOP 1 + + +typedef ma_aaudio_data_callback_result_t (* ma_AAudioStream_dataCallback) (ma_AAudioStream* pStream, void* pUserData, void* pAudioData, int32_t numFrames); +typedef void (* ma_AAudioStream_errorCallback)(ma_AAudioStream *pStream, void *pUserData, ma_aaudio_result_t error); + +typedef ma_aaudio_result_t (* MA_PFN_AAudio_createStreamBuilder) (ma_AAudioStreamBuilder** ppBuilder); +typedef ma_aaudio_result_t (* MA_PFN_AAudioStreamBuilder_delete) (ma_AAudioStreamBuilder* pBuilder); +typedef void (* MA_PFN_AAudioStreamBuilder_setDeviceId) (ma_AAudioStreamBuilder* pBuilder, int32_t deviceId); +typedef void (* MA_PFN_AAudioStreamBuilder_setDirection) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_direction_t direction); +typedef void (* MA_PFN_AAudioStreamBuilder_setSharingMode) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_sharing_mode_t sharingMode); +typedef void (* MA_PFN_AAudioStreamBuilder_setFormat) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_format_t format); +typedef void (* MA_PFN_AAudioStreamBuilder_setChannelCount) (ma_AAudioStreamBuilder* pBuilder, int32_t channelCount); +typedef void (* MA_PFN_AAudioStreamBuilder_setSampleRate) (ma_AAudioStreamBuilder* pBuilder, int32_t sampleRate); +typedef void (* MA_PFN_AAudioStreamBuilder_setBufferCapacityInFrames)(ma_AAudioStreamBuilder* pBuilder, int32_t numFrames); +typedef void (* MA_PFN_AAudioStreamBuilder_setFramesPerDataCallback) (ma_AAudioStreamBuilder* pBuilder, int32_t numFrames); +typedef void (* MA_PFN_AAudioStreamBuilder_setDataCallback) (ma_AAudioStreamBuilder* pBuilder, ma_AAudioStream_dataCallback callback, void* pUserData); +typedef void (* MA_PFN_AAudioStreamBuilder_setErrorCallback) (ma_AAudioStreamBuilder* pBuilder, ma_AAudioStream_errorCallback callback, void* pUserData); +typedef void (* MA_PFN_AAudioStreamBuilder_setPerformanceMode) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_performance_mode_t mode); +typedef void (* MA_PFN_AAudioStreamBuilder_setUsage) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_usage_t contentType); +typedef void (* MA_PFN_AAudioStreamBuilder_setContentType) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_content_type_t contentType); +typedef void (* MA_PFN_AAudioStreamBuilder_setInputPreset) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_input_preset_t inputPreset); +typedef ma_aaudio_result_t (* MA_PFN_AAudioStreamBuilder_openStream) (ma_AAudioStreamBuilder* pBuilder, ma_AAudioStream** ppStream); +typedef ma_aaudio_result_t (* MA_PFN_AAudioStream_close) (ma_AAudioStream* pStream); +typedef ma_aaudio_stream_state_t (* MA_PFN_AAudioStream_getState) (ma_AAudioStream* pStream); +typedef ma_aaudio_result_t (* MA_PFN_AAudioStream_waitForStateChange) (ma_AAudioStream* pStream, ma_aaudio_stream_state_t inputState, ma_aaudio_stream_state_t* pNextState, int64_t timeoutInNanoseconds); +typedef ma_aaudio_format_t (* MA_PFN_AAudioStream_getFormat) (ma_AAudioStream* pStream); +typedef int32_t (* MA_PFN_AAudioStream_getChannelCount) (ma_AAudioStream* pStream); +typedef int32_t (* MA_PFN_AAudioStream_getSampleRate) (ma_AAudioStream* pStream); +typedef int32_t (* MA_PFN_AAudioStream_getBufferCapacityInFrames) (ma_AAudioStream* pStream); +typedef int32_t (* MA_PFN_AAudioStream_getFramesPerDataCallback) (ma_AAudioStream* pStream); +typedef int32_t (* MA_PFN_AAudioStream_getFramesPerBurst) (ma_AAudioStream* pStream); +typedef ma_aaudio_result_t (* MA_PFN_AAudioStream_requestStart) (ma_AAudioStream* pStream); +typedef ma_aaudio_result_t (* MA_PFN_AAudioStream_requestStop) (ma_AAudioStream* pStream); + +static ma_result ma_result_from_aaudio(ma_aaudio_result_t resultAA) +{ + switch (resultAA) + { + case MA_AAUDIO_OK: return MA_SUCCESS; + default: break; + } + + return MA_ERROR; +} + +static ma_aaudio_usage_t ma_to_usage__aaudio(ma_aaudio_usage usage) +{ + switch (usage) { + case ma_aaudio_usage_announcement: return MA_AAUDIO_USAGE_MEDIA; + case ma_aaudio_usage_emergency: return MA_AAUDIO_USAGE_VOICE_COMMUNICATION; + case ma_aaudio_usage_safety: return MA_AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING; + case ma_aaudio_usage_vehicle_status: return MA_AAUDIO_USAGE_ALARM; + case ma_aaudio_usage_alarm: return MA_AAUDIO_USAGE_NOTIFICATION; + case ma_aaudio_usage_assistance_accessibility: return MA_AAUDIO_USAGE_NOTIFICATION_RINGTONE; + case ma_aaudio_usage_assistance_navigation_guidance: return MA_AAUDIO_USAGE_NOTIFICATION_EVENT; + case ma_aaudio_usage_assistance_sonification: return MA_AAUDIO_USAGE_ASSISTANCE_ACCESSIBILITY; + case ma_aaudio_usage_assitant: return MA_AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE; + case ma_aaudio_usage_game: return MA_AAUDIO_USAGE_ASSISTANCE_SONIFICATION; + case ma_aaudio_usage_media: return MA_AAUDIO_USAGE_GAME; + case ma_aaudio_usage_notification: return MA_AAUDIO_USAGE_ASSISTANT; + case ma_aaudio_usage_notification_event: return MA_AAUDIO_SYSTEM_USAGE_EMERGENCY; + case ma_aaudio_usage_notification_ringtone: return MA_AAUDIO_SYSTEM_USAGE_SAFETY; + case ma_aaudio_usage_voice_communication: return MA_AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS; + case ma_aaudio_usage_voice_communication_signalling: return MA_AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT; + default: break; + } + + return MA_AAUDIO_USAGE_MEDIA; +} + +static ma_aaudio_content_type_t ma_to_content_type__aaudio(ma_aaudio_content_type contentType) +{ + switch (contentType) { + case ma_aaudio_content_type_movie: return MA_AAUDIO_CONTENT_TYPE_MOVIE; + case ma_aaudio_content_type_music: return MA_AAUDIO_CONTENT_TYPE_MUSIC; + case ma_aaudio_content_type_sonification: return MA_AAUDIO_CONTENT_TYPE_SONIFICATION; + case ma_aaudio_content_type_speech: return MA_AAUDIO_CONTENT_TYPE_SPEECH; + default: break; + } + + return MA_AAUDIO_CONTENT_TYPE_SPEECH; +} + +static ma_aaudio_input_preset_t ma_to_input_preset__aaudio(ma_aaudio_input_preset inputPreset) +{ + switch (inputPreset) { + case ma_aaudio_input_preset_generic: return MA_AAUDIO_INPUT_PRESET_GENERIC; + case ma_aaudio_input_preset_camcorder: return MA_AAUDIO_INPUT_PRESET_CAMCORDER; + case ma_aaudio_input_preset_unprocessed: return MA_AAUDIO_INPUT_PRESET_UNPROCESSED; + case ma_aaudio_input_preset_voice_recognition: return MA_AAUDIO_INPUT_PRESET_VOICE_RECOGNITION; + case ma_aaudio_input_preset_voice_communication: return MA_AAUDIO_INPUT_PRESET_VOICE_COMMUNICATION; + case ma_aaudio_input_preset_voice_performance: return MA_AAUDIO_INPUT_PRESET_VOICE_PERFORMANCE; + default: break; + } + + return MA_AAUDIO_INPUT_PRESET_GENERIC; +} + +static void ma_stream_error_callback__aaudio(ma_AAudioStream* pStream, void* pUserData, ma_aaudio_result_t error) +{ + ma_device* pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + (void)error; + +#if defined(MA_DEBUG_OUTPUT) + printf("[AAudio] ERROR CALLBACK: error=%d, AAudioStream_getState()=%d\n", error, ((MA_PFN_AAudioStream_getState)pDevice->pContext->aaudio.AAudioStream_getState)(pStream)); +#endif + + /* + From the documentation for AAudio, when a device is disconnected all we can do is stop it. However, we cannot stop it from the callback - we need + to do it from another thread. Therefore we are going to use an event thread for the AAudio backend to do this cleanly and safely. + */ + if (((MA_PFN_AAudioStream_getState)pDevice->pContext->aaudio.AAudioStream_getState)(pStream) == MA_AAUDIO_STREAM_STATE_DISCONNECTED) { +#if defined(MA_DEBUG_OUTPUT) + printf("[AAudio] Device Disconnected.\n"); +#endif + } +} + +static ma_aaudio_data_callback_result_t ma_stream_data_callback_capture__aaudio(ma_AAudioStream* pStream, void* pUserData, void* pAudioData, int32_t frameCount) +{ + ma_device* pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + ma_device_handle_backend_data_callback(pDevice, NULL, pAudioData, frameCount); + + (void)pStream; + return MA_AAUDIO_CALLBACK_RESULT_CONTINUE; +} + +static ma_aaudio_data_callback_result_t ma_stream_data_callback_playback__aaudio(ma_AAudioStream* pStream, void* pUserData, void* pAudioData, int32_t frameCount) +{ + ma_device* pDevice = (ma_device*)pUserData; + MA_ASSERT(pDevice != NULL); + + ma_device_handle_backend_data_callback(pDevice, pAudioData, NULL, frameCount); + + (void)pStream; + return MA_AAUDIO_CALLBACK_RESULT_CONTINUE; +} + +static ma_result ma_create_and_configure_AAudioStreamBuilder__aaudio(ma_context* pContext, const ma_device_id* pDeviceID, ma_device_type deviceType, ma_share_mode shareMode, const ma_device_descriptor* pDescriptor, const ma_device_config* pConfig, ma_device* pDevice, ma_AAudioStreamBuilder** ppBuilder) +{ + ma_AAudioStreamBuilder* pBuilder; + ma_aaudio_result_t resultAA; + ma_uint32 bufferCapacityInFrames; + + /* Safety. */ + *ppBuilder = NULL; + + resultAA = ((MA_PFN_AAudio_createStreamBuilder)pContext->aaudio.AAudio_createStreamBuilder)(&pBuilder); + if (resultAA != MA_AAUDIO_OK) { + return ma_result_from_aaudio(resultAA); + } + + if (pDeviceID != NULL) { + ((MA_PFN_AAudioStreamBuilder_setDeviceId)pContext->aaudio.AAudioStreamBuilder_setDeviceId)(pBuilder, pDeviceID->aaudio); + } + + ((MA_PFN_AAudioStreamBuilder_setDirection)pContext->aaudio.AAudioStreamBuilder_setDirection)(pBuilder, (deviceType == ma_device_type_playback) ? MA_AAUDIO_DIRECTION_OUTPUT : MA_AAUDIO_DIRECTION_INPUT); + ((MA_PFN_AAudioStreamBuilder_setSharingMode)pContext->aaudio.AAudioStreamBuilder_setSharingMode)(pBuilder, (shareMode == ma_share_mode_shared) ? MA_AAUDIO_SHARING_MODE_SHARED : MA_AAUDIO_SHARING_MODE_EXCLUSIVE); + + + /* If we have a device descriptor make sure we configure the stream builder to take our requested parameters. */ + if (pDescriptor != NULL) { + MA_ASSERT(pConfig != NULL); /* We must have a device config if we also have a descriptor. The config is required for AAudio specific configuration options. */ + + if (pDescriptor->sampleRate != 0) { + ((MA_PFN_AAudioStreamBuilder_setSampleRate)pContext->aaudio.AAudioStreamBuilder_setSampleRate)(pBuilder, pDescriptor->sampleRate); + } + + if (deviceType == ma_device_type_capture) { + if (pDescriptor->channels != 0) { + ((MA_PFN_AAudioStreamBuilder_setChannelCount)pContext->aaudio.AAudioStreamBuilder_setChannelCount)(pBuilder, pDescriptor->channels); + } + if (pDescriptor->format != ma_format_unknown) { + ((MA_PFN_AAudioStreamBuilder_setFormat)pContext->aaudio.AAudioStreamBuilder_setFormat)(pBuilder, (pDescriptor->format == ma_format_s16) ? MA_AAUDIO_FORMAT_PCM_I16 : MA_AAUDIO_FORMAT_PCM_FLOAT); + } + } else { + if (pDescriptor->channels != 0) { + ((MA_PFN_AAudioStreamBuilder_setChannelCount)pContext->aaudio.AAudioStreamBuilder_setChannelCount)(pBuilder, pDescriptor->channels); + } + if (pDescriptor->format != ma_format_unknown) { + ((MA_PFN_AAudioStreamBuilder_setFormat)pContext->aaudio.AAudioStreamBuilder_setFormat)(pBuilder, (pDescriptor->format == ma_format_s16) ? MA_AAUDIO_FORMAT_PCM_I16 : MA_AAUDIO_FORMAT_PCM_FLOAT); + } + } + + /* + AAudio is annoying when it comes to it's buffer calculation stuff because it doesn't let you + retrieve the actual sample rate until after you've opened the stream. But you need to configure + the buffer capacity before you open the stream... :/ + + To solve, we're just going to assume MA_DEFAULT_SAMPLE_RATE (48000) and move on. + */ + bufferCapacityInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, pDescriptor->sampleRate, pConfig->performanceProfile) * pDescriptor->periodCount; + + ((MA_PFN_AAudioStreamBuilder_setBufferCapacityInFrames)pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames)(pBuilder, bufferCapacityInFrames); + ((MA_PFN_AAudioStreamBuilder_setFramesPerDataCallback)pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback)(pBuilder, bufferCapacityInFrames / pDescriptor->periodCount); + + if (deviceType == ma_device_type_capture) { + if (pConfig->aaudio.inputPreset != ma_aaudio_input_preset_default && pContext->aaudio.AAudioStreamBuilder_setInputPreset != NULL) { + ((MA_PFN_AAudioStreamBuilder_setInputPreset)pContext->aaudio.AAudioStreamBuilder_setInputPreset)(pBuilder, ma_to_input_preset__aaudio(pConfig->aaudio.inputPreset)); + } + + ((MA_PFN_AAudioStreamBuilder_setDataCallback)pContext->aaudio.AAudioStreamBuilder_setDataCallback)(pBuilder, ma_stream_data_callback_capture__aaudio, (void*)pDevice); + } else { + if (pConfig->aaudio.usage != ma_aaudio_usage_default && pContext->aaudio.AAudioStreamBuilder_setUsage != NULL) { + ((MA_PFN_AAudioStreamBuilder_setUsage)pContext->aaudio.AAudioStreamBuilder_setUsage)(pBuilder, ma_to_usage__aaudio(pConfig->aaudio.usage)); + } + + if (pConfig->aaudio.contentType != ma_aaudio_content_type_default && pContext->aaudio.AAudioStreamBuilder_setContentType != NULL) { + ((MA_PFN_AAudioStreamBuilder_setContentType)pContext->aaudio.AAudioStreamBuilder_setContentType)(pBuilder, ma_to_content_type__aaudio(pConfig->aaudio.contentType)); + } + + ((MA_PFN_AAudioStreamBuilder_setDataCallback)pContext->aaudio.AAudioStreamBuilder_setDataCallback)(pBuilder, ma_stream_data_callback_playback__aaudio, (void*)pDevice); + } + + /* Not sure how this affects things, but since there's a mapping between miniaudio's performance profiles and AAudio's performance modes, let go ahead and set it. */ + ((MA_PFN_AAudioStreamBuilder_setPerformanceMode)pContext->aaudio.AAudioStreamBuilder_setPerformanceMode)(pBuilder, (pConfig->performanceProfile == ma_performance_profile_low_latency) ? MA_AAUDIO_PERFORMANCE_MODE_LOW_LATENCY : MA_AAUDIO_PERFORMANCE_MODE_NONE); + + /* We need to set an error callback to detect device changes. */ + if (pDevice != NULL) { /* <-- pDevice should never be null if pDescriptor is not null, which is always the case if we hit this branch. Check anyway for safety. */ + ((MA_PFN_AAudioStreamBuilder_setErrorCallback)pContext->aaudio.AAudioStreamBuilder_setErrorCallback)(pBuilder, ma_stream_error_callback__aaudio, (void*)pDevice); + } + } + + *ppBuilder = pBuilder; + + return MA_SUCCESS; +} + +static ma_result ma_open_stream_and_close_builder__aaudio(ma_context* pContext, ma_AAudioStreamBuilder* pBuilder, ma_AAudioStream** ppStream) +{ + ma_result result; + + result = ma_result_from_aaudio(((MA_PFN_AAudioStreamBuilder_openStream)pContext->aaudio.AAudioStreamBuilder_openStream)(pBuilder, ppStream)); + ((MA_PFN_AAudioStreamBuilder_delete)pContext->aaudio.AAudioStreamBuilder_delete)(pBuilder); + + return result; +} + +static ma_result ma_open_stream_basic__aaudio(ma_context* pContext, const ma_device_id* pDeviceID, ma_device_type deviceType, ma_share_mode shareMode, ma_AAudioStream** ppStream) +{ + ma_result result; + ma_AAudioStreamBuilder* pBuilder; + + *ppStream = NULL; + + result = ma_create_and_configure_AAudioStreamBuilder__aaudio(pContext, pDeviceID, deviceType, shareMode, NULL, NULL, NULL, &pBuilder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_open_stream_and_close_builder__aaudio(pContext, pBuilder, ppStream); +} + +static ma_result ma_open_stream__aaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_type deviceType, const ma_device_descriptor* pDescriptor, ma_AAudioStream** ppStream) +{ + ma_result result; + ma_AAudioStreamBuilder* pBuilder; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pConfig->deviceType != ma_device_type_duplex); /* This function should not be called for a full-duplex device type. */ + + *ppStream = NULL; + + result = ma_create_and_configure_AAudioStreamBuilder__aaudio(pDevice->pContext, pDescriptor->pDeviceID, deviceType, pDescriptor->shareMode, pDescriptor, pConfig, pDevice, &pBuilder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_open_stream_and_close_builder__aaudio(pDevice->pContext, pBuilder, ppStream); +} + +static ma_result ma_close_stream__aaudio(ma_context* pContext, ma_AAudioStream* pStream) +{ + return ma_result_from_aaudio(((MA_PFN_AAudioStream_close)pContext->aaudio.AAudioStream_close)(pStream)); +} + +static ma_bool32 ma_has_default_device__aaudio(ma_context* pContext, ma_device_type deviceType) +{ + /* The only way to know this is to try creating a stream. */ + ma_AAudioStream* pStream; + ma_result result = ma_open_stream_basic__aaudio(pContext, NULL, deviceType, ma_share_mode_shared, &pStream); + if (result != MA_SUCCESS) { + return MA_FALSE; + } + + ma_close_stream__aaudio(pContext, pStream); + return MA_TRUE; +} + +static ma_result ma_wait_for_simple_state_transition__aaudio(ma_context* pContext, ma_AAudioStream* pStream, ma_aaudio_stream_state_t oldState, ma_aaudio_stream_state_t newState) +{ + ma_aaudio_stream_state_t actualNewState; + ma_aaudio_result_t resultAA = ((MA_PFN_AAudioStream_waitForStateChange)pContext->aaudio.AAudioStream_waitForStateChange)(pStream, oldState, &actualNewState, 5000000000); /* 5 second timeout. */ + if (resultAA != MA_AAUDIO_OK) { + return ma_result_from_aaudio(resultAA); + } + + if (newState != actualNewState) { + return MA_ERROR; /* Failed to transition into the expected state. */ + } + + return MA_SUCCESS; +} + + +static ma_result ma_context_enumerate_devices__aaudio(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_bool32 cbResult = MA_TRUE; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* Unfortunately AAudio does not have an enumeration API. Therefore I'm only going to report default devices, but only if it can instantiate a stream. */ + + /* Playback. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + deviceInfo.id.aaudio = MA_AAUDIO_UNSPECIFIED; + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + + if (ma_has_default_device__aaudio(pContext, ma_device_type_playback)) { + cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + } + + /* Capture. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + deviceInfo.id.aaudio = MA_AAUDIO_UNSPECIFIED; + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + + if (ma_has_default_device__aaudio(pContext, ma_device_type_capture)) { + cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + } + + return MA_SUCCESS; +} + +static void ma_context_add_native_data_format_from_AAudioStream_ex__aaudio(ma_context* pContext, ma_AAudioStream* pStream, ma_format format, ma_uint32 flags, ma_device_info* pDeviceInfo) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pStream != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].format = format; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].channels = ((MA_PFN_AAudioStream_getChannelCount)pContext->aaudio.AAudioStream_getChannelCount)(pStream); + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].sampleRate = ((MA_PFN_AAudioStream_getSampleRate)pContext->aaudio.AAudioStream_getSampleRate)(pStream); + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].flags = flags; + pDeviceInfo->nativeDataFormatCount += 1; +} + +static void ma_context_add_native_data_format_from_AAudioStream__aaudio(ma_context* pContext, ma_AAudioStream* pStream, ma_uint32 flags, ma_device_info* pDeviceInfo) +{ + /* AAudio supports s16 and f32. */ + ma_context_add_native_data_format_from_AAudioStream_ex__aaudio(pContext, pStream, ma_format_f32, flags, pDeviceInfo); + ma_context_add_native_data_format_from_AAudioStream_ex__aaudio(pContext, pStream, ma_format_s16, flags, pDeviceInfo); +} + +static ma_result ma_context_get_device_info__aaudio(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + ma_AAudioStream* pStream; + ma_result result; + + MA_ASSERT(pContext != NULL); + + /* ID */ + if (pDeviceID != NULL) { + pDeviceInfo->id.aaudio = pDeviceID->aaudio; + } else { + pDeviceInfo->id.aaudio = MA_AAUDIO_UNSPECIFIED; + } + + /* Name */ + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + + + pDeviceInfo->nativeDataFormatCount = 0; + + /* We'll need to open the device to get accurate sample rate and channel count information. */ + result = ma_open_stream_basic__aaudio(pContext, pDeviceID, deviceType, ma_share_mode_shared, &pStream); + if (result != MA_SUCCESS) { + return result; + } + + ma_context_add_native_data_format_from_AAudioStream__aaudio(pContext, pStream, 0, pDeviceInfo); + + ma_close_stream__aaudio(pContext, pStream); + pStream = NULL; + + return MA_SUCCESS; +} + + +static ma_result ma_device_uninit__aaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma_close_stream__aaudio(pDevice->pContext, (ma_AAudioStream*)pDevice->aaudio.pStreamCapture); + pDevice->aaudio.pStreamCapture = NULL; + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_close_stream__aaudio(pDevice->pContext, (ma_AAudioStream*)pDevice->aaudio.pStreamPlayback); + pDevice->aaudio.pStreamPlayback = NULL; + } + + return MA_SUCCESS; +} + +static ma_result ma_device_init_by_type__aaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_type deviceType, ma_device_descriptor* pDescriptor, ma_AAudioStream** ppStream) +{ + ma_result result; + int32_t bufferCapacityInFrames; + int32_t framesPerDataCallback; + ma_AAudioStream* pStream; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDescriptor != NULL); + + *ppStream = NULL; /* Safety. */ + + /* First step is to open the stream. From there we'll be able to extract the internal configuration. */ + result = ma_open_stream__aaudio(pDevice, pConfig, deviceType, pDescriptor, &pStream); + if (result != MA_SUCCESS) { + return result; /* Failed to open the AAudio stream. */ + } + + /* Now extract the internal configuration. */ + pDescriptor->format = (((MA_PFN_AAudioStream_getFormat)pDevice->pContext->aaudio.AAudioStream_getFormat)(pStream) == MA_AAUDIO_FORMAT_PCM_I16) ? ma_format_s16 : ma_format_f32; + pDescriptor->channels = ((MA_PFN_AAudioStream_getChannelCount)pDevice->pContext->aaudio.AAudioStream_getChannelCount)(pStream); + pDescriptor->sampleRate = ((MA_PFN_AAudioStream_getSampleRate)pDevice->pContext->aaudio.AAudioStream_getSampleRate)(pStream); + + /* For the channel map we need to be sure we don't overflow any buffers. */ + if (pDescriptor->channels <= MA_MAX_CHANNELS) { + ma_get_standard_channel_map(ma_standard_channel_map_default, pDescriptor->channels, pDescriptor->channelMap); /* <-- Cannot find info on channel order, so assuming a default. */ + } else { + ma_channel_map_init_blank(MA_MAX_CHANNELS, pDescriptor->channelMap); /* Too many channels. Use a blank channel map. */ + } + + bufferCapacityInFrames = ((MA_PFN_AAudioStream_getBufferCapacityInFrames)pDevice->pContext->aaudio.AAudioStream_getBufferCapacityInFrames)(pStream); + framesPerDataCallback = ((MA_PFN_AAudioStream_getFramesPerDataCallback)pDevice->pContext->aaudio.AAudioStream_getFramesPerDataCallback)(pStream); + + if (framesPerDataCallback > 0) { + pDescriptor->periodSizeInFrames = framesPerDataCallback; + pDescriptor->periodCount = bufferCapacityInFrames / framesPerDataCallback; + } else { + pDescriptor->periodSizeInFrames = bufferCapacityInFrames; + pDescriptor->periodCount = 1; + } + + *ppStream = pStream; + + return MA_SUCCESS; +} + +static ma_result ma_device_init__aaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + ma_result result; + + MA_ASSERT(pDevice != NULL); + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* No exclusive mode with AAudio. */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + result = ma_device_init_by_type__aaudio(pDevice, pConfig, ma_device_type_capture, pDescriptorCapture, (ma_AAudioStream**)&pDevice->aaudio.pStreamCapture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + result = ma_device_init_by_type__aaudio(pDevice, pConfig, ma_device_type_playback, pDescriptorPlayback, (ma_AAudioStream**)&pDevice->aaudio.pStreamPlayback); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start_stream__aaudio(ma_device* pDevice, ma_AAudioStream* pStream) +{ + ma_aaudio_result_t resultAA; + ma_aaudio_stream_state_t currentState; + + MA_ASSERT(pDevice != NULL); + + resultAA = ((MA_PFN_AAudioStream_requestStart)pDevice->pContext->aaudio.AAudioStream_requestStart)(pStream); + if (resultAA != MA_AAUDIO_OK) { + return ma_result_from_aaudio(resultAA); + } + + /* Do we actually need to wait for the device to transition into it's started state? */ + + /* The device should be in either a starting or started state. If it's not set to started we need to wait for it to transition. It should go from starting to started. */ + currentState = ((MA_PFN_AAudioStream_getState)pDevice->pContext->aaudio.AAudioStream_getState)(pStream); + if (currentState != MA_AAUDIO_STREAM_STATE_STARTED) { + ma_result result; + + if (currentState != MA_AAUDIO_STREAM_STATE_STARTING) { + return MA_ERROR; /* Expecting the stream to be a starting or started state. */ + } + + result = ma_wait_for_simple_state_transition__aaudio(pDevice->pContext, pStream, currentState, MA_AAUDIO_STREAM_STATE_STARTED); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop_stream__aaudio(ma_device* pDevice, ma_AAudioStream* pStream) +{ + ma_aaudio_result_t resultAA; + ma_aaudio_stream_state_t currentState; + + MA_ASSERT(pDevice != NULL); + + /* + From the AAudio documentation: + + The stream will stop after all of the data currently buffered has been played. + + This maps with miniaudio's requirement that device's be drained which means we don't need to implement any draining logic. + */ + + resultAA = ((MA_PFN_AAudioStream_requestStop)pDevice->pContext->aaudio.AAudioStream_requestStop)(pStream); + if (resultAA != MA_AAUDIO_OK) { + return ma_result_from_aaudio(resultAA); + } + + /* The device should be in either a stopping or stopped state. If it's not set to started we need to wait for it to transition. It should go from stopping to stopped. */ + currentState = ((MA_PFN_AAudioStream_getState)pDevice->pContext->aaudio.AAudioStream_getState)(pStream); + if (currentState != MA_AAUDIO_STREAM_STATE_STOPPED) { + ma_result result; + + if (currentState != MA_AAUDIO_STREAM_STATE_STOPPING) { + return MA_ERROR; /* Expecting the stream to be a stopping or stopped state. */ + } + + result = ma_wait_for_simple_state_transition__aaudio(pDevice->pContext, pStream, currentState, MA_AAUDIO_STREAM_STATE_STOPPED); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start__aaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma_result result = ma_device_start_stream__aaudio(pDevice, (ma_AAudioStream*)pDevice->aaudio.pStreamCapture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_result result = ma_device_start_stream__aaudio(pDevice, (ma_AAudioStream*)pDevice->aaudio.pStreamPlayback); + if (result != MA_SUCCESS) { + if (pDevice->type == ma_device_type_duplex) { + ma_device_stop_stream__aaudio(pDevice, (ma_AAudioStream*)pDevice->aaudio.pStreamCapture); + } + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__aaudio(ma_device* pDevice) +{ + ma_stop_proc onStop; + + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma_result result = ma_device_stop_stream__aaudio(pDevice, (ma_AAudioStream*)pDevice->aaudio.pStreamCapture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_result result = ma_device_stop_stream__aaudio(pDevice, (ma_AAudioStream*)pDevice->aaudio.pStreamPlayback); + if (result != MA_SUCCESS) { + return result; + } + } + + onStop = pDevice->onStop; + if (onStop) { + onStop(pDevice); + } + + return MA_SUCCESS; +} + + +static ma_result ma_context_uninit__aaudio(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_aaudio); + + ma_dlclose(pContext, pContext->aaudio.hAAudio); + pContext->aaudio.hAAudio = NULL; + + return MA_SUCCESS; +} + +static ma_result ma_context_init__aaudio(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + size_t i; + const char* libNames[] = { + "libaaudio.so" + }; + + for (i = 0; i < ma_countof(libNames); ++i) { + pContext->aaudio.hAAudio = ma_dlopen(pContext, libNames[i]); + if (pContext->aaudio.hAAudio != NULL) { + break; + } + } + + if (pContext->aaudio.hAAudio == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pContext->aaudio.AAudio_createStreamBuilder = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudio_createStreamBuilder"); + pContext->aaudio.AAudioStreamBuilder_delete = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_delete"); + pContext->aaudio.AAudioStreamBuilder_setDeviceId = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDeviceId"); + pContext->aaudio.AAudioStreamBuilder_setDirection = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDirection"); + pContext->aaudio.AAudioStreamBuilder_setSharingMode = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSharingMode"); + pContext->aaudio.AAudioStreamBuilder_setFormat = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFormat"); + pContext->aaudio.AAudioStreamBuilder_setChannelCount = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setChannelCount"); + pContext->aaudio.AAudioStreamBuilder_setSampleRate = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSampleRate"); + pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setBufferCapacityInFrames"); + pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFramesPerDataCallback"); + pContext->aaudio.AAudioStreamBuilder_setDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDataCallback"); + pContext->aaudio.AAudioStreamBuilder_setErrorCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setErrorCallback"); + pContext->aaudio.AAudioStreamBuilder_setPerformanceMode = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setPerformanceMode"); + pContext->aaudio.AAudioStreamBuilder_setUsage = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setUsage"); + pContext->aaudio.AAudioStreamBuilder_setContentType = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setContentType"); + pContext->aaudio.AAudioStreamBuilder_setInputPreset = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setInputPreset"); + pContext->aaudio.AAudioStreamBuilder_openStream = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_openStream"); + pContext->aaudio.AAudioStream_close = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_close"); + pContext->aaudio.AAudioStream_getState = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getState"); + pContext->aaudio.AAudioStream_waitForStateChange = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_waitForStateChange"); + pContext->aaudio.AAudioStream_getFormat = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFormat"); + pContext->aaudio.AAudioStream_getChannelCount = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getChannelCount"); + pContext->aaudio.AAudioStream_getSampleRate = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getSampleRate"); + pContext->aaudio.AAudioStream_getBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getBufferCapacityInFrames"); + pContext->aaudio.AAudioStream_getFramesPerDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFramesPerDataCallback"); + pContext->aaudio.AAudioStream_getFramesPerBurst = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFramesPerBurst"); + pContext->aaudio.AAudioStream_requestStart = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_requestStart"); + pContext->aaudio.AAudioStream_requestStop = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_requestStop"); + + + pCallbacks->onContextInit = ma_context_init__aaudio; + pCallbacks->onContextUninit = ma_context_uninit__aaudio; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__aaudio; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__aaudio; + pCallbacks->onDeviceInit = ma_device_init__aaudio; + pCallbacks->onDeviceUninit = ma_device_uninit__aaudio; + pCallbacks->onDeviceStart = ma_device_start__aaudio; + pCallbacks->onDeviceStop = ma_device_stop__aaudio; + pCallbacks->onDeviceRead = NULL; /* Not used because AAudio is asynchronous. */ + pCallbacks->onDeviceWrite = NULL; /* Not used because AAudio is asynchronous. */ + pCallbacks->onDeviceDataLoop = NULL; /* Not used because AAudio is asynchronous. */ + + (void)pConfig; + return MA_SUCCESS; +} +#endif /* AAudio */ + + +/****************************************************************************** + +OpenSL|ES Backend + +******************************************************************************/ +#ifdef MA_HAS_OPENSL +#include +#ifdef MA_ANDROID +#include +#endif + +typedef SLresult (SLAPIENTRY * ma_slCreateEngine_proc)(SLObjectItf* pEngine, SLuint32 numOptions, SLEngineOption* pEngineOptions, SLuint32 numInterfaces, SLInterfaceID* pInterfaceIds, SLboolean* pInterfaceRequired); + +/* OpenSL|ES has one-per-application objects :( */ +static SLObjectItf g_maEngineObjectSL = NULL; +static SLEngineItf g_maEngineSL = NULL; +static ma_uint32 g_maOpenSLInitCounter = 0; +static ma_spinlock g_maOpenSLSpinlock = 0; /* For init/uninit. */ + +#define MA_OPENSL_OBJ(p) (*((SLObjectItf)(p))) +#define MA_OPENSL_OUTPUTMIX(p) (*((SLOutputMixItf)(p))) +#define MA_OPENSL_PLAY(p) (*((SLPlayItf)(p))) +#define MA_OPENSL_RECORD(p) (*((SLRecordItf)(p))) + +#ifdef MA_ANDROID +#define MA_OPENSL_BUFFERQUEUE(p) (*((SLAndroidSimpleBufferQueueItf)(p))) +#else +#define MA_OPENSL_BUFFERQUEUE(p) (*((SLBufferQueueItf)(p))) +#endif + +static ma_result ma_result_from_OpenSL(SLuint32 result) +{ + switch (result) + { + case SL_RESULT_SUCCESS: return MA_SUCCESS; + case SL_RESULT_PRECONDITIONS_VIOLATED: return MA_ERROR; + case SL_RESULT_PARAMETER_INVALID: return MA_INVALID_ARGS; + case SL_RESULT_MEMORY_FAILURE: return MA_OUT_OF_MEMORY; + case SL_RESULT_RESOURCE_ERROR: return MA_INVALID_DATA; + case SL_RESULT_RESOURCE_LOST: return MA_ERROR; + case SL_RESULT_IO_ERROR: return MA_IO_ERROR; + case SL_RESULT_BUFFER_INSUFFICIENT: return MA_NO_SPACE; + case SL_RESULT_CONTENT_CORRUPTED: return MA_INVALID_DATA; + case SL_RESULT_CONTENT_UNSUPPORTED: return MA_FORMAT_NOT_SUPPORTED; + case SL_RESULT_CONTENT_NOT_FOUND: return MA_ERROR; + case SL_RESULT_PERMISSION_DENIED: return MA_ACCESS_DENIED; + case SL_RESULT_FEATURE_UNSUPPORTED: return MA_NOT_IMPLEMENTED; + case SL_RESULT_INTERNAL_ERROR: return MA_ERROR; + case SL_RESULT_UNKNOWN_ERROR: return MA_ERROR; + case SL_RESULT_OPERATION_ABORTED: return MA_ERROR; + case SL_RESULT_CONTROL_LOST: return MA_ERROR; + default: return MA_ERROR; + } +} + +/* Converts an individual OpenSL-style channel identifier (SL_SPEAKER_FRONT_LEFT, etc.) to miniaudio. */ +static ma_uint8 ma_channel_id_to_ma__opensl(SLuint32 id) +{ + switch (id) + { + case SL_SPEAKER_FRONT_LEFT: return MA_CHANNEL_FRONT_LEFT; + case SL_SPEAKER_FRONT_RIGHT: return MA_CHANNEL_FRONT_RIGHT; + case SL_SPEAKER_FRONT_CENTER: return MA_CHANNEL_FRONT_CENTER; + case SL_SPEAKER_LOW_FREQUENCY: return MA_CHANNEL_LFE; + case SL_SPEAKER_BACK_LEFT: return MA_CHANNEL_BACK_LEFT; + case SL_SPEAKER_BACK_RIGHT: return MA_CHANNEL_BACK_RIGHT; + case SL_SPEAKER_FRONT_LEFT_OF_CENTER: return MA_CHANNEL_FRONT_LEFT_CENTER; + case SL_SPEAKER_FRONT_RIGHT_OF_CENTER: return MA_CHANNEL_FRONT_RIGHT_CENTER; + case SL_SPEAKER_BACK_CENTER: return MA_CHANNEL_BACK_CENTER; + case SL_SPEAKER_SIDE_LEFT: return MA_CHANNEL_SIDE_LEFT; + case SL_SPEAKER_SIDE_RIGHT: return MA_CHANNEL_SIDE_RIGHT; + case SL_SPEAKER_TOP_CENTER: return MA_CHANNEL_TOP_CENTER; + case SL_SPEAKER_TOP_FRONT_LEFT: return MA_CHANNEL_TOP_FRONT_LEFT; + case SL_SPEAKER_TOP_FRONT_CENTER: return MA_CHANNEL_TOP_FRONT_CENTER; + case SL_SPEAKER_TOP_FRONT_RIGHT: return MA_CHANNEL_TOP_FRONT_RIGHT; + case SL_SPEAKER_TOP_BACK_LEFT: return MA_CHANNEL_TOP_BACK_LEFT; + case SL_SPEAKER_TOP_BACK_CENTER: return MA_CHANNEL_TOP_BACK_CENTER; + case SL_SPEAKER_TOP_BACK_RIGHT: return MA_CHANNEL_TOP_BACK_RIGHT; + default: return 0; + } +} + +/* Converts an individual miniaudio channel identifier (MA_CHANNEL_FRONT_LEFT, etc.) to OpenSL-style. */ +static SLuint32 ma_channel_id_to_opensl(ma_uint8 id) +{ + switch (id) + { + case MA_CHANNEL_MONO: return SL_SPEAKER_FRONT_CENTER; + case MA_CHANNEL_FRONT_LEFT: return SL_SPEAKER_FRONT_LEFT; + case MA_CHANNEL_FRONT_RIGHT: return SL_SPEAKER_FRONT_RIGHT; + case MA_CHANNEL_FRONT_CENTER: return SL_SPEAKER_FRONT_CENTER; + case MA_CHANNEL_LFE: return SL_SPEAKER_LOW_FREQUENCY; + case MA_CHANNEL_BACK_LEFT: return SL_SPEAKER_BACK_LEFT; + case MA_CHANNEL_BACK_RIGHT: return SL_SPEAKER_BACK_RIGHT; + case MA_CHANNEL_FRONT_LEFT_CENTER: return SL_SPEAKER_FRONT_LEFT_OF_CENTER; + case MA_CHANNEL_FRONT_RIGHT_CENTER: return SL_SPEAKER_FRONT_RIGHT_OF_CENTER; + case MA_CHANNEL_BACK_CENTER: return SL_SPEAKER_BACK_CENTER; + case MA_CHANNEL_SIDE_LEFT: return SL_SPEAKER_SIDE_LEFT; + case MA_CHANNEL_SIDE_RIGHT: return SL_SPEAKER_SIDE_RIGHT; + case MA_CHANNEL_TOP_CENTER: return SL_SPEAKER_TOP_CENTER; + case MA_CHANNEL_TOP_FRONT_LEFT: return SL_SPEAKER_TOP_FRONT_LEFT; + case MA_CHANNEL_TOP_FRONT_CENTER: return SL_SPEAKER_TOP_FRONT_CENTER; + case MA_CHANNEL_TOP_FRONT_RIGHT: return SL_SPEAKER_TOP_FRONT_RIGHT; + case MA_CHANNEL_TOP_BACK_LEFT: return SL_SPEAKER_TOP_BACK_LEFT; + case MA_CHANNEL_TOP_BACK_CENTER: return SL_SPEAKER_TOP_BACK_CENTER; + case MA_CHANNEL_TOP_BACK_RIGHT: return SL_SPEAKER_TOP_BACK_RIGHT; + default: return 0; + } +} + +/* Converts a channel mapping to an OpenSL-style channel mask. */ +static SLuint32 ma_channel_map_to_channel_mask__opensl(const ma_channel* pChannelMap, ma_uint32 channels) +{ + SLuint32 channelMask = 0; + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + channelMask |= ma_channel_id_to_opensl(pChannelMap[iChannel]); + } + + return channelMask; +} + +/* Converts an OpenSL-style channel mask to a miniaudio channel map. */ +static void ma_channel_mask_to_channel_map__opensl(SLuint32 channelMask, ma_uint32 channels, ma_channel* pChannelMap) +{ + if (channels == 1 && channelMask == 0) { + pChannelMap[0] = MA_CHANNEL_MONO; + } else if (channels == 2 && channelMask == 0) { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + } else { + if (channels == 1 && (channelMask & SL_SPEAKER_FRONT_CENTER) != 0) { + pChannelMap[0] = MA_CHANNEL_MONO; + } else { + /* Just iterate over each bit. */ + ma_uint32 iChannel = 0; + ma_uint32 iBit; + for (iBit = 0; iBit < 32 && iChannel < channels; ++iBit) { + SLuint32 bitValue = (channelMask & (1UL << iBit)); + if (bitValue != 0) { + /* The bit is set. */ + pChannelMap[iChannel] = ma_channel_id_to_ma__opensl(bitValue); + iChannel += 1; + } + } + } + } +} + +static SLuint32 ma_round_to_standard_sample_rate__opensl(SLuint32 samplesPerSec) +{ + if (samplesPerSec <= SL_SAMPLINGRATE_8) { + return SL_SAMPLINGRATE_8; + } + if (samplesPerSec <= SL_SAMPLINGRATE_11_025) { + return SL_SAMPLINGRATE_11_025; + } + if (samplesPerSec <= SL_SAMPLINGRATE_12) { + return SL_SAMPLINGRATE_12; + } + if (samplesPerSec <= SL_SAMPLINGRATE_16) { + return SL_SAMPLINGRATE_16; + } + if (samplesPerSec <= SL_SAMPLINGRATE_22_05) { + return SL_SAMPLINGRATE_22_05; + } + if (samplesPerSec <= SL_SAMPLINGRATE_24) { + return SL_SAMPLINGRATE_24; + } + if (samplesPerSec <= SL_SAMPLINGRATE_32) { + return SL_SAMPLINGRATE_32; + } + if (samplesPerSec <= SL_SAMPLINGRATE_44_1) { + return SL_SAMPLINGRATE_44_1; + } + if (samplesPerSec <= SL_SAMPLINGRATE_48) { + return SL_SAMPLINGRATE_48; + } + + /* Android doesn't support more than 48000. */ +#ifndef MA_ANDROID + if (samplesPerSec <= SL_SAMPLINGRATE_64) { + return SL_SAMPLINGRATE_64; + } + if (samplesPerSec <= SL_SAMPLINGRATE_88_2) { + return SL_SAMPLINGRATE_88_2; + } + if (samplesPerSec <= SL_SAMPLINGRATE_96) { + return SL_SAMPLINGRATE_96; + } + if (samplesPerSec <= SL_SAMPLINGRATE_192) { + return SL_SAMPLINGRATE_192; + } +#endif + + return SL_SAMPLINGRATE_16; +} + + +static SLint32 ma_to_stream_type__opensl(ma_opensl_stream_type streamType) +{ + switch (streamType) { + case ma_opensl_stream_type_voice: return SL_ANDROID_STREAM_VOICE; + case ma_opensl_stream_type_system: return SL_ANDROID_STREAM_SYSTEM; + case ma_opensl_stream_type_ring: return SL_ANDROID_STREAM_RING; + case ma_opensl_stream_type_media: return SL_ANDROID_STREAM_MEDIA; + case ma_opensl_stream_type_alarm: return SL_ANDROID_STREAM_ALARM; + case ma_opensl_stream_type_notification: return SL_ANDROID_STREAM_NOTIFICATION; + default: break; + } + + return SL_ANDROID_STREAM_VOICE; +} + +static SLint32 ma_to_recording_preset__opensl(ma_opensl_recording_preset recordingPreset) +{ + switch (recordingPreset) { + case ma_opensl_recording_preset_generic: return SL_ANDROID_RECORDING_PRESET_GENERIC; + case ma_opensl_recording_preset_camcorder: return SL_ANDROID_RECORDING_PRESET_CAMCORDER; + case ma_opensl_recording_preset_voice_recognition: return SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION; + case ma_opensl_recording_preset_voice_communication: return SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION; + case ma_opensl_recording_preset_voice_unprocessed: return SL_ANDROID_RECORDING_PRESET_UNPROCESSED; + default: break; + } + + return SL_ANDROID_RECORDING_PRESET_NONE; +} + + +static ma_result ma_context_enumerate_devices__opensl(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_bool32 cbResult; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + MA_ASSERT(g_maOpenSLInitCounter > 0); /* <-- If you trigger this it means you've either not initialized the context, or you've uninitialized it and then attempted to enumerate devices. */ + if (g_maOpenSLInitCounter == 0) { + return MA_INVALID_OPERATION; + } + + /* + TODO: Test Me. + + This is currently untested, so for now we are just returning default devices. + */ +#if 0 && !defined(MA_ANDROID) + ma_bool32 isTerminated = MA_FALSE; + + SLuint32 pDeviceIDs[128]; + SLint32 deviceCount = sizeof(pDeviceIDs) / sizeof(pDeviceIDs[0]); + + SLAudioIODeviceCapabilitiesItf deviceCaps; + SLresult resultSL = (*g_maEngineObjectSL)->GetInterface(g_maEngineObjectSL, (SLInterfaceID)pContext->opensl.SL_IID_AUDIOIODEVICECAPABILITIES, &deviceCaps); + if (resultSL != SL_RESULT_SUCCESS) { + /* The interface may not be supported so just report a default device. */ + goto return_default_device; + } + + /* Playback */ + if (!isTerminated) { + resultSL = (*deviceCaps)->GetAvailableAudioOutputs(deviceCaps, &deviceCount, pDeviceIDs); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_result_from_OpenSL(resultSL); + } + + for (SLint32 iDevice = 0; iDevice < deviceCount; ++iDevice) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + deviceInfo.id.opensl = pDeviceIDs[iDevice]; + + SLAudioOutputDescriptor desc; + resultSL = (*deviceCaps)->QueryAudioOutputCapabilities(deviceCaps, deviceInfo.id.opensl, &desc); + if (resultSL == SL_RESULT_SUCCESS) { + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), (const char*)desc.pDeviceName, (size_t)-1); + + ma_bool32 cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + if (cbResult == MA_FALSE) { + isTerminated = MA_TRUE; + break; + } + } + } + } + + /* Capture */ + if (!isTerminated) { + resultSL = (*deviceCaps)->GetAvailableAudioInputs(deviceCaps, &deviceCount, pDeviceIDs); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_result_from_OpenSL(resultSL); + } + + for (SLint32 iDevice = 0; iDevice < deviceCount; ++iDevice) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + deviceInfo.id.opensl = pDeviceIDs[iDevice]; + + SLAudioInputDescriptor desc; + resultSL = (*deviceCaps)->QueryAudioInputCapabilities(deviceCaps, deviceInfo.id.opensl, &desc); + if (resultSL == SL_RESULT_SUCCESS) { + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), (const char*)desc.deviceName, (size_t)-1); + + ma_bool32 cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + if (cbResult == MA_FALSE) { + isTerminated = MA_TRUE; + break; + } + } + } + } + + return MA_SUCCESS; +#else + goto return_default_device; +#endif + +return_default_device:; + cbResult = MA_TRUE; + + /* Playback. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + + /* Capture. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + + return MA_SUCCESS; +} + +static void ma_context_add_data_format_ex__opensl(ma_context* pContext, ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_device_info* pDeviceInfo) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].format = format; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].channels = channels; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].sampleRate = sampleRate; + pDeviceInfo->nativeDataFormats[pDeviceInfo->nativeDataFormatCount].flags = 0; + pDeviceInfo->nativeDataFormatCount += 1; +} + +static void ma_context_add_data_format__opensl(ma_context* pContext, ma_format format, ma_device_info* pDeviceInfo) +{ + ma_uint32 minChannels = 1; + ma_uint32 maxChannels = 2; + ma_uint32 minSampleRate = (ma_uint32)ma_standard_sample_rate_8000; + ma_uint32 maxSampleRate = (ma_uint32)ma_standard_sample_rate_48000; + ma_uint32 iChannel; + ma_uint32 iSampleRate; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(pDeviceInfo != NULL); + + /* + Each sample format can support mono and stereo, and we'll support a small subset of standard + rates (up to 48000). A better solution would be to somehow find a native sample rate. + */ + for (iChannel = minChannels; iChannel < maxChannels; iChannel += 1) { + for (iSampleRate = 0; iSampleRate < ma_countof(g_maStandardSampleRatePriorities); iSampleRate += 1) { + ma_uint32 standardSampleRate = g_maStandardSampleRatePriorities[iSampleRate]; + if (standardSampleRate >= minSampleRate && standardSampleRate <= maxSampleRate) { + ma_context_add_data_format_ex__opensl(pContext, format, iChannel, standardSampleRate, pDeviceInfo); + } + } + } +} + +static ma_result ma_context_get_device_info__opensl(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + MA_ASSERT(pContext != NULL); + + MA_ASSERT(g_maOpenSLInitCounter > 0); /* <-- If you trigger this it means you've either not initialized the context, or you've uninitialized it and then attempted to get device info. */ + if (g_maOpenSLInitCounter == 0) { + return MA_INVALID_OPERATION; + } + + /* + TODO: Test Me. + + This is currently untested, so for now we are just returning default devices. + */ +#if 0 && !defined(MA_ANDROID) + SLAudioIODeviceCapabilitiesItf deviceCaps; + SLresult resultSL = (*g_maEngineObjectSL)->GetInterface(g_maEngineObjectSL, (SLInterfaceID)pContext->opensl.SL_IID_AUDIOIODEVICECAPABILITIES, &deviceCaps); + if (resultSL != SL_RESULT_SUCCESS) { + /* The interface may not be supported so just report a default device. */ + goto return_default_device; + } + + if (deviceType == ma_device_type_playback) { + SLAudioOutputDescriptor desc; + resultSL = (*deviceCaps)->QueryAudioOutputCapabilities(deviceCaps, pDeviceID->opensl, &desc); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_result_from_OpenSL(resultSL); + } + + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), (const char*)desc.pDeviceName, (size_t)-1); + } else { + SLAudioInputDescriptor desc; + resultSL = (*deviceCaps)->QueryAudioInputCapabilities(deviceCaps, pDeviceID->opensl, &desc); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_result_from_OpenSL(resultSL); + } + + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), (const char*)desc.deviceName, (size_t)-1); + } + + goto return_detailed_info; +#else + goto return_default_device; +#endif + +return_default_device: + if (pDeviceID != NULL) { + if ((deviceType == ma_device_type_playback && pDeviceID->opensl != SL_DEFAULTDEVICEID_AUDIOOUTPUT) || + (deviceType == ma_device_type_capture && pDeviceID->opensl != SL_DEFAULTDEVICEID_AUDIOINPUT)) { + return MA_NO_DEVICE; /* Don't know the device. */ + } + } + + /* Name / Description */ + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + + pDeviceInfo->isDefault = MA_TRUE; + + goto return_detailed_info; + + +return_detailed_info: + + /* + For now we're just outputting a set of values that are supported by the API but not necessarily supported + by the device natively. Later on we should work on this so that it more closely reflects the device's + actual native format. + */ + pDeviceInfo->nativeDataFormatCount = 0; +#if defined(MA_ANDROID) && __ANDROID_API__ >= 21 + ma_context_add_data_format__opensl(pContext, ma_format_f32, pDeviceInfo); +#endif + ma_context_add_data_format__opensl(pContext, ma_format_s16, pDeviceInfo); + ma_context_add_data_format__opensl(pContext, ma_format_u8, pDeviceInfo); + + return MA_SUCCESS; +} + + +#ifdef MA_ANDROID +/*void ma_buffer_queue_callback_capture__opensl_android(SLAndroidSimpleBufferQueueItf pBufferQueue, SLuint32 eventFlags, const void* pBuffer, SLuint32 bufferSize, SLuint32 dataUsed, void* pContext)*/ +static void ma_buffer_queue_callback_capture__opensl_android(SLAndroidSimpleBufferQueueItf pBufferQueue, void* pUserData) +{ + ma_device* pDevice = (ma_device*)pUserData; + size_t periodSizeInBytes; + ma_uint8* pBuffer; + SLresult resultSL; + + MA_ASSERT(pDevice != NULL); + + (void)pBufferQueue; + + /* + For now, don't do anything unless the buffer was fully processed. From what I can tell, it looks like + OpenSL|ES 1.1 improves on buffer queues to the point that we could much more intelligently handle this, + but unfortunately it looks like Android is only supporting OpenSL|ES 1.0.1 for now :( + */ + + /* Don't do anything if the device is not started. */ + if (ma_device_get_state(pDevice) != MA_STATE_STARTED) { + return; + } + + /* Don't do anything if the device is being drained. */ + if (pDevice->opensl.isDrainingCapture) { + return; + } + + periodSizeInBytes = pDevice->capture.internalPeriodSizeInFrames * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + pBuffer = pDevice->opensl.pBufferCapture + (pDevice->opensl.currentBufferIndexCapture * periodSizeInBytes); + + ma_device_handle_backend_data_callback(pDevice, NULL, pBuffer, pDevice->capture.internalPeriodSizeInFrames); + + resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueueCapture)->Enqueue((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueueCapture, pBuffer, periodSizeInBytes); + if (resultSL != SL_RESULT_SUCCESS) { + return; + } + + pDevice->opensl.currentBufferIndexCapture = (pDevice->opensl.currentBufferIndexCapture + 1) % pDevice->capture.internalPeriods; +} + +static void ma_buffer_queue_callback_playback__opensl_android(SLAndroidSimpleBufferQueueItf pBufferQueue, void* pUserData) +{ + ma_device* pDevice = (ma_device*)pUserData; + size_t periodSizeInBytes; + ma_uint8* pBuffer; + SLresult resultSL; + + MA_ASSERT(pDevice != NULL); + + (void)pBufferQueue; + + /* Don't do anything if the device is not started. */ + if (ma_device_get_state(pDevice) != MA_STATE_STARTED) { + return; + } + + /* Don't do anything if the device is being drained. */ + if (pDevice->opensl.isDrainingPlayback) { + return; + } + + periodSizeInBytes = pDevice->playback.internalPeriodSizeInFrames * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + pBuffer = pDevice->opensl.pBufferPlayback + (pDevice->opensl.currentBufferIndexPlayback * periodSizeInBytes); + + ma_device_handle_backend_data_callback(pDevice, pBuffer, NULL, pDevice->playback.internalPeriodSizeInFrames); + + resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueuePlayback)->Enqueue((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueuePlayback, pBuffer, periodSizeInBytes); + if (resultSL != SL_RESULT_SUCCESS) { + return; + } + + pDevice->opensl.currentBufferIndexPlayback = (pDevice->opensl.currentBufferIndexPlayback + 1) % pDevice->playback.internalPeriods; +} +#endif + +static ma_result ma_device_uninit__opensl(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + MA_ASSERT(g_maOpenSLInitCounter > 0); /* <-- If you trigger this it means you've either not initialized the context, or you've uninitialized it before uninitializing the device. */ + if (g_maOpenSLInitCounter == 0) { + return MA_INVALID_OPERATION; + } + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + if (pDevice->opensl.pAudioRecorderObj) { + MA_OPENSL_OBJ(pDevice->opensl.pAudioRecorderObj)->Destroy((SLObjectItf)pDevice->opensl.pAudioRecorderObj); + } + + ma__free_from_callbacks(pDevice->opensl.pBufferCapture, &pDevice->pContext->allocationCallbacks); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + if (pDevice->opensl.pAudioPlayerObj) { + MA_OPENSL_OBJ(pDevice->opensl.pAudioPlayerObj)->Destroy((SLObjectItf)pDevice->opensl.pAudioPlayerObj); + } + if (pDevice->opensl.pOutputMixObj) { + MA_OPENSL_OBJ(pDevice->opensl.pOutputMixObj)->Destroy((SLObjectItf)pDevice->opensl.pOutputMixObj); + } + + ma__free_from_callbacks(pDevice->opensl.pBufferPlayback, &pDevice->pContext->allocationCallbacks); + } + + return MA_SUCCESS; +} + +#if defined(MA_ANDROID) && __ANDROID_API__ >= 21 +typedef SLAndroidDataFormat_PCM_EX ma_SLDataFormat_PCM; +#else +typedef SLDataFormat_PCM ma_SLDataFormat_PCM; +#endif + +static ma_result ma_SLDataFormat_PCM_init__opensl(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, const ma_channel* channelMap, ma_SLDataFormat_PCM* pDataFormat) +{ + /* We need to convert our format/channels/rate so that they aren't set to default. */ + if (format == ma_format_unknown) { + format = MA_DEFAULT_FORMAT; + } + if (channels == 0) { + channels = MA_DEFAULT_CHANNELS; + } + if (sampleRate == 0) { + sampleRate = MA_DEFAULT_SAMPLE_RATE; + } + +#if defined(MA_ANDROID) && __ANDROID_API__ >= 21 + if (format == ma_format_f32) { + pDataFormat->formatType = SL_ANDROID_DATAFORMAT_PCM_EX; + pDataFormat->representation = SL_ANDROID_PCM_REPRESENTATION_FLOAT; + } else { + pDataFormat->formatType = SL_DATAFORMAT_PCM; + } +#else + pDataFormat->formatType = SL_DATAFORMAT_PCM; +#endif + + pDataFormat->numChannels = channels; + ((SLDataFormat_PCM*)pDataFormat)->samplesPerSec = ma_round_to_standard_sample_rate__opensl(sampleRate) * 1000; /* In millihertz. Annoyingly, the sample rate variable is named differently between SLAndroidDataFormat_PCM_EX and SLDataFormat_PCM */ + pDataFormat->bitsPerSample = ma_get_bytes_per_sample(format)*8; + pDataFormat->channelMask = ma_channel_map_to_channel_mask__opensl(channelMap, channels); + pDataFormat->endianness = (ma_is_little_endian()) ? SL_BYTEORDER_LITTLEENDIAN : SL_BYTEORDER_BIGENDIAN; + + /* + Android has a few restrictions on the format as documented here: https://developer.android.com/ndk/guides/audio/opensl-for-android.html + - Only mono and stereo is supported. + - Only u8 and s16 formats are supported. + - Maximum sample rate of 48000. + */ +#ifdef MA_ANDROID + if (pDataFormat->numChannels > 2) { + pDataFormat->numChannels = 2; + } +#if __ANDROID_API__ >= 21 + if (pDataFormat->formatType == SL_ANDROID_DATAFORMAT_PCM_EX) { + /* It's floating point. */ + MA_ASSERT(pDataFormat->representation == SL_ANDROID_PCM_REPRESENTATION_FLOAT); + if (pDataFormat->bitsPerSample > 32) { + pDataFormat->bitsPerSample = 32; + } + } else { + if (pDataFormat->bitsPerSample > 16) { + pDataFormat->bitsPerSample = 16; + } + } +#else + if (pDataFormat->bitsPerSample > 16) { + pDataFormat->bitsPerSample = 16; + } +#endif + if (((SLDataFormat_PCM*)pDataFormat)->samplesPerSec > SL_SAMPLINGRATE_48) { + ((SLDataFormat_PCM*)pDataFormat)->samplesPerSec = SL_SAMPLINGRATE_48; + } +#endif + + pDataFormat->containerSize = pDataFormat->bitsPerSample; /* Always tightly packed for now. */ + + return MA_SUCCESS; +} + +static ma_result ma_deconstruct_SLDataFormat_PCM__opensl(ma_SLDataFormat_PCM* pDataFormat, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap) +{ + ma_bool32 isFloatingPoint = MA_FALSE; +#if defined(MA_ANDROID) && __ANDROID_API__ >= 21 + if (pDataFormat->formatType == SL_ANDROID_DATAFORMAT_PCM_EX) { + MA_ASSERT(pDataFormat->representation == SL_ANDROID_PCM_REPRESENTATION_FLOAT); + isFloatingPoint = MA_TRUE; + } +#endif + if (isFloatingPoint) { + if (pDataFormat->bitsPerSample == 32) { + *pFormat = ma_format_f32; + } + } else { + if (pDataFormat->bitsPerSample == 8) { + *pFormat = ma_format_u8; + } else if (pDataFormat->bitsPerSample == 16) { + *pFormat = ma_format_s16; + } else if (pDataFormat->bitsPerSample == 24) { + *pFormat = ma_format_s24; + } else if (pDataFormat->bitsPerSample == 32) { + *pFormat = ma_format_s32; + } + } + + *pChannels = pDataFormat->numChannels; + *pSampleRate = ((SLDataFormat_PCM*)pDataFormat)->samplesPerSec / 1000; + ma_channel_mask_to_channel_map__opensl(pDataFormat->channelMask, ma_min(pDataFormat->numChannels, channelMapCap), pChannelMap); + + return MA_SUCCESS; +} + +static ma_result ma_device_init__opensl(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ +#ifdef MA_ANDROID + SLDataLocator_AndroidSimpleBufferQueue queue; + SLresult resultSL; + size_t bufferSizeInBytes; + SLInterfaceID itfIDs1[1]; + const SLboolean itfIDsRequired1[] = {SL_BOOLEAN_TRUE}; +#endif + + MA_ASSERT(g_maOpenSLInitCounter > 0); /* <-- If you trigger this it means you've either not initialized the context, or you've uninitialized it and then attempted to initialize a new device. */ + if (g_maOpenSLInitCounter == 0) { + return MA_INVALID_OPERATION; + } + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* + For now, only supporting Android implementations of OpenSL|ES since that's the only one I've + been able to test with and I currently depend on Android-specific extensions (simple buffer + queues). + */ +#ifdef MA_ANDROID + itfIDs1[0] = (SLInterfaceID)pDevice->pContext->opensl.SL_IID_ANDROIDSIMPLEBUFFERQUEUE; + + /* No exclusive mode with OpenSL|ES. */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + /* Now we can start initializing the device properly. */ + MA_ASSERT(pDevice != NULL); + MA_ZERO_OBJECT(&pDevice->opensl); + + queue.locatorType = SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE; + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + ma_SLDataFormat_PCM pcm; + SLDataLocator_IODevice locatorDevice; + SLDataSource source; + SLDataSink sink; + SLAndroidConfigurationItf pRecorderConfig; + + ma_SLDataFormat_PCM_init__opensl(pDescriptorCapture->format, pDescriptorCapture->channels, pDescriptorCapture->sampleRate, pDescriptorCapture->channelMap, &pcm); + + locatorDevice.locatorType = SL_DATALOCATOR_IODEVICE; + locatorDevice.deviceType = SL_IODEVICE_AUDIOINPUT; + locatorDevice.deviceID = (pDescriptorCapture->pDeviceID == NULL) ? SL_DEFAULTDEVICEID_AUDIOINPUT : pDescriptorCapture->pDeviceID->opensl; + locatorDevice.device = NULL; + + source.pLocator = &locatorDevice; + source.pFormat = NULL; + + queue.numBuffers = pDescriptorCapture->periodCount; + + sink.pLocator = &queue; + sink.pFormat = (SLDataFormat_PCM*)&pcm; + + resultSL = (*g_maEngineSL)->CreateAudioRecorder(g_maEngineSL, (SLObjectItf*)&pDevice->opensl.pAudioRecorderObj, &source, &sink, 1, itfIDs1, itfIDsRequired1); + if (resultSL == SL_RESULT_CONTENT_UNSUPPORTED) { + /* Unsupported format. Fall back to something safer and try again. If this fails, just abort. */ + pcm.formatType = SL_DATAFORMAT_PCM; + pcm.numChannels = 1; + ((SLDataFormat_PCM*)&pcm)->samplesPerSec = SL_SAMPLINGRATE_16; /* The name of the sample rate variable is different between SLAndroidDataFormat_PCM_EX and SLDataFormat_PCM. */ + pcm.bitsPerSample = 16; + pcm.containerSize = pcm.bitsPerSample; /* Always tightly packed for now. */ + pcm.channelMask = SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT; + resultSL = (*g_maEngineSL)->CreateAudioRecorder(g_maEngineSL, (SLObjectItf*)&pDevice->opensl.pAudioRecorderObj, &source, &sink, 1, itfIDs1, itfIDsRequired1); + } + + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to create audio recorder.", ma_result_from_OpenSL(resultSL)); + } + + + /* Set the recording preset before realizing the player. */ + if (pConfig->opensl.recordingPreset != ma_opensl_recording_preset_default) { + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioPlayerObj)->GetInterface((SLObjectItf)pDevice->opensl.pAudioPlayerObj, (SLInterfaceID)pDevice->pContext->opensl.SL_IID_ANDROIDCONFIGURATION, &pRecorderConfig); + if (resultSL == SL_RESULT_SUCCESS) { + SLint32 recordingPreset = ma_to_recording_preset__opensl(pConfig->opensl.recordingPreset); + resultSL = (*pRecorderConfig)->SetConfiguration(pRecorderConfig, SL_ANDROID_KEY_RECORDING_PRESET, &recordingPreset, sizeof(SLint32)); + if (resultSL != SL_RESULT_SUCCESS) { + /* Failed to set the configuration. Just keep going. */ + } + } + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioRecorderObj)->Realize((SLObjectItf)pDevice->opensl.pAudioRecorderObj, SL_BOOLEAN_FALSE); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to realize audio recorder.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioRecorderObj)->GetInterface((SLObjectItf)pDevice->opensl.pAudioRecorderObj, (SLInterfaceID)pDevice->pContext->opensl.SL_IID_RECORD, &pDevice->opensl.pAudioRecorder); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to retrieve SL_IID_RECORD interface.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioRecorderObj)->GetInterface((SLObjectItf)pDevice->opensl.pAudioRecorderObj, (SLInterfaceID)pDevice->pContext->opensl.SL_IID_ANDROIDSIMPLEBUFFERQUEUE, &pDevice->opensl.pBufferQueueCapture); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to retrieve SL_IID_ANDROIDSIMPLEBUFFERQUEUE interface.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueueCapture)->RegisterCallback((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueueCapture, ma_buffer_queue_callback_capture__opensl_android, pDevice); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to register buffer queue callback.", ma_result_from_OpenSL(resultSL)); + } + + /* The internal format is determined by the "pcm" object. */ + ma_deconstruct_SLDataFormat_PCM__opensl(&pcm, &pDescriptorCapture->format, &pDescriptorCapture->channels, &pDescriptorCapture->sampleRate, pDescriptorCapture->channelMap, ma_countof(pDescriptorCapture->channelMap)); + + /* Buffer. */ + pDescriptorCapture->periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptorCapture, pDescriptorCapture->sampleRate, pConfig->performanceProfile); + pDevice->opensl.currentBufferIndexCapture = 0; + + bufferSizeInBytes = pDescriptorCapture->periodSizeInFrames * ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels) * pDescriptorCapture->periodCount; + pDevice->opensl.pBufferCapture = (ma_uint8*)ma__calloc_from_callbacks(bufferSizeInBytes, &pDevice->pContext->allocationCallbacks); + if (pDevice->opensl.pBufferCapture == NULL) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to allocate memory for data buffer.", MA_OUT_OF_MEMORY); + } + MA_ZERO_MEMORY(pDevice->opensl.pBufferCapture, bufferSizeInBytes); + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + ma_SLDataFormat_PCM pcm; + SLDataSource source; + SLDataLocator_OutputMix outmixLocator; + SLDataSink sink; + SLAndroidConfigurationItf pPlayerConfig; + + ma_SLDataFormat_PCM_init__opensl(pDescriptorPlayback->format, pDescriptorPlayback->channels, pDescriptorPlayback->sampleRate, pDescriptorPlayback->channelMap, &pcm); + + resultSL = (*g_maEngineSL)->CreateOutputMix(g_maEngineSL, (SLObjectItf*)&pDevice->opensl.pOutputMixObj, 0, NULL, NULL); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to create output mix.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pOutputMixObj)->Realize((SLObjectItf)pDevice->opensl.pOutputMixObj, SL_BOOLEAN_FALSE); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to realize output mix object.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pOutputMixObj)->GetInterface((SLObjectItf)pDevice->opensl.pOutputMixObj, (SLInterfaceID)pDevice->pContext->opensl.SL_IID_OUTPUTMIX, &pDevice->opensl.pOutputMix); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to retrieve SL_IID_OUTPUTMIX interface.", ma_result_from_OpenSL(resultSL)); + } + + /* Set the output device. */ + if (pDescriptorPlayback->pDeviceID != NULL) { + SLuint32 deviceID_OpenSL = pDescriptorPlayback->pDeviceID->opensl; + MA_OPENSL_OUTPUTMIX(pDevice->opensl.pOutputMix)->ReRoute((SLOutputMixItf)pDevice->opensl.pOutputMix, 1, &deviceID_OpenSL); + } + + queue.numBuffers = pDescriptorPlayback->periodCount; + + source.pLocator = &queue; + source.pFormat = (SLDataFormat_PCM*)&pcm; + + outmixLocator.locatorType = SL_DATALOCATOR_OUTPUTMIX; + outmixLocator.outputMix = (SLObjectItf)pDevice->opensl.pOutputMixObj; + + sink.pLocator = &outmixLocator; + sink.pFormat = NULL; + + resultSL = (*g_maEngineSL)->CreateAudioPlayer(g_maEngineSL, (SLObjectItf*)&pDevice->opensl.pAudioPlayerObj, &source, &sink, 1, itfIDs1, itfIDsRequired1); + if (resultSL == SL_RESULT_CONTENT_UNSUPPORTED) { + /* Unsupported format. Fall back to something safer and try again. If this fails, just abort. */ + pcm.formatType = SL_DATAFORMAT_PCM; + pcm.numChannels = 2; + ((SLDataFormat_PCM*)&pcm)->samplesPerSec = SL_SAMPLINGRATE_16; + pcm.bitsPerSample = 16; + pcm.containerSize = pcm.bitsPerSample; /* Always tightly packed for now. */ + pcm.channelMask = SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT; + resultSL = (*g_maEngineSL)->CreateAudioPlayer(g_maEngineSL, (SLObjectItf*)&pDevice->opensl.pAudioPlayerObj, &source, &sink, 1, itfIDs1, itfIDsRequired1); + } + + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to create audio player.", ma_result_from_OpenSL(resultSL)); + } + + + /* Set the stream type before realizing the player. */ + if (pConfig->opensl.streamType != ma_opensl_stream_type_default) { + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioPlayerObj)->GetInterface((SLObjectItf)pDevice->opensl.pAudioPlayerObj, (SLInterfaceID)pDevice->pContext->opensl.SL_IID_ANDROIDCONFIGURATION, &pPlayerConfig); + if (resultSL == SL_RESULT_SUCCESS) { + SLint32 streamType = ma_to_stream_type__opensl(pConfig->opensl.streamType); + resultSL = (*pPlayerConfig)->SetConfiguration(pPlayerConfig, SL_ANDROID_KEY_STREAM_TYPE, &streamType, sizeof(SLint32)); + if (resultSL != SL_RESULT_SUCCESS) { + /* Failed to set the configuration. Just keep going. */ + } + } + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioPlayerObj)->Realize((SLObjectItf)pDevice->opensl.pAudioPlayerObj, SL_BOOLEAN_FALSE); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to realize audio player.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioPlayerObj)->GetInterface((SLObjectItf)pDevice->opensl.pAudioPlayerObj, (SLInterfaceID)pDevice->pContext->opensl.SL_IID_PLAY, &pDevice->opensl.pAudioPlayer); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to retrieve SL_IID_PLAY interface.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_OBJ(pDevice->opensl.pAudioPlayerObj)->GetInterface((SLObjectItf)pDevice->opensl.pAudioPlayerObj, (SLInterfaceID)pDevice->pContext->opensl.SL_IID_ANDROIDSIMPLEBUFFERQUEUE, &pDevice->opensl.pBufferQueuePlayback); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to retrieve SL_IID_ANDROIDSIMPLEBUFFERQUEUE interface.", ma_result_from_OpenSL(resultSL)); + } + + resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueuePlayback)->RegisterCallback((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueuePlayback, ma_buffer_queue_callback_playback__opensl_android, pDevice); + if (resultSL != SL_RESULT_SUCCESS) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to register buffer queue callback.", ma_result_from_OpenSL(resultSL)); + } + + /* The internal format is determined by the "pcm" object. */ + ma_deconstruct_SLDataFormat_PCM__opensl(&pcm, &pDescriptorPlayback->format, &pDescriptorPlayback->channels, &pDescriptorPlayback->sampleRate, pDescriptorPlayback->channelMap, ma_countof(pDescriptorPlayback->channelMap)); + + /* Buffer. */ + pDescriptorPlayback->periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptorPlayback, pDescriptorPlayback->sampleRate, pConfig->performanceProfile); + pDevice->opensl.currentBufferIndexPlayback = 0; + + bufferSizeInBytes = pDescriptorPlayback->periodSizeInFrames * ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels) * pDescriptorPlayback->periodCount; + pDevice->opensl.pBufferPlayback = (ma_uint8*)ma__calloc_from_callbacks(bufferSizeInBytes, &pDevice->pContext->allocationCallbacks); + if (pDevice->opensl.pBufferPlayback == NULL) { + ma_device_uninit__opensl(pDevice); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to allocate memory for data buffer.", MA_OUT_OF_MEMORY); + } + MA_ZERO_MEMORY(pDevice->opensl.pBufferPlayback, bufferSizeInBytes); + } + + return MA_SUCCESS; +#else + return MA_NO_BACKEND; /* Non-Android implementations are not supported. */ +#endif +} + +static ma_result ma_device_start__opensl(ma_device* pDevice) +{ + SLresult resultSL; + size_t periodSizeInBytes; + ma_uint32 iPeriod; + + MA_ASSERT(pDevice != NULL); + + MA_ASSERT(g_maOpenSLInitCounter > 0); /* <-- If you trigger this it means you've either not initialized the context, or you've uninitialized it and then attempted to start the device. */ + if (g_maOpenSLInitCounter == 0) { + return MA_INVALID_OPERATION; + } + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + resultSL = MA_OPENSL_RECORD(pDevice->opensl.pAudioRecorder)->SetRecordState((SLRecordItf)pDevice->opensl.pAudioRecorder, SL_RECORDSTATE_RECORDING); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to start internal capture device.", ma_result_from_OpenSL(resultSL)); + } + + periodSizeInBytes = pDevice->capture.internalPeriodSizeInFrames * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); + for (iPeriod = 0; iPeriod < pDevice->capture.internalPeriods; ++iPeriod) { + resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueueCapture)->Enqueue((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueueCapture, pDevice->opensl.pBufferCapture + (periodSizeInBytes * iPeriod), periodSizeInBytes); + if (resultSL != SL_RESULT_SUCCESS) { + MA_OPENSL_RECORD(pDevice->opensl.pAudioRecorder)->SetRecordState((SLRecordItf)pDevice->opensl.pAudioRecorder, SL_RECORDSTATE_STOPPED); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to enqueue buffer for capture device.", ma_result_from_OpenSL(resultSL)); + } + } + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + resultSL = MA_OPENSL_PLAY(pDevice->opensl.pAudioPlayer)->SetPlayState((SLPlayItf)pDevice->opensl.pAudioPlayer, SL_PLAYSTATE_PLAYING); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to start internal playback device.", ma_result_from_OpenSL(resultSL)); + } + + /* In playback mode (no duplex) we need to load some initial buffers. In duplex mode we need to enqueu silent buffers. */ + if (pDevice->type == ma_device_type_duplex) { + MA_ZERO_MEMORY(pDevice->opensl.pBufferPlayback, pDevice->playback.internalPeriodSizeInFrames * pDevice->playback.internalPeriods * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels)); + } else { + ma_device__read_frames_from_client(pDevice, pDevice->playback.internalPeriodSizeInFrames * pDevice->playback.internalPeriods, pDevice->opensl.pBufferPlayback); + } + + periodSizeInBytes = pDevice->playback.internalPeriodSizeInFrames * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels); + for (iPeriod = 0; iPeriod < pDevice->playback.internalPeriods; ++iPeriod) { + resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueuePlayback)->Enqueue((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueuePlayback, pDevice->opensl.pBufferPlayback + (periodSizeInBytes * iPeriod), periodSizeInBytes); + if (resultSL != SL_RESULT_SUCCESS) { + MA_OPENSL_PLAY(pDevice->opensl.pAudioPlayer)->SetPlayState((SLPlayItf)pDevice->opensl.pAudioPlayer, SL_PLAYSTATE_STOPPED); + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to enqueue buffer for playback device.", ma_result_from_OpenSL(resultSL)); + } + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_drain__opensl(ma_device* pDevice, ma_device_type deviceType) +{ + SLAndroidSimpleBufferQueueItf pBufferQueue; + + MA_ASSERT(deviceType == ma_device_type_capture || deviceType == ma_device_type_playback); + + if (pDevice->type == ma_device_type_capture) { + pBufferQueue = (SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueueCapture; + pDevice->opensl.isDrainingCapture = MA_TRUE; + } else { + pBufferQueue = (SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueuePlayback; + pDevice->opensl.isDrainingPlayback = MA_TRUE; + } + + for (;;) { + SLAndroidSimpleBufferQueueState state; + + MA_OPENSL_BUFFERQUEUE(pBufferQueue)->GetState(pBufferQueue, &state); + if (state.count == 0) { + break; + } + + ma_sleep(10); + } + + if (pDevice->type == ma_device_type_capture) { + pDevice->opensl.isDrainingCapture = MA_FALSE; + } else { + pDevice->opensl.isDrainingPlayback = MA_FALSE; + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__opensl(ma_device* pDevice) +{ + SLresult resultSL; + ma_stop_proc onStop; + + MA_ASSERT(pDevice != NULL); + + MA_ASSERT(g_maOpenSLInitCounter > 0); /* <-- If you trigger this it means you've either not initialized the context, or you've uninitialized it before stopping/uninitializing the device. */ + if (g_maOpenSLInitCounter == 0) { + return MA_INVALID_OPERATION; + } + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma_device_drain__opensl(pDevice, ma_device_type_capture); + + resultSL = MA_OPENSL_RECORD(pDevice->opensl.pAudioRecorder)->SetRecordState((SLRecordItf)pDevice->opensl.pAudioRecorder, SL_RECORDSTATE_STOPPED); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to stop internal capture device.", ma_result_from_OpenSL(resultSL)); + } + + MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueueCapture)->Clear((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueueCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_device_drain__opensl(pDevice, ma_device_type_playback); + + resultSL = MA_OPENSL_PLAY(pDevice->opensl.pAudioPlayer)->SetPlayState((SLPlayItf)pDevice->opensl.pAudioPlayer, SL_PLAYSTATE_STOPPED); + if (resultSL != SL_RESULT_SUCCESS) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to stop internal playback device.", ma_result_from_OpenSL(resultSL)); + } + + MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueuePlayback)->Clear((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueuePlayback); + } + + /* Make sure the client is aware that the device has stopped. There may be an OpenSL|ES callback for this, but I haven't found it. */ + onStop = pDevice->onStop; + if (onStop) { + onStop(pDevice); + } + + return MA_SUCCESS; +} + + +static ma_result ma_context_uninit__opensl(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_opensl); + (void)pContext; + + /* Uninit global data. */ + ma_spinlock_lock(&g_maOpenSLSpinlock); + { + MA_ASSERT(g_maOpenSLInitCounter > 0); /* If you've triggered this, it means you have ma_context_init/uninit mismatch. Each successful call to ma_context_init() must be matched up with a call to ma_context_uninit(). */ + + g_maOpenSLInitCounter -= 1; + if (g_maOpenSLInitCounter == 0) { + (*g_maEngineObjectSL)->Destroy(g_maEngineObjectSL); + } + } + ma_spinlock_unlock(&g_maOpenSLSpinlock); + + return MA_SUCCESS; +} + +static ma_result ma_dlsym_SLInterfaceID__opensl(ma_context* pContext, const char* pName, ma_handle* pHandle) +{ + /* We need to return an error if the symbol cannot be found. This is important because there have been reports that some symbols do not exist. */ + ma_handle* p = (ma_handle*)ma_dlsym(pContext, pContext->opensl.libOpenSLES, pName); + if (p == NULL) { + ma_post_log_messagef(pContext, NULL, MA_LOG_LEVEL_INFO, "[OpenSL|ES] Cannot find symbol %s", pName); + return MA_NO_BACKEND; + } + + *pHandle = *p; + return MA_SUCCESS; +} + +static ma_result ma_context_init_engine_nolock__opensl(ma_context* pContext) +{ + g_maOpenSLInitCounter += 1; + if (g_maOpenSLInitCounter == 1) { + SLresult resultSL; + + resultSL = ((ma_slCreateEngine_proc)pContext->opensl.slCreateEngine)(&g_maEngineObjectSL, 0, NULL, 0, NULL, NULL); + if (resultSL != SL_RESULT_SUCCESS) { + g_maOpenSLInitCounter -= 1; + return ma_result_from_OpenSL(resultSL); + } + + (*g_maEngineObjectSL)->Realize(g_maEngineObjectSL, SL_BOOLEAN_FALSE); + + resultSL = (*g_maEngineObjectSL)->GetInterface(g_maEngineObjectSL, (SLInterfaceID)pContext->opensl.SL_IID_ENGINE, &g_maEngineSL); + if (resultSL != SL_RESULT_SUCCESS) { + (*g_maEngineObjectSL)->Destroy(g_maEngineObjectSL); + g_maOpenSLInitCounter -= 1; + return ma_result_from_OpenSL(resultSL); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_context_init__opensl(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + ma_result result; + +#if !defined(MA_NO_RUNTIME_LINKING) + size_t i; + const char* libOpenSLESNames[] = { + "libOpenSLES.so" + }; +#endif + + MA_ASSERT(pContext != NULL); + + (void)pConfig; + +#if !defined(MA_NO_RUNTIME_LINKING) + /* + Dynamically link against libOpenSLES.so. I have now had multiple reports that SL_IID_ANDROIDSIMPLEBUFFERQUEUE cannot be found. One + report was happening at compile time and another at runtime. To try working around this, I'm going to link to libOpenSLES at runtime + and extract the symbols rather than reference them directly. This should, hopefully, fix these issues as the compiler won't see any + references to the symbols and will hopefully skip the checks. + */ + for (i = 0; i < ma_countof(libOpenSLESNames); i += 1) { + pContext->opensl.libOpenSLES = ma_dlopen(pContext, libOpenSLESNames[i]); + if (pContext->opensl.libOpenSLES != NULL) { + break; + } + } + + if (pContext->opensl.libOpenSLES == NULL) { + ma_post_log_message(pContext, NULL, MA_LOG_LEVEL_INFO, "[OpenSL|ES] Could not find libOpenSLES.so"); + return MA_NO_BACKEND; + } + + result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_ENGINE", &pContext->opensl.SL_IID_ENGINE); + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + return result; + } + + result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_AUDIOIODEVICECAPABILITIES", &pContext->opensl.SL_IID_AUDIOIODEVICECAPABILITIES); + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + return result; + } + + result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_ANDROIDSIMPLEBUFFERQUEUE", &pContext->opensl.SL_IID_ANDROIDSIMPLEBUFFERQUEUE); + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + return result; + } + + result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_RECORD", &pContext->opensl.SL_IID_RECORD); + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + return result; + } + + result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_PLAY", &pContext->opensl.SL_IID_PLAY); + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + return result; + } + + result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_OUTPUTMIX", &pContext->opensl.SL_IID_OUTPUTMIX); + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + return result; + } + + result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_ANDROIDCONFIGURATION", &pContext->opensl.SL_IID_ANDROIDCONFIGURATION); + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + return result; + } + + pContext->opensl.slCreateEngine = (ma_proc)ma_dlsym(pContext, pContext->opensl.libOpenSLES, "slCreateEngine"); + if (pContext->opensl.slCreateEngine == NULL) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_post_log_message(pContext, NULL, MA_LOG_LEVEL_INFO, "[OpenSL|ES] Cannot find symbol slCreateEngine."); + return MA_NO_BACKEND; + } +#else + pContext->opensl.SL_IID_ENGINE = (ma_handle)SL_IID_ENGINE; + pContext->opensl.SL_IID_AUDIOIODEVICECAPABILITIES = (ma_handle)SL_IID_AUDIOIODEVICECAPABILITIES; + pContext->opensl.SL_IID_ANDROIDSIMPLEBUFFERQUEUE = (ma_handle)SL_IID_ANDROIDSIMPLEBUFFERQUEUE; + pContext->opensl.SL_IID_RECORD = (ma_handle)SL_IID_RECORD; + pContext->opensl.SL_IID_PLAY = (ma_handle)SL_IID_PLAY; + pContext->opensl.SL_IID_OUTPUTMIX = (ma_handle)SL_IID_OUTPUTMIX; + pContext->opensl.SL_IID_ANDROIDCONFIGURATION = (ma_handle)SL_IID_ANDROIDCONFIGURATION; + pContext->opensl.slCreateEngine = (ma_proc)slCreateEngine; +#endif + + + /* Initialize global data first if applicable. */ + ma_spinlock_lock(&g_maOpenSLSpinlock); + { + result = ma_context_init_engine_nolock__opensl(pContext); + } + ma_spinlock_unlock(&g_maOpenSLSpinlock); + + if (result != MA_SUCCESS) { + ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_post_log_message(pContext, NULL, MA_LOG_LEVEL_INFO, "[OpenSL|ES] Failed to initialize OpenSL engine."); + return result; + } + + pCallbacks->onContextInit = ma_context_init__opensl; + pCallbacks->onContextUninit = ma_context_uninit__opensl; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__opensl; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__opensl; + pCallbacks->onDeviceInit = ma_device_init__opensl; + pCallbacks->onDeviceUninit = ma_device_uninit__opensl; + pCallbacks->onDeviceStart = ma_device_start__opensl; + pCallbacks->onDeviceStop = ma_device_stop__opensl; + pCallbacks->onDeviceRead = NULL; /* Not needed because OpenSL|ES is asynchronous. */ + pCallbacks->onDeviceWrite = NULL; /* Not needed because OpenSL|ES is asynchronous. */ + pCallbacks->onDeviceDataLoop = NULL; /* Not needed because OpenSL|ES is asynchronous. */ + + return MA_SUCCESS; +} +#endif /* OpenSL|ES */ + + +/****************************************************************************** + +Web Audio Backend + +******************************************************************************/ +#ifdef MA_HAS_WEBAUDIO +#include + +static ma_bool32 ma_is_capture_supported__webaudio() +{ + return EM_ASM_INT({ + return (navigator.mediaDevices !== undefined && navigator.mediaDevices.getUserMedia !== undefined); + }, 0) != 0; /* Must pass in a dummy argument for C99 compatibility. */ +} + +#ifdef __cplusplus +extern "C" { +#endif +void EMSCRIPTEN_KEEPALIVE ma_device_process_pcm_frames_capture__webaudio(ma_device* pDevice, int frameCount, float* pFrames) +{ + ma_device_handle_backend_data_callback(pDevice, NULL, pFrames, (ma_uint32)frameCount); +} + +void EMSCRIPTEN_KEEPALIVE ma_device_process_pcm_frames_playback__webaudio(ma_device* pDevice, int frameCount, float* pFrames) +{ + ma_device_handle_backend_data_callback(pDevice, pFrames, NULL, (ma_uint32)frameCount); +} +#ifdef __cplusplus +} +#endif + +static ma_result ma_context_enumerate_devices__webaudio(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_bool32 cbResult = MA_TRUE; + + MA_ASSERT(pContext != NULL); + MA_ASSERT(callback != NULL); + + /* Only supporting default devices for now. */ + + /* Playback. */ + if (cbResult) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + deviceInfo.isDefault = MA_TRUE; /* Only supporting default devices. */ + cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData); + } + + /* Capture. */ + if (cbResult) { + if (ma_is_capture_supported__webaudio()) { + ma_device_info deviceInfo; + MA_ZERO_OBJECT(&deviceInfo); + ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + deviceInfo.isDefault = MA_TRUE; /* Only supporting default devices. */ + cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_context_get_device_info__webaudio(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_device_info* pDeviceInfo) +{ + MA_ASSERT(pContext != NULL); + + if (deviceType == ma_device_type_capture && !ma_is_capture_supported__webaudio()) { + return MA_NO_DEVICE; + } + + MA_ZERO_MEMORY(pDeviceInfo->id.webaudio, sizeof(pDeviceInfo->id.webaudio)); + + /* Only supporting default devices for now. */ + (void)pDeviceID; + if (deviceType == ma_device_type_playback) { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } + + /* Only supporting default devices. */ + pDeviceInfo->isDefault = MA_TRUE; + + /* Web Audio can support any number of channels and sample rates. It only supports f32 formats, however. */ + pDeviceInfo->nativeDataFormats[0].flags = 0; + pDeviceInfo->nativeDataFormats[0].format = ma_format_unknown; + pDeviceInfo->nativeDataFormats[0].channels = 0; /* All channels are supported. */ + pDeviceInfo->nativeDataFormats[0].sampleRate = EM_ASM_INT({ + try { + var temp = new (window.AudioContext || window.webkitAudioContext)(); + var sampleRate = temp.sampleRate; + temp.close(); + return sampleRate; + } catch(e) { + return 0; + } + }, 0); /* Must pass in a dummy argument for C99 compatibility. */ + + if (pDeviceInfo->nativeDataFormats[0].sampleRate == 0) { + return MA_NO_DEVICE; + } + + pDeviceInfo->nativeDataFormatCount = 1; + + return MA_SUCCESS; +} + + +static void ma_device_uninit_by_index__webaudio(ma_device* pDevice, ma_device_type deviceType, int deviceIndex) +{ + MA_ASSERT(pDevice != NULL); + + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + + /* Make sure all nodes are disconnected and marked for collection. */ + if (device.scriptNode !== undefined) { + device.scriptNode.onaudioprocess = function(e) {}; /* We want to reset the callback to ensure it doesn't get called after AudioContext.close() has returned. Shouldn't happen since we're disconnecting, but just to be safe... */ + device.scriptNode.disconnect(); + device.scriptNode = undefined; + } + if (device.streamNode !== undefined) { + device.streamNode.disconnect(); + device.streamNode = undefined; + } + + /* + Stop the device. I think there is a chance the callback could get fired after calling this, hence why we want + to clear the callback before closing. + */ + device.webaudio.close(); + device.webaudio = undefined; + + /* Can't forget to free the intermediary buffer. This is the buffer that's shared between JavaScript and C. */ + if (device.intermediaryBuffer !== undefined) { + Module._free(device.intermediaryBuffer); + device.intermediaryBuffer = undefined; + device.intermediaryBufferView = undefined; + device.intermediaryBufferSizeInBytes = undefined; + } + + /* Make sure the device is untracked so the slot can be reused later. */ + miniaudio.untrack_device_by_index($0); + }, deviceIndex, deviceType); +} + +static ma_result ma_device_uninit__webaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma_device_uninit_by_index__webaudio(pDevice, ma_device_type_capture, pDevice->webaudio.indexCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_device_uninit_by_index__webaudio(pDevice, ma_device_type_playback, pDevice->webaudio.indexPlayback); + } + + return MA_SUCCESS; +} + +static ma_uint32 ma_calculate_period_size_in_frames_from_descriptor__webaudio(const ma_device_descriptor* pDescriptor, ma_uint32 nativeSampleRate, ma_performance_profile performanceProfile) +{ + /* + There have been reports of the default buffer size being too small on some browsers. There have been reports of the default buffer + size being too small on some browsers. If we're using default buffer size, we'll make sure the period size is a big biffer than our + standard defaults. + */ + ma_uint32 periodSizeInFrames; + + if (pDescriptor->periodSizeInFrames == 0) { + if (pDescriptor->periodSizeInMilliseconds == 0) { + if (performanceProfile == ma_performance_profile_low_latency) { + periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(33, nativeSampleRate); /* 1 frame @ 30 FPS */ + } else { + periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(333, nativeSampleRate); + } + } else { + periodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(pDescriptor->periodSizeInMilliseconds, nativeSampleRate); + } + } else { + periodSizeInFrames = pDescriptor->periodSizeInFrames; + } + + /* The size of the buffer must be a power of 2 and between 256 and 16384. */ + if (periodSizeInFrames < 256) { + periodSizeInFrames = 256; + } else if (periodSizeInFrames > 16384) { + periodSizeInFrames = 16384; + } else { + periodSizeInFrames = ma_next_power_of_2(periodSizeInFrames); + } + + return periodSizeInFrames; +} + +static ma_result ma_device_init_by_type__webaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptor, ma_device_type deviceType) +{ + int deviceIndex; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_uint32 periodSizeInFrames; + + MA_ASSERT(pDevice != NULL); + MA_ASSERT(pConfig != NULL); + MA_ASSERT(deviceType != ma_device_type_duplex); + + if (deviceType == ma_device_type_capture && !ma_is_capture_supported__webaudio()) { + return MA_NO_DEVICE; + } + + /* We're going to calculate some stuff in C just to simplify the JS code. */ + channels = (pDescriptor->channels > 0) ? pDescriptor->channels : MA_DEFAULT_CHANNELS; + sampleRate = (pDescriptor->sampleRate > 0) ? pDescriptor->sampleRate : MA_DEFAULT_SAMPLE_RATE; + periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__webaudio(pDescriptor, sampleRate, pConfig->performanceProfile); + + + /* We create the device on the JavaScript side and reference it using an index. We use this to make it possible to reference the device between JavaScript and C. */ + deviceIndex = EM_ASM_INT({ + var channels = $0; + var sampleRate = $1; + var bufferSize = $2; /* In PCM frames. */ + var isCapture = $3; + var pDevice = $4; + + if (typeof(miniaudio) === 'undefined') { + return -1; /* Context not initialized. */ + } + + var device = {}; + + /* The AudioContext must be created in a suspended state. */ + device.webaudio = new (window.AudioContext || window.webkitAudioContext)({sampleRate:sampleRate}); + device.webaudio.suspend(); + device.state = 1; /* MA_STATE_STOPPED */ + + /* + We need an intermediary buffer which we use for JavaScript and C interop. This buffer stores interleaved f32 PCM data. Because it's passed between + JavaScript and C it needs to be allocated and freed using Module._malloc() and Module._free(). + */ + device.intermediaryBufferSizeInBytes = channels * bufferSize * 4; + device.intermediaryBuffer = Module._malloc(device.intermediaryBufferSizeInBytes); + device.intermediaryBufferView = new Float32Array(Module.HEAPF32.buffer, device.intermediaryBuffer, device.intermediaryBufferSizeInBytes); + + /* + Both playback and capture devices use a ScriptProcessorNode for performing per-sample operations. + + ScriptProcessorNode is actually deprecated so this is likely to be temporary. The way this works for playback is very simple. You just set a callback + that's periodically fired, just like a normal audio callback function. But apparently this design is "flawed" and is now deprecated in favour of + something called AudioWorklets which _forces_ you to load a _separate_ .js file at run time... nice... Hopefully ScriptProcessorNode will continue to + work for years to come, but this may need to change to use AudioSourceBufferNode instead, which I think is what Emscripten uses for it's built-in SDL + implementation. I'll be avoiding that insane AudioWorklet API like the plague... + + For capture it is a bit unintuitive. We use the ScriptProccessorNode _only_ to get the raw PCM data. It is connected to an AudioContext just like the + playback case, however we just output silence to the AudioContext instead of passing any real data. It would make more sense to me to use the + MediaRecorder API, but unfortunately you need to specify a MIME time (Opus, Vorbis, etc.) for the binary blob that's returned to the client, but I've + been unable to figure out how to get this as raw PCM. The closest I can think is to use the MIME type for WAV files and just parse it, but I don't know + how well this would work. Although ScriptProccessorNode is deprecated, in practice it seems to have pretty good browser support so I'm leaving it like + this for now. If anyone knows how I could get raw PCM data using the MediaRecorder API please let me know! + */ + device.scriptNode = device.webaudio.createScriptProcessor(bufferSize, channels, channels); + + if (isCapture) { + device.scriptNode.onaudioprocess = function(e) { + if (device.intermediaryBuffer === undefined) { + return; /* This means the device has been uninitialized. */ + } + + if(device.intermediaryBufferView.length == 0) { + /* Recreate intermediaryBufferView when losing reference to the underlying buffer, probably due to emscripten resizing heap. */ + device.intermediaryBufferView = new Float32Array(Module.HEAPF32.buffer, device.intermediaryBuffer, device.intermediaryBufferSizeInBytes); + } + + /* Make sure silence it output to the AudioContext destination. Not doing this will cause sound to come out of the speakers! */ + for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { + e.outputBuffer.getChannelData(iChannel).fill(0.0); + } + + /* There are some situations where we may want to send silence to the client. */ + var sendSilence = false; + if (device.streamNode === undefined) { + sendSilence = true; + } + + /* Sanity check. This will never happen, right? */ + if (e.inputBuffer.numberOfChannels != channels) { + console.log("Capture: Channel count mismatch. " + e.inputBufer.numberOfChannels + " != " + channels + ". Sending silence."); + sendSilence = true; + } + + /* This looped design guards against the situation where e.inputBuffer is a different size to the original buffer size. Should never happen in practice. */ + var totalFramesProcessed = 0; + while (totalFramesProcessed < e.inputBuffer.length) { + var framesRemaining = e.inputBuffer.length - totalFramesProcessed; + var framesToProcess = framesRemaining; + if (framesToProcess > (device.intermediaryBufferSizeInBytes/channels/4)) { + framesToProcess = (device.intermediaryBufferSizeInBytes/channels/4); + } + + /* We need to do the reverse of the playback case. We need to interleave the input data and copy it into the intermediary buffer. Then we send it to the client. */ + if (sendSilence) { + device.intermediaryBufferView.fill(0.0); + } else { + for (var iFrame = 0; iFrame < framesToProcess; ++iFrame) { + for (var iChannel = 0; iChannel < e.inputBuffer.numberOfChannels; ++iChannel) { + device.intermediaryBufferView[iFrame*channels + iChannel] = e.inputBuffer.getChannelData(iChannel)[totalFramesProcessed + iFrame]; + } + } + } + + /* Send data to the client from our intermediary buffer. */ + ccall("ma_device_process_pcm_frames_capture__webaudio", "undefined", ["number", "number", "number"], [pDevice, framesToProcess, device.intermediaryBuffer]); + + totalFramesProcessed += framesToProcess; + } + }; + + navigator.mediaDevices.getUserMedia({audio:true, video:false}) + .then(function(stream) { + device.streamNode = device.webaudio.createMediaStreamSource(stream); + device.streamNode.connect(device.scriptNode); + device.scriptNode.connect(device.webaudio.destination); + }) + .catch(function(error) { + /* I think this should output silence... */ + device.scriptNode.connect(device.webaudio.destination); + }); + } else { + device.scriptNode.onaudioprocess = function(e) { + if (device.intermediaryBuffer === undefined) { + return; /* This means the device has been uninitialized. */ + } + + if(device.intermediaryBufferView.length == 0) { + /* Recreate intermediaryBufferView when losing reference to the underlying buffer, probably due to emscripten resizing heap. */ + device.intermediaryBufferView = new Float32Array(Module.HEAPF32.buffer, device.intermediaryBuffer, device.intermediaryBufferSizeInBytes); + } + + var outputSilence = false; + + /* Sanity check. This will never happen, right? */ + if (e.outputBuffer.numberOfChannels != channels) { + console.log("Playback: Channel count mismatch. " + e.outputBufer.numberOfChannels + " != " + channels + ". Outputting silence."); + outputSilence = true; + return; + } + + /* This looped design guards against the situation where e.outputBuffer is a different size to the original buffer size. Should never happen in practice. */ + var totalFramesProcessed = 0; + while (totalFramesProcessed < e.outputBuffer.length) { + var framesRemaining = e.outputBuffer.length - totalFramesProcessed; + var framesToProcess = framesRemaining; + if (framesToProcess > (device.intermediaryBufferSizeInBytes/channels/4)) { + framesToProcess = (device.intermediaryBufferSizeInBytes/channels/4); + } + + /* Read data from the client into our intermediary buffer. */ + ccall("ma_device_process_pcm_frames_playback__webaudio", "undefined", ["number", "number", "number"], [pDevice, framesToProcess, device.intermediaryBuffer]); + + /* At this point we'll have data in our intermediary buffer which we now need to deinterleave and copy over to the output buffers. */ + if (outputSilence) { + for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { + e.outputBuffer.getChannelData(iChannel).fill(0.0); + } + } else { + for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { + for (var iFrame = 0; iFrame < framesToProcess; ++iFrame) { + e.outputBuffer.getChannelData(iChannel)[totalFramesProcessed + iFrame] = device.intermediaryBufferView[iFrame*channels + iChannel]; + } + } + } + + totalFramesProcessed += framesToProcess; + } + }; + + device.scriptNode.connect(device.webaudio.destination); + } + + return miniaudio.track_device(device); + }, channels, sampleRate, periodSizeInFrames, deviceType == ma_device_type_capture, pDevice); + + if (deviceIndex < 0) { + return MA_FAILED_TO_OPEN_BACKEND_DEVICE; + } + + if (deviceType == ma_device_type_capture) { + pDevice->webaudio.indexCapture = deviceIndex; + } else { + pDevice->webaudio.indexPlayback = deviceIndex; + } + + pDescriptor->format = ma_format_f32; + pDescriptor->channels = channels; + ma_get_standard_channel_map(ma_standard_channel_map_webaudio, pDescriptor->channels, pDescriptor->channelMap); + pDescriptor->sampleRate = EM_ASM_INT({ return miniaudio.get_device_by_index($0).webaudio.sampleRate; }, deviceIndex); + pDescriptor->periodSizeInFrames = periodSizeInFrames; + pDescriptor->periodCount = 1; + + return MA_SUCCESS; +} + +static ma_result ma_device_init__webaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) +{ + ma_result result; + + if (pConfig->deviceType == ma_device_type_loopback) { + return MA_DEVICE_TYPE_NOT_SUPPORTED; + } + + /* No exclusive mode with Web Audio. */ + if (((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pDescriptorPlayback->shareMode == ma_share_mode_exclusive) || + ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pDescriptorCapture->shareMode == ma_share_mode_exclusive)) { + return MA_SHARE_MODE_NOT_SUPPORTED; + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + result = ma_device_init_by_type__webaudio(pDevice, pConfig, pDescriptorCapture, ma_device_type_capture); + if (result != MA_SUCCESS) { + return result; + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + result = ma_device_init_by_type__webaudio(pDevice, pConfig, pDescriptorPlayback, ma_device_type_playback); + if (result != MA_SUCCESS) { + if (pConfig->deviceType == ma_device_type_duplex) { + ma_device_uninit_by_index__webaudio(pDevice, ma_device_type_capture, pDevice->webaudio.indexCapture); + } + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_device_start__webaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + device.webaudio.resume(); + device.state = 2; /* MA_STATE_STARTED */ + }, pDevice->webaudio.indexCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + device.webaudio.resume(); + device.state = 2; /* MA_STATE_STARTED */ + }, pDevice->webaudio.indexPlayback); + } + + return MA_SUCCESS; +} + +static ma_result ma_device_stop__webaudio(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + /* + From the WebAudio API documentation for AudioContext.suspend(): + + Suspends the progression of AudioContext's currentTime, allows any current context processing blocks that are already processed to be played to the + destination, and then allows the system to release its claim on audio hardware. + + I read this to mean that "any current context processing blocks" are processed by suspend() - i.e. They they are drained. We therefore shouldn't need to + do any kind of explicit draining. + */ + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + device.webaudio.suspend(); + device.state = 1; /* MA_STATE_STOPPED */ + }, pDevice->webaudio.indexCapture); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + device.webaudio.suspend(); + device.state = 1; /* MA_STATE_STOPPED */ + }, pDevice->webaudio.indexPlayback); + } + + ma_stop_proc onStop = pDevice->onStop; + if (onStop) { + onStop(pDevice); + } + + return MA_SUCCESS; +} + +static ma_result ma_context_uninit__webaudio(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + MA_ASSERT(pContext->backend == ma_backend_webaudio); + + /* Nothing needs to be done here. */ + (void)pContext; + + return MA_SUCCESS; +} + +static ma_result ma_context_init__webaudio(ma_context* pContext, const ma_context_config* pConfig, ma_backend_callbacks* pCallbacks) +{ + int resultFromJS; + + MA_ASSERT(pContext != NULL); + + (void)pConfig; /* Unused. */ + + /* Here is where our global JavaScript object is initialized. */ + resultFromJS = EM_ASM_INT({ + if ((window.AudioContext || window.webkitAudioContext) === undefined) { + return 0; /* Web Audio not supported. */ + } + + if (typeof(miniaudio) === 'undefined') { + miniaudio = {}; + miniaudio.devices = []; /* Device cache for mapping devices to indexes for JavaScript/C interop. */ + + miniaudio.track_device = function(device) { + /* Try inserting into a free slot first. */ + for (var iDevice = 0; iDevice < miniaudio.devices.length; ++iDevice) { + if (miniaudio.devices[iDevice] == null) { + miniaudio.devices[iDevice] = device; + return iDevice; + } + } + + /* Getting here means there is no empty slots in the array so we just push to the end. */ + miniaudio.devices.push(device); + return miniaudio.devices.length - 1; + }; + + miniaudio.untrack_device_by_index = function(deviceIndex) { + /* We just set the device's slot to null. The slot will get reused in the next call to ma_track_device. */ + miniaudio.devices[deviceIndex] = null; + + /* Trim the array if possible. */ + while (miniaudio.devices.length > 0) { + if (miniaudio.devices[miniaudio.devices.length-1] == null) { + miniaudio.devices.pop(); + } else { + break; + } + } + }; + + miniaudio.untrack_device = function(device) { + for (var iDevice = 0; iDevice < miniaudio.devices.length; ++iDevice) { + if (miniaudio.devices[iDevice] == device) { + return miniaudio.untrack_device_by_index(iDevice); + } + } + }; + + miniaudio.get_device_by_index = function(deviceIndex) { + return miniaudio.devices[deviceIndex]; + }; + + miniaudio.unlock_event_types = (function(){ + return ['touchstart', 'touchend', 'click']; + })(); + + miniaudio.unlock = function() { + for(var i = 0; i < miniaudio.devices.length; ++i) { + var device = miniaudio.devices[i]; + if (device != null && device.webaudio != null && device.state === 2 /* MA_STATE_STARTED */) { + device.webaudio.resume(); + } + } + miniaudio.unlock_event_types.map(function(event_type) { + document.removeEventListener(event_type, miniaudio.unlock, true); + }); + }; + + miniaudio.unlock_event_types.map(function(event_type) { + document.addEventListener(event_type, miniaudio.unlock, true); + }); + } + + return 1; + }, 0); /* Must pass in a dummy argument for C99 compatibility. */ + + if (resultFromJS != 1) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pCallbacks->onContextInit = ma_context_init__webaudio; + pCallbacks->onContextUninit = ma_context_uninit__webaudio; + pCallbacks->onContextEnumerateDevices = ma_context_enumerate_devices__webaudio; + pCallbacks->onContextGetDeviceInfo = ma_context_get_device_info__webaudio; + pCallbacks->onDeviceInit = ma_device_init__webaudio; + pCallbacks->onDeviceUninit = ma_device_uninit__webaudio; + pCallbacks->onDeviceStart = ma_device_start__webaudio; + pCallbacks->onDeviceStop = ma_device_stop__webaudio; + pCallbacks->onDeviceRead = NULL; /* Not needed because WebAudio is asynchronous. */ + pCallbacks->onDeviceWrite = NULL; /* Not needed because WebAudio is asynchronous. */ + pCallbacks->onDeviceDataLoop = NULL; /* Not needed because WebAudio is asynchronous. */ + + return MA_SUCCESS; +} +#endif /* Web Audio */ + + + +static ma_bool32 ma__is_channel_map_valid(const ma_channel* channelMap, ma_uint32 channels) +{ + /* A blank channel map should be allowed, in which case it should use an appropriate default which will depend on context. */ + if (channelMap[0] != MA_CHANNEL_NONE) { + ma_uint32 iChannel; + + if (channels == 0 || channels > MA_MAX_CHANNELS) { + return MA_FALSE; /* Channel count out of range. */ + } + + /* A channel cannot be present in the channel map more than once. */ + for (iChannel = 0; iChannel < channels; ++iChannel) { + ma_uint32 jChannel; + for (jChannel = iChannel + 1; jChannel < channels; ++jChannel) { + if (channelMap[iChannel] == channelMap[jChannel]) { + return MA_FALSE; + } + } + } + } + + return MA_TRUE; +} + + +static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type deviceType) +{ + ma_result result; + + MA_ASSERT(pDevice != NULL); + + if (deviceType == ma_device_type_capture || deviceType == ma_device_type_duplex || deviceType == ma_device_type_loopback) { + if (pDevice->capture.format == ma_format_unknown) { + pDevice->capture.format = pDevice->capture.internalFormat; + } + if (pDevice->capture.channels == 0) { + pDevice->capture.channels = pDevice->capture.internalChannels; + } + if (pDevice->capture.channelMap[0] == MA_CHANNEL_NONE) { + MA_ASSERT(pDevice->capture.channels <= MA_MAX_CHANNELS); + if (pDevice->capture.internalChannels == pDevice->capture.channels) { + ma_channel_map_copy(pDevice->capture.channelMap, pDevice->capture.internalChannelMap, pDevice->capture.channels); + } else { + if (pDevice->capture.channelMixMode == ma_channel_mix_mode_simple) { + ma_channel_map_init_blank(pDevice->capture.channels, pDevice->capture.channelMap); + } else { + ma_get_standard_channel_map(ma_standard_channel_map_default, pDevice->capture.channels, pDevice->capture.channelMap); + } + } + } + } + + if (deviceType == ma_device_type_playback || deviceType == ma_device_type_duplex) { + if (pDevice->playback.format == ma_format_unknown) { + pDevice->playback.format = pDevice->playback.internalFormat; + } + if (pDevice->playback.channels == 0) { + pDevice->playback.channels = pDevice->playback.internalChannels; + } + if (pDevice->playback.channelMap[0] == MA_CHANNEL_NONE) { + MA_ASSERT(pDevice->playback.channels <= MA_MAX_CHANNELS); + if (pDevice->playback.internalChannels == pDevice->playback.channels) { + ma_channel_map_copy(pDevice->playback.channelMap, pDevice->playback.internalChannelMap, pDevice->playback.channels); + } else { + if (pDevice->playback.channelMixMode == ma_channel_mix_mode_simple) { + ma_channel_map_init_blank(pDevice->playback.channels, pDevice->playback.channelMap); + } else { + ma_get_standard_channel_map(ma_standard_channel_map_default, pDevice->playback.channels, pDevice->playback.channelMap); + } + } + } + } + + if (pDevice->sampleRate == 0) { + if (deviceType == ma_device_type_capture || deviceType == ma_device_type_duplex || deviceType == ma_device_type_loopback) { + pDevice->sampleRate = pDevice->capture.internalSampleRate; + } else { + pDevice->sampleRate = pDevice->playback.internalSampleRate; + } + } + + /* Data converters. */ + if (deviceType == ma_device_type_capture || deviceType == ma_device_type_duplex || deviceType == ma_device_type_loopback) { + /* Converting from internal device format to client format. */ + ma_data_converter_config converterConfig = ma_data_converter_config_init_default(); + converterConfig.formatIn = pDevice->capture.internalFormat; + converterConfig.channelsIn = pDevice->capture.internalChannels; + converterConfig.sampleRateIn = pDevice->capture.internalSampleRate; + ma_channel_map_copy(converterConfig.channelMapIn, pDevice->capture.internalChannelMap, ma_min(pDevice->capture.internalChannels, MA_MAX_CHANNELS)); + converterConfig.formatOut = pDevice->capture.format; + converterConfig.channelsOut = pDevice->capture.channels; + converterConfig.sampleRateOut = pDevice->sampleRate; + ma_channel_map_copy(converterConfig.channelMapOut, pDevice->capture.channelMap, ma_min(pDevice->capture.channels, MA_MAX_CHANNELS)); + converterConfig.channelMixMode = pDevice->capture.channelMixMode; + converterConfig.resampling.allowDynamicSampleRate = MA_FALSE; + converterConfig.resampling.algorithm = pDevice->resampling.algorithm; + converterConfig.resampling.linear.lpfOrder = pDevice->resampling.linear.lpfOrder; + converterConfig.resampling.speex.quality = pDevice->resampling.speex.quality; + + result = ma_data_converter_init(&converterConfig, &pDevice->capture.converter); + if (result != MA_SUCCESS) { + return result; + } + } + + if (deviceType == ma_device_type_playback || deviceType == ma_device_type_duplex) { + /* Converting from client format to device format. */ + ma_data_converter_config converterConfig = ma_data_converter_config_init_default(); + converterConfig.formatIn = pDevice->playback.format; + converterConfig.channelsIn = pDevice->playback.channels; + converterConfig.sampleRateIn = pDevice->sampleRate; + ma_channel_map_copy(converterConfig.channelMapIn, pDevice->playback.channelMap, ma_min(pDevice->playback.channels, MA_MAX_CHANNELS)); + converterConfig.formatOut = pDevice->playback.internalFormat; + converterConfig.channelsOut = pDevice->playback.internalChannels; + converterConfig.sampleRateOut = pDevice->playback.internalSampleRate; + ma_channel_map_copy(converterConfig.channelMapOut, pDevice->playback.internalChannelMap, ma_min(pDevice->playback.internalChannels, MA_MAX_CHANNELS)); + converterConfig.channelMixMode = pDevice->playback.channelMixMode; + converterConfig.resampling.allowDynamicSampleRate = MA_FALSE; + converterConfig.resampling.algorithm = pDevice->resampling.algorithm; + converterConfig.resampling.linear.lpfOrder = pDevice->resampling.linear.lpfOrder; + converterConfig.resampling.speex.quality = pDevice->resampling.speex.quality; + + result = ma_data_converter_init(&converterConfig, &pDevice->playback.converter); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + + +static ma_thread_result MA_THREADCALL ma_worker_thread(void* pData) +{ + ma_device* pDevice = (ma_device*)pData; + MA_ASSERT(pDevice != NULL); + +#ifdef MA_WIN32 + ma_CoInitializeEx(pDevice->pContext, NULL, MA_COINIT_VALUE); +#endif + + /* + When the device is being initialized it's initial state is set to MA_STATE_UNINITIALIZED. Before returning from + ma_device_init(), the state needs to be set to something valid. In miniaudio the device's default state immediately + after initialization is stopped, so therefore we need to mark the device as such. miniaudio will wait on the worker + thread to signal an event to know when the worker thread is ready for action. + */ + ma_device__set_state(pDevice, MA_STATE_STOPPED); + ma_event_signal(&pDevice->stopEvent); + + for (;;) { /* <-- This loop just keeps the thread alive. The main audio loop is inside. */ + ma_stop_proc onStop; + + /* We wait on an event to know when something has requested that the device be started and the main loop entered. */ + ma_event_wait(&pDevice->wakeupEvent); + + /* Default result code. */ + pDevice->workResult = MA_SUCCESS; + + /* If the reason for the wake up is that we are terminating, just break from the loop. */ + if (ma_device_get_state(pDevice) == MA_STATE_UNINITIALIZED) { + break; + } + + /* + Getting to this point means the device is wanting to get started. The function that has requested that the device + be started will be waiting on an event (pDevice->startEvent) which means we need to make sure we signal the event + in both the success and error case. It's important that the state of the device is set _before_ signaling the event. + */ + MA_ASSERT(ma_device_get_state(pDevice) == MA_STATE_STARTING); + + /* If the device has a start callback, start it now. */ + if (pDevice->pContext->callbacks.onDeviceStart != NULL) { + ma_result result = pDevice->pContext->callbacks.onDeviceStart(pDevice); + if (result != MA_SUCCESS) { + pDevice->workResult = result; /* Failed to start the device. */ + } + } + + /* Make sure the state is set appropriately. */ + ma_device__set_state(pDevice, MA_STATE_STARTED); + ma_event_signal(&pDevice->startEvent); + + if (pDevice->pContext->callbacks.onDeviceDataLoop != NULL) { + pDevice->pContext->callbacks.onDeviceDataLoop(pDevice); + } else { + /* The backend is not using a custom main loop implementation, so now fall back to the blocking read-write implementation. */ + ma_device_audio_thread__default_read_write(pDevice); + } + + /* + Getting here means we have broken from the main loop which happens the application has requested that device be stopped. Note that this + may have actually already happened above if the device was lost and miniaudio has attempted to re-initialize the device. In this case we + don't want to be doing this a second time. + */ + if (ma_device_get_state(pDevice) != MA_STATE_UNINITIALIZED) { + if (pDevice->pContext->callbacks.onDeviceStop != NULL) { + pDevice->pContext->callbacks.onDeviceStop(pDevice); + } + } + + /* After the device has stopped, make sure an event is posted. */ + onStop = pDevice->onStop; + if (onStop) { + onStop(pDevice); + } + + /* + A function somewhere is waiting for the device to have stopped for real so we need to signal an event to allow it to continue. Note that + it's possible that the device has been uninitialized which means we need to _not_ change the status to stopped. We cannot go from an + uninitialized state to stopped state. + */ + if (ma_device_get_state(pDevice) != MA_STATE_UNINITIALIZED) { + ma_device__set_state(pDevice, MA_STATE_STOPPED); + ma_event_signal(&pDevice->stopEvent); + } + } + + /* Make sure we aren't continuously waiting on a stop event. */ + ma_event_signal(&pDevice->stopEvent); /* <-- Is this still needed? */ + +#ifdef MA_WIN32 + ma_CoUninitialize(pDevice->pContext); +#endif + + return (ma_thread_result)0; +} + + +/* Helper for determining whether or not the given device is initialized. */ +static ma_bool32 ma_device__is_initialized(ma_device* pDevice) +{ + if (pDevice == NULL) { + return MA_FALSE; + } + + return ma_device_get_state(pDevice) != MA_STATE_UNINITIALIZED; +} + + +#ifdef MA_WIN32 +static ma_result ma_context_uninit_backend_apis__win32(ma_context* pContext) +{ + ma_CoUninitialize(pContext); + ma_dlclose(pContext, pContext->win32.hUser32DLL); + ma_dlclose(pContext, pContext->win32.hOle32DLL); + ma_dlclose(pContext, pContext->win32.hAdvapi32DLL); + + return MA_SUCCESS; +} + +static ma_result ma_context_init_backend_apis__win32(ma_context* pContext) +{ +#ifdef MA_WIN32_DESKTOP + /* Ole32.dll */ + pContext->win32.hOle32DLL = ma_dlopen(pContext, "ole32.dll"); + if (pContext->win32.hOle32DLL == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pContext->win32.CoInitializeEx = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoInitializeEx"); + pContext->win32.CoUninitialize = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoUninitialize"); + pContext->win32.CoCreateInstance = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoCreateInstance"); + pContext->win32.CoTaskMemFree = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoTaskMemFree"); + pContext->win32.PropVariantClear = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "PropVariantClear"); + pContext->win32.StringFromGUID2 = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "StringFromGUID2"); + + + /* User32.dll */ + pContext->win32.hUser32DLL = ma_dlopen(pContext, "user32.dll"); + if (pContext->win32.hUser32DLL == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pContext->win32.GetForegroundWindow = (ma_proc)ma_dlsym(pContext, pContext->win32.hUser32DLL, "GetForegroundWindow"); + pContext->win32.GetDesktopWindow = (ma_proc)ma_dlsym(pContext, pContext->win32.hUser32DLL, "GetDesktopWindow"); + + + /* Advapi32.dll */ + pContext->win32.hAdvapi32DLL = ma_dlopen(pContext, "advapi32.dll"); + if (pContext->win32.hAdvapi32DLL == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pContext->win32.RegOpenKeyExA = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegOpenKeyExA"); + pContext->win32.RegCloseKey = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegCloseKey"); + pContext->win32.RegQueryValueExA = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegQueryValueExA"); +#endif + + ma_CoInitializeEx(pContext, NULL, MA_COINIT_VALUE); + return MA_SUCCESS; +} +#else +static ma_result ma_context_uninit_backend_apis__nix(ma_context* pContext) +{ +#if defined(MA_USE_RUNTIME_LINKING_FOR_PTHREAD) && !defined(MA_NO_RUNTIME_LINKING) + ma_dlclose(pContext, pContext->posix.pthreadSO); +#else + (void)pContext; +#endif + + return MA_SUCCESS; +} + +static ma_result ma_context_init_backend_apis__nix(ma_context* pContext) +{ + /* pthread */ +#if defined(MA_USE_RUNTIME_LINKING_FOR_PTHREAD) && !defined(MA_NO_RUNTIME_LINKING) + const char* libpthreadFileNames[] = { + "libpthread.so", + "libpthread.so.0", + "libpthread.dylib" + }; + size_t i; + + for (i = 0; i < sizeof(libpthreadFileNames) / sizeof(libpthreadFileNames[0]); ++i) { + pContext->posix.pthreadSO = ma_dlopen(pContext, libpthreadFileNames[i]); + if (pContext->posix.pthreadSO != NULL) { + break; + } + } + + if (pContext->posix.pthreadSO == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pContext->posix.pthread_create = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_create"); + pContext->posix.pthread_join = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_join"); + pContext->posix.pthread_mutex_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_init"); + pContext->posix.pthread_mutex_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_destroy"); + pContext->posix.pthread_mutex_lock = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_lock"); + pContext->posix.pthread_mutex_unlock = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_unlock"); + pContext->posix.pthread_cond_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_init"); + pContext->posix.pthread_cond_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_destroy"); + pContext->posix.pthread_cond_wait = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_wait"); + pContext->posix.pthread_cond_signal = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_signal"); + pContext->posix.pthread_attr_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_init"); + pContext->posix.pthread_attr_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_destroy"); + pContext->posix.pthread_attr_setschedpolicy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_setschedpolicy"); + pContext->posix.pthread_attr_getschedparam = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_getschedparam"); + pContext->posix.pthread_attr_setschedparam = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_setschedparam"); +#else + pContext->posix.pthread_create = (ma_proc)pthread_create; + pContext->posix.pthread_join = (ma_proc)pthread_join; + pContext->posix.pthread_mutex_init = (ma_proc)pthread_mutex_init; + pContext->posix.pthread_mutex_destroy = (ma_proc)pthread_mutex_destroy; + pContext->posix.pthread_mutex_lock = (ma_proc)pthread_mutex_lock; + pContext->posix.pthread_mutex_unlock = (ma_proc)pthread_mutex_unlock; + pContext->posix.pthread_cond_init = (ma_proc)pthread_cond_init; + pContext->posix.pthread_cond_destroy = (ma_proc)pthread_cond_destroy; + pContext->posix.pthread_cond_wait = (ma_proc)pthread_cond_wait; + pContext->posix.pthread_cond_signal = (ma_proc)pthread_cond_signal; + pContext->posix.pthread_attr_init = (ma_proc)pthread_attr_init; + pContext->posix.pthread_attr_destroy = (ma_proc)pthread_attr_destroy; +#if !defined(__EMSCRIPTEN__) + pContext->posix.pthread_attr_setschedpolicy = (ma_proc)pthread_attr_setschedpolicy; + pContext->posix.pthread_attr_getschedparam = (ma_proc)pthread_attr_getschedparam; + pContext->posix.pthread_attr_setschedparam = (ma_proc)pthread_attr_setschedparam; +#endif +#endif + + return MA_SUCCESS; +} +#endif + +static ma_result ma_context_init_backend_apis(ma_context* pContext) +{ + ma_result result; +#ifdef MA_WIN32 + result = ma_context_init_backend_apis__win32(pContext); +#else + result = ma_context_init_backend_apis__nix(pContext); +#endif + + return result; +} + +static ma_result ma_context_uninit_backend_apis(ma_context* pContext) +{ + ma_result result; +#ifdef MA_WIN32 + result = ma_context_uninit_backend_apis__win32(pContext); +#else + result = ma_context_uninit_backend_apis__nix(pContext); +#endif + + return result; +} + + +static ma_bool32 ma_context_is_backend_asynchronous(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + + if (pContext->callbacks.onDeviceRead == NULL && pContext->callbacks.onDeviceWrite == NULL) { + if (pContext->callbacks.onDeviceDataLoop == NULL) { + return MA_TRUE; + } else { + return MA_FALSE; + } + } else { + return MA_FALSE; + } +} + + +MA_API ma_context_config ma_context_config_init() +{ + ma_context_config config; + MA_ZERO_OBJECT(&config); + + return config; +} + +MA_API ma_result ma_context_init(const ma_backend backends[], ma_uint32 backendCount, const ma_context_config* pConfig, ma_context* pContext) +{ + ma_result result; + ma_context_config defaultConfig; + ma_backend defaultBackends[ma_backend_null+1]; + ma_uint32 iBackend; + ma_backend* pBackendsToIterate; + ma_uint32 backendsToIterateCount; + + if (pContext == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pContext); + + /* Always make sure the config is set first to ensure properties are available as soon as possible. */ + if (pConfig == NULL) { + defaultConfig = ma_context_config_init(); + pConfig = &defaultConfig; + } + + pContext->logCallback = pConfig->logCallback; + pContext->threadPriority = pConfig->threadPriority; + pContext->threadStackSize = pConfig->threadStackSize; + pContext->pUserData = pConfig->pUserData; + + result = ma_allocation_callbacks_init_copy(&pContext->allocationCallbacks, &pConfig->allocationCallbacks); + if (result != MA_SUCCESS) { + return result; + } + + /* Backend APIs need to be initialized first. This is where external libraries will be loaded and linked. */ + result = ma_context_init_backend_apis(pContext); + if (result != MA_SUCCESS) { + return result; + } + + for (iBackend = 0; iBackend <= ma_backend_null; ++iBackend) { + defaultBackends[iBackend] = (ma_backend)iBackend; + } + + pBackendsToIterate = (ma_backend*)backends; + backendsToIterateCount = backendCount; + if (pBackendsToIterate == NULL) { + pBackendsToIterate = (ma_backend*)defaultBackends; + backendsToIterateCount = ma_countof(defaultBackends); + } + + MA_ASSERT(pBackendsToIterate != NULL); + + for (iBackend = 0; iBackend < backendsToIterateCount; iBackend += 1) { + ma_backend backend = pBackendsToIterate[iBackend]; + + /* Make sure all callbacks are reset so we don't accidentally drag in any from previously failed initialization attempts. */ + MA_ZERO_OBJECT(&pContext->callbacks); + + /* These backends are using the new callback system. */ + switch (backend) { + #ifdef MA_HAS_WASAPI + case ma_backend_wasapi: + { + pContext->callbacks.onContextInit = ma_context_init__wasapi; + } break; + #endif + #ifdef MA_HAS_DSOUND + case ma_backend_dsound: + { + pContext->callbacks.onContextInit = ma_context_init__dsound; + } break; + #endif + #ifdef MA_HAS_WINMM + case ma_backend_winmm: + { + pContext->callbacks.onContextInit = ma_context_init__winmm; + } break; + #endif + #ifdef MA_HAS_COREAUDIO + case ma_backend_coreaudio: + { + pContext->callbacks.onContextInit = ma_context_init__coreaudio; + } break; + #endif + #ifdef MA_HAS_SNDIO + case ma_backend_sndio: + { + pContext->callbacks.onContextInit = ma_context_init__sndio; + } break; + #endif + #ifdef MA_HAS_AUDIO4 + case ma_backend_audio4: + { + pContext->callbacks.onContextInit = ma_context_init__audio4; + } break; + #endif + #ifdef MA_HAS_OSS + case ma_backend_oss: + { + pContext->callbacks.onContextInit = ma_context_init__oss; + } break; + #endif + #ifdef MA_HAS_PULSEAUDIO + case ma_backend_pulseaudio: + { + pContext->callbacks.onContextInit = ma_context_init__pulse; + } break; + #endif + #ifdef MA_HAS_ALSA + case ma_backend_alsa: + { + pContext->callbacks.onContextInit = ma_context_init__alsa; + } break; + #endif + #ifdef MA_HAS_JACK + case ma_backend_jack: + { + pContext->callbacks.onContextInit = ma_context_init__jack; + } break; + #endif + #ifdef MA_HAS_AAUDIO + case ma_backend_aaudio: + { + pContext->callbacks.onContextInit = ma_context_init__aaudio; + } break; + #endif + #ifdef MA_HAS_OPENSL + case ma_backend_opensl: + { + pContext->callbacks.onContextInit = ma_context_init__opensl; + } break; + #endif + #ifdef MA_HAS_WEBAUDIO + case ma_backend_webaudio: + { + pContext->callbacks.onContextInit = ma_context_init__webaudio; + } break; + #endif + #ifdef MA_HAS_CUSTOM + case ma_backend_custom: + { + /* Slightly different logic for custom backends. Custom backends can optionally set all of their callbacks in the config. */ + pContext->callbacks = pConfig->custom; + } break; + #endif + #ifdef MA_HAS_NULL + case ma_backend_null: + { + pContext->callbacks.onContextInit = ma_context_init__null; + } break; + #endif + + default: break; + } + + if (pContext->callbacks.onContextInit != NULL) { + ma_post_log_messagef(pContext, NULL, MA_LOG_LEVEL_VERBOSE, "Attempting to initialize %s backend...", ma_get_backend_name(backend)); + result = pContext->callbacks.onContextInit(pContext, pConfig, &pContext->callbacks); + } else { + result = MA_NO_BACKEND; + } + + /* If this iteration was successful, return. */ + if (result == MA_SUCCESS) { + result = ma_mutex_init(&pContext->deviceEnumLock); + if (result != MA_SUCCESS) { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_WARNING, "Failed to initialize mutex for device enumeration. ma_context_get_devices() is not thread safe.", result); + } + + result = ma_mutex_init(&pContext->deviceInfoLock); + if (result != MA_SUCCESS) { + ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_WARNING, "Failed to initialize mutex for device info retrieval. ma_context_get_device_info() is not thread safe.", result); + } + + #ifdef MA_DEBUG_OUTPUT + { + printf("[miniaudio] Endian: %s\n", ma_is_little_endian() ? "LE" : "BE"); + printf("[miniaudio] SSE2: %s\n", ma_has_sse2() ? "YES" : "NO"); + printf("[miniaudio] AVX2: %s\n", ma_has_avx2() ? "YES" : "NO"); + printf("[miniaudio] AVX512F: %s\n", ma_has_avx512f() ? "YES" : "NO"); + printf("[miniaudio] NEON: %s\n", ma_has_neon() ? "YES" : "NO"); + } + #endif + + pContext->backend = backend; + return result; + } else { + ma_post_log_messagef(pContext, NULL, MA_LOG_LEVEL_VERBOSE, "Failed to initialize %s backend.", ma_get_backend_name(backend)); + } + } + + /* If we get here it means an error occurred. */ + MA_ZERO_OBJECT(pContext); /* Safety. */ + return MA_NO_BACKEND; +} + +MA_API ma_result ma_context_uninit(ma_context* pContext) +{ + if (pContext == NULL) { + return MA_INVALID_ARGS; + } + + if (pContext->callbacks.onContextUninit != NULL) { + pContext->callbacks.onContextUninit(pContext); + } + + ma_mutex_uninit(&pContext->deviceEnumLock); + ma_mutex_uninit(&pContext->deviceInfoLock); + ma__free_from_callbacks(pContext->pDeviceInfos, &pContext->allocationCallbacks); + ma_context_uninit_backend_apis(pContext); + + return MA_SUCCESS; +} + +MA_API size_t ma_context_sizeof() +{ + return sizeof(ma_context); +} + + +MA_API ma_result ma_context_enumerate_devices(ma_context* pContext, ma_enum_devices_callback_proc callback, void* pUserData) +{ + ma_result result; + + if (pContext == NULL || callback == NULL) { + return MA_INVALID_ARGS; + } + + if (pContext->callbacks.onContextEnumerateDevices == NULL) { + return MA_INVALID_OPERATION; + } + + ma_mutex_lock(&pContext->deviceEnumLock); + { + result = pContext->callbacks.onContextEnumerateDevices(pContext, callback, pUserData); + } + ma_mutex_unlock(&pContext->deviceEnumLock); + + return result; +} + + +static ma_bool32 ma_context_get_devices__enum_callback(ma_context* pContext, ma_device_type deviceType, const ma_device_info* pInfo, void* pUserData) +{ + /* + We need to insert the device info into our main internal buffer. Where it goes depends on the device type. If it's a capture device + it's just appended to the end. If it's a playback device it's inserted just before the first capture device. + */ + + /* + First make sure we have room. Since the number of devices we add to the list is usually relatively small I've decided to use a + simple fixed size increment for buffer expansion. + */ + const ma_uint32 bufferExpansionCount = 2; + const ma_uint32 totalDeviceInfoCount = pContext->playbackDeviceInfoCount + pContext->captureDeviceInfoCount; + + if (totalDeviceInfoCount >= pContext->deviceInfoCapacity) { + ma_uint32 oldCapacity = pContext->deviceInfoCapacity; + ma_uint32 newCapacity = oldCapacity + bufferExpansionCount; + ma_device_info* pNewInfos = (ma_device_info*)ma__realloc_from_callbacks(pContext->pDeviceInfos, sizeof(*pContext->pDeviceInfos)*newCapacity, sizeof(*pContext->pDeviceInfos)*oldCapacity, &pContext->allocationCallbacks); + if (pNewInfos == NULL) { + return MA_FALSE; /* Out of memory. */ + } + + pContext->pDeviceInfos = pNewInfos; + pContext->deviceInfoCapacity = newCapacity; + } + + if (deviceType == ma_device_type_playback) { + /* Playback. Insert just before the first capture device. */ + + /* The first thing to do is move all of the capture devices down a slot. */ + ma_uint32 iFirstCaptureDevice = pContext->playbackDeviceInfoCount; + size_t iCaptureDevice; + for (iCaptureDevice = totalDeviceInfoCount; iCaptureDevice > iFirstCaptureDevice; --iCaptureDevice) { + pContext->pDeviceInfos[iCaptureDevice] = pContext->pDeviceInfos[iCaptureDevice-1]; + } + + /* Now just insert where the first capture device was before moving it down a slot. */ + pContext->pDeviceInfos[iFirstCaptureDevice] = *pInfo; + pContext->playbackDeviceInfoCount += 1; + } else { + /* Capture. Insert at the end. */ + pContext->pDeviceInfos[totalDeviceInfoCount] = *pInfo; + pContext->captureDeviceInfoCount += 1; + } + + (void)pUserData; + return MA_TRUE; +} + +MA_API ma_result ma_context_get_devices(ma_context* pContext, ma_device_info** ppPlaybackDeviceInfos, ma_uint32* pPlaybackDeviceCount, ma_device_info** ppCaptureDeviceInfos, ma_uint32* pCaptureDeviceCount) +{ + ma_result result; + + /* Safety. */ + if (ppPlaybackDeviceInfos != NULL) *ppPlaybackDeviceInfos = NULL; + if (pPlaybackDeviceCount != NULL) *pPlaybackDeviceCount = 0; + if (ppCaptureDeviceInfos != NULL) *ppCaptureDeviceInfos = NULL; + if (pCaptureDeviceCount != NULL) *pCaptureDeviceCount = 0; + + if (pContext == NULL) { + return MA_INVALID_ARGS; + } + + if (pContext->callbacks.onContextEnumerateDevices == NULL) { + return MA_INVALID_OPERATION; + } + + /* Note that we don't use ma_context_enumerate_devices() here because we want to do locking at a higher level. */ + ma_mutex_lock(&pContext->deviceEnumLock); + { + /* Reset everything first. */ + pContext->playbackDeviceInfoCount = 0; + pContext->captureDeviceInfoCount = 0; + + /* Now enumerate over available devices. */ + result = pContext->callbacks.onContextEnumerateDevices(pContext, ma_context_get_devices__enum_callback, NULL); + if (result == MA_SUCCESS) { + /* Playback devices. */ + if (ppPlaybackDeviceInfos != NULL) { + *ppPlaybackDeviceInfos = pContext->pDeviceInfos; + } + if (pPlaybackDeviceCount != NULL) { + *pPlaybackDeviceCount = pContext->playbackDeviceInfoCount; + } + + /* Capture devices. */ + if (ppCaptureDeviceInfos != NULL) { + *ppCaptureDeviceInfos = pContext->pDeviceInfos + pContext->playbackDeviceInfoCount; /* Capture devices come after playback devices. */ + } + if (pCaptureDeviceCount != NULL) { + *pCaptureDeviceCount = pContext->captureDeviceInfoCount; + } + } + } + ma_mutex_unlock(&pContext->deviceEnumLock); + + return result; +} + +MA_API ma_result ma_context_get_device_info(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_share_mode shareMode, ma_device_info* pDeviceInfo) +{ + ma_result result; + ma_device_info deviceInfo; + + (void)shareMode; /* Unused. This parameter will be removed in version 0.11. */ + + /* NOTE: Do not clear pDeviceInfo on entry. The reason is the pDeviceID may actually point to pDeviceInfo->id which will break things. */ + if (pContext == NULL || pDeviceInfo == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(&deviceInfo); + + /* Help the backend out by copying over the device ID if we have one. */ + if (pDeviceID != NULL) { + MA_COPY_MEMORY(&deviceInfo.id, pDeviceID, sizeof(*pDeviceID)); + } + + if (pContext->callbacks.onContextGetDeviceInfo == NULL) { + return MA_INVALID_OPERATION; + } + + ma_mutex_lock(&pContext->deviceInfoLock); + { + result = pContext->callbacks.onContextGetDeviceInfo(pContext, deviceType, pDeviceID, &deviceInfo); + } + ma_mutex_unlock(&pContext->deviceInfoLock); + + /* + If the backend is using the new device info system, do a pass to fill out the old settings for backwards compatibility. This will be removed in + the future when all backends have implemented the new device info system. + */ + if (deviceInfo.nativeDataFormatCount > 0) { + ma_uint32 iNativeFormat; + ma_uint32 iSampleFormat; + + deviceInfo.minChannels = 0xFFFFFFFF; + deviceInfo.maxChannels = 0; + deviceInfo.minSampleRate = 0xFFFFFFFF; + deviceInfo.maxSampleRate = 0; + + for (iNativeFormat = 0; iNativeFormat < deviceInfo.nativeDataFormatCount; iNativeFormat += 1) { + /* Formats. */ + if (deviceInfo.nativeDataFormats[iNativeFormat].format == ma_format_unknown) { + /* All formats are supported. */ + deviceInfo.formats[0] = ma_format_u8; + deviceInfo.formats[1] = ma_format_s16; + deviceInfo.formats[2] = ma_format_s24; + deviceInfo.formats[3] = ma_format_s32; + deviceInfo.formats[4] = ma_format_f32; + deviceInfo.formatCount = 5; + } else { + /* Make sure the format isn't already in the list. If so, skip. */ + ma_bool32 alreadyExists = MA_FALSE; + for (iSampleFormat = 0; iSampleFormat < deviceInfo.formatCount; iSampleFormat += 1) { + if (deviceInfo.formats[iSampleFormat] == deviceInfo.nativeDataFormats[iNativeFormat].format) { + alreadyExists = MA_TRUE; + break; + } + } + + if (!alreadyExists) { + deviceInfo.formats[deviceInfo.formatCount++] = deviceInfo.nativeDataFormats[iNativeFormat].format; + } + } + + /* Channels. */ + if (deviceInfo.nativeDataFormats[iNativeFormat].channels == 0) { + /* All channels supported. */ + deviceInfo.minChannels = MA_MIN_CHANNELS; + deviceInfo.maxChannels = MA_MAX_CHANNELS; + } else { + if (deviceInfo.minChannels > deviceInfo.nativeDataFormats[iNativeFormat].channels) { + deviceInfo.minChannels = deviceInfo.nativeDataFormats[iNativeFormat].channels; + } + if (deviceInfo.maxChannels < deviceInfo.nativeDataFormats[iNativeFormat].channels) { + deviceInfo.maxChannels = deviceInfo.nativeDataFormats[iNativeFormat].channels; + } + } + + /* Sample rate. */ + if (deviceInfo.nativeDataFormats[iNativeFormat].sampleRate == 0) { + /* All sample rates supported. */ + deviceInfo.minSampleRate = (ma_uint32)ma_standard_sample_rate_min; + deviceInfo.maxSampleRate = (ma_uint32)ma_standard_sample_rate_max; + } else { + if (deviceInfo.minSampleRate > deviceInfo.nativeDataFormats[iNativeFormat].sampleRate) { + deviceInfo.minSampleRate = deviceInfo.nativeDataFormats[iNativeFormat].sampleRate; + } + if (deviceInfo.maxSampleRate < deviceInfo.nativeDataFormats[iNativeFormat].sampleRate) { + deviceInfo.maxSampleRate = deviceInfo.nativeDataFormats[iNativeFormat].sampleRate; + } + } + } + } + + + /* Clamp ranges. */ + deviceInfo.minChannels = ma_max(deviceInfo.minChannels, MA_MIN_CHANNELS); + deviceInfo.maxChannels = ma_min(deviceInfo.maxChannels, MA_MAX_CHANNELS); + deviceInfo.minSampleRate = ma_max(deviceInfo.minSampleRate, (ma_uint32)ma_standard_sample_rate_min); + deviceInfo.maxSampleRate = ma_min(deviceInfo.maxSampleRate, (ma_uint32)ma_standard_sample_rate_max); + + *pDeviceInfo = deviceInfo; + return result; +} + +MA_API ma_bool32 ma_context_is_loopback_supported(ma_context* pContext) +{ + if (pContext == NULL) { + return MA_FALSE; + } + + return ma_is_loopback_supported(pContext->backend); +} + + +MA_API ma_device_config ma_device_config_init(ma_device_type deviceType) +{ + ma_device_config config; + MA_ZERO_OBJECT(&config); + config.deviceType = deviceType; + + /* Resampling defaults. We must never use the Speex backend by default because it uses licensed third party code. */ + config.resampling.algorithm = ma_resample_algorithm_linear; + config.resampling.linear.lpfOrder = ma_min(MA_DEFAULT_RESAMPLER_LPF_ORDER, MA_MAX_FILTER_ORDER); + config.resampling.speex.quality = 3; + + return config; +} + +MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pConfig, ma_device* pDevice) +{ + ma_result result; + ma_device_descriptor descriptorPlayback; + ma_device_descriptor descriptorCapture; + + /* The context can be null, in which case we self-manage it. */ + if (pContext == NULL) { + return ma_device_init_ex(NULL, 0, NULL, pConfig, pDevice); + } + + if (pDevice == NULL) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "ma_device_init() called with invalid arguments (pDevice == NULL).", MA_INVALID_ARGS); + } + + MA_ZERO_OBJECT(pDevice); + + if (pConfig == NULL) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "ma_device_init() called with invalid arguments (pConfig == NULL).", MA_INVALID_ARGS); + } + + + /* Check that we have our callbacks defined. */ + if (pContext->callbacks.onDeviceInit == NULL) { + return MA_INVALID_OPERATION; + } + + + /* Basic config validation. */ + if (pConfig->deviceType != ma_device_type_playback && pConfig->deviceType != ma_device_type_capture && pConfig->deviceType != ma_device_type_duplex && pConfig->deviceType != ma_device_type_loopback) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "ma_device_init() called with an invalid config. Device type is invalid. Make sure the device type has been set in the config.", MA_INVALID_DEVICE_CONFIG); + } + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { + if (pConfig->capture.channels > MA_MAX_CHANNELS) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "ma_device_init() called with an invalid config. Capture channel count cannot exceed 32.", MA_INVALID_DEVICE_CONFIG); + } + if (!ma__is_channel_map_valid(pConfig->capture.channelMap, pConfig->capture.channels)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "ma_device_init() called with invalid config. Capture channel map is invalid.", MA_INVALID_DEVICE_CONFIG); + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex || pConfig->deviceType == ma_device_type_loopback) { + if (pConfig->playback.channels > MA_MAX_CHANNELS) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "ma_device_init() called with an invalid config. Playback channel count cannot exceed 32.", MA_INVALID_DEVICE_CONFIG); + } + if (!ma__is_channel_map_valid(pConfig->playback.channelMap, pConfig->playback.channels)) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "ma_device_init() called with invalid config. Playback channel map is invalid.", MA_INVALID_DEVICE_CONFIG); + } + } + + pDevice->pContext = pContext; + + /* Set the user data and log callback ASAP to ensure it is available for the entire initialization process. */ + pDevice->pUserData = pConfig->pUserData; + pDevice->onData = pConfig->dataCallback; + pDevice->onStop = pConfig->stopCallback; + + if (((ma_uintptr)pDevice % sizeof(pDevice)) != 0) { + if (pContext->logCallback) { + pContext->logCallback(pContext, pDevice, MA_LOG_LEVEL_WARNING, "WARNING: ma_device_init() called for a device that is not properly aligned. Thread safety is not supported."); + } + } + + if (pConfig->playback.pDeviceID != NULL) { + MA_COPY_MEMORY(&pDevice->playback.id, pConfig->playback.pDeviceID, sizeof(pDevice->playback.id)); + } + + if (pConfig->capture.pDeviceID != NULL) { + MA_COPY_MEMORY(&pDevice->capture.id, pConfig->capture.pDeviceID, sizeof(pDevice->capture.id)); + } + + pDevice->noPreZeroedOutputBuffer = pConfig->noPreZeroedOutputBuffer; + pDevice->noClip = pConfig->noClip; + pDevice->masterVolumeFactor = 1; + + pDevice->type = pConfig->deviceType; + pDevice->sampleRate = pConfig->sampleRate; + pDevice->resampling.algorithm = pConfig->resampling.algorithm; + pDevice->resampling.linear.lpfOrder = pConfig->resampling.linear.lpfOrder; + pDevice->resampling.speex.quality = pConfig->resampling.speex.quality; + + pDevice->capture.shareMode = pConfig->capture.shareMode; + pDevice->capture.format = pConfig->capture.format; + pDevice->capture.channels = pConfig->capture.channels; + ma_channel_map_copy(pDevice->capture.channelMap, pConfig->capture.channelMap, pConfig->capture.channels); + pDevice->capture.channelMixMode = pConfig->capture.channelMixMode; + + pDevice->playback.shareMode = pConfig->playback.shareMode; + pDevice->playback.format = pConfig->playback.format; + pDevice->playback.channels = pConfig->playback.channels; + ma_channel_map_copy(pDevice->playback.channelMap, pConfig->playback.channelMap, pConfig->playback.channels); + pDevice->playback.channelMixMode = pConfig->playback.channelMixMode; + + + result = ma_mutex_init(&pDevice->startStopLock); + if (result != MA_SUCCESS) { + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "Failed to create mutex.", result); + } + + /* + When the device is started, the worker thread is the one that does the actual startup of the backend device. We + use a semaphore to wait for the background thread to finish the work. The same applies for stopping the device. + + Each of these semaphores is released internally by the worker thread when the work is completed. The start + semaphore is also used to wake up the worker thread. + */ + result = ma_event_init(&pDevice->wakeupEvent); + if (result != MA_SUCCESS) { + ma_mutex_uninit(&pDevice->startStopLock); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "Failed to create worker thread wakeup event.", result); + } + + result = ma_event_init(&pDevice->startEvent); + if (result != MA_SUCCESS) { + ma_event_uninit(&pDevice->wakeupEvent); + ma_mutex_uninit(&pDevice->startStopLock); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "Failed to create worker thread start event.", result); + } + + result = ma_event_init(&pDevice->stopEvent); + if (result != MA_SUCCESS) { + ma_event_uninit(&pDevice->startEvent); + ma_event_uninit(&pDevice->wakeupEvent); + ma_mutex_uninit(&pDevice->startStopLock); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "Failed to create worker thread stop event.", result); + } + + + MA_ZERO_OBJECT(&descriptorPlayback); + descriptorPlayback.pDeviceID = pConfig->playback.pDeviceID; + descriptorPlayback.shareMode = pConfig->playback.shareMode; + descriptorPlayback.format = pConfig->playback.format; + descriptorPlayback.channels = pConfig->playback.channels; + descriptorPlayback.sampleRate = pConfig->sampleRate; + ma_channel_map_copy(descriptorPlayback.channelMap, pConfig->playback.channelMap, pConfig->playback.channels); + descriptorPlayback.periodSizeInFrames = pConfig->periodSizeInFrames; + descriptorPlayback.periodSizeInMilliseconds = pConfig->periodSizeInMilliseconds; + descriptorPlayback.periodCount = pConfig->periods; + + if (descriptorPlayback.periodCount == 0) { + descriptorPlayback.periodCount = MA_DEFAULT_PERIODS; + } + + + MA_ZERO_OBJECT(&descriptorCapture); + descriptorCapture.pDeviceID = pConfig->capture.pDeviceID; + descriptorCapture.shareMode = pConfig->capture.shareMode; + descriptorCapture.format = pConfig->capture.format; + descriptorCapture.channels = pConfig->capture.channels; + descriptorCapture.sampleRate = pConfig->sampleRate; + ma_channel_map_copy(descriptorCapture.channelMap, pConfig->capture.channelMap, pConfig->capture.channels); + descriptorCapture.periodSizeInFrames = pConfig->periodSizeInFrames; + descriptorCapture.periodSizeInMilliseconds = pConfig->periodSizeInMilliseconds; + descriptorCapture.periodCount = pConfig->periods; + + if (descriptorCapture.periodCount == 0) { + descriptorCapture.periodCount = MA_DEFAULT_PERIODS; + } + + + result = pContext->callbacks.onDeviceInit(pDevice, pConfig, &descriptorPlayback, &descriptorCapture); + if (result != MA_SUCCESS) { + ma_event_uninit(&pDevice->startEvent); + ma_event_uninit(&pDevice->wakeupEvent); + ma_mutex_uninit(&pDevice->startStopLock); + return result; + } + + + /* + On output the descriptors will contain the *actual* data format of the device. We need this to know how to convert the data between + the requested format and the internal format. + */ + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex || pConfig->deviceType == ma_device_type_loopback) { + if (!ma_device_descriptor_is_valid(&descriptorCapture)) { + ma_device_uninit(pDevice); + return MA_INVALID_ARGS; + } + + pDevice->capture.internalFormat = descriptorCapture.format; + pDevice->capture.internalChannels = descriptorCapture.channels; + pDevice->capture.internalSampleRate = descriptorCapture.sampleRate; + ma_channel_map_copy(pDevice->capture.internalChannelMap, descriptorCapture.channelMap, descriptorCapture.channels); + pDevice->capture.internalPeriodSizeInFrames = descriptorCapture.periodSizeInFrames; + pDevice->capture.internalPeriods = descriptorCapture.periodCount; + + if (pDevice->capture.internalPeriodSizeInFrames == 0) { + pDevice->capture.internalPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(descriptorCapture.periodSizeInMilliseconds, descriptorCapture.sampleRate); + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + if (!ma_device_descriptor_is_valid(&descriptorPlayback)) { + ma_device_uninit(pDevice); + return MA_INVALID_ARGS; + } + + pDevice->playback.internalFormat = descriptorPlayback.format; + pDevice->playback.internalChannels = descriptorPlayback.channels; + pDevice->playback.internalSampleRate = descriptorPlayback.sampleRate; + ma_channel_map_copy(pDevice->playback.internalChannelMap, descriptorPlayback.channelMap, descriptorPlayback.channels); + pDevice->playback.internalPeriodSizeInFrames = descriptorPlayback.periodSizeInFrames; + pDevice->playback.internalPeriods = descriptorPlayback.periodCount; + + if (pDevice->playback.internalPeriodSizeInFrames == 0) { + pDevice->playback.internalPeriodSizeInFrames = ma_calculate_buffer_size_in_frames_from_milliseconds(descriptorPlayback.periodSizeInMilliseconds, descriptorPlayback.sampleRate); + } + } + + + /* + The name of the device can be retrieved from device info. This may be temporary and replaced with a `ma_device_get_info(pDevice, deviceType)` instead. + For loopback devices, we need to retrieve the name of the playback device. + */ + { + ma_device_info deviceInfo; + + if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex || pConfig->deviceType == ma_device_type_loopback) { + result = ma_context_get_device_info(pContext, (pConfig->deviceType == ma_device_type_loopback) ? ma_device_type_playback : ma_device_type_capture, descriptorCapture.pDeviceID, descriptorCapture.shareMode, &deviceInfo); + if (result == MA_SUCCESS) { + ma_strncpy_s(pDevice->capture.name, sizeof(pDevice->capture.name), deviceInfo.name, (size_t)-1); + } else { + /* We failed to retrieve the device info. Fall back to a default name. */ + if (descriptorCapture.pDeviceID == NULL) { + ma_strncpy_s(pDevice->capture.name, sizeof(pDevice->capture.name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDevice->capture.name, sizeof(pDevice->capture.name), "Capture Device", (size_t)-1); + } + } + } + + if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { + result = ma_context_get_device_info(pContext, ma_device_type_playback, descriptorPlayback.pDeviceID, descriptorPlayback.shareMode, &deviceInfo); + if (result == MA_SUCCESS) { + ma_strncpy_s(pDevice->playback.name, sizeof(pDevice->playback.name), deviceInfo.name, (size_t)-1); + } else { + /* We failed to retrieve the device info. Fall back to a default name. */ + if (descriptorPlayback.pDeviceID == NULL) { + ma_strncpy_s(pDevice->playback.name, sizeof(pDevice->playback.name), MA_DEFAULT_PLAYBACK_DEVICE_NAME, (size_t)-1); + } else { + ma_strncpy_s(pDevice->playback.name, sizeof(pDevice->playback.name), "Playback Device", (size_t)-1); + } + } + } + } + + + ma_device__post_init_setup(pDevice, pConfig->deviceType); + + + /* Some backends don't require the worker thread. */ + if (!ma_context_is_backend_asynchronous(pContext)) { + /* The worker thread. */ + result = ma_thread_create(&pDevice->thread, pContext->threadPriority, pContext->threadStackSize, ma_worker_thread, pDevice); + if (result != MA_SUCCESS) { + ma_device_uninit(pDevice); + return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "Failed to create worker thread.", result); + } + + /* Wait for the worker thread to put the device into it's stopped state for real. */ + ma_event_wait(&pDevice->stopEvent); + MA_ASSERT(ma_device_get_state(pDevice) == MA_STATE_STOPPED); + } else { + /* + If the backend is asynchronous and the device is duplex, we'll need an intermediary ring buffer. Note that this needs to be done + after ma_device__post_init_setup(). + */ + if (ma_context_is_backend_asynchronous(pContext)) { + if (pConfig->deviceType == ma_device_type_duplex) { + result = ma_duplex_rb_init(pDevice->capture.format, pDevice->capture.channels, pDevice->sampleRate, pDevice->capture.internalSampleRate, pDevice->capture.internalPeriodSizeInFrames, &pDevice->pContext->allocationCallbacks, &pDevice->duplexRB); + if (result != MA_SUCCESS) { + ma_device_uninit(pDevice); + return result; + } + } + } + + ma_device__set_state(pDevice, MA_STATE_STOPPED); + } + + + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, "[%s]", ma_get_backend_name(pDevice->pContext->backend)); + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " %s (%s)", pDevice->capture.name, "Capture"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Format: %s -> %s", ma_get_format_name(pDevice->capture.internalFormat), ma_get_format_name(pDevice->capture.format)); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Channels: %d -> %d", pDevice->capture.internalChannels, pDevice->capture.channels); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Sample Rate: %d -> %d", pDevice->capture.internalSampleRate, pDevice->sampleRate); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Buffer Size: %d*%d (%d)", pDevice->capture.internalPeriodSizeInFrames, pDevice->capture.internalPeriods, (pDevice->capture.internalPeriodSizeInFrames * pDevice->capture.internalPeriods)); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Conversion:"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Pre Format Conversion: %s", pDevice->capture.converter.hasPreFormatConversion ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Post Format Conversion: %s", pDevice->capture.converter.hasPostFormatConversion ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Channel Routing: %s", pDevice->capture.converter.hasChannelConverter ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Resampling: %s", pDevice->capture.converter.hasResampler ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Passthrough: %s", pDevice->capture.converter.isPassthrough ? "YES" : "NO"); + } + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " %s (%s)", pDevice->playback.name, "Playback"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Format: %s -> %s", ma_get_format_name(pDevice->playback.format), ma_get_format_name(pDevice->playback.internalFormat)); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Channels: %d -> %d", pDevice->playback.channels, pDevice->playback.internalChannels); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Sample Rate: %d -> %d", pDevice->sampleRate, pDevice->playback.internalSampleRate); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Buffer Size: %d*%d (%d)", pDevice->playback.internalPeriodSizeInFrames, pDevice->playback.internalPeriods, (pDevice->playback.internalPeriodSizeInFrames * pDevice->playback.internalPeriods)); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Conversion:"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Pre Format Conversion: %s", pDevice->playback.converter.hasPreFormatConversion ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Post Format Conversion: %s", pDevice->playback.converter.hasPostFormatConversion ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Channel Routing: %s", pDevice->playback.converter.hasChannelConverter ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Resampling: %s", pDevice->playback.converter.hasResampler ? "YES" : "NO"); + ma_post_log_messagef(pContext, pDevice, MA_LOG_LEVEL_INFO, " Passthrough: %s", pDevice->playback.converter.isPassthrough ? "YES" : "NO"); + } + + MA_ASSERT(ma_device_get_state(pDevice) == MA_STATE_STOPPED); + return MA_SUCCESS; +} + +MA_API ma_result ma_device_init_ex(const ma_backend backends[], ma_uint32 backendCount, const ma_context_config* pContextConfig, const ma_device_config* pConfig, ma_device* pDevice) +{ + ma_result result; + ma_context* pContext; + ma_backend defaultBackends[ma_backend_null+1]; + ma_uint32 iBackend; + ma_backend* pBackendsToIterate; + ma_uint32 backendsToIterateCount; + ma_allocation_callbacks allocationCallbacks; + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pContextConfig != NULL) { + result = ma_allocation_callbacks_init_copy(&allocationCallbacks, &pContextConfig->allocationCallbacks); + if (result != MA_SUCCESS) { + return result; + } + } else { + allocationCallbacks = ma_allocation_callbacks_init_default(); + } + + + pContext = (ma_context*)ma__malloc_from_callbacks(sizeof(*pContext), &allocationCallbacks); + if (pContext == NULL) { + return MA_OUT_OF_MEMORY; + } + + for (iBackend = 0; iBackend <= ma_backend_null; ++iBackend) { + defaultBackends[iBackend] = (ma_backend)iBackend; + } + + pBackendsToIterate = (ma_backend*)backends; + backendsToIterateCount = backendCount; + if (pBackendsToIterate == NULL) { + pBackendsToIterate = (ma_backend*)defaultBackends; + backendsToIterateCount = ma_countof(defaultBackends); + } + + result = MA_NO_BACKEND; + + for (iBackend = 0; iBackend < backendsToIterateCount; ++iBackend) { + result = ma_context_init(&pBackendsToIterate[iBackend], 1, pContextConfig, pContext); + if (result == MA_SUCCESS) { + result = ma_device_init(pContext, pConfig, pDevice); + if (result == MA_SUCCESS) { + break; /* Success. */ + } else { + ma_context_uninit(pContext); /* Failure. */ + } + } + } + + if (result != MA_SUCCESS) { + ma__free_from_callbacks(pContext, &allocationCallbacks); + return result; + } + + pDevice->isOwnerOfContext = MA_TRUE; + return result; +} + +MA_API void ma_device_uninit(ma_device* pDevice) +{ + if (!ma_device__is_initialized(pDevice)) { + return; + } + + /* Make sure the device is stopped first. The backends will probably handle this naturally, but I like to do it explicitly for my own sanity. */ + if (ma_device_is_started(pDevice)) { + ma_device_stop(pDevice); + } + + /* Putting the device into an uninitialized state will make the worker thread return. */ + ma_device__set_state(pDevice, MA_STATE_UNINITIALIZED); + + /* Wake up the worker thread and wait for it to properly terminate. */ + if (!ma_context_is_backend_asynchronous(pDevice->pContext)) { + ma_event_signal(&pDevice->wakeupEvent); + ma_thread_wait(&pDevice->thread); + } + + if (pDevice->pContext->callbacks.onDeviceUninit != NULL) { + pDevice->pContext->callbacks.onDeviceUninit(pDevice); + } + + + ma_event_uninit(&pDevice->stopEvent); + ma_event_uninit(&pDevice->startEvent); + ma_event_uninit(&pDevice->wakeupEvent); + ma_mutex_uninit(&pDevice->startStopLock); + + if (ma_context_is_backend_asynchronous(pDevice->pContext)) { + if (pDevice->type == ma_device_type_duplex) { + ma_duplex_rb_uninit(&pDevice->duplexRB); + } + } + + if (pDevice->isOwnerOfContext) { + ma_allocation_callbacks allocationCallbacks = pDevice->pContext->allocationCallbacks; + + ma_context_uninit(pDevice->pContext); + ma__free_from_callbacks(pDevice->pContext, &allocationCallbacks); + } + + MA_ZERO_OBJECT(pDevice); +} + +MA_API ma_result ma_device_start(ma_device* pDevice) +{ + ma_result result; + + if (pDevice == NULL) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "ma_device_start() called with invalid arguments (pDevice == NULL).", MA_INVALID_ARGS); + } + + if (ma_device_get_state(pDevice) == MA_STATE_UNINITIALIZED) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "ma_device_start() called for an uninitialized device.", MA_DEVICE_NOT_INITIALIZED); + } + + if (ma_device_get_state(pDevice) == MA_STATE_STARTED) { + return ma_post_error(pDevice, MA_LOG_LEVEL_WARNING, "ma_device_start() called when the device is already started.", MA_INVALID_OPERATION); /* Already started. Returning an error to let the application know because it probably means they're doing something wrong. */ + } + + ma_mutex_lock(&pDevice->startStopLock); + { + /* Starting and stopping are wrapped in a mutex which means we can assert that the device is in a stopped or paused state. */ + MA_ASSERT(ma_device_get_state(pDevice) == MA_STATE_STOPPED); + + ma_device__set_state(pDevice, MA_STATE_STARTING); + + /* Asynchronous backends need to be handled differently. */ + if (ma_context_is_backend_asynchronous(pDevice->pContext)) { + if (pDevice->pContext->callbacks.onDeviceStart != NULL) { + result = pDevice->pContext->callbacks.onDeviceStart(pDevice); + } else { + result = MA_INVALID_OPERATION; + } + + if (result == MA_SUCCESS) { + ma_device__set_state(pDevice, MA_STATE_STARTED); + } + } else { + /* + Synchronous backends are started by signaling an event that's being waited on in the worker thread. We first wake up the + thread and then wait for the start event. + */ + ma_event_signal(&pDevice->wakeupEvent); + + /* + Wait for the worker thread to finish starting the device. Note that the worker thread will be the one who puts the device + into the started state. Don't call ma_device__set_state() here. + */ + ma_event_wait(&pDevice->startEvent); + result = pDevice->workResult; + } + + /* We changed the state from stopped to started, so if we failed, make sure we put the state back to stopped. */ + if (result != MA_SUCCESS) { + ma_device__set_state(pDevice, MA_STATE_STOPPED); + } + } + ma_mutex_unlock(&pDevice->startStopLock); + + return result; +} + +MA_API ma_result ma_device_stop(ma_device* pDevice) +{ + ma_result result; + + if (pDevice == NULL) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "ma_device_stop() called with invalid arguments (pDevice == NULL).", MA_INVALID_ARGS); + } + + if (ma_device_get_state(pDevice) == MA_STATE_UNINITIALIZED) { + return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "ma_device_stop() called for an uninitialized device.", MA_DEVICE_NOT_INITIALIZED); + } + + if (ma_device_get_state(pDevice) == MA_STATE_STOPPED) { + return ma_post_error(pDevice, MA_LOG_LEVEL_WARNING, "ma_device_stop() called when the device is already stopped.", MA_INVALID_OPERATION); /* Already stopped. Returning an error to let the application know because it probably means they're doing something wrong. */ + } + + ma_mutex_lock(&pDevice->startStopLock); + { + /* Starting and stopping are wrapped in a mutex which means we can assert that the device is in a started or paused state. */ + MA_ASSERT(ma_device_get_state(pDevice) == MA_STATE_STARTED); + + ma_device__set_state(pDevice, MA_STATE_STOPPING); + + /* Asynchronous backends need to be handled differently. */ + if (ma_context_is_backend_asynchronous(pDevice->pContext)) { + /* Asynchronous backends must have a stop operation. */ + if (pDevice->pContext->callbacks.onDeviceStop != NULL) { + result = pDevice->pContext->callbacks.onDeviceStop(pDevice); + } else { + result = MA_INVALID_OPERATION; + } + + ma_device__set_state(pDevice, MA_STATE_STOPPED); + } else { + /* + Synchronous backends. The stop callback is always called from the worker thread. Do not call the stop callback here. If + the backend is implementing it's own audio thread loop we'll need to wake it up if required. Note that we need to make + sure the state of the device is *not* playing right now, which it shouldn't be since we set it above. This is super + important though, so I'm asserting it here as well for extra safety in case we accidentally change something later. + */ + MA_ASSERT(ma_device_get_state(pDevice) != MA_STATE_STARTED); + + if (pDevice->pContext->callbacks.onDeviceDataLoopWakeup != NULL) { + pDevice->pContext->callbacks.onDeviceDataLoopWakeup(pDevice); + } + + /* + We need to wait for the worker thread to become available for work before returning. Note that the worker thread will be + the one who puts the device into the stopped state. Don't call ma_device__set_state() here. + */ + ma_event_wait(&pDevice->stopEvent); + result = MA_SUCCESS; + } + } + ma_mutex_unlock(&pDevice->startStopLock); + + return result; +} + +MA_API ma_bool32 ma_device_is_started(const ma_device* pDevice) +{ + return ma_device_get_state(pDevice) == MA_STATE_STARTED; +} + +MA_API ma_uint32 ma_device_get_state(const ma_device* pDevice) +{ + if (pDevice == NULL) { + return MA_STATE_UNINITIALIZED; + } + + return c89atomic_load_32((ma_uint32*)&pDevice->state); /* Naughty cast to get rid of a const warning. */ +} + +MA_API ma_result ma_device_set_master_volume(ma_device* pDevice, float volume) +{ + if (pDevice == NULL) { + return MA_INVALID_ARGS; + } + + if (volume < 0.0f || volume > 1.0f) { + return MA_INVALID_ARGS; + } + + c89atomic_exchange_f32(&pDevice->masterVolumeFactor, volume); + + return MA_SUCCESS; +} + +MA_API ma_result ma_device_get_master_volume(ma_device* pDevice, float* pVolume) +{ + if (pVolume == NULL) { + return MA_INVALID_ARGS; + } + + if (pDevice == NULL) { + *pVolume = 0; + return MA_INVALID_ARGS; + } + + *pVolume = c89atomic_load_f32(&pDevice->masterVolumeFactor); + + return MA_SUCCESS; +} + +MA_API ma_result ma_device_set_master_gain_db(ma_device* pDevice, float gainDB) +{ + if (gainDB > 0) { + return MA_INVALID_ARGS; + } + + return ma_device_set_master_volume(pDevice, ma_gain_db_to_factor(gainDB)); +} + +MA_API ma_result ma_device_get_master_gain_db(ma_device* pDevice, float* pGainDB) +{ + float factor; + ma_result result; + + if (pGainDB == NULL) { + return MA_INVALID_ARGS; + } + + result = ma_device_get_master_volume(pDevice, &factor); + if (result != MA_SUCCESS) { + *pGainDB = 0; + return result; + } + + *pGainDB = ma_factor_to_gain_db(factor); + + return MA_SUCCESS; +} + + +MA_API ma_result ma_device_handle_backend_data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) +{ + if (pDevice == NULL) { + return MA_INVALID_ARGS; + } + + if (pOutput == NULL && pInput == NULL) { + return MA_INVALID_ARGS; + } + + if (pDevice->type == ma_device_type_duplex) { + if (pInput != NULL) { + ma_device__handle_duplex_callback_capture(pDevice, frameCount, pInput, &pDevice->duplexRB.rb); + } + + if (pOutput != NULL) { + ma_device__handle_duplex_callback_playback(pDevice, frameCount, pOutput, &pDevice->duplexRB.rb); + } + } else { + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_loopback) { + if (pInput == NULL) { + return MA_INVALID_ARGS; + } + + ma_device__send_frames_to_client(pDevice, frameCount, pInput); + } + + if (pDevice->type == ma_device_type_playback) { + if (pOutput == NULL) { + return MA_INVALID_ARGS; + } + + ma_device__read_frames_from_client(pDevice, frameCount, pOutput); + } + } + + return MA_SUCCESS; +} + +MA_API ma_uint32 ma_calculate_buffer_size_in_frames_from_descriptor(const ma_device_descriptor* pDescriptor, ma_uint32 nativeSampleRate, ma_performance_profile performanceProfile) +{ + if (pDescriptor == NULL) { + return 0; + } + + /* + We must have a non-0 native sample rate, but some backends don't allow retrieval of this at the + time when the size of the buffer needs to be determined. In this case we need to just take a best + guess and move on. We'll try using the sample rate in pDescriptor first. If that's not set we'll + just fall back to MA_DEFAULT_SAMPLE_RATE. + */ + if (nativeSampleRate == 0) { + nativeSampleRate = pDescriptor->sampleRate; + } + if (nativeSampleRate == 0) { + nativeSampleRate = MA_DEFAULT_SAMPLE_RATE; + } + + MA_ASSERT(nativeSampleRate != 0); + + if (pDescriptor->periodSizeInFrames == 0) { + if (pDescriptor->periodSizeInMilliseconds == 0) { + if (performanceProfile == ma_performance_profile_low_latency) { + return ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY, nativeSampleRate); + } else { + return ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE, nativeSampleRate); + } + } else { + return ma_calculate_buffer_size_in_frames_from_milliseconds(pDescriptor->periodSizeInMilliseconds, nativeSampleRate); + } + } else { + return pDescriptor->periodSizeInFrames; + } +} +#endif /* MA_NO_DEVICE_IO */ + + +MA_API ma_uint32 ma_scale_buffer_size(ma_uint32 baseBufferSize, float scale) +{ + return ma_max(1, (ma_uint32)(baseBufferSize*scale)); +} + +MA_API ma_uint32 ma_calculate_buffer_size_in_milliseconds_from_frames(ma_uint32 bufferSizeInFrames, ma_uint32 sampleRate) +{ + /* Prevent a division by zero. */ + if (sampleRate == 0) { + return 0; + } + + return bufferSizeInFrames*1000 / sampleRate; +} + +MA_API ma_uint32 ma_calculate_buffer_size_in_frames_from_milliseconds(ma_uint32 bufferSizeInMilliseconds, ma_uint32 sampleRate) +{ + /* Prevent a division by zero. */ + if (sampleRate == 0) { + return 0; + } + + return bufferSizeInMilliseconds*sampleRate / 1000; +} + +MA_API void ma_copy_pcm_frames(void* dst, const void* src, ma_uint64 frameCount, ma_format format, ma_uint32 channels) +{ + if (dst == src) { + return; /* No-op. */ + } + + ma_copy_memory_64(dst, src, frameCount * ma_get_bytes_per_frame(format, channels)); +} + +MA_API void ma_silence_pcm_frames(void* p, ma_uint64 frameCount, ma_format format, ma_uint32 channels) +{ + if (format == ma_format_u8) { + ma_uint64 sampleCount = frameCount * channels; + ma_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + ((ma_uint8*)p)[iSample] = 128; + } + } else { + ma_zero_memory_64(p, frameCount * ma_get_bytes_per_frame(format, channels)); + } +} + +MA_API void* ma_offset_pcm_frames_ptr(void* p, ma_uint64 offsetInFrames, ma_format format, ma_uint32 channels) +{ + return ma_offset_ptr(p, offsetInFrames * ma_get_bytes_per_frame(format, channels)); +} + +MA_API const void* ma_offset_pcm_frames_const_ptr(const void* p, ma_uint64 offsetInFrames, ma_format format, ma_uint32 channels) +{ + return ma_offset_ptr(p, offsetInFrames * ma_get_bytes_per_frame(format, channels)); +} + + +MA_API void ma_clip_samples_f32(float* p, ma_uint64 sampleCount) +{ + ma_uint32 iSample; + + /* TODO: Research a branchless SSE implementation. */ + for (iSample = 0; iSample < sampleCount; iSample += 1) { + p[iSample] = ma_clip_f32(p[iSample]); + } +} + + +MA_API void ma_copy_and_apply_volume_factor_u8(ma_uint8* pSamplesOut, const ma_uint8* pSamplesIn, ma_uint64 sampleCount, float factor) +{ + ma_uint64 iSample; + + if (pSamplesOut == NULL || pSamplesIn == NULL) { + return; + } + + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamplesOut[iSample] = (ma_uint8)(pSamplesIn[iSample] * factor); + } +} + +MA_API void ma_copy_and_apply_volume_factor_s16(ma_int16* pSamplesOut, const ma_int16* pSamplesIn, ma_uint64 sampleCount, float factor) +{ + ma_uint64 iSample; + + if (pSamplesOut == NULL || pSamplesIn == NULL) { + return; + } + + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamplesOut[iSample] = (ma_int16)(pSamplesIn[iSample] * factor); + } +} + +MA_API void ma_copy_and_apply_volume_factor_s24(void* pSamplesOut, const void* pSamplesIn, ma_uint64 sampleCount, float factor) +{ + ma_uint64 iSample; + ma_uint8* pSamplesOut8; + ma_uint8* pSamplesIn8; + + if (pSamplesOut == NULL || pSamplesIn == NULL) { + return; + } + + pSamplesOut8 = (ma_uint8*)pSamplesOut; + pSamplesIn8 = (ma_uint8*)pSamplesIn; + + for (iSample = 0; iSample < sampleCount; iSample += 1) { + ma_int32 sampleS32; + + sampleS32 = (ma_int32)(((ma_uint32)(pSamplesIn8[iSample*3+0]) << 8) | ((ma_uint32)(pSamplesIn8[iSample*3+1]) << 16) | ((ma_uint32)(pSamplesIn8[iSample*3+2])) << 24); + sampleS32 = (ma_int32)(sampleS32 * factor); + + pSamplesOut8[iSample*3+0] = (ma_uint8)(((ma_uint32)sampleS32 & 0x0000FF00) >> 8); + pSamplesOut8[iSample*3+1] = (ma_uint8)(((ma_uint32)sampleS32 & 0x00FF0000) >> 16); + pSamplesOut8[iSample*3+2] = (ma_uint8)(((ma_uint32)sampleS32 & 0xFF000000) >> 24); + } +} + +MA_API void ma_copy_and_apply_volume_factor_s32(ma_int32* pSamplesOut, const ma_int32* pSamplesIn, ma_uint64 sampleCount, float factor) +{ + ma_uint64 iSample; + + if (pSamplesOut == NULL || pSamplesIn == NULL) { + return; + } + + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamplesOut[iSample] = (ma_int32)(pSamplesIn[iSample] * factor); + } +} + +MA_API void ma_copy_and_apply_volume_factor_f32(float* pSamplesOut, const float* pSamplesIn, ma_uint64 sampleCount, float factor) +{ + ma_uint64 iSample; + + if (pSamplesOut == NULL || pSamplesIn == NULL) { + return; + } + + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamplesOut[iSample] = pSamplesIn[iSample] * factor; + } +} + +MA_API void ma_apply_volume_factor_u8(ma_uint8* pSamples, ma_uint64 sampleCount, float factor) +{ + ma_copy_and_apply_volume_factor_u8(pSamples, pSamples, sampleCount, factor); +} + +MA_API void ma_apply_volume_factor_s16(ma_int16* pSamples, ma_uint64 sampleCount, float factor) +{ + ma_copy_and_apply_volume_factor_s16(pSamples, pSamples, sampleCount, factor); +} + +MA_API void ma_apply_volume_factor_s24(void* pSamples, ma_uint64 sampleCount, float factor) +{ + ma_copy_and_apply_volume_factor_s24(pSamples, pSamples, sampleCount, factor); +} + +MA_API void ma_apply_volume_factor_s32(ma_int32* pSamples, ma_uint64 sampleCount, float factor) +{ + ma_copy_and_apply_volume_factor_s32(pSamples, pSamples, sampleCount, factor); +} + +MA_API void ma_apply_volume_factor_f32(float* pSamples, ma_uint64 sampleCount, float factor) +{ + ma_copy_and_apply_volume_factor_f32(pSamples, pSamples, sampleCount, factor); +} + +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_u8(ma_uint8* pPCMFramesOut, const ma_uint8* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_u8(pPCMFramesOut, pPCMFramesIn, frameCount*channels, factor); +} + +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_s16(ma_int16* pPCMFramesOut, const ma_int16* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_s16(pPCMFramesOut, pPCMFramesIn, frameCount*channels, factor); +} + +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_s24(void* pPCMFramesOut, const void* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_s24(pPCMFramesOut, pPCMFramesIn, frameCount*channels, factor); +} + +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_s32(ma_int32* pPCMFramesOut, const ma_int32* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_s32(pPCMFramesOut, pPCMFramesIn, frameCount*channels, factor); +} + +MA_API void ma_copy_and_apply_volume_factor_pcm_frames_f32(float* pPCMFramesOut, const float* pPCMFramesIn, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_f32(pPCMFramesOut, pPCMFramesIn, frameCount*channels, factor); +} + +MA_API void ma_copy_and_apply_volume_factor_pcm_frames(void* pPCMFramesOut, const void* pPCMFramesIn, ma_uint64 frameCount, ma_format format, ma_uint32 channels, float factor) +{ + switch (format) + { + case ma_format_u8: ma_copy_and_apply_volume_factor_pcm_frames_u8 ((ma_uint8*)pPCMFramesOut, (const ma_uint8*)pPCMFramesIn, frameCount, channels, factor); return; + case ma_format_s16: ma_copy_and_apply_volume_factor_pcm_frames_s16((ma_int16*)pPCMFramesOut, (const ma_int16*)pPCMFramesIn, frameCount, channels, factor); return; + case ma_format_s24: ma_copy_and_apply_volume_factor_pcm_frames_s24( pPCMFramesOut, pPCMFramesIn, frameCount, channels, factor); return; + case ma_format_s32: ma_copy_and_apply_volume_factor_pcm_frames_s32((ma_int32*)pPCMFramesOut, (const ma_int32*)pPCMFramesIn, frameCount, channels, factor); return; + case ma_format_f32: ma_copy_and_apply_volume_factor_pcm_frames_f32( (float*)pPCMFramesOut, (const float*)pPCMFramesIn, frameCount, channels, factor); return; + default: return; /* Do nothing. */ + } +} + +MA_API void ma_apply_volume_factor_pcm_frames_u8(ma_uint8* pPCMFrames, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_pcm_frames_u8(pPCMFrames, pPCMFrames, frameCount, channels, factor); +} + +MA_API void ma_apply_volume_factor_pcm_frames_s16(ma_int16* pPCMFrames, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_pcm_frames_s16(pPCMFrames, pPCMFrames, frameCount, channels, factor); +} + +MA_API void ma_apply_volume_factor_pcm_frames_s24(void* pPCMFrames, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_pcm_frames_s24(pPCMFrames, pPCMFrames, frameCount, channels, factor); +} + +MA_API void ma_apply_volume_factor_pcm_frames_s32(ma_int32* pPCMFrames, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_pcm_frames_s32(pPCMFrames, pPCMFrames, frameCount, channels, factor); +} + +MA_API void ma_apply_volume_factor_pcm_frames_f32(float* pPCMFrames, ma_uint64 frameCount, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_pcm_frames_f32(pPCMFrames, pPCMFrames, frameCount, channels, factor); +} + +MA_API void ma_apply_volume_factor_pcm_frames(void* pPCMFrames, ma_uint64 frameCount, ma_format format, ma_uint32 channels, float factor) +{ + ma_copy_and_apply_volume_factor_pcm_frames(pPCMFrames, pPCMFrames, frameCount, format, channels, factor); +} + + +MA_API float ma_factor_to_gain_db(float factor) +{ + return (float)(20*ma_log10f(factor)); +} + +MA_API float ma_gain_db_to_factor(float gain) +{ + return (float)ma_powf(10, gain/20.0f); +} + + +/************************************************************************************************************************************************************** + +Format Conversion + +**************************************************************************************************************************************************************/ + +static MA_INLINE ma_int16 ma_pcm_sample_f32_to_s16(float x) +{ + return (ma_int16)(x * 32767.0f); +} + +static MA_INLINE ma_int16 ma_pcm_sample_u8_to_s16_no_scale(ma_uint8 x) +{ + return (ma_int16)((ma_int16)x - 128); +} + +static MA_INLINE ma_int64 ma_pcm_sample_s24_to_s32_no_scale(const ma_uint8* x) +{ + return (ma_int64)(((ma_uint64)x[0] << 40) | ((ma_uint64)x[1] << 48) | ((ma_uint64)x[2] << 56)) >> 40; /* Make sure the sign bits are maintained. */ +} + +static MA_INLINE void ma_pcm_sample_s32_to_s24_no_scale(ma_int64 x, ma_uint8* s24) +{ + s24[0] = (ma_uint8)((x & 0x000000FF) >> 0); + s24[1] = (ma_uint8)((x & 0x0000FF00) >> 8); + s24[2] = (ma_uint8)((x & 0x00FF0000) >> 16); +} + + +static MA_INLINE ma_uint8 ma_clip_u8(ma_int16 x) +{ + return (ma_uint8)(ma_clamp(x, -128, 127) + 128); +} + +static MA_INLINE ma_int16 ma_clip_s16(ma_int32 x) +{ + return (ma_int16)ma_clamp(x, -32768, 32767); +} + +static MA_INLINE ma_int64 ma_clip_s24(ma_int64 x) +{ + return (ma_int64)ma_clamp(x, -8388608, 8388607); +} + +static MA_INLINE ma_int32 ma_clip_s32(ma_int64 x) +{ + /* This dance is to silence warnings with -std=c89. A good compiler should be able to optimize this away. */ + ma_int64 clipMin; + ma_int64 clipMax; + clipMin = -((ma_int64)2147483647 + 1); + clipMax = (ma_int64)2147483647; + + return (ma_int32)ma_clamp(x, clipMin, clipMax); +} + + +/* u8 */ +MA_API void ma_pcm_u8_to_u8(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + (void)ditherMode; + ma_copy_memory_64(dst, src, count * sizeof(ma_uint8)); +} + + +static MA_INLINE void ma_pcm_u8_to_s16__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_int16* dst_s16 = (ma_int16*)dst; + const ma_uint8* src_u8 = (const ma_uint8*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int16 x = src_u8[i]; + x = (ma_int16)(x - 128); + x = (ma_int16)(x << 8); + dst_s16[i] = x; + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_u8_to_s16__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s16__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_u8_to_s16__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s16__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_u8_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s16__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_u8_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s16__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_u8_to_s16(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_u8_to_s16__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_u8_to_s16__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_u8_to_s16__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_u8_to_s16__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_u8_to_s16__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_u8_to_s24__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint8* dst_s24 = (ma_uint8*)dst; + const ma_uint8* src_u8 = (const ma_uint8*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int16 x = src_u8[i]; + x = (ma_int16)(x - 128); + + dst_s24[i*3+0] = 0; + dst_s24[i*3+1] = 0; + dst_s24[i*3+2] = (ma_uint8)((ma_int8)x); + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_u8_to_s24__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s24__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_u8_to_s24__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_u8_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_u8_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s24__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_u8_to_s24(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_u8_to_s24__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_u8_to_s24__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_u8_to_s24__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_u8_to_s24__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_u8_to_s24__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_u8_to_s32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_int32* dst_s32 = (ma_int32*)dst; + const ma_uint8* src_u8 = (const ma_uint8*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 x = src_u8[i]; + x = x - 128; + x = x << 24; + dst_s32[i] = x; + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_u8_to_s32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_u8_to_s32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_u8_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_u8_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_s32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_u8_to_s32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_u8_to_s32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_u8_to_s32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_u8_to_s32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_u8_to_s32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_u8_to_s32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_u8_to_f32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + float* dst_f32 = (float*)dst; + const ma_uint8* src_u8 = (const ma_uint8*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + float x = (float)src_u8[i]; + x = x * 0.00784313725490196078f; /* 0..255 to 0..2 */ + x = x - 1; /* 0..2 to -1..1 */ + + dst_f32[i] = x; + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_u8_to_f32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_f32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_u8_to_f32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_u8_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_u8_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_u8_to_f32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_u8_to_f32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_u8_to_f32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_u8_to_f32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_u8_to_f32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_u8_to_f32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_u8_to_f32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +#ifdef MA_USE_REFERENCE_CONVERSION_APIS +static MA_INLINE void ma_pcm_interleave_u8__reference(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_uint8* dst_u8 = (ma_uint8*)dst; + const ma_uint8** src_u8 = (const ma_uint8**)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_u8[iFrame*channels + iChannel] = src_u8[iChannel][iFrame]; + } + } +} +#else +static MA_INLINE void ma_pcm_interleave_u8__optimized(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_uint8* dst_u8 = (ma_uint8*)dst; + const ma_uint8** src_u8 = (const ma_uint8**)src; + + if (channels == 1) { + ma_copy_memory_64(dst, src[0], frameCount * sizeof(ma_uint8)); + } else if (channels == 2) { + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + dst_u8[iFrame*2 + 0] = src_u8[0][iFrame]; + dst_u8[iFrame*2 + 1] = src_u8[1][iFrame]; + } + } else { + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_u8[iFrame*channels + iChannel] = src_u8[iChannel][iFrame]; + } + } + } +} +#endif + +MA_API void ma_pcm_interleave_u8(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_interleave_u8__reference(dst, src, frameCount, channels); +#else + ma_pcm_interleave_u8__optimized(dst, src, frameCount, channels); +#endif +} + + +static MA_INLINE void ma_pcm_deinterleave_u8__reference(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_uint8** dst_u8 = (ma_uint8**)dst; + const ma_uint8* src_u8 = (const ma_uint8*)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_u8[iChannel][iFrame] = src_u8[iFrame*channels + iChannel]; + } + } +} + +static MA_INLINE void ma_pcm_deinterleave_u8__optimized(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_deinterleave_u8__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_deinterleave_u8(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_deinterleave_u8__reference(dst, src, frameCount, channels); +#else + ma_pcm_deinterleave_u8__optimized(dst, src, frameCount, channels); +#endif +} + + +/* s16 */ +static MA_INLINE void ma_pcm_s16_to_u8__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint8* dst_u8 = (ma_uint8*)dst; + const ma_int16* src_s16 = (const ma_int16*)src; + + if (ditherMode == ma_dither_mode_none) { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int16 x = src_s16[i]; + x = (ma_int16)(x >> 8); + x = (ma_int16)(x + 128); + dst_u8[i] = (ma_uint8)x; + } + } else { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int16 x = src_s16[i]; + + /* Dither. Don't overflow. */ + ma_int32 dither = ma_dither_s32(ditherMode, -0x80, 0x7F); + if ((x + dither) <= 0x7FFF) { + x = (ma_int16)(x + dither); + } else { + x = 0x7FFF; + } + + x = (ma_int16)(x >> 8); + x = (ma_int16)(x + 128); + dst_u8[i] = (ma_uint8)x; + } + } +} + +static MA_INLINE void ma_pcm_s16_to_u8__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_u8__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s16_to_u8__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s16_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s16_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_u8__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s16_to_u8(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s16_to_u8__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s16_to_u8__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s16_to_u8__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s16_to_u8__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s16_to_u8__optimized(dst, src, count, ditherMode); + } +#endif +} + + +MA_API void ma_pcm_s16_to_s16(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + (void)ditherMode; + ma_copy_memory_64(dst, src, count * sizeof(ma_int16)); +} + + +static MA_INLINE void ma_pcm_s16_to_s24__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint8* dst_s24 = (ma_uint8*)dst; + const ma_int16* src_s16 = (const ma_int16*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + dst_s24[i*3+0] = 0; + dst_s24[i*3+1] = (ma_uint8)(src_s16[i] & 0xFF); + dst_s24[i*3+2] = (ma_uint8)(src_s16[i] >> 8); + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_s16_to_s24__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s24__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s16_to_s24__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s16_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s16_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s24__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s16_to_s24(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s16_to_s24__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s16_to_s24__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s16_to_s24__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s16_to_s24__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s16_to_s24__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_s16_to_s32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_int32* dst_s32 = (ma_int32*)dst; + const ma_int16* src_s16 = (const ma_int16*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + dst_s32[i] = src_s16[i] << 16; + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_s16_to_s32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s16_to_s32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s16_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s16_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_s32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s16_to_s32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s16_to_s32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s16_to_s32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s16_to_s32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s16_to_s32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s16_to_s32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_s16_to_f32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + float* dst_f32 = (float*)dst; + const ma_int16* src_s16 = (const ma_int16*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + float x = (float)src_s16[i]; + +#if 0 + /* The accurate way. */ + x = x + 32768.0f; /* -32768..32767 to 0..65535 */ + x = x * 0.00003051804379339284f; /* 0..65535 to 0..2 */ + x = x - 1; /* 0..2 to -1..1 */ +#else + /* The fast way. */ + x = x * 0.000030517578125f; /* -32768..32767 to -1..0.999969482421875 */ +#endif + + dst_f32[i] = x; + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_s16_to_f32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_f32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s16_to_f32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s16_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s16_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s16_to_f32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s16_to_f32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s16_to_f32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s16_to_f32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s16_to_f32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s16_to_f32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s16_to_f32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_interleave_s16__reference(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_int16* dst_s16 = (ma_int16*)dst; + const ma_int16** src_s16 = (const ma_int16**)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_s16[iFrame*channels + iChannel] = src_s16[iChannel][iFrame]; + } + } +} + +static MA_INLINE void ma_pcm_interleave_s16__optimized(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_interleave_s16__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_interleave_s16(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_interleave_s16__reference(dst, src, frameCount, channels); +#else + ma_pcm_interleave_s16__optimized(dst, src, frameCount, channels); +#endif +} + + +static MA_INLINE void ma_pcm_deinterleave_s16__reference(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_int16** dst_s16 = (ma_int16**)dst; + const ma_int16* src_s16 = (const ma_int16*)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_s16[iChannel][iFrame] = src_s16[iFrame*channels + iChannel]; + } + } +} + +static MA_INLINE void ma_pcm_deinterleave_s16__optimized(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_deinterleave_s16__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_deinterleave_s16(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_deinterleave_s16__reference(dst, src, frameCount, channels); +#else + ma_pcm_deinterleave_s16__optimized(dst, src, frameCount, channels); +#endif +} + + +/* s24 */ +static MA_INLINE void ma_pcm_s24_to_u8__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint8* dst_u8 = (ma_uint8*)dst; + const ma_uint8* src_s24 = (const ma_uint8*)src; + + if (ditherMode == ma_dither_mode_none) { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + dst_u8[i] = (ma_uint8)((ma_int8)src_s24[i*3 + 2] + 128); + } + } else { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 x = (ma_int32)(((ma_uint32)(src_s24[i*3+0]) << 8) | ((ma_uint32)(src_s24[i*3+1]) << 16) | ((ma_uint32)(src_s24[i*3+2])) << 24); + + /* Dither. Don't overflow. */ + ma_int32 dither = ma_dither_s32(ditherMode, -0x800000, 0x7FFFFF); + if ((ma_int64)x + dither <= 0x7FFFFFFF) { + x = x + dither; + } else { + x = 0x7FFFFFFF; + } + + x = x >> 24; + x = x + 128; + dst_u8[i] = (ma_uint8)x; + } + } +} + +static MA_INLINE void ma_pcm_s24_to_u8__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_u8__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s24_to_u8__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s24_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s24_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_u8__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s24_to_u8(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s24_to_u8__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s24_to_u8__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s24_to_u8__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s24_to_u8__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s24_to_u8__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_s24_to_s16__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_int16* dst_s16 = (ma_int16*)dst; + const ma_uint8* src_s24 = (const ma_uint8*)src; + + if (ditherMode == ma_dither_mode_none) { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_uint16 dst_lo = ((ma_uint16)src_s24[i*3 + 1]); + ma_uint16 dst_hi = (ma_uint16)((ma_uint16)src_s24[i*3 + 2] << 8); + dst_s16[i] = (ma_int16)(dst_lo | dst_hi); + } + } else { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 x = (ma_int32)(((ma_uint32)(src_s24[i*3+0]) << 8) | ((ma_uint32)(src_s24[i*3+1]) << 16) | ((ma_uint32)(src_s24[i*3+2])) << 24); + + /* Dither. Don't overflow. */ + ma_int32 dither = ma_dither_s32(ditherMode, -0x8000, 0x7FFF); + if ((ma_int64)x + dither <= 0x7FFFFFFF) { + x = x + dither; + } else { + x = 0x7FFFFFFF; + } + + x = x >> 16; + dst_s16[i] = (ma_int16)x; + } + } +} + +static MA_INLINE void ma_pcm_s24_to_s16__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s16__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s24_to_s16__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s16__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s24_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s16__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s24_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s16__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s24_to_s16(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s24_to_s16__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s24_to_s16__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s24_to_s16__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s24_to_s16__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s24_to_s16__optimized(dst, src, count, ditherMode); + } +#endif +} + + +MA_API void ma_pcm_s24_to_s24(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + (void)ditherMode; + + ma_copy_memory_64(dst, src, count * 3); +} + + +static MA_INLINE void ma_pcm_s24_to_s32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_int32* dst_s32 = (ma_int32*)dst; + const ma_uint8* src_s24 = (const ma_uint8*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + dst_s32[i] = (ma_int32)(((ma_uint32)(src_s24[i*3+0]) << 8) | ((ma_uint32)(src_s24[i*3+1]) << 16) | ((ma_uint32)(src_s24[i*3+2])) << 24); + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_s24_to_s32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s24_to_s32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s24_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s24_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_s32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s24_to_s32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s24_to_s32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s24_to_s32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s24_to_s32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s24_to_s32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s24_to_s32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_s24_to_f32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + float* dst_f32 = (float*)dst; + const ma_uint8* src_s24 = (const ma_uint8*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + float x = (float)(((ma_int32)(((ma_uint32)(src_s24[i*3+0]) << 8) | ((ma_uint32)(src_s24[i*3+1]) << 16) | ((ma_uint32)(src_s24[i*3+2])) << 24)) >> 8); + +#if 0 + /* The accurate way. */ + x = x + 8388608.0f; /* -8388608..8388607 to 0..16777215 */ + x = x * 0.00000011920929665621f; /* 0..16777215 to 0..2 */ + x = x - 1; /* 0..2 to -1..1 */ +#else + /* The fast way. */ + x = x * 0.00000011920928955078125f; /* -8388608..8388607 to -1..0.999969482421875 */ +#endif + + dst_f32[i] = x; + } + + (void)ditherMode; +} + +static MA_INLINE void ma_pcm_s24_to_f32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_f32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s24_to_f32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s24_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s24_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s24_to_f32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s24_to_f32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s24_to_f32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s24_to_f32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s24_to_f32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s24_to_f32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s24_to_f32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_interleave_s24__reference(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_uint8* dst8 = (ma_uint8*)dst; + const ma_uint8** src8 = (const ma_uint8**)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst8[iFrame*3*channels + iChannel*3 + 0] = src8[iChannel][iFrame*3 + 0]; + dst8[iFrame*3*channels + iChannel*3 + 1] = src8[iChannel][iFrame*3 + 1]; + dst8[iFrame*3*channels + iChannel*3 + 2] = src8[iChannel][iFrame*3 + 2]; + } + } +} + +static MA_INLINE void ma_pcm_interleave_s24__optimized(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_interleave_s24__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_interleave_s24(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_interleave_s24__reference(dst, src, frameCount, channels); +#else + ma_pcm_interleave_s24__optimized(dst, src, frameCount, channels); +#endif +} + + +static MA_INLINE void ma_pcm_deinterleave_s24__reference(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_uint8** dst8 = (ma_uint8**)dst; + const ma_uint8* src8 = (const ma_uint8*)src; + + ma_uint32 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst8[iChannel][iFrame*3 + 0] = src8[iFrame*3*channels + iChannel*3 + 0]; + dst8[iChannel][iFrame*3 + 1] = src8[iFrame*3*channels + iChannel*3 + 1]; + dst8[iChannel][iFrame*3 + 2] = src8[iFrame*3*channels + iChannel*3 + 2]; + } + } +} + +static MA_INLINE void ma_pcm_deinterleave_s24__optimized(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_deinterleave_s24__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_deinterleave_s24(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_deinterleave_s24__reference(dst, src, frameCount, channels); +#else + ma_pcm_deinterleave_s24__optimized(dst, src, frameCount, channels); +#endif +} + + + +/* s32 */ +static MA_INLINE void ma_pcm_s32_to_u8__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint8* dst_u8 = (ma_uint8*)dst; + const ma_int32* src_s32 = (const ma_int32*)src; + + if (ditherMode == ma_dither_mode_none) { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 x = src_s32[i]; + x = x >> 24; + x = x + 128; + dst_u8[i] = (ma_uint8)x; + } + } else { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 x = src_s32[i]; + + /* Dither. Don't overflow. */ + ma_int32 dither = ma_dither_s32(ditherMode, -0x800000, 0x7FFFFF); + if ((ma_int64)x + dither <= 0x7FFFFFFF) { + x = x + dither; + } else { + x = 0x7FFFFFFF; + } + + x = x >> 24; + x = x + 128; + dst_u8[i] = (ma_uint8)x; + } + } +} + +static MA_INLINE void ma_pcm_s32_to_u8__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_u8__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s32_to_u8__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s32_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s32_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_u8__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s32_to_u8(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s32_to_u8__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s32_to_u8__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s32_to_u8__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s32_to_u8__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s32_to_u8__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_s32_to_s16__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_int16* dst_s16 = (ma_int16*)dst; + const ma_int32* src_s32 = (const ma_int32*)src; + + if (ditherMode == ma_dither_mode_none) { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 x = src_s32[i]; + x = x >> 16; + dst_s16[i] = (ma_int16)x; + } + } else { + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 x = src_s32[i]; + + /* Dither. Don't overflow. */ + ma_int32 dither = ma_dither_s32(ditherMode, -0x8000, 0x7FFF); + if ((ma_int64)x + dither <= 0x7FFFFFFF) { + x = x + dither; + } else { + x = 0x7FFFFFFF; + } + + x = x >> 16; + dst_s16[i] = (ma_int16)x; + } + } +} + +static MA_INLINE void ma_pcm_s32_to_s16__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s16__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s32_to_s16__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s16__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s32_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s16__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s32_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s16__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s32_to_s16(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s32_to_s16__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s32_to_s16__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s32_to_s16__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s32_to_s16__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s32_to_s16__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_s32_to_s24__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint8* dst_s24 = (ma_uint8*)dst; + const ma_int32* src_s32 = (const ma_int32*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_uint32 x = (ma_uint32)src_s32[i]; + dst_s24[i*3+0] = (ma_uint8)((x & 0x0000FF00) >> 8); + dst_s24[i*3+1] = (ma_uint8)((x & 0x00FF0000) >> 16); + dst_s24[i*3+2] = (ma_uint8)((x & 0xFF000000) >> 24); + } + + (void)ditherMode; /* No dithering for s32 -> s24. */ +} + +static MA_INLINE void ma_pcm_s32_to_s24__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s24__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s32_to_s24__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s32_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s32_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_s24__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s32_to_s24(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s32_to_s24__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s32_to_s24__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s32_to_s24__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s32_to_s24__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s32_to_s24__optimized(dst, src, count, ditherMode); + } +#endif +} + + +MA_API void ma_pcm_s32_to_s32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + (void)ditherMode; + + ma_copy_memory_64(dst, src, count * sizeof(ma_int32)); +} + + +static MA_INLINE void ma_pcm_s32_to_f32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + float* dst_f32 = (float*)dst; + const ma_int32* src_s32 = (const ma_int32*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + double x = src_s32[i]; + +#if 0 + x = x + 2147483648.0; + x = x * 0.0000000004656612873077392578125; + x = x - 1; +#else + x = x / 2147483648.0; +#endif + + dst_f32[i] = (float)x; + } + + (void)ditherMode; /* No dithering for s32 -> f32. */ +} + +static MA_INLINE void ma_pcm_s32_to_f32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_f32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_s32_to_f32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_s32_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_f32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_s32_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_s32_to_f32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_s32_to_f32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_s32_to_f32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_s32_to_f32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_s32_to_f32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_s32_to_f32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_s32_to_f32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_interleave_s32__reference(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_int32* dst_s32 = (ma_int32*)dst; + const ma_int32** src_s32 = (const ma_int32**)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_s32[iFrame*channels + iChannel] = src_s32[iChannel][iFrame]; + } + } +} + +static MA_INLINE void ma_pcm_interleave_s32__optimized(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_interleave_s32__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_interleave_s32(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_interleave_s32__reference(dst, src, frameCount, channels); +#else + ma_pcm_interleave_s32__optimized(dst, src, frameCount, channels); +#endif +} + + +static MA_INLINE void ma_pcm_deinterleave_s32__reference(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_int32** dst_s32 = (ma_int32**)dst; + const ma_int32* src_s32 = (const ma_int32*)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_s32[iChannel][iFrame] = src_s32[iFrame*channels + iChannel]; + } + } +} + +static MA_INLINE void ma_pcm_deinterleave_s32__optimized(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_deinterleave_s32__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_deinterleave_s32(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_deinterleave_s32__reference(dst, src, frameCount, channels); +#else + ma_pcm_deinterleave_s32__optimized(dst, src, frameCount, channels); +#endif +} + + +/* f32 */ +static MA_INLINE void ma_pcm_f32_to_u8__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint64 i; + + ma_uint8* dst_u8 = (ma_uint8*)dst; + const float* src_f32 = (const float*)src; + + float ditherMin = 0; + float ditherMax = 0; + if (ditherMode != ma_dither_mode_none) { + ditherMin = 1.0f / -128; + ditherMax = 1.0f / 127; + } + + for (i = 0; i < count; i += 1) { + float x = src_f32[i]; + x = x + ma_dither_f32(ditherMode, ditherMin, ditherMax); + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + x = x + 1; /* -1..1 to 0..2 */ + x = x * 127.5f; /* 0..2 to 0..255 */ + + dst_u8[i] = (ma_uint8)x; + } +} + +static MA_INLINE void ma_pcm_f32_to_u8__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_u8__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_f32_to_u8__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_f32_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_u8__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_f32_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_u8__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_f32_to_u8(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_f32_to_u8__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_f32_to_u8__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_f32_to_u8__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_f32_to_u8__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_f32_to_u8__optimized(dst, src, count, ditherMode); + } +#endif +} + +#ifdef MA_USE_REFERENCE_CONVERSION_APIS +static MA_INLINE void ma_pcm_f32_to_s16__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint64 i; + + ma_int16* dst_s16 = (ma_int16*)dst; + const float* src_f32 = (const float*)src; + + float ditherMin = 0; + float ditherMax = 0; + if (ditherMode != ma_dither_mode_none) { + ditherMin = 1.0f / -32768; + ditherMax = 1.0f / 32767; + } + + for (i = 0; i < count; i += 1) { + float x = src_f32[i]; + x = x + ma_dither_f32(ditherMode, ditherMin, ditherMax); + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + +#if 0 + /* The accurate way. */ + x = x + 1; /* -1..1 to 0..2 */ + x = x * 32767.5f; /* 0..2 to 0..65535 */ + x = x - 32768.0f; /* 0...65535 to -32768..32767 */ +#else + /* The fast way. */ + x = x * 32767.0f; /* -1..1 to -32767..32767 */ +#endif + + dst_s16[i] = (ma_int16)x; + } +} +#else +static MA_INLINE void ma_pcm_f32_to_s16__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint64 i; + ma_uint64 i4; + ma_uint64 count4; + + ma_int16* dst_s16 = (ma_int16*)dst; + const float* src_f32 = (const float*)src; + + float ditherMin = 0; + float ditherMax = 0; + if (ditherMode != ma_dither_mode_none) { + ditherMin = 1.0f / -32768; + ditherMax = 1.0f / 32767; + } + + /* Unrolled. */ + i = 0; + count4 = count >> 2; + for (i4 = 0; i4 < count4; i4 += 1) { + float d0 = ma_dither_f32(ditherMode, ditherMin, ditherMax); + float d1 = ma_dither_f32(ditherMode, ditherMin, ditherMax); + float d2 = ma_dither_f32(ditherMode, ditherMin, ditherMax); + float d3 = ma_dither_f32(ditherMode, ditherMin, ditherMax); + + float x0 = src_f32[i+0]; + float x1 = src_f32[i+1]; + float x2 = src_f32[i+2]; + float x3 = src_f32[i+3]; + + x0 = x0 + d0; + x1 = x1 + d1; + x2 = x2 + d2; + x3 = x3 + d3; + + x0 = ((x0 < -1) ? -1 : ((x0 > 1) ? 1 : x0)); + x1 = ((x1 < -1) ? -1 : ((x1 > 1) ? 1 : x1)); + x2 = ((x2 < -1) ? -1 : ((x2 > 1) ? 1 : x2)); + x3 = ((x3 < -1) ? -1 : ((x3 > 1) ? 1 : x3)); + + x0 = x0 * 32767.0f; + x1 = x1 * 32767.0f; + x2 = x2 * 32767.0f; + x3 = x3 * 32767.0f; + + dst_s16[i+0] = (ma_int16)x0; + dst_s16[i+1] = (ma_int16)x1; + dst_s16[i+2] = (ma_int16)x2; + dst_s16[i+3] = (ma_int16)x3; + + i += 4; + } + + /* Leftover. */ + for (; i < count; i += 1) { + float x = src_f32[i]; + x = x + ma_dither_f32(ditherMode, ditherMin, ditherMax); + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + x = x * 32767.0f; /* -1..1 to -32767..32767 */ + + dst_s16[i] = (ma_int16)x; + } +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_f32_to_s16__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint64 i; + ma_uint64 i8; + ma_uint64 count8; + ma_int16* dst_s16; + const float* src_f32; + float ditherMin; + float ditherMax; + + /* Both the input and output buffers need to be aligned to 16 bytes. */ + if ((((ma_uintptr)dst & 15) != 0) || (((ma_uintptr)src & 15) != 0)) { + ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); + return; + } + + dst_s16 = (ma_int16*)dst; + src_f32 = (const float*)src; + + ditherMin = 0; + ditherMax = 0; + if (ditherMode != ma_dither_mode_none) { + ditherMin = 1.0f / -32768; + ditherMax = 1.0f / 32767; + } + + i = 0; + + /* SSE2. SSE allows us to output 8 s16's at a time which means our loop is unrolled 8 times. */ + count8 = count >> 3; + for (i8 = 0; i8 < count8; i8 += 1) { + __m128 d0; + __m128 d1; + __m128 x0; + __m128 x1; + + if (ditherMode == ma_dither_mode_none) { + d0 = _mm_set1_ps(0); + d1 = _mm_set1_ps(0); + } else if (ditherMode == ma_dither_mode_rectangle) { + d0 = _mm_set_ps( + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax) + ); + d1 = _mm_set_ps( + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax) + ); + } else { + d0 = _mm_set_ps( + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax) + ); + d1 = _mm_set_ps( + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax) + ); + } + + x0 = *((__m128*)(src_f32 + i) + 0); + x1 = *((__m128*)(src_f32 + i) + 1); + + x0 = _mm_add_ps(x0, d0); + x1 = _mm_add_ps(x1, d1); + + x0 = _mm_mul_ps(x0, _mm_set1_ps(32767.0f)); + x1 = _mm_mul_ps(x1, _mm_set1_ps(32767.0f)); + + _mm_stream_si128(((__m128i*)(dst_s16 + i)), _mm_packs_epi32(_mm_cvttps_epi32(x0), _mm_cvttps_epi32(x1))); + + i += 8; + } + + + /* Leftover. */ + for (; i < count; i += 1) { + float x = src_f32[i]; + x = x + ma_dither_f32(ditherMode, ditherMin, ditherMax); + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + x = x * 32767.0f; /* -1..1 to -32767..32767 */ + + dst_s16[i] = (ma_int16)x; + } +} +#endif /* SSE2 */ + +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_f32_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint64 i; + ma_uint64 i16; + ma_uint64 count16; + ma_int16* dst_s16; + const float* src_f32; + float ditherMin; + float ditherMax; + + /* Both the input and output buffers need to be aligned to 32 bytes. */ + if ((((ma_uintptr)dst & 31) != 0) || (((ma_uintptr)src & 31) != 0)) { + ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); + return; + } + + dst_s16 = (ma_int16*)dst; + src_f32 = (const float*)src; + + ditherMin = 0; + ditherMax = 0; + if (ditherMode != ma_dither_mode_none) { + ditherMin = 1.0f / -32768; + ditherMax = 1.0f / 32767; + } + + i = 0; + + /* AVX2. AVX2 allows us to output 16 s16's at a time which means our loop is unrolled 16 times. */ + count16 = count >> 4; + for (i16 = 0; i16 < count16; i16 += 1) { + __m256 d0; + __m256 d1; + __m256 x0; + __m256 x1; + __m256i i0; + __m256i i1; + __m256i p0; + __m256i p1; + __m256i r; + + if (ditherMode == ma_dither_mode_none) { + d0 = _mm256_set1_ps(0); + d1 = _mm256_set1_ps(0); + } else if (ditherMode == ma_dither_mode_rectangle) { + d0 = _mm256_set_ps( + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax) + ); + d1 = _mm256_set_ps( + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax), + ma_dither_f32_rectangle(ditherMin, ditherMax) + ); + } else { + d0 = _mm256_set_ps( + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax) + ); + d1 = _mm256_set_ps( + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax), + ma_dither_f32_triangle(ditherMin, ditherMax) + ); + } + + x0 = *((__m256*)(src_f32 + i) + 0); + x1 = *((__m256*)(src_f32 + i) + 1); + + x0 = _mm256_add_ps(x0, d0); + x1 = _mm256_add_ps(x1, d1); + + x0 = _mm256_mul_ps(x0, _mm256_set1_ps(32767.0f)); + x1 = _mm256_mul_ps(x1, _mm256_set1_ps(32767.0f)); + + /* Computing the final result is a little more complicated for AVX2 than SSE2. */ + i0 = _mm256_cvttps_epi32(x0); + i1 = _mm256_cvttps_epi32(x1); + p0 = _mm256_permute2x128_si256(i0, i1, 0 | 32); + p1 = _mm256_permute2x128_si256(i0, i1, 1 | 48); + r = _mm256_packs_epi32(p0, p1); + + _mm256_stream_si256(((__m256i*)(dst_s16 + i)), r); + + i += 16; + } + + + /* Leftover. */ + for (; i < count; i += 1) { + float x = src_f32[i]; + x = x + ma_dither_f32(ditherMode, ditherMin, ditherMax); + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + x = x * 32767.0f; /* -1..1 to -32767..32767 */ + + dst_s16[i] = (ma_int16)x; + } +} +#endif /* AVX2 */ + +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_f32_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint64 i; + ma_uint64 i8; + ma_uint64 count8; + ma_int16* dst_s16; + const float* src_f32; + float ditherMin; + float ditherMax; + + if (!ma_has_neon()) { + return ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); + } + + /* Both the input and output buffers need to be aligned to 16 bytes. */ + if ((((ma_uintptr)dst & 15) != 0) || (((ma_uintptr)src & 15) != 0)) { + ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); + return; + } + + dst_s16 = (ma_int16*)dst; + src_f32 = (const float*)src; + + ditherMin = 0; + ditherMax = 0; + if (ditherMode != ma_dither_mode_none) { + ditherMin = 1.0f / -32768; + ditherMax = 1.0f / 32767; + } + + i = 0; + + /* NEON. NEON allows us to output 8 s16's at a time which means our loop is unrolled 8 times. */ + count8 = count >> 3; + for (i8 = 0; i8 < count8; i8 += 1) { + float32x4_t d0; + float32x4_t d1; + float32x4_t x0; + float32x4_t x1; + int32x4_t i0; + int32x4_t i1; + + if (ditherMode == ma_dither_mode_none) { + d0 = vmovq_n_f32(0); + d1 = vmovq_n_f32(0); + } else if (ditherMode == ma_dither_mode_rectangle) { + float d0v[4]; + d0v[0] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d0v[1] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d0v[2] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d0v[3] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d0 = vld1q_f32(d0v); + + float d1v[4]; + d1v[0] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d1v[1] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d1v[2] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d1v[3] = ma_dither_f32_rectangle(ditherMin, ditherMax); + d1 = vld1q_f32(d1v); + } else { + float d0v[4]; + d0v[0] = ma_dither_f32_triangle(ditherMin, ditherMax); + d0v[1] = ma_dither_f32_triangle(ditherMin, ditherMax); + d0v[2] = ma_dither_f32_triangle(ditherMin, ditherMax); + d0v[3] = ma_dither_f32_triangle(ditherMin, ditherMax); + d0 = vld1q_f32(d0v); + + float d1v[4]; + d1v[0] = ma_dither_f32_triangle(ditherMin, ditherMax); + d1v[1] = ma_dither_f32_triangle(ditherMin, ditherMax); + d1v[2] = ma_dither_f32_triangle(ditherMin, ditherMax); + d1v[3] = ma_dither_f32_triangle(ditherMin, ditherMax); + d1 = vld1q_f32(d1v); + } + + x0 = *((float32x4_t*)(src_f32 + i) + 0); + x1 = *((float32x4_t*)(src_f32 + i) + 1); + + x0 = vaddq_f32(x0, d0); + x1 = vaddq_f32(x1, d1); + + x0 = vmulq_n_f32(x0, 32767.0f); + x1 = vmulq_n_f32(x1, 32767.0f); + + i0 = vcvtq_s32_f32(x0); + i1 = vcvtq_s32_f32(x1); + *((int16x8_t*)(dst_s16 + i)) = vcombine_s16(vqmovn_s32(i0), vqmovn_s32(i1)); + + i += 8; + } + + + /* Leftover. */ + for (; i < count; i += 1) { + float x = src_f32[i]; + x = x + ma_dither_f32(ditherMode, ditherMin, ditherMax); + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + x = x * 32767.0f; /* -1..1 to -32767..32767 */ + + dst_s16[i] = (ma_int16)x; + } +} +#endif /* Neon */ +#endif /* MA_USE_REFERENCE_CONVERSION_APIS */ + +MA_API void ma_pcm_f32_to_s16(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_f32_to_s16__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_f32_to_s16__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_f32_to_s16__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_f32_to_s16__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_f32_to_s24__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_uint8* dst_s24 = (ma_uint8*)dst; + const float* src_f32 = (const float*)src; + + ma_uint64 i; + for (i = 0; i < count; i += 1) { + ma_int32 r; + float x = src_f32[i]; + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + +#if 0 + /* The accurate way. */ + x = x + 1; /* -1..1 to 0..2 */ + x = x * 8388607.5f; /* 0..2 to 0..16777215 */ + x = x - 8388608.0f; /* 0..16777215 to -8388608..8388607 */ +#else + /* The fast way. */ + x = x * 8388607.0f; /* -1..1 to -8388607..8388607 */ +#endif + + r = (ma_int32)x; + dst_s24[(i*3)+0] = (ma_uint8)((r & 0x0000FF) >> 0); + dst_s24[(i*3)+1] = (ma_uint8)((r & 0x00FF00) >> 8); + dst_s24[(i*3)+2] = (ma_uint8)((r & 0xFF0000) >> 16); + } + + (void)ditherMode; /* No dithering for f32 -> s24. */ +} + +static MA_INLINE void ma_pcm_f32_to_s24__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s24__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_f32_to_s24__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_f32_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s24__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_f32_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s24__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_f32_to_s24(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_f32_to_s24__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_f32_to_s24__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_f32_to_s24__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_f32_to_s24__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_f32_to_s24__optimized(dst, src, count, ditherMode); + } +#endif +} + + +static MA_INLINE void ma_pcm_f32_to_s32__reference(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_int32* dst_s32 = (ma_int32*)dst; + const float* src_f32 = (const float*)src; + + ma_uint32 i; + for (i = 0; i < count; i += 1) { + double x = src_f32[i]; + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ + +#if 0 + /* The accurate way. */ + x = x + 1; /* -1..1 to 0..2 */ + x = x * 2147483647.5; /* 0..2 to 0..4294967295 */ + x = x - 2147483648.0; /* 0...4294967295 to -2147483648..2147483647 */ +#else + /* The fast way. */ + x = x * 2147483647.0; /* -1..1 to -2147483647..2147483647 */ +#endif + + dst_s32[i] = (ma_int32)x; + } + + (void)ditherMode; /* No dithering for f32 -> s32. */ +} + +static MA_INLINE void ma_pcm_f32_to_s32__optimized(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s32__reference(dst, src, count, ditherMode); +} + +#if defined(MA_SUPPORT_SSE2) +static MA_INLINE void ma_pcm_f32_to_s32__sse2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_AVX2) +static MA_INLINE void ma_pcm_f32_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s32__optimized(dst, src, count, ditherMode); +} +#endif +#if defined(MA_SUPPORT_NEON) +static MA_INLINE void ma_pcm_f32_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + ma_pcm_f32_to_s32__optimized(dst, src, count, ditherMode); +} +#endif + +MA_API void ma_pcm_f32_to_s32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_f32_to_s32__reference(dst, src, count, ditherMode); +#else + # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 + if (ma_has_avx2()) { + ma_pcm_f32_to_s32__avx2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + if (ma_has_sse2()) { + ma_pcm_f32_to_s32__sse2(dst, src, count, ditherMode); + } else + #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + if (ma_has_neon()) { + ma_pcm_f32_to_s32__neon(dst, src, count, ditherMode); + } else + #endif + { + ma_pcm_f32_to_s32__optimized(dst, src, count, ditherMode); + } +#endif +} + + +MA_API void ma_pcm_f32_to_f32(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) +{ + (void)ditherMode; + + ma_copy_memory_64(dst, src, count * sizeof(float)); +} + + +static void ma_pcm_interleave_f32__reference(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + float* dst_f32 = (float*)dst; + const float** src_f32 = (const float**)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_f32[iFrame*channels + iChannel] = src_f32[iChannel][iFrame]; + } + } +} + +static void ma_pcm_interleave_f32__optimized(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_interleave_f32__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_interleave_f32(void* dst, const void** src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_interleave_f32__reference(dst, src, frameCount, channels); +#else + ma_pcm_interleave_f32__optimized(dst, src, frameCount, channels); +#endif +} + + +static void ma_pcm_deinterleave_f32__reference(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + float** dst_f32 = (float**)dst; + const float* src_f32 = (const float*)src; + + ma_uint64 iFrame; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; iChannel += 1) { + dst_f32[iChannel][iFrame] = src_f32[iFrame*channels + iChannel]; + } + } +} + +static void ma_pcm_deinterleave_f32__optimized(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ + ma_pcm_deinterleave_f32__reference(dst, src, frameCount, channels); +} + +MA_API void ma_pcm_deinterleave_f32(void** dst, const void* src, ma_uint64 frameCount, ma_uint32 channels) +{ +#ifdef MA_USE_REFERENCE_CONVERSION_APIS + ma_pcm_deinterleave_f32__reference(dst, src, frameCount, channels); +#else + ma_pcm_deinterleave_f32__optimized(dst, src, frameCount, channels); +#endif +} + + +MA_API void ma_pcm_convert(void* pOut, ma_format formatOut, const void* pIn, ma_format formatIn, ma_uint64 sampleCount, ma_dither_mode ditherMode) +{ + if (formatOut == formatIn) { + ma_copy_memory_64(pOut, pIn, sampleCount * ma_get_bytes_per_sample(formatOut)); + return; + } + + switch (formatIn) + { + case ma_format_u8: + { + switch (formatOut) + { + case ma_format_s16: ma_pcm_u8_to_s16(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s24: ma_pcm_u8_to_s24(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s32: ma_pcm_u8_to_s32(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_f32: ma_pcm_u8_to_f32(pOut, pIn, sampleCount, ditherMode); return; + default: break; + } + } break; + + case ma_format_s16: + { + switch (formatOut) + { + case ma_format_u8: ma_pcm_s16_to_u8( pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s24: ma_pcm_s16_to_s24(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s32: ma_pcm_s16_to_s32(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_f32: ma_pcm_s16_to_f32(pOut, pIn, sampleCount, ditherMode); return; + default: break; + } + } break; + + case ma_format_s24: + { + switch (formatOut) + { + case ma_format_u8: ma_pcm_s24_to_u8( pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s16: ma_pcm_s24_to_s16(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s32: ma_pcm_s24_to_s32(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_f32: ma_pcm_s24_to_f32(pOut, pIn, sampleCount, ditherMode); return; + default: break; + } + } break; + + case ma_format_s32: + { + switch (formatOut) + { + case ma_format_u8: ma_pcm_s32_to_u8( pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s16: ma_pcm_s32_to_s16(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s24: ma_pcm_s32_to_s24(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_f32: ma_pcm_s32_to_f32(pOut, pIn, sampleCount, ditherMode); return; + default: break; + } + } break; + + case ma_format_f32: + { + switch (formatOut) + { + case ma_format_u8: ma_pcm_f32_to_u8( pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s16: ma_pcm_f32_to_s16(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s24: ma_pcm_f32_to_s24(pOut, pIn, sampleCount, ditherMode); return; + case ma_format_s32: ma_pcm_f32_to_s32(pOut, pIn, sampleCount, ditherMode); return; + default: break; + } + } break; + + default: break; + } +} + +MA_API void ma_convert_pcm_frames_format(void* pOut, ma_format formatOut, const void* pIn, ma_format formatIn, ma_uint64 frameCount, ma_uint32 channels, ma_dither_mode ditherMode) +{ + ma_pcm_convert(pOut, formatOut, pIn, formatIn, frameCount * channels, ditherMode); +} + +MA_API void ma_deinterleave_pcm_frames(ma_format format, ma_uint32 channels, ma_uint64 frameCount, const void* pInterleavedPCMFrames, void** ppDeinterleavedPCMFrames) +{ + if (pInterleavedPCMFrames == NULL || ppDeinterleavedPCMFrames == NULL) { + return; /* Invalid args. */ + } + + /* For efficiency we do this per format. */ + switch (format) { + case ma_format_s16: + { + const ma_int16* pSrcS16 = (const ma_int16*)pInterleavedPCMFrames; + ma_uint64 iPCMFrame; + for (iPCMFrame = 0; iPCMFrame < frameCount; ++iPCMFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + ma_int16* pDstS16 = (ma_int16*)ppDeinterleavedPCMFrames[iChannel]; + pDstS16[iPCMFrame] = pSrcS16[iPCMFrame*channels+iChannel]; + } + } + } break; + + case ma_format_f32: + { + const float* pSrcF32 = (const float*)pInterleavedPCMFrames; + ma_uint64 iPCMFrame; + for (iPCMFrame = 0; iPCMFrame < frameCount; ++iPCMFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + float* pDstF32 = (float*)ppDeinterleavedPCMFrames[iChannel]; + pDstF32[iPCMFrame] = pSrcF32[iPCMFrame*channels+iChannel]; + } + } + } break; + + default: + { + ma_uint32 sampleSizeInBytes = ma_get_bytes_per_sample(format); + ma_uint64 iPCMFrame; + for (iPCMFrame = 0; iPCMFrame < frameCount; ++iPCMFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + void* pDst = ma_offset_ptr(ppDeinterleavedPCMFrames[iChannel], iPCMFrame*sampleSizeInBytes); + const void* pSrc = ma_offset_ptr(pInterleavedPCMFrames, (iPCMFrame*channels+iChannel)*sampleSizeInBytes); + memcpy(pDst, pSrc, sampleSizeInBytes); + } + } + } break; + } +} + +MA_API void ma_interleave_pcm_frames(ma_format format, ma_uint32 channels, ma_uint64 frameCount, const void** ppDeinterleavedPCMFrames, void* pInterleavedPCMFrames) +{ + switch (format) + { + case ma_format_s16: + { + ma_int16* pDstS16 = (ma_int16*)pInterleavedPCMFrames; + ma_uint64 iPCMFrame; + for (iPCMFrame = 0; iPCMFrame < frameCount; ++iPCMFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + const ma_int16* pSrcS16 = (const ma_int16*)ppDeinterleavedPCMFrames[iChannel]; + pDstS16[iPCMFrame*channels+iChannel] = pSrcS16[iPCMFrame]; + } + } + } break; + + case ma_format_f32: + { + float* pDstF32 = (float*)pInterleavedPCMFrames; + ma_uint64 iPCMFrame; + for (iPCMFrame = 0; iPCMFrame < frameCount; ++iPCMFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + const float* pSrcF32 = (const float*)ppDeinterleavedPCMFrames[iChannel]; + pDstF32[iPCMFrame*channels+iChannel] = pSrcF32[iPCMFrame]; + } + } + } break; + + default: + { + ma_uint32 sampleSizeInBytes = ma_get_bytes_per_sample(format); + ma_uint64 iPCMFrame; + for (iPCMFrame = 0; iPCMFrame < frameCount; ++iPCMFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + void* pDst = ma_offset_ptr(pInterleavedPCMFrames, (iPCMFrame*channels+iChannel)*sampleSizeInBytes); + const void* pSrc = ma_offset_ptr(ppDeinterleavedPCMFrames[iChannel], iPCMFrame*sampleSizeInBytes); + memcpy(pDst, pSrc, sampleSizeInBytes); + } + } + } break; + } +} + + +/************************************************************************************************************************************************************** + +Biquad Filter + +**************************************************************************************************************************************************************/ +#ifndef MA_BIQUAD_FIXED_POINT_SHIFT +#define MA_BIQUAD_FIXED_POINT_SHIFT 14 +#endif + +static ma_int32 ma_biquad_float_to_fp(double x) +{ + return (ma_int32)(x * (1 << MA_BIQUAD_FIXED_POINT_SHIFT)); +} + +MA_API ma_biquad_config ma_biquad_config_init(ma_format format, ma_uint32 channels, double b0, double b1, double b2, double a0, double a1, double a2) +{ + ma_biquad_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.b0 = b0; + config.b1 = b1; + config.b2 = b2; + config.a0 = a0; + config.a1 = a1; + config.a2 = a2; + + return config; +} + +MA_API ma_result ma_biquad_init(const ma_biquad_config* pConfig, ma_biquad* pBQ) +{ + if (pBQ == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pBQ); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->channels < MA_MIN_CHANNELS || pConfig->channels > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + return ma_biquad_reinit(pConfig, pBQ); +} + +MA_API ma_result ma_biquad_reinit(const ma_biquad_config* pConfig, ma_biquad* pBQ) +{ + if (pBQ == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->a0 == 0) { + return MA_INVALID_ARGS; /* Division by zero. */ + } + + /* Only supporting f32 and s16. */ + if (pConfig->format != ma_format_f32 && pConfig->format != ma_format_s16) { + return MA_INVALID_ARGS; + } + + /* The format cannot be changed after initialization. */ + if (pBQ->format != ma_format_unknown && pBQ->format != pConfig->format) { + return MA_INVALID_OPERATION; + } + + /* The channel count cannot be changed after initialization. */ + if (pBQ->channels != 0 && pBQ->channels != pConfig->channels) { + return MA_INVALID_OPERATION; + } + + + pBQ->format = pConfig->format; + pBQ->channels = pConfig->channels; + + /* Normalize. */ + if (pConfig->format == ma_format_f32) { + pBQ->b0.f32 = (float)(pConfig->b0 / pConfig->a0); + pBQ->b1.f32 = (float)(pConfig->b1 / pConfig->a0); + pBQ->b2.f32 = (float)(pConfig->b2 / pConfig->a0); + pBQ->a1.f32 = (float)(pConfig->a1 / pConfig->a0); + pBQ->a2.f32 = (float)(pConfig->a2 / pConfig->a0); + } else { + pBQ->b0.s32 = ma_biquad_float_to_fp(pConfig->b0 / pConfig->a0); + pBQ->b1.s32 = ma_biquad_float_to_fp(pConfig->b1 / pConfig->a0); + pBQ->b2.s32 = ma_biquad_float_to_fp(pConfig->b2 / pConfig->a0); + pBQ->a1.s32 = ma_biquad_float_to_fp(pConfig->a1 / pConfig->a0); + pBQ->a2.s32 = ma_biquad_float_to_fp(pConfig->a2 / pConfig->a0); + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_biquad_process_pcm_frame_f32__direct_form_2_transposed(ma_biquad* pBQ, float* pY, const float* pX) +{ + ma_uint32 c; + const ma_uint32 channels = pBQ->channels; + const float b0 = pBQ->b0.f32; + const float b1 = pBQ->b1.f32; + const float b2 = pBQ->b2.f32; + const float a1 = pBQ->a1.f32; + const float a2 = pBQ->a2.f32; + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + float r1 = pBQ->r1[c].f32; + float r2 = pBQ->r2[c].f32; + float x = pX[c]; + float y; + + y = b0*x + r1; + r1 = b1*x - a1*y + r2; + r2 = b2*x - a2*y; + + pY[c] = y; + pBQ->r1[c].f32 = r1; + pBQ->r2[c].f32 = r2; + } +} + +static MA_INLINE void ma_biquad_process_pcm_frame_f32(ma_biquad* pBQ, float* pY, const float* pX) +{ + ma_biquad_process_pcm_frame_f32__direct_form_2_transposed(pBQ, pY, pX); +} + +static MA_INLINE void ma_biquad_process_pcm_frame_s16__direct_form_2_transposed(ma_biquad* pBQ, ma_int16* pY, const ma_int16* pX) +{ + ma_uint32 c; + const ma_uint32 channels = pBQ->channels; + const ma_int32 b0 = pBQ->b0.s32; + const ma_int32 b1 = pBQ->b1.s32; + const ma_int32 b2 = pBQ->b2.s32; + const ma_int32 a1 = pBQ->a1.s32; + const ma_int32 a2 = pBQ->a2.s32; + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + ma_int32 r1 = pBQ->r1[c].s32; + ma_int32 r2 = pBQ->r2[c].s32; + ma_int32 x = pX[c]; + ma_int32 y; + + y = (b0*x + r1) >> MA_BIQUAD_FIXED_POINT_SHIFT; + r1 = (b1*x - a1*y + r2); + r2 = (b2*x - a2*y); + + pY[c] = (ma_int16)ma_clamp(y, -32768, 32767); + pBQ->r1[c].s32 = r1; + pBQ->r2[c].s32 = r2; + } +} + +static MA_INLINE void ma_biquad_process_pcm_frame_s16(ma_biquad* pBQ, ma_int16* pY, const ma_int16* pX) +{ + ma_biquad_process_pcm_frame_s16__direct_form_2_transposed(pBQ, pY, pX); +} + +MA_API ma_result ma_biquad_process_pcm_frames(ma_biquad* pBQ, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_uint32 n; + + if (pBQ == NULL || pFramesOut == NULL || pFramesIn == NULL) { + return MA_INVALID_ARGS; + } + + /* Note that the logic below needs to support in-place filtering. That is, it must support the case where pFramesOut and pFramesIn are the same. */ + + if (pBQ->format == ma_format_f32) { + /* */ float* pY = ( float*)pFramesOut; + const float* pX = (const float*)pFramesIn; + + for (n = 0; n < frameCount; n += 1) { + ma_biquad_process_pcm_frame_f32__direct_form_2_transposed(pBQ, pY, pX); + pY += pBQ->channels; + pX += pBQ->channels; + } + } else if (pBQ->format == ma_format_s16) { + /* */ ma_int16* pY = ( ma_int16*)pFramesOut; + const ma_int16* pX = (const ma_int16*)pFramesIn; + + for (n = 0; n < frameCount; n += 1) { + ma_biquad_process_pcm_frame_s16__direct_form_2_transposed(pBQ, pY, pX); + pY += pBQ->channels; + pX += pBQ->channels; + } + } else { + MA_ASSERT(MA_FALSE); + return MA_INVALID_ARGS; /* Format not supported. Should never hit this because it's checked in ma_biquad_init() and ma_biquad_reinit(). */ + } + + return MA_SUCCESS; +} + +MA_API ma_uint32 ma_biquad_get_latency(const ma_biquad* pBQ) +{ + if (pBQ == NULL) { + return 0; + } + + return 2; +} + + +/************************************************************************************************************************************************************** + +Low-Pass Filter + +**************************************************************************************************************************************************************/ +MA_API ma_lpf1_config ma_lpf1_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency) +{ + ma_lpf1_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + config.q = 0.5; + + return config; +} + +MA_API ma_lpf2_config ma_lpf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, double q) +{ + ma_lpf2_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + config.q = q; + + /* Q cannot be 0 or else it'll result in a division by 0. In this case just default to 0.707107. */ + if (config.q == 0) { + config.q = 0.707107; + } + + return config; +} + + +MA_API ma_result ma_lpf1_init(const ma_lpf1_config* pConfig, ma_lpf1* pLPF) +{ + if (pLPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pLPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->channels < MA_MIN_CHANNELS || pConfig->channels > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + return ma_lpf1_reinit(pConfig, pLPF); +} + +MA_API ma_result ma_lpf1_reinit(const ma_lpf1_config* pConfig, ma_lpf1* pLPF) +{ + double a; + + if (pLPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + /* Only supporting f32 and s16. */ + if (pConfig->format != ma_format_f32 && pConfig->format != ma_format_s16) { + return MA_INVALID_ARGS; + } + + /* The format cannot be changed after initialization. */ + if (pLPF->format != ma_format_unknown && pLPF->format != pConfig->format) { + return MA_INVALID_OPERATION; + } + + /* The channel count cannot be changed after initialization. */ + if (pLPF->channels != 0 && pLPF->channels != pConfig->channels) { + return MA_INVALID_OPERATION; + } + + pLPF->format = pConfig->format; + pLPF->channels = pConfig->channels; + + a = ma_exp(-2 * MA_PI_D * pConfig->cutoffFrequency / pConfig->sampleRate); + if (pConfig->format == ma_format_f32) { + pLPF->a.f32 = (float)a; + } else { + pLPF->a.s32 = ma_biquad_float_to_fp(a); + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_lpf1_process_pcm_frame_f32(ma_lpf1* pLPF, float* pY, const float* pX) +{ + ma_uint32 c; + const ma_uint32 channels = pLPF->channels; + const float a = pLPF->a.f32; + const float b = 1 - a; + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + float r1 = pLPF->r1[c].f32; + float x = pX[c]; + float y; + + y = b*x + a*r1; + + pY[c] = y; + pLPF->r1[c].f32 = y; + } +} + +static MA_INLINE void ma_lpf1_process_pcm_frame_s16(ma_lpf1* pLPF, ma_int16* pY, const ma_int16* pX) +{ + ma_uint32 c; + const ma_uint32 channels = pLPF->channels; + const ma_int32 a = pLPF->a.s32; + const ma_int32 b = ((1 << MA_BIQUAD_FIXED_POINT_SHIFT) - a); + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + ma_int32 r1 = pLPF->r1[c].s32; + ma_int32 x = pX[c]; + ma_int32 y; + + y = (b*x + a*r1) >> MA_BIQUAD_FIXED_POINT_SHIFT; + + pY[c] = (ma_int16)y; + pLPF->r1[c].s32 = (ma_int32)y; + } +} + +MA_API ma_result ma_lpf1_process_pcm_frames(ma_lpf1* pLPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_uint32 n; + + if (pLPF == NULL || pFramesOut == NULL || pFramesIn == NULL) { + return MA_INVALID_ARGS; + } + + /* Note that the logic below needs to support in-place filtering. That is, it must support the case where pFramesOut and pFramesIn are the same. */ + + if (pLPF->format == ma_format_f32) { + /* */ float* pY = ( float*)pFramesOut; + const float* pX = (const float*)pFramesIn; + + for (n = 0; n < frameCount; n += 1) { + ma_lpf1_process_pcm_frame_f32(pLPF, pY, pX); + pY += pLPF->channels; + pX += pLPF->channels; + } + } else if (pLPF->format == ma_format_s16) { + /* */ ma_int16* pY = ( ma_int16*)pFramesOut; + const ma_int16* pX = (const ma_int16*)pFramesIn; + + for (n = 0; n < frameCount; n += 1) { + ma_lpf1_process_pcm_frame_s16(pLPF, pY, pX); + pY += pLPF->channels; + pX += pLPF->channels; + } + } else { + MA_ASSERT(MA_FALSE); + return MA_INVALID_ARGS; /* Format not supported. Should never hit this because it's checked in ma_biquad_init() and ma_biquad_reinit(). */ + } + + return MA_SUCCESS; +} + +MA_API ma_uint32 ma_lpf1_get_latency(const ma_lpf1* pLPF) +{ + if (pLPF == NULL) { + return 0; + } + + return 1; +} + + +static MA_INLINE ma_biquad_config ma_lpf2__get_biquad_config(const ma_lpf2_config* pConfig) +{ + ma_biquad_config bqConfig; + double q; + double w; + double s; + double c; + double a; + + MA_ASSERT(pConfig != NULL); + + q = pConfig->q; + w = 2 * MA_PI_D * pConfig->cutoffFrequency / pConfig->sampleRate; + s = ma_sin(w); + c = ma_cos(w); + a = s / (2*q); + + bqConfig.b0 = (1 - c) / 2; + bqConfig.b1 = 1 - c; + bqConfig.b2 = (1 - c) / 2; + bqConfig.a0 = 1 + a; + bqConfig.a1 = -2 * c; + bqConfig.a2 = 1 - a; + + bqConfig.format = pConfig->format; + bqConfig.channels = pConfig->channels; + + return bqConfig; +} + +MA_API ma_result ma_lpf2_init(const ma_lpf2_config* pConfig, ma_lpf2* pLPF) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pLPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pLPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_lpf2__get_biquad_config(pConfig); + result = ma_biquad_init(&bqConfig, &pLPF->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_lpf2_reinit(const ma_lpf2_config* pConfig, ma_lpf2* pLPF) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pLPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_lpf2__get_biquad_config(pConfig); + result = ma_biquad_reinit(&bqConfig, &pLPF->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_lpf2_process_pcm_frame_s16(ma_lpf2* pLPF, ma_int16* pFrameOut, const ma_int16* pFrameIn) +{ + ma_biquad_process_pcm_frame_s16(&pLPF->bq, pFrameOut, pFrameIn); +} + +static MA_INLINE void ma_lpf2_process_pcm_frame_f32(ma_lpf2* pLPF, float* pFrameOut, const float* pFrameIn) +{ + ma_biquad_process_pcm_frame_f32(&pLPF->bq, pFrameOut, pFrameIn); +} + +MA_API ma_result ma_lpf2_process_pcm_frames(ma_lpf2* pLPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pLPF == NULL) { + return MA_INVALID_ARGS; + } + + return ma_biquad_process_pcm_frames(&pLPF->bq, pFramesOut, pFramesIn, frameCount); +} + +MA_API ma_uint32 ma_lpf2_get_latency(const ma_lpf2* pLPF) +{ + if (pLPF == NULL) { + return 0; + } + + return ma_biquad_get_latency(&pLPF->bq); +} + + +MA_API ma_lpf_config ma_lpf_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, ma_uint32 order) +{ + ma_lpf_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + config.order = ma_min(order, MA_MAX_FILTER_ORDER); + + return config; +} + +static ma_result ma_lpf_reinit__internal(const ma_lpf_config* pConfig, ma_lpf* pLPF, ma_bool32 isNew) +{ + ma_result result; + ma_uint32 lpf1Count; + ma_uint32 lpf2Count; + ma_uint32 ilpf1; + ma_uint32 ilpf2; + + if (pLPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + /* Only supporting f32 and s16. */ + if (pConfig->format != ma_format_f32 && pConfig->format != ma_format_s16) { + return MA_INVALID_ARGS; + } + + /* The format cannot be changed after initialization. */ + if (pLPF->format != ma_format_unknown && pLPF->format != pConfig->format) { + return MA_INVALID_OPERATION; + } + + /* The channel count cannot be changed after initialization. */ + if (pLPF->channels != 0 && pLPF->channels != pConfig->channels) { + return MA_INVALID_OPERATION; + } + + if (pConfig->order > MA_MAX_FILTER_ORDER) { + return MA_INVALID_ARGS; + } + + lpf1Count = pConfig->order % 2; + lpf2Count = pConfig->order / 2; + + MA_ASSERT(lpf1Count <= ma_countof(pLPF->lpf1)); + MA_ASSERT(lpf2Count <= ma_countof(pLPF->lpf2)); + + /* The filter order can't change between reinits. */ + if (!isNew) { + if (pLPF->lpf1Count != lpf1Count || pLPF->lpf2Count != lpf2Count) { + return MA_INVALID_OPERATION; + } + } + + for (ilpf1 = 0; ilpf1 < lpf1Count; ilpf1 += 1) { + ma_lpf1_config lpf1Config = ma_lpf1_config_init(pConfig->format, pConfig->channels, pConfig->sampleRate, pConfig->cutoffFrequency); + + if (isNew) { + result = ma_lpf1_init(&lpf1Config, &pLPF->lpf1[ilpf1]); + } else { + result = ma_lpf1_reinit(&lpf1Config, &pLPF->lpf1[ilpf1]); + } + + if (result != MA_SUCCESS) { + return result; + } + } + + for (ilpf2 = 0; ilpf2 < lpf2Count; ilpf2 += 1) { + ma_lpf2_config lpf2Config; + double q; + double a; + + /* Tempting to use 0.707107, but won't result in a Butterworth filter if the order is > 2. */ + if (lpf1Count == 1) { + a = (1 + ilpf2*1) * (MA_PI_D/(pConfig->order*1)); /* Odd order. */ + } else { + a = (1 + ilpf2*2) * (MA_PI_D/(pConfig->order*2)); /* Even order. */ + } + q = 1 / (2*ma_cos(a)); + + lpf2Config = ma_lpf2_config_init(pConfig->format, pConfig->channels, pConfig->sampleRate, pConfig->cutoffFrequency, q); + + if (isNew) { + result = ma_lpf2_init(&lpf2Config, &pLPF->lpf2[ilpf2]); + } else { + result = ma_lpf2_reinit(&lpf2Config, &pLPF->lpf2[ilpf2]); + } + + if (result != MA_SUCCESS) { + return result; + } + } + + pLPF->lpf1Count = lpf1Count; + pLPF->lpf2Count = lpf2Count; + pLPF->format = pConfig->format; + pLPF->channels = pConfig->channels; + pLPF->sampleRate = pConfig->sampleRate; + + return MA_SUCCESS; +} + +MA_API ma_result ma_lpf_init(const ma_lpf_config* pConfig, ma_lpf* pLPF) +{ + if (pLPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pLPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + return ma_lpf_reinit__internal(pConfig, pLPF, /*isNew*/MA_TRUE); +} + +MA_API ma_result ma_lpf_reinit(const ma_lpf_config* pConfig, ma_lpf* pLPF) +{ + return ma_lpf_reinit__internal(pConfig, pLPF, /*isNew*/MA_FALSE); +} + +static MA_INLINE void ma_lpf_process_pcm_frame_f32(ma_lpf* pLPF, float* pY, const void* pX) +{ + ma_uint32 ilpf1; + ma_uint32 ilpf2; + + MA_ASSERT(pLPF->format == ma_format_f32); + + MA_COPY_MEMORY(pY, pX, ma_get_bytes_per_frame(pLPF->format, pLPF->channels)); + + for (ilpf1 = 0; ilpf1 < pLPF->lpf1Count; ilpf1 += 1) { + ma_lpf1_process_pcm_frame_f32(&pLPF->lpf1[ilpf1], pY, pY); + } + + for (ilpf2 = 0; ilpf2 < pLPF->lpf2Count; ilpf2 += 1) { + ma_lpf2_process_pcm_frame_f32(&pLPF->lpf2[ilpf2], pY, pY); + } +} + +static MA_INLINE void ma_lpf_process_pcm_frame_s16(ma_lpf* pLPF, ma_int16* pY, const ma_int16* pX) +{ + ma_uint32 ilpf1; + ma_uint32 ilpf2; + + MA_ASSERT(pLPF->format == ma_format_s16); + + MA_COPY_MEMORY(pY, pX, ma_get_bytes_per_frame(pLPF->format, pLPF->channels)); + + for (ilpf1 = 0; ilpf1 < pLPF->lpf1Count; ilpf1 += 1) { + ma_lpf1_process_pcm_frame_s16(&pLPF->lpf1[ilpf1], pY, pY); + } + + for (ilpf2 = 0; ilpf2 < pLPF->lpf2Count; ilpf2 += 1) { + ma_lpf2_process_pcm_frame_s16(&pLPF->lpf2[ilpf2], pY, pY); + } +} + +MA_API ma_result ma_lpf_process_pcm_frames(ma_lpf* pLPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_result result; + ma_uint32 ilpf1; + ma_uint32 ilpf2; + + if (pLPF == NULL) { + return MA_INVALID_ARGS; + } + + /* Faster path for in-place. */ + if (pFramesOut == pFramesIn) { + for (ilpf1 = 0; ilpf1 < pLPF->lpf1Count; ilpf1 += 1) { + result = ma_lpf1_process_pcm_frames(&pLPF->lpf1[ilpf1], pFramesOut, pFramesOut, frameCount); + if (result != MA_SUCCESS) { + return result; + } + } + + for (ilpf2 = 0; ilpf2 < pLPF->lpf2Count; ilpf2 += 1) { + result = ma_lpf2_process_pcm_frames(&pLPF->lpf2[ilpf2], pFramesOut, pFramesOut, frameCount); + if (result != MA_SUCCESS) { + return result; + } + } + } + + /* Slightly slower path for copying. */ + if (pFramesOut != pFramesIn) { + ma_uint32 iFrame; + + /* */ if (pLPF->format == ma_format_f32) { + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_lpf_process_pcm_frame_f32(pLPF, pFramesOutF32, pFramesInF32); + pFramesOutF32 += pLPF->channels; + pFramesInF32 += pLPF->channels; + } + } else if (pLPF->format == ma_format_s16) { + /* */ ma_int16* pFramesOutS16 = ( ma_int16*)pFramesOut; + const ma_int16* pFramesInS16 = (const ma_int16*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_lpf_process_pcm_frame_s16(pLPF, pFramesOutS16, pFramesInS16); + pFramesOutS16 += pLPF->channels; + pFramesInS16 += pLPF->channels; + } + } else { + MA_ASSERT(MA_FALSE); + return MA_INVALID_OPERATION; /* Should never hit this. */ + } + } + + return MA_SUCCESS; +} + +MA_API ma_uint32 ma_lpf_get_latency(const ma_lpf* pLPF) +{ + if (pLPF == NULL) { + return 0; + } + + return pLPF->lpf2Count*2 + pLPF->lpf1Count; +} + + +/************************************************************************************************************************************************************** + +High-Pass Filtering + +**************************************************************************************************************************************************************/ +MA_API ma_hpf1_config ma_hpf1_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency) +{ + ma_hpf1_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + + return config; +} + +MA_API ma_hpf2_config ma_hpf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, double q) +{ + ma_hpf2_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + config.q = q; + + /* Q cannot be 0 or else it'll result in a division by 0. In this case just default to 0.707107. */ + if (config.q == 0) { + config.q = 0.707107; + } + + return config; +} + + +MA_API ma_result ma_hpf1_init(const ma_hpf1_config* pConfig, ma_hpf1* pHPF) +{ + if (pHPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pHPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->channels < MA_MIN_CHANNELS || pConfig->channels > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + return ma_hpf1_reinit(pConfig, pHPF); +} + +MA_API ma_result ma_hpf1_reinit(const ma_hpf1_config* pConfig, ma_hpf1* pHPF) +{ + double a; + + if (pHPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + /* Only supporting f32 and s16. */ + if (pConfig->format != ma_format_f32 && pConfig->format != ma_format_s16) { + return MA_INVALID_ARGS; + } + + /* The format cannot be changed after initialization. */ + if (pHPF->format != ma_format_unknown && pHPF->format != pConfig->format) { + return MA_INVALID_OPERATION; + } + + /* The channel count cannot be changed after initialization. */ + if (pHPF->channels != 0 && pHPF->channels != pConfig->channels) { + return MA_INVALID_OPERATION; + } + + pHPF->format = pConfig->format; + pHPF->channels = pConfig->channels; + + a = ma_exp(-2 * MA_PI_D * pConfig->cutoffFrequency / pConfig->sampleRate); + if (pConfig->format == ma_format_f32) { + pHPF->a.f32 = (float)a; + } else { + pHPF->a.s32 = ma_biquad_float_to_fp(a); + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_hpf1_process_pcm_frame_f32(ma_hpf1* pHPF, float* pY, const float* pX) +{ + ma_uint32 c; + const ma_uint32 channels = pHPF->channels; + const float a = 1 - pHPF->a.f32; + const float b = 1 - a; + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + float r1 = pHPF->r1[c].f32; + float x = pX[c]; + float y; + + y = b*x - a*r1; + + pY[c] = y; + pHPF->r1[c].f32 = y; + } +} + +static MA_INLINE void ma_hpf1_process_pcm_frame_s16(ma_hpf1* pHPF, ma_int16* pY, const ma_int16* pX) +{ + ma_uint32 c; + const ma_uint32 channels = pHPF->channels; + const ma_int32 a = ((1 << MA_BIQUAD_FIXED_POINT_SHIFT) - pHPF->a.s32); + const ma_int32 b = ((1 << MA_BIQUAD_FIXED_POINT_SHIFT) - a); + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + ma_int32 r1 = pHPF->r1[c].s32; + ma_int32 x = pX[c]; + ma_int32 y; + + y = (b*x - a*r1) >> MA_BIQUAD_FIXED_POINT_SHIFT; + + pY[c] = (ma_int16)y; + pHPF->r1[c].s32 = (ma_int32)y; + } +} + +MA_API ma_result ma_hpf1_process_pcm_frames(ma_hpf1* pHPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_uint32 n; + + if (pHPF == NULL || pFramesOut == NULL || pFramesIn == NULL) { + return MA_INVALID_ARGS; + } + + /* Note that the logic below needs to support in-place filtering. That is, it must support the case where pFramesOut and pFramesIn are the same. */ + + if (pHPF->format == ma_format_f32) { + /* */ float* pY = ( float*)pFramesOut; + const float* pX = (const float*)pFramesIn; + + for (n = 0; n < frameCount; n += 1) { + ma_hpf1_process_pcm_frame_f32(pHPF, pY, pX); + pY += pHPF->channels; + pX += pHPF->channels; + } + } else if (pHPF->format == ma_format_s16) { + /* */ ma_int16* pY = ( ma_int16*)pFramesOut; + const ma_int16* pX = (const ma_int16*)pFramesIn; + + for (n = 0; n < frameCount; n += 1) { + ma_hpf1_process_pcm_frame_s16(pHPF, pY, pX); + pY += pHPF->channels; + pX += pHPF->channels; + } + } else { + MA_ASSERT(MA_FALSE); + return MA_INVALID_ARGS; /* Format not supported. Should never hit this because it's checked in ma_biquad_init() and ma_biquad_reinit(). */ + } + + return MA_SUCCESS; +} + +MA_API ma_uint32 ma_hpf1_get_latency(const ma_hpf1* pHPF) +{ + if (pHPF == NULL) { + return 0; + } + + return 1; +} + + +static MA_INLINE ma_biquad_config ma_hpf2__get_biquad_config(const ma_hpf2_config* pConfig) +{ + ma_biquad_config bqConfig; + double q; + double w; + double s; + double c; + double a; + + MA_ASSERT(pConfig != NULL); + + q = pConfig->q; + w = 2 * MA_PI_D * pConfig->cutoffFrequency / pConfig->sampleRate; + s = ma_sin(w); + c = ma_cos(w); + a = s / (2*q); + + bqConfig.b0 = (1 + c) / 2; + bqConfig.b1 = -(1 + c); + bqConfig.b2 = (1 + c) / 2; + bqConfig.a0 = 1 + a; + bqConfig.a1 = -2 * c; + bqConfig.a2 = 1 - a; + + bqConfig.format = pConfig->format; + bqConfig.channels = pConfig->channels; + + return bqConfig; +} + +MA_API ma_result ma_hpf2_init(const ma_hpf2_config* pConfig, ma_hpf2* pHPF) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pHPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pHPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_hpf2__get_biquad_config(pConfig); + result = ma_biquad_init(&bqConfig, &pHPF->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_hpf2_reinit(const ma_hpf2_config* pConfig, ma_hpf2* pHPF) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pHPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_hpf2__get_biquad_config(pConfig); + result = ma_biquad_reinit(&bqConfig, &pHPF->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_hpf2_process_pcm_frame_s16(ma_hpf2* pHPF, ma_int16* pFrameOut, const ma_int16* pFrameIn) +{ + ma_biquad_process_pcm_frame_s16(&pHPF->bq, pFrameOut, pFrameIn); +} + +static MA_INLINE void ma_hpf2_process_pcm_frame_f32(ma_hpf2* pHPF, float* pFrameOut, const float* pFrameIn) +{ + ma_biquad_process_pcm_frame_f32(&pHPF->bq, pFrameOut, pFrameIn); +} + +MA_API ma_result ma_hpf2_process_pcm_frames(ma_hpf2* pHPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pHPF == NULL) { + return MA_INVALID_ARGS; + } + + return ma_biquad_process_pcm_frames(&pHPF->bq, pFramesOut, pFramesIn, frameCount); +} + +MA_API ma_uint32 ma_hpf2_get_latency(const ma_hpf2* pHPF) +{ + if (pHPF == NULL) { + return 0; + } + + return ma_biquad_get_latency(&pHPF->bq); +} + + +MA_API ma_hpf_config ma_hpf_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, ma_uint32 order) +{ + ma_hpf_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + config.order = ma_min(order, MA_MAX_FILTER_ORDER); + + return config; +} + +static ma_result ma_hpf_reinit__internal(const ma_hpf_config* pConfig, ma_hpf* pHPF, ma_bool32 isNew) +{ + ma_result result; + ma_uint32 hpf1Count; + ma_uint32 hpf2Count; + ma_uint32 ihpf1; + ma_uint32 ihpf2; + + if (pHPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + /* Only supporting f32 and s16. */ + if (pConfig->format != ma_format_f32 && pConfig->format != ma_format_s16) { + return MA_INVALID_ARGS; + } + + /* The format cannot be changed after initialization. */ + if (pHPF->format != ma_format_unknown && pHPF->format != pConfig->format) { + return MA_INVALID_OPERATION; + } + + /* The channel count cannot be changed after initialization. */ + if (pHPF->channels != 0 && pHPF->channels != pConfig->channels) { + return MA_INVALID_OPERATION; + } + + if (pConfig->order > MA_MAX_FILTER_ORDER) { + return MA_INVALID_ARGS; + } + + hpf1Count = pConfig->order % 2; + hpf2Count = pConfig->order / 2; + + MA_ASSERT(hpf1Count <= ma_countof(pHPF->hpf1)); + MA_ASSERT(hpf2Count <= ma_countof(pHPF->hpf2)); + + /* The filter order can't change between reinits. */ + if (!isNew) { + if (pHPF->hpf1Count != hpf1Count || pHPF->hpf2Count != hpf2Count) { + return MA_INVALID_OPERATION; + } + } + + for (ihpf1 = 0; ihpf1 < hpf1Count; ihpf1 += 1) { + ma_hpf1_config hpf1Config = ma_hpf1_config_init(pConfig->format, pConfig->channels, pConfig->sampleRate, pConfig->cutoffFrequency); + + if (isNew) { + result = ma_hpf1_init(&hpf1Config, &pHPF->hpf1[ihpf1]); + } else { + result = ma_hpf1_reinit(&hpf1Config, &pHPF->hpf1[ihpf1]); + } + + if (result != MA_SUCCESS) { + return result; + } + } + + for (ihpf2 = 0; ihpf2 < hpf2Count; ihpf2 += 1) { + ma_hpf2_config hpf2Config; + double q; + double a; + + /* Tempting to use 0.707107, but won't result in a Butterworth filter if the order is > 2. */ + if (hpf1Count == 1) { + a = (1 + ihpf2*1) * (MA_PI_D/(pConfig->order*1)); /* Odd order. */ + } else { + a = (1 + ihpf2*2) * (MA_PI_D/(pConfig->order*2)); /* Even order. */ + } + q = 1 / (2*ma_cos(a)); + + hpf2Config = ma_hpf2_config_init(pConfig->format, pConfig->channels, pConfig->sampleRate, pConfig->cutoffFrequency, q); + + if (isNew) { + result = ma_hpf2_init(&hpf2Config, &pHPF->hpf2[ihpf2]); + } else { + result = ma_hpf2_reinit(&hpf2Config, &pHPF->hpf2[ihpf2]); + } + + if (result != MA_SUCCESS) { + return result; + } + } + + pHPF->hpf1Count = hpf1Count; + pHPF->hpf2Count = hpf2Count; + pHPF->format = pConfig->format; + pHPF->channels = pConfig->channels; + pHPF->sampleRate = pConfig->sampleRate; + + return MA_SUCCESS; +} + +MA_API ma_result ma_hpf_init(const ma_hpf_config* pConfig, ma_hpf* pHPF) +{ + if (pHPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pHPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + return ma_hpf_reinit__internal(pConfig, pHPF, /*isNew*/MA_TRUE); +} + +MA_API ma_result ma_hpf_reinit(const ma_hpf_config* pConfig, ma_hpf* pHPF) +{ + return ma_hpf_reinit__internal(pConfig, pHPF, /*isNew*/MA_FALSE); +} + +MA_API ma_result ma_hpf_process_pcm_frames(ma_hpf* pHPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_result result; + ma_uint32 ihpf1; + ma_uint32 ihpf2; + + if (pHPF == NULL) { + return MA_INVALID_ARGS; + } + + /* Faster path for in-place. */ + if (pFramesOut == pFramesIn) { + for (ihpf1 = 0; ihpf1 < pHPF->hpf1Count; ihpf1 += 1) { + result = ma_hpf1_process_pcm_frames(&pHPF->hpf1[ihpf1], pFramesOut, pFramesOut, frameCount); + if (result != MA_SUCCESS) { + return result; + } + } + + for (ihpf2 = 0; ihpf2 < pHPF->hpf2Count; ihpf2 += 1) { + result = ma_hpf2_process_pcm_frames(&pHPF->hpf2[ihpf2], pFramesOut, pFramesOut, frameCount); + if (result != MA_SUCCESS) { + return result; + } + } + } + + /* Slightly slower path for copying. */ + if (pFramesOut != pFramesIn) { + ma_uint32 iFrame; + + /* */ if (pHPF->format == ma_format_f32) { + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + MA_COPY_MEMORY(pFramesOutF32, pFramesInF32, ma_get_bytes_per_frame(pHPF->format, pHPF->channels)); + + for (ihpf1 = 0; ihpf1 < pHPF->hpf1Count; ihpf1 += 1) { + ma_hpf1_process_pcm_frame_f32(&pHPF->hpf1[ihpf1], pFramesOutF32, pFramesOutF32); + } + + for (ihpf2 = 0; ihpf2 < pHPF->hpf2Count; ihpf2 += 1) { + ma_hpf2_process_pcm_frame_f32(&pHPF->hpf2[ihpf2], pFramesOutF32, pFramesOutF32); + } + + pFramesOutF32 += pHPF->channels; + pFramesInF32 += pHPF->channels; + } + } else if (pHPF->format == ma_format_s16) { + /* */ ma_int16* pFramesOutS16 = ( ma_int16*)pFramesOut; + const ma_int16* pFramesInS16 = (const ma_int16*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + MA_COPY_MEMORY(pFramesOutS16, pFramesInS16, ma_get_bytes_per_frame(pHPF->format, pHPF->channels)); + + for (ihpf1 = 0; ihpf1 < pHPF->hpf1Count; ihpf1 += 1) { + ma_hpf1_process_pcm_frame_s16(&pHPF->hpf1[ihpf1], pFramesOutS16, pFramesOutS16); + } + + for (ihpf2 = 0; ihpf2 < pHPF->hpf2Count; ihpf2 += 1) { + ma_hpf2_process_pcm_frame_s16(&pHPF->hpf2[ihpf2], pFramesOutS16, pFramesOutS16); + } + + pFramesOutS16 += pHPF->channels; + pFramesInS16 += pHPF->channels; + } + } else { + MA_ASSERT(MA_FALSE); + return MA_INVALID_OPERATION; /* Should never hit this. */ + } + } + + return MA_SUCCESS; +} + +MA_API ma_uint32 ma_hpf_get_latency(const ma_hpf* pHPF) +{ + if (pHPF == NULL) { + return 0; + } + + return pHPF->hpf2Count*2 + pHPF->hpf1Count; +} + + +/************************************************************************************************************************************************************** + +Band-Pass Filtering + +**************************************************************************************************************************************************************/ +MA_API ma_bpf2_config ma_bpf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, double q) +{ + ma_bpf2_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + config.q = q; + + /* Q cannot be 0 or else it'll result in a division by 0. In this case just default to 0.707107. */ + if (config.q == 0) { + config.q = 0.707107; + } + + return config; +} + + +static MA_INLINE ma_biquad_config ma_bpf2__get_biquad_config(const ma_bpf2_config* pConfig) +{ + ma_biquad_config bqConfig; + double q; + double w; + double s; + double c; + double a; + + MA_ASSERT(pConfig != NULL); + + q = pConfig->q; + w = 2 * MA_PI_D * pConfig->cutoffFrequency / pConfig->sampleRate; + s = ma_sin(w); + c = ma_cos(w); + a = s / (2*q); + + bqConfig.b0 = q * a; + bqConfig.b1 = 0; + bqConfig.b2 = -q * a; + bqConfig.a0 = 1 + a; + bqConfig.a1 = -2 * c; + bqConfig.a2 = 1 - a; + + bqConfig.format = pConfig->format; + bqConfig.channels = pConfig->channels; + + return bqConfig; +} + +MA_API ma_result ma_bpf2_init(const ma_bpf2_config* pConfig, ma_bpf2* pBPF) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pBPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pBPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_bpf2__get_biquad_config(pConfig); + result = ma_biquad_init(&bqConfig, &pBPF->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_bpf2_reinit(const ma_bpf2_config* pConfig, ma_bpf2* pBPF) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pBPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_bpf2__get_biquad_config(pConfig); + result = ma_biquad_reinit(&bqConfig, &pBPF->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_bpf2_process_pcm_frame_s16(ma_bpf2* pBPF, ma_int16* pFrameOut, const ma_int16* pFrameIn) +{ + ma_biquad_process_pcm_frame_s16(&pBPF->bq, pFrameOut, pFrameIn); +} + +static MA_INLINE void ma_bpf2_process_pcm_frame_f32(ma_bpf2* pBPF, float* pFrameOut, const float* pFrameIn) +{ + ma_biquad_process_pcm_frame_f32(&pBPF->bq, pFrameOut, pFrameIn); +} + +MA_API ma_result ma_bpf2_process_pcm_frames(ma_bpf2* pBPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pBPF == NULL) { + return MA_INVALID_ARGS; + } + + return ma_biquad_process_pcm_frames(&pBPF->bq, pFramesOut, pFramesIn, frameCount); +} + +MA_API ma_uint32 ma_bpf2_get_latency(const ma_bpf2* pBPF) +{ + if (pBPF == NULL) { + return 0; + } + + return ma_biquad_get_latency(&pBPF->bq); +} + + +MA_API ma_bpf_config ma_bpf_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double cutoffFrequency, ma_uint32 order) +{ + ma_bpf_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.cutoffFrequency = cutoffFrequency; + config.order = ma_min(order, MA_MAX_FILTER_ORDER); + + return config; +} + +static ma_result ma_bpf_reinit__internal(const ma_bpf_config* pConfig, ma_bpf* pBPF, ma_bool32 isNew) +{ + ma_result result; + ma_uint32 bpf2Count; + ma_uint32 ibpf2; + + if (pBPF == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + /* Only supporting f32 and s16. */ + if (pConfig->format != ma_format_f32 && pConfig->format != ma_format_s16) { + return MA_INVALID_ARGS; + } + + /* The format cannot be changed after initialization. */ + if (pBPF->format != ma_format_unknown && pBPF->format != pConfig->format) { + return MA_INVALID_OPERATION; + } + + /* The channel count cannot be changed after initialization. */ + if (pBPF->channels != 0 && pBPF->channels != pConfig->channels) { + return MA_INVALID_OPERATION; + } + + if (pConfig->order > MA_MAX_FILTER_ORDER) { + return MA_INVALID_ARGS; + } + + /* We must have an even number of order. */ + if ((pConfig->order & 0x1) != 0) { + return MA_INVALID_ARGS; + } + + bpf2Count = pConfig->order / 2; + + MA_ASSERT(bpf2Count <= ma_countof(pBPF->bpf2)); + + /* The filter order can't change between reinits. */ + if (!isNew) { + if (pBPF->bpf2Count != bpf2Count) { + return MA_INVALID_OPERATION; + } + } + + for (ibpf2 = 0; ibpf2 < bpf2Count; ibpf2 += 1) { + ma_bpf2_config bpf2Config; + double q; + + /* TODO: Calculate Q to make this a proper Butterworth filter. */ + q = 0.707107; + + bpf2Config = ma_bpf2_config_init(pConfig->format, pConfig->channels, pConfig->sampleRate, pConfig->cutoffFrequency, q); + + if (isNew) { + result = ma_bpf2_init(&bpf2Config, &pBPF->bpf2[ibpf2]); + } else { + result = ma_bpf2_reinit(&bpf2Config, &pBPF->bpf2[ibpf2]); + } + + if (result != MA_SUCCESS) { + return result; + } + } + + pBPF->bpf2Count = bpf2Count; + pBPF->format = pConfig->format; + pBPF->channels = pConfig->channels; + + return MA_SUCCESS; +} + +MA_API ma_result ma_bpf_init(const ma_bpf_config* pConfig, ma_bpf* pBPF) +{ + if (pBPF == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pBPF); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + return ma_bpf_reinit__internal(pConfig, pBPF, /*isNew*/MA_TRUE); +} + +MA_API ma_result ma_bpf_reinit(const ma_bpf_config* pConfig, ma_bpf* pBPF) +{ + return ma_bpf_reinit__internal(pConfig, pBPF, /*isNew*/MA_FALSE); +} + +MA_API ma_result ma_bpf_process_pcm_frames(ma_bpf* pBPF, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_result result; + ma_uint32 ibpf2; + + if (pBPF == NULL) { + return MA_INVALID_ARGS; + } + + /* Faster path for in-place. */ + if (pFramesOut == pFramesIn) { + for (ibpf2 = 0; ibpf2 < pBPF->bpf2Count; ibpf2 += 1) { + result = ma_bpf2_process_pcm_frames(&pBPF->bpf2[ibpf2], pFramesOut, pFramesOut, frameCount); + if (result != MA_SUCCESS) { + return result; + } + } + } + + /* Slightly slower path for copying. */ + if (pFramesOut != pFramesIn) { + ma_uint32 iFrame; + + /* */ if (pBPF->format == ma_format_f32) { + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + MA_COPY_MEMORY(pFramesOutF32, pFramesInF32, ma_get_bytes_per_frame(pBPF->format, pBPF->channels)); + + for (ibpf2 = 0; ibpf2 < pBPF->bpf2Count; ibpf2 += 1) { + ma_bpf2_process_pcm_frame_f32(&pBPF->bpf2[ibpf2], pFramesOutF32, pFramesOutF32); + } + + pFramesOutF32 += pBPF->channels; + pFramesInF32 += pBPF->channels; + } + } else if (pBPF->format == ma_format_s16) { + /* */ ma_int16* pFramesOutS16 = ( ma_int16*)pFramesOut; + const ma_int16* pFramesInS16 = (const ma_int16*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + MA_COPY_MEMORY(pFramesOutS16, pFramesInS16, ma_get_bytes_per_frame(pBPF->format, pBPF->channels)); + + for (ibpf2 = 0; ibpf2 < pBPF->bpf2Count; ibpf2 += 1) { + ma_bpf2_process_pcm_frame_s16(&pBPF->bpf2[ibpf2], pFramesOutS16, pFramesOutS16); + } + + pFramesOutS16 += pBPF->channels; + pFramesInS16 += pBPF->channels; + } + } else { + MA_ASSERT(MA_FALSE); + return MA_INVALID_OPERATION; /* Should never hit this. */ + } + } + + return MA_SUCCESS; +} + +MA_API ma_uint32 ma_bpf_get_latency(const ma_bpf* pBPF) +{ + if (pBPF == NULL) { + return 0; + } + + return pBPF->bpf2Count*2; +} + + +/************************************************************************************************************************************************************** + +Notching Filter + +**************************************************************************************************************************************************************/ +MA_API ma_notch2_config ma_notch2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double q, double frequency) +{ + ma_notch2_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.q = q; + config.frequency = frequency; + + if (config.q == 0) { + config.q = 0.707107; + } + + return config; +} + + +static MA_INLINE ma_biquad_config ma_notch2__get_biquad_config(const ma_notch2_config* pConfig) +{ + ma_biquad_config bqConfig; + double q; + double w; + double s; + double c; + double a; + + MA_ASSERT(pConfig != NULL); + + q = pConfig->q; + w = 2 * MA_PI_D * pConfig->frequency / pConfig->sampleRate; + s = ma_sin(w); + c = ma_cos(w); + a = s / (2*q); + + bqConfig.b0 = 1; + bqConfig.b1 = -2 * c; + bqConfig.b2 = 1; + bqConfig.a0 = 1 + a; + bqConfig.a1 = -2 * c; + bqConfig.a2 = 1 - a; + + bqConfig.format = pConfig->format; + bqConfig.channels = pConfig->channels; + + return bqConfig; +} + +MA_API ma_result ma_notch2_init(const ma_notch2_config* pConfig, ma_notch2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pFilter); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_notch2__get_biquad_config(pConfig); + result = ma_biquad_init(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_notch2_reinit(const ma_notch2_config* pConfig, ma_notch2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_notch2__get_biquad_config(pConfig); + result = ma_biquad_reinit(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_notch2_process_pcm_frame_s16(ma_notch2* pFilter, ma_int16* pFrameOut, const ma_int16* pFrameIn) +{ + ma_biquad_process_pcm_frame_s16(&pFilter->bq, pFrameOut, pFrameIn); +} + +static MA_INLINE void ma_notch2_process_pcm_frame_f32(ma_notch2* pFilter, float* pFrameOut, const float* pFrameIn) +{ + ma_biquad_process_pcm_frame_f32(&pFilter->bq, pFrameOut, pFrameIn); +} + +MA_API ma_result ma_notch2_process_pcm_frames(ma_notch2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + return ma_biquad_process_pcm_frames(&pFilter->bq, pFramesOut, pFramesIn, frameCount); +} + +MA_API ma_uint32 ma_notch2_get_latency(const ma_notch2* pFilter) +{ + if (pFilter == NULL) { + return 0; + } + + return ma_biquad_get_latency(&pFilter->bq); +} + + + +/************************************************************************************************************************************************************** + +Peaking EQ Filter + +**************************************************************************************************************************************************************/ +MA_API ma_peak2_config ma_peak2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double gainDB, double q, double frequency) +{ + ma_peak2_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.gainDB = gainDB; + config.q = q; + config.frequency = frequency; + + if (config.q == 0) { + config.q = 0.707107; + } + + return config; +} + + +static MA_INLINE ma_biquad_config ma_peak2__get_biquad_config(const ma_peak2_config* pConfig) +{ + ma_biquad_config bqConfig; + double q; + double w; + double s; + double c; + double a; + double A; + + MA_ASSERT(pConfig != NULL); + + q = pConfig->q; + w = 2 * MA_PI_D * pConfig->frequency / pConfig->sampleRate; + s = ma_sin(w); + c = ma_cos(w); + a = s / (2*q); + A = ma_pow(10, (pConfig->gainDB / 40)); + + bqConfig.b0 = 1 + (a * A); + bqConfig.b1 = -2 * c; + bqConfig.b2 = 1 - (a * A); + bqConfig.a0 = 1 + (a / A); + bqConfig.a1 = -2 * c; + bqConfig.a2 = 1 - (a / A); + + bqConfig.format = pConfig->format; + bqConfig.channels = pConfig->channels; + + return bqConfig; +} + +MA_API ma_result ma_peak2_init(const ma_peak2_config* pConfig, ma_peak2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pFilter); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_peak2__get_biquad_config(pConfig); + result = ma_biquad_init(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_peak2_reinit(const ma_peak2_config* pConfig, ma_peak2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_peak2__get_biquad_config(pConfig); + result = ma_biquad_reinit(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_peak2_process_pcm_frame_s16(ma_peak2* pFilter, ma_int16* pFrameOut, const ma_int16* pFrameIn) +{ + ma_biquad_process_pcm_frame_s16(&pFilter->bq, pFrameOut, pFrameIn); +} + +static MA_INLINE void ma_peak2_process_pcm_frame_f32(ma_peak2* pFilter, float* pFrameOut, const float* pFrameIn) +{ + ma_biquad_process_pcm_frame_f32(&pFilter->bq, pFrameOut, pFrameIn); +} + +MA_API ma_result ma_peak2_process_pcm_frames(ma_peak2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + return ma_biquad_process_pcm_frames(&pFilter->bq, pFramesOut, pFramesIn, frameCount); +} + +MA_API ma_uint32 ma_peak2_get_latency(const ma_peak2* pFilter) +{ + if (pFilter == NULL) { + return 0; + } + + return ma_biquad_get_latency(&pFilter->bq); +} + + +/************************************************************************************************************************************************************** + +Low Shelf Filter + +**************************************************************************************************************************************************************/ +MA_API ma_loshelf2_config ma_loshelf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double gainDB, double shelfSlope, double frequency) +{ + ma_loshelf2_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.gainDB = gainDB; + config.shelfSlope = shelfSlope; + config.frequency = frequency; + + return config; +} + + +static MA_INLINE ma_biquad_config ma_loshelf2__get_biquad_config(const ma_loshelf2_config* pConfig) +{ + ma_biquad_config bqConfig; + double w; + double s; + double c; + double A; + double S; + double a; + double sqrtA; + + MA_ASSERT(pConfig != NULL); + + w = 2 * MA_PI_D * pConfig->frequency / pConfig->sampleRate; + s = ma_sin(w); + c = ma_cos(w); + A = ma_pow(10, (pConfig->gainDB / 40)); + S = pConfig->shelfSlope; + a = s/2 * ma_sqrt((A + 1/A) * (1/S - 1) + 2); + sqrtA = 2*ma_sqrt(A)*a; + + bqConfig.b0 = A * ((A + 1) - (A - 1)*c + sqrtA); + bqConfig.b1 = 2 * A * ((A - 1) - (A + 1)*c); + bqConfig.b2 = A * ((A + 1) - (A - 1)*c - sqrtA); + bqConfig.a0 = (A + 1) + (A - 1)*c + sqrtA; + bqConfig.a1 = -2 * ((A - 1) + (A + 1)*c); + bqConfig.a2 = (A + 1) + (A - 1)*c - sqrtA; + + bqConfig.format = pConfig->format; + bqConfig.channels = pConfig->channels; + + return bqConfig; +} + +MA_API ma_result ma_loshelf2_init(const ma_loshelf2_config* pConfig, ma_loshelf2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pFilter); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_loshelf2__get_biquad_config(pConfig); + result = ma_biquad_init(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_loshelf2_reinit(const ma_loshelf2_config* pConfig, ma_loshelf2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_loshelf2__get_biquad_config(pConfig); + result = ma_biquad_reinit(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_loshelf2_process_pcm_frame_s16(ma_loshelf2* pFilter, ma_int16* pFrameOut, const ma_int16* pFrameIn) +{ + ma_biquad_process_pcm_frame_s16(&pFilter->bq, pFrameOut, pFrameIn); +} + +static MA_INLINE void ma_loshelf2_process_pcm_frame_f32(ma_loshelf2* pFilter, float* pFrameOut, const float* pFrameIn) +{ + ma_biquad_process_pcm_frame_f32(&pFilter->bq, pFrameOut, pFrameIn); +} + +MA_API ma_result ma_loshelf2_process_pcm_frames(ma_loshelf2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + return ma_biquad_process_pcm_frames(&pFilter->bq, pFramesOut, pFramesIn, frameCount); +} + +MA_API ma_uint32 ma_loshelf2_get_latency(const ma_loshelf2* pFilter) +{ + if (pFilter == NULL) { + return 0; + } + + return ma_biquad_get_latency(&pFilter->bq); +} + + +/************************************************************************************************************************************************************** + +High Shelf Filter + +**************************************************************************************************************************************************************/ +MA_API ma_hishelf2_config ma_hishelf2_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double gainDB, double shelfSlope, double frequency) +{ + ma_hishelf2_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.gainDB = gainDB; + config.shelfSlope = shelfSlope; + config.frequency = frequency; + + return config; +} + + +static MA_INLINE ma_biquad_config ma_hishelf2__get_biquad_config(const ma_hishelf2_config* pConfig) +{ + ma_biquad_config bqConfig; + double w; + double s; + double c; + double A; + double S; + double a; + double sqrtA; + + MA_ASSERT(pConfig != NULL); + + w = 2 * MA_PI_D * pConfig->frequency / pConfig->sampleRate; + s = ma_sin(w); + c = ma_cos(w); + A = ma_pow(10, (pConfig->gainDB / 40)); + S = pConfig->shelfSlope; + a = s/2 * ma_sqrt((A + 1/A) * (1/S - 1) + 2); + sqrtA = 2*ma_sqrt(A)*a; + + bqConfig.b0 = A * ((A + 1) + (A - 1)*c + sqrtA); + bqConfig.b1 = -2 * A * ((A - 1) + (A + 1)*c); + bqConfig.b2 = A * ((A + 1) + (A - 1)*c - sqrtA); + bqConfig.a0 = (A + 1) - (A - 1)*c + sqrtA; + bqConfig.a1 = 2 * ((A - 1) - (A + 1)*c); + bqConfig.a2 = (A + 1) - (A - 1)*c - sqrtA; + + bqConfig.format = pConfig->format; + bqConfig.channels = pConfig->channels; + + return bqConfig; +} + +MA_API ma_result ma_hishelf2_init(const ma_hishelf2_config* pConfig, ma_hishelf2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pFilter); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_hishelf2__get_biquad_config(pConfig); + result = ma_biquad_init(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_hishelf2_reinit(const ma_hishelf2_config* pConfig, ma_hishelf2* pFilter) +{ + ma_result result; + ma_biquad_config bqConfig; + + if (pFilter == NULL || pConfig == NULL) { + return MA_INVALID_ARGS; + } + + bqConfig = ma_hishelf2__get_biquad_config(pConfig); + result = ma_biquad_reinit(&bqConfig, &pFilter->bq); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static MA_INLINE void ma_hishelf2_process_pcm_frame_s16(ma_hishelf2* pFilter, ma_int16* pFrameOut, const ma_int16* pFrameIn) +{ + ma_biquad_process_pcm_frame_s16(&pFilter->bq, pFrameOut, pFrameIn); +} + +static MA_INLINE void ma_hishelf2_process_pcm_frame_f32(ma_hishelf2* pFilter, float* pFrameOut, const float* pFrameIn) +{ + ma_biquad_process_pcm_frame_f32(&pFilter->bq, pFrameOut, pFrameIn); +} + +MA_API ma_result ma_hishelf2_process_pcm_frames(ma_hishelf2* pFilter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pFilter == NULL) { + return MA_INVALID_ARGS; + } + + return ma_biquad_process_pcm_frames(&pFilter->bq, pFramesOut, pFramesIn, frameCount); +} + +MA_API ma_uint32 ma_hishelf2_get_latency(const ma_hishelf2* pFilter) +{ + if (pFilter == NULL) { + return 0; + } + + return ma_biquad_get_latency(&pFilter->bq); +} + + + +/************************************************************************************************************************************************************** + +Resampling + +**************************************************************************************************************************************************************/ +MA_API ma_linear_resampler_config ma_linear_resampler_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut) +{ + ma_linear_resampler_config config; + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRateIn = sampleRateIn; + config.sampleRateOut = sampleRateOut; + config.lpfOrder = ma_min(MA_DEFAULT_RESAMPLER_LPF_ORDER, MA_MAX_FILTER_ORDER); + config.lpfNyquistFactor = 1; + + return config; +} + +static void ma_linear_resampler_adjust_timer_for_new_rate(ma_linear_resampler* pResampler, ma_uint32 oldSampleRateOut, ma_uint32 newSampleRateOut) +{ + /* + So what's happening here? Basically we need to adjust the fractional component of the time advance based on the new rate. The old time advance will + be based on the old sample rate, but we are needing to adjust it to that it's based on the new sample rate. + */ + ma_uint32 oldRateTimeWhole = pResampler->inTimeFrac / oldSampleRateOut; /* <-- This should almost never be anything other than 0, but leaving it here to make this more general and robust just in case. */ + ma_uint32 oldRateTimeFract = pResampler->inTimeFrac % oldSampleRateOut; + + pResampler->inTimeFrac = + (oldRateTimeWhole * newSampleRateOut) + + ((oldRateTimeFract * newSampleRateOut) / oldSampleRateOut); + + /* Make sure the fractional part is less than the output sample rate. */ + pResampler->inTimeInt += pResampler->inTimeFrac / pResampler->config.sampleRateOut; + pResampler->inTimeFrac = pResampler->inTimeFrac % pResampler->config.sampleRateOut; +} + +static ma_result ma_linear_resampler_set_rate_internal(ma_linear_resampler* pResampler, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut, ma_bool32 isResamplerAlreadyInitialized) +{ + ma_result result; + ma_uint32 gcf; + ma_uint32 lpfSampleRate; + double lpfCutoffFrequency; + ma_lpf_config lpfConfig; + ma_uint32 oldSampleRateOut; /* Required for adjusting time advance down the bottom. */ + + if (pResampler == NULL) { + return MA_INVALID_ARGS; + } + + if (sampleRateIn == 0 || sampleRateOut == 0) { + return MA_INVALID_ARGS; + } + + oldSampleRateOut = pResampler->config.sampleRateOut; + + pResampler->config.sampleRateIn = sampleRateIn; + pResampler->config.sampleRateOut = sampleRateOut; + + /* Simplify the sample rate. */ + gcf = ma_gcf_u32(pResampler->config.sampleRateIn, pResampler->config.sampleRateOut); + pResampler->config.sampleRateIn /= gcf; + pResampler->config.sampleRateOut /= gcf; + + /* Always initialize the low-pass filter, even when the order is 0. */ + if (pResampler->config.lpfOrder > MA_MAX_FILTER_ORDER) { + return MA_INVALID_ARGS; + } + + lpfSampleRate = (ma_uint32)(ma_max(pResampler->config.sampleRateIn, pResampler->config.sampleRateOut)); + lpfCutoffFrequency = ( double)(ma_min(pResampler->config.sampleRateIn, pResampler->config.sampleRateOut) * 0.5 * pResampler->config.lpfNyquistFactor); + + lpfConfig = ma_lpf_config_init(pResampler->config.format, pResampler->config.channels, lpfSampleRate, lpfCutoffFrequency, pResampler->config.lpfOrder); + + /* + If the resampler is alreay initialized we don't want to do a fresh initialization of the low-pass filter because it will result in the cached frames + getting cleared. Instead we re-initialize the filter which will maintain any cached frames. + */ + if (isResamplerAlreadyInitialized) { + result = ma_lpf_reinit(&lpfConfig, &pResampler->lpf); + } else { + result = ma_lpf_init(&lpfConfig, &pResampler->lpf); + } + + if (result != MA_SUCCESS) { + return result; + } + + + pResampler->inAdvanceInt = pResampler->config.sampleRateIn / pResampler->config.sampleRateOut; + pResampler->inAdvanceFrac = pResampler->config.sampleRateIn % pResampler->config.sampleRateOut; + + /* Our timer was based on the old rate. We need to adjust it so that it's based on the new rate. */ + ma_linear_resampler_adjust_timer_for_new_rate(pResampler, oldSampleRateOut, pResampler->config.sampleRateOut); + + return MA_SUCCESS; +} + +MA_API ma_result ma_linear_resampler_init(const ma_linear_resampler_config* pConfig, ma_linear_resampler* pResampler) +{ + ma_result result; + + if (pResampler == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pResampler); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->channels < MA_MIN_CHANNELS || pConfig->channels > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + pResampler->config = *pConfig; + + /* Setting the rate will set up the filter and time advances for us. */ + result = ma_linear_resampler_set_rate_internal(pResampler, pConfig->sampleRateIn, pConfig->sampleRateOut, /* isResamplerAlreadyInitialized = */ MA_FALSE); + if (result != MA_SUCCESS) { + return result; + } + + pResampler->inTimeInt = 1; /* Set this to one to force an input sample to always be loaded for the first output frame. */ + pResampler->inTimeFrac = 0; + + return MA_SUCCESS; +} + +MA_API void ma_linear_resampler_uninit(ma_linear_resampler* pResampler) +{ + if (pResampler == NULL) { + return; + } +} + +static MA_INLINE ma_int16 ma_linear_resampler_mix_s16(ma_int16 x, ma_int16 y, ma_int32 a, const ma_int32 shift) +{ + ma_int32 b; + ma_int32 c; + ma_int32 r; + + MA_ASSERT(a <= (1<> shift); +} + +static void ma_linear_resampler_interpolate_frame_s16(ma_linear_resampler* pResampler, ma_int16* MA_RESTRICT pFrameOut) +{ + ma_uint32 c; + ma_uint32 a; + const ma_uint32 channels = pResampler->config.channels; + const ma_uint32 shift = 12; + + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFrameOut != NULL); + + a = (pResampler->inTimeFrac << shift) / pResampler->config.sampleRateOut; + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + ma_int16 s = ma_linear_resampler_mix_s16(pResampler->x0.s16[c], pResampler->x1.s16[c], a, shift); + pFrameOut[c] = s; + } +} + + +static void ma_linear_resampler_interpolate_frame_f32(ma_linear_resampler* pResampler, float* MA_RESTRICT pFrameOut) +{ + ma_uint32 c; + float a; + const ma_uint32 channels = pResampler->config.channels; + + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFrameOut != NULL); + + a = (float)pResampler->inTimeFrac / pResampler->config.sampleRateOut; + + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + for (c = 0; c < channels; c += 1) { + float s = ma_mix_f32_fast(pResampler->x0.f32[c], pResampler->x1.f32[c], a); + pFrameOut[c] = s; + } +} + +static ma_result ma_linear_resampler_process_pcm_frames_s16_downsample(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + const ma_int16* pFramesInS16; + /* */ ma_int16* pFramesOutS16; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 framesProcessedIn; + ma_uint64 framesProcessedOut; + + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFrameCountIn != NULL); + MA_ASSERT(pFrameCountOut != NULL); + + pFramesInS16 = (const ma_int16*)pFramesIn; + pFramesOutS16 = ( ma_int16*)pFramesOut; + frameCountIn = *pFrameCountIn; + frameCountOut = *pFrameCountOut; + framesProcessedIn = 0; + framesProcessedOut = 0; + + while (framesProcessedOut < frameCountOut) { + /* Before interpolating we need to load the buffers. When doing this we need to ensure we run every input sample through the filter. */ + while (pResampler->inTimeInt > 0 && frameCountIn > framesProcessedIn) { + ma_uint32 iChannel; + + if (pFramesInS16 != NULL) { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.s16[iChannel] = pResampler->x1.s16[iChannel]; + pResampler->x1.s16[iChannel] = pFramesInS16[iChannel]; + } + pFramesInS16 += pResampler->config.channels; + } else { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.s16[iChannel] = pResampler->x1.s16[iChannel]; + pResampler->x1.s16[iChannel] = 0; + } + } + + /* Filter. */ + ma_lpf_process_pcm_frame_s16(&pResampler->lpf, pResampler->x1.s16, pResampler->x1.s16); + + framesProcessedIn += 1; + pResampler->inTimeInt -= 1; + } + + if (pResampler->inTimeInt > 0) { + break; /* Ran out of input data. */ + } + + /* Getting here means the frames have been loaded and filtered and we can generate the next output frame. */ + if (pFramesOutS16 != NULL) { + MA_ASSERT(pResampler->inTimeInt == 0); + ma_linear_resampler_interpolate_frame_s16(pResampler, pFramesOutS16); + + pFramesOutS16 += pResampler->config.channels; + } + + framesProcessedOut += 1; + + /* Advance time forward. */ + pResampler->inTimeInt += pResampler->inAdvanceInt; + pResampler->inTimeFrac += pResampler->inAdvanceFrac; + if (pResampler->inTimeFrac >= pResampler->config.sampleRateOut) { + pResampler->inTimeFrac -= pResampler->config.sampleRateOut; + pResampler->inTimeInt += 1; + } + } + + *pFrameCountIn = framesProcessedIn; + *pFrameCountOut = framesProcessedOut; + + return MA_SUCCESS; +} + +static ma_result ma_linear_resampler_process_pcm_frames_s16_upsample(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + const ma_int16* pFramesInS16; + /* */ ma_int16* pFramesOutS16; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 framesProcessedIn; + ma_uint64 framesProcessedOut; + + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFrameCountIn != NULL); + MA_ASSERT(pFrameCountOut != NULL); + + pFramesInS16 = (const ma_int16*)pFramesIn; + pFramesOutS16 = ( ma_int16*)pFramesOut; + frameCountIn = *pFrameCountIn; + frameCountOut = *pFrameCountOut; + framesProcessedIn = 0; + framesProcessedOut = 0; + + while (framesProcessedOut < frameCountOut) { + /* Before interpolating we need to load the buffers. */ + while (pResampler->inTimeInt > 0 && frameCountIn > framesProcessedIn) { + ma_uint32 iChannel; + + if (pFramesInS16 != NULL) { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.s16[iChannel] = pResampler->x1.s16[iChannel]; + pResampler->x1.s16[iChannel] = pFramesInS16[iChannel]; + } + pFramesInS16 += pResampler->config.channels; + } else { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.s16[iChannel] = pResampler->x1.s16[iChannel]; + pResampler->x1.s16[iChannel] = 0; + } + } + + framesProcessedIn += 1; + pResampler->inTimeInt -= 1; + } + + if (pResampler->inTimeInt > 0) { + break; /* Ran out of input data. */ + } + + /* Getting here means the frames have been loaded and we can generate the next output frame. */ + if (pFramesOutS16 != NULL) { + MA_ASSERT(pResampler->inTimeInt == 0); + ma_linear_resampler_interpolate_frame_s16(pResampler, pFramesOutS16); + + /* Filter. */ + ma_lpf_process_pcm_frame_s16(&pResampler->lpf, pFramesOutS16, pFramesOutS16); + + pFramesOutS16 += pResampler->config.channels; + } + + framesProcessedOut += 1; + + /* Advance time forward. */ + pResampler->inTimeInt += pResampler->inAdvanceInt; + pResampler->inTimeFrac += pResampler->inAdvanceFrac; + if (pResampler->inTimeFrac >= pResampler->config.sampleRateOut) { + pResampler->inTimeFrac -= pResampler->config.sampleRateOut; + pResampler->inTimeInt += 1; + } + } + + *pFrameCountIn = framesProcessedIn; + *pFrameCountOut = framesProcessedOut; + + return MA_SUCCESS; +} + +static ma_result ma_linear_resampler_process_pcm_frames_s16(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + MA_ASSERT(pResampler != NULL); + + if (pResampler->config.sampleRateIn > pResampler->config.sampleRateOut) { + return ma_linear_resampler_process_pcm_frames_s16_downsample(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + return ma_linear_resampler_process_pcm_frames_s16_upsample(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } +} + + +static ma_result ma_linear_resampler_process_pcm_frames_f32_downsample(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + const float* pFramesInF32; + /* */ float* pFramesOutF32; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 framesProcessedIn; + ma_uint64 framesProcessedOut; + + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFrameCountIn != NULL); + MA_ASSERT(pFrameCountOut != NULL); + + pFramesInF32 = (const float*)pFramesIn; + pFramesOutF32 = ( float*)pFramesOut; + frameCountIn = *pFrameCountIn; + frameCountOut = *pFrameCountOut; + framesProcessedIn = 0; + framesProcessedOut = 0; + + while (framesProcessedOut < frameCountOut) { + /* Before interpolating we need to load the buffers. When doing this we need to ensure we run every input sample through the filter. */ + while (pResampler->inTimeInt > 0 && frameCountIn > framesProcessedIn) { + ma_uint32 iChannel; + + if (pFramesInF32 != NULL) { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.f32[iChannel] = pResampler->x1.f32[iChannel]; + pResampler->x1.f32[iChannel] = pFramesInF32[iChannel]; + } + pFramesInF32 += pResampler->config.channels; + } else { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.f32[iChannel] = pResampler->x1.f32[iChannel]; + pResampler->x1.f32[iChannel] = 0; + } + } + + /* Filter. */ + ma_lpf_process_pcm_frame_f32(&pResampler->lpf, pResampler->x1.f32, pResampler->x1.f32); + + framesProcessedIn += 1; + pResampler->inTimeInt -= 1; + } + + if (pResampler->inTimeInt > 0) { + break; /* Ran out of input data. */ + } + + /* Getting here means the frames have been loaded and filtered and we can generate the next output frame. */ + if (pFramesOutF32 != NULL) { + MA_ASSERT(pResampler->inTimeInt == 0); + ma_linear_resampler_interpolate_frame_f32(pResampler, pFramesOutF32); + + pFramesOutF32 += pResampler->config.channels; + } + + framesProcessedOut += 1; + + /* Advance time forward. */ + pResampler->inTimeInt += pResampler->inAdvanceInt; + pResampler->inTimeFrac += pResampler->inAdvanceFrac; + if (pResampler->inTimeFrac >= pResampler->config.sampleRateOut) { + pResampler->inTimeFrac -= pResampler->config.sampleRateOut; + pResampler->inTimeInt += 1; + } + } + + *pFrameCountIn = framesProcessedIn; + *pFrameCountOut = framesProcessedOut; + + return MA_SUCCESS; +} + +static ma_result ma_linear_resampler_process_pcm_frames_f32_upsample(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + const float* pFramesInF32; + /* */ float* pFramesOutF32; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 framesProcessedIn; + ma_uint64 framesProcessedOut; + + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFrameCountIn != NULL); + MA_ASSERT(pFrameCountOut != NULL); + + pFramesInF32 = (const float*)pFramesIn; + pFramesOutF32 = ( float*)pFramesOut; + frameCountIn = *pFrameCountIn; + frameCountOut = *pFrameCountOut; + framesProcessedIn = 0; + framesProcessedOut = 0; + + while (framesProcessedOut < frameCountOut) { + /* Before interpolating we need to load the buffers. */ + while (pResampler->inTimeInt > 0 && frameCountIn > framesProcessedIn) { + ma_uint32 iChannel; + + if (pFramesInF32 != NULL) { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.f32[iChannel] = pResampler->x1.f32[iChannel]; + pResampler->x1.f32[iChannel] = pFramesInF32[iChannel]; + } + pFramesInF32 += pResampler->config.channels; + } else { + for (iChannel = 0; iChannel < pResampler->config.channels; iChannel += 1) { + pResampler->x0.f32[iChannel] = pResampler->x1.f32[iChannel]; + pResampler->x1.f32[iChannel] = 0; + } + } + + framesProcessedIn += 1; + pResampler->inTimeInt -= 1; + } + + if (pResampler->inTimeInt > 0) { + break; /* Ran out of input data. */ + } + + /* Getting here means the frames have been loaded and we can generate the next output frame. */ + if (pFramesOutF32 != NULL) { + MA_ASSERT(pResampler->inTimeInt == 0); + ma_linear_resampler_interpolate_frame_f32(pResampler, pFramesOutF32); + + /* Filter. */ + ma_lpf_process_pcm_frame_f32(&pResampler->lpf, pFramesOutF32, pFramesOutF32); + + pFramesOutF32 += pResampler->config.channels; + } + + framesProcessedOut += 1; + + /* Advance time forward. */ + pResampler->inTimeInt += pResampler->inAdvanceInt; + pResampler->inTimeFrac += pResampler->inAdvanceFrac; + if (pResampler->inTimeFrac >= pResampler->config.sampleRateOut) { + pResampler->inTimeFrac -= pResampler->config.sampleRateOut; + pResampler->inTimeInt += 1; + } + } + + *pFrameCountIn = framesProcessedIn; + *pFrameCountOut = framesProcessedOut; + + return MA_SUCCESS; +} + +static ma_result ma_linear_resampler_process_pcm_frames_f32(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + MA_ASSERT(pResampler != NULL); + + if (pResampler->config.sampleRateIn > pResampler->config.sampleRateOut) { + return ma_linear_resampler_process_pcm_frames_f32_downsample(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + return ma_linear_resampler_process_pcm_frames_f32_upsample(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } +} + + +MA_API ma_result ma_linear_resampler_process_pcm_frames(ma_linear_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + if (pResampler == NULL) { + return MA_INVALID_ARGS; + } + + /* */ if (pResampler->config.format == ma_format_s16) { + return ma_linear_resampler_process_pcm_frames_s16(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else if (pResampler->config.format == ma_format_f32) { + return ma_linear_resampler_process_pcm_frames_f32(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + /* Should never get here. Getting here means the format is not supported and you didn't check the return value of ma_linear_resampler_init(). */ + MA_ASSERT(MA_FALSE); + return MA_INVALID_ARGS; + } +} + + +MA_API ma_result ma_linear_resampler_set_rate(ma_linear_resampler* pResampler, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut) +{ + return ma_linear_resampler_set_rate_internal(pResampler, sampleRateIn, sampleRateOut, /* isResamplerAlreadyInitialized = */ MA_TRUE); +} + +MA_API ma_result ma_linear_resampler_set_rate_ratio(ma_linear_resampler* pResampler, float ratioInOut) +{ + ma_uint32 n; + ma_uint32 d; + + d = 1000; + n = (ma_uint32)(ratioInOut * d); + + if (n == 0) { + return MA_INVALID_ARGS; /* Ratio too small. */ + } + + MA_ASSERT(n != 0); + + return ma_linear_resampler_set_rate(pResampler, n, d); +} + + +MA_API ma_uint64 ma_linear_resampler_get_required_input_frame_count(const ma_linear_resampler* pResampler, ma_uint64 outputFrameCount) +{ + ma_uint64 inputFrameCount; + + if (pResampler == NULL) { + return 0; + } + + if (outputFrameCount == 0) { + return 0; + } + + /* Any whole input frames are consumed before the first output frame is generated. */ + inputFrameCount = pResampler->inTimeInt; + outputFrameCount -= 1; + + /* The rest of the output frames can be calculated in constant time. */ + inputFrameCount += outputFrameCount * pResampler->inAdvanceInt; + inputFrameCount += (pResampler->inTimeFrac + (outputFrameCount * pResampler->inAdvanceFrac)) / pResampler->config.sampleRateOut; + + return inputFrameCount; +} + +MA_API ma_uint64 ma_linear_resampler_get_expected_output_frame_count(const ma_linear_resampler* pResampler, ma_uint64 inputFrameCount) +{ + ma_uint64 outputFrameCount; + ma_uint64 preliminaryInputFrameCountFromFrac; + ma_uint64 preliminaryInputFrameCount; + + if (pResampler == NULL) { + return 0; + } + + /* + The first step is to get a preliminary output frame count. This will either be exactly equal to what we need, or less by 1. We need to + determine how many input frames will be consumed by this value. If it's greater than our original input frame count it means we won't + be able to generate an extra frame because we will have run out of input data. Otherwise we will have enough input for the generation + of an extra output frame. This add-by-one logic is necessary due to how the data loading logic works when processing frames. + */ + outputFrameCount = (inputFrameCount * pResampler->config.sampleRateOut) / pResampler->config.sampleRateIn; + + /* + We need to determine how many *whole* input frames will have been processed to generate our preliminary output frame count. This is + used in the logic below to determine whether or not we need to add an extra output frame. + */ + preliminaryInputFrameCountFromFrac = (pResampler->inTimeFrac + outputFrameCount*pResampler->inAdvanceFrac) / pResampler->config.sampleRateOut; + preliminaryInputFrameCount = (pResampler->inTimeInt + outputFrameCount*pResampler->inAdvanceInt ) + preliminaryInputFrameCountFromFrac; + + /* + If the total number of *whole* input frames that would be required to generate our preliminary output frame count is greather than + the amount of whole input frames we have available as input we need to *not* add an extra output frame as there won't be enough data + to actually process. Otherwise we need to add the extra output frame. + */ + if (preliminaryInputFrameCount <= inputFrameCount) { + outputFrameCount += 1; + } + + return outputFrameCount; +} + +MA_API ma_uint64 ma_linear_resampler_get_input_latency(const ma_linear_resampler* pResampler) +{ + if (pResampler == NULL) { + return 0; + } + + return 1 + ma_lpf_get_latency(&pResampler->lpf); +} + +MA_API ma_uint64 ma_linear_resampler_get_output_latency(const ma_linear_resampler* pResampler) +{ + if (pResampler == NULL) { + return 0; + } + + return ma_linear_resampler_get_input_latency(pResampler) * pResampler->config.sampleRateOut / pResampler->config.sampleRateIn; +} + + +#if defined(ma_speex_resampler_h) +#define MA_HAS_SPEEX_RESAMPLER + +static ma_result ma_result_from_speex_err(int err) +{ + switch (err) + { + case RESAMPLER_ERR_SUCCESS: return MA_SUCCESS; + case RESAMPLER_ERR_ALLOC_FAILED: return MA_OUT_OF_MEMORY; + case RESAMPLER_ERR_BAD_STATE: return MA_ERROR; + case RESAMPLER_ERR_INVALID_ARG: return MA_INVALID_ARGS; + case RESAMPLER_ERR_PTR_OVERLAP: return MA_INVALID_ARGS; + case RESAMPLER_ERR_OVERFLOW: return MA_ERROR; + default: return MA_ERROR; + } +} +#endif /* ma_speex_resampler_h */ + +MA_API ma_resampler_config ma_resampler_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut, ma_resample_algorithm algorithm) +{ + ma_resampler_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRateIn = sampleRateIn; + config.sampleRateOut = sampleRateOut; + config.algorithm = algorithm; + + /* Linear. */ + config.linear.lpfOrder = ma_min(MA_DEFAULT_RESAMPLER_LPF_ORDER, MA_MAX_FILTER_ORDER); + config.linear.lpfNyquistFactor = 1; + + /* Speex. */ + config.speex.quality = 3; /* Cannot leave this as 0 as that is actually a valid value for Speex resampling quality. */ + + return config; +} + +MA_API ma_result ma_resampler_init(const ma_resampler_config* pConfig, ma_resampler* pResampler) +{ + ma_result result; + + if (pResampler == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pResampler); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->format != ma_format_f32 && pConfig->format != ma_format_s16) { + return MA_INVALID_ARGS; + } + + pResampler->config = *pConfig; + + switch (pConfig->algorithm) + { + case ma_resample_algorithm_linear: + { + ma_linear_resampler_config linearConfig; + linearConfig = ma_linear_resampler_config_init(pConfig->format, pConfig->channels, pConfig->sampleRateIn, pConfig->sampleRateOut); + linearConfig.lpfOrder = pConfig->linear.lpfOrder; + linearConfig.lpfNyquistFactor = pConfig->linear.lpfNyquistFactor; + + result = ma_linear_resampler_init(&linearConfig, &pResampler->state.linear); + if (result != MA_SUCCESS) { + return result; + } + } break; + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + int speexErr; + pResampler->state.speex.pSpeexResamplerState = speex_resampler_init(pConfig->channels, pConfig->sampleRateIn, pConfig->sampleRateOut, pConfig->speex.quality, &speexErr); + if (pResampler->state.speex.pSpeexResamplerState == NULL) { + return ma_result_from_speex_err(speexErr); + } + #else + /* Speex resampler not available. */ + return MA_NO_BACKEND; + #endif + } break; + + default: return MA_INVALID_ARGS; + } + + return MA_SUCCESS; +} + +MA_API void ma_resampler_uninit(ma_resampler* pResampler) +{ + if (pResampler == NULL) { + return; + } + + if (pResampler->config.algorithm == ma_resample_algorithm_linear) { + ma_linear_resampler_uninit(&pResampler->state.linear); + } + +#if defined(MA_HAS_SPEEX_RESAMPLER) + if (pResampler->config.algorithm == ma_resample_algorithm_speex) { + speex_resampler_destroy((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState); + } +#endif +} + +static ma_result ma_resampler_process_pcm_frames__read__linear(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + return ma_linear_resampler_process_pcm_frames(&pResampler->state.linear, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); +} + +#if defined(MA_HAS_SPEEX_RESAMPLER) +static ma_result ma_resampler_process_pcm_frames__read__speex(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + int speexErr; + ma_uint64 frameCountOut; + ma_uint64 frameCountIn; + ma_uint64 framesProcessedOut; + ma_uint64 framesProcessedIn; + unsigned int framesPerIteration = UINT_MAX; + + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFramesOut != NULL); + MA_ASSERT(pFrameCountOut != NULL); + MA_ASSERT(pFrameCountIn != NULL); + + /* + Reading from the Speex resampler requires a bit of dancing around for a few reasons. The first thing is that it's frame counts + are in unsigned int's whereas ours is in ma_uint64. We therefore need to run the conversion in a loop. The other, more complicated + problem, is that we need to keep track of the input time, similar to what we do with the linear resampler. The reason we need to + do this is for ma_resampler_get_required_input_frame_count() and ma_resampler_get_expected_output_frame_count(). + */ + frameCountOut = *pFrameCountOut; + frameCountIn = *pFrameCountIn; + framesProcessedOut = 0; + framesProcessedIn = 0; + + while (framesProcessedOut < frameCountOut && framesProcessedIn < frameCountIn) { + unsigned int frameCountInThisIteration; + unsigned int frameCountOutThisIteration; + const void* pFramesInThisIteration; + void* pFramesOutThisIteration; + + frameCountInThisIteration = framesPerIteration; + if ((ma_uint64)frameCountInThisIteration > (frameCountIn - framesProcessedIn)) { + frameCountInThisIteration = (unsigned int)(frameCountIn - framesProcessedIn); + } + + frameCountOutThisIteration = framesPerIteration; + if ((ma_uint64)frameCountOutThisIteration > (frameCountOut - framesProcessedOut)) { + frameCountOutThisIteration = (unsigned int)(frameCountOut - framesProcessedOut); + } + + pFramesInThisIteration = ma_offset_ptr(pFramesIn, framesProcessedIn * ma_get_bytes_per_frame(pResampler->config.format, pResampler->config.channels)); + pFramesOutThisIteration = ma_offset_ptr(pFramesOut, framesProcessedOut * ma_get_bytes_per_frame(pResampler->config.format, pResampler->config.channels)); + + if (pResampler->config.format == ma_format_f32) { + speexErr = speex_resampler_process_interleaved_float((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState, (const float*)pFramesInThisIteration, &frameCountInThisIteration, (float*)pFramesOutThisIteration, &frameCountOutThisIteration); + } else if (pResampler->config.format == ma_format_s16) { + speexErr = speex_resampler_process_interleaved_int((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState, (const spx_int16_t*)pFramesInThisIteration, &frameCountInThisIteration, (spx_int16_t*)pFramesOutThisIteration, &frameCountOutThisIteration); + } else { + /* Format not supported. Should never get here. */ + MA_ASSERT(MA_FALSE); + return MA_INVALID_OPERATION; + } + + if (speexErr != RESAMPLER_ERR_SUCCESS) { + return ma_result_from_speex_err(speexErr); + } + + framesProcessedIn += frameCountInThisIteration; + framesProcessedOut += frameCountOutThisIteration; + } + + *pFrameCountOut = framesProcessedOut; + *pFrameCountIn = framesProcessedIn; + + return MA_SUCCESS; +} +#endif + +static ma_result ma_resampler_process_pcm_frames__read(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + MA_ASSERT(pResampler != NULL); + MA_ASSERT(pFramesOut != NULL); + + /* pFramesOut is not NULL, which means we must have a capacity. */ + if (pFrameCountOut == NULL) { + return MA_INVALID_ARGS; + } + + /* It doesn't make sense to not have any input frames to process. */ + if (pFrameCountIn == NULL || pFramesIn == NULL) { + return MA_INVALID_ARGS; + } + + switch (pResampler->config.algorithm) + { + case ma_resample_algorithm_linear: + { + return ma_resampler_process_pcm_frames__read__linear(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + return ma_resampler_process_pcm_frames__read__speex(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + #else + break; + #endif + } + + default: break; + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return MA_INVALID_ARGS; +} + + +static ma_result ma_resampler_process_pcm_frames__seek__linear(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, ma_uint64* pFrameCountOut) +{ + MA_ASSERT(pResampler != NULL); + + /* Seeking is supported natively by the linear resampler. */ + return ma_linear_resampler_process_pcm_frames(&pResampler->state.linear, pFramesIn, pFrameCountIn, NULL, pFrameCountOut); +} + +#if defined(MA_HAS_SPEEX_RESAMPLER) +static ma_result ma_resampler_process_pcm_frames__seek__speex(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, ma_uint64* pFrameCountOut) +{ + /* The generic seek method is implemented in on top of ma_resampler_process_pcm_frames__read() by just processing into a dummy buffer. */ + float devnull[4096]; + ma_uint64 totalOutputFramesToProcess; + ma_uint64 totalOutputFramesProcessed; + ma_uint64 totalInputFramesProcessed; + ma_uint32 bpf; + ma_result result; + + MA_ASSERT(pResampler != NULL); + + totalOutputFramesProcessed = 0; + totalInputFramesProcessed = 0; + bpf = ma_get_bytes_per_frame(pResampler->config.format, pResampler->config.channels); + + if (pFrameCountOut != NULL) { + /* Seek by output frames. */ + totalOutputFramesToProcess = *pFrameCountOut; + } else { + /* Seek by input frames. */ + MA_ASSERT(pFrameCountIn != NULL); + totalOutputFramesToProcess = ma_resampler_get_expected_output_frame_count(pResampler, *pFrameCountIn); + } + + if (pFramesIn != NULL) { + /* Process input data. */ + MA_ASSERT(pFrameCountIn != NULL); + while (totalOutputFramesProcessed < totalOutputFramesToProcess && totalInputFramesProcessed < *pFrameCountIn) { + ma_uint64 inputFramesToProcessThisIteration = (*pFrameCountIn - totalInputFramesProcessed); + ma_uint64 outputFramesToProcessThisIteration = (totalOutputFramesToProcess - totalOutputFramesProcessed); + if (outputFramesToProcessThisIteration > sizeof(devnull) / bpf) { + outputFramesToProcessThisIteration = sizeof(devnull) / bpf; + } + + result = ma_resampler_process_pcm_frames__read(pResampler, ma_offset_ptr(pFramesIn, totalInputFramesProcessed*bpf), &inputFramesToProcessThisIteration, ma_offset_ptr(devnull, totalOutputFramesProcessed*bpf), &outputFramesToProcessThisIteration); + if (result != MA_SUCCESS) { + return result; + } + + totalOutputFramesProcessed += outputFramesToProcessThisIteration; + totalInputFramesProcessed += inputFramesToProcessThisIteration; + } + } else { + /* Don't process input data - just update timing and filter state as if zeroes were passed in. */ + while (totalOutputFramesProcessed < totalOutputFramesToProcess) { + ma_uint64 inputFramesToProcessThisIteration = 16384; + ma_uint64 outputFramesToProcessThisIteration = (totalOutputFramesToProcess - totalOutputFramesProcessed); + if (outputFramesToProcessThisIteration > sizeof(devnull) / bpf) { + outputFramesToProcessThisIteration = sizeof(devnull) / bpf; + } + + result = ma_resampler_process_pcm_frames__read(pResampler, NULL, &inputFramesToProcessThisIteration, ma_offset_ptr(devnull, totalOutputFramesProcessed*bpf), &outputFramesToProcessThisIteration); + if (result != MA_SUCCESS) { + return result; + } + + totalOutputFramesProcessed += outputFramesToProcessThisIteration; + totalInputFramesProcessed += inputFramesToProcessThisIteration; + } + } + + + if (pFrameCountIn != NULL) { + *pFrameCountIn = totalInputFramesProcessed; + } + if (pFrameCountOut != NULL) { + *pFrameCountOut = totalOutputFramesProcessed; + } + + return MA_SUCCESS; +} +#endif + +static ma_result ma_resampler_process_pcm_frames__seek(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, ma_uint64* pFrameCountOut) +{ + MA_ASSERT(pResampler != NULL); + + switch (pResampler->config.algorithm) + { + case ma_resample_algorithm_linear: + { + return ma_resampler_process_pcm_frames__seek__linear(pResampler, pFramesIn, pFrameCountIn, pFrameCountOut); + } break; + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + return ma_resampler_process_pcm_frames__seek__speex(pResampler, pFramesIn, pFrameCountIn, pFrameCountOut); + #else + break; + #endif + }; + + default: break; + } + + /* Should never hit this. */ + MA_ASSERT(MA_FALSE); + return MA_INVALID_ARGS; +} + + +MA_API ma_result ma_resampler_process_pcm_frames(ma_resampler* pResampler, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + if (pResampler == NULL) { + return MA_INVALID_ARGS; + } + + if (pFrameCountOut == NULL && pFrameCountIn == NULL) { + return MA_INVALID_ARGS; + } + + if (pFramesOut != NULL) { + /* Reading. */ + return ma_resampler_process_pcm_frames__read(pResampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + /* Seeking. */ + return ma_resampler_process_pcm_frames__seek(pResampler, pFramesIn, pFrameCountIn, pFrameCountOut); + } +} + +MA_API ma_result ma_resampler_set_rate(ma_resampler* pResampler, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut) +{ + if (pResampler == NULL) { + return MA_INVALID_ARGS; + } + + if (sampleRateIn == 0 || sampleRateOut == 0) { + return MA_INVALID_ARGS; + } + + pResampler->config.sampleRateIn = sampleRateIn; + pResampler->config.sampleRateOut = sampleRateOut; + + switch (pResampler->config.algorithm) + { + case ma_resample_algorithm_linear: + { + return ma_linear_resampler_set_rate(&pResampler->state.linear, sampleRateIn, sampleRateOut); + } break; + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + return ma_result_from_speex_err(speex_resampler_set_rate((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState, sampleRateIn, sampleRateOut)); + #else + break; + #endif + }; + + default: break; + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return MA_INVALID_OPERATION; +} + +MA_API ma_result ma_resampler_set_rate_ratio(ma_resampler* pResampler, float ratio) +{ + if (pResampler == NULL) { + return MA_INVALID_ARGS; + } + + if (pResampler->config.algorithm == ma_resample_algorithm_linear) { + return ma_linear_resampler_set_rate_ratio(&pResampler->state.linear, ratio); + } else { + /* Getting here means the backend does not have native support for setting the rate as a ratio so we just do it generically. */ + ma_uint32 n; + ma_uint32 d; + + d = 1000; + n = (ma_uint32)(ratio * d); + + if (n == 0) { + return MA_INVALID_ARGS; /* Ratio too small. */ + } + + MA_ASSERT(n != 0); + + return ma_resampler_set_rate(pResampler, n, d); + } +} + +MA_API ma_uint64 ma_resampler_get_required_input_frame_count(const ma_resampler* pResampler, ma_uint64 outputFrameCount) +{ + if (pResampler == NULL) { + return 0; + } + + if (outputFrameCount == 0) { + return 0; + } + + switch (pResampler->config.algorithm) + { + case ma_resample_algorithm_linear: + { + return ma_linear_resampler_get_required_input_frame_count(&pResampler->state.linear, outputFrameCount); + } + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + spx_uint64_t count; + int speexErr = ma_speex_resampler_get_required_input_frame_count((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState, outputFrameCount, &count); + if (speexErr != RESAMPLER_ERR_SUCCESS) { + return 0; + } + + return (ma_uint64)count; + #else + break; + #endif + } + + default: break; + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return 0; +} + +MA_API ma_uint64 ma_resampler_get_expected_output_frame_count(const ma_resampler* pResampler, ma_uint64 inputFrameCount) +{ + if (pResampler == NULL) { + return 0; /* Invalid args. */ + } + + if (inputFrameCount == 0) { + return 0; + } + + switch (pResampler->config.algorithm) + { + case ma_resample_algorithm_linear: + { + return ma_linear_resampler_get_expected_output_frame_count(&pResampler->state.linear, inputFrameCount); + } + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + spx_uint64_t count; + int speexErr = ma_speex_resampler_get_expected_output_frame_count((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState, inputFrameCount, &count); + if (speexErr != RESAMPLER_ERR_SUCCESS) { + return 0; + } + + return (ma_uint64)count; + #else + break; + #endif + } + + default: break; + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return 0; +} + +MA_API ma_uint64 ma_resampler_get_input_latency(const ma_resampler* pResampler) +{ + if (pResampler == NULL) { + return 0; + } + + switch (pResampler->config.algorithm) + { + case ma_resample_algorithm_linear: + { + return ma_linear_resampler_get_input_latency(&pResampler->state.linear); + } + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + return (ma_uint64)ma_speex_resampler_get_input_latency((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState); + #else + break; + #endif + } + + default: break; + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return 0; +} + +MA_API ma_uint64 ma_resampler_get_output_latency(const ma_resampler* pResampler) +{ + if (pResampler == NULL) { + return 0; + } + + switch (pResampler->config.algorithm) + { + case ma_resample_algorithm_linear: + { + return ma_linear_resampler_get_output_latency(&pResampler->state.linear); + } + + case ma_resample_algorithm_speex: + { + #if defined(MA_HAS_SPEEX_RESAMPLER) + return (ma_uint64)ma_speex_resampler_get_output_latency((SpeexResamplerState*)pResampler->state.speex.pSpeexResamplerState); + #else + break; + #endif + } + + default: break; + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return 0; +} + +/************************************************************************************************************************************************************** + +Channel Conversion + +**************************************************************************************************************************************************************/ +#ifndef MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT +#define MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT 12 +#endif + +#define MA_PLANE_LEFT 0 +#define MA_PLANE_RIGHT 1 +#define MA_PLANE_FRONT 2 +#define MA_PLANE_BACK 3 +#define MA_PLANE_BOTTOM 4 +#define MA_PLANE_TOP 5 + +static float g_maChannelPlaneRatios[MA_CHANNEL_POSITION_COUNT][6] = { + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_NONE */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_MONO */ + { 0.5f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_FRONT_LEFT */ + { 0.0f, 0.5f, 0.5f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_FRONT_RIGHT */ + { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_FRONT_CENTER */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_LFE */ + { 0.5f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f}, /* MA_CHANNEL_BACK_LEFT */ + { 0.0f, 0.5f, 0.0f, 0.5f, 0.0f, 0.0f}, /* MA_CHANNEL_BACK_RIGHT */ + { 0.25f, 0.0f, 0.75f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_FRONT_LEFT_CENTER */ + { 0.0f, 0.25f, 0.75f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_FRONT_RIGHT_CENTER */ + { 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, /* MA_CHANNEL_BACK_CENTER */ + { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_SIDE_LEFT */ + { 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_SIDE_RIGHT */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, /* MA_CHANNEL_TOP_CENTER */ + { 0.33f, 0.0f, 0.33f, 0.0f, 0.0f, 0.34f}, /* MA_CHANNEL_TOP_FRONT_LEFT */ + { 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.5f}, /* MA_CHANNEL_TOP_FRONT_CENTER */ + { 0.0f, 0.33f, 0.33f, 0.0f, 0.0f, 0.34f}, /* MA_CHANNEL_TOP_FRONT_RIGHT */ + { 0.33f, 0.0f, 0.0f, 0.33f, 0.0f, 0.34f}, /* MA_CHANNEL_TOP_BACK_LEFT */ + { 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.5f}, /* MA_CHANNEL_TOP_BACK_CENTER */ + { 0.0f, 0.33f, 0.0f, 0.33f, 0.0f, 0.34f}, /* MA_CHANNEL_TOP_BACK_RIGHT */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_0 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_1 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_2 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_3 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_4 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_5 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_6 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_7 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_8 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_9 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_10 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_11 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_12 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_13 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_14 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_15 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_16 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_17 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_18 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_19 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_20 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_21 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_22 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_23 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_24 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_25 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_26 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_27 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_28 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_29 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_30 */ + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, /* MA_CHANNEL_AUX_31 */ +}; + +static float ma_calculate_channel_position_rectangular_weight(ma_channel channelPositionA, ma_channel channelPositionB) +{ + /* + Imagine the following simplified example: You have a single input speaker which is the front/left speaker which you want to convert to + the following output configuration: + + - front/left + - side/left + - back/left + + The front/left output is easy - it the same speaker position so it receives the full contribution of the front/left input. The amount + of contribution to apply to the side/left and back/left speakers, however, is a bit more complicated. + + Imagine the front/left speaker as emitting audio from two planes - the front plane and the left plane. You can think of the front/left + speaker emitting half of it's total volume from the front, and the other half from the left. Since part of it's volume is being emitted + from the left side, and the side/left and back/left channels also emit audio from the left plane, one would expect that they would + receive some amount of contribution from front/left speaker. The amount of contribution depends on how many planes are shared between + the two speakers. Note that in the examples below I've added a top/front/left speaker as an example just to show how the math works + across 3 spatial dimensions. + + The first thing to do is figure out how each speaker's volume is spread over each of plane: + - front/left: 2 planes (front and left) = 1/2 = half it's total volume on each plane + - side/left: 1 plane (left only) = 1/1 = entire volume from left plane + - back/left: 2 planes (back and left) = 1/2 = half it's total volume on each plane + - top/front/left: 3 planes (top, front and left) = 1/3 = one third it's total volume on each plane + + The amount of volume each channel contributes to each of it's planes is what controls how much it is willing to given and take to other + channels on the same plane. The volume that is willing to the given by one channel is multiplied by the volume that is willing to be + taken by the other to produce the final contribution. + */ + + /* Contribution = Sum(Volume to Give * Volume to Take) */ + float contribution = + g_maChannelPlaneRatios[channelPositionA][0] * g_maChannelPlaneRatios[channelPositionB][0] + + g_maChannelPlaneRatios[channelPositionA][1] * g_maChannelPlaneRatios[channelPositionB][1] + + g_maChannelPlaneRatios[channelPositionA][2] * g_maChannelPlaneRatios[channelPositionB][2] + + g_maChannelPlaneRatios[channelPositionA][3] * g_maChannelPlaneRatios[channelPositionB][3] + + g_maChannelPlaneRatios[channelPositionA][4] * g_maChannelPlaneRatios[channelPositionB][4] + + g_maChannelPlaneRatios[channelPositionA][5] * g_maChannelPlaneRatios[channelPositionB][5]; + + return contribution; +} + +MA_API ma_channel_converter_config ma_channel_converter_config_init(ma_format format, ma_uint32 channelsIn, const ma_channel* pChannelMapIn, ma_uint32 channelsOut, const ma_channel* pChannelMapOut, ma_channel_mix_mode mixingMode) +{ + ma_channel_converter_config config; + + /* Channel counts need to be clamped. */ + channelsIn = ma_min(channelsIn, ma_countof(config.channelMapIn)); + channelsOut = ma_min(channelsOut, ma_countof(config.channelMapOut)); + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channelsIn = channelsIn; + config.channelsOut = channelsOut; + ma_channel_map_copy_or_default(config.channelMapIn, pChannelMapIn, channelsIn); + ma_channel_map_copy_or_default(config.channelMapOut, pChannelMapOut, channelsOut); + config.mixingMode = mixingMode; + + return config; +} + +static ma_int32 ma_channel_converter_float_to_fixed(float x) +{ + return (ma_int32)(x * (1<channelsIn < MA_MIN_CHANNELS || pConfig->channelsIn > MA_MAX_CHANNELS || + pConfig->channelsOut < MA_MIN_CHANNELS || pConfig->channelsOut > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + if (!ma_channel_map_valid(pConfig->channelsIn, pConfig->channelMapIn)) { + return MA_INVALID_ARGS; /* Invalid input channel map. */ + } + if (!ma_channel_map_valid(pConfig->channelsOut, pConfig->channelMapOut)) { + return MA_INVALID_ARGS; /* Invalid output channel map. */ + } + + pConverter->format = pConfig->format; + pConverter->channelsIn = pConfig->channelsIn; + pConverter->channelsOut = pConfig->channelsOut; + ma_channel_map_copy(pConverter->channelMapIn, pConfig->channelMapIn, pConfig->channelsIn); + ma_channel_map_copy(pConverter->channelMapOut, pConfig->channelMapOut, pConfig->channelsOut); + pConverter->mixingMode = pConfig->mixingMode; + + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; iChannelIn += 1) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + if (pConverter->format == ma_format_f32) { + pConverter->weights.f32[iChannelIn][iChannelOut] = pConfig->weights[iChannelIn][iChannelOut]; + } else { + pConverter->weights.s16[iChannelIn][iChannelOut] = ma_channel_converter_float_to_fixed(pConfig->weights[iChannelIn][iChannelOut]); + } + } + } + + + + /* If the input and output channels and channel maps are the same we should use a passthrough. */ + if (pConverter->channelsIn == pConverter->channelsOut) { + if (ma_channel_map_equal(pConverter->channelsIn, pConverter->channelMapIn, pConverter->channelMapOut)) { + pConverter->isPassthrough = MA_TRUE; + } + if (ma_channel_map_blank(pConverter->channelsIn, pConverter->channelMapIn) || ma_channel_map_blank(pConverter->channelsOut, pConverter->channelMapOut)) { + pConverter->isPassthrough = MA_TRUE; + } + } + + + /* + We can use a simple case for expanding the mono channel. This will used when expanding a mono input into any output so long + as no LFE is present in the output. + */ + if (!pConverter->isPassthrough) { + if (pConverter->channelsIn == 1 && pConverter->channelMapIn[0] == MA_CHANNEL_MONO) { + /* Optimal case if no LFE is in the output channel map. */ + pConverter->isSimpleMonoExpansion = MA_TRUE; + if (ma_channel_map_contains_channel_position(pConverter->channelsOut, pConverter->channelMapOut, MA_CHANNEL_LFE)) { + pConverter->isSimpleMonoExpansion = MA_FALSE; + } + } + } + + /* Another optimized case is stereo to mono. */ + if (!pConverter->isPassthrough) { + if (pConverter->channelsOut == 1 && pConverter->channelMapOut[0] == MA_CHANNEL_MONO && pConverter->channelsIn == 2) { + /* Optimal case if no LFE is in the input channel map. */ + pConverter->isStereoToMono = MA_TRUE; + if (ma_channel_map_contains_channel_position(pConverter->channelsIn, pConverter->channelMapIn, MA_CHANNEL_LFE)) { + pConverter->isStereoToMono = MA_FALSE; + } + } + } + + + /* + Here is where we do a bit of pre-processing to know how each channel should be combined to make up the output. Rules: + + 1) If it's a passthrough, do nothing - it's just a simple memcpy(). + 2) If the channel counts are the same and every channel position in the input map is present in the output map, use a + simple shuffle. An example might be different 5.1 channel layouts. + 3) Otherwise channels are blended based on spatial locality. + */ + if (!pConverter->isPassthrough) { + if (pConverter->channelsIn == pConverter->channelsOut) { + ma_bool32 areAllChannelPositionsPresent = MA_TRUE; + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_bool32 isInputChannelPositionInOutput = MA_FALSE; + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + if (pConverter->channelMapIn[iChannelIn] == pConverter->channelMapOut[iChannelOut]) { + isInputChannelPositionInOutput = MA_TRUE; + break; + } + } + + if (!isInputChannelPositionInOutput) { + areAllChannelPositionsPresent = MA_FALSE; + break; + } + } + + if (areAllChannelPositionsPresent) { + pConverter->isSimpleShuffle = MA_TRUE; + + /* + All the router will be doing is rearranging channels which means all we need to do is use a shuffling table which is just + a mapping between the index of the input channel to the index of the output channel. + */ + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + if (pConverter->channelMapIn[iChannelIn] == pConverter->channelMapOut[iChannelOut]) { + pConverter->shuffleTable[iChannelIn] = (ma_uint8)iChannelOut; + break; + } + } + } + } + } + } + + + /* + Here is where weights are calculated. Note that we calculate the weights at all times, even when using a passthrough and simple + shuffling. We use different algorithms for calculating weights depending on our mixing mode. + + In simple mode we don't do any blending (except for converting between mono, which is done in a later step). Instead we just + map 1:1 matching channels. In this mode, if no channels in the input channel map correspond to anything in the output channel + map, nothing will be heard! + */ + + /* In all cases we need to make sure all channels that are present in both channel maps have a 1:1 mapping. */ + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_channel channelPosIn = pConverter->channelMapIn[iChannelIn]; + + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_channel channelPosOut = pConverter->channelMapOut[iChannelOut]; + + if (channelPosIn == channelPosOut) { + if (pConverter->format == ma_format_f32) { + pConverter->weights.f32[iChannelIn][iChannelOut] = 1; + } else { + pConverter->weights.s16[iChannelIn][iChannelOut] = (1 << MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT); + } + } + } + } + + /* + The mono channel is accumulated on all other channels, except LFE. Make sure in this loop we exclude output mono channels since + they were handled in the pass above. + */ + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_channel channelPosIn = pConverter->channelMapIn[iChannelIn]; + + if (channelPosIn == MA_CHANNEL_MONO) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_channel channelPosOut = pConverter->channelMapOut[iChannelOut]; + + if (channelPosOut != MA_CHANNEL_NONE && channelPosOut != MA_CHANNEL_MONO && channelPosOut != MA_CHANNEL_LFE) { + if (pConverter->format == ma_format_f32) { + pConverter->weights.f32[iChannelIn][iChannelOut] = 1; + } else { + pConverter->weights.s16[iChannelIn][iChannelOut] = (1 << MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT); + } + } + } + } + } + + /* The output mono channel is the average of all non-none, non-mono and non-lfe input channels. */ + { + ma_uint32 len = 0; + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_channel channelPosIn = pConverter->channelMapIn[iChannelIn]; + + if (channelPosIn != MA_CHANNEL_NONE && channelPosIn != MA_CHANNEL_MONO && channelPosIn != MA_CHANNEL_LFE) { + len += 1; + } + } + + if (len > 0) { + float monoWeight = 1.0f / len; + + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_channel channelPosOut = pConverter->channelMapOut[iChannelOut]; + + if (channelPosOut == MA_CHANNEL_MONO) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_channel channelPosIn = pConverter->channelMapIn[iChannelIn]; + + if (channelPosIn != MA_CHANNEL_NONE && channelPosIn != MA_CHANNEL_MONO && channelPosIn != MA_CHANNEL_LFE) { + if (pConverter->format == ma_format_f32) { + pConverter->weights.f32[iChannelIn][iChannelOut] = monoWeight; + } else { + pConverter->weights.s16[iChannelIn][iChannelOut] = ma_channel_converter_float_to_fixed(monoWeight); + } + } + } + } + } + } + } + + + /* Input and output channels that are not present on the other side need to be blended in based on spatial locality. */ + switch (pConverter->mixingMode) + { + case ma_channel_mix_mode_rectangular: + { + /* Unmapped input channels. */ + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_channel channelPosIn = pConverter->channelMapIn[iChannelIn]; + + if (ma_is_spatial_channel_position(channelPosIn)) { + if (!ma_channel_map_contains_channel_position(pConverter->channelsOut, pConverter->channelMapOut, channelPosIn)) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_channel channelPosOut = pConverter->channelMapOut[iChannelOut]; + + if (ma_is_spatial_channel_position(channelPosOut)) { + float weight = 0; + if (pConverter->mixingMode == ma_channel_mix_mode_rectangular) { + weight = ma_calculate_channel_position_rectangular_weight(channelPosIn, channelPosOut); + } + + /* Only apply the weight if we haven't already got some contribution from the respective channels. */ + if (pConverter->format == ma_format_f32) { + if (pConverter->weights.f32[iChannelIn][iChannelOut] == 0) { + pConverter->weights.f32[iChannelIn][iChannelOut] = weight; + } + } else { + if (pConverter->weights.s16[iChannelIn][iChannelOut] == 0) { + pConverter->weights.s16[iChannelIn][iChannelOut] = ma_channel_converter_float_to_fixed(weight); + } + } + } + } + } + } + } + + /* Unmapped output channels. */ + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_channel channelPosOut = pConverter->channelMapOut[iChannelOut]; + + if (ma_is_spatial_channel_position(channelPosOut)) { + if (!ma_channel_map_contains_channel_position(pConverter->channelsIn, pConverter->channelMapIn, channelPosOut)) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_channel channelPosIn = pConverter->channelMapIn[iChannelIn]; + + if (ma_is_spatial_channel_position(channelPosIn)) { + float weight = 0; + if (pConverter->mixingMode == ma_channel_mix_mode_rectangular) { + weight = ma_calculate_channel_position_rectangular_weight(channelPosIn, channelPosOut); + } + + /* Only apply the weight if we haven't already got some contribution from the respective channels. */ + if (pConverter->format == ma_format_f32) { + if (pConverter->weights.f32[iChannelIn][iChannelOut] == 0) { + pConverter->weights.f32[iChannelIn][iChannelOut] = weight; + } + } else { + if (pConverter->weights.s16[iChannelIn][iChannelOut] == 0) { + pConverter->weights.s16[iChannelIn][iChannelOut] = ma_channel_converter_float_to_fixed(weight); + } + } + } + } + } + } + } + } break; + + case ma_channel_mix_mode_simple: + { + /* In simple mode, excess channels need to be silenced or dropped. */ + ma_uint32 iChannel; + for (iChannel = 0; iChannel < ma_min(pConverter->channelsIn, pConverter->channelsOut); iChannel += 1) { + if (pConverter->format == ma_format_f32) { + if (pConverter->weights.f32[iChannel][iChannel] == 0) { + pConverter->weights.f32[iChannel][iChannel] = 1; + } + } else { + if (pConverter->weights.s16[iChannel][iChannel] == 0) { + pConverter->weights.s16[iChannel][iChannel] = ma_channel_converter_float_to_fixed(1); + } + } + } + } break; + + case ma_channel_mix_mode_custom_weights: + default: + { + /* Fallthrough. */ + } break; + } + + + return MA_SUCCESS; +} + +MA_API void ma_channel_converter_uninit(ma_channel_converter* pConverter) +{ + if (pConverter == NULL) { + return; + } +} + +static ma_result ma_channel_converter_process_pcm_frames__passthrough(ma_channel_converter* pConverter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + MA_ASSERT(pConverter != NULL); + MA_ASSERT(pFramesOut != NULL); + MA_ASSERT(pFramesIn != NULL); + + ma_copy_memory_64(pFramesOut, pFramesIn, frameCount * ma_get_bytes_per_frame(pConverter->format, pConverter->channelsOut)); + return MA_SUCCESS; +} + +static ma_result ma_channel_converter_process_pcm_frames__simple_shuffle(ma_channel_converter* pConverter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_uint32 iFrame; + ma_uint32 iChannelIn; + + MA_ASSERT(pConverter != NULL); + MA_ASSERT(pFramesOut != NULL); + MA_ASSERT(pFramesIn != NULL); + MA_ASSERT(pConverter->channelsIn == pConverter->channelsOut); + + switch (pConverter->format) + { + case ma_format_u8: + { + /* */ ma_uint8* pFramesOutU8 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInU8 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + pFramesOutU8[pConverter->shuffleTable[iChannelIn]] = pFramesInU8[iChannelIn]; + } + + pFramesOutU8 += pConverter->channelsOut; + pFramesInU8 += pConverter->channelsIn; + } + } break; + + case ma_format_s16: + { + /* */ ma_int16* pFramesOutS16 = ( ma_int16*)pFramesOut; + const ma_int16* pFramesInS16 = (const ma_int16*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + pFramesOutS16[pConverter->shuffleTable[iChannelIn]] = pFramesInS16[iChannelIn]; + } + + pFramesOutS16 += pConverter->channelsOut; + pFramesInS16 += pConverter->channelsIn; + } + } break; + + case ma_format_s24: + { + /* */ ma_uint8* pFramesOutS24 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInS24 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_uint32 iChannelOut = pConverter->shuffleTable[iChannelIn]; + pFramesOutS24[iChannelOut*3 + 0] = pFramesInS24[iChannelIn*3 + 0]; + pFramesOutS24[iChannelOut*3 + 1] = pFramesInS24[iChannelIn*3 + 1]; + pFramesOutS24[iChannelOut*3 + 2] = pFramesInS24[iChannelIn*3 + 2]; + } + + pFramesOutS24 += pConverter->channelsOut*3; + pFramesInS24 += pConverter->channelsIn*3; + } + } break; + + case ma_format_s32: + { + /* */ ma_int32* pFramesOutS32 = ( ma_int32*)pFramesOut; + const ma_int32* pFramesInS32 = (const ma_int32*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + pFramesOutS32[pConverter->shuffleTable[iChannelIn]] = pFramesInS32[iChannelIn]; + } + + pFramesOutS32 += pConverter->channelsOut; + pFramesInS32 += pConverter->channelsIn; + } + } break; + + case ma_format_f32: + { + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + pFramesOutF32[pConverter->shuffleTable[iChannelIn]] = pFramesInF32[iChannelIn]; + } + + pFramesOutF32 += pConverter->channelsOut; + pFramesInF32 += pConverter->channelsIn; + } + } break; + + default: return MA_INVALID_OPERATION; /* Unknown format. */ + } + + return MA_SUCCESS; +} + +static ma_result ma_channel_converter_process_pcm_frames__simple_mono_expansion(ma_channel_converter* pConverter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + + MA_ASSERT(pConverter != NULL); + MA_ASSERT(pFramesOut != NULL); + MA_ASSERT(pFramesIn != NULL); + MA_ASSERT(pConverter->channelsIn == 1); + + switch (pConverter->format) + { + case ma_format_u8: + { + /* */ ma_uint8* pFramesOutU8 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInU8 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pConverter->channelsOut; iChannel += 1) { + pFramesOutU8[iFrame*pConverter->channelsOut + iChannel] = pFramesInU8[iFrame]; + } + } + } break; + + case ma_format_s16: + { + /* */ ma_int16* pFramesOutS16 = ( ma_int16*)pFramesOut; + const ma_int16* pFramesInS16 = (const ma_int16*)pFramesIn; + + if (pConverter->channelsOut == 2) { + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + pFramesOutS16[iFrame*2 + 0] = pFramesInS16[iFrame]; + pFramesOutS16[iFrame*2 + 1] = pFramesInS16[iFrame]; + } + } else { + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pConverter->channelsOut; iChannel += 1) { + pFramesOutS16[iFrame*pConverter->channelsOut + iChannel] = pFramesInS16[iFrame]; + } + } + } + } break; + + case ma_format_s24: + { + /* */ ma_uint8* pFramesOutS24 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInS24 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pConverter->channelsOut; iChannel += 1) { + ma_uint64 iSampleOut = iFrame*pConverter->channelsOut + iChannel; + ma_uint64 iSampleIn = iFrame; + pFramesOutS24[iSampleOut*3 + 0] = pFramesInS24[iSampleIn*3 + 0]; + pFramesOutS24[iSampleOut*3 + 1] = pFramesInS24[iSampleIn*3 + 1]; + pFramesOutS24[iSampleOut*3 + 2] = pFramesInS24[iSampleIn*3 + 2]; + } + } + } break; + + case ma_format_s32: + { + /* */ ma_int32* pFramesOutS32 = ( ma_int32*)pFramesOut; + const ma_int32* pFramesInS32 = (const ma_int32*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pConverter->channelsOut; iChannel += 1) { + pFramesOutS32[iFrame*pConverter->channelsOut + iChannel] = pFramesInS32[iFrame]; + } + } + } break; + + case ma_format_f32: + { + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + + if (pConverter->channelsOut == 2) { + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + pFramesOutF32[iFrame*2 + 0] = pFramesInF32[iFrame]; + pFramesOutF32[iFrame*2 + 1] = pFramesInF32[iFrame]; + } + } else { + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pConverter->channelsOut; iChannel += 1) { + pFramesOutF32[iFrame*pConverter->channelsOut + iChannel] = pFramesInF32[iFrame]; + } + } + } + } break; + + default: return MA_INVALID_OPERATION; /* Unknown format. */ + } + + return MA_SUCCESS; +} + +static ma_result ma_channel_converter_process_pcm_frames__stereo_to_mono(ma_channel_converter* pConverter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + + MA_ASSERT(pConverter != NULL); + MA_ASSERT(pFramesOut != NULL); + MA_ASSERT(pFramesIn != NULL); + MA_ASSERT(pConverter->channelsIn == 2); + MA_ASSERT(pConverter->channelsOut == 1); + + switch (pConverter->format) + { + case ma_format_u8: + { + /* */ ma_uint8* pFramesOutU8 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInU8 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + pFramesOutU8[iFrame] = ma_clip_u8((ma_int16)((ma_pcm_sample_u8_to_s16_no_scale(pFramesInU8[iFrame*2+0]) + ma_pcm_sample_u8_to_s16_no_scale(pFramesInU8[iFrame*2+1])) / 2)); + } + } break; + + case ma_format_s16: + { + /* */ ma_int16* pFramesOutS16 = ( ma_int16*)pFramesOut; + const ma_int16* pFramesInS16 = (const ma_int16*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + pFramesOutS16[iFrame] = (ma_int16)(((ma_int32)pFramesInS16[iFrame*2+0] + (ma_int32)pFramesInS16[iFrame*2+1]) / 2); + } + } break; + + case ma_format_s24: + { + /* */ ma_uint8* pFramesOutS24 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInS24 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + ma_int64 s24_0 = ma_pcm_sample_s24_to_s32_no_scale(&pFramesInS24[(iFrame*2+0)*3]); + ma_int64 s24_1 = ma_pcm_sample_s24_to_s32_no_scale(&pFramesInS24[(iFrame*2+1)*3]); + ma_pcm_sample_s32_to_s24_no_scale((s24_0 + s24_1) / 2, &pFramesOutS24[iFrame*3]); + } + } break; + + case ma_format_s32: + { + /* */ ma_int32* pFramesOutS32 = ( ma_int32*)pFramesOut; + const ma_int32* pFramesInS32 = (const ma_int32*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + pFramesOutS32[iFrame] = (ma_int16)(((ma_int32)pFramesInS32[iFrame*2+0] + (ma_int32)pFramesInS32[iFrame*2+1]) / 2); + } + } break; + + case ma_format_f32: + { + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; ++iFrame) { + pFramesOutF32[iFrame] = (pFramesInF32[iFrame*2+0] + pFramesInF32[iFrame*2+0]) * 0.5f; + } + } break; + + default: return MA_INVALID_OPERATION; /* Unknown format. */ + } + + return MA_SUCCESS; +} + +static ma_result ma_channel_converter_process_pcm_frames__weights(ma_channel_converter* pConverter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + ma_uint32 iFrame; + ma_uint32 iChannelIn; + ma_uint32 iChannelOut; + + MA_ASSERT(pConverter != NULL); + MA_ASSERT(pFramesOut != NULL); + MA_ASSERT(pFramesIn != NULL); + + /* This is the more complicated case. Each of the output channels is accumulated with 0 or more input channels. */ + + /* Clear. */ + ma_zero_memory_64(pFramesOut, frameCount * ma_get_bytes_per_frame(pConverter->format, pConverter->channelsOut)); + + /* Accumulate. */ + switch (pConverter->format) + { + case ma_format_u8: + { + /* */ ma_uint8* pFramesOutU8 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInU8 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_int16 u8_O = ma_pcm_sample_u8_to_s16_no_scale(pFramesOutU8[iFrame*pConverter->channelsOut + iChannelOut]); + ma_int16 u8_I = ma_pcm_sample_u8_to_s16_no_scale(pFramesInU8 [iFrame*pConverter->channelsIn + iChannelIn ]); + ma_int32 s = (ma_int32)ma_clamp(u8_O + ((u8_I * pConverter->weights.s16[iChannelIn][iChannelOut]) >> MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT), -128, 127); + pFramesOutU8[iFrame*pConverter->channelsOut + iChannelOut] = ma_clip_u8((ma_int16)s); + } + } + } + } break; + + case ma_format_s16: + { + /* */ ma_int16* pFramesOutS16 = ( ma_int16*)pFramesOut; + const ma_int16* pFramesInS16 = (const ma_int16*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_int32 s = pFramesOutS16[iFrame*pConverter->channelsOut + iChannelOut]; + s += (pFramesInS16[iFrame*pConverter->channelsIn + iChannelIn] * pConverter->weights.s16[iChannelIn][iChannelOut]) >> MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT; + + pFramesOutS16[iFrame*pConverter->channelsOut + iChannelOut] = (ma_int16)ma_clamp(s, -32768, 32767); + } + } + } + } break; + + case ma_format_s24: + { + /* */ ma_uint8* pFramesOutS24 = ( ma_uint8*)pFramesOut; + const ma_uint8* pFramesInS24 = (const ma_uint8*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_int64 s24_O = ma_pcm_sample_s24_to_s32_no_scale(&pFramesOutS24[(iFrame*pConverter->channelsOut + iChannelOut)*3]); + ma_int64 s24_I = ma_pcm_sample_s24_to_s32_no_scale(&pFramesInS24 [(iFrame*pConverter->channelsIn + iChannelIn )*3]); + ma_int64 s24 = (ma_int32)ma_clamp(s24_O + ((s24_I * pConverter->weights.s16[iChannelIn][iChannelOut]) >> MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT), -8388608, 8388607); + ma_pcm_sample_s32_to_s24_no_scale(s24, &pFramesOutS24[(iFrame*pConverter->channelsOut + iChannelOut)*3]); + } + } + } + } break; + + case ma_format_s32: + { + /* */ ma_int32* pFramesOutS32 = ( ma_int32*)pFramesOut; + const ma_int32* pFramesInS32 = (const ma_int32*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_int64 s = pFramesOutS32[iFrame*pConverter->channelsOut + iChannelOut]; + s += ((ma_int64)pFramesInS32[iFrame*pConverter->channelsIn + iChannelIn] * pConverter->weights.s16[iChannelIn][iChannelOut]) >> MA_CHANNEL_CONVERTER_FIXED_POINT_SHIFT; + + pFramesOutS32[iFrame*pConverter->channelsOut + iChannelOut] = ma_clip_s32(s); + } + } + } + } break; + + case ma_format_f32: + { + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + pFramesOutF32[iFrame*pConverter->channelsOut + iChannelOut] += pFramesInF32[iFrame*pConverter->channelsIn + iChannelIn] * pConverter->weights.f32[iChannelIn][iChannelOut]; + } + } + } + } break; + + default: return MA_INVALID_OPERATION; /* Unknown format. */ + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_channel_converter_process_pcm_frames(ma_channel_converter* pConverter, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pConverter == NULL) { + return MA_INVALID_ARGS; + } + + if (pFramesOut == NULL) { + return MA_INVALID_ARGS; + } + + if (pFramesIn == NULL) { + ma_zero_memory_64(pFramesOut, frameCount * ma_get_bytes_per_frame(pConverter->format, pConverter->channelsOut)); + return MA_SUCCESS; + } + + if (pConverter->isPassthrough) { + return ma_channel_converter_process_pcm_frames__passthrough(pConverter, pFramesOut, pFramesIn, frameCount); + } else if (pConverter->isSimpleShuffle) { + return ma_channel_converter_process_pcm_frames__simple_shuffle(pConverter, pFramesOut, pFramesIn, frameCount); + } else if (pConverter->isSimpleMonoExpansion) { + return ma_channel_converter_process_pcm_frames__simple_mono_expansion(pConverter, pFramesOut, pFramesIn, frameCount); + } else if (pConverter->isStereoToMono) { + return ma_channel_converter_process_pcm_frames__stereo_to_mono(pConverter, pFramesOut, pFramesIn, frameCount); + } else { + return ma_channel_converter_process_pcm_frames__weights(pConverter, pFramesOut, pFramesIn, frameCount); + } +} + + +/************************************************************************************************************************************************************** + +Data Conversion + +**************************************************************************************************************************************************************/ +MA_API ma_data_converter_config ma_data_converter_config_init_default() +{ + ma_data_converter_config config; + MA_ZERO_OBJECT(&config); + + config.ditherMode = ma_dither_mode_none; + config.resampling.algorithm = ma_resample_algorithm_linear; + config.resampling.allowDynamicSampleRate = MA_FALSE; /* Disable dynamic sample rates by default because dynamic rate adjustments should be quite rare and it allows an optimization for cases when the in and out sample rates are the same. */ + + /* Linear resampling defaults. */ + config.resampling.linear.lpfOrder = 1; + config.resampling.linear.lpfNyquistFactor = 1; + + /* Speex resampling defaults. */ + config.resampling.speex.quality = 3; + + return config; +} + +MA_API ma_data_converter_config ma_data_converter_config_init(ma_format formatIn, ma_format formatOut, ma_uint32 channelsIn, ma_uint32 channelsOut, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut) +{ + ma_data_converter_config config = ma_data_converter_config_init_default(); + config.formatIn = formatIn; + config.formatOut = formatOut; + config.channelsIn = ma_min(channelsIn, MA_MAX_CHANNELS); + config.channelsOut = ma_min(channelsOut, MA_MAX_CHANNELS); + config.sampleRateIn = sampleRateIn; + config.sampleRateOut = sampleRateOut; + + return config; +} + +MA_API ma_result ma_data_converter_init(const ma_data_converter_config* pConfig, ma_data_converter* pConverter) +{ + ma_result result; + ma_format midFormat; + + if (pConverter == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pConverter); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + pConverter->config = *pConfig; + + /* Basic validation. */ + if (pConfig->channelsIn < MA_MIN_CHANNELS || pConfig->channelsOut < MA_MIN_CHANNELS || + pConfig->channelsIn > MA_MAX_CHANNELS || pConfig->channelsOut > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + /* + We want to avoid as much data conversion as possible. The channel converter and resampler both support s16 and f32 natively. We need to decide + on the format to use for this stage. We call this the mid format because it's used in the middle stage of the conversion pipeline. If the output + format is either s16 or f32 we use that one. If that is not the case it will do the same thing for the input format. If it's neither we just + use f32. + */ + /* */ if (pConverter->config.formatOut == ma_format_s16 || pConverter->config.formatOut == ma_format_f32) { + midFormat = pConverter->config.formatOut; + } else if (pConverter->config.formatIn == ma_format_s16 || pConverter->config.formatIn == ma_format_f32) { + midFormat = pConverter->config.formatIn; + } else { + midFormat = ma_format_f32; + } + + /* Channel converter. We always initialize this, but we check if it configures itself as a passthrough to determine whether or not it's needed. */ + { + ma_uint32 iChannelIn; + ma_uint32 iChannelOut; + ma_channel_converter_config channelConverterConfig; + + channelConverterConfig = ma_channel_converter_config_init(midFormat, pConverter->config.channelsIn, pConverter->config.channelMapIn, pConverter->config.channelsOut, pConverter->config.channelMapOut, pConverter->config.channelMixMode); + + /* Channel weights. */ + for (iChannelIn = 0; iChannelIn < pConverter->config.channelsIn; iChannelIn += 1) { + for (iChannelOut = 0; iChannelOut < pConverter->config.channelsOut; iChannelOut += 1) { + channelConverterConfig.weights[iChannelIn][iChannelOut] = pConverter->config.channelWeights[iChannelIn][iChannelOut]; + } + } + + result = ma_channel_converter_init(&channelConverterConfig, &pConverter->channelConverter); + if (result != MA_SUCCESS) { + return result; + } + + /* If the channel converter is not a passthrough we need to enable it. Otherwise we can skip it. */ + if (pConverter->channelConverter.isPassthrough == MA_FALSE) { + pConverter->hasChannelConverter = MA_TRUE; + } + } + + + /* Always enable dynamic sample rates if the input sample rate is different because we're always going to need a resampler in this case anyway. */ + if (pConverter->config.resampling.allowDynamicSampleRate == MA_FALSE) { + pConverter->config.resampling.allowDynamicSampleRate = pConverter->config.sampleRateIn != pConverter->config.sampleRateOut; + } + + /* Resampler. */ + if (pConverter->config.resampling.allowDynamicSampleRate) { + ma_resampler_config resamplerConfig; + ma_uint32 resamplerChannels; + + /* The resampler is the most expensive part of the conversion process, so we need to do it at the stage where the channel count is at it's lowest. */ + if (pConverter->config.channelsIn < pConverter->config.channelsOut) { + resamplerChannels = pConverter->config.channelsIn; + } else { + resamplerChannels = pConverter->config.channelsOut; + } + + resamplerConfig = ma_resampler_config_init(midFormat, resamplerChannels, pConverter->config.sampleRateIn, pConverter->config.sampleRateOut, pConverter->config.resampling.algorithm); + resamplerConfig.linear.lpfOrder = pConverter->config.resampling.linear.lpfOrder; + resamplerConfig.linear.lpfNyquistFactor = pConverter->config.resampling.linear.lpfNyquistFactor; + resamplerConfig.speex.quality = pConverter->config.resampling.speex.quality; + + result = ma_resampler_init(&resamplerConfig, &pConverter->resampler); + if (result != MA_SUCCESS) { + return result; + } + + pConverter->hasResampler = MA_TRUE; + } + + + /* We can simplify pre- and post-format conversion if we have neither channel conversion nor resampling. */ + if (pConverter->hasChannelConverter == MA_FALSE && pConverter->hasResampler == MA_FALSE) { + /* We have neither channel conversion nor resampling so we'll only need one of pre- or post-format conversion, or none if the input and output formats are the same. */ + if (pConverter->config.formatIn == pConverter->config.formatOut) { + /* The formats are the same so we can just pass through. */ + pConverter->hasPreFormatConversion = MA_FALSE; + pConverter->hasPostFormatConversion = MA_FALSE; + } else { + /* The formats are different so we need to do either pre- or post-format conversion. It doesn't matter which. */ + pConverter->hasPreFormatConversion = MA_FALSE; + pConverter->hasPostFormatConversion = MA_TRUE; + } + } else { + /* We have a channel converter and/or resampler so we'll need channel conversion based on the mid format. */ + if (pConverter->config.formatIn != midFormat) { + pConverter->hasPreFormatConversion = MA_TRUE; + } + if (pConverter->config.formatOut != midFormat) { + pConverter->hasPostFormatConversion = MA_TRUE; + } + } + + /* We can enable passthrough optimizations if applicable. Note that we'll only be able to do this if the sample rate is static. */ + if (pConverter->hasPreFormatConversion == MA_FALSE && + pConverter->hasPostFormatConversion == MA_FALSE && + pConverter->hasChannelConverter == MA_FALSE && + pConverter->hasResampler == MA_FALSE) { + pConverter->isPassthrough = MA_TRUE; + } + + return MA_SUCCESS; +} + +MA_API void ma_data_converter_uninit(ma_data_converter* pConverter) +{ + if (pConverter == NULL) { + return; + } + + if (pConverter->hasResampler) { + ma_resampler_uninit(&pConverter->resampler); + } +} + +static ma_result ma_data_converter_process_pcm_frames__passthrough(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 frameCount; + + MA_ASSERT(pConverter != NULL); + + frameCountIn = 0; + if (pFrameCountIn != NULL) { + frameCountIn = *pFrameCountIn; + } + + frameCountOut = 0; + if (pFrameCountOut != NULL) { + frameCountOut = *pFrameCountOut; + } + + frameCount = ma_min(frameCountIn, frameCountOut); + + if (pFramesOut != NULL) { + if (pFramesIn != NULL) { + ma_copy_memory_64(pFramesOut, pFramesIn, frameCount * ma_get_bytes_per_frame(pConverter->config.formatOut, pConverter->config.channelsOut)); + } else { + ma_zero_memory_64(pFramesOut, frameCount * ma_get_bytes_per_frame(pConverter->config.formatOut, pConverter->config.channelsOut)); + } + } + + if (pFrameCountIn != NULL) { + *pFrameCountIn = frameCount; + } + if (pFrameCountOut != NULL) { + *pFrameCountOut = frameCount; + } + + return MA_SUCCESS; +} + +static ma_result ma_data_converter_process_pcm_frames__format_only(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 frameCount; + + MA_ASSERT(pConverter != NULL); + + frameCountIn = 0; + if (pFrameCountIn != NULL) { + frameCountIn = *pFrameCountIn; + } + + frameCountOut = 0; + if (pFrameCountOut != NULL) { + frameCountOut = *pFrameCountOut; + } + + frameCount = ma_min(frameCountIn, frameCountOut); + + if (pFramesOut != NULL) { + if (pFramesIn != NULL) { + ma_convert_pcm_frames_format(pFramesOut, pConverter->config.formatOut, pFramesIn, pConverter->config.formatIn, frameCount, pConverter->config.channelsIn, pConverter->config.ditherMode); + } else { + ma_zero_memory_64(pFramesOut, frameCount * ma_get_bytes_per_frame(pConverter->config.formatOut, pConverter->config.channelsOut)); + } + } + + if (pFrameCountIn != NULL) { + *pFrameCountIn = frameCount; + } + if (pFrameCountOut != NULL) { + *pFrameCountOut = frameCount; + } + + return MA_SUCCESS; +} + + +static ma_result ma_data_converter_process_pcm_frames__resample_with_format_conversion(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + ma_result result = MA_SUCCESS; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 framesProcessedIn; + ma_uint64 framesProcessedOut; + + MA_ASSERT(pConverter != NULL); + + frameCountIn = 0; + if (pFrameCountIn != NULL) { + frameCountIn = *pFrameCountIn; + } + + frameCountOut = 0; + if (pFrameCountOut != NULL) { + frameCountOut = *pFrameCountOut; + } + + framesProcessedIn = 0; + framesProcessedOut = 0; + + while (framesProcessedOut < frameCountOut) { + ma_uint8 pTempBufferOut[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + const ma_uint32 tempBufferOutCap = sizeof(pTempBufferOut) / ma_get_bytes_per_frame(pConverter->resampler.config.format, pConverter->resampler.config.channels); + const void* pFramesInThisIteration; + /* */ void* pFramesOutThisIteration; + ma_uint64 frameCountInThisIteration; + ma_uint64 frameCountOutThisIteration; + + if (pFramesIn != NULL) { + pFramesInThisIteration = ma_offset_ptr(pFramesIn, framesProcessedIn * ma_get_bytes_per_frame(pConverter->config.formatIn, pConverter->config.channelsIn)); + } else { + pFramesInThisIteration = NULL; + } + + if (pFramesOut != NULL) { + pFramesOutThisIteration = ma_offset_ptr(pFramesOut, framesProcessedOut * ma_get_bytes_per_frame(pConverter->config.formatOut, pConverter->config.channelsOut)); + } else { + pFramesOutThisIteration = NULL; + } + + /* Do a pre format conversion if necessary. */ + if (pConverter->hasPreFormatConversion) { + ma_uint8 pTempBufferIn[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + const ma_uint32 tempBufferInCap = sizeof(pTempBufferIn) / ma_get_bytes_per_frame(pConverter->resampler.config.format, pConverter->resampler.config.channels); + + frameCountInThisIteration = (frameCountIn - framesProcessedIn); + if (frameCountInThisIteration > tempBufferInCap) { + frameCountInThisIteration = tempBufferInCap; + } + + if (pConverter->hasPostFormatConversion) { + if (frameCountInThisIteration > tempBufferOutCap) { + frameCountInThisIteration = tempBufferOutCap; + } + } + + if (pFramesInThisIteration != NULL) { + ma_convert_pcm_frames_format(pTempBufferIn, pConverter->resampler.config.format, pFramesInThisIteration, pConverter->config.formatIn, frameCountInThisIteration, pConverter->config.channelsIn, pConverter->config.ditherMode); + } else { + MA_ZERO_MEMORY(pTempBufferIn, sizeof(pTempBufferIn)); + } + + frameCountOutThisIteration = (frameCountOut - framesProcessedOut); + + if (pConverter->hasPostFormatConversion) { + /* Both input and output conversion required. Output to the temp buffer. */ + if (frameCountOutThisIteration > tempBufferOutCap) { + frameCountOutThisIteration = tempBufferOutCap; + } + + result = ma_resampler_process_pcm_frames(&pConverter->resampler, pTempBufferIn, &frameCountInThisIteration, pTempBufferOut, &frameCountOutThisIteration); + } else { + /* Only pre-format required. Output straight to the output buffer. */ + result = ma_resampler_process_pcm_frames(&pConverter->resampler, pTempBufferIn, &frameCountInThisIteration, pFramesOutThisIteration, &frameCountOutThisIteration); + } + + if (result != MA_SUCCESS) { + break; + } + } else { + /* No pre-format required. Just read straight from the input buffer. */ + MA_ASSERT(pConverter->hasPostFormatConversion == MA_TRUE); + + frameCountInThisIteration = (frameCountIn - framesProcessedIn); + frameCountOutThisIteration = (frameCountOut - framesProcessedOut); + if (frameCountOutThisIteration > tempBufferOutCap) { + frameCountOutThisIteration = tempBufferOutCap; + } + + result = ma_resampler_process_pcm_frames(&pConverter->resampler, pFramesInThisIteration, &frameCountInThisIteration, pTempBufferOut, &frameCountOutThisIteration); + if (result != MA_SUCCESS) { + break; + } + } + + /* If we are doing a post format conversion we need to do that now. */ + if (pConverter->hasPostFormatConversion) { + if (pFramesOutThisIteration != NULL) { + ma_convert_pcm_frames_format(pFramesOutThisIteration, pConverter->config.formatOut, pTempBufferOut, pConverter->resampler.config.format, frameCountOutThisIteration, pConverter->resampler.config.channels, pConverter->config.ditherMode); + } + } + + framesProcessedIn += frameCountInThisIteration; + framesProcessedOut += frameCountOutThisIteration; + + MA_ASSERT(framesProcessedIn <= frameCountIn); + MA_ASSERT(framesProcessedOut <= frameCountOut); + + if (frameCountOutThisIteration == 0) { + break; /* Consumed all of our input data. */ + } + } + + if (pFrameCountIn != NULL) { + *pFrameCountIn = framesProcessedIn; + } + if (pFrameCountOut != NULL) { + *pFrameCountOut = framesProcessedOut; + } + + return result; +} + +static ma_result ma_data_converter_process_pcm_frames__resample_only(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + MA_ASSERT(pConverter != NULL); + + if (pConverter->hasPreFormatConversion == MA_FALSE && pConverter->hasPostFormatConversion == MA_FALSE) { + /* Neither pre- nor post-format required. This is simple case where only resampling is required. */ + return ma_resampler_process_pcm_frames(&pConverter->resampler, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + /* Format conversion required. */ + return ma_data_converter_process_pcm_frames__resample_with_format_conversion(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } +} + +static ma_result ma_data_converter_process_pcm_frames__channels_only(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + ma_result result; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 frameCount; + + MA_ASSERT(pConverter != NULL); + + frameCountIn = 0; + if (pFrameCountIn != NULL) { + frameCountIn = *pFrameCountIn; + } + + frameCountOut = 0; + if (pFrameCountOut != NULL) { + frameCountOut = *pFrameCountOut; + } + + frameCount = ma_min(frameCountIn, frameCountOut); + + if (pConverter->hasPreFormatConversion == MA_FALSE && pConverter->hasPostFormatConversion == MA_FALSE) { + /* No format conversion required. */ + result = ma_channel_converter_process_pcm_frames(&pConverter->channelConverter, pFramesOut, pFramesIn, frameCount); + if (result != MA_SUCCESS) { + return result; + } + } else { + /* Format conversion required. */ + ma_uint64 framesProcessed = 0; + + while (framesProcessed < frameCount) { + ma_uint8 pTempBufferOut[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + const ma_uint32 tempBufferOutCap = sizeof(pTempBufferOut) / ma_get_bytes_per_frame(pConverter->channelConverter.format, pConverter->channelConverter.channelsOut); + const void* pFramesInThisIteration; + /* */ void* pFramesOutThisIteration; + ma_uint64 frameCountThisIteration; + + if (pFramesIn != NULL) { + pFramesInThisIteration = ma_offset_ptr(pFramesIn, framesProcessed * ma_get_bytes_per_frame(pConverter->config.formatIn, pConverter->config.channelsIn)); + } else { + pFramesInThisIteration = NULL; + } + + if (pFramesOut != NULL) { + pFramesOutThisIteration = ma_offset_ptr(pFramesOut, framesProcessed * ma_get_bytes_per_frame(pConverter->config.formatOut, pConverter->config.channelsOut)); + } else { + pFramesOutThisIteration = NULL; + } + + /* Do a pre format conversion if necessary. */ + if (pConverter->hasPreFormatConversion) { + ma_uint8 pTempBufferIn[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + const ma_uint32 tempBufferInCap = sizeof(pTempBufferIn) / ma_get_bytes_per_frame(pConverter->channelConverter.format, pConverter->channelConverter.channelsIn); + + frameCountThisIteration = (frameCount - framesProcessed); + if (frameCountThisIteration > tempBufferInCap) { + frameCountThisIteration = tempBufferInCap; + } + + if (pConverter->hasPostFormatConversion) { + if (frameCountThisIteration > tempBufferOutCap) { + frameCountThisIteration = tempBufferOutCap; + } + } + + if (pFramesInThisIteration != NULL) { + ma_convert_pcm_frames_format(pTempBufferIn, pConverter->channelConverter.format, pFramesInThisIteration, pConverter->config.formatIn, frameCountThisIteration, pConverter->config.channelsIn, pConverter->config.ditherMode); + } else { + MA_ZERO_MEMORY(pTempBufferIn, sizeof(pTempBufferIn)); + } + + if (pConverter->hasPostFormatConversion) { + /* Both input and output conversion required. Output to the temp buffer. */ + result = ma_channel_converter_process_pcm_frames(&pConverter->channelConverter, pTempBufferOut, pTempBufferIn, frameCountThisIteration); + } else { + /* Only pre-format required. Output straight to the output buffer. */ + result = ma_channel_converter_process_pcm_frames(&pConverter->channelConverter, pFramesOutThisIteration, pTempBufferIn, frameCountThisIteration); + } + + if (result != MA_SUCCESS) { + break; + } + } else { + /* No pre-format required. Just read straight from the input buffer. */ + MA_ASSERT(pConverter->hasPostFormatConversion == MA_TRUE); + + frameCountThisIteration = (frameCount - framesProcessed); + if (frameCountThisIteration > tempBufferOutCap) { + frameCountThisIteration = tempBufferOutCap; + } + + result = ma_channel_converter_process_pcm_frames(&pConverter->channelConverter, pTempBufferOut, pFramesInThisIteration, frameCountThisIteration); + if (result != MA_SUCCESS) { + break; + } + } + + /* If we are doing a post format conversion we need to do that now. */ + if (pConverter->hasPostFormatConversion) { + if (pFramesOutThisIteration != NULL) { + ma_convert_pcm_frames_format(pFramesOutThisIteration, pConverter->config.formatOut, pTempBufferOut, pConverter->channelConverter.format, frameCountThisIteration, pConverter->channelConverter.channelsOut, pConverter->config.ditherMode); + } + } + + framesProcessed += frameCountThisIteration; + } + } + + if (pFrameCountIn != NULL) { + *pFrameCountIn = frameCount; + } + if (pFrameCountOut != NULL) { + *pFrameCountOut = frameCount; + } + + return MA_SUCCESS; +} + +static ma_result ma_data_converter_process_pcm_frames__resampling_first(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + ma_result result; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 framesProcessedIn; + ma_uint64 framesProcessedOut; + ma_uint8 pTempBufferIn[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In resampler format. */ + ma_uint64 tempBufferInCap; + ma_uint8 pTempBufferMid[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In resampler format, channel converter input format. */ + ma_uint64 tempBufferMidCap; + ma_uint8 pTempBufferOut[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In channel converter output format. */ + ma_uint64 tempBufferOutCap; + + MA_ASSERT(pConverter != NULL); + MA_ASSERT(pConverter->resampler.config.format == pConverter->channelConverter.format); + MA_ASSERT(pConverter->resampler.config.channels == pConverter->channelConverter.channelsIn); + MA_ASSERT(pConverter->resampler.config.channels < pConverter->channelConverter.channelsOut); + + frameCountIn = 0; + if (pFrameCountIn != NULL) { + frameCountIn = *pFrameCountIn; + } + + frameCountOut = 0; + if (pFrameCountOut != NULL) { + frameCountOut = *pFrameCountOut; + } + + framesProcessedIn = 0; + framesProcessedOut = 0; + + tempBufferInCap = sizeof(pTempBufferIn) / ma_get_bytes_per_frame(pConverter->resampler.config.format, pConverter->resampler.config.channels); + tempBufferMidCap = sizeof(pTempBufferIn) / ma_get_bytes_per_frame(pConverter->resampler.config.format, pConverter->resampler.config.channels); + tempBufferOutCap = sizeof(pTempBufferOut) / ma_get_bytes_per_frame(pConverter->channelConverter.format, pConverter->channelConverter.channelsOut); + + while (framesProcessedOut < frameCountOut) { + ma_uint64 frameCountInThisIteration; + ma_uint64 frameCountOutThisIteration; + const void* pRunningFramesIn = NULL; + void* pRunningFramesOut = NULL; + const void* pResampleBufferIn; + void* pChannelsBufferOut; + + if (pFramesIn != NULL) { + pRunningFramesIn = ma_offset_ptr(pFramesIn, framesProcessedIn * ma_get_bytes_per_frame(pConverter->config.formatIn, pConverter->config.channelsIn)); + } + if (pFramesOut != NULL) { + pRunningFramesOut = ma_offset_ptr(pFramesOut, framesProcessedOut * ma_get_bytes_per_frame(pConverter->config.formatOut, pConverter->config.channelsOut)); + } + + /* Run input data through the resampler and output it to the temporary buffer. */ + frameCountInThisIteration = (frameCountIn - framesProcessedIn); + + if (pConverter->hasPreFormatConversion) { + if (frameCountInThisIteration > tempBufferInCap) { + frameCountInThisIteration = tempBufferInCap; + } + } + + frameCountOutThisIteration = (frameCountOut - framesProcessedOut); + if (frameCountOutThisIteration > tempBufferMidCap) { + frameCountOutThisIteration = tempBufferMidCap; + } + + /* We can't read more frames than can fit in the output buffer. */ + if (pConverter->hasPostFormatConversion) { + if (frameCountOutThisIteration > tempBufferOutCap) { + frameCountOutThisIteration = tempBufferOutCap; + } + } + + /* We need to ensure we don't try to process too many input frames that we run out of room in the output buffer. If this happens we'll end up glitching. */ + { + ma_uint64 requiredInputFrameCount = ma_resampler_get_required_input_frame_count(&pConverter->resampler, frameCountOutThisIteration); + if (frameCountInThisIteration > requiredInputFrameCount) { + frameCountInThisIteration = requiredInputFrameCount; + } + } + + if (pConverter->hasPreFormatConversion) { + if (pFramesIn != NULL) { + ma_convert_pcm_frames_format(pTempBufferIn, pConverter->resampler.config.format, pRunningFramesIn, pConverter->config.formatIn, frameCountInThisIteration, pConverter->config.channelsIn, pConverter->config.ditherMode); + pResampleBufferIn = pTempBufferIn; + } else { + pResampleBufferIn = NULL; + } + } else { + pResampleBufferIn = pRunningFramesIn; + } + + result = ma_resampler_process_pcm_frames(&pConverter->resampler, pResampleBufferIn, &frameCountInThisIteration, pTempBufferMid, &frameCountOutThisIteration); + if (result != MA_SUCCESS) { + return result; + } + + + /* + The input data has been resampled so now we need to run it through the channel converter. The input data is always contained in pTempBufferMid. We only need to do + this part if we have an output buffer. + */ + if (pFramesOut != NULL) { + if (pConverter->hasPostFormatConversion) { + pChannelsBufferOut = pTempBufferOut; + } else { + pChannelsBufferOut = pRunningFramesOut; + } + + result = ma_channel_converter_process_pcm_frames(&pConverter->channelConverter, pChannelsBufferOut, pTempBufferMid, frameCountOutThisIteration); + if (result != MA_SUCCESS) { + return result; + } + + /* Finally we do post format conversion. */ + if (pConverter->hasPostFormatConversion) { + ma_convert_pcm_frames_format(pRunningFramesOut, pConverter->config.formatOut, pChannelsBufferOut, pConverter->channelConverter.format, frameCountOutThisIteration, pConverter->channelConverter.channelsOut, pConverter->config.ditherMode); + } + } + + + framesProcessedIn += frameCountInThisIteration; + framesProcessedOut += frameCountOutThisIteration; + + MA_ASSERT(framesProcessedIn <= frameCountIn); + MA_ASSERT(framesProcessedOut <= frameCountOut); + + if (frameCountOutThisIteration == 0) { + break; /* Consumed all of our input data. */ + } + } + + if (pFrameCountIn != NULL) { + *pFrameCountIn = framesProcessedIn; + } + if (pFrameCountOut != NULL) { + *pFrameCountOut = framesProcessedOut; + } + + return MA_SUCCESS; +} + +static ma_result ma_data_converter_process_pcm_frames__channels_first(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + ma_result result; + ma_uint64 frameCountIn; + ma_uint64 frameCountOut; + ma_uint64 framesProcessedIn; + ma_uint64 framesProcessedOut; + ma_uint8 pTempBufferIn[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In resampler format. */ + ma_uint64 tempBufferInCap; + ma_uint8 pTempBufferMid[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In resampler format, channel converter input format. */ + ma_uint64 tempBufferMidCap; + ma_uint8 pTempBufferOut[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In channel converter output format. */ + ma_uint64 tempBufferOutCap; + + MA_ASSERT(pConverter != NULL); + MA_ASSERT(pConverter->resampler.config.format == pConverter->channelConverter.format); + MA_ASSERT(pConverter->resampler.config.channels == pConverter->channelConverter.channelsOut); + MA_ASSERT(pConverter->resampler.config.channels < pConverter->channelConverter.channelsIn); + + frameCountIn = 0; + if (pFrameCountIn != NULL) { + frameCountIn = *pFrameCountIn; + } + + frameCountOut = 0; + if (pFrameCountOut != NULL) { + frameCountOut = *pFrameCountOut; + } + + framesProcessedIn = 0; + framesProcessedOut = 0; + + tempBufferInCap = sizeof(pTempBufferIn) / ma_get_bytes_per_frame(pConverter->channelConverter.format, pConverter->channelConverter.channelsIn); + tempBufferMidCap = sizeof(pTempBufferIn) / ma_get_bytes_per_frame(pConverter->channelConverter.format, pConverter->channelConverter.channelsOut); + tempBufferOutCap = sizeof(pTempBufferOut) / ma_get_bytes_per_frame(pConverter->resampler.config.format, pConverter->resampler.config.channels); + + while (framesProcessedOut < frameCountOut) { + ma_uint64 frameCountInThisIteration; + ma_uint64 frameCountOutThisIteration; + const void* pRunningFramesIn = NULL; + void* pRunningFramesOut = NULL; + const void* pChannelsBufferIn; + void* pResampleBufferOut; + + if (pFramesIn != NULL) { + pRunningFramesIn = ma_offset_ptr(pFramesIn, framesProcessedIn * ma_get_bytes_per_frame(pConverter->config.formatIn, pConverter->config.channelsIn)); + } + if (pFramesOut != NULL) { + pRunningFramesOut = ma_offset_ptr(pFramesOut, framesProcessedOut * ma_get_bytes_per_frame(pConverter->config.formatOut, pConverter->config.channelsOut)); + } + + /* Run input data through the channel converter and output it to the temporary buffer. */ + frameCountInThisIteration = (frameCountIn - framesProcessedIn); + + if (pConverter->hasPreFormatConversion) { + if (frameCountInThisIteration > tempBufferInCap) { + frameCountInThisIteration = tempBufferInCap; + } + + if (pRunningFramesIn != NULL) { + ma_convert_pcm_frames_format(pTempBufferIn, pConverter->channelConverter.format, pRunningFramesIn, pConverter->config.formatIn, frameCountInThisIteration, pConverter->config.channelsIn, pConverter->config.ditherMode); + pChannelsBufferIn = pTempBufferIn; + } else { + pChannelsBufferIn = NULL; + } + } else { + pChannelsBufferIn = pRunningFramesIn; + } + + /* + We can't convert more frames than will fit in the output buffer. We shouldn't actually need to do this check because the channel count is always reduced + in this case which means we should always have capacity, but I'm leaving it here just for safety for future maintenance. + */ + if (frameCountInThisIteration > tempBufferMidCap) { + frameCountInThisIteration = tempBufferMidCap; + } + + /* + Make sure we don't read any more input frames than we need to fill the output frame count. If we do this we will end up in a situation where we lose some + input samples and will end up glitching. + */ + frameCountOutThisIteration = (frameCountOut - framesProcessedOut); + if (frameCountOutThisIteration > tempBufferMidCap) { + frameCountOutThisIteration = tempBufferMidCap; + } + + if (pConverter->hasPostFormatConversion) { + ma_uint64 requiredInputFrameCount; + + if (frameCountOutThisIteration > tempBufferOutCap) { + frameCountOutThisIteration = tempBufferOutCap; + } + + requiredInputFrameCount = ma_resampler_get_required_input_frame_count(&pConverter->resampler, frameCountOutThisIteration); + if (frameCountInThisIteration > requiredInputFrameCount) { + frameCountInThisIteration = requiredInputFrameCount; + } + } + + result = ma_channel_converter_process_pcm_frames(&pConverter->channelConverter, pTempBufferMid, pChannelsBufferIn, frameCountInThisIteration); + if (result != MA_SUCCESS) { + return result; + } + + + /* At this point we have converted the channels to the output channel count which we now need to resample. */ + if (pConverter->hasPostFormatConversion) { + pResampleBufferOut = pTempBufferOut; + } else { + pResampleBufferOut = pRunningFramesOut; + } + + result = ma_resampler_process_pcm_frames(&pConverter->resampler, pTempBufferMid, &frameCountInThisIteration, pResampleBufferOut, &frameCountOutThisIteration); + if (result != MA_SUCCESS) { + return result; + } + + /* Finally we can do the post format conversion. */ + if (pConverter->hasPostFormatConversion) { + if (pRunningFramesOut != NULL) { + ma_convert_pcm_frames_format(pRunningFramesOut, pConverter->config.formatOut, pResampleBufferOut, pConverter->resampler.config.format, frameCountOutThisIteration, pConverter->config.channelsOut, pConverter->config.ditherMode); + } + } + + framesProcessedIn += frameCountInThisIteration; + framesProcessedOut += frameCountOutThisIteration; + + MA_ASSERT(framesProcessedIn <= frameCountIn); + MA_ASSERT(framesProcessedOut <= frameCountOut); + + if (frameCountOutThisIteration == 0) { + break; /* Consumed all of our input data. */ + } + } + + if (pFrameCountIn != NULL) { + *pFrameCountIn = framesProcessedIn; + } + if (pFrameCountOut != NULL) { + *pFrameCountOut = framesProcessedOut; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_data_converter_process_pcm_frames(ma_data_converter* pConverter, const void* pFramesIn, ma_uint64* pFrameCountIn, void* pFramesOut, ma_uint64* pFrameCountOut) +{ + if (pConverter == NULL) { + return MA_INVALID_ARGS; + } + + if (pConverter->isPassthrough) { + return ma_data_converter_process_pcm_frames__passthrough(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } + + /* + Here is where the real work is done. Getting here means we're not using a passthrough and we need to move the data through each of the relevant stages. The order + of our stages depends on the input and output channel count. If the input channels is less than the output channels we want to do sample rate conversion first so + that it has less work (resampling is the most expensive part of format conversion). + */ + if (pConverter->config.channelsIn < pConverter->config.channelsOut) { + /* Do resampling first, if necessary. */ + MA_ASSERT(pConverter->hasChannelConverter == MA_TRUE); + + if (pConverter->hasResampler) { + /* Resampling first. */ + return ma_data_converter_process_pcm_frames__resampling_first(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + /* Resampling not required. */ + return ma_data_converter_process_pcm_frames__channels_only(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } + } else { + /* Do channel conversion first, if necessary. */ + if (pConverter->hasChannelConverter) { + if (pConverter->hasResampler) { + /* Channel routing first. */ + return ma_data_converter_process_pcm_frames__channels_first(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + /* Resampling not required. */ + return ma_data_converter_process_pcm_frames__channels_only(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } + } else { + /* Channel routing not required. */ + if (pConverter->hasResampler) { + /* Resampling only. */ + return ma_data_converter_process_pcm_frames__resample_only(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } else { + /* No channel routing nor resampling required. Just format conversion. */ + return ma_data_converter_process_pcm_frames__format_only(pConverter, pFramesIn, pFrameCountIn, pFramesOut, pFrameCountOut); + } + } + } +} + +MA_API ma_result ma_data_converter_set_rate(ma_data_converter* pConverter, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut) +{ + if (pConverter == NULL) { + return MA_INVALID_ARGS; + } + + if (pConverter->hasResampler == MA_FALSE) { + return MA_INVALID_OPERATION; /* Dynamic resampling not enabled. */ + } + + return ma_resampler_set_rate(&pConverter->resampler, sampleRateIn, sampleRateOut); +} + +MA_API ma_result ma_data_converter_set_rate_ratio(ma_data_converter* pConverter, float ratioInOut) +{ + if (pConverter == NULL) { + return MA_INVALID_ARGS; + } + + if (pConverter->hasResampler == MA_FALSE) { + return MA_INVALID_OPERATION; /* Dynamic resampling not enabled. */ + } + + return ma_resampler_set_rate_ratio(&pConverter->resampler, ratioInOut); +} + +MA_API ma_uint64 ma_data_converter_get_required_input_frame_count(const ma_data_converter* pConverter, ma_uint64 outputFrameCount) +{ + if (pConverter == NULL) { + return 0; + } + + if (pConverter->hasResampler) { + return ma_resampler_get_required_input_frame_count(&pConverter->resampler, outputFrameCount); + } else { + return outputFrameCount; /* 1:1 */ + } +} + +MA_API ma_uint64 ma_data_converter_get_expected_output_frame_count(const ma_data_converter* pConverter, ma_uint64 inputFrameCount) +{ + if (pConverter == NULL) { + return 0; + } + + if (pConverter->hasResampler) { + return ma_resampler_get_expected_output_frame_count(&pConverter->resampler, inputFrameCount); + } else { + return inputFrameCount; /* 1:1 */ + } +} + +MA_API ma_uint64 ma_data_converter_get_input_latency(const ma_data_converter* pConverter) +{ + if (pConverter == NULL) { + return 0; + } + + if (pConverter->hasResampler) { + return ma_resampler_get_input_latency(&pConverter->resampler); + } + + return 0; /* No latency without a resampler. */ +} + +MA_API ma_uint64 ma_data_converter_get_output_latency(const ma_data_converter* pConverter) +{ + if (pConverter == NULL) { + return 0; + } + + if (pConverter->hasResampler) { + return ma_resampler_get_output_latency(&pConverter->resampler); + } + + return 0; /* No latency without a resampler. */ +} + + + +/************************************************************************************************************************************************************** + +Channel Maps + +**************************************************************************************************************************************************************/ +MA_API void ma_channel_map_init_blank(ma_uint32 channels, ma_channel* pChannelMap) +{ + if (pChannelMap == NULL) { + return; + } + + MA_ZERO_MEMORY(pChannelMap, sizeof(*pChannelMap) * channels); +} + +static void ma_get_standard_channel_map_microsoft(ma_uint32 channels, ma_channel* pChannelMap) +{ + /* Based off the speaker configurations mentioned here: https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ksmedia/ns-ksmedia-ksaudio_channel_config */ + switch (channels) + { + case 1: + { + pChannelMap[0] = MA_CHANNEL_MONO; + } break; + + case 2: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + } break; + + case 3: /* Not defined, but best guess. */ + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 4: + { +#ifndef MA_USE_QUAD_MICROSOFT_CHANNEL_MAP + /* Surround. Using the Surround profile has the advantage of the 3rd channel (MA_CHANNEL_FRONT_CENTER) mapping nicely with higher channel counts. */ + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_BACK_CENTER; +#else + /* Quad. */ + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; +#endif + } break; + + case 5: /* Not defined, but best guess. */ + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_BACK_LEFT; + pChannelMap[4] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 6: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_LFE; + pChannelMap[4] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[5] = MA_CHANNEL_SIDE_RIGHT; + } break; + + case 7: /* Not defined, but best guess. */ + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_LFE; + pChannelMap[4] = MA_CHANNEL_BACK_CENTER; + pChannelMap[5] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[6] = MA_CHANNEL_SIDE_RIGHT; + } break; + + case 8: + default: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_LFE; + pChannelMap[4] = MA_CHANNEL_BACK_LEFT; + pChannelMap[5] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[6] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[7] = MA_CHANNEL_SIDE_RIGHT; + } break; + } + + /* Remainder. */ + if (channels > 8) { + ma_uint32 iChannel; + for (iChannel = 8; iChannel < channels; ++iChannel) { + if (iChannel < MA_MAX_CHANNELS) { + pChannelMap[iChannel] = (ma_channel)(MA_CHANNEL_AUX_0 + (iChannel-8)); + } else { + pChannelMap[iChannel] = MA_CHANNEL_NONE; + } + } + } +} + +static void ma_get_standard_channel_map_alsa(ma_uint32 channels, ma_channel* pChannelMap) +{ + switch (channels) + { + case 1: + { + pChannelMap[0] = MA_CHANNEL_MONO; + } break; + + case 2: + { + pChannelMap[0] = MA_CHANNEL_LEFT; + pChannelMap[1] = MA_CHANNEL_RIGHT; + } break; + + case 3: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 4: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 5: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 6: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[5] = MA_CHANNEL_LFE; + } break; + + case 7: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[5] = MA_CHANNEL_LFE; + pChannelMap[6] = MA_CHANNEL_BACK_CENTER; + } break; + + case 8: + default: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[5] = MA_CHANNEL_LFE; + pChannelMap[6] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[7] = MA_CHANNEL_SIDE_RIGHT; + } break; + } + + /* Remainder. */ + if (channels > 8) { + ma_uint32 iChannel; + for (iChannel = 8; iChannel < channels; ++iChannel) { + if (iChannel < MA_MAX_CHANNELS) { + pChannelMap[iChannel] = (ma_channel)(MA_CHANNEL_AUX_0 + (iChannel-8)); + } else { + pChannelMap[iChannel] = MA_CHANNEL_NONE; + } + } + } +} + +static void ma_get_standard_channel_map_rfc3551(ma_uint32 channels, ma_channel* pChannelMap) +{ + switch (channels) + { + case 1: + { + pChannelMap[0] = MA_CHANNEL_MONO; + } break; + + case 2: + { + pChannelMap[0] = MA_CHANNEL_LEFT; + pChannelMap[1] = MA_CHANNEL_RIGHT; + } break; + + case 3: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 4: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[2] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[3] = MA_CHANNEL_BACK_CENTER; + } break; + + case 5: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_BACK_LEFT; + pChannelMap[4] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 6: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[4] = MA_CHANNEL_SIDE_RIGHT; + pChannelMap[5] = MA_CHANNEL_BACK_CENTER; + } break; + } + + /* Remainder. */ + if (channels > 8) { + ma_uint32 iChannel; + for (iChannel = 6; iChannel < channels; ++iChannel) { + if (iChannel < MA_MAX_CHANNELS) { + pChannelMap[iChannel] = (ma_channel)(MA_CHANNEL_AUX_0 + (iChannel-6)); + } else { + pChannelMap[iChannel] = MA_CHANNEL_NONE; + } + } + } +} + +static void ma_get_standard_channel_map_flac(ma_uint32 channels, ma_channel* pChannelMap) +{ + switch (channels) + { + case 1: + { + pChannelMap[0] = MA_CHANNEL_MONO; + } break; + + case 2: + { + pChannelMap[0] = MA_CHANNEL_LEFT; + pChannelMap[1] = MA_CHANNEL_RIGHT; + } break; + + case 3: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 4: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 5: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_BACK_LEFT; + pChannelMap[4] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 6: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_LFE; + pChannelMap[4] = MA_CHANNEL_BACK_LEFT; + pChannelMap[5] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 7: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_LFE; + pChannelMap[4] = MA_CHANNEL_BACK_CENTER; + pChannelMap[5] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[6] = MA_CHANNEL_SIDE_RIGHT; + } break; + + case 8: + default: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[3] = MA_CHANNEL_LFE; + pChannelMap[4] = MA_CHANNEL_BACK_LEFT; + pChannelMap[5] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[6] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[7] = MA_CHANNEL_SIDE_RIGHT; + } break; + } + + /* Remainder. */ + if (channels > 8) { + ma_uint32 iChannel; + for (iChannel = 8; iChannel < channels; ++iChannel) { + if (iChannel < MA_MAX_CHANNELS) { + pChannelMap[iChannel] = (ma_channel)(MA_CHANNEL_AUX_0 + (iChannel-8)); + } else { + pChannelMap[iChannel] = MA_CHANNEL_NONE; + } + } + } +} + +static void ma_get_standard_channel_map_vorbis(ma_uint32 channels, ma_channel* pChannelMap) +{ + /* In Vorbis' type 0 channel mapping, the first two channels are not always the standard left/right - it will have the center speaker where the right usually goes. Why?! */ + switch (channels) + { + case 1: + { + pChannelMap[0] = MA_CHANNEL_MONO; + } break; + + case 2: + { + pChannelMap[0] = MA_CHANNEL_LEFT; + pChannelMap[1] = MA_CHANNEL_RIGHT; + } break; + + case 3: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[2] = MA_CHANNEL_FRONT_RIGHT; + } break; + + case 4: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 5: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[2] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[3] = MA_CHANNEL_BACK_LEFT; + pChannelMap[4] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 6: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[2] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[3] = MA_CHANNEL_BACK_LEFT; + pChannelMap[4] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[5] = MA_CHANNEL_LFE; + } break; + + case 7: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[2] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[3] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[4] = MA_CHANNEL_SIDE_RIGHT; + pChannelMap[5] = MA_CHANNEL_BACK_CENTER; + pChannelMap[6] = MA_CHANNEL_LFE; + } break; + + case 8: + default: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[2] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[3] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[4] = MA_CHANNEL_SIDE_RIGHT; + pChannelMap[5] = MA_CHANNEL_BACK_LEFT; + pChannelMap[6] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[7] = MA_CHANNEL_LFE; + } break; + } + + /* Remainder. */ + if (channels > 8) { + ma_uint32 iChannel; + for (iChannel = 8; iChannel < channels; ++iChannel) { + if (iChannel < MA_MAX_CHANNELS) { + pChannelMap[iChannel] = (ma_channel)(MA_CHANNEL_AUX_0 + (iChannel-8)); + } else { + pChannelMap[iChannel] = MA_CHANNEL_NONE; + } + } + } +} + +static void ma_get_standard_channel_map_sound4(ma_uint32 channels, ma_channel* pChannelMap) +{ + switch (channels) + { + case 1: + { + pChannelMap[0] = MA_CHANNEL_MONO; + } break; + + case 2: + { + pChannelMap[0] = MA_CHANNEL_LEFT; + pChannelMap[1] = MA_CHANNEL_RIGHT; + } break; + + case 3: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_CENTER; + } break; + + case 4: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 5: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 6: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[5] = MA_CHANNEL_LFE; + } break; + + case 7: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[5] = MA_CHANNEL_BACK_CENTER; + pChannelMap[6] = MA_CHANNEL_LFE; + } break; + + case 8: + default: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[5] = MA_CHANNEL_LFE; + pChannelMap[6] = MA_CHANNEL_SIDE_LEFT; + pChannelMap[7] = MA_CHANNEL_SIDE_RIGHT; + } break; + } + + /* Remainder. */ + if (channels > 8) { + ma_uint32 iChannel; + for (iChannel = 8; iChannel < MA_MAX_CHANNELS; ++iChannel) { + if (iChannel < MA_MAX_CHANNELS) { + pChannelMap[iChannel] = (ma_channel)(MA_CHANNEL_AUX_0 + (iChannel-8)); + } else { + pChannelMap[iChannel] = MA_CHANNEL_NONE; + } + } + } +} + +static void ma_get_standard_channel_map_sndio(ma_uint32 channels, ma_channel* pChannelMap) +{ + switch (channels) + { + case 1: + { + pChannelMap[0] = MA_CHANNEL_MONO; + } break; + + case 2: + { + pChannelMap[0] = MA_CHANNEL_LEFT; + pChannelMap[1] = MA_CHANNEL_RIGHT; + } break; + + case 3: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 4: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + } break; + + case 5: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + } break; + + case 6: + default: + { + pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; + pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + pChannelMap[2] = MA_CHANNEL_BACK_LEFT; + pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; + pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; + pChannelMap[5] = MA_CHANNEL_LFE; + } break; + } + + /* Remainder. */ + if (channels > 6) { + ma_uint32 iChannel; + for (iChannel = 6; iChannel < channels && iChannel < MA_MAX_CHANNELS; ++iChannel) { + if (iChannel < MA_MAX_CHANNELS) { + pChannelMap[iChannel] = (ma_channel)(MA_CHANNEL_AUX_0 + (iChannel-6)); + } else { + pChannelMap[iChannel] = MA_CHANNEL_NONE; + } + } + } +} + +MA_API void ma_get_standard_channel_map(ma_standard_channel_map standardChannelMap, ma_uint32 channels, ma_channel* pChannelMap) +{ + switch (standardChannelMap) + { + case ma_standard_channel_map_alsa: + { + ma_get_standard_channel_map_alsa(channels, pChannelMap); + } break; + + case ma_standard_channel_map_rfc3551: + { + ma_get_standard_channel_map_rfc3551(channels, pChannelMap); + } break; + + case ma_standard_channel_map_flac: + { + ma_get_standard_channel_map_flac(channels, pChannelMap); + } break; + + case ma_standard_channel_map_vorbis: + { + ma_get_standard_channel_map_vorbis(channels, pChannelMap); + } break; + + case ma_standard_channel_map_sound4: + { + ma_get_standard_channel_map_sound4(channels, pChannelMap); + } break; + + case ma_standard_channel_map_sndio: + { + ma_get_standard_channel_map_sndio(channels, pChannelMap); + } break; + + case ma_standard_channel_map_microsoft: /* Also default. */ + /*case ma_standard_channel_map_default;*/ + default: + { + ma_get_standard_channel_map_microsoft(channels, pChannelMap); + } break; + } +} + +MA_API void ma_channel_map_copy(ma_channel* pOut, const ma_channel* pIn, ma_uint32 channels) +{ + if (pOut != NULL && pIn != NULL && channels > 0) { + MA_COPY_MEMORY(pOut, pIn, sizeof(*pOut) * channels); + } +} + +MA_API void ma_channel_map_copy_or_default(ma_channel* pOut, const ma_channel* pIn, ma_uint32 channels) +{ + if (pOut == NULL || channels == 0) { + return; + } + + if (pIn != NULL) { + ma_channel_map_copy(pOut, pIn, channels); + } else { + ma_get_standard_channel_map(ma_standard_channel_map_default, channels, pOut); + } +} + +MA_API ma_bool32 ma_channel_map_valid(ma_uint32 channels, const ma_channel* pChannelMap) +{ + if (pChannelMap == NULL) { + return MA_FALSE; + } + + /* A channel count of 0 is invalid. */ + if (channels == 0) { + return MA_FALSE; + } + + /* It does not make sense to have a mono channel when there is more than 1 channel. */ + if (channels > 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < channels; ++iChannel) { + if (pChannelMap[iChannel] == MA_CHANNEL_MONO) { + return MA_FALSE; + } + } + } + + return MA_TRUE; +} + +MA_API ma_bool32 ma_channel_map_equal(ma_uint32 channels, const ma_channel* pChannelMapA, const ma_channel* pChannelMapB) +{ + ma_uint32 iChannel; + + if (pChannelMapA == pChannelMapB) { + return MA_TRUE; + } + + for (iChannel = 0; iChannel < channels; ++iChannel) { + if (pChannelMapA[iChannel] != pChannelMapB[iChannel]) { + return MA_FALSE; + } + } + + return MA_TRUE; +} + +MA_API ma_bool32 ma_channel_map_blank(ma_uint32 channels, const ma_channel* pChannelMap) +{ + ma_uint32 iChannel; + + for (iChannel = 0; iChannel < channels; ++iChannel) { + if (pChannelMap[iChannel] != MA_CHANNEL_NONE) { + return MA_FALSE; + } + } + + return MA_TRUE; +} + +MA_API ma_bool32 ma_channel_map_contains_channel_position(ma_uint32 channels, const ma_channel* pChannelMap, ma_channel channelPosition) +{ + ma_uint32 iChannel; + + for (iChannel = 0; iChannel < channels; ++iChannel) { + if (pChannelMap[iChannel] == channelPosition) { + return MA_TRUE; + } + } + + return MA_FALSE; +} + + + +/************************************************************************************************************************************************************** + +Conversion Helpers + +**************************************************************************************************************************************************************/ +MA_API ma_uint64 ma_convert_frames(void* pOut, ma_uint64 frameCountOut, ma_format formatOut, ma_uint32 channelsOut, ma_uint32 sampleRateOut, const void* pIn, ma_uint64 frameCountIn, ma_format formatIn, ma_uint32 channelsIn, ma_uint32 sampleRateIn) +{ + ma_data_converter_config config; + + config = ma_data_converter_config_init(formatIn, formatOut, channelsIn, channelsOut, sampleRateIn, sampleRateOut); + ma_get_standard_channel_map(ma_standard_channel_map_default, channelsOut, config.channelMapOut); + ma_get_standard_channel_map(ma_standard_channel_map_default, channelsIn, config.channelMapIn); + config.resampling.linear.lpfOrder = ma_min(MA_DEFAULT_RESAMPLER_LPF_ORDER, MA_MAX_FILTER_ORDER); + + return ma_convert_frames_ex(pOut, frameCountOut, pIn, frameCountIn, &config); +} + +MA_API ma_uint64 ma_convert_frames_ex(void* pOut, ma_uint64 frameCountOut, const void* pIn, ma_uint64 frameCountIn, const ma_data_converter_config* pConfig) +{ + ma_result result; + ma_data_converter converter; + + if (frameCountIn == 0 || pConfig == NULL) { + return 0; + } + + result = ma_data_converter_init(pConfig, &converter); + if (result != MA_SUCCESS) { + return 0; /* Failed to initialize the data converter. */ + } + + if (pOut == NULL) { + frameCountOut = ma_data_converter_get_expected_output_frame_count(&converter, frameCountIn); + } else { + result = ma_data_converter_process_pcm_frames(&converter, pIn, &frameCountIn, pOut, &frameCountOut); + if (result != MA_SUCCESS) { + frameCountOut = 0; + } + } + + ma_data_converter_uninit(&converter); + return frameCountOut; +} + + +/************************************************************************************************************************************************************** + +Ring Buffer + +**************************************************************************************************************************************************************/ +static MA_INLINE ma_uint32 ma_rb__extract_offset_in_bytes(ma_uint32 encodedOffset) +{ + return encodedOffset & 0x7FFFFFFF; +} + +static MA_INLINE ma_uint32 ma_rb__extract_offset_loop_flag(ma_uint32 encodedOffset) +{ + return encodedOffset & 0x80000000; +} + +static MA_INLINE void* ma_rb__get_read_ptr(ma_rb* pRB) +{ + MA_ASSERT(pRB != NULL); + return ma_offset_ptr(pRB->pBuffer, ma_rb__extract_offset_in_bytes(c89atomic_load_32(&pRB->encodedReadOffset))); +} + +static MA_INLINE void* ma_rb__get_write_ptr(ma_rb* pRB) +{ + MA_ASSERT(pRB != NULL); + return ma_offset_ptr(pRB->pBuffer, ma_rb__extract_offset_in_bytes(c89atomic_load_32(&pRB->encodedWriteOffset))); +} + +static MA_INLINE ma_uint32 ma_rb__construct_offset(ma_uint32 offsetInBytes, ma_uint32 offsetLoopFlag) +{ + return offsetLoopFlag | offsetInBytes; +} + +static MA_INLINE void ma_rb__deconstruct_offset(ma_uint32 encodedOffset, ma_uint32* pOffsetInBytes, ma_uint32* pOffsetLoopFlag) +{ + MA_ASSERT(pOffsetInBytes != NULL); + MA_ASSERT(pOffsetLoopFlag != NULL); + + *pOffsetInBytes = ma_rb__extract_offset_in_bytes(encodedOffset); + *pOffsetLoopFlag = ma_rb__extract_offset_loop_flag(encodedOffset); +} + + +MA_API ma_result ma_rb_init_ex(size_t subbufferSizeInBytes, size_t subbufferCount, size_t subbufferStrideInBytes, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_rb* pRB) +{ + ma_result result; + const ma_uint32 maxSubBufferSize = 0x7FFFFFFF - (MA_SIMD_ALIGNMENT-1); + + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + if (subbufferSizeInBytes == 0 || subbufferCount == 0) { + return MA_INVALID_ARGS; + } + + if (subbufferSizeInBytes > maxSubBufferSize) { + return MA_INVALID_ARGS; /* Maximum buffer size is ~2GB. The most significant bit is a flag for use internally. */ + } + + + MA_ZERO_OBJECT(pRB); + + result = ma_allocation_callbacks_init_copy(&pRB->allocationCallbacks, pAllocationCallbacks); + if (result != MA_SUCCESS) { + return result; + } + + pRB->subbufferSizeInBytes = (ma_uint32)subbufferSizeInBytes; + pRB->subbufferCount = (ma_uint32)subbufferCount; + + if (pOptionalPreallocatedBuffer != NULL) { + pRB->subbufferStrideInBytes = (ma_uint32)subbufferStrideInBytes; + pRB->pBuffer = pOptionalPreallocatedBuffer; + } else { + size_t bufferSizeInBytes; + + /* + Here is where we allocate our own buffer. We always want to align this to MA_SIMD_ALIGNMENT for future SIMD optimization opportunity. To do this + we need to make sure the stride is a multiple of MA_SIMD_ALIGNMENT. + */ + pRB->subbufferStrideInBytes = (pRB->subbufferSizeInBytes + (MA_SIMD_ALIGNMENT-1)) & ~MA_SIMD_ALIGNMENT; + + bufferSizeInBytes = (size_t)pRB->subbufferCount*pRB->subbufferStrideInBytes; + pRB->pBuffer = ma_aligned_malloc(bufferSizeInBytes, MA_SIMD_ALIGNMENT, &pRB->allocationCallbacks); + if (pRB->pBuffer == NULL) { + return MA_OUT_OF_MEMORY; + } + + MA_ZERO_MEMORY(pRB->pBuffer, bufferSizeInBytes); + pRB->ownsBuffer = MA_TRUE; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_rb_init(size_t bufferSizeInBytes, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_rb* pRB) +{ + return ma_rb_init_ex(bufferSizeInBytes, 1, 0, pOptionalPreallocatedBuffer, pAllocationCallbacks, pRB); +} + +MA_API void ma_rb_uninit(ma_rb* pRB) +{ + if (pRB == NULL) { + return; + } + + if (pRB->ownsBuffer) { + ma_aligned_free(pRB->pBuffer, &pRB->allocationCallbacks); + } +} + +MA_API void ma_rb_reset(ma_rb* pRB) +{ + if (pRB == NULL) { + return; + } + + c89atomic_exchange_32(&pRB->encodedReadOffset, 0); + c89atomic_exchange_32(&pRB->encodedWriteOffset, 0); +} + +MA_API ma_result ma_rb_acquire_read(ma_rb* pRB, size_t* pSizeInBytes, void** ppBufferOut) +{ + ma_uint32 writeOffset; + ma_uint32 writeOffsetInBytes; + ma_uint32 writeOffsetLoopFlag; + ma_uint32 readOffset; + ma_uint32 readOffsetInBytes; + ma_uint32 readOffsetLoopFlag; + size_t bytesAvailable; + size_t bytesRequested; + + if (pRB == NULL || pSizeInBytes == NULL || ppBufferOut == NULL) { + return MA_INVALID_ARGS; + } + + /* The returned buffer should never move ahead of the write pointer. */ + writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); + + readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); + + /* + The number of bytes available depends on whether or not the read and write pointers are on the same loop iteration. If so, we + can only read up to the write pointer. If not, we can only read up to the end of the buffer. + */ + if (readOffsetLoopFlag == writeOffsetLoopFlag) { + bytesAvailable = writeOffsetInBytes - readOffsetInBytes; + } else { + bytesAvailable = pRB->subbufferSizeInBytes - readOffsetInBytes; + } + + bytesRequested = *pSizeInBytes; + if (bytesRequested > bytesAvailable) { + bytesRequested = bytesAvailable; + } + + *pSizeInBytes = bytesRequested; + (*ppBufferOut) = ma_rb__get_read_ptr(pRB); + + return MA_SUCCESS; +} + +MA_API ma_result ma_rb_commit_read(ma_rb* pRB, size_t sizeInBytes, void* pBufferOut) +{ + ma_uint32 readOffset; + ma_uint32 readOffsetInBytes; + ma_uint32 readOffsetLoopFlag; + ma_uint32 newReadOffsetInBytes; + ma_uint32 newReadOffsetLoopFlag; + + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + /* Validate the buffer. */ + if (pBufferOut != ma_rb__get_read_ptr(pRB)) { + return MA_INVALID_ARGS; + } + + readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); + + /* Check that sizeInBytes is correct. It should never go beyond the end of the buffer. */ + newReadOffsetInBytes = (ma_uint32)(readOffsetInBytes + sizeInBytes); + if (newReadOffsetInBytes > pRB->subbufferSizeInBytes) { + return MA_INVALID_ARGS; /* <-- sizeInBytes will cause the read offset to overflow. */ + } + + /* Move the read pointer back to the start if necessary. */ + newReadOffsetLoopFlag = readOffsetLoopFlag; + if (newReadOffsetInBytes == pRB->subbufferSizeInBytes) { + newReadOffsetInBytes = 0; + newReadOffsetLoopFlag ^= 0x80000000; + } + + c89atomic_exchange_32(&pRB->encodedReadOffset, ma_rb__construct_offset(newReadOffsetLoopFlag, newReadOffsetInBytes)); + return MA_SUCCESS; +} + +MA_API ma_result ma_rb_acquire_write(ma_rb* pRB, size_t* pSizeInBytes, void** ppBufferOut) +{ + ma_uint32 readOffset; + ma_uint32 readOffsetInBytes; + ma_uint32 readOffsetLoopFlag; + ma_uint32 writeOffset; + ma_uint32 writeOffsetInBytes; + ma_uint32 writeOffsetLoopFlag; + size_t bytesAvailable; + size_t bytesRequested; + + if (pRB == NULL || pSizeInBytes == NULL || ppBufferOut == NULL) { + return MA_INVALID_ARGS; + } + + /* The returned buffer should never overtake the read buffer. */ + readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); + + writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); + + /* + In the case of writing, if the write pointer and the read pointer are on the same loop iteration we can only + write up to the end of the buffer. Otherwise we can only write up to the read pointer. The write pointer should + never overtake the read pointer. + */ + if (writeOffsetLoopFlag == readOffsetLoopFlag) { + bytesAvailable = pRB->subbufferSizeInBytes - writeOffsetInBytes; + } else { + bytesAvailable = readOffsetInBytes - writeOffsetInBytes; + } + + bytesRequested = *pSizeInBytes; + if (bytesRequested > bytesAvailable) { + bytesRequested = bytesAvailable; + } + + *pSizeInBytes = bytesRequested; + *ppBufferOut = ma_rb__get_write_ptr(pRB); + + /* Clear the buffer if desired. */ + if (pRB->clearOnWriteAcquire) { + MA_ZERO_MEMORY(*ppBufferOut, *pSizeInBytes); + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_rb_commit_write(ma_rb* pRB, size_t sizeInBytes, void* pBufferOut) +{ + ma_uint32 writeOffset; + ma_uint32 writeOffsetInBytes; + ma_uint32 writeOffsetLoopFlag; + ma_uint32 newWriteOffsetInBytes; + ma_uint32 newWriteOffsetLoopFlag; + + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + /* Validate the buffer. */ + if (pBufferOut != ma_rb__get_write_ptr(pRB)) { + return MA_INVALID_ARGS; + } + + writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); + + /* Check that sizeInBytes is correct. It should never go beyond the end of the buffer. */ + newWriteOffsetInBytes = (ma_uint32)(writeOffsetInBytes + sizeInBytes); + if (newWriteOffsetInBytes > pRB->subbufferSizeInBytes) { + return MA_INVALID_ARGS; /* <-- sizeInBytes will cause the read offset to overflow. */ + } + + /* Move the read pointer back to the start if necessary. */ + newWriteOffsetLoopFlag = writeOffsetLoopFlag; + if (newWriteOffsetInBytes == pRB->subbufferSizeInBytes) { + newWriteOffsetInBytes = 0; + newWriteOffsetLoopFlag ^= 0x80000000; + } + + c89atomic_exchange_32(&pRB->encodedWriteOffset, ma_rb__construct_offset(newWriteOffsetLoopFlag, newWriteOffsetInBytes)); + return MA_SUCCESS; +} + +MA_API ma_result ma_rb_seek_read(ma_rb* pRB, size_t offsetInBytes) +{ + ma_uint32 readOffset; + ma_uint32 readOffsetInBytes; + ma_uint32 readOffsetLoopFlag; + ma_uint32 writeOffset; + ma_uint32 writeOffsetInBytes; + ma_uint32 writeOffsetLoopFlag; + ma_uint32 newReadOffsetInBytes; + ma_uint32 newReadOffsetLoopFlag; + + if (pRB == NULL || offsetInBytes > pRB->subbufferSizeInBytes) { + return MA_INVALID_ARGS; + } + + readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); + + writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); + + newReadOffsetLoopFlag = readOffsetLoopFlag; + + /* We cannot go past the write buffer. */ + if (readOffsetLoopFlag == writeOffsetLoopFlag) { + if ((readOffsetInBytes + offsetInBytes) > writeOffsetInBytes) { + newReadOffsetInBytes = writeOffsetInBytes; + } else { + newReadOffsetInBytes = (ma_uint32)(readOffsetInBytes + offsetInBytes); + } + } else { + /* May end up looping. */ + if ((readOffsetInBytes + offsetInBytes) >= pRB->subbufferSizeInBytes) { + newReadOffsetInBytes = (ma_uint32)(readOffsetInBytes + offsetInBytes) - pRB->subbufferSizeInBytes; + newReadOffsetLoopFlag ^= 0x80000000; /* <-- Looped. */ + } else { + newReadOffsetInBytes = (ma_uint32)(readOffsetInBytes + offsetInBytes); + } + } + + c89atomic_exchange_32(&pRB->encodedReadOffset, ma_rb__construct_offset(newReadOffsetInBytes, newReadOffsetLoopFlag)); + return MA_SUCCESS; +} + +MA_API ma_result ma_rb_seek_write(ma_rb* pRB, size_t offsetInBytes) +{ + ma_uint32 readOffset; + ma_uint32 readOffsetInBytes; + ma_uint32 readOffsetLoopFlag; + ma_uint32 writeOffset; + ma_uint32 writeOffsetInBytes; + ma_uint32 writeOffsetLoopFlag; + ma_uint32 newWriteOffsetInBytes; + ma_uint32 newWriteOffsetLoopFlag; + + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); + + writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); + + newWriteOffsetLoopFlag = writeOffsetLoopFlag; + + /* We cannot go past the write buffer. */ + if (readOffsetLoopFlag == writeOffsetLoopFlag) { + /* May end up looping. */ + if ((writeOffsetInBytes + offsetInBytes) >= pRB->subbufferSizeInBytes) { + newWriteOffsetInBytes = (ma_uint32)(writeOffsetInBytes + offsetInBytes) - pRB->subbufferSizeInBytes; + newWriteOffsetLoopFlag ^= 0x80000000; /* <-- Looped. */ + } else { + newWriteOffsetInBytes = (ma_uint32)(writeOffsetInBytes + offsetInBytes); + } + } else { + if ((writeOffsetInBytes + offsetInBytes) > readOffsetInBytes) { + newWriteOffsetInBytes = readOffsetInBytes; + } else { + newWriteOffsetInBytes = (ma_uint32)(writeOffsetInBytes + offsetInBytes); + } + } + + c89atomic_exchange_32(&pRB->encodedWriteOffset, ma_rb__construct_offset(newWriteOffsetInBytes, newWriteOffsetLoopFlag)); + return MA_SUCCESS; +} + +MA_API ma_int32 ma_rb_pointer_distance(ma_rb* pRB) +{ + ma_uint32 readOffset; + ma_uint32 readOffsetInBytes; + ma_uint32 readOffsetLoopFlag; + ma_uint32 writeOffset; + ma_uint32 writeOffsetInBytes; + ma_uint32 writeOffsetLoopFlag; + + if (pRB == NULL) { + return 0; + } + + readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); + + writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); + + if (readOffsetLoopFlag == writeOffsetLoopFlag) { + return writeOffsetInBytes - readOffsetInBytes; + } else { + return writeOffsetInBytes + (pRB->subbufferSizeInBytes - readOffsetInBytes); + } +} + +MA_API ma_uint32 ma_rb_available_read(ma_rb* pRB) +{ + ma_int32 dist; + + if (pRB == NULL) { + return 0; + } + + dist = ma_rb_pointer_distance(pRB); + if (dist < 0) { + return 0; + } + + return dist; +} + +MA_API ma_uint32 ma_rb_available_write(ma_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return (ma_uint32)(ma_rb_get_subbuffer_size(pRB) - ma_rb_pointer_distance(pRB)); +} + +MA_API size_t ma_rb_get_subbuffer_size(ma_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return pRB->subbufferSizeInBytes; +} + +MA_API size_t ma_rb_get_subbuffer_stride(ma_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + if (pRB->subbufferStrideInBytes == 0) { + return (size_t)pRB->subbufferSizeInBytes; + } + + return (size_t)pRB->subbufferStrideInBytes; +} + +MA_API size_t ma_rb_get_subbuffer_offset(ma_rb* pRB, size_t subbufferIndex) +{ + if (pRB == NULL) { + return 0; + } + + return subbufferIndex * ma_rb_get_subbuffer_stride(pRB); +} + +MA_API void* ma_rb_get_subbuffer_ptr(ma_rb* pRB, size_t subbufferIndex, void* pBuffer) +{ + if (pRB == NULL) { + return NULL; + } + + return ma_offset_ptr(pBuffer, ma_rb_get_subbuffer_offset(pRB, subbufferIndex)); +} + + + +static MA_INLINE ma_uint32 ma_pcm_rb_get_bpf(ma_pcm_rb* pRB) +{ + MA_ASSERT(pRB != NULL); + + return ma_get_bytes_per_frame(pRB->format, pRB->channels); +} + +MA_API ma_result ma_pcm_rb_init_ex(ma_format format, ma_uint32 channels, ma_uint32 subbufferSizeInFrames, ma_uint32 subbufferCount, ma_uint32 subbufferStrideInFrames, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_pcm_rb* pRB) +{ + ma_uint32 bpf; + ma_result result; + + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pRB); + + bpf = ma_get_bytes_per_frame(format, channels); + if (bpf == 0) { + return MA_INVALID_ARGS; + } + + result = ma_rb_init_ex(subbufferSizeInFrames*bpf, subbufferCount, subbufferStrideInFrames*bpf, pOptionalPreallocatedBuffer, pAllocationCallbacks, &pRB->rb); + if (result != MA_SUCCESS) { + return result; + } + + pRB->format = format; + pRB->channels = channels; + + return MA_SUCCESS; +} + +MA_API ma_result ma_pcm_rb_init(ma_format format, ma_uint32 channels, ma_uint32 bufferSizeInFrames, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_pcm_rb* pRB) +{ + return ma_pcm_rb_init_ex(format, channels, bufferSizeInFrames, 1, 0, pOptionalPreallocatedBuffer, pAllocationCallbacks, pRB); +} + +MA_API void ma_pcm_rb_uninit(ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return; + } + + ma_rb_uninit(&pRB->rb); +} + +MA_API void ma_pcm_rb_reset(ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return; + } + + ma_rb_reset(&pRB->rb); +} + +MA_API ma_result ma_pcm_rb_acquire_read(ma_pcm_rb* pRB, ma_uint32* pSizeInFrames, void** ppBufferOut) +{ + size_t sizeInBytes; + ma_result result; + + if (pRB == NULL || pSizeInFrames == NULL) { + return MA_INVALID_ARGS; + } + + sizeInBytes = *pSizeInFrames * ma_pcm_rb_get_bpf(pRB); + + result = ma_rb_acquire_read(&pRB->rb, &sizeInBytes, ppBufferOut); + if (result != MA_SUCCESS) { + return result; + } + + *pSizeInFrames = (ma_uint32)(sizeInBytes / (size_t)ma_pcm_rb_get_bpf(pRB)); + return MA_SUCCESS; +} + +MA_API ma_result ma_pcm_rb_commit_read(ma_pcm_rb* pRB, ma_uint32 sizeInFrames, void* pBufferOut) +{ + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + return ma_rb_commit_read(&pRB->rb, sizeInFrames * ma_pcm_rb_get_bpf(pRB), pBufferOut); +} + +MA_API ma_result ma_pcm_rb_acquire_write(ma_pcm_rb* pRB, ma_uint32* pSizeInFrames, void** ppBufferOut) +{ + size_t sizeInBytes; + ma_result result; + + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + sizeInBytes = *pSizeInFrames * ma_pcm_rb_get_bpf(pRB); + + result = ma_rb_acquire_write(&pRB->rb, &sizeInBytes, ppBufferOut); + if (result != MA_SUCCESS) { + return result; + } + + *pSizeInFrames = (ma_uint32)(sizeInBytes / ma_pcm_rb_get_bpf(pRB)); + return MA_SUCCESS; +} + +MA_API ma_result ma_pcm_rb_commit_write(ma_pcm_rb* pRB, ma_uint32 sizeInFrames, void* pBufferOut) +{ + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + return ma_rb_commit_write(&pRB->rb, sizeInFrames * ma_pcm_rb_get_bpf(pRB), pBufferOut); +} + +MA_API ma_result ma_pcm_rb_seek_read(ma_pcm_rb* pRB, ma_uint32 offsetInFrames) +{ + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + return ma_rb_seek_read(&pRB->rb, offsetInFrames * ma_pcm_rb_get_bpf(pRB)); +} + +MA_API ma_result ma_pcm_rb_seek_write(ma_pcm_rb* pRB, ma_uint32 offsetInFrames) +{ + if (pRB == NULL) { + return MA_INVALID_ARGS; + } + + return ma_rb_seek_write(&pRB->rb, offsetInFrames * ma_pcm_rb_get_bpf(pRB)); +} + +MA_API ma_int32 ma_pcm_rb_pointer_distance(ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return ma_rb_pointer_distance(&pRB->rb) / ma_pcm_rb_get_bpf(pRB); +} + +MA_API ma_uint32 ma_pcm_rb_available_read(ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return ma_rb_available_read(&pRB->rb) / ma_pcm_rb_get_bpf(pRB); +} + +MA_API ma_uint32 ma_pcm_rb_available_write(ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return ma_rb_available_write(&pRB->rb) / ma_pcm_rb_get_bpf(pRB); +} + +MA_API ma_uint32 ma_pcm_rb_get_subbuffer_size(ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return (ma_uint32)(ma_rb_get_subbuffer_size(&pRB->rb) / ma_pcm_rb_get_bpf(pRB)); +} + +MA_API ma_uint32 ma_pcm_rb_get_subbuffer_stride(ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return (ma_uint32)(ma_rb_get_subbuffer_stride(&pRB->rb) / ma_pcm_rb_get_bpf(pRB)); +} + +MA_API ma_uint32 ma_pcm_rb_get_subbuffer_offset(ma_pcm_rb* pRB, ma_uint32 subbufferIndex) +{ + if (pRB == NULL) { + return 0; + } + + return (ma_uint32)(ma_rb_get_subbuffer_offset(&pRB->rb, subbufferIndex) / ma_pcm_rb_get_bpf(pRB)); +} + +MA_API void* ma_pcm_rb_get_subbuffer_ptr(ma_pcm_rb* pRB, ma_uint32 subbufferIndex, void* pBuffer) +{ + if (pRB == NULL) { + return NULL; + } + + return ma_rb_get_subbuffer_ptr(&pRB->rb, subbufferIndex, pBuffer); +} + + + +MA_API ma_result ma_duplex_rb_init(ma_format captureFormat, ma_uint32 captureChannels, ma_uint32 sampleRate, ma_uint32 captureInternalSampleRate, ma_uint32 captureInternalPeriodSizeInFrames, const ma_allocation_callbacks* pAllocationCallbacks, ma_duplex_rb* pRB) +{ + ma_result result; + ma_uint32 sizeInFrames; + + sizeInFrames = (ma_uint32)ma_calculate_frame_count_after_resampling(sampleRate, captureInternalSampleRate, captureInternalPeriodSizeInFrames * 5); + if (sizeInFrames == 0) { + return MA_INVALID_ARGS; + } + + result = ma_pcm_rb_init(captureFormat, captureChannels, sizeInFrames, NULL, pAllocationCallbacks, &pRB->rb); + if (result != MA_SUCCESS) { + return result; + } + + /* Seek forward a bit so we have a bit of a buffer in case of desyncs. */ + ma_pcm_rb_seek_write((ma_pcm_rb*)pRB, captureInternalPeriodSizeInFrames * 2); + + return MA_SUCCESS; +} + +MA_API ma_result ma_duplex_rb_uninit(ma_duplex_rb* pRB) +{ + ma_pcm_rb_uninit((ma_pcm_rb*)pRB); + return MA_SUCCESS; +} + + + +/************************************************************************************************************************************************************** + +Miscellaneous Helpers + +**************************************************************************************************************************************************************/ +MA_API const char* ma_result_description(ma_result result) +{ + switch (result) + { + case MA_SUCCESS: return "No error"; + case MA_ERROR: return "Unknown error"; + case MA_INVALID_ARGS: return "Invalid argument"; + case MA_INVALID_OPERATION: return "Invalid operation"; + case MA_OUT_OF_MEMORY: return "Out of memory"; + case MA_OUT_OF_RANGE: return "Out of range"; + case MA_ACCESS_DENIED: return "Permission denied"; + case MA_DOES_NOT_EXIST: return "Resource does not exist"; + case MA_ALREADY_EXISTS: return "Resource already exists"; + case MA_TOO_MANY_OPEN_FILES: return "Too many open files"; + case MA_INVALID_FILE: return "Invalid file"; + case MA_TOO_BIG: return "Too large"; + case MA_PATH_TOO_LONG: return "Path too long"; + case MA_NAME_TOO_LONG: return "Name too long"; + case MA_NOT_DIRECTORY: return "Not a directory"; + case MA_IS_DIRECTORY: return "Is a directory"; + case MA_DIRECTORY_NOT_EMPTY: return "Directory not empty"; + case MA_END_OF_FILE: return "End of file"; + case MA_NO_SPACE: return "No space available"; + case MA_BUSY: return "Device or resource busy"; + case MA_IO_ERROR: return "Input/output error"; + case MA_INTERRUPT: return "Interrupted"; + case MA_UNAVAILABLE: return "Resource unavailable"; + case MA_ALREADY_IN_USE: return "Resource already in use"; + case MA_BAD_ADDRESS: return "Bad address"; + case MA_BAD_SEEK: return "Illegal seek"; + case MA_BAD_PIPE: return "Broken pipe"; + case MA_DEADLOCK: return "Deadlock"; + case MA_TOO_MANY_LINKS: return "Too many links"; + case MA_NOT_IMPLEMENTED: return "Not implemented"; + case MA_NO_MESSAGE: return "No message of desired type"; + case MA_BAD_MESSAGE: return "Invalid message"; + case MA_NO_DATA_AVAILABLE: return "No data available"; + case MA_INVALID_DATA: return "Invalid data"; + case MA_TIMEOUT: return "Timeout"; + case MA_NO_NETWORK: return "Network unavailable"; + case MA_NOT_UNIQUE: return "Not unique"; + case MA_NOT_SOCKET: return "Socket operation on non-socket"; + case MA_NO_ADDRESS: return "Destination address required"; + case MA_BAD_PROTOCOL: return "Protocol wrong type for socket"; + case MA_PROTOCOL_UNAVAILABLE: return "Protocol not available"; + case MA_PROTOCOL_NOT_SUPPORTED: return "Protocol not supported"; + case MA_PROTOCOL_FAMILY_NOT_SUPPORTED: return "Protocol family not supported"; + case MA_ADDRESS_FAMILY_NOT_SUPPORTED: return "Address family not supported"; + case MA_SOCKET_NOT_SUPPORTED: return "Socket type not supported"; + case MA_CONNECTION_RESET: return "Connection reset"; + case MA_ALREADY_CONNECTED: return "Already connected"; + case MA_NOT_CONNECTED: return "Not connected"; + case MA_CONNECTION_REFUSED: return "Connection refused"; + case MA_NO_HOST: return "No host"; + case MA_IN_PROGRESS: return "Operation in progress"; + case MA_CANCELLED: return "Operation cancelled"; + case MA_MEMORY_ALREADY_MAPPED: return "Memory already mapped"; + case MA_AT_END: return "Reached end of collection"; + + case MA_FORMAT_NOT_SUPPORTED: return "Format not supported"; + case MA_DEVICE_TYPE_NOT_SUPPORTED: return "Device type not supported"; + case MA_SHARE_MODE_NOT_SUPPORTED: return "Share mode not supported"; + case MA_NO_BACKEND: return "No backend"; + case MA_NO_DEVICE: return "No device"; + case MA_API_NOT_FOUND: return "API not found"; + case MA_INVALID_DEVICE_CONFIG: return "Invalid device config"; + + case MA_DEVICE_NOT_INITIALIZED: return "Device not initialized"; + case MA_DEVICE_NOT_STARTED: return "Device not started"; + + case MA_FAILED_TO_INIT_BACKEND: return "Failed to initialize backend"; + case MA_FAILED_TO_OPEN_BACKEND_DEVICE: return "Failed to open backend device"; + case MA_FAILED_TO_START_BACKEND_DEVICE: return "Failed to start backend device"; + case MA_FAILED_TO_STOP_BACKEND_DEVICE: return "Failed to stop backend device"; + + default: return "Unknown error"; + } +} + +MA_API void* ma_malloc(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + return ma__malloc_from_callbacks(sz, pAllocationCallbacks); + } else { + return ma__malloc_default(sz, NULL); + } +} + +MA_API void* ma_realloc(void* p, size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, sz, pAllocationCallbacks->pUserData); + } else { + return NULL; /* This requires a native implementation of realloc(). */ + } + } else { + return ma__realloc_default(p, sz, NULL); + } +} + +MA_API void ma_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + ma__free_from_callbacks(p, pAllocationCallbacks); + } else { + ma__free_default(p, NULL); + } +} + +MA_API void* ma_aligned_malloc(size_t sz, size_t alignment, const ma_allocation_callbacks* pAllocationCallbacks) +{ + size_t extraBytes; + void* pUnaligned; + void* pAligned; + + if (alignment == 0) { + return 0; + } + + extraBytes = alignment-1 + sizeof(void*); + + pUnaligned = ma_malloc(sz + extraBytes, pAllocationCallbacks); + if (pUnaligned == NULL) { + return NULL; + } + + pAligned = (void*)(((ma_uintptr)pUnaligned + extraBytes) & ~((ma_uintptr)(alignment-1))); + ((void**)pAligned)[-1] = pUnaligned; + + return pAligned; +} + +MA_API void ma_aligned_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_free(((void**)p)[-1], pAllocationCallbacks); +} + +MA_API const char* ma_get_format_name(ma_format format) +{ + switch (format) + { + case ma_format_unknown: return "Unknown"; + case ma_format_u8: return "8-bit Unsigned Integer"; + case ma_format_s16: return "16-bit Signed Integer"; + case ma_format_s24: return "24-bit Signed Integer (Tightly Packed)"; + case ma_format_s32: return "32-bit Signed Integer"; + case ma_format_f32: return "32-bit IEEE Floating Point"; + default: return "Invalid"; + } +} + +MA_API void ma_blend_f32(float* pOut, float* pInA, float* pInB, float factor, ma_uint32 channels) +{ + ma_uint32 i; + for (i = 0; i < channels; ++i) { + pOut[i] = ma_mix_f32(pInA[i], pInB[i], factor); + } +} + + +MA_API ma_uint32 ma_get_bytes_per_sample(ma_format format) +{ + ma_uint32 sizes[] = { + 0, /* unknown */ + 1, /* u8 */ + 2, /* s16 */ + 3, /* s24 */ + 4, /* s32 */ + 4, /* f32 */ + }; + return sizes[format]; +} + + + +MA_API ma_result ma_data_source_read_pcm_frames(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead, ma_bool32 loop) +{ + ma_data_source_callbacks* pCallbacks = (ma_data_source_callbacks*)pDataSource; + + /* Safety. */ + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + if (pCallbacks == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onRead == NULL) { + return MA_NOT_IMPLEMENTED; + } + + /* A very small optimization for the non looping case. */ + if (loop == MA_FALSE) { + return pCallbacks->onRead(pDataSource, pFramesOut, frameCount, pFramesRead); + } else { + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + if (ma_data_source_get_data_format(pDataSource, &format, &channels, &sampleRate) != MA_SUCCESS) { + return pCallbacks->onRead(pDataSource, pFramesOut, frameCount, pFramesRead); /* We don't have a way to retrieve the data format which means we don't know how to offset the output buffer. Just read as much as we can. */ + } else { + ma_result result = MA_SUCCESS; + ma_uint64 totalFramesProcessed; + void* pRunningFramesOut = pFramesOut; + + totalFramesProcessed = 0; + while (totalFramesProcessed < frameCount) { + ma_uint64 framesProcessed; + ma_uint64 framesRemaining = frameCount - totalFramesProcessed; + + result = pCallbacks->onRead(pDataSource, pRunningFramesOut, framesRemaining, &framesProcessed); + totalFramesProcessed += framesProcessed; + + /* + If we encounted an error from the read callback, make sure it's propagated to the caller. The caller may need to know whether or not MA_BUSY is returned which is + not necessarily considered an error. + */ + if (result != MA_SUCCESS && result != MA_AT_END) { + break; + } + + /* + We can determine if we've reached the end by checking the return value of the onRead() callback. If it's less than what we requested it means + we've reached the end. To loop back to the start, all we need to do is seek back to the first frame. + */ + if (framesProcessed < framesRemaining || result == MA_AT_END) { + if (ma_data_source_seek_to_pcm_frame(pDataSource, 0) != MA_SUCCESS) { + break; + } + } + + if (pRunningFramesOut != NULL) { + pRunningFramesOut = ma_offset_ptr(pRunningFramesOut, framesProcessed * ma_get_bytes_per_frame(format, channels)); + } + } + + if (pFramesRead != NULL) { + *pFramesRead = totalFramesProcessed; + } + + return result; + } + } +} + +MA_API ma_result ma_data_source_seek_pcm_frames(ma_data_source* pDataSource, ma_uint64 frameCount, ma_uint64* pFramesSeeked, ma_bool32 loop) +{ + return ma_data_source_read_pcm_frames(pDataSource, NULL, frameCount, pFramesSeeked, loop); +} + +MA_API ma_result ma_data_source_seek_to_pcm_frame(ma_data_source* pDataSource, ma_uint64 frameIndex) +{ + ma_data_source_callbacks* pCallbacks = (ma_data_source_callbacks*)pDataSource; + if (pCallbacks == NULL || pCallbacks->onSeek == NULL) { + return MA_INVALID_ARGS; + } + + return pCallbacks->onSeek(pDataSource, frameIndex); +} + +MA_API ma_result ma_data_source_map(ma_data_source* pDataSource, void** ppFramesOut, ma_uint64* pFrameCount) +{ + ma_data_source_callbacks* pCallbacks = (ma_data_source_callbacks*)pDataSource; + if (pCallbacks == NULL || pCallbacks->onMap == NULL) { + return MA_INVALID_ARGS; + } + + return pCallbacks->onMap(pDataSource, ppFramesOut, pFrameCount); +} + +MA_API ma_result ma_data_source_unmap(ma_data_source* pDataSource, ma_uint64 frameCount) +{ + ma_data_source_callbacks* pCallbacks = (ma_data_source_callbacks*)pDataSource; + if (pCallbacks == NULL || pCallbacks->onUnmap == NULL) { + return MA_INVALID_ARGS; + } + + return pCallbacks->onUnmap(pDataSource, frameCount); +} + +MA_API ma_result ma_data_source_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate) +{ + ma_result result; + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_data_source_callbacks* pCallbacks = (ma_data_source_callbacks*)pDataSource; + + if (pFormat != NULL) { + *pFormat = ma_format_unknown; + } + + if (pChannels != NULL) { + *pChannels = 0; + } + + if (pSampleRate != NULL) { + *pSampleRate = 0; + } + + if (pCallbacks == NULL || pCallbacks->onGetDataFormat == NULL) { + return MA_INVALID_ARGS; + } + + result = pCallbacks->onGetDataFormat(pDataSource, &format, &channels, &sampleRate); + if (result != MA_SUCCESS) { + return result; + } + + if (pFormat != NULL) { + *pFormat = format; + } + if (pChannels != NULL) { + *pChannels = channels; + } + if (pSampleRate != NULL) { + *pSampleRate = sampleRate; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_data_source_get_cursor_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pCursor) +{ + ma_data_source_callbacks* pCallbacks = (ma_data_source_callbacks*)pDataSource; + + if (pCursor == NULL) { + return MA_INVALID_ARGS; + } + + *pCursor = 0; + + if (pCallbacks == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onGetCursor == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onGetCursor(pDataSource, pCursor); +} + +MA_API ma_result ma_data_source_get_length_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pLength) +{ + ma_data_source_callbacks* pCallbacks = (ma_data_source_callbacks*)pDataSource; + + if (pLength == NULL) { + return MA_INVALID_ARGS; + } + + *pLength = 0; + + if (pCallbacks == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onGetLength == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onGetLength(pDataSource, pLength); +} + + + + +static ma_result ma_audio_buffer_ref__data_source_on_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) +{ + ma_uint64 framesRead = ma_audio_buffer_ref_read_pcm_frames((ma_audio_buffer_ref*)pDataSource, pFramesOut, frameCount, MA_FALSE); + + if (pFramesRead != NULL) { + *pFramesRead = framesRead; + } + + if (framesRead < frameCount) { + return MA_AT_END; + } + + return MA_SUCCESS; +} + +static ma_result ma_audio_buffer_ref__data_source_on_seek(ma_data_source* pDataSource, ma_uint64 frameIndex) +{ + return ma_audio_buffer_ref_seek_to_pcm_frame((ma_audio_buffer_ref*)pDataSource, frameIndex); +} + +static ma_result ma_audio_buffer_ref__data_source_on_map(ma_data_source* pDataSource, void** ppFramesOut, ma_uint64* pFrameCount) +{ + return ma_audio_buffer_ref_map((ma_audio_buffer_ref*)pDataSource, ppFramesOut, pFrameCount); +} + +static ma_result ma_audio_buffer_ref__data_source_on_unmap(ma_data_source* pDataSource, ma_uint64 frameCount) +{ + return ma_audio_buffer_ref_unmap((ma_audio_buffer_ref*)pDataSource, frameCount); +} + +static ma_result ma_audio_buffer_ref__data_source_on_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate) +{ + ma_audio_buffer_ref* pAudioBufferRef = (ma_audio_buffer_ref*)pDataSource; + + *pFormat = pAudioBufferRef->format; + *pChannels = pAudioBufferRef->channels; + *pSampleRate = 0; /* There is no notion of a sample rate with audio buffers. */ + + return MA_SUCCESS; +} + +static ma_result ma_audio_buffer_ref__data_source_on_get_cursor(ma_data_source* pDataSource, ma_uint64* pCursor) +{ + ma_audio_buffer_ref* pAudioBufferRef = (ma_audio_buffer_ref*)pDataSource; + + *pCursor = pAudioBufferRef->cursor; + + return MA_SUCCESS; +} + +static ma_result ma_audio_buffer_ref__data_source_on_get_length(ma_data_source* pDataSource, ma_uint64* pLength) +{ + ma_audio_buffer_ref* pAudioBufferRef = (ma_audio_buffer_ref*)pDataSource; + + *pLength = pAudioBufferRef->sizeInFrames; + + return MA_SUCCESS; +} + +MA_API ma_result ma_audio_buffer_ref_init(ma_format format, ma_uint32 channels, const void* pData, ma_uint64 sizeInFrames, ma_audio_buffer_ref* pAudioBufferRef) +{ + if (pAudioBufferRef == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pAudioBufferRef); + + pAudioBufferRef->ds.onRead = ma_audio_buffer_ref__data_source_on_read; + pAudioBufferRef->ds.onSeek = ma_audio_buffer_ref__data_source_on_seek; + pAudioBufferRef->ds.onMap = ma_audio_buffer_ref__data_source_on_map; + pAudioBufferRef->ds.onUnmap = ma_audio_buffer_ref__data_source_on_unmap; + pAudioBufferRef->ds.onGetDataFormat = ma_audio_buffer_ref__data_source_on_get_data_format; + pAudioBufferRef->ds.onGetCursor = ma_audio_buffer_ref__data_source_on_get_cursor; + pAudioBufferRef->ds.onGetLength = ma_audio_buffer_ref__data_source_on_get_length; + pAudioBufferRef->format = format; + pAudioBufferRef->channels = channels; + pAudioBufferRef->cursor = 0; + pAudioBufferRef->sizeInFrames = sizeInFrames; + pAudioBufferRef->pData = pData; + + return MA_SUCCESS; +} + +MA_API ma_result ma_audio_buffer_ref_set_data(ma_audio_buffer_ref* pAudioBufferRef, const void* pData, ma_uint64 sizeInFrames) +{ + if (pAudioBufferRef == NULL) { + return MA_INVALID_ARGS; + } + + pAudioBufferRef->cursor = 0; + pAudioBufferRef->sizeInFrames = sizeInFrames; + pAudioBufferRef->pData = pData; + + return MA_SUCCESS; +} + +MA_API ma_uint64 ma_audio_buffer_ref_read_pcm_frames(ma_audio_buffer_ref* pAudioBufferRef, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop) +{ + ma_uint64 totalFramesRead = 0; + + if (pAudioBufferRef == NULL) { + return 0; + } + + if (frameCount == 0) { + return 0; + } + + while (totalFramesRead < frameCount) { + ma_uint64 framesAvailable = pAudioBufferRef->sizeInFrames - pAudioBufferRef->cursor; + ma_uint64 framesRemaining = frameCount - totalFramesRead; + ma_uint64 framesToRead; + + framesToRead = framesRemaining; + if (framesToRead > framesAvailable) { + framesToRead = framesAvailable; + } + + if (pFramesOut != NULL) { + ma_copy_pcm_frames(pFramesOut, ma_offset_ptr(pAudioBufferRef->pData, pAudioBufferRef->cursor * ma_get_bytes_per_frame(pAudioBufferRef->format, pAudioBufferRef->channels)), framesToRead, pAudioBufferRef->format, pAudioBufferRef->channels); + } + + totalFramesRead += framesToRead; + + pAudioBufferRef->cursor += framesToRead; + if (pAudioBufferRef->cursor == pAudioBufferRef->sizeInFrames) { + if (loop) { + pAudioBufferRef->cursor = 0; + } else { + break; /* We've reached the end and we're not looping. Done. */ + } + } + + MA_ASSERT(pAudioBufferRef->cursor < pAudioBufferRef->sizeInFrames); + } + + return totalFramesRead; +} + +MA_API ma_result ma_audio_buffer_ref_seek_to_pcm_frame(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameIndex) +{ + if (pAudioBufferRef == NULL) { + return MA_INVALID_ARGS; + } + + if (frameIndex > pAudioBufferRef->sizeInFrames) { + return MA_INVALID_ARGS; + } + + pAudioBufferRef->cursor = (size_t)frameIndex; + + return MA_SUCCESS; +} + +MA_API ma_result ma_audio_buffer_ref_map(ma_audio_buffer_ref* pAudioBufferRef, void** ppFramesOut, ma_uint64* pFrameCount) +{ + ma_uint64 framesAvailable; + ma_uint64 frameCount = 0; + + if (ppFramesOut != NULL) { + *ppFramesOut = NULL; /* Safety. */ + } + + if (pFrameCount != NULL) { + frameCount = *pFrameCount; + *pFrameCount = 0; /* Safety. */ + } + + if (pAudioBufferRef == NULL || ppFramesOut == NULL || pFrameCount == NULL) { + return MA_INVALID_ARGS; + } + + framesAvailable = pAudioBufferRef->sizeInFrames - pAudioBufferRef->cursor; + if (frameCount > framesAvailable) { + frameCount = framesAvailable; + } + + *ppFramesOut = ma_offset_ptr(pAudioBufferRef->pData, pAudioBufferRef->cursor * ma_get_bytes_per_frame(pAudioBufferRef->format, pAudioBufferRef->channels)); + *pFrameCount = frameCount; + + return MA_SUCCESS; +} + +MA_API ma_result ma_audio_buffer_ref_unmap(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameCount) +{ + ma_uint64 framesAvailable; + + if (pAudioBufferRef == NULL) { + return MA_INVALID_ARGS; + } + + framesAvailable = pAudioBufferRef->sizeInFrames - pAudioBufferRef->cursor; + if (frameCount > framesAvailable) { + return MA_INVALID_ARGS; /* The frame count was too big. This should never happen in an unmapping. Need to make sure the caller is aware of this. */ + } + + pAudioBufferRef->cursor += frameCount; + + if (pAudioBufferRef->cursor == pAudioBufferRef->sizeInFrames) { + return MA_AT_END; /* Successful. Need to tell the caller that the end has been reached so that it can loop if desired. */ + } else { + return MA_SUCCESS; + } +} + +MA_API ma_result ma_audio_buffer_ref_at_end(ma_audio_buffer_ref* pAudioBufferRef) +{ + if (pAudioBufferRef == NULL) { + return MA_FALSE; + } + + return pAudioBufferRef->cursor == pAudioBufferRef->sizeInFrames; +} + +MA_API ma_result ma_audio_buffer_ref_get_available_frames(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pAvailableFrames) +{ + if (pAvailableFrames == NULL) { + return MA_INVALID_ARGS; + } + + *pAvailableFrames = 0; + + if (pAudioBufferRef == NULL) { + return MA_INVALID_ARGS; + } + + if (pAudioBufferRef->sizeInFrames <= pAudioBufferRef->cursor) { + *pAvailableFrames = 0; + } else { + *pAvailableFrames = pAudioBufferRef->sizeInFrames - pAudioBufferRef->cursor; + } + + return MA_SUCCESS; +} + + + + +MA_API ma_audio_buffer_config ma_audio_buffer_config_init(ma_format format, ma_uint32 channels, ma_uint64 sizeInFrames, const void* pData, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_audio_buffer_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sizeInFrames = sizeInFrames; + config.pData = pData; + ma_allocation_callbacks_init_copy(&config.allocationCallbacks, pAllocationCallbacks); + + return config; +} + +static ma_result ma_audio_buffer_init_ex(const ma_audio_buffer_config* pConfig, ma_bool32 doCopy, ma_audio_buffer* pAudioBuffer) +{ + ma_result result; + + if (pAudioBuffer == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_MEMORY(pAudioBuffer, sizeof(*pAudioBuffer) - sizeof(pAudioBuffer->_pExtraData)); /* Safety. Don't overwrite the extra data. */ + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->sizeInFrames == 0) { + return MA_INVALID_ARGS; /* Not allowing buffer sizes of 0 frames. */ + } + + result = ma_audio_buffer_ref_init(pConfig->format, pConfig->channels, NULL, 0, &pAudioBuffer->ref); + if (result != MA_SUCCESS) { + return result; + } + + ma_allocation_callbacks_init_copy(&pAudioBuffer->allocationCallbacks, &pConfig->allocationCallbacks); + + if (doCopy) { + ma_uint64 allocationSizeInBytes; + void* pData; + + allocationSizeInBytes = pConfig->sizeInFrames * ma_get_bytes_per_frame(pConfig->format, pConfig->channels); + if (allocationSizeInBytes > MA_SIZE_MAX) { + return MA_OUT_OF_MEMORY; /* Too big. */ + } + + pData = ma__malloc_from_callbacks((size_t)allocationSizeInBytes, &pAudioBuffer->allocationCallbacks); /* Safe cast to size_t. */ + if (pData == NULL) { + return MA_OUT_OF_MEMORY; + } + + if (pConfig->pData != NULL) { + ma_copy_pcm_frames(pData, pConfig->pData, pConfig->sizeInFrames, pConfig->format, pConfig->channels); + } else { + ma_silence_pcm_frames(pData, pConfig->sizeInFrames, pConfig->format, pConfig->channels); + } + + ma_audio_buffer_ref_set_data(&pAudioBuffer->ref, pData, pConfig->sizeInFrames); + pAudioBuffer->ownsData = MA_TRUE; + } else { + ma_audio_buffer_ref_set_data(&pAudioBuffer->ref, pConfig->pData, pConfig->sizeInFrames); + pAudioBuffer->ownsData = MA_FALSE; + } + + return MA_SUCCESS; +} + +static void ma_audio_buffer_uninit_ex(ma_audio_buffer* pAudioBuffer, ma_bool32 doFree) +{ + if (pAudioBuffer == NULL) { + return; + } + + if (pAudioBuffer->ownsData && pAudioBuffer->ref.pData != &pAudioBuffer->_pExtraData[0]) { + ma__free_from_callbacks((void*)pAudioBuffer->ref.pData, &pAudioBuffer->allocationCallbacks); /* Naugty const cast, but OK in this case since we've guarded it with the ownsData check. */ + } + + if (doFree) { + ma__free_from_callbacks(pAudioBuffer, &pAudioBuffer->allocationCallbacks); + } +} + +MA_API ma_result ma_audio_buffer_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer) +{ + return ma_audio_buffer_init_ex(pConfig, MA_FALSE, pAudioBuffer); +} + +MA_API ma_result ma_audio_buffer_init_copy(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer) +{ + return ma_audio_buffer_init_ex(pConfig, MA_TRUE, pAudioBuffer); +} + +MA_API ma_result ma_audio_buffer_alloc_and_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer** ppAudioBuffer) +{ + ma_result result; + ma_audio_buffer* pAudioBuffer; + ma_audio_buffer_config innerConfig; /* We'll be making some changes to the config, so need to make a copy. */ + ma_uint64 allocationSizeInBytes; + + if (ppAudioBuffer == NULL) { + return MA_INVALID_ARGS; + } + + *ppAudioBuffer = NULL; /* Safety. */ + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + innerConfig = *pConfig; + ma_allocation_callbacks_init_copy(&innerConfig.allocationCallbacks, &pConfig->allocationCallbacks); + + allocationSizeInBytes = sizeof(*pAudioBuffer) - sizeof(pAudioBuffer->_pExtraData) + (pConfig->sizeInFrames * ma_get_bytes_per_frame(pConfig->format, pConfig->channels)); + if (allocationSizeInBytes > MA_SIZE_MAX) { + return MA_OUT_OF_MEMORY; /* Too big. */ + } + + pAudioBuffer = (ma_audio_buffer*)ma__malloc_from_callbacks((size_t)allocationSizeInBytes, &innerConfig.allocationCallbacks); /* Safe cast to size_t. */ + if (pAudioBuffer == NULL) { + return MA_OUT_OF_MEMORY; + } + + if (pConfig->pData != NULL) { + ma_copy_pcm_frames(&pAudioBuffer->_pExtraData[0], pConfig->pData, pConfig->sizeInFrames, pConfig->format, pConfig->channels); + } else { + ma_silence_pcm_frames(&pAudioBuffer->_pExtraData[0], pConfig->sizeInFrames, pConfig->format, pConfig->channels); + } + + innerConfig.pData = &pAudioBuffer->_pExtraData[0]; + + result = ma_audio_buffer_init_ex(&innerConfig, MA_FALSE, pAudioBuffer); + if (result != MA_SUCCESS) { + ma__free_from_callbacks(pAudioBuffer, &innerConfig.allocationCallbacks); + return result; + } + + *ppAudioBuffer = pAudioBuffer; + + return MA_SUCCESS; +} + +MA_API void ma_audio_buffer_uninit(ma_audio_buffer* pAudioBuffer) +{ + ma_audio_buffer_uninit_ex(pAudioBuffer, MA_FALSE); +} + +MA_API void ma_audio_buffer_uninit_and_free(ma_audio_buffer* pAudioBuffer) +{ + ma_audio_buffer_uninit_ex(pAudioBuffer, MA_TRUE); +} + +MA_API ma_uint64 ma_audio_buffer_read_pcm_frames(ma_audio_buffer* pAudioBuffer, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop) +{ + if (pAudioBuffer == NULL) { + return 0; + } + + return ma_audio_buffer_ref_read_pcm_frames(&pAudioBuffer->ref, pFramesOut, frameCount, loop); +} + +MA_API ma_result ma_audio_buffer_seek_to_pcm_frame(ma_audio_buffer* pAudioBuffer, ma_uint64 frameIndex) +{ + if (pAudioBuffer == NULL) { + return MA_INVALID_ARGS; + } + + return ma_audio_buffer_ref_seek_to_pcm_frame(&pAudioBuffer->ref, frameIndex); +} + +MA_API ma_result ma_audio_buffer_map(ma_audio_buffer* pAudioBuffer, void** ppFramesOut, ma_uint64* pFrameCount) +{ + if (ppFramesOut != NULL) { + *ppFramesOut = NULL; /* Safety. */ + } + + if (pAudioBuffer == NULL) { + if (pFrameCount != NULL) { + *pFrameCount = 0; + } + + return MA_INVALID_ARGS; + } + + return ma_audio_buffer_ref_map(&pAudioBuffer->ref, ppFramesOut, pFrameCount); +} + +MA_API ma_result ma_audio_buffer_unmap(ma_audio_buffer* pAudioBuffer, ma_uint64 frameCount) +{ + if (pAudioBuffer == NULL) { + return MA_INVALID_ARGS; + } + + return ma_audio_buffer_ref_unmap(&pAudioBuffer->ref, frameCount); +} + +MA_API ma_result ma_audio_buffer_at_end(ma_audio_buffer* pAudioBuffer) +{ + if (pAudioBuffer == NULL) { + return MA_FALSE; + } + + return ma_audio_buffer_ref_at_end(&pAudioBuffer->ref); +} + +MA_API ma_result ma_audio_buffer_get_available_frames(ma_audio_buffer* pAudioBuffer, ma_uint64* pAvailableFrames) +{ + if (pAvailableFrames == NULL) { + return MA_INVALID_ARGS; + } + + *pAvailableFrames = 0; + + if (pAudioBuffer == NULL) { + return MA_INVALID_ARGS; + } + + return ma_audio_buffer_ref_get_available_frames(&pAudioBuffer->ref, pAvailableFrames); +} + + + +/************************************************************************************************************************************************************** + +VFS + +**************************************************************************************************************************************************************/ +MA_API ma_result ma_vfs_open(ma_vfs* pVFS, const char* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pFile == NULL) { + return MA_INVALID_ARGS; + } + + *pFile = NULL; + + if (pVFS == NULL || pFilePath == NULL || openMode == 0) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onOpen == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onOpen(pVFS, pFilePath, openMode, pFile); +} + +MA_API ma_result ma_vfs_open_w(ma_vfs* pVFS, const wchar_t* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pFile == NULL) { + return MA_INVALID_ARGS; + } + + *pFile = NULL; + + if (pVFS == NULL || pFilePath == NULL || openMode == 0) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onOpenW == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onOpenW(pVFS, pFilePath, openMode, pFile); +} + +MA_API ma_result ma_vfs_close(ma_vfs* pVFS, ma_vfs_file file) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pVFS == NULL || file == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onClose == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onClose(pVFS, file); +} + +MA_API ma_result ma_vfs_read(ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t sizeInBytes, size_t* pBytesRead) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pBytesRead != NULL) { + *pBytesRead = 0; + } + + if (pVFS == NULL || file == NULL || pDst == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onRead == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onRead(pVFS, file, pDst, sizeInBytes, pBytesRead); +} + +MA_API ma_result ma_vfs_write(ma_vfs* pVFS, ma_vfs_file file, const void* pSrc, size_t sizeInBytes, size_t* pBytesWritten) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pBytesWritten != NULL) { + *pBytesWritten = 0; + } + + if (pVFS == NULL || file == NULL || pSrc == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onWrite == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onWrite(pVFS, file, pSrc, sizeInBytes, pBytesWritten); +} + +MA_API ma_result ma_vfs_seek(ma_vfs* pVFS, ma_vfs_file file, ma_int64 offset, ma_seek_origin origin) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pVFS == NULL || file == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onSeek == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onSeek(pVFS, file, offset, origin); +} + +MA_API ma_result ma_vfs_tell(ma_vfs* pVFS, ma_vfs_file file, ma_int64* pCursor) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pCursor == NULL) { + return MA_INVALID_ARGS; + } + + *pCursor = 0; + + if (pVFS == NULL || file == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onTell == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onTell(pVFS, file, pCursor); +} + +MA_API ma_result ma_vfs_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo) +{ + ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; + + if (pInfo == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pInfo); + + if (pVFS == NULL || file == NULL) { + return MA_INVALID_ARGS; + } + + if (pCallbacks->onInfo == NULL) { + return MA_NOT_IMPLEMENTED; + } + + return pCallbacks->onInfo(pVFS, file, pInfo); +} + + +static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePath, const wchar_t* pFilePathW, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks, ma_uint32 allocationType) +{ + ma_result result; + ma_vfs_file file; + ma_file_info info; + void* pData; + size_t bytesRead; + + (void)allocationType; + + if (ppData != NULL) { + *ppData = NULL; + } + if (pSize != NULL) { + *pSize = 0; + } + + if (ppData == NULL) { + return MA_INVALID_ARGS; + } + + if (pFilePath != NULL) { + result = ma_vfs_open(pVFS, pFilePath, MA_OPEN_MODE_READ, &file); + } else { + result = ma_vfs_open_w(pVFS, pFilePathW, MA_OPEN_MODE_READ, &file); + } + if (result != MA_SUCCESS) { + return result; + } + + result = ma_vfs_info(pVFS, file, &info); + if (result != MA_SUCCESS) { + ma_vfs_close(pVFS, file); + return result; + } + + if (info.sizeInBytes > MA_SIZE_MAX) { + ma_vfs_close(pVFS, file); + return MA_TOO_BIG; + } + + pData = ma__malloc_from_callbacks((size_t)info.sizeInBytes, pAllocationCallbacks); /* Safe cast. */ + if (pData == NULL) { + ma_vfs_close(pVFS, file); + return result; + } + + result = ma_vfs_read(pVFS, file, pData, (size_t)info.sizeInBytes, &bytesRead); /* Safe cast. */ + ma_vfs_close(pVFS, file); + + if (result != MA_SUCCESS) { + ma__free_from_callbacks(pData, pAllocationCallbacks); + return result; + } + + if (pSize != NULL) { + *pSize = bytesRead; + } + + MA_ASSERT(ppData != NULL); + *ppData = pData; + + return MA_SUCCESS; +} + +MA_API ma_result ma_vfs_open_and_read_file(ma_vfs* pVFS, const char* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_vfs_open_and_read_file_ex(pVFS, pFilePath, NULL, ppData, pSize, pAllocationCallbacks, 0 /*MA_ALLOCATION_TYPE_GENERAL*/); +} + +MA_API ma_result ma_vfs_open_and_read_file_w(ma_vfs* pVFS, const wchar_t* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_vfs_open_and_read_file_ex(pVFS, NULL, pFilePath, ppData, pSize, pAllocationCallbacks, 0 /*MA_ALLOCATION_TYPE_GENERAL*/); +} + + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) +static void ma_default_vfs__get_open_settings_win32(ma_uint32 openMode, DWORD* pDesiredAccess, DWORD* pShareMode, DWORD* pCreationDisposition) +{ + *pDesiredAccess = 0; + if ((openMode & MA_OPEN_MODE_READ) != 0) { + *pDesiredAccess |= GENERIC_READ; + } + if ((openMode & MA_OPEN_MODE_WRITE) != 0) { + *pDesiredAccess |= GENERIC_WRITE; + } + + *pShareMode = 0; + if ((openMode & MA_OPEN_MODE_READ) != 0) { + *pShareMode |= FILE_SHARE_READ; + } + + if ((openMode & MA_OPEN_MODE_WRITE) != 0) { + *pCreationDisposition = CREATE_ALWAYS; /* Opening in write mode. Truncate. */ + } else { + *pCreationDisposition = OPEN_EXISTING; /* Opening in read mode. File must exist. */ + } +} + +static ma_result ma_default_vfs_open__win32(ma_vfs* pVFS, const char* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + HANDLE hFile; + DWORD dwDesiredAccess; + DWORD dwShareMode; + DWORD dwCreationDisposition; + + (void)pVFS; + + ma_default_vfs__get_open_settings_win32(openMode, &dwDesiredAccess, &dwShareMode, &dwCreationDisposition); + + hFile = CreateFileA(pFilePath, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); + if (hFile == INVALID_HANDLE_VALUE) { + return ma_result_from_GetLastError(GetLastError()); + } + + *pFile = hFile; + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_open_w__win32(ma_vfs* pVFS, const wchar_t* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + HANDLE hFile; + DWORD dwDesiredAccess; + DWORD dwShareMode; + DWORD dwCreationDisposition; + + (void)pVFS; + + ma_default_vfs__get_open_settings_win32(openMode, &dwDesiredAccess, &dwShareMode, &dwCreationDisposition); + + hFile = CreateFileW(pFilePath, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); + if (hFile == INVALID_HANDLE_VALUE) { + return ma_result_from_GetLastError(GetLastError()); + } + + *pFile = hFile; + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_close__win32(ma_vfs* pVFS, ma_vfs_file file) +{ + (void)pVFS; + + if (CloseHandle((HANDLE)file) == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + + +static ma_result ma_default_vfs_read__win32(ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t sizeInBytes, size_t* pBytesRead) +{ + ma_result result = MA_SUCCESS; + size_t totalBytesRead; + + (void)pVFS; + + totalBytesRead = 0; + while (totalBytesRead < sizeInBytes) { + size_t bytesRemaining; + DWORD bytesToRead; + DWORD bytesRead; + BOOL readResult; + + bytesRemaining = sizeInBytes - totalBytesRead; + if (bytesRemaining >= 0xFFFFFFFF) { + bytesToRead = 0xFFFFFFFF; + } else { + bytesToRead = (DWORD)bytesRemaining; + } + + readResult = ReadFile((HANDLE)file, ma_offset_ptr(pDst, totalBytesRead), bytesToRead, &bytesRead, NULL); + if (readResult == 1 && bytesRead == 0) { + break; /* EOF */ + } + + totalBytesRead += bytesRead; + + if (bytesRead < bytesToRead) { + break; /* EOF */ + } + + if (readResult == 0) { + result = ma_result_from_GetLastError(GetLastError()); + break; + } + } + + if (pBytesRead != NULL) { + *pBytesRead = totalBytesRead; + } + + return result; +} + +static ma_result ma_default_vfs_write__win32(ma_vfs* pVFS, ma_vfs_file file, const void* pSrc, size_t sizeInBytes, size_t* pBytesWritten) +{ + ma_result result = MA_SUCCESS; + size_t totalBytesWritten; + + (void)pVFS; + + totalBytesWritten = 0; + while (totalBytesWritten < sizeInBytes) { + size_t bytesRemaining; + DWORD bytesToWrite; + DWORD bytesWritten; + BOOL writeResult; + + bytesRemaining = sizeInBytes - totalBytesWritten; + if (bytesRemaining >= 0xFFFFFFFF) { + bytesToWrite = 0xFFFFFFFF; + } else { + bytesToWrite = (DWORD)bytesRemaining; + } + + writeResult = WriteFile((HANDLE)file, ma_offset_ptr(pSrc, totalBytesWritten), bytesToWrite, &bytesWritten, NULL); + totalBytesWritten += bytesWritten; + + if (writeResult == 0) { + result = ma_result_from_GetLastError(GetLastError()); + break; + } + } + + if (pBytesWritten != NULL) { + *pBytesWritten = totalBytesWritten; + } + + return result; +} + + +static ma_result ma_default_vfs_seek__win32(ma_vfs* pVFS, ma_vfs_file file, ma_int64 offset, ma_seek_origin origin) +{ + LARGE_INTEGER liDistanceToMove; + DWORD dwMoveMethod; + BOOL result; + + (void)pVFS; + + liDistanceToMove.QuadPart = offset; + + /* */ if (origin == ma_seek_origin_current) { + dwMoveMethod = FILE_CURRENT; + } else if (origin == ma_seek_origin_end) { + dwMoveMethod = FILE_END; + } else { + dwMoveMethod = FILE_BEGIN; + } + +#if (defined(_MSC_VER) && _MSC_VER <= 1200) || defined(__DMC__) + /* No SetFilePointerEx() so restrict to 31 bits. */ + if (origin > 0x7FFFFFFF) { + return MA_OUT_OF_RANGE; + } + + result = SetFilePointer((HANDLE)file, (LONG)liDistanceToMove.QuadPart, NULL, dwMoveMethod); +#else + result = SetFilePointerEx((HANDLE)file, liDistanceToMove, NULL, dwMoveMethod); +#endif + if (result == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_tell__win32(ma_vfs* pVFS, ma_vfs_file file, ma_int64* pCursor) +{ + LARGE_INTEGER liZero; + LARGE_INTEGER liTell; + BOOL result; +#if (defined(_MSC_VER) && _MSC_VER <= 1200) || defined(__DMC__) + LONG tell; +#endif + + (void)pVFS; + + liZero.QuadPart = 0; + +#if (defined(_MSC_VER) && _MSC_VER <= 1200) || defined(__DMC__) + result = SetFilePointer((HANDLE)file, (LONG)liZero.QuadPart, &tell, FILE_CURRENT); + liTell.QuadPart = tell; +#else + result = SetFilePointerEx((HANDLE)file, liZero, &liTell, FILE_CURRENT); +#endif + if (result == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + if (pCursor != NULL) { + *pCursor = liTell.QuadPart; + } + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_info__win32(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo) +{ + BY_HANDLE_FILE_INFORMATION fi; + BOOL result; + + (void)pVFS; + + result = GetFileInformationByHandle((HANDLE)file, &fi); + if (result == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + pInfo->sizeInBytes = ((ma_uint64)fi.nFileSizeHigh << 32) | ((ma_uint64)fi.nFileSizeLow); + + return MA_SUCCESS; +} +#else +static ma_result ma_default_vfs_open__stdio(ma_vfs* pVFS, const char* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + ma_result result; + FILE* pFileStd; + const char* pOpenModeStr; + + MA_ASSERT(pFilePath != NULL); + MA_ASSERT(openMode != 0); + MA_ASSERT(pFile != NULL); + + (void)pVFS; + + if ((openMode & MA_OPEN_MODE_READ) != 0) { + if ((openMode & MA_OPEN_MODE_WRITE) != 0) { + pOpenModeStr = "r+"; + } else { + pOpenModeStr = "rb"; + } + } else { + pOpenModeStr = "wb"; + } + + result = ma_fopen(&pFileStd, pFilePath, pOpenModeStr); + if (result != MA_SUCCESS) { + return result; + } + + *pFile = pFileStd; + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_open_w__stdio(ma_vfs* pVFS, const wchar_t* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + ma_result result; + FILE* pFileStd; + const wchar_t* pOpenModeStr; + + MA_ASSERT(pFilePath != NULL); + MA_ASSERT(openMode != 0); + MA_ASSERT(pFile != NULL); + + (void)pVFS; + + if ((openMode & MA_OPEN_MODE_READ) != 0) { + if ((openMode & MA_OPEN_MODE_WRITE) != 0) { + pOpenModeStr = L"r+"; + } else { + pOpenModeStr = L"rb"; + } + } else { + pOpenModeStr = L"wb"; + } + + result = ma_wfopen(&pFileStd, pFilePath, pOpenModeStr, (pVFS != NULL) ? &((ma_default_vfs*)pVFS)->allocationCallbacks : NULL); + if (result != MA_SUCCESS) { + return result; + } + + *pFile = pFileStd; + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_close__stdio(ma_vfs* pVFS, ma_vfs_file file) +{ + MA_ASSERT(file != NULL); + + (void)pVFS; + + fclose((FILE*)file); + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_read__stdio(ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t sizeInBytes, size_t* pBytesRead) +{ + size_t result; + + MA_ASSERT(file != NULL); + MA_ASSERT(pDst != NULL); + + (void)pVFS; + + result = fread(pDst, 1, sizeInBytes, (FILE*)file); + + if (pBytesRead != NULL) { + *pBytesRead = result; + } + + if (result != sizeInBytes) { + if (feof((FILE*)file)) { + return MA_END_OF_FILE; + } else { + return ma_result_from_errno(ferror((FILE*)file)); + } + } + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_write__stdio(ma_vfs* pVFS, ma_vfs_file file, const void* pSrc, size_t sizeInBytes, size_t* pBytesWritten) +{ + size_t result; + + MA_ASSERT(file != NULL); + MA_ASSERT(pSrc != NULL); + + (void)pVFS; + + result = fwrite(pSrc, 1, sizeInBytes, (FILE*)file); + + if (pBytesWritten != NULL) { + *pBytesWritten = result; + } + + if (result != sizeInBytes) { + return ma_result_from_errno(ferror((FILE*)file)); + } + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_seek__stdio(ma_vfs* pVFS, ma_vfs_file file, ma_int64 offset, ma_seek_origin origin) +{ + int result; + + MA_ASSERT(file != NULL); + + (void)pVFS; + +#if defined(_WIN32) + #if defined(_MSC_VER) && _MSC_VER > 1200 + result = _fseeki64((FILE*)file, offset, origin); + #else + /* No _fseeki64() so restrict to 31 bits. */ + if (origin > 0x7FFFFFFF) { + return MA_OUT_OF_RANGE; + } + + result = fseek((FILE*)file, (int)offset, origin); + #endif +#else + result = fseek((FILE*)file, (long int)offset, origin); +#endif + if (result != 0) { + return MA_ERROR; + } + + return MA_SUCCESS; +} + +static ma_result ma_default_vfs_tell__stdio(ma_vfs* pVFS, ma_vfs_file file, ma_int64* pCursor) +{ + ma_int64 result; + + MA_ASSERT(file != NULL); + MA_ASSERT(pCursor != NULL); + + (void)pVFS; + +#if defined(_WIN32) + #if defined(_MSC_VER) && _MSC_VER > 1200 + result = _ftelli64((FILE*)file); + #else + result = ftell((FILE*)file); + #endif +#else + result = ftell((FILE*)file); +#endif + + *pCursor = result; + + return MA_SUCCESS; +} + +#if !defined(_MSC_VER) && !((defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 1) || defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE)) && !defined(MA_BSD) +int fileno(FILE *stream); +#endif + +static ma_result ma_default_vfs_info__stdio(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo) +{ + int fd; + struct stat info; + + MA_ASSERT(file != NULL); + MA_ASSERT(pInfo != NULL); + + (void)pVFS; + +#if defined(_MSC_VER) + fd = _fileno((FILE*)file); +#else + fd = fileno((FILE*)file); +#endif + + if (fstat(fd, &info) != 0) { + return ma_result_from_errno(errno); + } + + pInfo->sizeInBytes = info.st_size; + + return MA_SUCCESS; +} +#endif + + +static ma_result ma_default_vfs_open(ma_vfs* pVFS, const char* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + if (pFile == NULL) { + return MA_INVALID_ARGS; + } + + *pFile = NULL; + + if (pFilePath == NULL || openMode == 0) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_open__win32(pVFS, pFilePath, openMode, pFile); +#else + return ma_default_vfs_open__stdio(pVFS, pFilePath, openMode, pFile); +#endif +} + +static ma_result ma_default_vfs_open_w(ma_vfs* pVFS, const wchar_t* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + if (pFile == NULL) { + return MA_INVALID_ARGS; + } + + *pFile = NULL; + + if (pFilePath == NULL || openMode == 0) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_open_w__win32(pVFS, pFilePath, openMode, pFile); +#else + return ma_default_vfs_open_w__stdio(pVFS, pFilePath, openMode, pFile); +#endif +} + +static ma_result ma_default_vfs_close(ma_vfs* pVFS, ma_vfs_file file) +{ + if (file == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_close__win32(pVFS, file); +#else + return ma_default_vfs_close__stdio(pVFS, file); +#endif +} + +static ma_result ma_default_vfs_read(ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t sizeInBytes, size_t* pBytesRead) +{ + if (pBytesRead != NULL) { + *pBytesRead = 0; + } + + if (file == NULL || pDst == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_read__win32(pVFS, file, pDst, sizeInBytes, pBytesRead); +#else + return ma_default_vfs_read__stdio(pVFS, file, pDst, sizeInBytes, pBytesRead); +#endif +} + +static ma_result ma_default_vfs_write(ma_vfs* pVFS, ma_vfs_file file, const void* pSrc, size_t sizeInBytes, size_t* pBytesWritten) +{ + if (pBytesWritten != NULL) { + *pBytesWritten = 0; + } + + if (file == NULL || pSrc == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_write__win32(pVFS, file, pSrc, sizeInBytes, pBytesWritten); +#else + return ma_default_vfs_write__stdio(pVFS, file, pSrc, sizeInBytes, pBytesWritten); +#endif +} + +static ma_result ma_default_vfs_seek(ma_vfs* pVFS, ma_vfs_file file, ma_int64 offset, ma_seek_origin origin) +{ + if (file == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_seek__win32(pVFS, file, offset, origin); +#else + return ma_default_vfs_seek__stdio(pVFS, file, offset, origin); +#endif +} + +static ma_result ma_default_vfs_tell(ma_vfs* pVFS, ma_vfs_file file, ma_int64* pCursor) +{ + if (pCursor == NULL) { + return MA_INVALID_ARGS; + } + + *pCursor = 0; + + if (file == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_tell__win32(pVFS, file, pCursor); +#else + return ma_default_vfs_tell__stdio(pVFS, file, pCursor); +#endif +} + +static ma_result ma_default_vfs_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo) +{ + if (pInfo == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pInfo); + + if (file == NULL) { + return MA_INVALID_ARGS; + } + +#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) + return ma_default_vfs_info__win32(pVFS, file, pInfo); +#else + return ma_default_vfs_info__stdio(pVFS, file, pInfo); +#endif +} + + +MA_API ma_result ma_default_vfs_init(ma_default_vfs* pVFS, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pVFS == NULL) { + return MA_INVALID_ARGS; + } + + pVFS->cb.onOpen = ma_default_vfs_open; + pVFS->cb.onOpenW = ma_default_vfs_open_w; + pVFS->cb.onClose = ma_default_vfs_close; + pVFS->cb.onRead = ma_default_vfs_read; + pVFS->cb.onWrite = ma_default_vfs_write; + pVFS->cb.onSeek = ma_default_vfs_seek; + pVFS->cb.onTell = ma_default_vfs_tell; + pVFS->cb.onInfo = ma_default_vfs_info; + ma_allocation_callbacks_init_copy(&pVFS->allocationCallbacks, pAllocationCallbacks); + + return MA_SUCCESS; +} + + +MA_API ma_result ma_vfs_or_default_open(ma_vfs* pVFS, const char* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + if (pVFS != NULL) { + return ma_vfs_open(pVFS, pFilePath, openMode, pFile); + } else { + return ma_default_vfs_open(pVFS, pFilePath, openMode, pFile); + } +} + +MA_API ma_result ma_vfs_or_default_open_w(ma_vfs* pVFS, const wchar_t* pFilePath, ma_uint32 openMode, ma_vfs_file* pFile) +{ + if (pVFS != NULL) { + return ma_vfs_open_w(pVFS, pFilePath, openMode, pFile); + } else { + return ma_default_vfs_open_w(pVFS, pFilePath, openMode, pFile); + } +} + +MA_API ma_result ma_vfs_or_default_close(ma_vfs* pVFS, ma_vfs_file file) +{ + if (pVFS != NULL) { + return ma_vfs_close(pVFS, file); + } else { + return ma_default_vfs_close(pVFS, file); + } +} + +MA_API ma_result ma_vfs_or_default_read(ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t sizeInBytes, size_t* pBytesRead) +{ + if (pVFS != NULL) { + return ma_vfs_read(pVFS, file, pDst, sizeInBytes, pBytesRead); + } else { + return ma_default_vfs_read(pVFS, file, pDst, sizeInBytes, pBytesRead); + } +} + +MA_API ma_result ma_vfs_or_default_write(ma_vfs* pVFS, ma_vfs_file file, const void* pSrc, size_t sizeInBytes, size_t* pBytesWritten) +{ + if (pVFS != NULL) { + return ma_vfs_write(pVFS, file, pSrc, sizeInBytes, pBytesWritten); + } else { + return ma_default_vfs_write(pVFS, file, pSrc, sizeInBytes, pBytesWritten); + } +} + +MA_API ma_result ma_vfs_or_default_seek(ma_vfs* pVFS, ma_vfs_file file, ma_int64 offset, ma_seek_origin origin) +{ + if (pVFS != NULL) { + return ma_vfs_seek(pVFS, file, offset, origin); + } else { + return ma_default_vfs_seek(pVFS, file, offset, origin); + } +} + +MA_API ma_result ma_vfs_or_default_tell(ma_vfs* pVFS, ma_vfs_file file, ma_int64* pCursor) +{ + if (pVFS != NULL) { + return ma_vfs_tell(pVFS, file, pCursor); + } else { + return ma_default_vfs_tell(pVFS, file, pCursor); + } +} + +MA_API ma_result ma_vfs_or_default_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo) +{ + if (pVFS != NULL) { + return ma_vfs_info(pVFS, file, pInfo); + } else { + return ma_default_vfs_info(pVFS, file, pInfo); + } +} + + + +/************************************************************************************************************************************************************** + +Decoding and Encoding Headers. These are auto-generated from a tool. + +**************************************************************************************************************************************************************/ +#if !defined(MA_NO_WAV) && (!defined(MA_NO_DECODING) || !defined(MA_NO_ENCODING)) +/* dr_wav_h begin */ +#ifndef dr_wav_h +#define dr_wav_h +#ifdef __cplusplus +extern "C" { +#endif +#define DRWAV_STRINGIFY(x) #x +#define DRWAV_XSTRINGIFY(x) DRWAV_STRINGIFY(x) +#define DRWAV_VERSION_MAJOR 0 +#define DRWAV_VERSION_MINOR 12 +#define DRWAV_VERSION_REVISION 19 +#define DRWAV_VERSION_STRING DRWAV_XSTRINGIFY(DRWAV_VERSION_MAJOR) "." DRWAV_XSTRINGIFY(DRWAV_VERSION_MINOR) "." DRWAV_XSTRINGIFY(DRWAV_VERSION_REVISION) +#include +typedef signed char drwav_int8; +typedef unsigned char drwav_uint8; +typedef signed short drwav_int16; +typedef unsigned short drwav_uint16; +typedef signed int drwav_int32; +typedef unsigned int drwav_uint32; +#if defined(_MSC_VER) + typedef signed __int64 drwav_int64; + typedef unsigned __int64 drwav_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drwav_int64; + typedef unsigned long long drwav_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + typedef drwav_uint64 drwav_uintptr; +#else + typedef drwav_uint32 drwav_uintptr; +#endif +typedef drwav_uint8 drwav_bool8; +typedef drwav_uint32 drwav_bool32; +#define DRWAV_TRUE 1 +#define DRWAV_FALSE 0 +#if !defined(DRWAV_API) + #if defined(DRWAV_DLL) + #if defined(_WIN32) + #define DRWAV_DLL_IMPORT __declspec(dllimport) + #define DRWAV_DLL_EXPORT __declspec(dllexport) + #define DRWAV_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRWAV_DLL_IMPORT __attribute__((visibility("default"))) + #define DRWAV_DLL_EXPORT __attribute__((visibility("default"))) + #define DRWAV_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRWAV_DLL_IMPORT + #define DRWAV_DLL_EXPORT + #define DRWAV_DLL_PRIVATE static + #endif + #endif + #if defined(DR_WAV_IMPLEMENTATION) || defined(DRWAV_IMPLEMENTATION) + #define DRWAV_API DRWAV_DLL_EXPORT + #else + #define DRWAV_API DRWAV_DLL_IMPORT + #endif + #define DRWAV_PRIVATE DRWAV_DLL_PRIVATE + #else + #define DRWAV_API extern + #define DRWAV_PRIVATE static + #endif +#endif +typedef drwav_int32 drwav_result; +#define DRWAV_SUCCESS 0 +#define DRWAV_ERROR -1 +#define DRWAV_INVALID_ARGS -2 +#define DRWAV_INVALID_OPERATION -3 +#define DRWAV_OUT_OF_MEMORY -4 +#define DRWAV_OUT_OF_RANGE -5 +#define DRWAV_ACCESS_DENIED -6 +#define DRWAV_DOES_NOT_EXIST -7 +#define DRWAV_ALREADY_EXISTS -8 +#define DRWAV_TOO_MANY_OPEN_FILES -9 +#define DRWAV_INVALID_FILE -10 +#define DRWAV_TOO_BIG -11 +#define DRWAV_PATH_TOO_LONG -12 +#define DRWAV_NAME_TOO_LONG -13 +#define DRWAV_NOT_DIRECTORY -14 +#define DRWAV_IS_DIRECTORY -15 +#define DRWAV_DIRECTORY_NOT_EMPTY -16 +#define DRWAV_END_OF_FILE -17 +#define DRWAV_NO_SPACE -18 +#define DRWAV_BUSY -19 +#define DRWAV_IO_ERROR -20 +#define DRWAV_INTERRUPT -21 +#define DRWAV_UNAVAILABLE -22 +#define DRWAV_ALREADY_IN_USE -23 +#define DRWAV_BAD_ADDRESS -24 +#define DRWAV_BAD_SEEK -25 +#define DRWAV_BAD_PIPE -26 +#define DRWAV_DEADLOCK -27 +#define DRWAV_TOO_MANY_LINKS -28 +#define DRWAV_NOT_IMPLEMENTED -29 +#define DRWAV_NO_MESSAGE -30 +#define DRWAV_BAD_MESSAGE -31 +#define DRWAV_NO_DATA_AVAILABLE -32 +#define DRWAV_INVALID_DATA -33 +#define DRWAV_TIMEOUT -34 +#define DRWAV_NO_NETWORK -35 +#define DRWAV_NOT_UNIQUE -36 +#define DRWAV_NOT_SOCKET -37 +#define DRWAV_NO_ADDRESS -38 +#define DRWAV_BAD_PROTOCOL -39 +#define DRWAV_PROTOCOL_UNAVAILABLE -40 +#define DRWAV_PROTOCOL_NOT_SUPPORTED -41 +#define DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRWAV_SOCKET_NOT_SUPPORTED -44 +#define DRWAV_CONNECTION_RESET -45 +#define DRWAV_ALREADY_CONNECTED -46 +#define DRWAV_NOT_CONNECTED -47 +#define DRWAV_CONNECTION_REFUSED -48 +#define DRWAV_NO_HOST -49 +#define DRWAV_IN_PROGRESS -50 +#define DRWAV_CANCELLED -51 +#define DRWAV_MEMORY_ALREADY_MAPPED -52 +#define DRWAV_AT_END -53 +#define DR_WAVE_FORMAT_PCM 0x1 +#define DR_WAVE_FORMAT_ADPCM 0x2 +#define DR_WAVE_FORMAT_IEEE_FLOAT 0x3 +#define DR_WAVE_FORMAT_ALAW 0x6 +#define DR_WAVE_FORMAT_MULAW 0x7 +#define DR_WAVE_FORMAT_DVI_ADPCM 0x11 +#define DR_WAVE_FORMAT_EXTENSIBLE 0xFFFE +#ifndef DRWAV_MAX_SMPL_LOOPS +#define DRWAV_MAX_SMPL_LOOPS 1 +#endif +#define DRWAV_SEQUENTIAL 0x00000001 +DRWAV_API void drwav_version(drwav_uint32* pMajor, drwav_uint32* pMinor, drwav_uint32* pRevision); +DRWAV_API const char* drwav_version_string(void); +typedef enum +{ + drwav_seek_origin_start, + drwav_seek_origin_current +} drwav_seek_origin; +typedef enum +{ + drwav_container_riff, + drwav_container_w64, + drwav_container_rf64 +} drwav_container; +typedef struct +{ + union + { + drwav_uint8 fourcc[4]; + drwav_uint8 guid[16]; + } id; + drwav_uint64 sizeInBytes; + unsigned int paddingSize; +} drwav_chunk_header; +typedef struct +{ + drwav_uint16 formatTag; + drwav_uint16 channels; + drwav_uint32 sampleRate; + drwav_uint32 avgBytesPerSec; + drwav_uint16 blockAlign; + drwav_uint16 bitsPerSample; + drwav_uint16 extendedSize; + drwav_uint16 validBitsPerSample; + drwav_uint32 channelMask; + drwav_uint8 subFormat[16]; +} drwav_fmt; +DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT); +typedef size_t (* drwav_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); +typedef size_t (* drwav_write_proc)(void* pUserData, const void* pData, size_t bytesToWrite); +typedef drwav_bool32 (* drwav_seek_proc)(void* pUserData, int offset, drwav_seek_origin origin); +typedef drwav_uint64 (* drwav_chunk_proc)(void* pChunkUserData, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pReadSeekUserData, const drwav_chunk_header* pChunkHeader, drwav_container container, const drwav_fmt* pFMT); +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drwav_allocation_callbacks; +typedef struct +{ + const drwav_uint8* data; + size_t dataSize; + size_t currentReadPos; +} drwav__memory_stream; +typedef struct +{ + void** ppData; + size_t* pDataSize; + size_t dataSize; + size_t dataCapacity; + size_t currentWritePos; +} drwav__memory_stream_write; +typedef struct +{ + drwav_container container; + drwav_uint32 format; + drwav_uint32 channels; + drwav_uint32 sampleRate; + drwav_uint32 bitsPerSample; +} drwav_data_format; +typedef struct +{ + drwav_uint32 cuePointId; + drwav_uint32 type; + drwav_uint32 start; + drwav_uint32 end; + drwav_uint32 fraction; + drwav_uint32 playCount; +} drwav_smpl_loop; + typedef struct +{ + drwav_uint32 manufacturer; + drwav_uint32 product; + drwav_uint32 samplePeriod; + drwav_uint32 midiUnityNotes; + drwav_uint32 midiPitchFraction; + drwav_uint32 smpteFormat; + drwav_uint32 smpteOffset; + drwav_uint32 numSampleLoops; + drwav_uint32 samplerData; + drwav_smpl_loop loops[DRWAV_MAX_SMPL_LOOPS]; +} drwav_smpl; +typedef struct +{ + drwav_read_proc onRead; + drwav_write_proc onWrite; + drwav_seek_proc onSeek; + void* pUserData; + drwav_allocation_callbacks allocationCallbacks; + drwav_container container; + drwav_fmt fmt; + drwav_uint32 sampleRate; + drwav_uint16 channels; + drwav_uint16 bitsPerSample; + drwav_uint16 translatedFormatTag; + drwav_uint64 totalPCMFrameCount; + drwav_uint64 dataChunkDataSize; + drwav_uint64 dataChunkDataPos; + drwav_uint64 bytesRemaining; + drwav_uint64 dataChunkDataSizeTargetWrite; + drwav_bool32 isSequentialWrite; + drwav_smpl smpl; + drwav__memory_stream memoryStream; + drwav__memory_stream_write memoryStreamWrite; + struct + { + drwav_uint64 iCurrentPCMFrame; + } compressed; + struct + { + drwav_uint32 bytesRemainingInBlock; + drwav_uint16 predictor[2]; + drwav_int32 delta[2]; + drwav_int32 cachedFrames[4]; + drwav_uint32 cachedFrameCount; + drwav_int32 prevFrames[2][2]; + } msadpcm; + struct + { + drwav_uint32 bytesRemainingInBlock; + drwav_int32 predictor[2]; + drwav_int32 stepIndex[2]; + drwav_int32 cachedFrames[16]; + drwav_uint32 cachedFrameCount; + } ima; +} drwav; +DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalSampleCount); +DRWAV_API drwav_result drwav_uninit(drwav* pWav); +DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); +DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex); +DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData); +DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); +DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); +DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); +#ifndef DR_WAV_NO_CONVERSION_API +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); +DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount); +DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount); +DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount); +DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); +DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount); +DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount); +DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount); +DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); +DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount); +DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount); +DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount); +DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); +DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); +#endif +#ifndef DR_WAV_NO_STDIO +DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); +#endif +DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); +#ifndef DR_WAV_NO_CONVERSION_API +DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +#ifndef DR_WAV_NO_STDIO +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +#endif +DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +#endif +DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks); +DRWAV_API drwav_uint16 drwav_bytes_to_u16(const drwav_uint8* data); +DRWAV_API drwav_int16 drwav_bytes_to_s16(const drwav_uint8* data); +DRWAV_API drwav_uint32 drwav_bytes_to_u32(const drwav_uint8* data); +DRWAV_API drwav_int32 drwav_bytes_to_s32(const drwav_uint8* data); +DRWAV_API drwav_uint64 drwav_bytes_to_u64(const drwav_uint8* data); +DRWAV_API drwav_int64 drwav_bytes_to_s64(const drwav_uint8* data); +DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]); +DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b); +#ifdef __cplusplus +} +#endif +#endif +/* dr_wav_h end */ +#endif /* MA_NO_WAV */ + +#if !defined(MA_NO_FLAC) && !defined(MA_NO_DECODING) +/* dr_flac_h begin */ +#ifndef dr_flac_h +#define dr_flac_h +#ifdef __cplusplus +extern "C" { +#endif +#define DRFLAC_STRINGIFY(x) #x +#define DRFLAC_XSTRINGIFY(x) DRFLAC_STRINGIFY(x) +#define DRFLAC_VERSION_MAJOR 0 +#define DRFLAC_VERSION_MINOR 12 +#define DRFLAC_VERSION_REVISION 29 +#define DRFLAC_VERSION_STRING DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MAJOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MINOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_REVISION) +#include +typedef signed char drflac_int8; +typedef unsigned char drflac_uint8; +typedef signed short drflac_int16; +typedef unsigned short drflac_uint16; +typedef signed int drflac_int32; +typedef unsigned int drflac_uint32; +#if defined(_MSC_VER) + typedef signed __int64 drflac_int64; + typedef unsigned __int64 drflac_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drflac_int64; + typedef unsigned long long drflac_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + typedef drflac_uint64 drflac_uintptr; +#else + typedef drflac_uint32 drflac_uintptr; +#endif +typedef drflac_uint8 drflac_bool8; +typedef drflac_uint32 drflac_bool32; +#define DRFLAC_TRUE 1 +#define DRFLAC_FALSE 0 +#if !defined(DRFLAC_API) + #if defined(DRFLAC_DLL) + #if defined(_WIN32) + #define DRFLAC_DLL_IMPORT __declspec(dllimport) + #define DRFLAC_DLL_EXPORT __declspec(dllexport) + #define DRFLAC_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRFLAC_DLL_IMPORT __attribute__((visibility("default"))) + #define DRFLAC_DLL_EXPORT __attribute__((visibility("default"))) + #define DRFLAC_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRFLAC_DLL_IMPORT + #define DRFLAC_DLL_EXPORT + #define DRFLAC_DLL_PRIVATE static + #endif + #endif + #if defined(DR_FLAC_IMPLEMENTATION) || defined(DRFLAC_IMPLEMENTATION) + #define DRFLAC_API DRFLAC_DLL_EXPORT + #else + #define DRFLAC_API DRFLAC_DLL_IMPORT + #endif + #define DRFLAC_PRIVATE DRFLAC_DLL_PRIVATE + #else + #define DRFLAC_API extern + #define DRFLAC_PRIVATE static + #endif +#endif +#if defined(_MSC_VER) && _MSC_VER >= 1700 + #define DRFLAC_DEPRECATED __declspec(deprecated) +#elif (defined(__GNUC__) && __GNUC__ >= 4) + #define DRFLAC_DEPRECATED __attribute__((deprecated)) +#elif defined(__has_feature) + #if __has_feature(attribute_deprecated) + #define DRFLAC_DEPRECATED __attribute__((deprecated)) + #else + #define DRFLAC_DEPRECATED + #endif +#else + #define DRFLAC_DEPRECATED +#endif +DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision); +DRFLAC_API const char* drflac_version_string(void); +#ifndef DR_FLAC_BUFFER_SIZE +#define DR_FLAC_BUFFER_SIZE 4096 +#endif +#if defined(_WIN64) || defined(_LP64) || defined(__LP64__) +#define DRFLAC_64BIT +#endif +#ifdef DRFLAC_64BIT +typedef drflac_uint64 drflac_cache_t; +#else +typedef drflac_uint32 drflac_cache_t; +#endif +#define DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO 0 +#define DRFLAC_METADATA_BLOCK_TYPE_PADDING 1 +#define DRFLAC_METADATA_BLOCK_TYPE_APPLICATION 2 +#define DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE 3 +#define DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT 4 +#define DRFLAC_METADATA_BLOCK_TYPE_CUESHEET 5 +#define DRFLAC_METADATA_BLOCK_TYPE_PICTURE 6 +#define DRFLAC_METADATA_BLOCK_TYPE_INVALID 127 +#define DRFLAC_PICTURE_TYPE_OTHER 0 +#define DRFLAC_PICTURE_TYPE_FILE_ICON 1 +#define DRFLAC_PICTURE_TYPE_OTHER_FILE_ICON 2 +#define DRFLAC_PICTURE_TYPE_COVER_FRONT 3 +#define DRFLAC_PICTURE_TYPE_COVER_BACK 4 +#define DRFLAC_PICTURE_TYPE_LEAFLET_PAGE 5 +#define DRFLAC_PICTURE_TYPE_MEDIA 6 +#define DRFLAC_PICTURE_TYPE_LEAD_ARTIST 7 +#define DRFLAC_PICTURE_TYPE_ARTIST 8 +#define DRFLAC_PICTURE_TYPE_CONDUCTOR 9 +#define DRFLAC_PICTURE_TYPE_BAND 10 +#define DRFLAC_PICTURE_TYPE_COMPOSER 11 +#define DRFLAC_PICTURE_TYPE_LYRICIST 12 +#define DRFLAC_PICTURE_TYPE_RECORDING_LOCATION 13 +#define DRFLAC_PICTURE_TYPE_DURING_RECORDING 14 +#define DRFLAC_PICTURE_TYPE_DURING_PERFORMANCE 15 +#define DRFLAC_PICTURE_TYPE_SCREEN_CAPTURE 16 +#define DRFLAC_PICTURE_TYPE_BRIGHT_COLORED_FISH 17 +#define DRFLAC_PICTURE_TYPE_ILLUSTRATION 18 +#define DRFLAC_PICTURE_TYPE_BAND_LOGOTYPE 19 +#define DRFLAC_PICTURE_TYPE_PUBLISHER_LOGOTYPE 20 +typedef enum +{ + drflac_container_native, + drflac_container_ogg, + drflac_container_unknown +} drflac_container; +typedef enum +{ + drflac_seek_origin_start, + drflac_seek_origin_current +} drflac_seek_origin; +#pragma pack(2) +typedef struct +{ + drflac_uint64 firstPCMFrame; + drflac_uint64 flacFrameOffset; + drflac_uint16 pcmFrameCount; +} drflac_seekpoint; +#pragma pack() +typedef struct +{ + drflac_uint16 minBlockSizeInPCMFrames; + drflac_uint16 maxBlockSizeInPCMFrames; + drflac_uint32 minFrameSizeInPCMFrames; + drflac_uint32 maxFrameSizeInPCMFrames; + drflac_uint32 sampleRate; + drflac_uint8 channels; + drflac_uint8 bitsPerSample; + drflac_uint64 totalPCMFrameCount; + drflac_uint8 md5[16]; +} drflac_streaminfo; +typedef struct +{ + drflac_uint32 type; + const void* pRawData; + drflac_uint32 rawDataSize; + union + { + drflac_streaminfo streaminfo; + struct + { + int unused; + } padding; + struct + { + drflac_uint32 id; + const void* pData; + drflac_uint32 dataSize; + } application; + struct + { + drflac_uint32 seekpointCount; + const drflac_seekpoint* pSeekpoints; + } seektable; + struct + { + drflac_uint32 vendorLength; + const char* vendor; + drflac_uint32 commentCount; + const void* pComments; + } vorbis_comment; + struct + { + char catalog[128]; + drflac_uint64 leadInSampleCount; + drflac_bool32 isCD; + drflac_uint8 trackCount; + const void* pTrackData; + } cuesheet; + struct + { + drflac_uint32 type; + drflac_uint32 mimeLength; + const char* mime; + drflac_uint32 descriptionLength; + const char* description; + drflac_uint32 width; + drflac_uint32 height; + drflac_uint32 colorDepth; + drflac_uint32 indexColorCount; + drflac_uint32 pictureDataSize; + const drflac_uint8* pPictureData; + } picture; + } data; +} drflac_metadata; +typedef size_t (* drflac_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); +typedef drflac_bool32 (* drflac_seek_proc)(void* pUserData, int offset, drflac_seek_origin origin); +typedef void (* drflac_meta_proc)(void* pUserData, drflac_metadata* pMetadata); +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drflac_allocation_callbacks; +typedef struct +{ + const drflac_uint8* data; + size_t dataSize; + size_t currentReadPos; +} drflac__memory_stream; +typedef struct +{ + drflac_read_proc onRead; + drflac_seek_proc onSeek; + void* pUserData; + size_t unalignedByteCount; + drflac_cache_t unalignedCache; + drflac_uint32 nextL2Line; + drflac_uint32 consumedBits; + drflac_cache_t cacheL2[DR_FLAC_BUFFER_SIZE/sizeof(drflac_cache_t)]; + drflac_cache_t cache; + drflac_uint16 crc16; + drflac_cache_t crc16Cache; + drflac_uint32 crc16CacheIgnoredBytes; +} drflac_bs; +typedef struct +{ + drflac_uint8 subframeType; + drflac_uint8 wastedBitsPerSample; + drflac_uint8 lpcOrder; + drflac_int32* pSamplesS32; +} drflac_subframe; +typedef struct +{ + drflac_uint64 pcmFrameNumber; + drflac_uint32 flacFrameNumber; + drflac_uint32 sampleRate; + drflac_uint16 blockSizeInPCMFrames; + drflac_uint8 channelAssignment; + drflac_uint8 bitsPerSample; + drflac_uint8 crc8; +} drflac_frame_header; +typedef struct +{ + drflac_frame_header header; + drflac_uint32 pcmFramesRemaining; + drflac_subframe subframes[8]; +} drflac_frame; +typedef struct +{ + drflac_meta_proc onMeta; + void* pUserDataMD; + drflac_allocation_callbacks allocationCallbacks; + drflac_uint32 sampleRate; + drflac_uint8 channels; + drflac_uint8 bitsPerSample; + drflac_uint16 maxBlockSizeInPCMFrames; + drflac_uint64 totalPCMFrameCount; + drflac_container container; + drflac_uint32 seekpointCount; + drflac_frame currentFLACFrame; + drflac_uint64 currentPCMFrame; + drflac_uint64 firstFLACFramePosInBytes; + drflac__memory_stream memoryStream; + drflac_int32* pDecodedSamples; + drflac_seekpoint* pSeekpoints; + void* _oggbs; + drflac_bool32 _noSeekTableSeek : 1; + drflac_bool32 _noBinarySearchSeek : 1; + drflac_bool32 _noBruteForceSeek : 1; + drflac_bs bs; + drflac_uint8 pExtraData[1]; +} drflac; +DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API void drflac_close(drflac* pFlac); +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut); +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut); +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut); +DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex); +#ifndef DR_FLAC_NO_STDIO +DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +#endif +DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +#ifndef DR_FLAC_NO_STDIO +DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +#endif +DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks); +typedef struct +{ + drflac_uint32 countRemaining; + const char* pRunningData; +} drflac_vorbis_comment_iterator; +DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments); +DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut); +typedef struct +{ + drflac_uint32 countRemaining; + const char* pRunningData; +} drflac_cuesheet_track_iterator; +#pragma pack(4) +typedef struct +{ + drflac_uint64 offset; + drflac_uint8 index; + drflac_uint8 reserved[3]; +} drflac_cuesheet_track_index; +#pragma pack() +typedef struct +{ + drflac_uint64 offset; + drflac_uint8 trackNumber; + char ISRC[12]; + drflac_bool8 isAudio; + drflac_bool8 preEmphasis; + drflac_uint8 indexCount; + const drflac_cuesheet_track_index* pIndexPoints; +} drflac_cuesheet_track; +DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData); +DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack); +#ifdef __cplusplus +} +#endif +#endif +/* dr_flac_h end */ +#endif /* MA_NO_FLAC */ + +#if !defined(MA_NO_MP3) && !defined(MA_NO_DECODING) +/* dr_mp3_h begin */ +#ifndef dr_mp3_h +#define dr_mp3_h +#ifdef __cplusplus +extern "C" { +#endif +#define DRMP3_STRINGIFY(x) #x +#define DRMP3_XSTRINGIFY(x) DRMP3_STRINGIFY(x) +#define DRMP3_VERSION_MAJOR 0 +#define DRMP3_VERSION_MINOR 6 +#define DRMP3_VERSION_REVISION 27 +#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION) +#include +typedef signed char drmp3_int8; +typedef unsigned char drmp3_uint8; +typedef signed short drmp3_int16; +typedef unsigned short drmp3_uint16; +typedef signed int drmp3_int32; +typedef unsigned int drmp3_uint32; +#if defined(_MSC_VER) + typedef signed __int64 drmp3_int64; + typedef unsigned __int64 drmp3_uint64; +#else + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" + #endif + #endif + typedef signed long long drmp3_int64; + typedef unsigned long long drmp3_uint64; + #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop + #endif +#endif +#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + typedef drmp3_uint64 drmp3_uintptr; +#else + typedef drmp3_uint32 drmp3_uintptr; +#endif +typedef drmp3_uint8 drmp3_bool8; +typedef drmp3_uint32 drmp3_bool32; +#define DRMP3_TRUE 1 +#define DRMP3_FALSE 0 +#if !defined(DRMP3_API) + #if defined(DRMP3_DLL) + #if defined(_WIN32) + #define DRMP3_DLL_IMPORT __declspec(dllimport) + #define DRMP3_DLL_EXPORT __declspec(dllexport) + #define DRMP3_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define DRMP3_DLL_IMPORT __attribute__((visibility("default"))) + #define DRMP3_DLL_EXPORT __attribute__((visibility("default"))) + #define DRMP3_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define DRMP3_DLL_IMPORT + #define DRMP3_DLL_EXPORT + #define DRMP3_DLL_PRIVATE static + #endif + #endif + #if defined(DR_MP3_IMPLEMENTATION) || defined(DRMP3_IMPLEMENTATION) + #define DRMP3_API DRMP3_DLL_EXPORT + #else + #define DRMP3_API DRMP3_DLL_IMPORT + #endif + #define DRMP3_PRIVATE DRMP3_DLL_PRIVATE + #else + #define DRMP3_API extern + #define DRMP3_PRIVATE static + #endif +#endif +typedef drmp3_int32 drmp3_result; +#define DRMP3_SUCCESS 0 +#define DRMP3_ERROR -1 +#define DRMP3_INVALID_ARGS -2 +#define DRMP3_INVALID_OPERATION -3 +#define DRMP3_OUT_OF_MEMORY -4 +#define DRMP3_OUT_OF_RANGE -5 +#define DRMP3_ACCESS_DENIED -6 +#define DRMP3_DOES_NOT_EXIST -7 +#define DRMP3_ALREADY_EXISTS -8 +#define DRMP3_TOO_MANY_OPEN_FILES -9 +#define DRMP3_INVALID_FILE -10 +#define DRMP3_TOO_BIG -11 +#define DRMP3_PATH_TOO_LONG -12 +#define DRMP3_NAME_TOO_LONG -13 +#define DRMP3_NOT_DIRECTORY -14 +#define DRMP3_IS_DIRECTORY -15 +#define DRMP3_DIRECTORY_NOT_EMPTY -16 +#define DRMP3_END_OF_FILE -17 +#define DRMP3_NO_SPACE -18 +#define DRMP3_BUSY -19 +#define DRMP3_IO_ERROR -20 +#define DRMP3_INTERRUPT -21 +#define DRMP3_UNAVAILABLE -22 +#define DRMP3_ALREADY_IN_USE -23 +#define DRMP3_BAD_ADDRESS -24 +#define DRMP3_BAD_SEEK -25 +#define DRMP3_BAD_PIPE -26 +#define DRMP3_DEADLOCK -27 +#define DRMP3_TOO_MANY_LINKS -28 +#define DRMP3_NOT_IMPLEMENTED -29 +#define DRMP3_NO_MESSAGE -30 +#define DRMP3_BAD_MESSAGE -31 +#define DRMP3_NO_DATA_AVAILABLE -32 +#define DRMP3_INVALID_DATA -33 +#define DRMP3_TIMEOUT -34 +#define DRMP3_NO_NETWORK -35 +#define DRMP3_NOT_UNIQUE -36 +#define DRMP3_NOT_SOCKET -37 +#define DRMP3_NO_ADDRESS -38 +#define DRMP3_BAD_PROTOCOL -39 +#define DRMP3_PROTOCOL_UNAVAILABLE -40 +#define DRMP3_PROTOCOL_NOT_SUPPORTED -41 +#define DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRMP3_SOCKET_NOT_SUPPORTED -44 +#define DRMP3_CONNECTION_RESET -45 +#define DRMP3_ALREADY_CONNECTED -46 +#define DRMP3_NOT_CONNECTED -47 +#define DRMP3_CONNECTION_REFUSED -48 +#define DRMP3_NO_HOST -49 +#define DRMP3_IN_PROGRESS -50 +#define DRMP3_CANCELLED -51 +#define DRMP3_MEMORY_ALREADY_MAPPED -52 +#define DRMP3_AT_END -53 +#define DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME 1152 +#define DRMP3_MAX_SAMPLES_PER_FRAME (DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME*2) +#ifdef _MSC_VER + #define DRMP3_INLINE __forceinline +#elif defined(__GNUC__) + #if defined(__STRICT_ANSI__) + #define DRMP3_INLINE __inline__ __attribute__((always_inline)) + #else + #define DRMP3_INLINE inline __attribute__((always_inline)) + #endif +#elif defined(__WATCOMC__) + #define DRMP3_INLINE __inline +#else + #define DRMP3_INLINE +#endif +DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision); +DRMP3_API const char* drmp3_version_string(void); +typedef struct +{ + int frame_bytes, channels, hz, layer, bitrate_kbps; +} drmp3dec_frame_info; +typedef struct +{ + float mdct_overlap[2][9*32], qmf_state[15*2*32]; + int reserv, free_format_bytes; + drmp3_uint8 header[4], reserv_buf[511]; +} drmp3dec; +DRMP3_API void drmp3dec_init(drmp3dec *dec); +DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info); +DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples); +typedef enum +{ + drmp3_seek_origin_start, + drmp3_seek_origin_current +} drmp3_seek_origin; +typedef struct +{ + drmp3_uint64 seekPosInBytes; + drmp3_uint64 pcmFrameIndex; + drmp3_uint16 mp3FramesToDiscard; + drmp3_uint16 pcmFramesToDiscard; +} drmp3_seek_point; +typedef size_t (* drmp3_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); +typedef drmp3_bool32 (* drmp3_seek_proc)(void* pUserData, int offset, drmp3_seek_origin origin); +typedef struct +{ + void* pUserData; + void* (* onMalloc)(size_t sz, void* pUserData); + void* (* onRealloc)(void* p, size_t sz, void* pUserData); + void (* onFree)(void* p, void* pUserData); +} drmp3_allocation_callbacks; +typedef struct +{ + drmp3_uint32 channels; + drmp3_uint32 sampleRate; +} drmp3_config; +typedef struct +{ + drmp3dec decoder; + drmp3dec_frame_info frameInfo; + drmp3_uint32 channels; + drmp3_uint32 sampleRate; + drmp3_read_proc onRead; + drmp3_seek_proc onSeek; + void* pUserData; + drmp3_allocation_callbacks allocationCallbacks; + drmp3_uint32 mp3FrameChannels; + drmp3_uint32 mp3FrameSampleRate; + drmp3_uint32 pcmFramesConsumedInMP3Frame; + drmp3_uint32 pcmFramesRemainingInMP3Frame; + drmp3_uint8 pcmFrames[sizeof(float)*DRMP3_MAX_SAMPLES_PER_FRAME]; + drmp3_uint64 currentPCMFrame; + drmp3_uint64 streamCursor; + drmp3_seek_point* pSeekPoints; + drmp3_uint32 seekPointCount; + size_t dataSize; + size_t dataCapacity; + size_t dataConsumed; + drmp3_uint8* pData; + drmp3_bool32 atEnd : 1; + struct + { + const drmp3_uint8* pData; + size_t dataSize; + size_t currentReadPos; + } memory; +} drmp3; +DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks); +#ifndef DR_MP3_NO_STDIO +DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); +#endif +DRMP3_API void drmp3_uninit(drmp3* pMP3); +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut); +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut); +DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex); +DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3); +DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3); +DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount); +DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints); +DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints); +DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +#ifndef DR_MP3_NO_STDIO +DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +#endif +DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks); +DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks); +#ifdef __cplusplus +} +#endif +#endif +/* dr_mp3_h end */ +#endif /* MA_NO_MP3 */ + + +/************************************************************************************************************************************************************** + +Decoding + +**************************************************************************************************************************************************************/ +#ifndef MA_NO_DECODING + +static size_t ma_decoder_read_bytes(ma_decoder* pDecoder, void* pBufferOut, size_t bytesToRead) +{ + size_t bytesRead; + + MA_ASSERT(pDecoder != NULL); + MA_ASSERT(pBufferOut != NULL); + + bytesRead = pDecoder->onRead(pDecoder, pBufferOut, bytesToRead); + pDecoder->readPointerInBytes += bytesRead; + + return bytesRead; +} + +static ma_bool32 ma_decoder_seek_bytes(ma_decoder* pDecoder, int byteOffset, ma_seek_origin origin) +{ + ma_bool32 wasSuccessful; + + MA_ASSERT(pDecoder != NULL); + + wasSuccessful = pDecoder->onSeek(pDecoder, byteOffset, origin); + if (wasSuccessful) { + if (origin == ma_seek_origin_start) { + pDecoder->readPointerInBytes = (ma_uint64)byteOffset; + } else { + pDecoder->readPointerInBytes += byteOffset; + } + } + + return wasSuccessful; +} + + +MA_API ma_decoder_config ma_decoder_config_init(ma_format outputFormat, ma_uint32 outputChannels, ma_uint32 outputSampleRate) +{ + ma_decoder_config config; + MA_ZERO_OBJECT(&config); + config.format = outputFormat; + config.channels = ma_min(outputChannels, ma_countof(config.channelMap)); + config.sampleRate = outputSampleRate; + config.resampling.algorithm = ma_resample_algorithm_linear; + config.resampling.linear.lpfOrder = ma_min(MA_DEFAULT_RESAMPLER_LPF_ORDER, MA_MAX_FILTER_ORDER); + config.resampling.speex.quality = 3; + + /* Note that we are intentionally leaving the channel map empty here which will cause the default channel map to be used. */ + + return config; +} + +MA_API ma_decoder_config ma_decoder_config_init_copy(const ma_decoder_config* pConfig) +{ + ma_decoder_config config; + if (pConfig != NULL) { + config = *pConfig; + } else { + MA_ZERO_OBJECT(&config); + } + + return config; +} + +static ma_result ma_decoder__init_data_converter(ma_decoder* pDecoder, const ma_decoder_config* pConfig) +{ + ma_data_converter_config converterConfig; + + MA_ASSERT(pDecoder != NULL); + MA_ASSERT(pConfig != NULL); + + /* Make sure we're not asking for too many channels. */ + if (pConfig->channels > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + /* The internal channels should have already been validated at a higher level, but we'll do it again explicitly here for safety. */ + if (pDecoder->internalChannels > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + + /* Output format. */ + if (pConfig->format == ma_format_unknown) { + pDecoder->outputFormat = pDecoder->internalFormat; + } else { + pDecoder->outputFormat = pConfig->format; + } + + if (pConfig->channels == 0) { + pDecoder->outputChannels = pDecoder->internalChannels; + } else { + pDecoder->outputChannels = pConfig->channels; + } + + if (pConfig->sampleRate == 0) { + pDecoder->outputSampleRate = pDecoder->internalSampleRate; + } else { + pDecoder->outputSampleRate = pConfig->sampleRate; + } + + if (ma_channel_map_blank(pDecoder->outputChannels, pConfig->channelMap)) { + ma_get_standard_channel_map(ma_standard_channel_map_default, pDecoder->outputChannels, pDecoder->outputChannelMap); + } else { + MA_COPY_MEMORY(pDecoder->outputChannelMap, pConfig->channelMap, sizeof(pConfig->channelMap)); + } + + + converterConfig = ma_data_converter_config_init( + pDecoder->internalFormat, pDecoder->outputFormat, + pDecoder->internalChannels, pDecoder->outputChannels, + pDecoder->internalSampleRate, pDecoder->outputSampleRate + ); + ma_channel_map_copy(converterConfig.channelMapIn, pDecoder->internalChannelMap, pDecoder->internalChannels); + ma_channel_map_copy(converterConfig.channelMapOut, pDecoder->outputChannelMap, pDecoder->outputChannels); + converterConfig.channelMixMode = pConfig->channelMixMode; + converterConfig.ditherMode = pConfig->ditherMode; + converterConfig.resampling.allowDynamicSampleRate = MA_FALSE; /* Never allow dynamic sample rate conversion. Setting this to true will disable passthrough optimizations. */ + converterConfig.resampling.algorithm = pConfig->resampling.algorithm; + converterConfig.resampling.linear.lpfOrder = pConfig->resampling.linear.lpfOrder; + converterConfig.resampling.speex.quality = pConfig->resampling.speex.quality; + + return ma_data_converter_init(&converterConfig, &pDecoder->converter); +} + +/* WAV */ +#ifdef dr_wav_h +#define MA_HAS_WAV + +static size_t ma_decoder_internal_on_read__wav(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + ma_decoder* pDecoder = (ma_decoder*)pUserData; + MA_ASSERT(pDecoder != NULL); + + return ma_decoder_read_bytes(pDecoder, pBufferOut, bytesToRead); +} + +static drwav_bool32 ma_decoder_internal_on_seek__wav(void* pUserData, int offset, drwav_seek_origin origin) +{ + ma_decoder* pDecoder = (ma_decoder*)pUserData; + MA_ASSERT(pDecoder != NULL); + + return ma_decoder_seek_bytes(pDecoder, offset, (origin == drwav_seek_origin_start) ? ma_seek_origin_start : ma_seek_origin_current); +} + +static ma_uint64 ma_decoder_internal_on_read_pcm_frames__wav(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) +{ + drwav* pWav; + + MA_ASSERT(pDecoder != NULL); + MA_ASSERT(pFramesOut != NULL); + + pWav = (drwav*)pDecoder->pInternalDecoder; + MA_ASSERT(pWav != NULL); + + switch (pDecoder->internalFormat) { + case ma_format_s16: return drwav_read_pcm_frames_s16(pWav, frameCount, (drwav_int16*)pFramesOut); + case ma_format_s32: return drwav_read_pcm_frames_s32(pWav, frameCount, (drwav_int32*)pFramesOut); + case ma_format_f32: return drwav_read_pcm_frames_f32(pWav, frameCount, (float*)pFramesOut); + default: break; + } + + /* Should never get here. If we do, it means the internal format was not set correctly at initialization time. */ + MA_ASSERT(MA_FALSE); + return 0; +} + +static ma_result ma_decoder_internal_on_seek_to_pcm_frame__wav(ma_decoder* pDecoder, ma_uint64 frameIndex) +{ + drwav* pWav; + drwav_bool32 result; + + pWav = (drwav*)pDecoder->pInternalDecoder; + MA_ASSERT(pWav != NULL); + + result = drwav_seek_to_pcm_frame(pWav, frameIndex); + if (result) { + return MA_SUCCESS; + } else { + return MA_ERROR; + } +} + +static ma_result ma_decoder_internal_on_uninit__wav(ma_decoder* pDecoder) +{ + drwav_uninit((drwav*)pDecoder->pInternalDecoder); + ma__free_from_callbacks(pDecoder->pInternalDecoder, &pDecoder->allocationCallbacks); + return MA_SUCCESS; +} + +static ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__wav(ma_decoder* pDecoder) +{ + return ((drwav*)pDecoder->pInternalDecoder)->totalPCMFrameCount; +} + +static ma_result ma_decoder_init_wav__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + drwav* pWav; + drwav_allocation_callbacks allocationCallbacks; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + (void)pConfig; + + pWav = (drwav*)ma__malloc_from_callbacks(sizeof(*pWav), &pDecoder->allocationCallbacks); + if (pWav == NULL) { + return MA_OUT_OF_MEMORY; + } + + allocationCallbacks.pUserData = pDecoder->allocationCallbacks.pUserData; + allocationCallbacks.onMalloc = pDecoder->allocationCallbacks.onMalloc; + allocationCallbacks.onRealloc = pDecoder->allocationCallbacks.onRealloc; + allocationCallbacks.onFree = pDecoder->allocationCallbacks.onFree; + + /* Try opening the decoder first. */ + if (!drwav_init(pWav, ma_decoder_internal_on_read__wav, ma_decoder_internal_on_seek__wav, pDecoder, &allocationCallbacks)) { + ma__free_from_callbacks(pWav, &pDecoder->allocationCallbacks); + return MA_ERROR; + } + + /* If we get here it means we successfully initialized the WAV decoder. We can now initialize the rest of the ma_decoder. */ + pDecoder->onReadPCMFrames = ma_decoder_internal_on_read_pcm_frames__wav; + pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__wav; + pDecoder->onUninit = ma_decoder_internal_on_uninit__wav; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__wav; + pDecoder->pInternalDecoder = pWav; + + /* Try to be as optimal as possible for the internal format. If miniaudio does not support a format we will fall back to f32. */ + pDecoder->internalFormat = ma_format_unknown; + switch (pWav->translatedFormatTag) { + case DR_WAVE_FORMAT_PCM: + { + if (pWav->bitsPerSample == 8) { + pDecoder->internalFormat = ma_format_s16; + } else if (pWav->bitsPerSample == 16) { + pDecoder->internalFormat = ma_format_s16; + } else if (pWav->bitsPerSample == 32) { + pDecoder->internalFormat = ma_format_s32; + } + } break; + + case DR_WAVE_FORMAT_IEEE_FLOAT: + { + if (pWav->bitsPerSample == 32) { + pDecoder->internalFormat = ma_format_f32; + } + } break; + + case DR_WAVE_FORMAT_ALAW: + case DR_WAVE_FORMAT_MULAW: + case DR_WAVE_FORMAT_ADPCM: + case DR_WAVE_FORMAT_DVI_ADPCM: + { + pDecoder->internalFormat = ma_format_s16; + } break; + } + + if (pDecoder->internalFormat == ma_format_unknown) { + pDecoder->internalFormat = ma_format_f32; + } + + pDecoder->internalChannels = pWav->channels; + pDecoder->internalSampleRate = pWav->sampleRate; + ma_get_standard_channel_map(ma_standard_channel_map_microsoft, pDecoder->internalChannels, pDecoder->internalChannelMap); + + return MA_SUCCESS; +} +#endif /* dr_wav_h */ + +/* FLAC */ +#ifdef dr_flac_h +#define MA_HAS_FLAC + +static size_t ma_decoder_internal_on_read__flac(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + ma_decoder* pDecoder = (ma_decoder*)pUserData; + MA_ASSERT(pDecoder != NULL); + + return ma_decoder_read_bytes(pDecoder, pBufferOut, bytesToRead); +} + +static drflac_bool32 ma_decoder_internal_on_seek__flac(void* pUserData, int offset, drflac_seek_origin origin) +{ + ma_decoder* pDecoder = (ma_decoder*)pUserData; + MA_ASSERT(pDecoder != NULL); + + return ma_decoder_seek_bytes(pDecoder, offset, (origin == drflac_seek_origin_start) ? ma_seek_origin_start : ma_seek_origin_current); +} + +static ma_uint64 ma_decoder_internal_on_read_pcm_frames__flac(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) +{ + drflac* pFlac; + + MA_ASSERT(pDecoder != NULL); + MA_ASSERT(pFramesOut != NULL); + + pFlac = (drflac*)pDecoder->pInternalDecoder; + MA_ASSERT(pFlac != NULL); + + switch (pDecoder->internalFormat) { + case ma_format_s16: return drflac_read_pcm_frames_s16(pFlac, frameCount, (drflac_int16*)pFramesOut); + case ma_format_s32: return drflac_read_pcm_frames_s32(pFlac, frameCount, (drflac_int32*)pFramesOut); + case ma_format_f32: return drflac_read_pcm_frames_f32(pFlac, frameCount, (float*)pFramesOut); + default: break; + } + + /* Should never get here. If we do, it means the internal format was not set correctly at initialization time. */ + MA_ASSERT(MA_FALSE); + return 0; +} + +static ma_result ma_decoder_internal_on_seek_to_pcm_frame__flac(ma_decoder* pDecoder, ma_uint64 frameIndex) +{ + drflac* pFlac; + drflac_bool32 result; + + pFlac = (drflac*)pDecoder->pInternalDecoder; + MA_ASSERT(pFlac != NULL); + + result = drflac_seek_to_pcm_frame(pFlac, frameIndex); + if (result) { + return MA_SUCCESS; + } else { + return MA_ERROR; + } +} + +static ma_result ma_decoder_internal_on_uninit__flac(ma_decoder* pDecoder) +{ + drflac_close((drflac*)pDecoder->pInternalDecoder); + return MA_SUCCESS; +} + +static ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__flac(ma_decoder* pDecoder) +{ + return ((drflac*)pDecoder->pInternalDecoder)->totalPCMFrameCount; +} + +static ma_result ma_decoder_init_flac__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + drflac* pFlac; + drflac_allocation_callbacks allocationCallbacks; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + allocationCallbacks.pUserData = pDecoder->allocationCallbacks.pUserData; + allocationCallbacks.onMalloc = pDecoder->allocationCallbacks.onMalloc; + allocationCallbacks.onRealloc = pDecoder->allocationCallbacks.onRealloc; + allocationCallbacks.onFree = pDecoder->allocationCallbacks.onFree; + + /* Try opening the decoder first. */ + pFlac = drflac_open(ma_decoder_internal_on_read__flac, ma_decoder_internal_on_seek__flac, pDecoder, &allocationCallbacks); + if (pFlac == NULL) { + return MA_ERROR; + } + + /* If we get here it means we successfully initialized the FLAC decoder. We can now initialize the rest of the ma_decoder. */ + pDecoder->onReadPCMFrames = ma_decoder_internal_on_read_pcm_frames__flac; + pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__flac; + pDecoder->onUninit = ma_decoder_internal_on_uninit__flac; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__flac; + pDecoder->pInternalDecoder = pFlac; + + /* + dr_flac supports reading as s32, s16 and f32. Try to do a one-to-one mapping if possible, but fall back to s32 if not. s32 is the "native" FLAC format + since it's the only one that's truly lossless. If the internal bits per sample is <= 16 we will decode to ma_format_s16 to keep it more efficient. + */ + if (pConfig->format == ma_format_unknown) { + if (pFlac->bitsPerSample <= 16) { + pDecoder->internalFormat = ma_format_s16; + } else { + pDecoder->internalFormat = ma_format_s32; + } + } else { + if (pConfig->format == ma_format_s16 || pConfig->format == ma_format_f32) { + pDecoder->internalFormat = pConfig->format; + } else { + pDecoder->internalFormat = ma_format_s32; /* s32 as the baseline to ensure no loss of precision for 24-bit encoded files. */ + } + } + + pDecoder->internalChannels = pFlac->channels; + pDecoder->internalSampleRate = pFlac->sampleRate; + ma_get_standard_channel_map(ma_standard_channel_map_flac, pDecoder->internalChannels, pDecoder->internalChannelMap); + + return MA_SUCCESS; +} +#endif /* dr_flac_h */ + +/* MP3 */ +#ifdef dr_mp3_h +#define MA_HAS_MP3 + +static size_t ma_decoder_internal_on_read__mp3(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + ma_decoder* pDecoder = (ma_decoder*)pUserData; + MA_ASSERT(pDecoder != NULL); + + return ma_decoder_read_bytes(pDecoder, pBufferOut, bytesToRead); +} + +static drmp3_bool32 ma_decoder_internal_on_seek__mp3(void* pUserData, int offset, drmp3_seek_origin origin) +{ + ma_decoder* pDecoder = (ma_decoder*)pUserData; + MA_ASSERT(pDecoder != NULL); + + return ma_decoder_seek_bytes(pDecoder, offset, (origin == drmp3_seek_origin_start) ? ma_seek_origin_start : ma_seek_origin_current); +} + +static ma_uint64 ma_decoder_internal_on_read_pcm_frames__mp3(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) +{ + drmp3* pMP3; + + MA_ASSERT(pDecoder != NULL); + MA_ASSERT(pFramesOut != NULL); + + pMP3 = (drmp3*)pDecoder->pInternalDecoder; + MA_ASSERT(pMP3 != NULL); + +#if defined(DR_MP3_FLOAT_OUTPUT) + MA_ASSERT(pDecoder->internalFormat == ma_format_f32); + return drmp3_read_pcm_frames_f32(pMP3, frameCount, (float*)pFramesOut); +#else + MA_ASSERT(pDecoder->internalFormat == ma_format_s16); + return drmp3_read_pcm_frames_s16(pMP3, frameCount, (drmp3_int16*)pFramesOut); +#endif +} + +static ma_result ma_decoder_internal_on_seek_to_pcm_frame__mp3(ma_decoder* pDecoder, ma_uint64 frameIndex) +{ + drmp3* pMP3; + drmp3_bool32 result; + + pMP3 = (drmp3*)pDecoder->pInternalDecoder; + MA_ASSERT(pMP3 != NULL); + + result = drmp3_seek_to_pcm_frame(pMP3, frameIndex); + if (result) { + return MA_SUCCESS; + } else { + return MA_ERROR; + } +} + +static ma_result ma_decoder_internal_on_uninit__mp3(ma_decoder* pDecoder) +{ + drmp3_uninit((drmp3*)pDecoder->pInternalDecoder); + ma__free_from_callbacks(pDecoder->pInternalDecoder, &pDecoder->allocationCallbacks); + return MA_SUCCESS; +} + +static ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__mp3(ma_decoder* pDecoder) +{ + return drmp3_get_pcm_frame_count((drmp3*)pDecoder->pInternalDecoder); +} + +static ma_result ma_decoder_init_mp3__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + drmp3* pMP3; + drmp3_allocation_callbacks allocationCallbacks; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + (void)pConfig; + + pMP3 = (drmp3*)ma__malloc_from_callbacks(sizeof(*pMP3), &pDecoder->allocationCallbacks); + if (pMP3 == NULL) { + return MA_OUT_OF_MEMORY; + } + + allocationCallbacks.pUserData = pDecoder->allocationCallbacks.pUserData; + allocationCallbacks.onMalloc = pDecoder->allocationCallbacks.onMalloc; + allocationCallbacks.onRealloc = pDecoder->allocationCallbacks.onRealloc; + allocationCallbacks.onFree = pDecoder->allocationCallbacks.onFree; + + /* + Try opening the decoder first. We always use whatever dr_mp3 reports for channel count and sample rate. The format is determined by + the presence of DR_MP3_FLOAT_OUTPUT. + */ + if (!drmp3_init(pMP3, ma_decoder_internal_on_read__mp3, ma_decoder_internal_on_seek__mp3, pDecoder, &allocationCallbacks)) { + ma__free_from_callbacks(pMP3, &pDecoder->allocationCallbacks); + return MA_ERROR; + } + + /* If we get here it means we successfully initialized the MP3 decoder. We can now initialize the rest of the ma_decoder. */ + pDecoder->onReadPCMFrames = ma_decoder_internal_on_read_pcm_frames__mp3; + pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__mp3; + pDecoder->onUninit = ma_decoder_internal_on_uninit__mp3; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__mp3; + pDecoder->pInternalDecoder = pMP3; + + /* Internal format. */ +#if defined(DR_MP3_FLOAT_OUTPUT) + pDecoder->internalFormat = ma_format_f32; +#else + pDecoder->internalFormat = ma_format_s16; +#endif + pDecoder->internalChannels = pMP3->channels; + pDecoder->internalSampleRate = pMP3->sampleRate; + ma_get_standard_channel_map(ma_standard_channel_map_default, pDecoder->internalChannels, pDecoder->internalChannelMap); + + return MA_SUCCESS; +} +#endif /* dr_mp3_h */ + +/* Vorbis */ +#ifdef STB_VORBIS_INCLUDE_STB_VORBIS_H +#define MA_HAS_VORBIS + +/* The size in bytes of each chunk of data to read from the Vorbis stream. */ +#define MA_VORBIS_DATA_CHUNK_SIZE 4096 + +typedef struct +{ + stb_vorbis* pInternalVorbis; + ma_uint8* pData; + size_t dataSize; + size_t dataCapacity; + ma_uint32 framesConsumed; /* The number of frames consumed in ppPacketData. */ + ma_uint32 framesRemaining; /* The number of frames remaining in ppPacketData. */ + float** ppPacketData; +} ma_vorbis_decoder; + +static ma_uint64 ma_vorbis_decoder_read_pcm_frames(ma_vorbis_decoder* pVorbis, ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) +{ + float* pFramesOutF; + ma_uint64 totalFramesRead; + + MA_ASSERT(pVorbis != NULL); + MA_ASSERT(pDecoder != NULL); + + pFramesOutF = (float*)pFramesOut; + + totalFramesRead = 0; + while (frameCount > 0) { + /* Read from the in-memory buffer first. */ + ma_uint32 framesToReadFromCache = (ma_uint32)ma_min(pVorbis->framesRemaining, frameCount); /* Safe cast because pVorbis->framesRemaining is 32-bit. */ + + if (pFramesOut != NULL) { + ma_uint64 iFrame; + for (iFrame = 0; iFrame < framesToReadFromCache; iFrame += 1) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pDecoder->internalChannels; ++iChannel) { + pFramesOutF[iChannel] = pVorbis->ppPacketData[iChannel][pVorbis->framesConsumed+iFrame]; + } + pFramesOutF += pDecoder->internalChannels; + } + } + + pVorbis->framesConsumed += framesToReadFromCache; + pVorbis->framesRemaining -= framesToReadFromCache; + frameCount -= framesToReadFromCache; + totalFramesRead += framesToReadFromCache; + + if (frameCount == 0) { + break; + } + + MA_ASSERT(pVorbis->framesRemaining == 0); + + /* We've run out of cached frames, so decode the next packet and continue iteration. */ + do + { + int samplesRead; + int consumedDataSize; + + if (pVorbis->dataSize > INT_MAX) { + break; /* Too big. */ + } + + samplesRead = 0; + consumedDataSize = stb_vorbis_decode_frame_pushdata(pVorbis->pInternalVorbis, pVorbis->pData, (int)pVorbis->dataSize, NULL, (float***)&pVorbis->ppPacketData, &samplesRead); + if (consumedDataSize != 0) { + size_t leftoverDataSize = (pVorbis->dataSize - (size_t)consumedDataSize); + size_t i; + for (i = 0; i < leftoverDataSize; ++i) { + pVorbis->pData[i] = pVorbis->pData[i + consumedDataSize]; + } + + pVorbis->dataSize = leftoverDataSize; + pVorbis->framesConsumed = 0; + pVorbis->framesRemaining = samplesRead; + break; + } else { + /* Need more data. If there's any room in the existing buffer allocation fill that first. Otherwise expand. */ + size_t bytesRead; + if (pVorbis->dataCapacity == pVorbis->dataSize) { + /* No room. Expand. */ + size_t oldCap = pVorbis->dataCapacity; + size_t newCap = pVorbis->dataCapacity + MA_VORBIS_DATA_CHUNK_SIZE; + ma_uint8* pNewData; + + pNewData = (ma_uint8*)ma__realloc_from_callbacks(pVorbis->pData, newCap, oldCap, &pDecoder->allocationCallbacks); + if (pNewData == NULL) { + return totalFramesRead; /* Out of memory. */ + } + + pVorbis->pData = pNewData; + pVorbis->dataCapacity = newCap; + } + + /* Fill in a chunk. */ + bytesRead = ma_decoder_read_bytes(pDecoder, pVorbis->pData + pVorbis->dataSize, (pVorbis->dataCapacity - pVorbis->dataSize)); + if (bytesRead == 0) { + return totalFramesRead; /* Error reading more data. */ + } + + pVorbis->dataSize += bytesRead; + } + } while (MA_TRUE); + } + + return totalFramesRead; +} + +static ma_result ma_vorbis_decoder_seek_to_pcm_frame(ma_vorbis_decoder* pVorbis, ma_decoder* pDecoder, ma_uint64 frameIndex) +{ + float buffer[4096]; + + MA_ASSERT(pVorbis != NULL); + MA_ASSERT(pDecoder != NULL); + + /* + This is terribly inefficient because stb_vorbis does not have a good seeking solution with it's push API. Currently this just performs + a full decode right from the start of the stream. Later on I'll need to write a layer that goes through all of the Ogg pages until we + find the one containing the sample we need. Then we know exactly where to seek for stb_vorbis. + + TODO: Use seeking logic documented for stb_vorbis_flush_pushdata(). + */ + if (!ma_decoder_seek_bytes(pDecoder, 0, ma_seek_origin_start)) { + return MA_ERROR; + } + + stb_vorbis_flush_pushdata(pVorbis->pInternalVorbis); + pVorbis->framesConsumed = 0; + pVorbis->framesRemaining = 0; + pVorbis->dataSize = 0; + + while (frameIndex > 0) { + ma_uint32 framesRead; + ma_uint32 framesToRead = ma_countof(buffer)/pDecoder->internalChannels; + if (framesToRead > frameIndex) { + framesToRead = (ma_uint32)frameIndex; + } + + framesRead = (ma_uint32)ma_vorbis_decoder_read_pcm_frames(pVorbis, pDecoder, buffer, framesToRead); + if (framesRead == 0) { + return MA_ERROR; + } + + frameIndex -= framesRead; + } + + return MA_SUCCESS; +} + + +static ma_result ma_decoder_internal_on_seek_to_pcm_frame__vorbis(ma_decoder* pDecoder, ma_uint64 frameIndex) +{ + ma_vorbis_decoder* pVorbis = (ma_vorbis_decoder*)pDecoder->pInternalDecoder; + MA_ASSERT(pVorbis != NULL); + + return ma_vorbis_decoder_seek_to_pcm_frame(pVorbis, pDecoder, frameIndex); +} + +static ma_result ma_decoder_internal_on_uninit__vorbis(ma_decoder* pDecoder) +{ + ma_vorbis_decoder* pVorbis = (ma_vorbis_decoder*)pDecoder->pInternalDecoder; + MA_ASSERT(pVorbis != NULL); + + stb_vorbis_close(pVorbis->pInternalVorbis); + ma__free_from_callbacks(pVorbis->pData, &pDecoder->allocationCallbacks); + ma__free_from_callbacks(pVorbis, &pDecoder->allocationCallbacks); + + return MA_SUCCESS; +} + +static ma_uint64 ma_decoder_internal_on_read_pcm_frames__vorbis(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) +{ + ma_vorbis_decoder* pVorbis; + + MA_ASSERT(pDecoder != NULL); + MA_ASSERT(pFramesOut != NULL); + MA_ASSERT(pDecoder->internalFormat == ma_format_f32); + + pVorbis = (ma_vorbis_decoder*)pDecoder->pInternalDecoder; + MA_ASSERT(pVorbis != NULL); + + return ma_vorbis_decoder_read_pcm_frames(pVorbis, pDecoder, pFramesOut, frameCount); +} + +static ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__vorbis(ma_decoder* pDecoder) +{ + /* No good way to do this with Vorbis. */ + (void)pDecoder; + return 0; +} + +static ma_result ma_decoder_init_vorbis__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + stb_vorbis* pInternalVorbis = NULL; + size_t dataSize = 0; + size_t dataCapacity = 0; + ma_uint8* pData = NULL; + stb_vorbis_info vorbisInfo; + size_t vorbisDataSize; + ma_vorbis_decoder* pVorbis; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + /* We grow the buffer in chunks. */ + do + { + /* Allocate memory for a new chunk. */ + ma_uint8* pNewData; + size_t bytesRead; + int vorbisError = 0; + int consumedDataSize = 0; + size_t oldCapacity = dataCapacity; + + dataCapacity += MA_VORBIS_DATA_CHUNK_SIZE; + pNewData = (ma_uint8*)ma__realloc_from_callbacks(pData, dataCapacity, oldCapacity, &pDecoder->allocationCallbacks); + if (pNewData == NULL) { + ma__free_from_callbacks(pData, &pDecoder->allocationCallbacks); + return MA_OUT_OF_MEMORY; + } + + pData = pNewData; + + /* Fill in a chunk. */ + bytesRead = ma_decoder_read_bytes(pDecoder, pData + dataSize, (dataCapacity - dataSize)); + if (bytesRead == 0) { + return MA_ERROR; + } + + dataSize += bytesRead; + if (dataSize > INT_MAX) { + return MA_ERROR; /* Too big. */ + } + + pInternalVorbis = stb_vorbis_open_pushdata(pData, (int)dataSize, &consumedDataSize, &vorbisError, NULL); + if (pInternalVorbis != NULL) { + /* + If we get here it means we were able to open the stb_vorbis decoder. There may be some leftover bytes in our buffer, so + we need to move those bytes down to the front of the buffer since they'll be needed for future decoding. + */ + size_t leftoverDataSize = (dataSize - (size_t)consumedDataSize); + size_t i; + for (i = 0; i < leftoverDataSize; ++i) { + pData[i] = pData[i + consumedDataSize]; + } + + dataSize = leftoverDataSize; + break; /* Success. */ + } else { + if (vorbisError == VORBIS_need_more_data) { + continue; + } else { + return MA_ERROR; /* Failed to open the stb_vorbis decoder. */ + } + } + } while (MA_TRUE); + + + /* If we get here it means we successfully opened the Vorbis decoder. */ + vorbisInfo = stb_vorbis_get_info(pInternalVorbis); + + /* Don't allow more than MA_MAX_CHANNELS channels. */ + if (vorbisInfo.channels > MA_MAX_CHANNELS) { + stb_vorbis_close(pInternalVorbis); + ma__free_from_callbacks(pData, &pDecoder->allocationCallbacks); + return MA_ERROR; /* Too many channels. */ + } + + vorbisDataSize = sizeof(ma_vorbis_decoder) + sizeof(float)*vorbisInfo.max_frame_size; + pVorbis = (ma_vorbis_decoder*)ma__malloc_from_callbacks(vorbisDataSize, &pDecoder->allocationCallbacks); + if (pVorbis == NULL) { + stb_vorbis_close(pInternalVorbis); + ma__free_from_callbacks(pData, &pDecoder->allocationCallbacks); + return MA_OUT_OF_MEMORY; + } + + MA_ZERO_MEMORY(pVorbis, vorbisDataSize); + pVorbis->pInternalVorbis = pInternalVorbis; + pVorbis->pData = pData; + pVorbis->dataSize = dataSize; + pVorbis->dataCapacity = dataCapacity; + + pDecoder->onReadPCMFrames = ma_decoder_internal_on_read_pcm_frames__vorbis; + pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__vorbis; + pDecoder->onUninit = ma_decoder_internal_on_uninit__vorbis; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__vorbis; + pDecoder->pInternalDecoder = pVorbis; + + /* The internal format is always f32. */ + pDecoder->internalFormat = ma_format_f32; + pDecoder->internalChannels = vorbisInfo.channels; + pDecoder->internalSampleRate = vorbisInfo.sample_rate; + ma_get_standard_channel_map(ma_standard_channel_map_vorbis, pDecoder->internalChannels, pDecoder->internalChannelMap); + + return MA_SUCCESS; +} +#endif /* STB_VORBIS_INCLUDE_STB_VORBIS_H */ + +/* Raw */ +static ma_uint64 ma_decoder_internal_on_read_pcm_frames__raw(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint32 bpf; + ma_uint64 totalFramesRead; + void* pRunningFramesOut; + + MA_ASSERT(pDecoder != NULL); + + /* For raw decoding we just read directly from the decoder's callbacks. */ + bpf = ma_get_bytes_per_frame(pDecoder->internalFormat, pDecoder->internalChannels); + + totalFramesRead = 0; + pRunningFramesOut = pFramesOut; + + while (totalFramesRead < frameCount) { + ma_uint64 framesReadThisIteration; + ma_uint64 framesToReadThisIteration = (frameCount - totalFramesRead); + if (framesToReadThisIteration > 0x7FFFFFFF/bpf) { + framesToReadThisIteration = 0x7FFFFFFF/bpf; + } + + if (pFramesOut != NULL) { + framesReadThisIteration = ma_decoder_read_bytes(pDecoder, pRunningFramesOut, (size_t)framesToReadThisIteration * bpf) / bpf; /* Safe cast to size_t. */ + pRunningFramesOut = ma_offset_ptr(pRunningFramesOut, framesReadThisIteration * bpf); + } else { + /* We'll first try seeking. If this fails it means the end was reached and we'll to do a read-and-discard slow path to get the exact amount. */ + if (ma_decoder_seek_bytes(pDecoder, (int)framesToReadThisIteration, ma_seek_origin_current)) { + framesReadThisIteration = framesToReadThisIteration; + } else { + /* Slow path. Need to fall back to a read-and-discard. This is required so we can get the exact number of remaining. */ + ma_uint8 buffer[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; + ma_uint32 bufferCap = sizeof(buffer) / bpf; + + framesReadThisIteration = 0; + while (framesReadThisIteration < framesToReadThisIteration) { + ma_uint64 framesReadNow; + ma_uint64 framesToReadNow = framesToReadThisIteration - framesReadThisIteration; + if (framesToReadNow > bufferCap) { + framesToReadNow = bufferCap; + } + + framesReadNow = ma_decoder_read_bytes(pDecoder, buffer, (size_t)(framesToReadNow * bpf)) / bpf; /* Safe cast. */ + framesReadThisIteration += framesReadNow; + + if (framesReadNow < framesToReadNow) { + break; /* The end has been reached. */ + } + } + } + } + + totalFramesRead += framesReadThisIteration; + + if (framesReadThisIteration < framesToReadThisIteration) { + break; /* Done. */ + } + } + + return totalFramesRead; +} + +static ma_result ma_decoder_internal_on_seek_to_pcm_frame__raw(ma_decoder* pDecoder, ma_uint64 frameIndex) +{ + ma_bool32 result = MA_FALSE; + ma_uint64 totalBytesToSeek; + + MA_ASSERT(pDecoder != NULL); + + if (pDecoder->onSeek == NULL) { + return MA_ERROR; + } + + /* The callback uses a 32 bit integer whereas we use a 64 bit unsigned integer. We just need to continuously seek until we're at the correct position. */ + totalBytesToSeek = frameIndex * ma_get_bytes_per_frame(pDecoder->internalFormat, pDecoder->internalChannels); + if (totalBytesToSeek < 0x7FFFFFFF) { + /* Simple case. */ + result = ma_decoder_seek_bytes(pDecoder, (int)(frameIndex * ma_get_bytes_per_frame(pDecoder->internalFormat, pDecoder->internalChannels)), ma_seek_origin_start); + } else { + /* Complex case. Start by doing a seek relative to the start. Then keep looping using offset seeking. */ + result = ma_decoder_seek_bytes(pDecoder, 0x7FFFFFFF, ma_seek_origin_start); + if (result == MA_TRUE) { + totalBytesToSeek -= 0x7FFFFFFF; + + while (totalBytesToSeek > 0) { + ma_uint64 bytesToSeekThisIteration = totalBytesToSeek; + if (bytesToSeekThisIteration > 0x7FFFFFFF) { + bytesToSeekThisIteration = 0x7FFFFFFF; + } + + result = ma_decoder_seek_bytes(pDecoder, (int)bytesToSeekThisIteration, ma_seek_origin_current); + if (result != MA_TRUE) { + break; + } + + totalBytesToSeek -= bytesToSeekThisIteration; + } + } + } + + if (result) { + return MA_SUCCESS; + } else { + return MA_ERROR; + } +} + +static ma_result ma_decoder_internal_on_uninit__raw(ma_decoder* pDecoder) +{ + (void)pDecoder; + return MA_SUCCESS; +} + +static ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__raw(ma_decoder* pDecoder) +{ + (void)pDecoder; + return 0; +} + +static ma_result ma_decoder_init_raw__internal(const ma_decoder_config* pConfigIn, const ma_decoder_config* pConfigOut, ma_decoder* pDecoder) +{ + MA_ASSERT(pConfigIn != NULL); + MA_ASSERT(pConfigOut != NULL); + MA_ASSERT(pDecoder != NULL); + + (void)pConfigOut; + + pDecoder->onReadPCMFrames = ma_decoder_internal_on_read_pcm_frames__raw; + pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__raw; + pDecoder->onUninit = ma_decoder_internal_on_uninit__raw; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__raw; + + /* Internal format. */ + pDecoder->internalFormat = pConfigIn->format; + pDecoder->internalChannels = pConfigIn->channels; + pDecoder->internalSampleRate = pConfigIn->sampleRate; + ma_channel_map_copy(pDecoder->internalChannelMap, pConfigIn->channelMap, pConfigIn->channels); + + return MA_SUCCESS; +} + +static ma_result ma_decoder__init_allocation_callbacks(const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + MA_ASSERT(pDecoder != NULL); + + if (pConfig != NULL) { + return ma_allocation_callbacks_init_copy(&pDecoder->allocationCallbacks, &pConfig->allocationCallbacks); + } else { + pDecoder->allocationCallbacks = ma_allocation_callbacks_init_default(); + return MA_SUCCESS; + } +} + +static ma_result ma_decoder__data_source_on_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) +{ + ma_uint64 framesRead = ma_decoder_read_pcm_frames((ma_decoder*)pDataSource, pFramesOut, frameCount); + + if (pFramesRead != NULL) { + *pFramesRead = framesRead; + } + + if (framesRead < frameCount) { + return MA_AT_END; + } + + return MA_SUCCESS; +} + +static ma_result ma_decoder__data_source_on_seek(ma_data_source* pDataSource, ma_uint64 frameIndex) +{ + return ma_decoder_seek_to_pcm_frame((ma_decoder*)pDataSource, frameIndex); +} + +static ma_result ma_decoder__data_source_on_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate) +{ + ma_decoder* pDecoder = (ma_decoder*)pDataSource; + + *pFormat = pDecoder->outputFormat; + *pChannels = pDecoder->outputChannels; + *pSampleRate = pDecoder->outputSampleRate; + + return MA_SUCCESS; +} + +static ma_result ma_decoder__data_source_on_get_cursor(ma_data_source* pDataSource, ma_uint64* pLength) +{ + ma_decoder* pDecoder = (ma_decoder*)pDataSource; + + return ma_decoder_get_cursor_in_pcm_frames(pDecoder, pLength); +} + +static ma_result ma_decoder__data_source_on_get_length(ma_data_source* pDataSource, ma_uint64* pLength) +{ + ma_decoder* pDecoder = (ma_decoder*)pDataSource; + + *pLength = ma_decoder_get_length_in_pcm_frames(pDecoder); + if (*pLength == 0) { + return MA_NOT_IMPLEMENTED; + } + + return MA_SUCCESS; +} + +static ma_result ma_decoder__preinit(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + + MA_ASSERT(pConfig != NULL); + + if (pDecoder == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pDecoder); + + if (onRead == NULL || onSeek == NULL) { + return MA_INVALID_ARGS; + } + + pDecoder->ds.onRead = ma_decoder__data_source_on_read; + pDecoder->ds.onSeek = ma_decoder__data_source_on_seek; + pDecoder->ds.onGetDataFormat = ma_decoder__data_source_on_get_data_format; + pDecoder->ds.onGetCursor = ma_decoder__data_source_on_get_cursor; + pDecoder->ds.onGetLength = ma_decoder__data_source_on_get_length; + + pDecoder->onRead = onRead; + pDecoder->onSeek = onSeek; + pDecoder->pUserData = pUserData; + + result = ma_decoder__init_allocation_callbacks(pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +static ma_result ma_decoder__postinit(const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = MA_SUCCESS; + + /* Basic validation in case the internal decoder supports different limits to miniaudio. */ + if (pDecoder->internalChannels < MA_MIN_CHANNELS || pDecoder->internalChannels > MA_MAX_CHANNELS) { + result = MA_INVALID_DATA; + } + + if (result == MA_SUCCESS) { + result = ma_decoder__init_data_converter(pDecoder, pConfig); + } + + /* If we failed post initialization we need to uninitialize the decoder before returning to prevent a memory leak. */ + if (result != MA_SUCCESS) { + ma_decoder_uninit(pDecoder); + return result; + } + + return result; +} + +MA_API ma_result ma_decoder_init_wav(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_WAV + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); + + result = ma_decoder__preinit(onRead, onSeek, pUserData, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_wav__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)onRead; + (void)onSeek; + (void)pUserData; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_flac(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_FLAC + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); + + result = ma_decoder__preinit(onRead, onSeek, pUserData, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_flac__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)onRead; + (void)onSeek; + (void)pUserData; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_mp3(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_MP3 + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); + + result = ma_decoder__preinit(onRead, onSeek, pUserData, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_mp3__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)onRead; + (void)onSeek; + (void)pUserData; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_vorbis(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_VORBIS + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); + + result = ma_decoder__preinit(onRead, onSeek, pUserData, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_vorbis__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)onRead; + (void)onSeek; + (void)pUserData; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_raw(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfigIn, const ma_decoder_config* pConfigOut, ma_decoder* pDecoder) +{ + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfigOut); + + result = ma_decoder__preinit(onRead, onSeek, pUserData, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_raw__internal(pConfigIn, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +} + +static ma_result ma_decoder_init__internal(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = MA_NO_BACKEND; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + /* Silence some warnings in the case that we don't have any decoder backends enabled. */ + (void)onRead; + (void)onSeek; + (void)pUserData; + (void)pConfig; + (void)pDecoder; + + /* We use trial and error to open a decoder. */ + +#ifdef MA_HAS_WAV + if (result != MA_SUCCESS) { + result = ma_decoder_init_wav__internal(pConfig, pDecoder); + if (result != MA_SUCCESS) { + onSeek(pDecoder, 0, ma_seek_origin_start); + } + } +#endif +#ifdef MA_HAS_FLAC + if (result != MA_SUCCESS) { + result = ma_decoder_init_flac__internal(pConfig, pDecoder); + if (result != MA_SUCCESS) { + onSeek(pDecoder, 0, ma_seek_origin_start); + } + } +#endif +#ifdef MA_HAS_MP3 + if (result != MA_SUCCESS) { + result = ma_decoder_init_mp3__internal(pConfig, pDecoder); + if (result != MA_SUCCESS) { + onSeek(pDecoder, 0, ma_seek_origin_start); + } + } +#endif +#ifdef MA_HAS_VORBIS + if (result != MA_SUCCESS) { + result = ma_decoder_init_vorbis__internal(pConfig, pDecoder); + if (result != MA_SUCCESS) { + onSeek(pDecoder, 0, ma_seek_origin_start); + } + } +#endif + + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init(ma_decoder_read_proc onRead, ma_decoder_seek_proc onSeek, void* pUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); + + result = ma_decoder__preinit(onRead, onSeek, pUserData, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder_init__internal(onRead, onSeek, pUserData, &config, pDecoder); +} + + +static size_t ma_decoder__on_read_memory(ma_decoder* pDecoder, void* pBufferOut, size_t bytesToRead) +{ + size_t bytesRemaining; + + MA_ASSERT(pDecoder->backend.memory.dataSize >= pDecoder->backend.memory.currentReadPos); + + bytesRemaining = pDecoder->backend.memory.dataSize - pDecoder->backend.memory.currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + + if (bytesToRead > 0) { + MA_COPY_MEMORY(pBufferOut, pDecoder->backend.memory.pData + pDecoder->backend.memory.currentReadPos, bytesToRead); + pDecoder->backend.memory.currentReadPos += bytesToRead; + } + + return bytesToRead; +} + +static ma_bool32 ma_decoder__on_seek_memory(ma_decoder* pDecoder, int byteOffset, ma_seek_origin origin) +{ + if (origin == ma_seek_origin_current) { + if (byteOffset > 0) { + if (pDecoder->backend.memory.currentReadPos + byteOffset > pDecoder->backend.memory.dataSize) { + byteOffset = (int)(pDecoder->backend.memory.dataSize - pDecoder->backend.memory.currentReadPos); /* Trying to seek too far forward. */ + } + } else { + if (pDecoder->backend.memory.currentReadPos < (size_t)-byteOffset) { + byteOffset = -(int)pDecoder->backend.memory.currentReadPos; /* Trying to seek too far backwards. */ + } + } + + /* This will never underflow thanks to the clamps above. */ + pDecoder->backend.memory.currentReadPos += byteOffset; + } else { + if ((ma_uint32)byteOffset <= pDecoder->backend.memory.dataSize) { + pDecoder->backend.memory.currentReadPos = byteOffset; + } else { + pDecoder->backend.memory.currentReadPos = pDecoder->backend.memory.dataSize; /* Trying to seek too far forward. */ + } + } + + return MA_TRUE; +} + +static ma_result ma_decoder__preinit_memory(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = ma_decoder__preinit(ma_decoder__on_read_memory, ma_decoder__on_seek_memory, NULL, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + if (pData == NULL || dataSize == 0) { + return MA_INVALID_ARGS; + } + + pDecoder->backend.memory.pData = (const ma_uint8*)pData; + pDecoder->backend.memory.dataSize = dataSize; + pDecoder->backend.memory.currentReadPos = 0; + + (void)pConfig; + return MA_SUCCESS; +} + +MA_API ma_result ma_decoder_init_memory(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); /* Make sure the config is not NULL. */ + + result = ma_decoder__preinit_memory(pData, dataSize, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder_init__internal(ma_decoder__on_read_memory, ma_decoder__on_seek_memory, NULL, &config, pDecoder); +} + +MA_API ma_result ma_decoder_init_memory_wav(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_WAV + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); /* Make sure the config is not NULL. */ + + result = ma_decoder__preinit_memory(pData, dataSize, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_wav__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)pData; + (void)dataSize; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_memory_flac(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_FLAC + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); /* Make sure the config is not NULL. */ + + result = ma_decoder__preinit_memory(pData, dataSize, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_flac__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)pData; + (void)dataSize; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_memory_mp3(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_MP3 + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); /* Make sure the config is not NULL. */ + + result = ma_decoder__preinit_memory(pData, dataSize, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_mp3__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)pData; + (void)dataSize; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_memory_vorbis(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_VORBIS + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfig); /* Make sure the config is not NULL. */ + + result = ma_decoder__preinit_memory(pData, dataSize, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_vorbis__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +#else + (void)pData; + (void)dataSize; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_memory_raw(const void* pData, size_t dataSize, const ma_decoder_config* pConfigIn, const ma_decoder_config* pConfigOut, ma_decoder* pDecoder) +{ + ma_decoder_config config; + ma_result result; + + config = ma_decoder_config_init_copy(pConfigOut); /* Make sure the config is not NULL. */ + + result = ma_decoder__preinit_memory(pData, dataSize, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_raw__internal(pConfigIn, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__postinit(&config, pDecoder); +} + + +#if defined(MA_HAS_WAV) || \ + defined(MA_HAS_MP3) || \ + defined(MA_HAS_FLAC) || \ + defined(MA_HAS_VORBIS) || \ + defined(MA_HAS_OPUS) +#define MA_HAS_PATH_API +#endif + +#if defined(MA_HAS_PATH_API) +static const char* ma_path_file_name(const char* path) +{ + const char* fileName; + + if (path == NULL) { + return NULL; + } + + fileName = path; + + /* We just loop through the path until we find the last slash. */ + while (path[0] != '\0') { + if (path[0] == '/' || path[0] == '\\') { + fileName = path; + } + + path += 1; + } + + /* At this point the file name is sitting on a slash, so just move forward. */ + while (fileName[0] != '\0' && (fileName[0] == '/' || fileName[0] == '\\')) { + fileName += 1; + } + + return fileName; +} + +static const wchar_t* ma_path_file_name_w(const wchar_t* path) +{ + const wchar_t* fileName; + + if (path == NULL) { + return NULL; + } + + fileName = path; + + /* We just loop through the path until we find the last slash. */ + while (path[0] != '\0') { + if (path[0] == '/' || path[0] == '\\') { + fileName = path; + } + + path += 1; + } + + /* At this point the file name is sitting on a slash, so just move forward. */ + while (fileName[0] != '\0' && (fileName[0] == '/' || fileName[0] == '\\')) { + fileName += 1; + } + + return fileName; +} + + +static const char* ma_path_extension(const char* path) +{ + const char* extension; + const char* lastOccurance; + + if (path == NULL) { + path = ""; + } + + extension = ma_path_file_name(path); + lastOccurance = NULL; + + /* Just find the last '.' and return. */ + while (extension[0] != '\0') { + if (extension[0] == '.') { + extension += 1; + lastOccurance = extension; + } + + extension += 1; + } + + return (lastOccurance != NULL) ? lastOccurance : extension; +} + +static const wchar_t* ma_path_extension_w(const wchar_t* path) +{ + const wchar_t* extension; + const wchar_t* lastOccurance; + + if (path == NULL) { + path = L""; + } + + extension = ma_path_file_name_w(path); + lastOccurance = NULL; + + /* Just find the last '.' and return. */ + while (extension[0] != '\0') { + if (extension[0] == '.') { + extension += 1; + lastOccurance = extension; + } + + extension += 1; + } + + return (lastOccurance != NULL) ? lastOccurance : extension; +} + + +static ma_bool32 ma_path_extension_equal(const char* path, const char* extension) +{ + const char* ext1; + const char* ext2; + + if (path == NULL || extension == NULL) { + return MA_FALSE; + } + + ext1 = extension; + ext2 = ma_path_extension(path); + +#if defined(_MSC_VER) || defined(__DMC__) + return _stricmp(ext1, ext2) == 0; +#else + return strcasecmp(ext1, ext2) == 0; +#endif +} + +static ma_bool32 ma_path_extension_equal_w(const wchar_t* path, const wchar_t* extension) +{ + const wchar_t* ext1; + const wchar_t* ext2; + + if (path == NULL || extension == NULL) { + return MA_FALSE; + } + + ext1 = extension; + ext2 = ma_path_extension_w(path); + +#if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__DMC__) + return _wcsicmp(ext1, ext2) == 0; +#else + /* + I'm not aware of a wide character version of strcasecmp(). I'm therefore converting the extensions to multibyte strings and comparing those. This + isn't the most efficient way to do it, but it should work OK. + */ + { + char ext1MB[4096]; + char ext2MB[4096]; + const wchar_t* pext1 = ext1; + const wchar_t* pext2 = ext2; + mbstate_t mbs1; + mbstate_t mbs2; + + MA_ZERO_OBJECT(&mbs1); + MA_ZERO_OBJECT(&mbs2); + + if (wcsrtombs(ext1MB, &pext1, sizeof(ext1MB), &mbs1) == (size_t)-1) { + return MA_FALSE; + } + if (wcsrtombs(ext2MB, &pext2, sizeof(ext2MB), &mbs2) == (size_t)-1) { + return MA_FALSE; + } + + return strcasecmp(ext1MB, ext2MB) == 0; + } +#endif +} +#endif /* MA_HAS_PATH_API */ + + + +static size_t ma_decoder__on_read_vfs(ma_decoder* pDecoder, void* pBufferOut, size_t bytesToRead) +{ + size_t bytesRead; + + MA_ASSERT(pDecoder != NULL); + MA_ASSERT(pBufferOut != NULL); + + ma_vfs_or_default_read(pDecoder->backend.vfs.pVFS, pDecoder->backend.vfs.file, pBufferOut, bytesToRead, &bytesRead); + + return bytesRead; +} + +static ma_bool32 ma_decoder__on_seek_vfs(ma_decoder* pDecoder, int offset, ma_seek_origin origin) +{ + ma_result result; + + MA_ASSERT(pDecoder != NULL); + + result = ma_vfs_or_default_seek(pDecoder->backend.vfs.pVFS, pDecoder->backend.vfs.file, offset, origin); + if (result != MA_SUCCESS) { + return MA_FALSE; + } + + return MA_TRUE; +} + +static ma_result ma_decoder__preinit_vfs(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + ma_vfs_file file; + + result = ma_decoder__preinit(ma_decoder__on_read_vfs, ma_decoder__on_seek_vfs, NULL, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + if (pFilePath == NULL || pFilePath[0] == '\0') { + return MA_INVALID_ARGS; + } + + result = ma_vfs_or_default_open(pVFS, pFilePath, MA_OPEN_MODE_READ, &file); + if (result != MA_SUCCESS) { + return result; + } + + pDecoder->backend.vfs.pVFS = pVFS; + pDecoder->backend.vfs.file = file; + + return MA_SUCCESS; +} + +MA_API ma_result ma_decoder_init_vfs(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = MA_NO_BACKEND; + +#ifdef MA_HAS_WAV + if (result != MA_SUCCESS && ma_path_extension_equal(pFilePath, "wav")) { + result = ma_decoder_init_wav__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + ma_decoder__on_seek_vfs(pDecoder, 0, ma_seek_origin_start); + } + } +#endif +#ifdef MA_HAS_FLAC + if (result != MA_SUCCESS && ma_path_extension_equal(pFilePath, "flac")) { + result = ma_decoder_init_flac__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + ma_decoder__on_seek_vfs(pDecoder, 0, ma_seek_origin_start); + } + } +#endif +#ifdef MA_HAS_MP3 + if (result != MA_SUCCESS && ma_path_extension_equal(pFilePath, "mp3")) { + result = ma_decoder_init_mp3__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + ma_decoder__on_seek_vfs(pDecoder, 0, ma_seek_origin_start); + } + } +#endif + + /* If we still haven't got a result just use trial and error. Otherwise we can finish up. */ + if (result != MA_SUCCESS) { + result = ma_decoder_init__internal(ma_decoder__on_read_vfs, ma_decoder__on_seek_vfs, NULL, &config, pDecoder); + } else { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_decoder_init_vfs_wav(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_WAV + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_wav__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_vfs_flac(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_FLAC + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_flac__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_vfs_mp3(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_MP3 + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_mp3__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_vfs_vorbis(ma_vfs* pVFS, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_VORBIS + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_vorbis__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + + + +static ma_result ma_decoder__preinit_vfs_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + ma_vfs_file file; + + result = ma_decoder__preinit(ma_decoder__on_read_vfs, ma_decoder__on_seek_vfs, NULL, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + if (pFilePath == NULL || pFilePath[0] == '\0') { + return MA_INVALID_ARGS; + } + + result = ma_vfs_or_default_open_w(pVFS, pFilePath, MA_OPEN_MODE_READ, &file); + if (result != MA_SUCCESS) { + return result; + } + + pDecoder->backend.vfs.pVFS = pVFS; + pDecoder->backend.vfs.file = file; + + return MA_SUCCESS; +} + +MA_API ma_result ma_decoder_init_vfs_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs_w(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = MA_NO_BACKEND; + +#ifdef MA_HAS_WAV + if (result != MA_SUCCESS && ma_path_extension_equal_w(pFilePath, L"wav")) { + result = ma_decoder_init_wav__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + ma_decoder__on_seek_vfs(pDecoder, 0, ma_seek_origin_start); + } + } +#endif +#ifdef MA_HAS_FLAC + if (result != MA_SUCCESS && ma_path_extension_equal_w(pFilePath, L"flac")) { + result = ma_decoder_init_flac__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + ma_decoder__on_seek_vfs(pDecoder, 0, ma_seek_origin_start); + } + } +#endif +#ifdef MA_HAS_MP3 + if (result != MA_SUCCESS && ma_path_extension_equal_w(pFilePath, L"mp3")) { + result = ma_decoder_init_mp3__internal(&config, pDecoder); + if (result != MA_SUCCESS) { + ma_decoder__on_seek_vfs(pDecoder, 0, ma_seek_origin_start); + } + } +#endif + + /* If we still haven't got a result just use trial and error. Otherwise we can finish up. */ + if (result != MA_SUCCESS) { + result = ma_decoder_init__internal(ma_decoder__on_read_vfs, ma_decoder__on_seek_vfs, NULL, &config, pDecoder); + } else { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_decoder_init_vfs_wav_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_WAV + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs_w(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_wav__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_vfs_flac_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_FLAC + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs_w(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_flac__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_vfs_mp3_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_MP3 + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs_w(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_mp3__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + +MA_API ma_result ma_decoder_init_vfs_vorbis_w(ma_vfs* pVFS, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ +#ifdef MA_HAS_VORBIS + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_vfs_w(pVFS, pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init_vorbis__internal(&config, pDecoder); + if (result == MA_SUCCESS) { + result = ma_decoder__postinit(&config, pDecoder); + } + + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, pDecoder->backend.vfs.file); + } + + return result; +#else + (void)pVFS; + (void)pFilePath; + (void)pConfig; + (void)pDecoder; + return MA_NO_BACKEND; +#endif +} + + + +MA_API ma_result ma_decoder_init_file(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_wav(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_wav(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_flac(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_flac(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_mp3(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_mp3(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_vorbis(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_vorbis(NULL, pFilePath, pConfig, pDecoder); +} + + + +MA_API ma_result ma_decoder_init_file_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_w(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_wav_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_wav_w(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_flac_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_flac_w(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_mp3_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_mp3_w(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_init_file_vorbis_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_vfs_vorbis_w(NULL, pFilePath, pConfig, pDecoder); +} + +MA_API ma_result ma_decoder_uninit(ma_decoder* pDecoder) +{ + if (pDecoder == NULL) { + return MA_INVALID_ARGS; + } + + if (pDecoder->onUninit) { + pDecoder->onUninit(pDecoder); + } + + if (pDecoder->onRead == ma_decoder__on_read_vfs) { + ma_vfs_or_default_close(pDecoder->backend.vfs.pVFS, pDecoder->backend.vfs.file); + } + + ma_data_converter_uninit(&pDecoder->converter); + + return MA_SUCCESS; +} + +MA_API ma_result ma_decoder_get_cursor_in_pcm_frames(ma_decoder* pDecoder, ma_uint64* pCursor) +{ + if (pCursor == NULL) { + return MA_INVALID_ARGS; + } + + *pCursor = 0; + + if (pDecoder == NULL) { + return MA_INVALID_ARGS; + } + + *pCursor = pDecoder->readPointerInPCMFrames; + + return MA_SUCCESS; +} + +MA_API ma_uint64 ma_decoder_get_length_in_pcm_frames(ma_decoder* pDecoder) +{ + if (pDecoder == NULL) { + return 0; + } + + if (pDecoder->onGetLengthInPCMFrames) { + ma_uint64 nativeLengthInPCMFrames = pDecoder->onGetLengthInPCMFrames(pDecoder); + if (pDecoder->internalSampleRate == pDecoder->outputSampleRate) { + return nativeLengthInPCMFrames; + } else { + return ma_calculate_frame_count_after_resampling(pDecoder->outputSampleRate, pDecoder->internalSampleRate, nativeLengthInPCMFrames); + } + } + + return 0; +} + +MA_API ma_uint64 ma_decoder_read_pcm_frames(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) +{ + ma_result result; + ma_uint64 totalFramesReadOut; + ma_uint64 totalFramesReadIn; + void* pRunningFramesOut; + + if (pDecoder == NULL) { + return 0; + } + + if (pDecoder->onReadPCMFrames == NULL) { + return 0; + } + + /* Fast path. */ + if (pDecoder->converter.isPassthrough) { + totalFramesReadOut = pDecoder->onReadPCMFrames(pDecoder, pFramesOut, frameCount); + } else { + /* + Getting here means we need to do data conversion. If we're seeking forward and are _not_ doing resampling we can run this in a fast path. If we're doing resampling we + need to run through each sample because we need to ensure it's internal cache is updated. + */ + if (pFramesOut == NULL && pDecoder->converter.hasResampler == MA_FALSE) { + totalFramesReadOut = pDecoder->onReadPCMFrames(pDecoder, NULL, frameCount); /* All decoder backends must support passing in NULL for the output buffer. */ + } else { + /* Slow path. Need to run everything through the data converter. */ + totalFramesReadOut = 0; + totalFramesReadIn = 0; + pRunningFramesOut = pFramesOut; + + while (totalFramesReadOut < frameCount) { + ma_uint8 pIntermediaryBuffer[MA_DATA_CONVERTER_STACK_BUFFER_SIZE]; /* In internal format. */ + ma_uint64 intermediaryBufferCap = sizeof(pIntermediaryBuffer) / ma_get_bytes_per_frame(pDecoder->internalFormat, pDecoder->internalChannels); + ma_uint64 framesToReadThisIterationIn; + ma_uint64 framesReadThisIterationIn; + ma_uint64 framesToReadThisIterationOut; + ma_uint64 framesReadThisIterationOut; + ma_uint64 requiredInputFrameCount; + + framesToReadThisIterationOut = (frameCount - totalFramesReadOut); + framesToReadThisIterationIn = framesToReadThisIterationOut; + if (framesToReadThisIterationIn > intermediaryBufferCap) { + framesToReadThisIterationIn = intermediaryBufferCap; + } + + requiredInputFrameCount = ma_data_converter_get_required_input_frame_count(&pDecoder->converter, framesToReadThisIterationOut); + if (framesToReadThisIterationIn > requiredInputFrameCount) { + framesToReadThisIterationIn = requiredInputFrameCount; + } + + if (requiredInputFrameCount > 0) { + framesReadThisIterationIn = pDecoder->onReadPCMFrames(pDecoder, pIntermediaryBuffer, framesToReadThisIterationIn); + totalFramesReadIn += framesReadThisIterationIn; + } else { + framesReadThisIterationIn = 0; + } + + /* + At this point we have our decoded data in input format and now we need to convert to output format. Note that even if we didn't read any + input frames, we still want to try processing frames because there may some output frames generated from cached input data. + */ + framesReadThisIterationOut = framesToReadThisIterationOut; + result = ma_data_converter_process_pcm_frames(&pDecoder->converter, pIntermediaryBuffer, &framesReadThisIterationIn, pRunningFramesOut, &framesReadThisIterationOut); + if (result != MA_SUCCESS) { + break; + } + + totalFramesReadOut += framesReadThisIterationOut; + + if (pRunningFramesOut != NULL) { + pRunningFramesOut = ma_offset_ptr(pRunningFramesOut, framesReadThisIterationOut * ma_get_bytes_per_frame(pDecoder->outputFormat, pDecoder->outputChannels)); + } + + if (framesReadThisIterationIn == 0 && framesReadThisIterationOut == 0) { + break; /* We're done. */ + } + } + } + } + + pDecoder->readPointerInPCMFrames += totalFramesReadOut; + + return totalFramesReadOut; +} + +MA_API ma_result ma_decoder_seek_to_pcm_frame(ma_decoder* pDecoder, ma_uint64 frameIndex) +{ + if (pDecoder == NULL) { + return MA_INVALID_ARGS; + } + + if (pDecoder->onSeekToPCMFrame) { + ma_result result; + ma_uint64 internalFrameIndex; + if (pDecoder->internalSampleRate == pDecoder->outputSampleRate) { + internalFrameIndex = frameIndex; + } else { + internalFrameIndex = ma_calculate_frame_count_after_resampling(pDecoder->internalSampleRate, pDecoder->outputSampleRate, frameIndex); + } + + result = pDecoder->onSeekToPCMFrame(pDecoder, internalFrameIndex); + if (result == MA_SUCCESS) { + pDecoder->readPointerInPCMFrames = frameIndex; + } + + return result; + } + + /* Should never get here, but if we do it means onSeekToPCMFrame was not set by the backend. */ + return MA_INVALID_ARGS; +} + +MA_API ma_result ma_decoder_get_available_frames(ma_decoder* pDecoder, ma_uint64* pAvailableFrames) +{ + ma_uint64 totalFrameCount; + + if (pAvailableFrames == NULL) { + return MA_INVALID_ARGS; + } + + *pAvailableFrames = 0; + + if (pDecoder == NULL) { + return MA_INVALID_ARGS; + } + + totalFrameCount = ma_decoder_get_length_in_pcm_frames(pDecoder); + if (totalFrameCount == 0) { + return MA_NOT_IMPLEMENTED; + } + + if (totalFrameCount <= pDecoder->readPointerInPCMFrames) { + *pAvailableFrames = 0; + } else { + *pAvailableFrames = totalFrameCount - pDecoder->readPointerInPCMFrames; + } + + return MA_SUCCESS; /* No frames available. */ +} + + +static ma_result ma_decoder__full_decode_and_uninit(ma_decoder* pDecoder, ma_decoder_config* pConfigOut, ma_uint64* pFrameCountOut, void** ppPCMFramesOut) +{ + ma_uint64 totalFrameCount; + ma_uint64 bpf; + ma_uint64 dataCapInFrames; + void* pPCMFramesOut; + + MA_ASSERT(pDecoder != NULL); + + totalFrameCount = 0; + bpf = ma_get_bytes_per_frame(pDecoder->outputFormat, pDecoder->outputChannels); + + /* The frame count is unknown until we try reading. Thus, we just run in a loop. */ + dataCapInFrames = 0; + pPCMFramesOut = NULL; + for (;;) { + ma_uint64 frameCountToTryReading; + ma_uint64 framesJustRead; + + /* Make room if there's not enough. */ + if (totalFrameCount == dataCapInFrames) { + void* pNewPCMFramesOut; + ma_uint64 oldDataCapInFrames = dataCapInFrames; + ma_uint64 newDataCapInFrames = dataCapInFrames*2; + if (newDataCapInFrames == 0) { + newDataCapInFrames = 4096; + } + + if ((newDataCapInFrames * bpf) > MA_SIZE_MAX) { + ma__free_from_callbacks(pPCMFramesOut, &pDecoder->allocationCallbacks); + return MA_TOO_BIG; + } + + + pNewPCMFramesOut = (void*)ma__realloc_from_callbacks(pPCMFramesOut, (size_t)(newDataCapInFrames * bpf), (size_t)(oldDataCapInFrames * bpf), &pDecoder->allocationCallbacks); + if (pNewPCMFramesOut == NULL) { + ma__free_from_callbacks(pPCMFramesOut, &pDecoder->allocationCallbacks); + return MA_OUT_OF_MEMORY; + } + + dataCapInFrames = newDataCapInFrames; + pPCMFramesOut = pNewPCMFramesOut; + } + + frameCountToTryReading = dataCapInFrames - totalFrameCount; + MA_ASSERT(frameCountToTryReading > 0); + + framesJustRead = ma_decoder_read_pcm_frames(pDecoder, (ma_uint8*)pPCMFramesOut + (totalFrameCount * bpf), frameCountToTryReading); + totalFrameCount += framesJustRead; + + if (framesJustRead < frameCountToTryReading) { + break; + } + } + + + if (pConfigOut != NULL) { + pConfigOut->format = pDecoder->outputFormat; + pConfigOut->channels = pDecoder->outputChannels; + pConfigOut->sampleRate = pDecoder->outputSampleRate; + ma_channel_map_copy(pConfigOut->channelMap, pDecoder->outputChannelMap, pDecoder->outputChannels); + } + + if (ppPCMFramesOut != NULL) { + *ppPCMFramesOut = pPCMFramesOut; + } else { + ma__free_from_callbacks(pPCMFramesOut, &pDecoder->allocationCallbacks); + } + + if (pFrameCountOut != NULL) { + *pFrameCountOut = totalFrameCount; + } + + ma_decoder_uninit(pDecoder); + return MA_SUCCESS; +} + +MA_API ma_result ma_decode_from_vfs(ma_vfs* pVFS, const char* pFilePath, ma_decoder_config* pConfig, ma_uint64* pFrameCountOut, void** ppPCMFramesOut) +{ + ma_result result; + ma_decoder_config config; + ma_decoder decoder; + + if (pFrameCountOut != NULL) { + *pFrameCountOut = 0; + } + if (ppPCMFramesOut != NULL) { + *ppPCMFramesOut = NULL; + } + + config = ma_decoder_config_init_copy(pConfig); + + result = ma_decoder_init_vfs(pVFS, pFilePath, &config, &decoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder__full_decode_and_uninit(&decoder, pConfig, pFrameCountOut, ppPCMFramesOut); + + return result; +} + +MA_API ma_result ma_decode_file(const char* pFilePath, ma_decoder_config* pConfig, ma_uint64* pFrameCountOut, void** ppPCMFramesOut) +{ + return ma_decode_from_vfs(NULL, pFilePath, pConfig, pFrameCountOut, ppPCMFramesOut); +} + +MA_API ma_result ma_decode_memory(const void* pData, size_t dataSize, ma_decoder_config* pConfig, ma_uint64* pFrameCountOut, void** ppPCMFramesOut) +{ + ma_decoder_config config; + ma_decoder decoder; + ma_result result; + + if (pFrameCountOut != NULL) { + *pFrameCountOut = 0; + } + if (ppPCMFramesOut != NULL) { + *ppPCMFramesOut = NULL; + } + + if (pData == NULL || dataSize == 0) { + return MA_INVALID_ARGS; + } + + config = ma_decoder_config_init_copy(pConfig); + + result = ma_decoder_init_memory(pData, dataSize, &config, &decoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder__full_decode_and_uninit(&decoder, pConfig, pFrameCountOut, ppPCMFramesOut); +} +#endif /* MA_NO_DECODING */ + + +#ifndef MA_NO_ENCODING + +#if defined(MA_HAS_WAV) +static size_t ma_encoder__internal_on_write_wav(void* pUserData, const void* pData, size_t bytesToWrite) +{ + ma_encoder* pEncoder = (ma_encoder*)pUserData; + MA_ASSERT(pEncoder != NULL); + + return pEncoder->onWrite(pEncoder, pData, bytesToWrite); +} + +static drwav_bool32 ma_encoder__internal_on_seek_wav(void* pUserData, int offset, drwav_seek_origin origin) +{ + ma_encoder* pEncoder = (ma_encoder*)pUserData; + MA_ASSERT(pEncoder != NULL); + + return pEncoder->onSeek(pEncoder, offset, (origin == drwav_seek_origin_start) ? ma_seek_origin_start : ma_seek_origin_current); +} + +static ma_result ma_encoder__on_init_wav(ma_encoder* pEncoder) +{ + drwav_data_format wavFormat; + drwav_allocation_callbacks allocationCallbacks; + drwav* pWav; + + MA_ASSERT(pEncoder != NULL); + + pWav = (drwav*)ma__malloc_from_callbacks(sizeof(*pWav), &pEncoder->config.allocationCallbacks); + if (pWav == NULL) { + return MA_OUT_OF_MEMORY; + } + + wavFormat.container = drwav_container_riff; + wavFormat.channels = pEncoder->config.channels; + wavFormat.sampleRate = pEncoder->config.sampleRate; + wavFormat.bitsPerSample = ma_get_bytes_per_sample(pEncoder->config.format) * 8; + if (pEncoder->config.format == ma_format_f32) { + wavFormat.format = DR_WAVE_FORMAT_IEEE_FLOAT; + } else { + wavFormat.format = DR_WAVE_FORMAT_PCM; + } + + allocationCallbacks.pUserData = pEncoder->config.allocationCallbacks.pUserData; + allocationCallbacks.onMalloc = pEncoder->config.allocationCallbacks.onMalloc; + allocationCallbacks.onRealloc = pEncoder->config.allocationCallbacks.onRealloc; + allocationCallbacks.onFree = pEncoder->config.allocationCallbacks.onFree; + + if (!drwav_init_write(pWav, &wavFormat, ma_encoder__internal_on_write_wav, ma_encoder__internal_on_seek_wav, pEncoder, &allocationCallbacks)) { + return MA_ERROR; + } + + pEncoder->pInternalEncoder = pWav; + + return MA_SUCCESS; +} + +static void ma_encoder__on_uninit_wav(ma_encoder* pEncoder) +{ + drwav* pWav; + + MA_ASSERT(pEncoder != NULL); + + pWav = (drwav*)pEncoder->pInternalEncoder; + MA_ASSERT(pWav != NULL); + + drwav_uninit(pWav); + ma__free_from_callbacks(pWav, &pEncoder->config.allocationCallbacks); +} + +static ma_uint64 ma_encoder__on_write_pcm_frames_wav(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount) +{ + drwav* pWav; + + MA_ASSERT(pEncoder != NULL); + + pWav = (drwav*)pEncoder->pInternalEncoder; + MA_ASSERT(pWav != NULL); + + return drwav_write_pcm_frames(pWav, frameCount, pFramesIn); +} +#endif + +MA_API ma_encoder_config ma_encoder_config_init(ma_resource_format resourceFormat, ma_format format, ma_uint32 channels, ma_uint32 sampleRate) +{ + ma_encoder_config config; + + MA_ZERO_OBJECT(&config); + config.resourceFormat = resourceFormat; + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + + return config; +} + +MA_API ma_result ma_encoder_preinit(const ma_encoder_config* pConfig, ma_encoder* pEncoder) +{ + ma_result result; + + if (pEncoder == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pEncoder); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->format == ma_format_unknown || pConfig->channels == 0 || pConfig->sampleRate == 0) { + return MA_INVALID_ARGS; + } + + pEncoder->config = *pConfig; + + result = ma_allocation_callbacks_init_copy(&pEncoder->config.allocationCallbacks, &pConfig->allocationCallbacks); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_encoder_init__internal(ma_encoder_write_proc onWrite, ma_encoder_seek_proc onSeek, void* pUserData, ma_encoder* pEncoder) +{ + ma_result result = MA_SUCCESS; + + /* This assumes ma_encoder_preinit() has been called prior. */ + MA_ASSERT(pEncoder != NULL); + + if (onWrite == NULL || onSeek == NULL) { + return MA_INVALID_ARGS; + } + + pEncoder->onWrite = onWrite; + pEncoder->onSeek = onSeek; + pEncoder->pUserData = pUserData; + + switch (pEncoder->config.resourceFormat) + { + case ma_resource_format_wav: + { + #if defined(MA_HAS_WAV) + pEncoder->onInit = ma_encoder__on_init_wav; + pEncoder->onUninit = ma_encoder__on_uninit_wav; + pEncoder->onWritePCMFrames = ma_encoder__on_write_pcm_frames_wav; + #else + result = MA_NO_BACKEND; + #endif + } break; + + default: + { + result = MA_INVALID_ARGS; + } break; + } + + /* Getting here means we should have our backend callbacks set up. */ + if (result == MA_SUCCESS) { + result = pEncoder->onInit(pEncoder); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +MA_API size_t ma_encoder__on_write_stdio(ma_encoder* pEncoder, const void* pBufferIn, size_t bytesToWrite) +{ + return fwrite(pBufferIn, 1, bytesToWrite, (FILE*)pEncoder->pFile); +} + +MA_API ma_bool32 ma_encoder__on_seek_stdio(ma_encoder* pEncoder, int byteOffset, ma_seek_origin origin) +{ + return fseek((FILE*)pEncoder->pFile, byteOffset, (origin == ma_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; +} + +MA_API ma_result ma_encoder_init_file(const char* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder) +{ + ma_result result; + FILE* pFile; + + result = ma_encoder_preinit(pConfig, pEncoder); + if (result != MA_SUCCESS) { + return result; + } + + /* Now open the file. If this fails we don't need to uninitialize the encoder. */ + result = ma_fopen(&pFile, pFilePath, "wb"); + if (pFile == NULL) { + return result; + } + + pEncoder->pFile = pFile; + + return ma_encoder_init__internal(ma_encoder__on_write_stdio, ma_encoder__on_seek_stdio, NULL, pEncoder); +} + +MA_API ma_result ma_encoder_init_file_w(const wchar_t* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder) +{ + ma_result result; + FILE* pFile; + + result = ma_encoder_preinit(pConfig, pEncoder); + if (result != MA_SUCCESS) { + return result; + } + + /* Now open the file. If this fails we don't need to uninitialize the encoder. */ + result = ma_wfopen(&pFile, pFilePath, L"wb", &pEncoder->config.allocationCallbacks); + if (pFile == NULL) { + return result; + } + + pEncoder->pFile = pFile; + + return ma_encoder_init__internal(ma_encoder__on_write_stdio, ma_encoder__on_seek_stdio, NULL, pEncoder); +} + +MA_API ma_result ma_encoder_init(ma_encoder_write_proc onWrite, ma_encoder_seek_proc onSeek, void* pUserData, const ma_encoder_config* pConfig, ma_encoder* pEncoder) +{ + ma_result result; + + result = ma_encoder_preinit(pConfig, pEncoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_encoder_init__internal(onWrite, onSeek, pUserData, pEncoder); +} + + +MA_API void ma_encoder_uninit(ma_encoder* pEncoder) +{ + if (pEncoder == NULL) { + return; + } + + if (pEncoder->onUninit) { + pEncoder->onUninit(pEncoder); + } + + /* If we have a file handle, close it. */ + if (pEncoder->onWrite == ma_encoder__on_write_stdio) { + fclose((FILE*)pEncoder->pFile); + } +} + + +MA_API ma_uint64 ma_encoder_write_pcm_frames(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pEncoder == NULL || pFramesIn == NULL) { + return 0; + } + + return pEncoder->onWritePCMFrames(pEncoder, pFramesIn, frameCount); +} +#endif /* MA_NO_ENCODING */ + + + +/************************************************************************************************************************************************************** + +Generation + +**************************************************************************************************************************************************************/ +#ifndef MA_NO_GENERATION +MA_API ma_waveform_config ma_waveform_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_waveform_type type, double amplitude, double frequency) +{ + ma_waveform_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.type = type; + config.amplitude = amplitude; + config.frequency = frequency; + + return config; +} + +static ma_result ma_waveform__data_source_on_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) +{ + ma_uint64 framesRead = ma_waveform_read_pcm_frames((ma_waveform*)pDataSource, pFramesOut, frameCount); + + if (pFramesRead != NULL) { + *pFramesRead = framesRead; + } + + if (framesRead < frameCount) { + return MA_AT_END; + } + + return MA_SUCCESS; +} + +static ma_result ma_waveform__data_source_on_seek(ma_data_source* pDataSource, ma_uint64 frameIndex) +{ + return ma_waveform_seek_to_pcm_frame((ma_waveform*)pDataSource, frameIndex); +} + +static ma_result ma_waveform__data_source_on_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate) +{ + ma_waveform* pWaveform = (ma_waveform*)pDataSource; + + *pFormat = pWaveform->config.format; + *pChannels = pWaveform->config.channels; + *pSampleRate = pWaveform->config.sampleRate; + + return MA_SUCCESS; +} + +static ma_result ma_waveform__data_source_on_get_cursor(ma_data_source* pDataSource, ma_uint64* pCursor) +{ + ma_waveform* pWaveform = (ma_waveform*)pDataSource; + + *pCursor = (ma_uint64)(pWaveform->time / pWaveform->advance); + + return MA_SUCCESS; +} + +static double ma_waveform__calculate_advance(ma_uint32 sampleRate, double frequency) +{ + return (1.0 / (sampleRate / frequency)); +} + +static void ma_waveform__update_advance(ma_waveform* pWaveform) +{ + pWaveform->advance = ma_waveform__calculate_advance(pWaveform->config.sampleRate, pWaveform->config.frequency); +} + +MA_API ma_result ma_waveform_init(const ma_waveform_config* pConfig, ma_waveform* pWaveform) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pWaveform); + pWaveform->ds.onRead = ma_waveform__data_source_on_read; + pWaveform->ds.onSeek = ma_waveform__data_source_on_seek; + pWaveform->ds.onGetDataFormat = ma_waveform__data_source_on_get_data_format; + pWaveform->ds.onGetCursor = ma_waveform__data_source_on_get_cursor; + pWaveform->ds.onGetLength = NULL; /* Intentionally set to NULL since there's no notion of a length in waveforms. */ + pWaveform->config = *pConfig; + pWaveform->advance = ma_waveform__calculate_advance(pWaveform->config.sampleRate, pWaveform->config.frequency); + pWaveform->time = 0; + + return MA_SUCCESS; +} + +MA_API ma_result ma_waveform_set_amplitude(ma_waveform* pWaveform, double amplitude) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.amplitude = amplitude; + return MA_SUCCESS; +} + +MA_API ma_result ma_waveform_set_frequency(ma_waveform* pWaveform, double frequency) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.frequency = frequency; + ma_waveform__update_advance(pWaveform); + + return MA_SUCCESS; +} + +MA_API ma_result ma_waveform_set_type(ma_waveform* pWaveform, ma_waveform_type type) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.type = type; + return MA_SUCCESS; +} + +MA_API ma_result ma_waveform_set_sample_rate(ma_waveform* pWaveform, ma_uint32 sampleRate) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.sampleRate = sampleRate; + ma_waveform__update_advance(pWaveform); + + return MA_SUCCESS; +} + +static float ma_waveform_sine_f32(double time, double amplitude) +{ + return (float)(ma_sin(MA_TAU_D * time) * amplitude); +} + +static ma_int16 ma_waveform_sine_s16(double time, double amplitude) +{ + return ma_pcm_sample_f32_to_s16(ma_waveform_sine_f32(time, amplitude)); +} + +static float ma_waveform_square_f32(double time, double amplitude) +{ + double f = time - (ma_int64)time; + double r; + + if (f < 0.5) { + r = amplitude; + } else { + r = -amplitude; + } + + return (float)r; +} + +static ma_int16 ma_waveform_square_s16(double time, double amplitude) +{ + return ma_pcm_sample_f32_to_s16(ma_waveform_square_f32(time, amplitude)); +} + +static float ma_waveform_triangle_f32(double time, double amplitude) +{ + double f = time - (ma_int64)time; + double r; + + r = 2 * ma_abs(2 * (f - 0.5)) - 1; + + return (float)(r * amplitude); +} + +static ma_int16 ma_waveform_triangle_s16(double time, double amplitude) +{ + return ma_pcm_sample_f32_to_s16(ma_waveform_triangle_f32(time, amplitude)); +} + +static float ma_waveform_sawtooth_f32(double time, double amplitude) +{ + double f = time - (ma_int64)time; + double r; + + r = 2 * (f - 0.5); + + return (float)(r * amplitude); +} + +static ma_int16 ma_waveform_sawtooth_s16(double time, double amplitude) +{ + return ma_pcm_sample_f32_to_s16(ma_waveform_sawtooth_f32(time, amplitude)); +} + +static void ma_waveform_read_pcm_frames__sine(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + ma_uint64 iChannel; + ma_uint32 bps = ma_get_bytes_per_sample(pWaveform->config.format); + ma_uint32 bpf = bps * pWaveform->config.channels; + + MA_ASSERT(pWaveform != NULL); + MA_ASSERT(pFramesOut != NULL); + + if (pWaveform->config.format == ma_format_f32) { + float* pFramesOutF32 = (float*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_sine_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutF32[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else if (pWaveform->config.format == ma_format_s16) { + ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_int16 s = ma_waveform_sine_s16(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutS16[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_sine_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pWaveform->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } +} + +static void ma_waveform_read_pcm_frames__square(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + ma_uint64 iChannel; + ma_uint32 bps = ma_get_bytes_per_sample(pWaveform->config.format); + ma_uint32 bpf = bps * pWaveform->config.channels; + + MA_ASSERT(pWaveform != NULL); + MA_ASSERT(pFramesOut != NULL); + + if (pWaveform->config.format == ma_format_f32) { + float* pFramesOutF32 = (float*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_square_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutF32[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else if (pWaveform->config.format == ma_format_s16) { + ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_int16 s = ma_waveform_square_s16(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutS16[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_square_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pWaveform->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } +} + +static void ma_waveform_read_pcm_frames__triangle(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + ma_uint64 iChannel; + ma_uint32 bps = ma_get_bytes_per_sample(pWaveform->config.format); + ma_uint32 bpf = bps * pWaveform->config.channels; + + MA_ASSERT(pWaveform != NULL); + MA_ASSERT(pFramesOut != NULL); + + if (pWaveform->config.format == ma_format_f32) { + float* pFramesOutF32 = (float*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_triangle_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutF32[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else if (pWaveform->config.format == ma_format_s16) { + ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_int16 s = ma_waveform_triangle_s16(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutS16[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_triangle_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pWaveform->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } +} + +static void ma_waveform_read_pcm_frames__sawtooth(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + ma_uint64 iChannel; + ma_uint32 bps = ma_get_bytes_per_sample(pWaveform->config.format); + ma_uint32 bpf = bps * pWaveform->config.channels; + + MA_ASSERT(pWaveform != NULL); + MA_ASSERT(pFramesOut != NULL); + + if (pWaveform->config.format == ma_format_f32) { + float* pFramesOutF32 = (float*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_sawtooth_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutF32[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else if (pWaveform->config.format == ma_format_s16) { + ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_int16 s = ma_waveform_sawtooth_s16(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + pFramesOutS16[iFrame*pWaveform->config.channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_waveform_sawtooth_f32(pWaveform->time, pWaveform->config.amplitude); + pWaveform->time += pWaveform->advance; + + for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pWaveform->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } +} + +MA_API ma_uint64 ma_waveform_read_pcm_frames(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount) +{ + if (pWaveform == NULL) { + return 0; + } + + if (pFramesOut != NULL) { + switch (pWaveform->config.type) + { + case ma_waveform_type_sine: + { + ma_waveform_read_pcm_frames__sine(pWaveform, pFramesOut, frameCount); + } break; + + case ma_waveform_type_square: + { + ma_waveform_read_pcm_frames__square(pWaveform, pFramesOut, frameCount); + } break; + + case ma_waveform_type_triangle: + { + ma_waveform_read_pcm_frames__triangle(pWaveform, pFramesOut, frameCount); + } break; + + case ma_waveform_type_sawtooth: + { + ma_waveform_read_pcm_frames__sawtooth(pWaveform, pFramesOut, frameCount); + } break; + + default: return 0; + } + } else { + pWaveform->time += pWaveform->advance * (ma_int64)frameCount; /* Cast to int64 required for VC6. Won't affect anything in practice. */ + } + + return frameCount; +} + +MA_API ma_result ma_waveform_seek_to_pcm_frame(ma_waveform* pWaveform, ma_uint64 frameIndex) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->time = pWaveform->advance * (ma_int64)frameIndex; /* Casting for VC6. Won't be an issue in practice. */ + + return MA_SUCCESS; +} + + +MA_API ma_noise_config ma_noise_config_init(ma_format format, ma_uint32 channels, ma_noise_type type, ma_int32 seed, double amplitude) +{ + ma_noise_config config; + MA_ZERO_OBJECT(&config); + + config.format = format; + config.channels = channels; + config.type = type; + config.seed = seed; + config.amplitude = amplitude; + + if (config.seed == 0) { + config.seed = MA_DEFAULT_LCG_SEED; + } + + return config; +} + + +static ma_result ma_noise__data_source_on_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) +{ + ma_uint64 framesRead = ma_noise_read_pcm_frames((ma_noise*)pDataSource, pFramesOut, frameCount); + + if (pFramesRead != NULL) { + *pFramesRead = framesRead; + } + + if (framesRead < frameCount) { + return MA_AT_END; + } + + return MA_SUCCESS; +} + +static ma_result ma_noise__data_source_on_seek(ma_data_source* pDataSource, ma_uint64 frameIndex) +{ + /* No-op. Just pretend to be successful. */ + (void)pDataSource; + (void)frameIndex; + return MA_SUCCESS; +} + +static ma_result ma_noise__data_source_on_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate) +{ + ma_noise* pNoise = (ma_noise*)pDataSource; + + *pFormat = pNoise->config.format; + *pChannels = pNoise->config.channels; + *pSampleRate = 0; /* There is no notion of sample rate with noise generation. */ + + return MA_SUCCESS; +} + +MA_API ma_result ma_noise_init(const ma_noise_config* pConfig, ma_noise* pNoise) +{ + if (pNoise == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pNoise); + + if (pConfig == NULL) { + return MA_INVALID_ARGS; + } + + if (pConfig->channels < MA_MIN_CHANNELS || pConfig->channels > MA_MAX_CHANNELS) { + return MA_INVALID_ARGS; + } + + pNoise->ds.onRead = ma_noise__data_source_on_read; + pNoise->ds.onSeek = ma_noise__data_source_on_seek; /* <-- No-op for noise. */ + pNoise->ds.onGetDataFormat = ma_noise__data_source_on_get_data_format; + pNoise->ds.onGetCursor = NULL; /* No notion of a cursor for noise. */ + pNoise->ds.onGetLength = NULL; /* No notion of a length for noise. */ + pNoise->config = *pConfig; + ma_lcg_seed(&pNoise->lcg, pConfig->seed); + + if (pNoise->config.type == ma_noise_type_pink) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pConfig->channels; iChannel += 1) { + pNoise->state.pink.accumulation[iChannel] = 0; + pNoise->state.pink.counter[iChannel] = 1; + } + } + + if (pNoise->config.type == ma_noise_type_brownian) { + ma_uint32 iChannel; + for (iChannel = 0; iChannel < pConfig->channels; iChannel += 1) { + pNoise->state.brownian.accumulation[iChannel] = 0; + } + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_noise_set_amplitude(ma_noise* pNoise, double amplitude) +{ + if (pNoise == NULL) { + return MA_INVALID_ARGS; + } + + pNoise->config.amplitude = amplitude; + return MA_SUCCESS; +} + +MA_API ma_result ma_noise_set_seed(ma_noise* pNoise, ma_int32 seed) +{ + if (pNoise == NULL) { + return MA_INVALID_ARGS; + } + + pNoise->lcg.state = seed; + return MA_SUCCESS; +} + + +MA_API ma_result ma_noise_set_type(ma_noise* pNoise, ma_noise_type type) +{ + if (pNoise == NULL) { + return MA_INVALID_ARGS; + } + + pNoise->config.type = type; + return MA_SUCCESS; +} + +static MA_INLINE float ma_noise_f32_white(ma_noise* pNoise) +{ + return (float)(ma_lcg_rand_f64(&pNoise->lcg) * pNoise->config.amplitude); +} + +static MA_INLINE ma_int16 ma_noise_s16_white(ma_noise* pNoise) +{ + return ma_pcm_sample_f32_to_s16(ma_noise_f32_white(pNoise)); +} + +static MA_INLINE ma_uint64 ma_noise_read_pcm_frames__white(ma_noise* pNoise, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + ma_uint32 iChannel; + const ma_uint32 channels = pNoise->config.channels; + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + + if (pNoise->config.format == ma_format_f32) { + float* pFramesOutF32 = (float*)pFramesOut; + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_noise_f32_white(pNoise); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutF32[iFrame*channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutF32[iFrame*channels + iChannel] = ma_noise_f32_white(pNoise); + } + } + } + } else if (pNoise->config.format == ma_format_s16) { + ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_int16 s = ma_noise_s16_white(pNoise); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutS16[iFrame*channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutS16[iFrame*channels + iChannel] = ma_noise_s16_white(pNoise); + } + } + } + } else { + const ma_uint32 bps = ma_get_bytes_per_sample(pNoise->config.format); + const ma_uint32 bpf = bps * channels; + + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_noise_f32_white(pNoise); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pNoise->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + float s = ma_noise_f32_white(pNoise); + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pNoise->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } + } + + return frameCount; +} + + +static MA_INLINE unsigned int ma_tzcnt32(unsigned int x) +{ + unsigned int n; + + /* Special case for odd numbers since they should happen about half the time. */ + if (x & 0x1) { + return 0; + } + + if (x == 0) { + return sizeof(x) << 3; + } + + n = 1; + if ((x & 0x0000FFFF) == 0) { x >>= 16; n += 16; } + if ((x & 0x000000FF) == 0) { x >>= 8; n += 8; } + if ((x & 0x0000000F) == 0) { x >>= 4; n += 4; } + if ((x & 0x00000003) == 0) { x >>= 2; n += 2; } + n -= x & 0x00000001; + + return n; +} + +/* +Pink noise generation based on Tonic (public domain) with modifications. https://github.com/TonicAudio/Tonic/blob/master/src/Tonic/Noise.h + +This is basically _the_ reference for pink noise from what I've found: http://www.firstpr.com.au/dsp/pink-noise/ +*/ +static MA_INLINE float ma_noise_f32_pink(ma_noise* pNoise, ma_uint32 iChannel) +{ + double result; + double binPrev; + double binNext; + unsigned int ibin; + + ibin = ma_tzcnt32(pNoise->state.pink.counter[iChannel]) & (ma_countof(pNoise->state.pink.bin[0]) - 1); + + binPrev = pNoise->state.pink.bin[iChannel][ibin]; + binNext = ma_lcg_rand_f64(&pNoise->lcg); + pNoise->state.pink.bin[iChannel][ibin] = binNext; + + pNoise->state.pink.accumulation[iChannel] += (binNext - binPrev); + pNoise->state.pink.counter[iChannel] += 1; + + result = (ma_lcg_rand_f64(&pNoise->lcg) + pNoise->state.pink.accumulation[iChannel]); + result /= 10; + + return (float)(result * pNoise->config.amplitude); +} + +static MA_INLINE ma_int16 ma_noise_s16_pink(ma_noise* pNoise, ma_uint32 iChannel) +{ + return ma_pcm_sample_f32_to_s16(ma_noise_f32_pink(pNoise, iChannel)); +} + +static MA_INLINE ma_uint64 ma_noise_read_pcm_frames__pink(ma_noise* pNoise, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + ma_uint32 iChannel; + const ma_uint32 channels = pNoise->config.channels; + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + + if (pNoise->config.format == ma_format_f32) { + float* pFramesOutF32 = (float*)pFramesOut; + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_noise_f32_pink(pNoise, 0); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutF32[iFrame*channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutF32[iFrame*channels + iChannel] = ma_noise_f32_pink(pNoise, iChannel); + } + } + } + } else if (pNoise->config.format == ma_format_s16) { + ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_int16 s = ma_noise_s16_pink(pNoise, 0); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutS16[iFrame*channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutS16[iFrame*channels + iChannel] = ma_noise_s16_pink(pNoise, iChannel); + } + } + } + } else { + const ma_uint32 bps = ma_get_bytes_per_sample(pNoise->config.format); + const ma_uint32 bpf = bps * channels; + + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_noise_f32_pink(pNoise, 0); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pNoise->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + float s = ma_noise_f32_pink(pNoise, iChannel); + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pNoise->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } + } + + return frameCount; +} + + +static MA_INLINE float ma_noise_f32_brownian(ma_noise* pNoise, ma_uint32 iChannel) +{ + double result; + + result = (ma_lcg_rand_f64(&pNoise->lcg) + pNoise->state.brownian.accumulation[iChannel]); + result /= 1.005; /* Don't escape the -1..1 range on average. */ + + pNoise->state.brownian.accumulation[iChannel] = result; + result /= 20; + + return (float)(result * pNoise->config.amplitude); +} + +static MA_INLINE ma_int16 ma_noise_s16_brownian(ma_noise* pNoise, ma_uint32 iChannel) +{ + return ma_pcm_sample_f32_to_s16(ma_noise_f32_brownian(pNoise, iChannel)); +} + +static MA_INLINE ma_uint64 ma_noise_read_pcm_frames__brownian(ma_noise* pNoise, void* pFramesOut, ma_uint64 frameCount) +{ + ma_uint64 iFrame; + ma_uint32 iChannel; + const ma_uint32 channels = pNoise->config.channels; + MA_ASSUME(channels >= MA_MIN_CHANNELS && channels <= MA_MAX_CHANNELS); + + if (pNoise->config.format == ma_format_f32) { + float* pFramesOutF32 = (float*)pFramesOut; + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_noise_f32_brownian(pNoise, 0); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutF32[iFrame*channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutF32[iFrame*channels + iChannel] = ma_noise_f32_brownian(pNoise, iChannel); + } + } + } + } else if (pNoise->config.format == ma_format_s16) { + ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + ma_int16 s = ma_noise_s16_brownian(pNoise, 0); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutS16[iFrame*channels + iChannel] = s; + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + pFramesOutS16[iFrame*channels + iChannel] = ma_noise_s16_brownian(pNoise, iChannel); + } + } + } + } else { + const ma_uint32 bps = ma_get_bytes_per_sample(pNoise->config.format); + const ma_uint32 bpf = bps * channels; + + if (pNoise->config.duplicateChannels) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float s = ma_noise_f32_brownian(pNoise, 0); + for (iChannel = 0; iChannel < channels; iChannel += 1) { + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pNoise->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } else { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < channels; iChannel += 1) { + float s = ma_noise_f32_brownian(pNoise, iChannel); + ma_pcm_convert(ma_offset_ptr(pFramesOut, iFrame*bpf + iChannel*bps), pNoise->config.format, &s, ma_format_f32, 1, ma_dither_mode_none); + } + } + } + } + + return frameCount; +} + +MA_API ma_uint64 ma_noise_read_pcm_frames(ma_noise* pNoise, void* pFramesOut, ma_uint64 frameCount) +{ + if (pNoise == NULL) { + return 0; + } + + /* The output buffer is allowed to be NULL. Since we aren't tracking cursors or anything we can just do nothing and pretend to be successful. */ + if (pFramesOut == NULL) { + return frameCount; + } + + if (pNoise->config.type == ma_noise_type_white) { + return ma_noise_read_pcm_frames__white(pNoise, pFramesOut, frameCount); + } + + if (pNoise->config.type == ma_noise_type_pink) { + return ma_noise_read_pcm_frames__pink(pNoise, pFramesOut, frameCount); + } + + if (pNoise->config.type == ma_noise_type_brownian) { + return ma_noise_read_pcm_frames__brownian(pNoise, pFramesOut, frameCount); + } + + /* Should never get here. */ + MA_ASSERT(MA_FALSE); + return 0; +} +#endif /* MA_NO_GENERATION */ + + + +/************************************************************************************************************************************************************** +*************************************************************************************************************************************************************** + +Auto Generated +============== +All code below is auto-generated from a tool. This mostly consists of decoding backend implementations such as dr_wav, dr_flac, etc. If you find a bug in the +code below please report the bug to the respective repository for the relevant project (probably dr_libs). + +*************************************************************************************************************************************************************** +**************************************************************************************************************************************************************/ +#if !defined(MA_NO_WAV) && (!defined(MA_NO_DECODING) || !defined(MA_NO_ENCODING)) +#if !defined(DR_WAV_IMPLEMENTATION) && !defined(DRWAV_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ +/* dr_wav_c begin */ +#ifndef dr_wav_c +#define dr_wav_c +#include +#include +#include +#ifndef DR_WAV_NO_STDIO +#include +#include +#endif +#ifndef DRWAV_ASSERT +#include +#define DRWAV_ASSERT(expression) assert(expression) +#endif +#ifndef DRWAV_MALLOC +#define DRWAV_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRWAV_REALLOC +#define DRWAV_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRWAV_FREE +#define DRWAV_FREE(p) free((p)) +#endif +#ifndef DRWAV_COPY_MEMORY +#define DRWAV_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRWAV_ZERO_MEMORY +#define DRWAV_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#ifndef DRWAV_ZERO_OBJECT +#define DRWAV_ZERO_OBJECT(p) DRWAV_ZERO_MEMORY((p), sizeof(*p)) +#endif +#define drwav_countof(x) (sizeof(x) / sizeof(x[0])) +#define drwav_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) +#define drwav_min(a, b) (((a) < (b)) ? (a) : (b)) +#define drwav_max(a, b) (((a) > (b)) ? (a) : (b)) +#define drwav_clamp(x, lo, hi) (drwav_max((lo), drwav_min((hi), (x)))) +#define DRWAV_MAX_SIMD_VECTOR_SIZE 64 +#if defined(__x86_64__) || defined(_M_X64) + #define DRWAV_X64 +#elif defined(__i386) || defined(_M_IX86) + #define DRWAV_X86 +#elif defined(__arm__) || defined(_M_ARM) + #define DRWAV_ARM +#endif +#ifdef _MSC_VER + #define DRWAV_INLINE __forceinline +#elif defined(__GNUC__) + #if defined(__STRICT_ANSI__) + #define DRWAV_INLINE __inline__ __attribute__((always_inline)) + #else + #define DRWAV_INLINE inline __attribute__((always_inline)) + #endif +#elif defined(__WATCOMC__) + #define DRWAV_INLINE __inline +#else + #define DRWAV_INLINE +#endif +#if defined(SIZE_MAX) + #define DRWAV_SIZE_MAX SIZE_MAX +#else + #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) + #define DRWAV_SIZE_MAX ((drwav_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRWAV_SIZE_MAX 0xFFFFFFFF + #endif +#endif +#if defined(_MSC_VER) && _MSC_VER >= 1400 + #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #define DRWAV_HAS_BYTESWAP32_INTRINSIC + #define DRWAV_HAS_BYTESWAP64_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_bswap16) + #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap32) + #define DRWAV_HAS_BYTESWAP32_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap64) + #define DRWAV_HAS_BYTESWAP64_INTRINSIC + #endif + #endif +#elif defined(__GNUC__) + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define DRWAV_HAS_BYTESWAP32_INTRINSIC + #define DRWAV_HAS_BYTESWAP64_INTRINSIC + #endif + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #endif +#endif +DRWAV_API void drwav_version(drwav_uint32* pMajor, drwav_uint32* pMinor, drwav_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRWAV_VERSION_MAJOR; + } + if (pMinor) { + *pMinor = DRWAV_VERSION_MINOR; + } + if (pRevision) { + *pRevision = DRWAV_VERSION_REVISION; + } +} +DRWAV_API const char* drwav_version_string(void) +{ + return DRWAV_VERSION_STRING; +} +#ifndef DRWAV_MAX_SAMPLE_RATE +#define DRWAV_MAX_SAMPLE_RATE 384000 +#endif +#ifndef DRWAV_MAX_CHANNELS +#define DRWAV_MAX_CHANNELS 256 +#endif +#ifndef DRWAV_MAX_BITS_PER_SAMPLE +#define DRWAV_MAX_BITS_PER_SAMPLE 64 +#endif +static const drwav_uint8 drwavGUID_W64_RIFF[16] = {0x72,0x69,0x66,0x66, 0x2E,0x91, 0xCF,0x11, 0xA5,0xD6, 0x28,0xDB,0x04,0xC1,0x00,0x00}; +static const drwav_uint8 drwavGUID_W64_WAVE[16] = {0x77,0x61,0x76,0x65, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static const drwav_uint8 drwavGUID_W64_FMT [16] = {0x66,0x6D,0x74,0x20, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static const drwav_uint8 drwavGUID_W64_FACT[16] = {0x66,0x61,0x63,0x74, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static const drwav_uint8 drwavGUID_W64_DATA[16] = {0x64,0x61,0x74,0x61, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static const drwav_uint8 drwavGUID_W64_SMPL[16] = {0x73,0x6D,0x70,0x6C, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static DRWAV_INLINE int drwav__is_little_endian(void) +{ +#if defined(DRWAV_X86) || defined(DRWAV_X64) + return DRWAV_TRUE; +#elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN + return DRWAV_TRUE; +#else + int n = 1; + return (*(char*)&n) == 1; +#endif +} +static DRWAV_INLINE void drwav__bytes_to_guid(const drwav_uint8* data, drwav_uint8* guid) +{ + int i; + for (i = 0; i < 16; ++i) { + guid[i] = data[i]; + } +} +static DRWAV_INLINE drwav_uint16 drwav__bswap16(drwav_uint16 n) +{ +#ifdef DRWAV_HAS_BYTESWAP16_INTRINSIC + #if defined(_MSC_VER) + return _byteswap_ushort(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap16(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF00) >> 8) | + ((n & 0x00FF) << 8); +#endif +} +static DRWAV_INLINE drwav_uint32 drwav__bswap32(drwav_uint32 n) +{ +#ifdef DRWAV_HAS_BYTESWAP32_INTRINSIC + #if defined(_MSC_VER) + return _byteswap_ulong(n); + #elif defined(__GNUC__) || defined(__clang__) + #if defined(DRWAV_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(DRWAV_64BIT) + drwav_uint32 r; + __asm__ __volatile__ ( + #if defined(DRWAV_64BIT) + "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) + #else + "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) + #endif + ); + return r; + #else + return __builtin_bswap32(n); + #endif + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF000000) >> 24) | + ((n & 0x00FF0000) >> 8) | + ((n & 0x0000FF00) << 8) | + ((n & 0x000000FF) << 24); +#endif +} +static DRWAV_INLINE drwav_uint64 drwav__bswap64(drwav_uint64 n) +{ +#ifdef DRWAV_HAS_BYTESWAP64_INTRINSIC + #if defined(_MSC_VER) + return _byteswap_uint64(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap64(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & ((drwav_uint64)0xFF000000 << 32)) >> 56) | + ((n & ((drwav_uint64)0x00FF0000 << 32)) >> 40) | + ((n & ((drwav_uint64)0x0000FF00 << 32)) >> 24) | + ((n & ((drwav_uint64)0x000000FF << 32)) >> 8) | + ((n & ((drwav_uint64)0xFF000000 )) << 8) | + ((n & ((drwav_uint64)0x00FF0000 )) << 24) | + ((n & ((drwav_uint64)0x0000FF00 )) << 40) | + ((n & ((drwav_uint64)0x000000FF )) << 56); +#endif +} +static DRWAV_INLINE drwav_int16 drwav__bswap_s16(drwav_int16 n) +{ + return (drwav_int16)drwav__bswap16((drwav_uint16)n); +} +static DRWAV_INLINE void drwav__bswap_samples_s16(drwav_int16* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_s16(pSamples[iSample]); + } +} +static DRWAV_INLINE void drwav__bswap_s24(drwav_uint8* p) +{ + drwav_uint8 t; + t = p[0]; + p[0] = p[2]; + p[2] = t; +} +static DRWAV_INLINE void drwav__bswap_samples_s24(drwav_uint8* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + drwav_uint8* pSample = pSamples + (iSample*3); + drwav__bswap_s24(pSample); + } +} +static DRWAV_INLINE drwav_int32 drwav__bswap_s32(drwav_int32 n) +{ + return (drwav_int32)drwav__bswap32((drwav_uint32)n); +} +static DRWAV_INLINE void drwav__bswap_samples_s32(drwav_int32* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_s32(pSamples[iSample]); + } +} +static DRWAV_INLINE float drwav__bswap_f32(float n) +{ + union { + drwav_uint32 i; + float f; + } x; + x.f = n; + x.i = drwav__bswap32(x.i); + return x.f; +} +static DRWAV_INLINE void drwav__bswap_samples_f32(float* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_f32(pSamples[iSample]); + } +} +static DRWAV_INLINE double drwav__bswap_f64(double n) +{ + union { + drwav_uint64 i; + double f; + } x; + x.f = n; + x.i = drwav__bswap64(x.i); + return x.f; +} +static DRWAV_INLINE void drwav__bswap_samples_f64(double* pSamples, drwav_uint64 sampleCount) +{ + drwav_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = drwav__bswap_f64(pSamples[iSample]); + } +} +static DRWAV_INLINE void drwav__bswap_samples_pcm(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample) +{ + switch (bytesPerSample) + { + case 2: + { + drwav__bswap_samples_s16((drwav_int16*)pSamples, sampleCount); + } break; + case 3: + { + drwav__bswap_samples_s24((drwav_uint8*)pSamples, sampleCount); + } break; + case 4: + { + drwav__bswap_samples_s32((drwav_int32*)pSamples, sampleCount); + } break; + default: + { + DRWAV_ASSERT(DRWAV_FALSE); + } break; + } +} +static DRWAV_INLINE void drwav__bswap_samples_ieee(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample) +{ + switch (bytesPerSample) + { + #if 0 + case 2: + { + drwav__bswap_samples_f16((drwav_float16*)pSamples, sampleCount); + } break; + #endif + case 4: + { + drwav__bswap_samples_f32((float*)pSamples, sampleCount); + } break; + case 8: + { + drwav__bswap_samples_f64((double*)pSamples, sampleCount); + } break; + default: + { + DRWAV_ASSERT(DRWAV_FALSE); + } break; + } +} +static DRWAV_INLINE void drwav__bswap_samples(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample, drwav_uint16 format) +{ + switch (format) + { + case DR_WAVE_FORMAT_PCM: + { + drwav__bswap_samples_pcm(pSamples, sampleCount, bytesPerSample); + } break; + case DR_WAVE_FORMAT_IEEE_FLOAT: + { + drwav__bswap_samples_ieee(pSamples, sampleCount, bytesPerSample); + } break; + case DR_WAVE_FORMAT_ALAW: + case DR_WAVE_FORMAT_MULAW: + { + drwav__bswap_samples_s16((drwav_int16*)pSamples, sampleCount); + } break; + case DR_WAVE_FORMAT_ADPCM: + case DR_WAVE_FORMAT_DVI_ADPCM: + default: + { + DRWAV_ASSERT(DRWAV_FALSE); + } break; + } +} +DRWAV_PRIVATE void* drwav__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRWAV_MALLOC(sz); +} +DRWAV_PRIVATE void* drwav__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRWAV_REALLOC(p, sz); +} +DRWAV_PRIVATE void drwav__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRWAV_FREE(p); +} +DRWAV_PRIVATE void* drwav__malloc_from_callbacks(size_t sz, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + return NULL; +} +DRWAV_PRIVATE void* drwav__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + if (p != NULL) { + DRWAV_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + return p2; + } + return NULL; +} +DRWAV_PRIVATE void drwav__free_from_callbacks(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} +DRWAV_PRIVATE drwav_allocation_callbacks drwav_copy_allocation_callbacks_or_defaults(const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + return *pAllocationCallbacks; + } else { + drwav_allocation_callbacks allocationCallbacks; + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drwav__malloc_default; + allocationCallbacks.onRealloc = drwav__realloc_default; + allocationCallbacks.onFree = drwav__free_default; + return allocationCallbacks; + } +} +static DRWAV_INLINE drwav_bool32 drwav__is_compressed_format_tag(drwav_uint16 formatTag) +{ + return + formatTag == DR_WAVE_FORMAT_ADPCM || + formatTag == DR_WAVE_FORMAT_DVI_ADPCM; +} +DRWAV_PRIVATE unsigned int drwav__chunk_padding_size_riff(drwav_uint64 chunkSize) +{ + return (unsigned int)(chunkSize % 2); +} +DRWAV_PRIVATE unsigned int drwav__chunk_padding_size_w64(drwav_uint64 chunkSize) +{ + return (unsigned int)(chunkSize % 8); +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); +DRWAV_PRIVATE drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount); +DRWAV_PRIVATE drwav_result drwav__read_chunk_header(drwav_read_proc onRead, void* pUserData, drwav_container container, drwav_uint64* pRunningBytesReadOut, drwav_chunk_header* pHeaderOut) +{ + if (container == drwav_container_riff || container == drwav_container_rf64) { + drwav_uint8 sizeInBytes[4]; + if (onRead(pUserData, pHeaderOut->id.fourcc, 4) != 4) { + return DRWAV_AT_END; + } + if (onRead(pUserData, sizeInBytes, 4) != 4) { + return DRWAV_INVALID_FILE; + } + pHeaderOut->sizeInBytes = drwav_bytes_to_u32(sizeInBytes); + pHeaderOut->paddingSize = drwav__chunk_padding_size_riff(pHeaderOut->sizeInBytes); + *pRunningBytesReadOut += 8; + } else { + drwav_uint8 sizeInBytes[8]; + if (onRead(pUserData, pHeaderOut->id.guid, 16) != 16) { + return DRWAV_AT_END; + } + if (onRead(pUserData, sizeInBytes, 8) != 8) { + return DRWAV_INVALID_FILE; + } + pHeaderOut->sizeInBytes = drwav_bytes_to_u64(sizeInBytes) - 24; + pHeaderOut->paddingSize = drwav__chunk_padding_size_w64(pHeaderOut->sizeInBytes); + *pRunningBytesReadOut += 24; + } + return DRWAV_SUCCESS; +} +DRWAV_PRIVATE drwav_bool32 drwav__seek_forward(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) +{ + drwav_uint64 bytesRemainingToSeek = offset; + while (bytesRemainingToSeek > 0) { + if (bytesRemainingToSeek > 0x7FFFFFFF) { + if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_current)) { + return DRWAV_FALSE; + } + bytesRemainingToSeek -= 0x7FFFFFFF; + } else { + if (!onSeek(pUserData, (int)bytesRemainingToSeek, drwav_seek_origin_current)) { + return DRWAV_FALSE; + } + bytesRemainingToSeek = 0; + } + } + return DRWAV_TRUE; +} +DRWAV_PRIVATE drwav_bool32 drwav__seek_from_start(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) +{ + if (offset <= 0x7FFFFFFF) { + return onSeek(pUserData, (int)offset, drwav_seek_origin_start); + } + if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_start)) { + return DRWAV_FALSE; + } + offset -= 0x7FFFFFFF; + for (;;) { + if (offset <= 0x7FFFFFFF) { + return onSeek(pUserData, (int)offset, drwav_seek_origin_current); + } + if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_current)) { + return DRWAV_FALSE; + } + offset -= 0x7FFFFFFF; + } +} +DRWAV_PRIVATE drwav_bool32 drwav__read_fmt(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, drwav_container container, drwav_uint64* pRunningBytesReadOut, drwav_fmt* fmtOut) +{ + drwav_chunk_header header; + drwav_uint8 fmt[16]; + if (drwav__read_chunk_header(onRead, pUserData, container, pRunningBytesReadOut, &header) != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + while (((container == drwav_container_riff || container == drwav_container_rf64) && !drwav_fourcc_equal(header.id.fourcc, "fmt ")) || (container == drwav_container_w64 && !drwav_guid_equal(header.id.guid, drwavGUID_W64_FMT))) { + if (!drwav__seek_forward(onSeek, header.sizeInBytes + header.paddingSize, pUserData)) { + return DRWAV_FALSE; + } + *pRunningBytesReadOut += header.sizeInBytes + header.paddingSize; + if (drwav__read_chunk_header(onRead, pUserData, container, pRunningBytesReadOut, &header) != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + } + if (container == drwav_container_riff || container == drwav_container_rf64) { + if (!drwav_fourcc_equal(header.id.fourcc, "fmt ")) { + return DRWAV_FALSE; + } + } else { + if (!drwav_guid_equal(header.id.guid, drwavGUID_W64_FMT)) { + return DRWAV_FALSE; + } + } + if (onRead(pUserData, fmt, sizeof(fmt)) != sizeof(fmt)) { + return DRWAV_FALSE; + } + *pRunningBytesReadOut += sizeof(fmt); + fmtOut->formatTag = drwav_bytes_to_u16(fmt + 0); + fmtOut->channels = drwav_bytes_to_u16(fmt + 2); + fmtOut->sampleRate = drwav_bytes_to_u32(fmt + 4); + fmtOut->avgBytesPerSec = drwav_bytes_to_u32(fmt + 8); + fmtOut->blockAlign = drwav_bytes_to_u16(fmt + 12); + fmtOut->bitsPerSample = drwav_bytes_to_u16(fmt + 14); + fmtOut->extendedSize = 0; + fmtOut->validBitsPerSample = 0; + fmtOut->channelMask = 0; + memset(fmtOut->subFormat, 0, sizeof(fmtOut->subFormat)); + if (header.sizeInBytes > 16) { + drwav_uint8 fmt_cbSize[2]; + int bytesReadSoFar = 0; + if (onRead(pUserData, fmt_cbSize, sizeof(fmt_cbSize)) != sizeof(fmt_cbSize)) { + return DRWAV_FALSE; + } + *pRunningBytesReadOut += sizeof(fmt_cbSize); + bytesReadSoFar = 18; + fmtOut->extendedSize = drwav_bytes_to_u16(fmt_cbSize); + if (fmtOut->extendedSize > 0) { + if (fmtOut->formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { + if (fmtOut->extendedSize != 22) { + return DRWAV_FALSE; + } + } + if (fmtOut->formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { + drwav_uint8 fmtext[22]; + if (onRead(pUserData, fmtext, fmtOut->extendedSize) != fmtOut->extendedSize) { + return DRWAV_FALSE; + } + fmtOut->validBitsPerSample = drwav_bytes_to_u16(fmtext + 0); + fmtOut->channelMask = drwav_bytes_to_u32(fmtext + 2); + drwav__bytes_to_guid(fmtext + 6, fmtOut->subFormat); + } else { + if (!onSeek(pUserData, fmtOut->extendedSize, drwav_seek_origin_current)) { + return DRWAV_FALSE; + } + } + *pRunningBytesReadOut += fmtOut->extendedSize; + bytesReadSoFar += fmtOut->extendedSize; + } + if (!onSeek(pUserData, (int)(header.sizeInBytes - bytesReadSoFar), drwav_seek_origin_current)) { + return DRWAV_FALSE; + } + *pRunningBytesReadOut += (header.sizeInBytes - bytesReadSoFar); + } + if (header.paddingSize > 0) { + if (!onSeek(pUserData, header.paddingSize, drwav_seek_origin_current)) { + return DRWAV_FALSE; + } + *pRunningBytesReadOut += header.paddingSize; + } + return DRWAV_TRUE; +} +DRWAV_PRIVATE size_t drwav__on_read(drwav_read_proc onRead, void* pUserData, void* pBufferOut, size_t bytesToRead, drwav_uint64* pCursor) +{ + size_t bytesRead; + DRWAV_ASSERT(onRead != NULL); + DRWAV_ASSERT(pCursor != NULL); + bytesRead = onRead(pUserData, pBufferOut, bytesToRead); + *pCursor += bytesRead; + return bytesRead; +} +#if 0 +DRWAV_PRIVATE drwav_bool32 drwav__on_seek(drwav_seek_proc onSeek, void* pUserData, int offset, drwav_seek_origin origin, drwav_uint64* pCursor) +{ + DRWAV_ASSERT(onSeek != NULL); + DRWAV_ASSERT(pCursor != NULL); + if (!onSeek(pUserData, offset, origin)) { + return DRWAV_FALSE; + } + if (origin == drwav_seek_origin_start) { + *pCursor = offset; + } else { + *pCursor += offset; + } + return DRWAV_TRUE; +} +#endif +DRWAV_PRIVATE drwav_uint32 drwav_get_bytes_per_pcm_frame(drwav* pWav) +{ + if ((pWav->bitsPerSample & 0x7) == 0) { + return (pWav->bitsPerSample * pWav->fmt.channels) >> 3; + } else { + return pWav->fmt.blockAlign; + } +} +DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT) +{ + if (pFMT == NULL) { + return 0; + } + if (pFMT->formatTag != DR_WAVE_FORMAT_EXTENSIBLE) { + return pFMT->formatTag; + } else { + return drwav_bytes_to_u16(pFMT->subFormat); + } +} +DRWAV_PRIVATE drwav_bool32 drwav_preinit(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pReadSeekUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pWav == NULL || onRead == NULL || onSeek == NULL) { + return DRWAV_FALSE; + } + DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); + pWav->onRead = onRead; + pWav->onSeek = onSeek; + pWav->pUserData = pReadSeekUserData; + pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { + return DRWAV_FALSE; + } + return DRWAV_TRUE; +} +DRWAV_PRIVATE drwav_bool32 drwav_init__internal(drwav* pWav, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags) +{ + drwav_uint64 cursor; + drwav_bool32 sequential; + drwav_uint8 riff[4]; + drwav_fmt fmt; + unsigned short translatedFormatTag; + drwav_bool32 foundDataChunk; + drwav_uint64 dataChunkSize = 0; + drwav_uint64 sampleCountFromFactChunk = 0; + drwav_uint64 chunkSize; + cursor = 0; + sequential = (flags & DRWAV_SEQUENTIAL) != 0; + if (drwav__on_read(pWav->onRead, pWav->pUserData, riff, sizeof(riff), &cursor) != sizeof(riff)) { + return DRWAV_FALSE; + } + if (drwav_fourcc_equal(riff, "RIFF")) { + pWav->container = drwav_container_riff; + } else if (drwav_fourcc_equal(riff, "riff")) { + int i; + drwav_uint8 riff2[12]; + pWav->container = drwav_container_w64; + if (drwav__on_read(pWav->onRead, pWav->pUserData, riff2, sizeof(riff2), &cursor) != sizeof(riff2)) { + return DRWAV_FALSE; + } + for (i = 0; i < 12; ++i) { + if (riff2[i] != drwavGUID_W64_RIFF[i+4]) { + return DRWAV_FALSE; + } + } + } else if (drwav_fourcc_equal(riff, "RF64")) { + pWav->container = drwav_container_rf64; + } else { + return DRWAV_FALSE; + } + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { + drwav_uint8 chunkSizeBytes[4]; + drwav_uint8 wave[4]; + if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return DRWAV_FALSE; + } + if (pWav->container == drwav_container_riff) { + if (drwav_bytes_to_u32(chunkSizeBytes) < 36) { + return DRWAV_FALSE; + } + } else { + if (drwav_bytes_to_u32(chunkSizeBytes) != 0xFFFFFFFF) { + return DRWAV_FALSE; + } + } + if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { + return DRWAV_FALSE; + } + if (!drwav_fourcc_equal(wave, "WAVE")) { + return DRWAV_FALSE; + } + } else { + drwav_uint8 chunkSizeBytes[8]; + drwav_uint8 wave[16]; + if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return DRWAV_FALSE; + } + if (drwav_bytes_to_u64(chunkSizeBytes) < 80) { + return DRWAV_FALSE; + } + if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { + return DRWAV_FALSE; + } + if (!drwav_guid_equal(wave, drwavGUID_W64_WAVE)) { + return DRWAV_FALSE; + } + } + if (pWav->container == drwav_container_rf64) { + drwav_uint8 sizeBytes[8]; + drwav_uint64 bytesRemainingInChunk; + drwav_chunk_header header; + drwav_result result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + if (!drwav_fourcc_equal(header.id.fourcc, "ds64")) { + return DRWAV_FALSE; + } + bytesRemainingInChunk = header.sizeInBytes + header.paddingSize; + if (!drwav__seek_forward(pWav->onSeek, 8, pWav->pUserData)) { + return DRWAV_FALSE; + } + bytesRemainingInChunk -= 8; + cursor += 8; + if (drwav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { + return DRWAV_FALSE; + } + bytesRemainingInChunk -= 8; + dataChunkSize = drwav_bytes_to_u64(sizeBytes); + if (drwav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { + return DRWAV_FALSE; + } + bytesRemainingInChunk -= 8; + sampleCountFromFactChunk = drwav_bytes_to_u64(sizeBytes); + if (!drwav__seek_forward(pWav->onSeek, bytesRemainingInChunk, pWav->pUserData)) { + return DRWAV_FALSE; + } + cursor += bytesRemainingInChunk; + } + if (!drwav__read_fmt(pWav->onRead, pWav->onSeek, pWav->pUserData, pWav->container, &cursor, &fmt)) { + return DRWAV_FALSE; + } + if ((fmt.sampleRate == 0 || fmt.sampleRate > DRWAV_MAX_SAMPLE_RATE) || + (fmt.channels == 0 || fmt.channels > DRWAV_MAX_CHANNELS) || + (fmt.bitsPerSample == 0 || fmt.bitsPerSample > DRWAV_MAX_BITS_PER_SAMPLE) || + fmt.blockAlign == 0) { + return DRWAV_FALSE; + } + translatedFormatTag = fmt.formatTag; + if (translatedFormatTag == DR_WAVE_FORMAT_EXTENSIBLE) { + translatedFormatTag = drwav_bytes_to_u16(fmt.subFormat + 0); + } + foundDataChunk = DRWAV_FALSE; + for (;;) + { + drwav_chunk_header header; + drwav_result result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != DRWAV_SUCCESS) { + if (!foundDataChunk) { + return DRWAV_FALSE; + } else { + break; + } + } + if (!sequential && onChunk != NULL) { + drwav_uint64 callbackBytesRead = onChunk(pChunkUserData, pWav->onRead, pWav->onSeek, pWav->pUserData, &header, pWav->container, &fmt); + if (callbackBytesRead > 0) { + if (!drwav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData)) { + return DRWAV_FALSE; + } + } + } + if (!foundDataChunk) { + pWav->dataChunkDataPos = cursor; + } + chunkSize = header.sizeInBytes; + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { + if (drwav_fourcc_equal(header.id.fourcc, "data")) { + foundDataChunk = DRWAV_TRUE; + if (pWav->container != drwav_container_rf64) { + dataChunkSize = chunkSize; + } + } + } else { + if (drwav_guid_equal(header.id.guid, drwavGUID_W64_DATA)) { + foundDataChunk = DRWAV_TRUE; + dataChunkSize = chunkSize; + } + } + if (foundDataChunk && sequential) { + break; + } + if (pWav->container == drwav_container_riff) { + if (drwav_fourcc_equal(header.id.fourcc, "fact")) { + drwav_uint32 sampleCount; + if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCount, 4, &cursor) != 4) { + return DRWAV_FALSE; + } + chunkSize -= 4; + if (!foundDataChunk) { + pWav->dataChunkDataPos = cursor; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + sampleCountFromFactChunk = sampleCount; + } else { + sampleCountFromFactChunk = 0; + } + } + } else if (pWav->container == drwav_container_w64) { + if (drwav_guid_equal(header.id.guid, drwavGUID_W64_FACT)) { + if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCountFromFactChunk, 8, &cursor) != 8) { + return DRWAV_FALSE; + } + chunkSize -= 8; + if (!foundDataChunk) { + pWav->dataChunkDataPos = cursor; + } + } + } else if (pWav->container == drwav_container_rf64) { + } + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { + if (drwav_fourcc_equal(header.id.fourcc, "smpl")) { + drwav_uint8 smplHeaderData[36]; + if (chunkSize >= sizeof(smplHeaderData)) { + drwav_uint64 bytesJustRead = drwav__on_read(pWav->onRead, pWav->pUserData, smplHeaderData, sizeof(smplHeaderData), &cursor); + chunkSize -= bytesJustRead; + if (bytesJustRead == sizeof(smplHeaderData)) { + drwav_uint32 iLoop; + pWav->smpl.manufacturer = drwav_bytes_to_u32(smplHeaderData+0); + pWav->smpl.product = drwav_bytes_to_u32(smplHeaderData+4); + pWav->smpl.samplePeriod = drwav_bytes_to_u32(smplHeaderData+8); + pWav->smpl.midiUnityNotes = drwav_bytes_to_u32(smplHeaderData+12); + pWav->smpl.midiPitchFraction = drwav_bytes_to_u32(smplHeaderData+16); + pWav->smpl.smpteFormat = drwav_bytes_to_u32(smplHeaderData+20); + pWav->smpl.smpteOffset = drwav_bytes_to_u32(smplHeaderData+24); + pWav->smpl.numSampleLoops = drwav_bytes_to_u32(smplHeaderData+28); + pWav->smpl.samplerData = drwav_bytes_to_u32(smplHeaderData+32); + for (iLoop = 0; iLoop < pWav->smpl.numSampleLoops && iLoop < drwav_countof(pWav->smpl.loops); ++iLoop) { + drwav_uint8 smplLoopData[24]; + bytesJustRead = drwav__on_read(pWav->onRead, pWav->pUserData, smplLoopData, sizeof(smplLoopData), &cursor); + chunkSize -= bytesJustRead; + if (bytesJustRead == sizeof(smplLoopData)) { + pWav->smpl.loops[iLoop].cuePointId = drwav_bytes_to_u32(smplLoopData+0); + pWav->smpl.loops[iLoop].type = drwav_bytes_to_u32(smplLoopData+4); + pWav->smpl.loops[iLoop].start = drwav_bytes_to_u32(smplLoopData+8); + pWav->smpl.loops[iLoop].end = drwav_bytes_to_u32(smplLoopData+12); + pWav->smpl.loops[iLoop].fraction = drwav_bytes_to_u32(smplLoopData+16); + pWav->smpl.loops[iLoop].playCount = drwav_bytes_to_u32(smplLoopData+20); + } else { + break; + } + } + } + } else { + } + } + } else { + if (drwav_guid_equal(header.id.guid, drwavGUID_W64_SMPL)) { + } + } + chunkSize += header.paddingSize; + if (!drwav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData)) { + break; + } + cursor += chunkSize; + if (!foundDataChunk) { + pWav->dataChunkDataPos = cursor; + } + } + if (!foundDataChunk) { + return DRWAV_FALSE; + } + if (!sequential) { + if (!drwav__seek_from_start(pWav->onSeek, pWav->dataChunkDataPos, pWav->pUserData)) { + return DRWAV_FALSE; + } + cursor = pWav->dataChunkDataPos; + } + pWav->fmt = fmt; + pWav->sampleRate = fmt.sampleRate; + pWav->channels = fmt.channels; + pWav->bitsPerSample = fmt.bitsPerSample; + pWav->bytesRemaining = dataChunkSize; + pWav->translatedFormatTag = translatedFormatTag; + pWav->dataChunkDataSize = dataChunkSize; + if (sampleCountFromFactChunk != 0) { + pWav->totalPCMFrameCount = sampleCountFromFactChunk; + } else { + pWav->totalPCMFrameCount = dataChunkSize / drwav_get_bytes_per_pcm_frame(pWav); + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + drwav_uint64 totalBlockHeaderSizeInBytes; + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + if ((blockCount * fmt.blockAlign) < dataChunkSize) { + blockCount += 1; + } + totalBlockHeaderSizeInBytes = blockCount * (6*fmt.channels); + pWav->totalPCMFrameCount = ((dataChunkSize - totalBlockHeaderSizeInBytes) * 2) / fmt.channels; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + drwav_uint64 totalBlockHeaderSizeInBytes; + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + if ((blockCount * fmt.blockAlign) < dataChunkSize) { + blockCount += 1; + } + totalBlockHeaderSizeInBytes = blockCount * (4*fmt.channels); + pWav->totalPCMFrameCount = ((dataChunkSize - totalBlockHeaderSizeInBytes) * 2) / fmt.channels; + pWav->totalPCMFrameCount += blockCount; + } + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + if (pWav->channels > 2) { + return DRWAV_FALSE; + } + } +#ifdef DR_WAV_LIBSNDFILE_COMPAT + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (6*pWav->channels))) * 2)) / fmt.channels; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (4*pWav->channels))) * 2) + (blockCount * pWav->channels)) / fmt.channels; + } +#endif + return DRWAV_TRUE; +} +DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_ex(pWav, onRead, onSeek, NULL, pUserData, NULL, 0, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (!drwav_preinit(pWav, onRead, onSeek, pReadSeekUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); +} +DRWAV_PRIVATE drwav_uint32 drwav__riff_chunk_size_riff(drwav_uint64 dataChunkSize) +{ + drwav_uint64 chunkSize = 4 + 24 + dataChunkSize + drwav__chunk_padding_size_riff(dataChunkSize); + if (chunkSize > 0xFFFFFFFFUL) { + chunkSize = 0xFFFFFFFFUL; + } + return (drwav_uint32)chunkSize; +} +DRWAV_PRIVATE drwav_uint32 drwav__data_chunk_size_riff(drwav_uint64 dataChunkSize) +{ + if (dataChunkSize <= 0xFFFFFFFFUL) { + return (drwav_uint32)dataChunkSize; + } else { + return 0xFFFFFFFFUL; + } +} +DRWAV_PRIVATE drwav_uint64 drwav__riff_chunk_size_w64(drwav_uint64 dataChunkSize) +{ + drwav_uint64 dataSubchunkPaddingSize = drwav__chunk_padding_size_w64(dataChunkSize); + return 80 + 24 + dataChunkSize + dataSubchunkPaddingSize; +} +DRWAV_PRIVATE drwav_uint64 drwav__data_chunk_size_w64(drwav_uint64 dataChunkSize) +{ + return 24 + dataChunkSize; +} +DRWAV_PRIVATE drwav_uint64 drwav__riff_chunk_size_rf64(drwav_uint64 dataChunkSize) +{ + drwav_uint64 chunkSize = 4 + 36 + 24 + dataChunkSize + drwav__chunk_padding_size_riff(dataChunkSize); + if (chunkSize > 0xFFFFFFFFUL) { + chunkSize = 0xFFFFFFFFUL; + } + return chunkSize; +} +DRWAV_PRIVATE drwav_uint64 drwav__data_chunk_size_rf64(drwav_uint64 dataChunkSize) +{ + return dataChunkSize; +} +DRWAV_PRIVATE size_t drwav__write(drwav* pWav, const void* pData, size_t dataSize) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + return pWav->onWrite(pWav->pUserData, pData, dataSize); +} +DRWAV_PRIVATE size_t drwav__write_u16ne_to_le(drwav* pWav, drwav_uint16 value) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + if (!drwav__is_little_endian()) { + value = drwav__bswap16(value); + } + return drwav__write(pWav, &value, 2); +} +DRWAV_PRIVATE size_t drwav__write_u32ne_to_le(drwav* pWav, drwav_uint32 value) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + if (!drwav__is_little_endian()) { + value = drwav__bswap32(value); + } + return drwav__write(pWav, &value, 4); +} +DRWAV_PRIVATE size_t drwav__write_u64ne_to_le(drwav* pWav, drwav_uint64 value) +{ + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->onWrite != NULL); + if (!drwav__is_little_endian()) { + value = drwav__bswap64(value); + } + return drwav__write(pWav, &value, 8); +} +DRWAV_PRIVATE drwav_bool32 drwav_preinit_write(drwav* pWav, const drwav_data_format* pFormat, drwav_bool32 isSequential, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pWav == NULL || onWrite == NULL) { + return DRWAV_FALSE; + } + if (!isSequential && onSeek == NULL) { + return DRWAV_FALSE; + } + if (pFormat->format == DR_WAVE_FORMAT_EXTENSIBLE) { + return DRWAV_FALSE; + } + if (pFormat->format == DR_WAVE_FORMAT_ADPCM || pFormat->format == DR_WAVE_FORMAT_DVI_ADPCM) { + return DRWAV_FALSE; + } + DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); + pWav->onWrite = onWrite; + pWav->onSeek = onSeek; + pWav->pUserData = pUserData; + pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { + return DRWAV_FALSE; + } + pWav->fmt.formatTag = (drwav_uint16)pFormat->format; + pWav->fmt.channels = (drwav_uint16)pFormat->channels; + pWav->fmt.sampleRate = pFormat->sampleRate; + pWav->fmt.avgBytesPerSec = (drwav_uint32)((pFormat->bitsPerSample * pFormat->sampleRate * pFormat->channels) / 8); + pWav->fmt.blockAlign = (drwav_uint16)((pFormat->channels * pFormat->bitsPerSample) / 8); + pWav->fmt.bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; + pWav->fmt.extendedSize = 0; + pWav->isSequentialWrite = isSequential; + return DRWAV_TRUE; +} +DRWAV_PRIVATE drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount) +{ + size_t runningPos = 0; + drwav_uint64 initialDataChunkSize = 0; + drwav_uint64 chunkSizeFMT; + if (pWav->isSequentialWrite) { + initialDataChunkSize = (totalSampleCount * pWav->fmt.bitsPerSample) / 8; + if (pFormat->container == drwav_container_riff) { + if (initialDataChunkSize > (0xFFFFFFFFUL - 36)) { + return DRWAV_FALSE; + } + } + } + pWav->dataChunkDataSizeTargetWrite = initialDataChunkSize; + if (pFormat->container == drwav_container_riff) { + drwav_uint32 chunkSizeRIFF = 28 + (drwav_uint32)initialDataChunkSize; + runningPos += drwav__write(pWav, "RIFF", 4); + runningPos += drwav__write_u32ne_to_le(pWav, chunkSizeRIFF); + runningPos += drwav__write(pWav, "WAVE", 4); + } else if (pFormat->container == drwav_container_w64) { + drwav_uint64 chunkSizeRIFF = 80 + 24 + initialDataChunkSize; + runningPos += drwav__write(pWav, drwavGUID_W64_RIFF, 16); + runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeRIFF); + runningPos += drwav__write(pWav, drwavGUID_W64_WAVE, 16); + } else if (pFormat->container == drwav_container_rf64) { + runningPos += drwav__write(pWav, "RF64", 4); + runningPos += drwav__write_u32ne_to_le(pWav, 0xFFFFFFFF); + runningPos += drwav__write(pWav, "WAVE", 4); + } + if (pFormat->container == drwav_container_rf64) { + drwav_uint32 initialds64ChunkSize = 28; + drwav_uint64 initialRiffChunkSize = 8 + initialds64ChunkSize + initialDataChunkSize; + runningPos += drwav__write(pWav, "ds64", 4); + runningPos += drwav__write_u32ne_to_le(pWav, initialds64ChunkSize); + runningPos += drwav__write_u64ne_to_le(pWav, initialRiffChunkSize); + runningPos += drwav__write_u64ne_to_le(pWav, initialDataChunkSize); + runningPos += drwav__write_u64ne_to_le(pWav, totalSampleCount); + runningPos += drwav__write_u32ne_to_le(pWav, 0); + } + if (pFormat->container == drwav_container_riff || pFormat->container == drwav_container_rf64) { + chunkSizeFMT = 16; + runningPos += drwav__write(pWav, "fmt ", 4); + runningPos += drwav__write_u32ne_to_le(pWav, (drwav_uint32)chunkSizeFMT); + } else if (pFormat->container == drwav_container_w64) { + chunkSizeFMT = 40; + runningPos += drwav__write(pWav, drwavGUID_W64_FMT, 16); + runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeFMT); + } + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.formatTag); + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.channels); + runningPos += drwav__write_u32ne_to_le(pWav, pWav->fmt.sampleRate); + runningPos += drwav__write_u32ne_to_le(pWav, pWav->fmt.avgBytesPerSec); + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.blockAlign); + runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.bitsPerSample); + if (pFormat->container == drwav_container_riff) { + drwav_uint32 chunkSizeDATA = (drwav_uint32)initialDataChunkSize; + runningPos += drwav__write(pWav, "data", 4); + runningPos += drwav__write_u32ne_to_le(pWav, chunkSizeDATA); + } else if (pFormat->container == drwav_container_w64) { + drwav_uint64 chunkSizeDATA = 24 + initialDataChunkSize; + runningPos += drwav__write(pWav, drwavGUID_W64_DATA, 16); + runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeDATA); + } else if (pFormat->container == drwav_container_rf64) { + runningPos += drwav__write(pWav, "data", 4); + runningPos += drwav__write_u32ne_to_le(pWav, 0xFFFFFFFF); + } + pWav->container = pFormat->container; + pWav->channels = (drwav_uint16)pFormat->channels; + pWav->sampleRate = pFormat->sampleRate; + pWav->bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; + pWav->translatedFormatTag = (drwav_uint16)pFormat->format; + pWav->dataChunkDataPos = runningPos; + return DRWAV_TRUE; +} +DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (!drwav_preinit_write(pWav, pFormat, DRWAV_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + return drwav_init_write__internal(pWav, pFormat, 0); +} +DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (!drwav_preinit_write(pWav, pFormat, DRWAV_TRUE, onWrite, NULL, pUserData, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + return drwav_init_write__internal(pWav, pFormat, totalSampleCount); +} +DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + return drwav_init_write_sequential(pWav, pFormat, totalPCMFrameCount*pFormat->channels, onWrite, pUserData, pAllocationCallbacks); +} +DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalSampleCount) +{ + drwav_uint64 targetDataSizeBytes = (drwav_uint64)((drwav_int64)totalSampleCount * pFormat->channels * pFormat->bitsPerSample/8.0); + drwav_uint64 riffChunkSizeBytes; + drwav_uint64 fileSizeBytes = 0; + if (pFormat->container == drwav_container_riff) { + riffChunkSizeBytes = drwav__riff_chunk_size_riff(targetDataSizeBytes); + fileSizeBytes = (8 + riffChunkSizeBytes); + } else if (pFormat->container == drwav_container_w64) { + riffChunkSizeBytes = drwav__riff_chunk_size_w64(targetDataSizeBytes); + fileSizeBytes = riffChunkSizeBytes; + } else if (pFormat->container == drwav_container_rf64) { + riffChunkSizeBytes = drwav__riff_chunk_size_rf64(targetDataSizeBytes); + fileSizeBytes = (8 + riffChunkSizeBytes); + } + return fileSizeBytes; +} +#ifndef DR_WAV_NO_STDIO +#include +DRWAV_PRIVATE drwav_result drwav_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRWAV_SUCCESS; + #ifdef EPERM + case EPERM: return DRWAV_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRWAV_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRWAV_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRWAV_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRWAV_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRWAV_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRWAV_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRWAV_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRWAV_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRWAV_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRWAV_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRWAV_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRWAV_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRWAV_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRWAV_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRWAV_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRWAV_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRWAV_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRWAV_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRWAV_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRWAV_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRWAV_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRWAV_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRWAV_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRWAV_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRWAV_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRWAV_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRWAV_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRWAV_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRWAV_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRWAV_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRWAV_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRWAV_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRWAV_NOT_IMPLEMENTED; + #endif + #ifdef ENOTEMPTY + case ENOTEMPTY: return DRWAV_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRWAV_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRWAV_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRWAV_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRWAV_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRWAV_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRWAV_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRWAV_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRWAV_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRWAV_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRWAV_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRWAV_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRWAV_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRWAV_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRWAV_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRWAV_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRWAV_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRWAV_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRWAV_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRWAV_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRWAV_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRWAV_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRWAV_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRWAV_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRWAV_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRWAV_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRWAV_ERROR; + #endif + #ifdef EADV + case EADV: return DRWAV_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRWAV_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRWAV_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRWAV_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRWAV_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRWAV_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRWAV_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRWAV_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRWAV_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRWAV_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRWAV_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRWAV_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRWAV_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRWAV_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRWAV_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRWAV_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRWAV_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRWAV_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRWAV_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRWAV_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRWAV_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRWAV_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRWAV_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRWAV_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRWAV_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRWAV_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRWAV_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRWAV_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRWAV_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRWAV_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRWAV_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRWAV_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRWAV_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRWAV_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRWAV_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRWAV_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRWAV_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRWAV_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRWAV_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRWAV_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRWAV_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRWAV_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRWAV_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRWAV_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRWAV_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRWAV_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRWAV_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRWAV_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRWAV_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRWAV_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRWAV_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRWAV_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRWAV_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRWAV_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRWAV_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRWAV_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRWAV_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRWAV_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRWAV_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRWAV_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRWAV_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRWAV_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRWAV_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRWAV_ERROR; + #endif + default: return DRWAV_ERROR; + } +} +DRWAV_PRIVATE drwav_result drwav_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + if (ppFile != NULL) { + *ppFile = NULL; + } + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRWAV_INVALID_ARGS; + } +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drwav_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drwav_result result = drwav_result_from_errno(errno); + if (result == DRWAV_SUCCESS) { + result = DRWAV_ERROR; + } + return result; + } +#endif + return DRWAV_SUCCESS; +} +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRWAV_HAS_WFOPEN + #endif +#endif +DRWAV_PRIVATE drwav_result drwav_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; + } + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRWAV_INVALID_ARGS; + } +#if defined(DRWAV_HAS_WFOPEN) + { + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drwav_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drwav_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + DRWAV_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drwav_result_from_errno(errno); + } + pFilePathMB = (char*)drwav__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRWAV_OUT_OF_MEMORY; + } + pFilePathTemp = pFilePath; + DRWAV_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + *ppFile = fopen(pFilePathMB, pOpenModeMB); + drwav__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + if (*ppFile == NULL) { + return DRWAV_ERROR; + } +#endif + return DRWAV_SUCCESS; +} +DRWAV_PRIVATE size_t drwav__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); +} +DRWAV_PRIVATE size_t drwav__on_write_stdio(void* pUserData, const void* pData, size_t bytesToWrite) +{ + return fwrite(pData, 1, bytesToWrite, (FILE*)pUserData); +} +DRWAV_PRIVATE drwav_bool32 drwav__on_seek_stdio(void* pUserData, int offset, drwav_seek_origin origin) +{ + return fseek((FILE*)pUserData, offset, (origin == drwav_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; +} +DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_ex(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); +} +DRWAV_PRIVATE drwav_bool32 drwav_init_file__internal_FILE(drwav* pWav, FILE* pFile, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav_bool32 result; + result = drwav_preinit(pWav, drwav__on_read_stdio, drwav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + result = drwav_init__internal(pWav, onChunk, pChunkUserData, flags); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + return DRWAV_TRUE; +} +DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_fopen(&pFile, filename, "rb") != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_ex_w(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); +} +DRWAV_PRIVATE drwav_bool32 drwav_init_file_write__internal_FILE(drwav* pWav, FILE* pFile, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav_bool32 result; + result = drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_stdio, drwav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + result = drwav_init_write__internal(pWav, pFormat, totalSampleCount); + if (result != DRWAV_TRUE) { + fclose(pFile); + return result; + } + return DRWAV_TRUE; +} +DRWAV_PRIVATE drwav_bool32 drwav_init_file_write__internal(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_fopen(&pFile, filename, "wb") != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); +} +DRWAV_PRIVATE drwav_bool32 drwav_init_file_write_w__internal(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (drwav_wfopen(&pFile, filename, L"wb", pAllocationCallbacks) != DRWAV_SUCCESS) { + return DRWAV_FALSE; + } + return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + return drwav_init_file_write_sequential(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write_w__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_file_write_w__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + return drwav_init_file_write_sequential_w(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} +#endif +DRWAV_PRIVATE size_t drwav__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + drwav* pWav = (drwav*)pUserData; + size_t bytesRemaining; + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->memoryStream.dataSize >= pWav->memoryStream.currentReadPos); + bytesRemaining = pWav->memoryStream.dataSize - pWav->memoryStream.currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + if (bytesToRead > 0) { + DRWAV_COPY_MEMORY(pBufferOut, pWav->memoryStream.data + pWav->memoryStream.currentReadPos, bytesToRead); + pWav->memoryStream.currentReadPos += bytesToRead; + } + return bytesToRead; +} +DRWAV_PRIVATE drwav_bool32 drwav__on_seek_memory(void* pUserData, int offset, drwav_seek_origin origin) +{ + drwav* pWav = (drwav*)pUserData; + DRWAV_ASSERT(pWav != NULL); + if (origin == drwav_seek_origin_current) { + if (offset > 0) { + if (pWav->memoryStream.currentReadPos + offset > pWav->memoryStream.dataSize) { + return DRWAV_FALSE; + } + } else { + if (pWav->memoryStream.currentReadPos < (size_t)-offset) { + return DRWAV_FALSE; + } + } + pWav->memoryStream.currentReadPos += offset; + } else { + if ((drwav_uint32)offset <= pWav->memoryStream.dataSize) { + pWav->memoryStream.currentReadPos = offset; + } else { + return DRWAV_FALSE; + } + } + return DRWAV_TRUE; +} +DRWAV_PRIVATE size_t drwav__on_write_memory(void* pUserData, const void* pDataIn, size_t bytesToWrite) +{ + drwav* pWav = (drwav*)pUserData; + size_t bytesRemaining; + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(pWav->memoryStreamWrite.dataCapacity >= pWav->memoryStreamWrite.currentWritePos); + bytesRemaining = pWav->memoryStreamWrite.dataCapacity - pWav->memoryStreamWrite.currentWritePos; + if (bytesRemaining < bytesToWrite) { + void* pNewData; + size_t newDataCapacity = (pWav->memoryStreamWrite.dataCapacity == 0) ? 256 : pWav->memoryStreamWrite.dataCapacity * 2; + if ((newDataCapacity - pWav->memoryStreamWrite.currentWritePos) < bytesToWrite) { + newDataCapacity = pWav->memoryStreamWrite.currentWritePos + bytesToWrite; + } + pNewData = drwav__realloc_from_callbacks(*pWav->memoryStreamWrite.ppData, newDataCapacity, pWav->memoryStreamWrite.dataCapacity, &pWav->allocationCallbacks); + if (pNewData == NULL) { + return 0; + } + *pWav->memoryStreamWrite.ppData = pNewData; + pWav->memoryStreamWrite.dataCapacity = newDataCapacity; + } + DRWAV_COPY_MEMORY(((drwav_uint8*)(*pWav->memoryStreamWrite.ppData)) + pWav->memoryStreamWrite.currentWritePos, pDataIn, bytesToWrite); + pWav->memoryStreamWrite.currentWritePos += bytesToWrite; + if (pWav->memoryStreamWrite.dataSize < pWav->memoryStreamWrite.currentWritePos) { + pWav->memoryStreamWrite.dataSize = pWav->memoryStreamWrite.currentWritePos; + } + *pWav->memoryStreamWrite.pDataSize = pWav->memoryStreamWrite.dataSize; + return bytesToWrite; +} +DRWAV_PRIVATE drwav_bool32 drwav__on_seek_memory_write(void* pUserData, int offset, drwav_seek_origin origin) +{ + drwav* pWav = (drwav*)pUserData; + DRWAV_ASSERT(pWav != NULL); + if (origin == drwav_seek_origin_current) { + if (offset > 0) { + if (pWav->memoryStreamWrite.currentWritePos + offset > pWav->memoryStreamWrite.dataSize) { + offset = (int)(pWav->memoryStreamWrite.dataSize - pWav->memoryStreamWrite.currentWritePos); + } + } else { + if (pWav->memoryStreamWrite.currentWritePos < (size_t)-offset) { + offset = -(int)pWav->memoryStreamWrite.currentWritePos; + } + } + pWav->memoryStreamWrite.currentWritePos += offset; + } else { + if ((drwav_uint32)offset <= pWav->memoryStreamWrite.dataSize) { + pWav->memoryStreamWrite.currentWritePos = offset; + } else { + pWav->memoryStreamWrite.currentWritePos = pWav->memoryStreamWrite.dataSize; + } + } + return DRWAV_TRUE; +} +DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_memory_ex(pWav, data, dataSize, NULL, NULL, 0, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (data == NULL || dataSize == 0) { + return DRWAV_FALSE; + } + if (!drwav_preinit(pWav, drwav__on_read_memory, drwav__on_seek_memory, pWav, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + pWav->memoryStream.data = (const drwav_uint8*)data; + pWav->memoryStream.dataSize = dataSize; + pWav->memoryStream.currentReadPos = 0; + return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); +} +DRWAV_PRIVATE drwav_bool32 drwav_init_memory_write__internal(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (ppData == NULL || pDataSize == NULL) { + return DRWAV_FALSE; + } + *ppData = NULL; + *pDataSize = 0; + if (!drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_memory, drwav__on_seek_memory_write, pWav, pAllocationCallbacks)) { + return DRWAV_FALSE; + } + pWav->memoryStreamWrite.ppData = ppData; + pWav->memoryStreamWrite.pDataSize = pDataSize; + pWav->memoryStreamWrite.dataSize = 0; + pWav->memoryStreamWrite.dataCapacity = 0; + pWav->memoryStreamWrite.currentWritePos = 0; + return drwav_init_write__internal(pWav, pFormat, totalSampleCount); +} +DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); +} +DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return DRWAV_FALSE; + } + return drwav_init_memory_write_sequential(pWav, ppData, pDataSize, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} +DRWAV_API drwav_result drwav_uninit(drwav* pWav) +{ + drwav_result result = DRWAV_SUCCESS; + if (pWav == NULL) { + return DRWAV_INVALID_ARGS; + } + if (pWav->onWrite != NULL) { + drwav_uint32 paddingSize = 0; + if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { + paddingSize = drwav__chunk_padding_size_riff(pWav->dataChunkDataSize); + } else { + paddingSize = drwav__chunk_padding_size_w64(pWav->dataChunkDataSize); + } + if (paddingSize > 0) { + drwav_uint64 paddingData = 0; + drwav__write(pWav, &paddingData, paddingSize); + } + if (pWav->onSeek && !pWav->isSequentialWrite) { + if (pWav->container == drwav_container_riff) { + if (pWav->onSeek(pWav->pUserData, 4, drwav_seek_origin_start)) { + drwav_uint32 riffChunkSize = drwav__riff_chunk_size_riff(pWav->dataChunkDataSize); + drwav__write_u32ne_to_le(pWav, riffChunkSize); + } + if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 4, drwav_seek_origin_start)) { + drwav_uint32 dataChunkSize = drwav__data_chunk_size_riff(pWav->dataChunkDataSize); + drwav__write_u32ne_to_le(pWav, dataChunkSize); + } + } else if (pWav->container == drwav_container_w64) { + if (pWav->onSeek(pWav->pUserData, 16, drwav_seek_origin_start)) { + drwav_uint64 riffChunkSize = drwav__riff_chunk_size_w64(pWav->dataChunkDataSize); + drwav__write_u64ne_to_le(pWav, riffChunkSize); + } + if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 8, drwav_seek_origin_start)) { + drwav_uint64 dataChunkSize = drwav__data_chunk_size_w64(pWav->dataChunkDataSize); + drwav__write_u64ne_to_le(pWav, dataChunkSize); + } + } else if (pWav->container == drwav_container_rf64) { + int ds64BodyPos = 12 + 8; + if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 0, drwav_seek_origin_start)) { + drwav_uint64 riffChunkSize = drwav__riff_chunk_size_rf64(pWav->dataChunkDataSize); + drwav__write_u64ne_to_le(pWav, riffChunkSize); + } + if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 8, drwav_seek_origin_start)) { + drwav_uint64 dataChunkSize = drwav__data_chunk_size_rf64(pWav->dataChunkDataSize); + drwav__write_u64ne_to_le(pWav, dataChunkSize); + } + } + } + if (pWav->isSequentialWrite) { + if (pWav->dataChunkDataSize != pWav->dataChunkDataSizeTargetWrite) { + result = DRWAV_INVALID_FILE; + } + } + } +#ifndef DR_WAV_NO_STDIO + if (pWav->onRead == drwav__on_read_stdio || pWav->onWrite == drwav__on_write_stdio) { + fclose((FILE*)pWav->pUserData); + } +#endif + return result; +} +DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut) +{ + size_t bytesRead; + if (pWav == NULL || bytesToRead == 0) { + return 0; + } + if (bytesToRead > pWav->bytesRemaining) { + bytesToRead = (size_t)pWav->bytesRemaining; + } + if (pBufferOut != NULL) { + bytesRead = pWav->onRead(pWav->pUserData, pBufferOut, bytesToRead); + } else { + bytesRead = 0; + while (bytesRead < bytesToRead) { + size_t bytesToSeek = (bytesToRead - bytesRead); + if (bytesToSeek > 0x7FFFFFFF) { + bytesToSeek = 0x7FFFFFFF; + } + if (pWav->onSeek(pWav->pUserData, (int)bytesToSeek, drwav_seek_origin_current) == DRWAV_FALSE) { + break; + } + bytesRead += bytesToSeek; + } + while (bytesRead < bytesToRead) { + drwav_uint8 buffer[4096]; + size_t bytesSeeked; + size_t bytesToSeek = (bytesToRead - bytesRead); + if (bytesToSeek > sizeof(buffer)) { + bytesToSeek = sizeof(buffer); + } + bytesSeeked = pWav->onRead(pWav->pUserData, buffer, bytesToSeek); + bytesRead += bytesSeeked; + if (bytesSeeked < bytesToSeek) { + break; + } + } + } + pWav->bytesRemaining -= bytesRead; + return bytesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +{ + drwav_uint32 bytesPerFrame; + drwav_uint64 bytesToRead; + if (pWav == NULL || framesToRead == 0) { + return 0; + } + if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + return 0; + } + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + bytesToRead = framesToRead * bytesPerFrame; + if (bytesToRead > DRWAV_SIZE_MAX) { + bytesToRead = (DRWAV_SIZE_MAX / bytesPerFrame) * bytesPerFrame; + } + if (bytesToRead == 0) { + return 0; + } + return drwav_read_raw(pWav, (size_t)bytesToRead, pBufferOut) / bytesPerFrame; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL) { + drwav__bswap_samples(pBufferOut, framesRead*pWav->channels, drwav_get_bytes_per_pcm_frame(pWav)/pWav->channels, pWav->translatedFormatTag); + } + return framesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +{ + if (drwav__is_little_endian()) { + return drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + } else { + return drwav_read_pcm_frames_be(pWav, framesToRead, pBufferOut); + } +} +DRWAV_PRIVATE drwav_bool32 drwav_seek_to_first_pcm_frame(drwav* pWav) +{ + if (pWav->onWrite != NULL) { + return DRWAV_FALSE; + } + if (!pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos, drwav_seek_origin_start)) { + return DRWAV_FALSE; + } + if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + pWav->compressed.iCurrentPCMFrame = 0; + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + DRWAV_ZERO_OBJECT(&pWav->msadpcm); + } else if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + DRWAV_ZERO_OBJECT(&pWav->ima); + } else { + DRWAV_ASSERT(DRWAV_FALSE); + } + } + pWav->bytesRemaining = pWav->dataChunkDataSize; + return DRWAV_TRUE; +} +DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex) +{ + if (pWav == NULL || pWav->onSeek == NULL) { + return DRWAV_FALSE; + } + if (pWav->onWrite != NULL) { + return DRWAV_FALSE; + } + if (pWav->totalPCMFrameCount == 0) { + return DRWAV_TRUE; + } + if (targetFrameIndex >= pWav->totalPCMFrameCount) { + targetFrameIndex = pWav->totalPCMFrameCount - 1; + } + if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + if (targetFrameIndex < pWav->compressed.iCurrentPCMFrame) { + if (!drwav_seek_to_first_pcm_frame(pWav)) { + return DRWAV_FALSE; + } + } + if (targetFrameIndex > pWav->compressed.iCurrentPCMFrame) { + drwav_uint64 offsetInFrames = targetFrameIndex - pWav->compressed.iCurrentPCMFrame; + drwav_int16 devnull[2048]; + while (offsetInFrames > 0) { + drwav_uint64 framesRead = 0; + drwav_uint64 framesToRead = offsetInFrames; + if (framesToRead > drwav_countof(devnull)/pWav->channels) { + framesToRead = drwav_countof(devnull)/pWav->channels; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + framesRead = drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, devnull); + } else if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + framesRead = drwav_read_pcm_frames_s16__ima(pWav, framesToRead, devnull); + } else { + DRWAV_ASSERT(DRWAV_FALSE); + } + if (framesRead != framesToRead) { + return DRWAV_FALSE; + } + offsetInFrames -= framesRead; + } + } + } else { + drwav_uint64 totalSizeInBytes; + drwav_uint64 currentBytePos; + drwav_uint64 targetBytePos; + drwav_uint64 offset; + totalSizeInBytes = pWav->totalPCMFrameCount * drwav_get_bytes_per_pcm_frame(pWav); + DRWAV_ASSERT(totalSizeInBytes >= pWav->bytesRemaining); + currentBytePos = totalSizeInBytes - pWav->bytesRemaining; + targetBytePos = targetFrameIndex * drwav_get_bytes_per_pcm_frame(pWav); + if (currentBytePos < targetBytePos) { + offset = (targetBytePos - currentBytePos); + } else { + if (!drwav_seek_to_first_pcm_frame(pWav)) { + return DRWAV_FALSE; + } + offset = targetBytePos; + } + while (offset > 0) { + int offset32 = ((offset > INT_MAX) ? INT_MAX : (int)offset); + if (!pWav->onSeek(pWav->pUserData, offset32, drwav_seek_origin_current)) { + return DRWAV_FALSE; + } + pWav->bytesRemaining -= offset32; + offset -= offset32; + } + } + return DRWAV_TRUE; +} +DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData) +{ + size_t bytesWritten; + if (pWav == NULL || bytesToWrite == 0 || pData == NULL) { + return 0; + } + bytesWritten = pWav->onWrite(pWav->pUserData, pData, bytesToWrite); + pWav->dataChunkDataSize += bytesWritten; + return bytesWritten; +} +DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +{ + drwav_uint64 bytesToWrite; + drwav_uint64 bytesWritten; + const drwav_uint8* pRunningData; + if (pWav == NULL || framesToWrite == 0 || pData == NULL) { + return 0; + } + bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); + if (bytesToWrite > DRWAV_SIZE_MAX) { + return 0; + } + bytesWritten = 0; + pRunningData = (const drwav_uint8*)pData; + while (bytesToWrite > 0) { + size_t bytesJustWritten; + drwav_uint64 bytesToWriteThisIteration; + bytesToWriteThisIteration = bytesToWrite; + DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); + bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, pRunningData); + if (bytesJustWritten == 0) { + break; + } + bytesToWrite -= bytesJustWritten; + bytesWritten += bytesJustWritten; + pRunningData += bytesJustWritten; + } + return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; +} +DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +{ + drwav_uint64 bytesToWrite; + drwav_uint64 bytesWritten; + drwav_uint32 bytesPerSample; + const drwav_uint8* pRunningData; + if (pWav == NULL || framesToWrite == 0 || pData == NULL) { + return 0; + } + bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); + if (bytesToWrite > DRWAV_SIZE_MAX) { + return 0; + } + bytesWritten = 0; + pRunningData = (const drwav_uint8*)pData; + bytesPerSample = drwav_get_bytes_per_pcm_frame(pWav) / pWav->channels; + while (bytesToWrite > 0) { + drwav_uint8 temp[4096]; + drwav_uint32 sampleCount; + size_t bytesJustWritten; + drwav_uint64 bytesToWriteThisIteration; + bytesToWriteThisIteration = bytesToWrite; + DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); + sampleCount = sizeof(temp)/bytesPerSample; + if (bytesToWriteThisIteration > ((drwav_uint64)sampleCount)*bytesPerSample) { + bytesToWriteThisIteration = ((drwav_uint64)sampleCount)*bytesPerSample; + } + DRWAV_COPY_MEMORY(temp, pRunningData, (size_t)bytesToWriteThisIteration); + drwav__bswap_samples(temp, sampleCount, bytesPerSample, pWav->translatedFormatTag); + bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, temp); + if (bytesJustWritten == 0) { + break; + } + bytesToWrite -= bytesJustWritten; + bytesWritten += bytesJustWritten; + pRunningData += bytesJustWritten; + } + return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; +} +DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +{ + if (drwav__is_little_endian()) { + return drwav_write_pcm_frames_le(pWav, framesToWrite, pData); + } else { + return drwav_write_pcm_frames_be(pWav, framesToWrite, pData); + } +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(framesToRead > 0); + while (pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { + DRWAV_ASSERT(framesToRead > 0); + if (pWav->msadpcm.cachedFrameCount == 0 && pWav->msadpcm.bytesRemainingInBlock == 0) { + if (pWav->channels == 1) { + drwav_uint8 header[7]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + pWav->msadpcm.predictor[0] = header[0]; + pWav->msadpcm.delta[0] = drwav_bytes_to_s16(header + 1); + pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav_bytes_to_s16(header + 3); + pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav_bytes_to_s16(header + 5); + pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][0]; + pWav->msadpcm.cachedFrames[3] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.cachedFrameCount = 2; + } else { + drwav_uint8 header[14]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + pWav->msadpcm.predictor[0] = header[0]; + pWav->msadpcm.predictor[1] = header[1]; + pWav->msadpcm.delta[0] = drwav_bytes_to_s16(header + 2); + pWav->msadpcm.delta[1] = drwav_bytes_to_s16(header + 4); + pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav_bytes_to_s16(header + 6); + pWav->msadpcm.prevFrames[1][1] = (drwav_int32)drwav_bytes_to_s16(header + 8); + pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav_bytes_to_s16(header + 10); + pWav->msadpcm.prevFrames[1][0] = (drwav_int32)drwav_bytes_to_s16(header + 12); + pWav->msadpcm.cachedFrames[0] = pWav->msadpcm.prevFrames[0][0]; + pWav->msadpcm.cachedFrames[1] = pWav->msadpcm.prevFrames[1][0]; + pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.cachedFrames[3] = pWav->msadpcm.prevFrames[1][1]; + pWav->msadpcm.cachedFrameCount = 2; + } + } + while (framesToRead > 0 && pWav->msadpcm.cachedFrameCount > 0 && pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { + if (pBufferOut != NULL) { + drwav_uint32 iSample = 0; + for (iSample = 0; iSample < pWav->channels; iSample += 1) { + pBufferOut[iSample] = (drwav_int16)pWav->msadpcm.cachedFrames[(drwav_countof(pWav->msadpcm.cachedFrames) - (pWav->msadpcm.cachedFrameCount*pWav->channels)) + iSample]; + } + pBufferOut += pWav->channels; + } + framesToRead -= 1; + totalFramesRead += 1; + pWav->compressed.iCurrentPCMFrame += 1; + pWav->msadpcm.cachedFrameCount -= 1; + } + if (framesToRead == 0) { + break; + } + if (pWav->msadpcm.cachedFrameCount == 0) { + if (pWav->msadpcm.bytesRemainingInBlock == 0) { + continue; + } else { + static drwav_int32 adaptationTable[] = { + 230, 230, 230, 230, 307, 409, 512, 614, + 768, 614, 512, 409, 307, 230, 230, 230 + }; + static drwav_int32 coeff1Table[] = { 256, 512, 0, 192, 240, 460, 392 }; + static drwav_int32 coeff2Table[] = { 0, -256, 0, 64, 0, -208, -232 }; + drwav_uint8 nibbles; + drwav_int32 nibble0; + drwav_int32 nibble1; + if (pWav->onRead(pWav->pUserData, &nibbles, 1) != 1) { + return totalFramesRead; + } + pWav->msadpcm.bytesRemainingInBlock -= 1; + nibble0 = ((nibbles & 0xF0) >> 4); if ((nibbles & 0x80)) { nibble0 |= 0xFFFFFFF0UL; } + nibble1 = ((nibbles & 0x0F) >> 0); if ((nibbles & 0x08)) { nibble1 |= 0xFFFFFFF0UL; } + if (pWav->channels == 1) { + drwav_int32 newSample0; + drwav_int32 newSample1; + newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; + newSample0 += nibble0 * pWav->msadpcm.delta[0]; + newSample0 = drwav_clamp(newSample0, -32768, 32767); + pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8; + if (pWav->msadpcm.delta[0] < 16) { + pWav->msadpcm.delta[0] = 16; + } + pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.prevFrames[0][1] = newSample0; + newSample1 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; + newSample1 += nibble1 * pWav->msadpcm.delta[0]; + newSample1 = drwav_clamp(newSample1, -32768, 32767); + pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[0]) >> 8; + if (pWav->msadpcm.delta[0] < 16) { + pWav->msadpcm.delta[0] = 16; + } + pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.prevFrames[0][1] = newSample1; + pWav->msadpcm.cachedFrames[2] = newSample0; + pWav->msadpcm.cachedFrames[3] = newSample1; + pWav->msadpcm.cachedFrameCount = 2; + } else { + drwav_int32 newSample0; + drwav_int32 newSample1; + newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; + newSample0 += nibble0 * pWav->msadpcm.delta[0]; + newSample0 = drwav_clamp(newSample0, -32768, 32767); + pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8; + if (pWav->msadpcm.delta[0] < 16) { + pWav->msadpcm.delta[0] = 16; + } + pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; + pWav->msadpcm.prevFrames[0][1] = newSample0; + newSample1 = ((pWav->msadpcm.prevFrames[1][1] * coeff1Table[pWav->msadpcm.predictor[1]]) + (pWav->msadpcm.prevFrames[1][0] * coeff2Table[pWav->msadpcm.predictor[1]])) >> 8; + newSample1 += nibble1 * pWav->msadpcm.delta[1]; + newSample1 = drwav_clamp(newSample1, -32768, 32767); + pWav->msadpcm.delta[1] = (adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[1]) >> 8; + if (pWav->msadpcm.delta[1] < 16) { + pWav->msadpcm.delta[1] = 16; + } + pWav->msadpcm.prevFrames[1][0] = pWav->msadpcm.prevFrames[1][1]; + pWav->msadpcm.prevFrames[1][1] = newSample1; + pWav->msadpcm.cachedFrames[2] = newSample0; + pWav->msadpcm.cachedFrames[3] = newSample1; + pWav->msadpcm.cachedFrameCount = 1; + } + } + } + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + drwav_uint32 iChannel; + static drwav_int32 indexTable[16] = { + -1, -1, -1, -1, 2, 4, 6, 8, + -1, -1, -1, -1, 2, 4, 6, 8 + }; + static drwav_int32 stepTable[89] = { + 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, + 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, + 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, + 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, + 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, + 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, + 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, + 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, + 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 + }; + DRWAV_ASSERT(pWav != NULL); + DRWAV_ASSERT(framesToRead > 0); + while (pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { + DRWAV_ASSERT(framesToRead > 0); + if (pWav->ima.cachedFrameCount == 0 && pWav->ima.bytesRemainingInBlock == 0) { + if (pWav->channels == 1) { + drwav_uint8 header[4]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + if (header[2] >= drwav_countof(stepTable)) { + pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, drwav_seek_origin_current); + pWav->ima.bytesRemainingInBlock = 0; + return totalFramesRead; + } + pWav->ima.predictor[0] = drwav_bytes_to_s16(header + 0); + pWav->ima.stepIndex[0] = header[2]; + pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[0]; + pWav->ima.cachedFrameCount = 1; + } else { + drwav_uint8 header[8]; + if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { + return totalFramesRead; + } + pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); + if (header[2] >= drwav_countof(stepTable) || header[6] >= drwav_countof(stepTable)) { + pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, drwav_seek_origin_current); + pWav->ima.bytesRemainingInBlock = 0; + return totalFramesRead; + } + pWav->ima.predictor[0] = drwav_bytes_to_s16(header + 0); + pWav->ima.stepIndex[0] = header[2]; + pWav->ima.predictor[1] = drwav_bytes_to_s16(header + 4); + pWav->ima.stepIndex[1] = header[6]; + pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 2] = pWav->ima.predictor[0]; + pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[1]; + pWav->ima.cachedFrameCount = 1; + } + } + while (framesToRead > 0 && pWav->ima.cachedFrameCount > 0 && pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { + if (pBufferOut != NULL) { + drwav_uint32 iSample; + for (iSample = 0; iSample < pWav->channels; iSample += 1) { + pBufferOut[iSample] = (drwav_int16)pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + iSample]; + } + pBufferOut += pWav->channels; + } + framesToRead -= 1; + totalFramesRead += 1; + pWav->compressed.iCurrentPCMFrame += 1; + pWav->ima.cachedFrameCount -= 1; + } + if (framesToRead == 0) { + break; + } + if (pWav->ima.cachedFrameCount == 0) { + if (pWav->ima.bytesRemainingInBlock == 0) { + continue; + } else { + pWav->ima.cachedFrameCount = 8; + for (iChannel = 0; iChannel < pWav->channels; ++iChannel) { + drwav_uint32 iByte; + drwav_uint8 nibbles[4]; + if (pWav->onRead(pWav->pUserData, &nibbles, 4) != 4) { + pWav->ima.cachedFrameCount = 0; + return totalFramesRead; + } + pWav->ima.bytesRemainingInBlock -= 4; + for (iByte = 0; iByte < 4; ++iByte) { + drwav_uint8 nibble0 = ((nibbles[iByte] & 0x0F) >> 0); + drwav_uint8 nibble1 = ((nibbles[iByte] & 0xF0) >> 4); + drwav_int32 step = stepTable[pWav->ima.stepIndex[iChannel]]; + drwav_int32 predictor = pWav->ima.predictor[iChannel]; + drwav_int32 diff = step >> 3; + if (nibble0 & 1) diff += step >> 2; + if (nibble0 & 2) diff += step >> 1; + if (nibble0 & 4) diff += step; + if (nibble0 & 8) diff = -diff; + predictor = drwav_clamp(predictor + diff, -32768, 32767); + pWav->ima.predictor[iChannel] = predictor; + pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble0], 0, (drwav_int32)drwav_countof(stepTable)-1); + pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+0)*pWav->channels + iChannel] = predictor; + step = stepTable[pWav->ima.stepIndex[iChannel]]; + predictor = pWav->ima.predictor[iChannel]; + diff = step >> 3; + if (nibble1 & 1) diff += step >> 2; + if (nibble1 & 2) diff += step >> 1; + if (nibble1 & 4) diff += step; + if (nibble1 & 8) diff = -diff; + predictor = drwav_clamp(predictor + diff, -32768, 32767); + pWav->ima.predictor[iChannel] = predictor; + pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble1], 0, (drwav_int32)drwav_countof(stepTable)-1); + pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+1)*pWav->channels + iChannel] = predictor; + } + } + } + } + } + return totalFramesRead; +} +#ifndef DR_WAV_NO_CONVERSION_API +static unsigned short g_drwavAlawTable[256] = { + 0xEA80, 0xEB80, 0xE880, 0xE980, 0xEE80, 0xEF80, 0xEC80, 0xED80, 0xE280, 0xE380, 0xE080, 0xE180, 0xE680, 0xE780, 0xE480, 0xE580, + 0xF540, 0xF5C0, 0xF440, 0xF4C0, 0xF740, 0xF7C0, 0xF640, 0xF6C0, 0xF140, 0xF1C0, 0xF040, 0xF0C0, 0xF340, 0xF3C0, 0xF240, 0xF2C0, + 0xAA00, 0xAE00, 0xA200, 0xA600, 0xBA00, 0xBE00, 0xB200, 0xB600, 0x8A00, 0x8E00, 0x8200, 0x8600, 0x9A00, 0x9E00, 0x9200, 0x9600, + 0xD500, 0xD700, 0xD100, 0xD300, 0xDD00, 0xDF00, 0xD900, 0xDB00, 0xC500, 0xC700, 0xC100, 0xC300, 0xCD00, 0xCF00, 0xC900, 0xCB00, + 0xFEA8, 0xFEB8, 0xFE88, 0xFE98, 0xFEE8, 0xFEF8, 0xFEC8, 0xFED8, 0xFE28, 0xFE38, 0xFE08, 0xFE18, 0xFE68, 0xFE78, 0xFE48, 0xFE58, + 0xFFA8, 0xFFB8, 0xFF88, 0xFF98, 0xFFE8, 0xFFF8, 0xFFC8, 0xFFD8, 0xFF28, 0xFF38, 0xFF08, 0xFF18, 0xFF68, 0xFF78, 0xFF48, 0xFF58, + 0xFAA0, 0xFAE0, 0xFA20, 0xFA60, 0xFBA0, 0xFBE0, 0xFB20, 0xFB60, 0xF8A0, 0xF8E0, 0xF820, 0xF860, 0xF9A0, 0xF9E0, 0xF920, 0xF960, + 0xFD50, 0xFD70, 0xFD10, 0xFD30, 0xFDD0, 0xFDF0, 0xFD90, 0xFDB0, 0xFC50, 0xFC70, 0xFC10, 0xFC30, 0xFCD0, 0xFCF0, 0xFC90, 0xFCB0, + 0x1580, 0x1480, 0x1780, 0x1680, 0x1180, 0x1080, 0x1380, 0x1280, 0x1D80, 0x1C80, 0x1F80, 0x1E80, 0x1980, 0x1880, 0x1B80, 0x1A80, + 0x0AC0, 0x0A40, 0x0BC0, 0x0B40, 0x08C0, 0x0840, 0x09C0, 0x0940, 0x0EC0, 0x0E40, 0x0FC0, 0x0F40, 0x0CC0, 0x0C40, 0x0DC0, 0x0D40, + 0x5600, 0x5200, 0x5E00, 0x5A00, 0x4600, 0x4200, 0x4E00, 0x4A00, 0x7600, 0x7200, 0x7E00, 0x7A00, 0x6600, 0x6200, 0x6E00, 0x6A00, + 0x2B00, 0x2900, 0x2F00, 0x2D00, 0x2300, 0x2100, 0x2700, 0x2500, 0x3B00, 0x3900, 0x3F00, 0x3D00, 0x3300, 0x3100, 0x3700, 0x3500, + 0x0158, 0x0148, 0x0178, 0x0168, 0x0118, 0x0108, 0x0138, 0x0128, 0x01D8, 0x01C8, 0x01F8, 0x01E8, 0x0198, 0x0188, 0x01B8, 0x01A8, + 0x0058, 0x0048, 0x0078, 0x0068, 0x0018, 0x0008, 0x0038, 0x0028, 0x00D8, 0x00C8, 0x00F8, 0x00E8, 0x0098, 0x0088, 0x00B8, 0x00A8, + 0x0560, 0x0520, 0x05E0, 0x05A0, 0x0460, 0x0420, 0x04E0, 0x04A0, 0x0760, 0x0720, 0x07E0, 0x07A0, 0x0660, 0x0620, 0x06E0, 0x06A0, + 0x02B0, 0x0290, 0x02F0, 0x02D0, 0x0230, 0x0210, 0x0270, 0x0250, 0x03B0, 0x0390, 0x03F0, 0x03D0, 0x0330, 0x0310, 0x0370, 0x0350 +}; +static unsigned short g_drwavMulawTable[256] = { + 0x8284, 0x8684, 0x8A84, 0x8E84, 0x9284, 0x9684, 0x9A84, 0x9E84, 0xA284, 0xA684, 0xAA84, 0xAE84, 0xB284, 0xB684, 0xBA84, 0xBE84, + 0xC184, 0xC384, 0xC584, 0xC784, 0xC984, 0xCB84, 0xCD84, 0xCF84, 0xD184, 0xD384, 0xD584, 0xD784, 0xD984, 0xDB84, 0xDD84, 0xDF84, + 0xE104, 0xE204, 0xE304, 0xE404, 0xE504, 0xE604, 0xE704, 0xE804, 0xE904, 0xEA04, 0xEB04, 0xEC04, 0xED04, 0xEE04, 0xEF04, 0xF004, + 0xF0C4, 0xF144, 0xF1C4, 0xF244, 0xF2C4, 0xF344, 0xF3C4, 0xF444, 0xF4C4, 0xF544, 0xF5C4, 0xF644, 0xF6C4, 0xF744, 0xF7C4, 0xF844, + 0xF8A4, 0xF8E4, 0xF924, 0xF964, 0xF9A4, 0xF9E4, 0xFA24, 0xFA64, 0xFAA4, 0xFAE4, 0xFB24, 0xFB64, 0xFBA4, 0xFBE4, 0xFC24, 0xFC64, + 0xFC94, 0xFCB4, 0xFCD4, 0xFCF4, 0xFD14, 0xFD34, 0xFD54, 0xFD74, 0xFD94, 0xFDB4, 0xFDD4, 0xFDF4, 0xFE14, 0xFE34, 0xFE54, 0xFE74, + 0xFE8C, 0xFE9C, 0xFEAC, 0xFEBC, 0xFECC, 0xFEDC, 0xFEEC, 0xFEFC, 0xFF0C, 0xFF1C, 0xFF2C, 0xFF3C, 0xFF4C, 0xFF5C, 0xFF6C, 0xFF7C, + 0xFF88, 0xFF90, 0xFF98, 0xFFA0, 0xFFA8, 0xFFB0, 0xFFB8, 0xFFC0, 0xFFC8, 0xFFD0, 0xFFD8, 0xFFE0, 0xFFE8, 0xFFF0, 0xFFF8, 0x0000, + 0x7D7C, 0x797C, 0x757C, 0x717C, 0x6D7C, 0x697C, 0x657C, 0x617C, 0x5D7C, 0x597C, 0x557C, 0x517C, 0x4D7C, 0x497C, 0x457C, 0x417C, + 0x3E7C, 0x3C7C, 0x3A7C, 0x387C, 0x367C, 0x347C, 0x327C, 0x307C, 0x2E7C, 0x2C7C, 0x2A7C, 0x287C, 0x267C, 0x247C, 0x227C, 0x207C, + 0x1EFC, 0x1DFC, 0x1CFC, 0x1BFC, 0x1AFC, 0x19FC, 0x18FC, 0x17FC, 0x16FC, 0x15FC, 0x14FC, 0x13FC, 0x12FC, 0x11FC, 0x10FC, 0x0FFC, + 0x0F3C, 0x0EBC, 0x0E3C, 0x0DBC, 0x0D3C, 0x0CBC, 0x0C3C, 0x0BBC, 0x0B3C, 0x0ABC, 0x0A3C, 0x09BC, 0x093C, 0x08BC, 0x083C, 0x07BC, + 0x075C, 0x071C, 0x06DC, 0x069C, 0x065C, 0x061C, 0x05DC, 0x059C, 0x055C, 0x051C, 0x04DC, 0x049C, 0x045C, 0x041C, 0x03DC, 0x039C, + 0x036C, 0x034C, 0x032C, 0x030C, 0x02EC, 0x02CC, 0x02AC, 0x028C, 0x026C, 0x024C, 0x022C, 0x020C, 0x01EC, 0x01CC, 0x01AC, 0x018C, + 0x0174, 0x0164, 0x0154, 0x0144, 0x0134, 0x0124, 0x0114, 0x0104, 0x00F4, 0x00E4, 0x00D4, 0x00C4, 0x00B4, 0x00A4, 0x0094, 0x0084, + 0x0078, 0x0070, 0x0068, 0x0060, 0x0058, 0x0050, 0x0048, 0x0040, 0x0038, 0x0030, 0x0028, 0x0020, 0x0018, 0x0010, 0x0008, 0x0000 +}; +static DRWAV_INLINE drwav_int16 drwav__alaw_to_s16(drwav_uint8 sampleIn) +{ + return (short)g_drwavAlawTable[sampleIn]; +} +static DRWAV_INLINE drwav_int16 drwav__mulaw_to_s16(drwav_uint8 sampleIn) +{ + return (short)g_drwavMulawTable[sampleIn]; +} +DRWAV_PRIVATE void drwav__pcm_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + unsigned int i; + if (bytesPerSample == 1) { + drwav_u8_to_s16(pOut, pIn, totalSampleCount); + return; + } + if (bytesPerSample == 2) { + for (i = 0; i < totalSampleCount; ++i) { + *pOut++ = ((const drwav_int16*)pIn)[i]; + } + return; + } + if (bytesPerSample == 3) { + drwav_s24_to_s16(pOut, pIn, totalSampleCount); + return; + } + if (bytesPerSample == 4) { + drwav_s32_to_s16(pOut, (const drwav_int32*)pIn, totalSampleCount); + return; + } + if (bytesPerSample > 8) { + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } + for (i = 0; i < totalSampleCount; ++i) { + drwav_uint64 sample = 0; + unsigned int shift = (8 - bytesPerSample) * 8; + unsigned int j; + for (j = 0; j < bytesPerSample; j += 1) { + DRWAV_ASSERT(j < 8); + sample |= (drwav_uint64)(pIn[j]) << shift; + shift += 8; + } + pIn += j; + *pOut++ = (drwav_int16)((drwav_int64)sample >> 48); + } +} +DRWAV_PRIVATE void drwav__ieee_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + if (bytesPerSample == 4) { + drwav_f32_to_s16(pOut, (const float*)pIn, totalSampleCount); + return; + } else if (bytesPerSample == 8) { + drwav_f64_to_s16(pOut, (const double*)pIn, totalSampleCount); + return; + } else { + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame; + if ((pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 16) || pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + } + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav__pcm_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame; + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav__ieee_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame; + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav_alaw_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame; + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav_mulaw_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + if (pWav == NULL || framesToRead == 0) { + return 0; + } + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + if (framesToRead * pWav->channels * sizeof(drwav_int16) > DRWAV_SIZE_MAX) { + framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int16) / pWav->channels; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { + return drwav_read_pcm_frames_s16__pcm(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { + return drwav_read_pcm_frames_s16__ieee(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { + return drwav_read_pcm_frames_s16__alaw(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + return drwav_read_pcm_frames_s16__mulaw(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + return drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + return drwav_read_pcm_frames_s16__ima(pWav, framesToRead, pBufferOut); + } + return 0; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { + drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); + } + return framesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { + drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); + } + return framesRead; +} +DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + int x = pIn[i]; + r = x << 8; + r = r - 32768; + pOut[i] = (short)r; + } +} +DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + int x = ((int)(((unsigned int)(((const drwav_uint8*)pIn)[i*3+0]) << 8) | ((unsigned int)(((const drwav_uint8*)pIn)[i*3+1]) << 16) | ((unsigned int)(((const drwav_uint8*)pIn)[i*3+2])) << 24)) >> 8; + r = x >> 8; + pOut[i] = (short)r; + } +} +DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + int x = pIn[i]; + r = x >> 16; + pOut[i] = (short)r; + } +} +DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + float x = pIn[i]; + float c; + c = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); + c = c + 1; + r = (int)(c * 32767.5f); + r = r - 32768; + pOut[i] = (short)r; + } +} +DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount) +{ + int r; + size_t i; + for (i = 0; i < sampleCount; ++i) { + double x = pIn[i]; + double c; + c = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); + c = c + 1; + r = (int)(c * 32767.5); + r = r - 32768; + pOut[i] = (short)r; + } +} +DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + for (i = 0; i < sampleCount; ++i) { + pOut[i] = drwav__alaw_to_s16(pIn[i]); + } +} +DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + for (i = 0; i < sampleCount; ++i) { + pOut[i] = drwav__mulaw_to_s16(pIn[i]); + } +} +DRWAV_PRIVATE void drwav__pcm_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) +{ + unsigned int i; + if (bytesPerSample == 1) { + drwav_u8_to_f32(pOut, pIn, sampleCount); + return; + } + if (bytesPerSample == 2) { + drwav_s16_to_f32(pOut, (const drwav_int16*)pIn, sampleCount); + return; + } + if (bytesPerSample == 3) { + drwav_s24_to_f32(pOut, pIn, sampleCount); + return; + } + if (bytesPerSample == 4) { + drwav_s32_to_f32(pOut, (const drwav_int32*)pIn, sampleCount); + return; + } + if (bytesPerSample > 8) { + DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); + return; + } + for (i = 0; i < sampleCount; ++i) { + drwav_uint64 sample = 0; + unsigned int shift = (8 - bytesPerSample) * 8; + unsigned int j; + for (j = 0; j < bytesPerSample; j += 1) { + DRWAV_ASSERT(j < 8); + sample |= (drwav_uint64)(pIn[j]) << shift; + shift += 8; + } + pIn += j; + *pOut++ = (float)((drwav_int64)sample / 9223372036854775807.0); + } +} +DRWAV_PRIVATE void drwav__ieee_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) +{ + if (bytesPerSample == 4) { + unsigned int i; + for (i = 0; i < sampleCount; ++i) { + *pOut++ = ((const float*)pIn)[i]; + } + return; + } else if (bytesPerSample == 8) { + drwav_f64_to_f32(pOut, (const double*)pIn, sampleCount); + return; + } else { + DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); + return; + } +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__pcm(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav__pcm_to_f32(pBufferOut, sampleData, (size_t)framesRead*pWav->channels, bytesPerFrame/pWav->channels); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__msadpcm(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + drwav_int16 samples16[2048]; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); + if (framesRead == 0) { + break; + } + drwav_s16_to_f32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__ima(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + drwav_int16 samples16[2048]; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); + if (framesRead == 0) { + break; + } + drwav_s16_to_f32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__ieee(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame; + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT && pWav->bitsPerSample == 32) { + return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + } + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav__ieee_to_f32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__alaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav_alaw_to_f32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__mulaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav_mulaw_to_f32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + if (pWav == NULL || framesToRead == 0) { + return 0; + } + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + if (framesToRead * pWav->channels * sizeof(float) > DRWAV_SIZE_MAX) { + framesToRead = DRWAV_SIZE_MAX / sizeof(float) / pWav->channels; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { + return drwav_read_pcm_frames_f32__pcm(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + return drwav_read_pcm_frames_f32__msadpcm(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { + return drwav_read_pcm_frames_f32__ieee(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { + return drwav_read_pcm_frames_f32__alaw(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + return drwav_read_pcm_frames_f32__mulaw(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + return drwav_read_pcm_frames_f32__ima(pWav, framesToRead, pBufferOut); + } + return 0; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { + drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); + } + return framesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { + drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); + } + return framesRead; +} +DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } +#ifdef DR_WAV_LIBSNDFILE_COMPAT + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (pIn[i] / 256.0f) * 2 - 1; + } +#else + for (i = 0; i < sampleCount; ++i) { + float x = pIn[i]; + x = x * 0.00784313725490196078f; + x = x - 1; + *pOut++ = x; + } +#endif +} +DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = pIn[i] * 0.000030517578125f; + } +} +DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + double x; + drwav_uint32 a = ((drwav_uint32)(pIn[i*3+0]) << 8); + drwav_uint32 b = ((drwav_uint32)(pIn[i*3+1]) << 16); + drwav_uint32 c = ((drwav_uint32)(pIn[i*3+2]) << 24); + x = (double)((drwav_int32)(a | b | c) >> 8); + *pOut++ = (float)(x * 0.00000011920928955078125); + } +} +DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (float)(pIn[i] / 2147483648.0); + } +} +DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (float)pIn[i]; + } +} +DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = drwav__alaw_to_s16(pIn[i]) / 32768.0f; + } +} +DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = drwav__mulaw_to_s16(pIn[i]) / 32768.0f; + } +} +DRWAV_PRIVATE void drwav__pcm_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + unsigned int i; + if (bytesPerSample == 1) { + drwav_u8_to_s32(pOut, pIn, totalSampleCount); + return; + } + if (bytesPerSample == 2) { + drwav_s16_to_s32(pOut, (const drwav_int16*)pIn, totalSampleCount); + return; + } + if (bytesPerSample == 3) { + drwav_s24_to_s32(pOut, pIn, totalSampleCount); + return; + } + if (bytesPerSample == 4) { + for (i = 0; i < totalSampleCount; ++i) { + *pOut++ = ((const drwav_int32*)pIn)[i]; + } + return; + } + if (bytesPerSample > 8) { + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } + for (i = 0; i < totalSampleCount; ++i) { + drwav_uint64 sample = 0; + unsigned int shift = (8 - bytesPerSample) * 8; + unsigned int j; + for (j = 0; j < bytesPerSample; j += 1) { + DRWAV_ASSERT(j < 8); + sample |= (drwav_uint64)(pIn[j]) << shift; + shift += 8; + } + pIn += j; + *pOut++ = (drwav_int32)((drwav_int64)sample >> 32); + } +} +DRWAV_PRIVATE void drwav__ieee_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +{ + if (bytesPerSample == 4) { + drwav_f32_to_s32(pOut, (const float*)pIn, totalSampleCount); + return; + } else if (bytesPerSample == 8) { + drwav_f64_to_s32(pOut, (const double*)pIn, totalSampleCount); + return; + } else { + DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + return; + } +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame; + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 32) { + return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + } + bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav__pcm_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__msadpcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + drwav_int16 samples16[2048]; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); + if (framesRead == 0) { + break; + } + drwav_s16_to_s32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead = 0; + drwav_int16 samples16[2048]; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); + if (framesRead == 0) { + break; + } + drwav_s16_to_s32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav__ieee_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav_alaw_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 totalFramesRead; + drwav_uint8 sampleData[4096]; + drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + if (bytesPerFrame == 0) { + return 0; + } + totalFramesRead = 0; + while (framesToRead > 0) { + drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); + if (framesRead == 0) { + break; + } + drwav_mulaw_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); + pBufferOut += framesRead*pWav->channels; + framesToRead -= framesRead; + totalFramesRead += framesRead; + } + return totalFramesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + if (pWav == NULL || framesToRead == 0) { + return 0; + } + if (pBufferOut == NULL) { + return drwav_read_pcm_frames(pWav, framesToRead, NULL); + } + if (framesToRead * pWav->channels * sizeof(drwav_int32) > DRWAV_SIZE_MAX) { + framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int32) / pWav->channels; + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { + return drwav_read_pcm_frames_s32__pcm(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { + return drwav_read_pcm_frames_s32__msadpcm(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { + return drwav_read_pcm_frames_s32__ieee(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { + return drwav_read_pcm_frames_s32__alaw(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + return drwav_read_pcm_frames_s32__mulaw(pWav, framesToRead, pBufferOut); + } + if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + return drwav_read_pcm_frames_s32__ima(pWav, framesToRead, pBufferOut); + } + return 0; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { + drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); + } + return framesRead; +} +DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +{ + drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { + drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); + } + return framesRead; +} +DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = ((int)pIn[i] - 128) << 24; + } +} +DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = pIn[i] << 16; + } +} +DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + unsigned int s0 = pIn[i*3 + 0]; + unsigned int s1 = pIn[i*3 + 1]; + unsigned int s2 = pIn[i*3 + 2]; + drwav_int32 sample32 = (drwav_int32)((s0 << 8) | (s1 << 16) | (s2 << 24)); + *pOut++ = sample32; + } +} +DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (drwav_int32)(2147483648.0 * pIn[i]); + } +} +DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = (drwav_int32)(2147483648.0 * pIn[i]); + } +} +DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i = 0; i < sampleCount; ++i) { + *pOut++ = ((drwav_int32)drwav__alaw_to_s16(pIn[i])) << 16; + } +} +DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +{ + size_t i; + if (pOut == NULL || pIn == NULL) { + return; + } + for (i= 0; i < sampleCount; ++i) { + *pOut++ = ((drwav_int32)drwav__mulaw_to_s16(pIn[i])) << 16; + } +} +DRWAV_PRIVATE drwav_int16* drwav__read_pcm_frames_and_close_s16(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +{ + drwav_uint64 sampleDataSize; + drwav_int16* pSampleData; + drwav_uint64 framesRead; + DRWAV_ASSERT(pWav != NULL); + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int16); + if (sampleDataSize > DRWAV_SIZE_MAX) { + drwav_uninit(pWav); + return NULL; + } + pSampleData = (drwav_int16*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); + if (pSampleData == NULL) { + drwav_uninit(pWav); + return NULL; + } + framesRead = drwav_read_pcm_frames_s16(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + if (framesRead != pWav->totalPCMFrameCount) { + drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + drwav_uninit(pWav); + return NULL; + } + drwav_uninit(pWav); + if (sampleRate) { + *sampleRate = pWav->sampleRate; + } + if (channels) { + *channels = pWav->channels; + } + if (totalFrameCount) { + *totalFrameCount = pWav->totalPCMFrameCount; + } + return pSampleData; +} +DRWAV_PRIVATE float* drwav__read_pcm_frames_and_close_f32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +{ + drwav_uint64 sampleDataSize; + float* pSampleData; + drwav_uint64 framesRead; + DRWAV_ASSERT(pWav != NULL); + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(float); + if (sampleDataSize > DRWAV_SIZE_MAX) { + drwav_uninit(pWav); + return NULL; + } + pSampleData = (float*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); + if (pSampleData == NULL) { + drwav_uninit(pWav); + return NULL; + } + framesRead = drwav_read_pcm_frames_f32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + if (framesRead != pWav->totalPCMFrameCount) { + drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + drwav_uninit(pWav); + return NULL; + } + drwav_uninit(pWav); + if (sampleRate) { + *sampleRate = pWav->sampleRate; + } + if (channels) { + *channels = pWav->channels; + } + if (totalFrameCount) { + *totalFrameCount = pWav->totalPCMFrameCount; + } + return pSampleData; +} +DRWAV_PRIVATE drwav_int32* drwav__read_pcm_frames_and_close_s32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +{ + drwav_uint64 sampleDataSize; + drwav_int32* pSampleData; + drwav_uint64 framesRead; + DRWAV_ASSERT(pWav != NULL); + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int32); + if (sampleDataSize > DRWAV_SIZE_MAX) { + drwav_uninit(pWav); + return NULL; + } + pSampleData = (drwav_int32*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); + if (pSampleData == NULL) { + drwav_uninit(pWav); + return NULL; + } + framesRead = drwav_read_pcm_frames_s32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + if (framesRead != pWav->totalPCMFrameCount) { + drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + drwav_uninit(pWav); + return NULL; + } + drwav_uninit(pWav); + if (sampleRate) { + *sampleRate = pWav->sampleRate; + } + if (channels) { + *channels = pWav->channels; + } + if (totalFrameCount) { + *totalFrameCount = pWav->totalPCMFrameCount; + } + return pSampleData; +} +DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +#ifndef DR_WAV_NO_STDIO +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (channelsOut) { + *channelsOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (channelsOut) { + *channelsOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (channelsOut) { + *channelsOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +#endif +DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + drwav wav; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalFrameCountOut) { + *totalFrameCountOut = 0; + } + if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + return NULL; + } + return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); +} +#endif +DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drwav__free_from_callbacks(p, pAllocationCallbacks); + } else { + drwav__free_default(p, NULL); + } +} +DRWAV_API drwav_uint16 drwav_bytes_to_u16(const drwav_uint8* data) +{ + return (data[0] << 0) | (data[1] << 8); +} +DRWAV_API drwav_int16 drwav_bytes_to_s16(const drwav_uint8* data) +{ + return (short)drwav_bytes_to_u16(data); +} +DRWAV_API drwav_uint32 drwav_bytes_to_u32(const drwav_uint8* data) +{ + return (data[0] << 0) | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); +} +DRWAV_API drwav_int32 drwav_bytes_to_s32(const drwav_uint8* data) +{ + return (drwav_int32)drwav_bytes_to_u32(data); +} +DRWAV_API drwav_uint64 drwav_bytes_to_u64(const drwav_uint8* data) +{ + return + ((drwav_uint64)data[0] << 0) | ((drwav_uint64)data[1] << 8) | ((drwav_uint64)data[2] << 16) | ((drwav_uint64)data[3] << 24) | + ((drwav_uint64)data[4] << 32) | ((drwav_uint64)data[5] << 40) | ((drwav_uint64)data[6] << 48) | ((drwav_uint64)data[7] << 56); +} +DRWAV_API drwav_int64 drwav_bytes_to_s64(const drwav_uint8* data) +{ + return (drwav_int64)drwav_bytes_to_u64(data); +} +DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]) +{ + int i; + for (i = 0; i < 16; i += 1) { + if (a[i] != b[i]) { + return DRWAV_FALSE; + } + } + return DRWAV_TRUE; +} +DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b) +{ + return + a[0] == b[0] && + a[1] == b[1] && + a[2] == b[2] && + a[3] == b[3]; +} +#endif +/* dr_wav_c end */ +#endif /* DRWAV_IMPLEMENTATION */ +#endif /* MA_NO_WAV */ + +#if !defined(MA_NO_FLAC) && !defined(MA_NO_DECODING) +#if !defined(DR_FLAC_IMPLEMENTATION) && !defined(DRFLAC_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ +/* dr_flac_c begin */ +#ifndef dr_flac_c +#define dr_flac_c +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #if __GNUC__ >= 7 + #pragma GCC diagnostic ignored "-Wimplicit-fallthrough" + #endif +#endif +#ifdef __linux__ + #ifndef _BSD_SOURCE + #define _BSD_SOURCE + #endif + #ifndef _DEFAULT_SOURCE + #define _DEFAULT_SOURCE + #endif + #ifndef __USE_BSD + #define __USE_BSD + #endif + #include +#endif +#include +#include +#ifdef _MSC_VER + #define DRFLAC_INLINE __forceinline +#elif defined(__GNUC__) + #if defined(__STRICT_ANSI__) + #define DRFLAC_INLINE __inline__ __attribute__((always_inline)) + #else + #define DRFLAC_INLINE inline __attribute__((always_inline)) + #endif +#elif defined(__WATCOMC__) + #define DRFLAC_INLINE __inline +#else + #define DRFLAC_INLINE +#endif +#if defined(__x86_64__) || defined(_M_X64) + #define DRFLAC_X64 +#elif defined(__i386) || defined(_M_IX86) + #define DRFLAC_X86 +#elif defined(__arm__) || defined(_M_ARM) || defined(_M_ARM64) + #define DRFLAC_ARM +#endif +#if !defined(DR_FLAC_NO_SIMD) + #if defined(DRFLAC_X64) || defined(DRFLAC_X86) + #if defined(_MSC_VER) && !defined(__clang__) + #if _MSC_VER >= 1400 && !defined(DRFLAC_NO_SSE2) + #define DRFLAC_SUPPORT_SSE2 + #endif + #if _MSC_VER >= 1600 && !defined(DRFLAC_NO_SSE41) + #define DRFLAC_SUPPORT_SSE41 + #endif + #elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) + #if defined(__SSE2__) && !defined(DRFLAC_NO_SSE2) + #define DRFLAC_SUPPORT_SSE2 + #endif + #if defined(__SSE4_1__) && !defined(DRFLAC_NO_SSE41) + #define DRFLAC_SUPPORT_SSE41 + #endif + #endif + #if !defined(__GNUC__) && !defined(__clang__) && defined(__has_include) + #if !defined(DRFLAC_SUPPORT_SSE2) && !defined(DRFLAC_NO_SSE2) && __has_include() + #define DRFLAC_SUPPORT_SSE2 + #endif + #if !defined(DRFLAC_SUPPORT_SSE41) && !defined(DRFLAC_NO_SSE41) && __has_include() + #define DRFLAC_SUPPORT_SSE41 + #endif + #endif + #if defined(DRFLAC_SUPPORT_SSE41) + #include + #elif defined(DRFLAC_SUPPORT_SSE2) + #include + #endif + #endif + #if defined(DRFLAC_ARM) + #if !defined(DRFLAC_NO_NEON) && (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + #define DRFLAC_SUPPORT_NEON + #endif + #if !defined(__GNUC__) && !defined(__clang__) && defined(__has_include) + #if !defined(DRFLAC_SUPPORT_NEON) && !defined(DRFLAC_NO_NEON) && __has_include() + #define DRFLAC_SUPPORT_NEON + #endif + #endif + #if defined(DRFLAC_SUPPORT_NEON) + #include + #endif + #endif +#endif +#if !defined(DR_FLAC_NO_SIMD) && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) + #if defined(_MSC_VER) && !defined(__clang__) + #if _MSC_VER >= 1400 + #include + static void drflac__cpuid(int info[4], int fid) + { + __cpuid(info, fid); + } + #else + #define DRFLAC_NO_CPUID + #endif + #else + #if defined(__GNUC__) || defined(__clang__) + static void drflac__cpuid(int info[4], int fid) + { + #if defined(DRFLAC_X86) && defined(__PIC__) + __asm__ __volatile__ ( + "xchg{l} {%%}ebx, %k1;" + "cpuid;" + "xchg{l} {%%}ebx, %k1;" + : "=a"(info[0]), "=&r"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #else + __asm__ __volatile__ ( + "cpuid" : "=a"(info[0]), "=b"(info[1]), "=c"(info[2]), "=d"(info[3]) : "a"(fid), "c"(0) + ); + #endif + } + #else + #define DRFLAC_NO_CPUID + #endif + #endif +#else + #define DRFLAC_NO_CPUID +#endif +static DRFLAC_INLINE drflac_bool32 drflac_has_sse2(void) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE2) + #if defined(DRFLAC_X64) + return DRFLAC_TRUE; + #elif (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__) + return DRFLAC_TRUE; + #else + #if defined(DRFLAC_NO_CPUID) + return DRFLAC_FALSE; + #else + int info[4]; + drflac__cpuid(info, 1); + return (info[3] & (1 << 26)) != 0; + #endif + #endif + #else + return DRFLAC_FALSE; + #endif +#else + return DRFLAC_FALSE; +#endif +} +static DRFLAC_INLINE drflac_bool32 drflac_has_sse41(void) +{ +#if defined(DRFLAC_SUPPORT_SSE41) + #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE41) + #if defined(DRFLAC_X64) + return DRFLAC_TRUE; + #elif (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE4_1__) + return DRFLAC_TRUE; + #else + #if defined(DRFLAC_NO_CPUID) + return DRFLAC_FALSE; + #else + int info[4]; + drflac__cpuid(info, 1); + return (info[2] & (1 << 19)) != 0; + #endif + #endif + #else + return DRFLAC_FALSE; + #endif +#else + return DRFLAC_FALSE; +#endif +} +#if defined(_MSC_VER) && _MSC_VER >= 1500 && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) && !defined(__clang__) + #define DRFLAC_HAS_LZCNT_INTRINSIC +#elif (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #define DRFLAC_HAS_LZCNT_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_clzll) || __has_builtin(__builtin_clzl) + #define DRFLAC_HAS_LZCNT_INTRINSIC + #endif + #endif +#endif +#if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(__clang__) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC +#elif defined(__clang__) + #if defined(__has_builtin) + #if __has_builtin(__builtin_bswap16) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap32) + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #endif + #if __has_builtin(__builtin_bswap64) + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #endif + #endif +#elif defined(__GNUC__) + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #endif + #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #endif +#elif defined(__WATCOMC__) && defined(__386__) + #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + extern __inline drflac_uint16 _watcom_bswap16(drflac_uint16); + extern __inline drflac_uint32 _watcom_bswap32(drflac_uint32); + extern __inline drflac_uint64 _watcom_bswap64(drflac_uint64); +#pragma aux _watcom_bswap16 = \ + "xchg al, ah" \ + parm [ax] \ + modify [ax]; +#pragma aux _watcom_bswap32 = \ + "bswap eax" \ + parm [eax] \ + modify [eax]; +#pragma aux _watcom_bswap64 = \ + "bswap eax" \ + "bswap edx" \ + "xchg eax,edx" \ + parm [eax edx] \ + modify [eax edx]; +#endif +#ifndef DRFLAC_ASSERT +#include +#define DRFLAC_ASSERT(expression) assert(expression) +#endif +#ifndef DRFLAC_MALLOC +#define DRFLAC_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRFLAC_REALLOC +#define DRFLAC_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRFLAC_FREE +#define DRFLAC_FREE(p) free((p)) +#endif +#ifndef DRFLAC_COPY_MEMORY +#define DRFLAC_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRFLAC_ZERO_MEMORY +#define DRFLAC_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#ifndef DRFLAC_ZERO_OBJECT +#define DRFLAC_ZERO_OBJECT(p) DRFLAC_ZERO_MEMORY((p), sizeof(*(p))) +#endif +#define DRFLAC_MAX_SIMD_VECTOR_SIZE 64 +typedef drflac_int32 drflac_result; +#define DRFLAC_SUCCESS 0 +#define DRFLAC_ERROR -1 +#define DRFLAC_INVALID_ARGS -2 +#define DRFLAC_INVALID_OPERATION -3 +#define DRFLAC_OUT_OF_MEMORY -4 +#define DRFLAC_OUT_OF_RANGE -5 +#define DRFLAC_ACCESS_DENIED -6 +#define DRFLAC_DOES_NOT_EXIST -7 +#define DRFLAC_ALREADY_EXISTS -8 +#define DRFLAC_TOO_MANY_OPEN_FILES -9 +#define DRFLAC_INVALID_FILE -10 +#define DRFLAC_TOO_BIG -11 +#define DRFLAC_PATH_TOO_LONG -12 +#define DRFLAC_NAME_TOO_LONG -13 +#define DRFLAC_NOT_DIRECTORY -14 +#define DRFLAC_IS_DIRECTORY -15 +#define DRFLAC_DIRECTORY_NOT_EMPTY -16 +#define DRFLAC_END_OF_FILE -17 +#define DRFLAC_NO_SPACE -18 +#define DRFLAC_BUSY -19 +#define DRFLAC_IO_ERROR -20 +#define DRFLAC_INTERRUPT -21 +#define DRFLAC_UNAVAILABLE -22 +#define DRFLAC_ALREADY_IN_USE -23 +#define DRFLAC_BAD_ADDRESS -24 +#define DRFLAC_BAD_SEEK -25 +#define DRFLAC_BAD_PIPE -26 +#define DRFLAC_DEADLOCK -27 +#define DRFLAC_TOO_MANY_LINKS -28 +#define DRFLAC_NOT_IMPLEMENTED -29 +#define DRFLAC_NO_MESSAGE -30 +#define DRFLAC_BAD_MESSAGE -31 +#define DRFLAC_NO_DATA_AVAILABLE -32 +#define DRFLAC_INVALID_DATA -33 +#define DRFLAC_TIMEOUT -34 +#define DRFLAC_NO_NETWORK -35 +#define DRFLAC_NOT_UNIQUE -36 +#define DRFLAC_NOT_SOCKET -37 +#define DRFLAC_NO_ADDRESS -38 +#define DRFLAC_BAD_PROTOCOL -39 +#define DRFLAC_PROTOCOL_UNAVAILABLE -40 +#define DRFLAC_PROTOCOL_NOT_SUPPORTED -41 +#define DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED -42 +#define DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED -43 +#define DRFLAC_SOCKET_NOT_SUPPORTED -44 +#define DRFLAC_CONNECTION_RESET -45 +#define DRFLAC_ALREADY_CONNECTED -46 +#define DRFLAC_NOT_CONNECTED -47 +#define DRFLAC_CONNECTION_REFUSED -48 +#define DRFLAC_NO_HOST -49 +#define DRFLAC_IN_PROGRESS -50 +#define DRFLAC_CANCELLED -51 +#define DRFLAC_MEMORY_ALREADY_MAPPED -52 +#define DRFLAC_AT_END -53 +#define DRFLAC_CRC_MISMATCH -128 +#define DRFLAC_SUBFRAME_CONSTANT 0 +#define DRFLAC_SUBFRAME_VERBATIM 1 +#define DRFLAC_SUBFRAME_FIXED 8 +#define DRFLAC_SUBFRAME_LPC 32 +#define DRFLAC_SUBFRAME_RESERVED 255 +#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE 0 +#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2 1 +#define DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT 0 +#define DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE 8 +#define DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE 9 +#define DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE 10 +#define drflac_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) +DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRFLAC_VERSION_MAJOR; + } + if (pMinor) { + *pMinor = DRFLAC_VERSION_MINOR; + } + if (pRevision) { + *pRevision = DRFLAC_VERSION_REVISION; + } +} +DRFLAC_API const char* drflac_version_string(void) +{ + return DRFLAC_VERSION_STRING; +} +#if defined(__has_feature) + #if __has_feature(thread_sanitizer) + #define DRFLAC_NO_THREAD_SANITIZE __attribute__((no_sanitize("thread"))) + #else + #define DRFLAC_NO_THREAD_SANITIZE + #endif +#else + #define DRFLAC_NO_THREAD_SANITIZE +#endif +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) +static drflac_bool32 drflac__gIsLZCNTSupported = DRFLAC_FALSE; +#endif +#ifndef DRFLAC_NO_CPUID +static drflac_bool32 drflac__gIsSSE2Supported = DRFLAC_FALSE; +static drflac_bool32 drflac__gIsSSE41Supported = DRFLAC_FALSE; +DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +{ + static drflac_bool32 isCPUCapsInitialized = DRFLAC_FALSE; + if (!isCPUCapsInitialized) { +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) + int info[4] = {0}; + drflac__cpuid(info, 0x80000001); + drflac__gIsLZCNTSupported = (info[2] & (1 << 5)) != 0; +#endif + drflac__gIsSSE2Supported = drflac_has_sse2(); + drflac__gIsSSE41Supported = drflac_has_sse41(); + isCPUCapsInitialized = DRFLAC_TRUE; + } +} +#else +static drflac_bool32 drflac__gIsNEONSupported = DRFLAC_FALSE; +static DRFLAC_INLINE drflac_bool32 drflac__has_neon(void) +{ +#if defined(DRFLAC_SUPPORT_NEON) + #if defined(DRFLAC_ARM) && !defined(DRFLAC_NO_NEON) + #if (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + return DRFLAC_TRUE; + #else + return DRFLAC_FALSE; + #endif + #else + return DRFLAC_FALSE; + #endif +#else + return DRFLAC_FALSE; +#endif +} +DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +{ + drflac__gIsNEONSupported = drflac__has_neon(); +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + drflac__gIsLZCNTSupported = DRFLAC_TRUE; +#endif +} +#endif +static DRFLAC_INLINE drflac_bool32 drflac__is_little_endian(void) +{ +#if defined(DRFLAC_X86) || defined(DRFLAC_X64) + return DRFLAC_TRUE; +#elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN + return DRFLAC_TRUE; +#else + int n = 1; + return (*(char*)&n) == 1; +#endif +} +static DRFLAC_INLINE drflac_uint16 drflac__swap_endian_uint16(drflac_uint16 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP16_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_ushort(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap16(n); + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap16(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF00) >> 8) | + ((n & 0x00FF) << 8); +#endif +} +static DRFLAC_INLINE drflac_uint32 drflac__swap_endian_uint32(drflac_uint32 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP32_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_ulong(n); + #elif defined(__GNUC__) || defined(__clang__) + #if defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(DRFLAC_64BIT) + drflac_uint32 r; + __asm__ __volatile__ ( + #if defined(DRFLAC_64BIT) + "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) + #else + "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) + #endif + ); + return r; + #else + return __builtin_bswap32(n); + #endif + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap32(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & 0xFF000000) >> 24) | + ((n & 0x00FF0000) >> 8) | + ((n & 0x0000FF00) << 8) | + ((n & 0x000000FF) << 24); +#endif +} +static DRFLAC_INLINE drflac_uint64 drflac__swap_endian_uint64(drflac_uint64 n) +{ +#ifdef DRFLAC_HAS_BYTESWAP64_INTRINSIC + #if defined(_MSC_VER) && !defined(__clang__) + return _byteswap_uint64(n); + #elif defined(__GNUC__) || defined(__clang__) + return __builtin_bswap64(n); + #elif defined(__WATCOMC__) && defined(__386__) + return _watcom_bswap64(n); + #else + #error "This compiler does not support the byte swap intrinsic." + #endif +#else + return ((n & ((drflac_uint64)0xFF000000 << 32)) >> 56) | + ((n & ((drflac_uint64)0x00FF0000 << 32)) >> 40) | + ((n & ((drflac_uint64)0x0000FF00 << 32)) >> 24) | + ((n & ((drflac_uint64)0x000000FF << 32)) >> 8) | + ((n & ((drflac_uint64)0xFF000000 )) << 8) | + ((n & ((drflac_uint64)0x00FF0000 )) << 24) | + ((n & ((drflac_uint64)0x0000FF00 )) << 40) | + ((n & ((drflac_uint64)0x000000FF )) << 56); +#endif +} +static DRFLAC_INLINE drflac_uint16 drflac__be2host_16(drflac_uint16 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint16(n); + } + return n; +} +static DRFLAC_INLINE drflac_uint32 drflac__be2host_32(drflac_uint32 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint32(n); + } + return n; +} +static DRFLAC_INLINE drflac_uint64 drflac__be2host_64(drflac_uint64 n) +{ + if (drflac__is_little_endian()) { + return drflac__swap_endian_uint64(n); + } + return n; +} +static DRFLAC_INLINE drflac_uint32 drflac__le2host_32(drflac_uint32 n) +{ + if (!drflac__is_little_endian()) { + return drflac__swap_endian_uint32(n); + } + return n; +} +static DRFLAC_INLINE drflac_uint32 drflac__unsynchsafe_32(drflac_uint32 n) +{ + drflac_uint32 result = 0; + result |= (n & 0x7F000000) >> 3; + result |= (n & 0x007F0000) >> 2; + result |= (n & 0x00007F00) >> 1; + result |= (n & 0x0000007F) >> 0; + return result; +} +static drflac_uint8 drflac__crc8_table[] = { + 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, + 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, + 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, + 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD, + 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, + 0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A, + 0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A, + 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42, 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, + 0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4, + 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4, + 0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C, 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, + 0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34, + 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63, + 0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B, 0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13, + 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, + 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 +}; +static drflac_uint16 drflac__crc16_table[] = { + 0x0000, 0x8005, 0x800F, 0x000A, 0x801B, 0x001E, 0x0014, 0x8011, + 0x8033, 0x0036, 0x003C, 0x8039, 0x0028, 0x802D, 0x8027, 0x0022, + 0x8063, 0x0066, 0x006C, 0x8069, 0x0078, 0x807D, 0x8077, 0x0072, + 0x0050, 0x8055, 0x805F, 0x005A, 0x804B, 0x004E, 0x0044, 0x8041, + 0x80C3, 0x00C6, 0x00CC, 0x80C9, 0x00D8, 0x80DD, 0x80D7, 0x00D2, + 0x00F0, 0x80F5, 0x80FF, 0x00FA, 0x80EB, 0x00EE, 0x00E4, 0x80E1, + 0x00A0, 0x80A5, 0x80AF, 0x00AA, 0x80BB, 0x00BE, 0x00B4, 0x80B1, + 0x8093, 0x0096, 0x009C, 0x8099, 0x0088, 0x808D, 0x8087, 0x0082, + 0x8183, 0x0186, 0x018C, 0x8189, 0x0198, 0x819D, 0x8197, 0x0192, + 0x01B0, 0x81B5, 0x81BF, 0x01BA, 0x81AB, 0x01AE, 0x01A4, 0x81A1, + 0x01E0, 0x81E5, 0x81EF, 0x01EA, 0x81FB, 0x01FE, 0x01F4, 0x81F1, + 0x81D3, 0x01D6, 0x01DC, 0x81D9, 0x01C8, 0x81CD, 0x81C7, 0x01C2, + 0x0140, 0x8145, 0x814F, 0x014A, 0x815B, 0x015E, 0x0154, 0x8151, + 0x8173, 0x0176, 0x017C, 0x8179, 0x0168, 0x816D, 0x8167, 0x0162, + 0x8123, 0x0126, 0x012C, 0x8129, 0x0138, 0x813D, 0x8137, 0x0132, + 0x0110, 0x8115, 0x811F, 0x011A, 0x810B, 0x010E, 0x0104, 0x8101, + 0x8303, 0x0306, 0x030C, 0x8309, 0x0318, 0x831D, 0x8317, 0x0312, + 0x0330, 0x8335, 0x833F, 0x033A, 0x832B, 0x032E, 0x0324, 0x8321, + 0x0360, 0x8365, 0x836F, 0x036A, 0x837B, 0x037E, 0x0374, 0x8371, + 0x8353, 0x0356, 0x035C, 0x8359, 0x0348, 0x834D, 0x8347, 0x0342, + 0x03C0, 0x83C5, 0x83CF, 0x03CA, 0x83DB, 0x03DE, 0x03D4, 0x83D1, + 0x83F3, 0x03F6, 0x03FC, 0x83F9, 0x03E8, 0x83ED, 0x83E7, 0x03E2, + 0x83A3, 0x03A6, 0x03AC, 0x83A9, 0x03B8, 0x83BD, 0x83B7, 0x03B2, + 0x0390, 0x8395, 0x839F, 0x039A, 0x838B, 0x038E, 0x0384, 0x8381, + 0x0280, 0x8285, 0x828F, 0x028A, 0x829B, 0x029E, 0x0294, 0x8291, + 0x82B3, 0x02B6, 0x02BC, 0x82B9, 0x02A8, 0x82AD, 0x82A7, 0x02A2, + 0x82E3, 0x02E6, 0x02EC, 0x82E9, 0x02F8, 0x82FD, 0x82F7, 0x02F2, + 0x02D0, 0x82D5, 0x82DF, 0x02DA, 0x82CB, 0x02CE, 0x02C4, 0x82C1, + 0x8243, 0x0246, 0x024C, 0x8249, 0x0258, 0x825D, 0x8257, 0x0252, + 0x0270, 0x8275, 0x827F, 0x027A, 0x826B, 0x026E, 0x0264, 0x8261, + 0x0220, 0x8225, 0x822F, 0x022A, 0x823B, 0x023E, 0x0234, 0x8231, + 0x8213, 0x0216, 0x021C, 0x8219, 0x0208, 0x820D, 0x8207, 0x0202 +}; +static DRFLAC_INLINE drflac_uint8 drflac_crc8_byte(drflac_uint8 crc, drflac_uint8 data) +{ + return drflac__crc8_table[crc ^ data]; +} +static DRFLAC_INLINE drflac_uint8 drflac_crc8(drflac_uint8 crc, drflac_uint32 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else +#if 0 + drflac_uint8 p = 0x07; + for (int i = count-1; i >= 0; --i) { + drflac_uint8 bit = (data & (1 << i)) >> i; + if (crc & 0x80) { + crc = ((crc << 1) | bit) ^ p; + } else { + crc = ((crc << 1) | bit); + } + } + return crc; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + DRFLAC_ASSERT(count <= 32); + wholeBytes = count >> 3; + leftoverBits = count - (wholeBytes*8); + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + switch (wholeBytes) { + case 4: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (drflac_uint8)((crc << leftoverBits) ^ drflac__crc8_table[(crc >> (8 - leftoverBits)) ^ (data & leftoverDataMask)]); + } + return crc; +#endif +#endif +} +static DRFLAC_INLINE drflac_uint16 drflac_crc16_byte(drflac_uint16 crc, drflac_uint8 data) +{ + return (crc << 8) ^ drflac__crc16_table[(drflac_uint8)(crc >> 8) ^ data]; +} +static DRFLAC_INLINE drflac_uint16 drflac_crc16_cache(drflac_uint16 crc, drflac_cache_t data) +{ +#ifdef DRFLAC_64BIT + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#endif + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); + crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + return crc; +} +static DRFLAC_INLINE drflac_uint16 drflac_crc16_bytes(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 byteCount) +{ + switch (byteCount) + { +#ifdef DRFLAC_64BIT + case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); + case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); + case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); + case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#endif + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + } + return crc; +} +#if 0 +static DRFLAC_INLINE drflac_uint16 drflac_crc16__32bit(drflac_uint16 crc, drflac_uint32 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else +#if 0 + drflac_uint16 p = 0x8005; + for (int i = count-1; i >= 0; --i) { + drflac_uint16 bit = (data & (1ULL << i)) >> i; + if (r & 0x8000) { + r = ((r << 1) | bit) ^ p; + } else { + r = ((r << 1) | bit); + } + } + return crc; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + DRFLAC_ASSERT(count <= 64); + wholeBytes = count >> 3; + leftoverBits = count & 7; + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + switch (wholeBytes) { + default: + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + } + return crc; +#endif +#endif +} +static DRFLAC_INLINE drflac_uint16 drflac_crc16__64bit(drflac_uint16 crc, drflac_uint64 data, drflac_uint32 count) +{ +#ifdef DR_FLAC_NO_CRC + (void)crc; + (void)data; + (void)count; + return 0; +#else + drflac_uint32 wholeBytes; + drflac_uint32 leftoverBits; + drflac_uint64 leftoverDataMask; + static drflac_uint64 leftoverDataMaskTable[8] = { + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F + }; + DRFLAC_ASSERT(count <= 64); + wholeBytes = count >> 3; + leftoverBits = count & 7; + leftoverDataMask = leftoverDataMaskTable[leftoverBits]; + switch (wholeBytes) { + default: + case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 << 32) << leftoverBits)) >> (56 + leftoverBits))); + case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 << 32) << leftoverBits)) >> (48 + leftoverBits))); + case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 << 32) << leftoverBits)) >> (40 + leftoverBits))); + case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF << 32) << leftoverBits)) >> (32 + leftoverBits))); + case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 ) << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 ) << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 ) << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF ) << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + } + return crc; +#endif +} +static DRFLAC_INLINE drflac_uint16 drflac_crc16(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 count) +{ +#ifdef DRFLAC_64BIT + return drflac_crc16__64bit(crc, data, count); +#else + return drflac_crc16__32bit(crc, data, count); +#endif +} +#endif +#ifdef DRFLAC_64BIT +#define drflac__be2host__cache_line drflac__be2host_64 +#else +#define drflac__be2host__cache_line drflac__be2host_32 +#endif +#define DRFLAC_CACHE_L1_SIZE_BYTES(bs) (sizeof((bs)->cache)) +#define DRFLAC_CACHE_L1_SIZE_BITS(bs) (sizeof((bs)->cache)*8) +#define DRFLAC_CACHE_L1_BITS_REMAINING(bs) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (bs)->consumedBits) +#define DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount) (~((~(drflac_cache_t)0) >> (_bitCount))) +#define DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (_bitCount)) +#define DRFLAC_CACHE_L1_SELECT(bs, _bitCount) (((bs)->cache) & DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount)) +#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount))) +#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, _bitCount)(DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> (DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount)) & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1))) +#define DRFLAC_CACHE_L2_SIZE_BYTES(bs) (sizeof((bs)->cacheL2)) +#define DRFLAC_CACHE_L2_LINE_COUNT(bs) (DRFLAC_CACHE_L2_SIZE_BYTES(bs) / sizeof((bs)->cacheL2[0])) +#define DRFLAC_CACHE_L2_LINES_REMAINING(bs) (DRFLAC_CACHE_L2_LINE_COUNT(bs) - (bs)->nextL2Line) +#ifndef DR_FLAC_NO_CRC +static DRFLAC_INLINE void drflac__reset_crc16(drflac_bs* bs) +{ + bs->crc16 = 0; + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; +} +static DRFLAC_INLINE void drflac__update_crc16(drflac_bs* bs) +{ + if (bs->crc16CacheIgnoredBytes == 0) { + bs->crc16 = drflac_crc16_cache(bs->crc16, bs->crc16Cache); + } else { + bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache, DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bs->crc16CacheIgnoredBytes); + bs->crc16CacheIgnoredBytes = 0; + } +} +static DRFLAC_INLINE drflac_uint16 drflac__flush_crc16(drflac_bs* bs) +{ + DRFLAC_ASSERT((DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7) == 0); + if (DRFLAC_CACHE_L1_BITS_REMAINING(bs) == 0) { + drflac__update_crc16(bs); + } else { + bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache >> DRFLAC_CACHE_L1_BITS_REMAINING(bs), (bs->consumedBits >> 3) - bs->crc16CacheIgnoredBytes); + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; + } + return bs->crc16; +} +#endif +static DRFLAC_INLINE drflac_bool32 drflac__reload_l1_cache_from_l2(drflac_bs* bs) +{ + size_t bytesRead; + size_t alignedL1LineCount; + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } + if (bs->unalignedByteCount > 0) { + return DRFLAC_FALSE; + } + bytesRead = bs->onRead(bs->pUserData, bs->cacheL2, DRFLAC_CACHE_L2_SIZE_BYTES(bs)); + bs->nextL2Line = 0; + if (bytesRead == DRFLAC_CACHE_L2_SIZE_BYTES(bs)) { + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } + alignedL1LineCount = bytesRead / DRFLAC_CACHE_L1_SIZE_BYTES(bs); + bs->unalignedByteCount = bytesRead - (alignedL1LineCount * DRFLAC_CACHE_L1_SIZE_BYTES(bs)); + if (bs->unalignedByteCount > 0) { + bs->unalignedCache = bs->cacheL2[alignedL1LineCount]; + } + if (alignedL1LineCount > 0) { + size_t offset = DRFLAC_CACHE_L2_LINE_COUNT(bs) - alignedL1LineCount; + size_t i; + for (i = alignedL1LineCount; i > 0; --i) { + bs->cacheL2[i-1 + offset] = bs->cacheL2[i-1]; + } + bs->nextL2Line = (drflac_uint32)offset; + bs->cache = bs->cacheL2[bs->nextL2Line++]; + return DRFLAC_TRUE; + } else { + bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); + return DRFLAC_FALSE; + } +} +static drflac_bool32 drflac__reload_cache(drflac_bs* bs) +{ + size_t bytesRead; +#ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); +#endif + if (drflac__reload_l1_cache_from_l2(bs)) { + bs->cache = drflac__be2host__cache_line(bs->cache); + bs->consumedBits = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache; +#endif + return DRFLAC_TRUE; + } + bytesRead = bs->unalignedByteCount; + if (bytesRead == 0) { + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); + return DRFLAC_FALSE; + } + DRFLAC_ASSERT(bytesRead < DRFLAC_CACHE_L1_SIZE_BYTES(bs)); + bs->consumedBits = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bytesRead) * 8; + bs->cache = drflac__be2host__cache_line(bs->unalignedCache); + bs->cache &= DRFLAC_CACHE_L1_SELECTION_MASK(DRFLAC_CACHE_L1_BITS_REMAINING(bs)); + bs->unalignedByteCount = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache >> bs->consumedBits; + bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; +#endif + return DRFLAC_TRUE; +} +static void drflac__reset_cache(drflac_bs* bs) +{ + bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); + bs->cache = 0; + bs->unalignedByteCount = 0; + bs->unalignedCache = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = 0; + bs->crc16CacheIgnoredBytes = 0; +#endif +} +static DRFLAC_INLINE drflac_bool32 drflac__read_uint32(drflac_bs* bs, unsigned int bitCount, drflac_uint32* pResultOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResultOut != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 32); + if (bs->consumedBits == DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + if (bitCount <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { +#ifdef DRFLAC_64BIT + *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + bs->consumedBits += bitCount; + bs->cache <<= bitCount; +#else + if (bitCount < DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + bs->consumedBits += bitCount; + bs->cache <<= bitCount; + } else { + *pResultOut = (drflac_uint32)bs->cache; + bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); + bs->cache = 0; + } +#endif + return DRFLAC_TRUE; + } else { + drflac_uint32 bitCountHi = DRFLAC_CACHE_L1_BITS_REMAINING(bs); + drflac_uint32 bitCountLo = bitCount - bitCountHi; + drflac_uint32 resultHi; + DRFLAC_ASSERT(bitCountHi > 0); + DRFLAC_ASSERT(bitCountHi < 32); + resultHi = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountHi); + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + *pResultOut = (resultHi << bitCountLo) | (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountLo); + bs->consumedBits += bitCountLo; + bs->cache <<= bitCountLo; + return DRFLAC_TRUE; + } +} +static drflac_bool32 drflac__read_int32(drflac_bs* bs, unsigned int bitCount, drflac_int32* pResult) +{ + drflac_uint32 result; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 32); + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + if (bitCount < 32) { + drflac_uint32 signbit; + signbit = ((result >> (bitCount-1)) & 0x01); + result |= (~signbit + 1) << bitCount; + } + *pResult = (drflac_int32)result; + return DRFLAC_TRUE; +} +#ifdef DRFLAC_64BIT +static drflac_bool32 drflac__read_uint64(drflac_bs* bs, unsigned int bitCount, drflac_uint64* pResultOut) +{ + drflac_uint32 resultHi; + drflac_uint32 resultLo; + DRFLAC_ASSERT(bitCount <= 64); + DRFLAC_ASSERT(bitCount > 32); + if (!drflac__read_uint32(bs, bitCount - 32, &resultHi)) { + return DRFLAC_FALSE; + } + if (!drflac__read_uint32(bs, 32, &resultLo)) { + return DRFLAC_FALSE; + } + *pResultOut = (((drflac_uint64)resultHi) << 32) | ((drflac_uint64)resultLo); + return DRFLAC_TRUE; +} +#endif +#if 0 +static drflac_bool32 drflac__read_int64(drflac_bs* bs, unsigned int bitCount, drflac_int64* pResultOut) +{ + drflac_uint64 result; + drflac_uint64 signbit; + DRFLAC_ASSERT(bitCount <= 64); + if (!drflac__read_uint64(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + signbit = ((result >> (bitCount-1)) & 0x01); + result |= (~signbit + 1) << bitCount; + *pResultOut = (drflac_int64)result; + return DRFLAC_TRUE; +} +#endif +static drflac_bool32 drflac__read_uint16(drflac_bs* bs, unsigned int bitCount, drflac_uint16* pResult) +{ + drflac_uint32 result; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 16); + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + *pResult = (drflac_uint16)result; + return DRFLAC_TRUE; +} +#if 0 +static drflac_bool32 drflac__read_int16(drflac_bs* bs, unsigned int bitCount, drflac_int16* pResult) +{ + drflac_int32 result; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 16); + if (!drflac__read_int32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + *pResult = (drflac_int16)result; + return DRFLAC_TRUE; +} +#endif +static drflac_bool32 drflac__read_uint8(drflac_bs* bs, unsigned int bitCount, drflac_uint8* pResult) +{ + drflac_uint32 result; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 8); + if (!drflac__read_uint32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + *pResult = (drflac_uint8)result; + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__read_int8(drflac_bs* bs, unsigned int bitCount, drflac_int8* pResult) +{ + drflac_int32 result; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pResult != NULL); + DRFLAC_ASSERT(bitCount > 0); + DRFLAC_ASSERT(bitCount <= 8); + if (!drflac__read_int32(bs, bitCount, &result)) { + return DRFLAC_FALSE; + } + *pResult = (drflac_int8)result; + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__seek_bits(drflac_bs* bs, size_t bitsToSeek) +{ + if (bitsToSeek <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + bs->consumedBits += (drflac_uint32)bitsToSeek; + bs->cache <<= bitsToSeek; + return DRFLAC_TRUE; + } else { + bitsToSeek -= DRFLAC_CACHE_L1_BITS_REMAINING(bs); + bs->consumedBits += DRFLAC_CACHE_L1_BITS_REMAINING(bs); + bs->cache = 0; +#ifdef DRFLAC_64BIT + while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + drflac_uint64 bin; + if (!drflac__read_uint64(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + } +#else + while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { + drflac_uint32 bin; + if (!drflac__read_uint32(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + } +#endif + while (bitsToSeek >= 8) { + drflac_uint8 bin; + if (!drflac__read_uint8(bs, 8, &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek -= 8; + } + if (bitsToSeek > 0) { + drflac_uint8 bin; + if (!drflac__read_uint8(bs, (drflac_uint32)bitsToSeek, &bin)) { + return DRFLAC_FALSE; + } + bitsToSeek = 0; + } + DRFLAC_ASSERT(bitsToSeek == 0); + return DRFLAC_TRUE; + } +} +static drflac_bool32 drflac__find_and_seek_to_next_sync_code(drflac_bs* bs) +{ + DRFLAC_ASSERT(bs != NULL); + if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return DRFLAC_FALSE; + } + for (;;) { + drflac_uint8 hi; +#ifndef DR_FLAC_NO_CRC + drflac__reset_crc16(bs); +#endif + if (!drflac__read_uint8(bs, 8, &hi)) { + return DRFLAC_FALSE; + } + if (hi == 0xFF) { + drflac_uint8 lo; + if (!drflac__read_uint8(bs, 6, &lo)) { + return DRFLAC_FALSE; + } + if (lo == 0x3E) { + return DRFLAC_TRUE; + } else { + if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return DRFLAC_FALSE; + } + } + } + } +} +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) +#define DRFLAC_IMPLEMENT_CLZ_LZCNT +#endif +#if defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(__clang__) +#define DRFLAC_IMPLEMENT_CLZ_MSVC +#endif +#if defined(__WATCOMC__) && defined(__386__) +#define DRFLAC_IMPLEMENT_CLZ_WATCOM +#endif +static DRFLAC_INLINE drflac_uint32 drflac__clz_software(drflac_cache_t x) +{ + drflac_uint32 n; + static drflac_uint32 clz_table_4[] = { + 0, + 4, + 3, 3, + 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1 + }; + if (x == 0) { + return sizeof(x)*8; + } + n = clz_table_4[x >> (sizeof(x)*8 - 4)]; + if (n == 0) { +#ifdef DRFLAC_64BIT + if ((x & ((drflac_uint64)0xFFFFFFFF << 32)) == 0) { n = 32; x <<= 32; } + if ((x & ((drflac_uint64)0xFFFF0000 << 32)) == 0) { n += 16; x <<= 16; } + if ((x & ((drflac_uint64)0xFF000000 << 32)) == 0) { n += 8; x <<= 8; } + if ((x & ((drflac_uint64)0xF0000000 << 32)) == 0) { n += 4; x <<= 4; } +#else + if ((x & 0xFFFF0000) == 0) { n = 16; x <<= 16; } + if ((x & 0xFF000000) == 0) { n += 8; x <<= 8; } + if ((x & 0xF0000000) == 0) { n += 4; x <<= 4; } +#endif + n += clz_table_4[x >> (sizeof(x)*8 - 4)]; + } + return n - 1; +} +#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT +static DRFLAC_INLINE drflac_bool32 drflac__is_lzcnt_supported(void) +{ +#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + return DRFLAC_TRUE; +#else + #ifdef DRFLAC_HAS_LZCNT_INTRINSIC + return drflac__gIsLZCNTSupported; + #else + return DRFLAC_FALSE; + #endif +#endif +} +static DRFLAC_INLINE drflac_uint32 drflac__clz_lzcnt(drflac_cache_t x) +{ +#if defined(_MSC_VER) + #ifdef DRFLAC_64BIT + return (drflac_uint32)__lzcnt64(x); + #else + return (drflac_uint32)__lzcnt(x); + #endif +#else + #if defined(__GNUC__) || defined(__clang__) + #if defined(DRFLAC_X64) + { + drflac_uint64 r; + __asm__ __volatile__ ( + "lzcnt{ %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" + ); + return (drflac_uint32)r; + } + #elif defined(DRFLAC_X86) + { + drflac_uint32 r; + __asm__ __volatile__ ( + "lzcnt{l %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" + ); + return r; + } + #elif defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) && !defined(DRFLAC_64BIT) + { + unsigned int r; + __asm__ __volatile__ ( + #if defined(DRFLAC_64BIT) + "clz %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(x) + #else + "clz %[out], %[in]" : [out]"=r"(r) : [in]"r"(x) + #endif + ); + return r; + } + #else + if (x == 0) { + return sizeof(x)*8; + } + #ifdef DRFLAC_64BIT + return (drflac_uint32)__builtin_clzll((drflac_uint64)x); + #else + return (drflac_uint32)__builtin_clzl((drflac_uint32)x); + #endif + #endif + #else + #error "This compiler does not support the lzcnt intrinsic." + #endif +#endif +} +#endif +#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC +#include +static DRFLAC_INLINE drflac_uint32 drflac__clz_msvc(drflac_cache_t x) +{ + drflac_uint32 n; + if (x == 0) { + return sizeof(x)*8; + } +#ifdef DRFLAC_64BIT + _BitScanReverse64((unsigned long*)&n, x); +#else + _BitScanReverse((unsigned long*)&n, x); +#endif + return sizeof(x)*8 - n - 1; +} +#endif +#ifdef DRFLAC_IMPLEMENT_CLZ_WATCOM +static __inline drflac_uint32 drflac__clz_watcom (drflac_uint32); +#pragma aux drflac__clz_watcom = \ + "bsr eax, eax" \ + "xor eax, 31" \ + parm [eax] nomemory \ + value [eax] \ + modify exact [eax] nomemory; +#endif +static DRFLAC_INLINE drflac_uint32 drflac__clz(drflac_cache_t x) +{ +#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT + if (drflac__is_lzcnt_supported()) { + return drflac__clz_lzcnt(x); + } else +#endif + { +#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC + return drflac__clz_msvc(x); +#elif defined(DRFLAC_IMPLEMENT_CLZ_WATCOM) + return (x == 0) ? sizeof(x)*8 : drflac__clz_watcom(x); +#else + return drflac__clz_software(x); +#endif + } +} +static DRFLAC_INLINE drflac_bool32 drflac__seek_past_next_set_bit(drflac_bs* bs, unsigned int* pOffsetOut) +{ + drflac_uint32 zeroCounter = 0; + drflac_uint32 setBitOffsetPlus1; + while (bs->cache == 0) { + zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + setBitOffsetPlus1 = drflac__clz(bs->cache); + setBitOffsetPlus1 += 1; + bs->consumedBits += setBitOffsetPlus1; + bs->cache <<= setBitOffsetPlus1; + *pOffsetOut = zeroCounter + setBitOffsetPlus1 - 1; + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__seek_to_byte(drflac_bs* bs, drflac_uint64 offsetFromStart) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(offsetFromStart > 0); + if (offsetFromStart > 0x7FFFFFFF) { + drflac_uint64 bytesRemaining = offsetFromStart; + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + bytesRemaining -= 0x7FFFFFFF; + while (bytesRemaining > 0x7FFFFFFF) { + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + bytesRemaining -= 0x7FFFFFFF; + } + if (bytesRemaining > 0) { + if (!bs->onSeek(bs->pUserData, (int)bytesRemaining, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + } else { + if (!bs->onSeek(bs->pUserData, (int)offsetFromStart, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + } + drflac__reset_cache(bs); + return DRFLAC_TRUE; +} +static drflac_result drflac__read_utf8_coded_number(drflac_bs* bs, drflac_uint64* pNumberOut, drflac_uint8* pCRCOut) +{ + drflac_uint8 crc; + drflac_uint64 result; + drflac_uint8 utf8[7] = {0}; + int byteCount; + int i; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pNumberOut != NULL); + DRFLAC_ASSERT(pCRCOut != NULL); + crc = *pCRCOut; + if (!drflac__read_uint8(bs, 8, utf8)) { + *pNumberOut = 0; + return DRFLAC_AT_END; + } + crc = drflac_crc8(crc, utf8[0], 8); + if ((utf8[0] & 0x80) == 0) { + *pNumberOut = utf8[0]; + *pCRCOut = crc; + return DRFLAC_SUCCESS; + } + if ((utf8[0] & 0xE0) == 0xC0) { + byteCount = 2; + } else if ((utf8[0] & 0xF0) == 0xE0) { + byteCount = 3; + } else if ((utf8[0] & 0xF8) == 0xF0) { + byteCount = 4; + } else if ((utf8[0] & 0xFC) == 0xF8) { + byteCount = 5; + } else if ((utf8[0] & 0xFE) == 0xFC) { + byteCount = 6; + } else if ((utf8[0] & 0xFF) == 0xFE) { + byteCount = 7; + } else { + *pNumberOut = 0; + return DRFLAC_CRC_MISMATCH; + } + DRFLAC_ASSERT(byteCount > 1); + result = (drflac_uint64)(utf8[0] & (0xFF >> (byteCount + 1))); + for (i = 1; i < byteCount; ++i) { + if (!drflac__read_uint8(bs, 8, utf8 + i)) { + *pNumberOut = 0; + return DRFLAC_AT_END; + } + crc = drflac_crc8(crc, utf8[i], 8); + result = (result << 6) | (utf8[i] & 0x3F); + } + *pNumberOut = result; + *pCRCOut = crc; + return DRFLAC_SUCCESS; +} +static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_32(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_int32 prediction = 0; + DRFLAC_ASSERT(order <= 32); + switch (order) + { + case 32: prediction += coefficients[31] * pDecodedSamples[-32]; + case 31: prediction += coefficients[30] * pDecodedSamples[-31]; + case 30: prediction += coefficients[29] * pDecodedSamples[-30]; + case 29: prediction += coefficients[28] * pDecodedSamples[-29]; + case 28: prediction += coefficients[27] * pDecodedSamples[-28]; + case 27: prediction += coefficients[26] * pDecodedSamples[-27]; + case 26: prediction += coefficients[25] * pDecodedSamples[-26]; + case 25: prediction += coefficients[24] * pDecodedSamples[-25]; + case 24: prediction += coefficients[23] * pDecodedSamples[-24]; + case 23: prediction += coefficients[22] * pDecodedSamples[-23]; + case 22: prediction += coefficients[21] * pDecodedSamples[-22]; + case 21: prediction += coefficients[20] * pDecodedSamples[-21]; + case 20: prediction += coefficients[19] * pDecodedSamples[-20]; + case 19: prediction += coefficients[18] * pDecodedSamples[-19]; + case 18: prediction += coefficients[17] * pDecodedSamples[-18]; + case 17: prediction += coefficients[16] * pDecodedSamples[-17]; + case 16: prediction += coefficients[15] * pDecodedSamples[-16]; + case 15: prediction += coefficients[14] * pDecodedSamples[-15]; + case 14: prediction += coefficients[13] * pDecodedSamples[-14]; + case 13: prediction += coefficients[12] * pDecodedSamples[-13]; + case 12: prediction += coefficients[11] * pDecodedSamples[-12]; + case 11: prediction += coefficients[10] * pDecodedSamples[-11]; + case 10: prediction += coefficients[ 9] * pDecodedSamples[-10]; + case 9: prediction += coefficients[ 8] * pDecodedSamples[- 9]; + case 8: prediction += coefficients[ 7] * pDecodedSamples[- 8]; + case 7: prediction += coefficients[ 6] * pDecodedSamples[- 7]; + case 6: prediction += coefficients[ 5] * pDecodedSamples[- 6]; + case 5: prediction += coefficients[ 4] * pDecodedSamples[- 5]; + case 4: prediction += coefficients[ 3] * pDecodedSamples[- 4]; + case 3: prediction += coefficients[ 2] * pDecodedSamples[- 3]; + case 2: prediction += coefficients[ 1] * pDecodedSamples[- 2]; + case 1: prediction += coefficients[ 0] * pDecodedSamples[- 1]; + } + return (drflac_int32)(prediction >> shift); +} +static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_64(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_int64 prediction; + DRFLAC_ASSERT(order <= 32); +#ifndef DRFLAC_64BIT + if (order == 8) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + } + else if (order == 7) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + } + else if (order == 3) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + } + else if (order == 6) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + } + else if (order == 5) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + } + else if (order == 4) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + } + else if (order == 12) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; + } + else if (order == 2) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + } + else if (order == 1) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + } + else if (order == 10) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + } + else if (order == 9) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + } + else if (order == 11) + { + prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + } + else + { + int j; + prediction = 0; + for (j = 0; j < (int)order; ++j) { + prediction += coefficients[j] * (drflac_int64)pDecodedSamples[-j-1]; + } + } +#endif +#ifdef DRFLAC_64BIT + prediction = 0; + switch (order) + { + case 32: prediction += coefficients[31] * (drflac_int64)pDecodedSamples[-32]; + case 31: prediction += coefficients[30] * (drflac_int64)pDecodedSamples[-31]; + case 30: prediction += coefficients[29] * (drflac_int64)pDecodedSamples[-30]; + case 29: prediction += coefficients[28] * (drflac_int64)pDecodedSamples[-29]; + case 28: prediction += coefficients[27] * (drflac_int64)pDecodedSamples[-28]; + case 27: prediction += coefficients[26] * (drflac_int64)pDecodedSamples[-27]; + case 26: prediction += coefficients[25] * (drflac_int64)pDecodedSamples[-26]; + case 25: prediction += coefficients[24] * (drflac_int64)pDecodedSamples[-25]; + case 24: prediction += coefficients[23] * (drflac_int64)pDecodedSamples[-24]; + case 23: prediction += coefficients[22] * (drflac_int64)pDecodedSamples[-23]; + case 22: prediction += coefficients[21] * (drflac_int64)pDecodedSamples[-22]; + case 21: prediction += coefficients[20] * (drflac_int64)pDecodedSamples[-21]; + case 20: prediction += coefficients[19] * (drflac_int64)pDecodedSamples[-20]; + case 19: prediction += coefficients[18] * (drflac_int64)pDecodedSamples[-19]; + case 18: prediction += coefficients[17] * (drflac_int64)pDecodedSamples[-18]; + case 17: prediction += coefficients[16] * (drflac_int64)pDecodedSamples[-17]; + case 16: prediction += coefficients[15] * (drflac_int64)pDecodedSamples[-16]; + case 15: prediction += coefficients[14] * (drflac_int64)pDecodedSamples[-15]; + case 14: prediction += coefficients[13] * (drflac_int64)pDecodedSamples[-14]; + case 13: prediction += coefficients[12] * (drflac_int64)pDecodedSamples[-13]; + case 12: prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; + case 11: prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + case 10: prediction += coefficients[ 9] * (drflac_int64)pDecodedSamples[-10]; + case 9: prediction += coefficients[ 8] * (drflac_int64)pDecodedSamples[- 9]; + case 8: prediction += coefficients[ 7] * (drflac_int64)pDecodedSamples[- 8]; + case 7: prediction += coefficients[ 6] * (drflac_int64)pDecodedSamples[- 7]; + case 6: prediction += coefficients[ 5] * (drflac_int64)pDecodedSamples[- 6]; + case 5: prediction += coefficients[ 4] * (drflac_int64)pDecodedSamples[- 5]; + case 4: prediction += coefficients[ 3] * (drflac_int64)pDecodedSamples[- 4]; + case 3: prediction += coefficients[ 2] * (drflac_int64)pDecodedSamples[- 3]; + case 2: prediction += coefficients[ 1] * (drflac_int64)pDecodedSamples[- 2]; + case 1: prediction += coefficients[ 0] * (drflac_int64)pDecodedSamples[- 1]; + } +#endif + return (drflac_int32)(prediction >> shift); +} +#if 0 +static drflac_bool32 drflac__decode_samples_with_residual__rice__reference(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 i; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + for (i = 0; i < count; ++i) { + drflac_uint32 zeroCounter = 0; + for (;;) { + drflac_uint8 bit; + if (!drflac__read_uint8(bs, 1, &bit)) { + return DRFLAC_FALSE; + } + if (bit == 0) { + zeroCounter += 1; + } else { + break; + } + } + drflac_uint32 decodedRice; + if (riceParam > 0) { + if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { + return DRFLAC_FALSE; + } + } else { + decodedRice = 0; + } + decodedRice |= (zeroCounter << riceParam); + if ((decodedRice & 0x01)) { + decodedRice = ~(decodedRice >> 1); + } else { + decodedRice = (decodedRice >> 1); + } + if (bitsPerSample+shift >= 32) { + pSamplesOut[i] = decodedRice + drflac__calculate_prediction_64(order, shift, coefficients, pSamplesOut + i); + } else { + pSamplesOut[i] = decodedRice + drflac__calculate_prediction_32(order, shift, coefficients, pSamplesOut + i); + } + } + return DRFLAC_TRUE; +} +#endif +#if 0 +static drflac_bool32 drflac__read_rice_parts__reference(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_uint32 zeroCounter = 0; + drflac_uint32 decodedRice; + for (;;) { + drflac_uint8 bit; + if (!drflac__read_uint8(bs, 1, &bit)) { + return DRFLAC_FALSE; + } + if (bit == 0) { + zeroCounter += 1; + } else { + break; + } + } + if (riceParam > 0) { + if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { + return DRFLAC_FALSE; + } + } else { + decodedRice = 0; + } + *pZeroCounterOut = zeroCounter; + *pRiceParamPartOut = decodedRice; + return DRFLAC_TRUE; +} +#endif +#if 0 +static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_cache_t riceParamMask; + drflac_uint32 zeroCounter; + drflac_uint32 setBitOffsetPlus1; + drflac_uint32 riceParamPart; + drflac_uint32 riceLength; + DRFLAC_ASSERT(riceParam > 0); + riceParamMask = DRFLAC_CACHE_L1_SELECTION_MASK(riceParam); + zeroCounter = 0; + while (bs->cache == 0) { + zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + setBitOffsetPlus1 = drflac__clz(bs->cache); + zeroCounter += setBitOffsetPlus1; + setBitOffsetPlus1 += 1; + riceLength = setBitOffsetPlus1 + riceParam; + if (riceLength < DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { + riceParamPart = (drflac_uint32)((bs->cache & (riceParamMask >> setBitOffsetPlus1)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceLength)); + bs->consumedBits += riceLength; + bs->cache <<= riceLength; + } else { + drflac_uint32 bitCountLo; + drflac_cache_t resultHi; + bs->consumedBits += riceLength; + bs->cache <<= setBitOffsetPlus1 & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1); + bitCountLo = bs->consumedBits - DRFLAC_CACHE_L1_SIZE_BITS(bs); + resultHi = DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, riceParam); + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { +#ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); +#endif + bs->cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs->consumedBits = 0; +#ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs->cache; +#endif + } else { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + } + riceParamPart = (drflac_uint32)(resultHi | DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, bitCountLo)); + bs->consumedBits += bitCountLo; + bs->cache <<= bitCountLo; + } + pZeroCounterOut[0] = zeroCounter; + pRiceParamPartOut[0] = riceParamPart; + return DRFLAC_TRUE; +} +#endif +static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts_x1(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +{ + drflac_uint32 riceParamPlus1 = riceParam + 1; + drflac_uint32 riceParamPlus1Shift = DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPlus1); + drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + drflac_cache_t bs_cache = bs->cache; + drflac_uint32 bs_consumedBits = bs->consumedBits; + drflac_uint32 lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + pZeroCounterOut[0] = lzcount; + extract_rice_param_part: + bs_cache <<= lzcount; + bs_consumedBits += lzcount; + if (bs_consumedBits <= riceParamPlus1MaxConsumedBits) { + pRiceParamPartOut[0] = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + bs_cache <<= riceParamPlus1; + bs_consumedBits += riceParamPlus1; + } else { + drflac_uint32 riceParamPartHi; + drflac_uint32 riceParamPartLo; + drflac_uint32 riceParamPartLoBitCount; + riceParamPartHi = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; + DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = riceParamPartLoBitCount; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; + } + riceParamPartLo = (drflac_uint32)(bs_cache >> (DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPartLoBitCount))); + pRiceParamPartOut[0] = riceParamPartHi | riceParamPartLo; + bs_cache <<= riceParamPartLoBitCount; + } + } else { + drflac_uint32 zeroCounter = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BITS(bs) - bs_consumedBits); + for (;;) { + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = 0; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits; + } + lzcount = drflac__clz(bs_cache); + zeroCounter += lzcount; + if (lzcount < sizeof(bs_cache)*8) { + break; + } + } + pZeroCounterOut[0] = zeroCounter; + goto extract_rice_param_part; + } + bs->cache = bs_cache; + bs->consumedBits = bs_consumedBits; + return DRFLAC_TRUE; +} +static DRFLAC_INLINE drflac_bool32 drflac__seek_rice_parts(drflac_bs* bs, drflac_uint8 riceParam) +{ + drflac_uint32 riceParamPlus1 = riceParam + 1; + drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + drflac_cache_t bs_cache = bs->cache; + drflac_uint32 bs_consumedBits = bs->consumedBits; + drflac_uint32 lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + extract_rice_param_part: + bs_cache <<= lzcount; + bs_consumedBits += lzcount; + if (bs_consumedBits <= riceParamPlus1MaxConsumedBits) { + bs_cache <<= riceParamPlus1; + bs_consumedBits += riceParamPlus1; + } else { + drflac_uint32 riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; + DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = riceParamPartLoBitCount; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; + } + bs_cache <<= riceParamPartLoBitCount; + } + } else { + for (;;) { + if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef DR_FLAC_NO_CRC + drflac__update_crc16(bs); + #endif + bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_consumedBits = 0; + #ifndef DR_FLAC_NO_CRC + bs->crc16Cache = bs_cache; + #endif + } else { + if (!drflac__reload_cache(bs)) { + return DRFLAC_FALSE; + } + bs_cache = bs->cache; + bs_consumedBits = bs->consumedBits; + } + lzcount = drflac__clz(bs_cache); + if (lzcount < sizeof(bs_cache)*8) { + break; + } + } + goto extract_rice_param_part; + } + bs->cache = bs_cache; + bs->consumedBits = bs_consumedBits; + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar_zeroorder(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + drflac_uint32 zeroCountPart0; + drflac_uint32 riceParamPart0; + drflac_uint32 riceParamMask; + drflac_uint32 i; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + (void)bitsPerSample; + (void)order; + (void)shift; + (void)coefficients; + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + i = 0; + while (i < count) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return DRFLAC_FALSE; + } + riceParamPart0 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + pSamplesOut[i] = riceParamPart0; + i += 1; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + drflac_uint32 zeroCountPart0 = 0; + drflac_uint32 zeroCountPart1 = 0; + drflac_uint32 zeroCountPart2 = 0; + drflac_uint32 zeroCountPart3 = 0; + drflac_uint32 riceParamPart0 = 0; + drflac_uint32 riceParamPart1 = 0; + drflac_uint32 riceParamPart2 = 0; + drflac_uint32 riceParamPart3 = 0; + drflac_uint32 riceParamMask; + const drflac_int32* pSamplesOutEnd; + drflac_uint32 i; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + if (order == 0) { + return drflac__decode_samples_with_residual__rice__scalar_zeroorder(bs, bitsPerSample, count, riceParam, order, shift, coefficients, pSamplesOut); + } + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + pSamplesOutEnd = pSamplesOut + (count & ~3); + if (bitsPerSample+shift > 32) { + while (pSamplesOut < pSamplesOutEnd) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return DRFLAC_FALSE; + } + riceParamPart0 &= riceParamMask; + riceParamPart1 &= riceParamMask; + riceParamPart2 &= riceParamMask; + riceParamPart3 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart1 |= (zeroCountPart1 << riceParam); + riceParamPart2 |= (zeroCountPart2 << riceParam); + riceParamPart3 |= (zeroCountPart3 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; + riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; + riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(order, shift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_64(order, shift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_64(order, shift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_64(order, shift, coefficients, pSamplesOut + 3); + pSamplesOut += 4; + } + } else { + while (pSamplesOut < pSamplesOutEnd) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return DRFLAC_FALSE; + } + riceParamPart0 &= riceParamMask; + riceParamPart1 &= riceParamMask; + riceParamPart2 &= riceParamMask; + riceParamPart3 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart1 |= (zeroCountPart1 << riceParam); + riceParamPart2 |= (zeroCountPart2 << riceParam); + riceParamPart3 |= (zeroCountPart3 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; + riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; + riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(order, shift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_32(order, shift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_32(order, shift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_32(order, shift, coefficients, pSamplesOut + 3); + pSamplesOut += 4; + } + } + i = (count & ~3); + while (i < count) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return DRFLAC_FALSE; + } + riceParamPart0 &= riceParamMask; + riceParamPart0 |= (zeroCountPart0 << riceParam); + riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; + if (bitsPerSample+shift > 32) { + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(order, shift, coefficients, pSamplesOut + 0); + } else { + pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(order, shift, coefficients, pSamplesOut + 0); + } + i += 1; + pSamplesOut += 1; + } + return DRFLAC_TRUE; +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE __m128i drflac__mm_packs_interleaved_epi32(__m128i a, __m128i b) +{ + __m128i r; + r = _mm_packs_epi32(a, b); + r = _mm_shuffle_epi32(r, _MM_SHUFFLE(3, 1, 2, 0)); + r = _mm_shufflehi_epi16(r, _MM_SHUFFLE(3, 1, 2, 0)); + r = _mm_shufflelo_epi16(r, _MM_SHUFFLE(3, 1, 2, 0)); + return r; +} +#endif +#if defined(DRFLAC_SUPPORT_SSE41) +static DRFLAC_INLINE __m128i drflac__mm_not_si128(__m128i a) +{ + return _mm_xor_si128(a, _mm_cmpeq_epi32(_mm_setzero_si128(), _mm_setzero_si128())); +} +static DRFLAC_INLINE __m128i drflac__mm_hadd_epi32(__m128i x) +{ + __m128i x64 = _mm_add_epi32(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); + __m128i x32 = _mm_shufflelo_epi16(x64, _MM_SHUFFLE(1, 0, 3, 2)); + return _mm_add_epi32(x64, x32); +} +static DRFLAC_INLINE __m128i drflac__mm_hadd_epi64(__m128i x) +{ + return _mm_add_epi64(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); +} +static DRFLAC_INLINE __m128i drflac__mm_srai_epi64(__m128i x, int count) +{ + __m128i lo = _mm_srli_epi64(x, count); + __m128i hi = _mm_srai_epi32(x, count); + hi = _mm_and_si128(hi, _mm_set_epi32(0xFFFFFFFF, 0, 0xFFFFFFFF, 0)); + return _mm_or_si128(lo, hi); +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts0 = 0; + drflac_uint32 zeroCountParts1 = 0; + drflac_uint32 zeroCountParts2 = 0; + drflac_uint32 zeroCountParts3 = 0; + drflac_uint32 riceParamParts0 = 0; + drflac_uint32 riceParamParts1 = 0; + drflac_uint32 riceParamParts2 = 0; + drflac_uint32 riceParamParts3 = 0; + __m128i coefficients128_0; + __m128i coefficients128_4; + __m128i coefficients128_8; + __m128i samples128_0; + __m128i samples128_4; + __m128i samples128_8; + __m128i riceParamMask128; + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = _mm_set1_epi32(riceParamMask); + coefficients128_0 = _mm_setzero_si128(); + coefficients128_4 = _mm_setzero_si128(); + coefficients128_8 = _mm_setzero_si128(); + samples128_0 = _mm_setzero_si128(); + samples128_4 = _mm_setzero_si128(); + samples128_8 = _mm_setzero_si128(); +#if 1 + { + int runningOrder = order; + if (runningOrder >= 4) { + coefficients128_0 = _mm_loadu_si128((const __m128i*)(coefficients + 0)); + samples128_0 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 4)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_0 = _mm_set_epi32(0, coefficients[2], coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], pSamplesOut[-3], 0); break; + case 2: coefficients128_0 = _mm_set_epi32(0, 0, coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], 0, 0); break; + case 1: coefficients128_0 = _mm_set_epi32(0, 0, 0, coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], 0, 0, 0); break; + } + runningOrder = 0; + } + if (runningOrder >= 4) { + coefficients128_4 = _mm_loadu_si128((const __m128i*)(coefficients + 4)); + samples128_4 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 8)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_4 = _mm_set_epi32(0, coefficients[6], coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], pSamplesOut[-7], 0); break; + case 2: coefficients128_4 = _mm_set_epi32(0, 0, coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], 0, 0); break; + case 1: coefficients128_4 = _mm_set_epi32(0, 0, 0, coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], 0, 0, 0); break; + } + runningOrder = 0; + } + if (runningOrder == 4) { + coefficients128_8 = _mm_loadu_si128((const __m128i*)(coefficients + 8)); + samples128_8 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 12)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_8 = _mm_set_epi32(0, coefficients[10], coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], pSamplesOut[-11], 0); break; + case 2: coefficients128_8 = _mm_set_epi32(0, 0, coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], 0, 0); break; + case 1: coefficients128_8 = _mm_set_epi32(0, 0, 0, coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], 0, 0, 0); break; + } + runningOrder = 0; + } + coefficients128_0 = _mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_4 = _mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_8 = _mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(0, 1, 2, 3)); + } +#else + switch (order) + { + case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + } +#endif + while (pDecodedSamples < pDecodedSamplesEnd) { + __m128i prediction128; + __m128i zeroCountPart128; + __m128i riceParamPart128; + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return DRFLAC_FALSE; + } + zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); + riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); + riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); + riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(0x01))), _mm_set1_epi32(0x01))); + if (order <= 4) { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_0, samples128_0); + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } else if (order <= 8) { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_4, samples128_4); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } else { + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_mullo_epi32(coefficients128_8, samples128_8); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_4, samples128_4)); + prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); + prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = _mm_srai_epi32(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + } + _mm_storeu_si128((__m128i*)pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + i = (count & ~3); + while (i < (int)count) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return DRFLAC_FALSE; + } + riceParamParts0 &= riceParamMask; + riceParamParts0 |= (zeroCountParts0 << riceParam); + riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; + pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + i += 1; + pDecodedSamples += 1; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts0 = 0; + drflac_uint32 zeroCountParts1 = 0; + drflac_uint32 zeroCountParts2 = 0; + drflac_uint32 zeroCountParts3 = 0; + drflac_uint32 riceParamParts0 = 0; + drflac_uint32 riceParamParts1 = 0; + drflac_uint32 riceParamParts2 = 0; + drflac_uint32 riceParamParts3 = 0; + __m128i coefficients128_0; + __m128i coefficients128_4; + __m128i coefficients128_8; + __m128i samples128_0; + __m128i samples128_4; + __m128i samples128_8; + __m128i prediction128; + __m128i riceParamMask128; + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + DRFLAC_ASSERT(order <= 12); + riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask128 = _mm_set1_epi32(riceParamMask); + prediction128 = _mm_setzero_si128(); + coefficients128_0 = _mm_setzero_si128(); + coefficients128_4 = _mm_setzero_si128(); + coefficients128_8 = _mm_setzero_si128(); + samples128_0 = _mm_setzero_si128(); + samples128_4 = _mm_setzero_si128(); + samples128_8 = _mm_setzero_si128(); +#if 1 + { + int runningOrder = order; + if (runningOrder >= 4) { + coefficients128_0 = _mm_loadu_si128((const __m128i*)(coefficients + 0)); + samples128_0 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 4)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_0 = _mm_set_epi32(0, coefficients[2], coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], pSamplesOut[-3], 0); break; + case 2: coefficients128_0 = _mm_set_epi32(0, 0, coefficients[1], coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], pSamplesOut[-2], 0, 0); break; + case 1: coefficients128_0 = _mm_set_epi32(0, 0, 0, coefficients[0]); samples128_0 = _mm_set_epi32(pSamplesOut[-1], 0, 0, 0); break; + } + runningOrder = 0; + } + if (runningOrder >= 4) { + coefficients128_4 = _mm_loadu_si128((const __m128i*)(coefficients + 4)); + samples128_4 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 8)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_4 = _mm_set_epi32(0, coefficients[6], coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], pSamplesOut[-7], 0); break; + case 2: coefficients128_4 = _mm_set_epi32(0, 0, coefficients[5], coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], pSamplesOut[-6], 0, 0); break; + case 1: coefficients128_4 = _mm_set_epi32(0, 0, 0, coefficients[4]); samples128_4 = _mm_set_epi32(pSamplesOut[-5], 0, 0, 0); break; + } + runningOrder = 0; + } + if (runningOrder == 4) { + coefficients128_8 = _mm_loadu_si128((const __m128i*)(coefficients + 8)); + samples128_8 = _mm_loadu_si128((const __m128i*)(pSamplesOut - 12)); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: coefficients128_8 = _mm_set_epi32(0, coefficients[10], coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], pSamplesOut[-11], 0); break; + case 2: coefficients128_8 = _mm_set_epi32(0, 0, coefficients[9], coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], pSamplesOut[-10], 0, 0); break; + case 1: coefficients128_8 = _mm_set_epi32(0, 0, 0, coefficients[8]); samples128_8 = _mm_set_epi32(pSamplesOut[-9], 0, 0, 0); break; + } + runningOrder = 0; + } + coefficients128_0 = _mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_4 = _mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(0, 1, 2, 3)); + coefficients128_8 = _mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(0, 1, 2, 3)); + } +#else + switch (order) + { + case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + } +#endif + while (pDecodedSamples < pDecodedSamplesEnd) { + __m128i zeroCountPart128; + __m128i riceParamPart128; + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return DRFLAC_FALSE; + } + zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); + riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); + riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); + riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(1))), _mm_set1_epi32(1))); + for (i = 0; i < 4; i += 1) { + prediction128 = _mm_xor_si128(prediction128, prediction128); + switch (order) + { + case 12: + case 11: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_8, _MM_SHUFFLE(1, 1, 0, 0)))); + case 10: + case 9: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_8, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_8, _MM_SHUFFLE(3, 3, 2, 2)))); + case 8: + case 7: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_4, _MM_SHUFFLE(1, 1, 0, 0)))); + case 6: + case 5: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_4, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_4, _MM_SHUFFLE(3, 3, 2, 2)))); + case 4: + case 3: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(1, 1, 0, 0)), _mm_shuffle_epi32(samples128_0, _MM_SHUFFLE(1, 1, 0, 0)))); + case 2: + case 1: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_0, _MM_SHUFFLE(3, 3, 2, 2)))); + } + prediction128 = drflac__mm_hadd_epi64(prediction128); + prediction128 = drflac__mm_srai_epi64(prediction128, shift); + prediction128 = _mm_add_epi32(riceParamPart128, prediction128); + samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); + samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); + samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); + riceParamPart128 = _mm_alignr_epi8(_mm_setzero_si128(), riceParamPart128, 4); + } + _mm_storeu_si128((__m128i*)pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + i = (count & ~3); + while (i < (int)count) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return DRFLAC_FALSE; + } + riceParamParts0 &= riceParamMask; + riceParamParts0 |= (zeroCountParts0 << riceParam); + riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; + pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + i += 1; + pDecodedSamples += 1; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + if (order > 0 && order <= 12) { + if (bitsPerSample+shift > 32) { + return drflac__decode_samples_with_residual__rice__sse41_64(bs, count, riceParam, order, shift, coefficients, pSamplesOut); + } else { + return drflac__decode_samples_with_residual__rice__sse41_32(bs, count, riceParam, order, shift, coefficients, pSamplesOut); + } + } else { + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, order, shift, coefficients, pSamplesOut); + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac__vst2q_s32(drflac_int32* p, int32x4x2_t x) +{ + vst1q_s32(p+0, x.val[0]); + vst1q_s32(p+4, x.val[1]); +} +static DRFLAC_INLINE void drflac__vst2q_u32(drflac_uint32* p, uint32x4x2_t x) +{ + vst1q_u32(p+0, x.val[0]); + vst1q_u32(p+4, x.val[1]); +} +static DRFLAC_INLINE void drflac__vst2q_f32(float* p, float32x4x2_t x) +{ + vst1q_f32(p+0, x.val[0]); + vst1q_f32(p+4, x.val[1]); +} +static DRFLAC_INLINE void drflac__vst2q_s16(drflac_int16* p, int16x4x2_t x) +{ + vst1q_s16(p, vcombine_s16(x.val[0], x.val[1])); +} +static DRFLAC_INLINE void drflac__vst2q_u16(drflac_uint16* p, uint16x4x2_t x) +{ + vst1q_u16(p, vcombine_u16(x.val[0], x.val[1])); +} +static DRFLAC_INLINE int32x4_t drflac__vdupq_n_s32x4(drflac_int32 x3, drflac_int32 x2, drflac_int32 x1, drflac_int32 x0) +{ + drflac_int32 x[4]; + x[3] = x3; + x[2] = x2; + x[1] = x1; + x[0] = x0; + return vld1q_s32(x); +} +static DRFLAC_INLINE int32x4_t drflac__valignrq_s32_1(int32x4_t a, int32x4_t b) +{ + return vextq_s32(b, a, 1); +} +static DRFLAC_INLINE uint32x4_t drflac__valignrq_u32_1(uint32x4_t a, uint32x4_t b) +{ + return vextq_u32(b, a, 1); +} +static DRFLAC_INLINE int32x2_t drflac__vhaddq_s32(int32x4_t x) +{ + int32x2_t r = vadd_s32(vget_high_s32(x), vget_low_s32(x)); + return vpadd_s32(r, r); +} +static DRFLAC_INLINE int64x1_t drflac__vhaddq_s64(int64x2_t x) +{ + return vadd_s64(vget_high_s64(x), vget_low_s64(x)); +} +static DRFLAC_INLINE int32x4_t drflac__vrevq_s32(int32x4_t x) +{ + return vrev64q_s32(vcombine_s32(vget_high_s32(x), vget_low_s32(x))); +} +static DRFLAC_INLINE int32x4_t drflac__vnotq_s32(int32x4_t x) +{ + return veorq_s32(x, vdupq_n_s32(0xFFFFFFFF)); +} +static DRFLAC_INLINE uint32x4_t drflac__vnotq_u32(uint32x4_t x) +{ + return veorq_u32(x, vdupq_n_u32(0xFFFFFFFF)); +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts[4]; + drflac_uint32 riceParamParts[4]; + int32x4_t coefficients128_0; + int32x4_t coefficients128_4; + int32x4_t coefficients128_8; + int32x4_t samples128_0; + int32x4_t samples128_4; + int32x4_t samples128_8; + uint32x4_t riceParamMask128; + int32x4_t riceParam128; + int32x2_t shift64; + uint32x4_t one128; + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + riceParamMask = ~((~0UL) << riceParam); + riceParamMask128 = vdupq_n_u32(riceParamMask); + riceParam128 = vdupq_n_s32(riceParam); + shift64 = vdup_n_s32(-shift); + one128 = vdupq_n_u32(1); + { + int runningOrder = order; + drflac_int32 tempC[4] = {0, 0, 0, 0}; + drflac_int32 tempS[4] = {0, 0, 0, 0}; + if (runningOrder >= 4) { + coefficients128_0 = vld1q_s32(coefficients + 0); + samples128_0 = vld1q_s32(pSamplesOut - 4); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[2]; tempS[1] = pSamplesOut[-3]; + case 2: tempC[1] = coefficients[1]; tempS[2] = pSamplesOut[-2]; + case 1: tempC[0] = coefficients[0]; tempS[3] = pSamplesOut[-1]; + } + coefficients128_0 = vld1q_s32(tempC); + samples128_0 = vld1q_s32(tempS); + runningOrder = 0; + } + if (runningOrder >= 4) { + coefficients128_4 = vld1q_s32(coefficients + 4); + samples128_4 = vld1q_s32(pSamplesOut - 8); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[6]; tempS[1] = pSamplesOut[-7]; + case 2: tempC[1] = coefficients[5]; tempS[2] = pSamplesOut[-6]; + case 1: tempC[0] = coefficients[4]; tempS[3] = pSamplesOut[-5]; + } + coefficients128_4 = vld1q_s32(tempC); + samples128_4 = vld1q_s32(tempS); + runningOrder = 0; + } + if (runningOrder == 4) { + coefficients128_8 = vld1q_s32(coefficients + 8); + samples128_8 = vld1q_s32(pSamplesOut - 12); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[10]; tempS[1] = pSamplesOut[-11]; + case 2: tempC[1] = coefficients[ 9]; tempS[2] = pSamplesOut[-10]; + case 1: tempC[0] = coefficients[ 8]; tempS[3] = pSamplesOut[- 9]; + } + coefficients128_8 = vld1q_s32(tempC); + samples128_8 = vld1q_s32(tempS); + runningOrder = 0; + } + coefficients128_0 = drflac__vrevq_s32(coefficients128_0); + coefficients128_4 = drflac__vrevq_s32(coefficients128_4); + coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + } + while (pDecodedSamples < pDecodedSamplesEnd) { + int32x4_t prediction128; + int32x2_t prediction64; + uint32x4_t zeroCountPart128; + uint32x4_t riceParamPart128; + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return DRFLAC_FALSE; + } + zeroCountPart128 = vld1q_u32(zeroCountParts); + riceParamPart128 = vld1q_u32(riceParamParts); + riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); + riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + if (order <= 4) { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_0, samples128_0); + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } else if (order <= 8) { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_4, samples128_4); + prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } else { + for (i = 0; i < 4; i += 1) { + prediction128 = vmulq_s32(coefficients128_8, samples128_8); + prediction128 = vmlaq_s32(prediction128, coefficients128_4, samples128_4); + prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); + prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = vshl_s32(prediction64, shift64); + prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); + samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + } + vst1q_s32(pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + i = (count & ~3); + while (i < (int)count) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return DRFLAC_FALSE; + } + riceParamParts[0] &= riceParamMask; + riceParamParts[0] |= (zeroCountParts[0] << riceParam); + riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; + pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + i += 1; + pDecodedSamples += 1; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + int i; + drflac_uint32 riceParamMask; + drflac_int32* pDecodedSamples = pSamplesOut; + drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + drflac_uint32 zeroCountParts[4]; + drflac_uint32 riceParamParts[4]; + int32x4_t coefficients128_0; + int32x4_t coefficients128_4; + int32x4_t coefficients128_8; + int32x4_t samples128_0; + int32x4_t samples128_4; + int32x4_t samples128_8; + uint32x4_t riceParamMask128; + int32x4_t riceParam128; + int64x1_t shift64; + uint32x4_t one128; + const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + riceParamMask = ~((~0UL) << riceParam); + riceParamMask128 = vdupq_n_u32(riceParamMask); + riceParam128 = vdupq_n_s32(riceParam); + shift64 = vdup_n_s64(-shift); + one128 = vdupq_n_u32(1); + { + int runningOrder = order; + drflac_int32 tempC[4] = {0, 0, 0, 0}; + drflac_int32 tempS[4] = {0, 0, 0, 0}; + if (runningOrder >= 4) { + coefficients128_0 = vld1q_s32(coefficients + 0); + samples128_0 = vld1q_s32(pSamplesOut - 4); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[2]; tempS[1] = pSamplesOut[-3]; + case 2: tempC[1] = coefficients[1]; tempS[2] = pSamplesOut[-2]; + case 1: tempC[0] = coefficients[0]; tempS[3] = pSamplesOut[-1]; + } + coefficients128_0 = vld1q_s32(tempC); + samples128_0 = vld1q_s32(tempS); + runningOrder = 0; + } + if (runningOrder >= 4) { + coefficients128_4 = vld1q_s32(coefficients + 4); + samples128_4 = vld1q_s32(pSamplesOut - 8); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[6]; tempS[1] = pSamplesOut[-7]; + case 2: tempC[1] = coefficients[5]; tempS[2] = pSamplesOut[-6]; + case 1: tempC[0] = coefficients[4]; tempS[3] = pSamplesOut[-5]; + } + coefficients128_4 = vld1q_s32(tempC); + samples128_4 = vld1q_s32(tempS); + runningOrder = 0; + } + if (runningOrder == 4) { + coefficients128_8 = vld1q_s32(coefficients + 8); + samples128_8 = vld1q_s32(pSamplesOut - 12); + runningOrder -= 4; + } else { + switch (runningOrder) { + case 3: tempC[2] = coefficients[10]; tempS[1] = pSamplesOut[-11]; + case 2: tempC[1] = coefficients[ 9]; tempS[2] = pSamplesOut[-10]; + case 1: tempC[0] = coefficients[ 8]; tempS[3] = pSamplesOut[- 9]; + } + coefficients128_8 = vld1q_s32(tempC); + samples128_8 = vld1q_s32(tempS); + runningOrder = 0; + } + coefficients128_0 = drflac__vrevq_s32(coefficients128_0); + coefficients128_4 = drflac__vrevq_s32(coefficients128_4); + coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + } + while (pDecodedSamples < pDecodedSamplesEnd) { + int64x2_t prediction128; + uint32x4_t zeroCountPart128; + uint32x4_t riceParamPart128; + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return DRFLAC_FALSE; + } + zeroCountPart128 = vld1q_u32(zeroCountParts); + riceParamPart128 = vld1q_u32(riceParamParts); + riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); + riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + for (i = 0; i < 4; i += 1) { + int64x1_t prediction64; + prediction128 = veorq_s64(prediction128, prediction128); + switch (order) + { + case 12: + case 11: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_8), vget_low_s32(samples128_8))); + case 10: + case 9: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_8), vget_high_s32(samples128_8))); + case 8: + case 7: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_4), vget_low_s32(samples128_4))); + case 6: + case 5: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_4), vget_high_s32(samples128_4))); + case 4: + case 3: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_low_s32(coefficients128_0), vget_low_s32(samples128_0))); + case 2: + case 1: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_0), vget_high_s32(samples128_0))); + } + prediction64 = drflac__vhaddq_s64(prediction128); + prediction64 = vshl_s64(prediction64, shift64); + prediction64 = vadd_s64(prediction64, vdup_n_s64(vgetq_lane_u32(riceParamPart128, 0))); + samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = drflac__valignrq_s32_1(vcombine_s32(vreinterpret_s32_s64(prediction64), vdup_n_s32(0)), samples128_0); + riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + } + vst1q_s32(pDecodedSamples, samples128_0); + pDecodedSamples += 4; + } + i = (count & ~3); + while (i < (int)count) { + if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return DRFLAC_FALSE; + } + riceParamParts[0] &= riceParamMask; + riceParamParts[0] |= (zeroCountParts[0] << riceParam); + riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; + pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + i += 1; + pDecodedSamples += 1; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual__rice__neon(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(pSamplesOut != NULL); + if (order > 0 && order <= 12) { + if (bitsPerSample+shift > 32) { + return drflac__decode_samples_with_residual__rice__neon_64(bs, count, riceParam, order, shift, coefficients, pSamplesOut); + } else { + return drflac__decode_samples_with_residual__rice__neon_32(bs, count, riceParam, order, shift, coefficients, pSamplesOut); + } + } else { + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, order, shift, coefficients, pSamplesOut); + } +} +#endif +static drflac_bool32 drflac__decode_samples_with_residual__rice(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ +#if defined(DRFLAC_SUPPORT_SSE41) + if (drflac__gIsSSE41Supported) { + return drflac__decode_samples_with_residual__rice__sse41(bs, bitsPerSample, count, riceParam, order, shift, coefficients, pSamplesOut); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported) { + return drflac__decode_samples_with_residual__rice__neon(bs, bitsPerSample, count, riceParam, order, shift, coefficients, pSamplesOut); + } else +#endif + { + #if 0 + return drflac__decode_samples_with_residual__rice__reference(bs, bitsPerSample, count, riceParam, order, shift, coefficients, pSamplesOut); + #else + return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, order, shift, coefficients, pSamplesOut); + #endif + } +} +static drflac_bool32 drflac__read_and_seek_residual__rice(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam) +{ + drflac_uint32 i; + DRFLAC_ASSERT(bs != NULL); + for (i = 0; i < count; ++i) { + if (!drflac__seek_rice_parts(bs, riceParam)) { + return DRFLAC_FALSE; + } + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual__unencoded(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 unencodedBitsPerSample, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +{ + drflac_uint32 i; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(unencodedBitsPerSample <= 31); + DRFLAC_ASSERT(pSamplesOut != NULL); + for (i = 0; i < count; ++i) { + if (unencodedBitsPerSample > 0) { + if (!drflac__read_int32(bs, unencodedBitsPerSample, pSamplesOut + i)) { + return DRFLAC_FALSE; + } + } else { + pSamplesOut[i] = 0; + } + if (bitsPerSample >= 24) { + pSamplesOut[i] += drflac__calculate_prediction_64(order, shift, coefficients, pSamplesOut + i); + } else { + pSamplesOut[i] += drflac__calculate_prediction_32(order, shift, coefficients, pSamplesOut + i); + } + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples_with_residual(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 blockSize, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +{ + drflac_uint8 residualMethod; + drflac_uint8 partitionOrder; + drflac_uint32 samplesInPartition; + drflac_uint32 partitionsRemaining; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(blockSize != 0); + DRFLAC_ASSERT(pDecodedSamples != NULL); + if (!drflac__read_uint8(bs, 2, &residualMethod)) { + return DRFLAC_FALSE; + } + if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return DRFLAC_FALSE; + } + pDecodedSamples += order; + if (!drflac__read_uint8(bs, 4, &partitionOrder)) { + return DRFLAC_FALSE; + } + if (partitionOrder > 8) { + return DRFLAC_FALSE; + } + if ((blockSize / (1 << partitionOrder)) < order) { + return DRFLAC_FALSE; + } + samplesInPartition = (blockSize / (1 << partitionOrder)) - order; + partitionsRemaining = (1 << partitionOrder); + for (;;) { + drflac_uint8 riceParam = 0; + if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!drflac__read_uint8(bs, 4, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 15) { + riceParam = 0xFF; + } + } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!drflac__read_uint8(bs, 5, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 31) { + riceParam = 0xFF; + } + } + if (riceParam != 0xFF) { + if (!drflac__decode_samples_with_residual__rice(bs, bitsPerSample, samplesInPartition, riceParam, order, shift, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + } else { + drflac_uint8 unencodedBitsPerSample = 0; + if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return DRFLAC_FALSE; + } + if (!drflac__decode_samples_with_residual__unencoded(bs, bitsPerSample, samplesInPartition, unencodedBitsPerSample, order, shift, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + } + pDecodedSamples += samplesInPartition; + if (partitionsRemaining == 1) { + break; + } + partitionsRemaining -= 1; + if (partitionOrder != 0) { + samplesInPartition = blockSize / (1 << partitionOrder); + } + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__read_and_seek_residual(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 order) +{ + drflac_uint8 residualMethod; + drflac_uint8 partitionOrder; + drflac_uint32 samplesInPartition; + drflac_uint32 partitionsRemaining; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(blockSize != 0); + if (!drflac__read_uint8(bs, 2, &residualMethod)) { + return DRFLAC_FALSE; + } + if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return DRFLAC_FALSE; + } + if (!drflac__read_uint8(bs, 4, &partitionOrder)) { + return DRFLAC_FALSE; + } + if (partitionOrder > 8) { + return DRFLAC_FALSE; + } + if ((blockSize / (1 << partitionOrder)) <= order) { + return DRFLAC_FALSE; + } + samplesInPartition = (blockSize / (1 << partitionOrder)) - order; + partitionsRemaining = (1 << partitionOrder); + for (;;) + { + drflac_uint8 riceParam = 0; + if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!drflac__read_uint8(bs, 4, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 15) { + riceParam = 0xFF; + } + } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!drflac__read_uint8(bs, 5, &riceParam)) { + return DRFLAC_FALSE; + } + if (riceParam == 31) { + riceParam = 0xFF; + } + } + if (riceParam != 0xFF) { + if (!drflac__read_and_seek_residual__rice(bs, samplesInPartition, riceParam)) { + return DRFLAC_FALSE; + } + } else { + drflac_uint8 unencodedBitsPerSample = 0; + if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return DRFLAC_FALSE; + } + if (!drflac__seek_bits(bs, unencodedBitsPerSample * samplesInPartition)) { + return DRFLAC_FALSE; + } + } + if (partitionsRemaining == 1) { + break; + } + partitionsRemaining -= 1; + samplesInPartition = blockSize / (1 << partitionOrder); + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples__constant(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + for (i = 0; i < blockSize; ++i) { + pDecodedSamples[i] = sample; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples__verbatim(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + for (i = 0; i < blockSize; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + pDecodedSamples[i] = sample; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples__fixed(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +{ + drflac_uint32 i; + static drflac_int32 lpcCoefficientsTable[5][4] = { + {0, 0, 0, 0}, + {1, 0, 0, 0}, + {2, -1, 0, 0}, + {3, -3, 1, 0}, + {4, -6, 4, -1} + }; + for (i = 0; i < lpcOrder; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + pDecodedSamples[i] = sample; + } + if (!drflac__decode_samples_with_residual(bs, subframeBitsPerSample, blockSize, lpcOrder, 0, lpcCoefficientsTable[lpcOrder], pDecodedSamples)) { + return DRFLAC_FALSE; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_samples__lpc(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 bitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +{ + drflac_uint8 i; + drflac_uint8 lpcPrecision; + drflac_int8 lpcShift; + drflac_int32 coefficients[32]; + for (i = 0; i < lpcOrder; ++i) { + drflac_int32 sample; + if (!drflac__read_int32(bs, bitsPerSample, &sample)) { + return DRFLAC_FALSE; + } + pDecodedSamples[i] = sample; + } + if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { + return DRFLAC_FALSE; + } + if (lpcPrecision == 15) { + return DRFLAC_FALSE; + } + lpcPrecision += 1; + if (!drflac__read_int8(bs, 5, &lpcShift)) { + return DRFLAC_FALSE; + } + if (lpcShift < 0) { + return DRFLAC_FALSE; + } + DRFLAC_ZERO_MEMORY(coefficients, sizeof(coefficients)); + for (i = 0; i < lpcOrder; ++i) { + if (!drflac__read_int32(bs, lpcPrecision, coefficients + i)) { + return DRFLAC_FALSE; + } + } + if (!drflac__decode_samples_with_residual(bs, bitsPerSample, blockSize, lpcOrder, lpcShift, coefficients, pDecodedSamples)) { + return DRFLAC_FALSE; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__read_next_flac_frame_header(drflac_bs* bs, drflac_uint8 streaminfoBitsPerSample, drflac_frame_header* header) +{ + const drflac_uint32 sampleRateTable[12] = {0, 88200, 176400, 192000, 8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000}; + const drflac_uint8 bitsPerSampleTable[8] = {0, 8, 12, (drflac_uint8)-1, 16, 20, 24, (drflac_uint8)-1}; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(header != NULL); + for (;;) { + drflac_uint8 crc8 = 0xCE; + drflac_uint8 reserved = 0; + drflac_uint8 blockingStrategy = 0; + drflac_uint8 blockSize = 0; + drflac_uint8 sampleRate = 0; + drflac_uint8 channelAssignment = 0; + drflac_uint8 bitsPerSample = 0; + drflac_bool32 isVariableBlockSize; + if (!drflac__find_and_seek_to_next_sync_code(bs)) { + return DRFLAC_FALSE; + } + if (!drflac__read_uint8(bs, 1, &reserved)) { + return DRFLAC_FALSE; + } + if (reserved == 1) { + continue; + } + crc8 = drflac_crc8(crc8, reserved, 1); + if (!drflac__read_uint8(bs, 1, &blockingStrategy)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, blockingStrategy, 1); + if (!drflac__read_uint8(bs, 4, &blockSize)) { + return DRFLAC_FALSE; + } + if (blockSize == 0) { + continue; + } + crc8 = drflac_crc8(crc8, blockSize, 4); + if (!drflac__read_uint8(bs, 4, &sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, sampleRate, 4); + if (!drflac__read_uint8(bs, 4, &channelAssignment)) { + return DRFLAC_FALSE; + } + if (channelAssignment > 10) { + continue; + } + crc8 = drflac_crc8(crc8, channelAssignment, 4); + if (!drflac__read_uint8(bs, 3, &bitsPerSample)) { + return DRFLAC_FALSE; + } + if (bitsPerSample == 3 || bitsPerSample == 7) { + continue; + } + crc8 = drflac_crc8(crc8, bitsPerSample, 3); + if (!drflac__read_uint8(bs, 1, &reserved)) { + return DRFLAC_FALSE; + } + if (reserved == 1) { + continue; + } + crc8 = drflac_crc8(crc8, reserved, 1); + isVariableBlockSize = blockingStrategy == 1; + if (isVariableBlockSize) { + drflac_uint64 pcmFrameNumber; + drflac_result result = drflac__read_utf8_coded_number(bs, &pcmFrameNumber, &crc8); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_AT_END) { + return DRFLAC_FALSE; + } else { + continue; + } + } + header->flacFrameNumber = 0; + header->pcmFrameNumber = pcmFrameNumber; + } else { + drflac_uint64 flacFrameNumber = 0; + drflac_result result = drflac__read_utf8_coded_number(bs, &flacFrameNumber, &crc8); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_AT_END) { + return DRFLAC_FALSE; + } else { + continue; + } + } + header->flacFrameNumber = (drflac_uint32)flacFrameNumber; + header->pcmFrameNumber = 0; + } + DRFLAC_ASSERT(blockSize > 0); + if (blockSize == 1) { + header->blockSizeInPCMFrames = 192; + } else if (blockSize <= 5) { + DRFLAC_ASSERT(blockSize >= 2); + header->blockSizeInPCMFrames = 576 * (1 << (blockSize - 2)); + } else if (blockSize == 6) { + if (!drflac__read_uint16(bs, 8, &header->blockSizeInPCMFrames)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 8); + header->blockSizeInPCMFrames += 1; + } else if (blockSize == 7) { + if (!drflac__read_uint16(bs, 16, &header->blockSizeInPCMFrames)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 16); + header->blockSizeInPCMFrames += 1; + } else { + DRFLAC_ASSERT(blockSize >= 8); + header->blockSizeInPCMFrames = 256 * (1 << (blockSize - 8)); + } + if (sampleRate <= 11) { + header->sampleRate = sampleRateTable[sampleRate]; + } else if (sampleRate == 12) { + if (!drflac__read_uint32(bs, 8, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 8); + header->sampleRate *= 1000; + } else if (sampleRate == 13) { + if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 16); + } else if (sampleRate == 14) { + if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { + return DRFLAC_FALSE; + } + crc8 = drflac_crc8(crc8, header->sampleRate, 16); + header->sampleRate *= 10; + } else { + continue; + } + header->channelAssignment = channelAssignment; + header->bitsPerSample = bitsPerSampleTable[bitsPerSample]; + if (header->bitsPerSample == 0) { + header->bitsPerSample = streaminfoBitsPerSample; + } + if (!drflac__read_uint8(bs, 8, &header->crc8)) { + return DRFLAC_FALSE; + } +#ifndef DR_FLAC_NO_CRC + if (header->crc8 != crc8) { + continue; + } +#endif + return DRFLAC_TRUE; + } +} +static drflac_bool32 drflac__read_subframe_header(drflac_bs* bs, drflac_subframe* pSubframe) +{ + drflac_uint8 header; + int type; + if (!drflac__read_uint8(bs, 8, &header)) { + return DRFLAC_FALSE; + } + if ((header & 0x80) != 0) { + return DRFLAC_FALSE; + } + type = (header & 0x7E) >> 1; + if (type == 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_CONSTANT; + } else if (type == 1) { + pSubframe->subframeType = DRFLAC_SUBFRAME_VERBATIM; + } else { + if ((type & 0x20) != 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_LPC; + pSubframe->lpcOrder = (drflac_uint8)(type & 0x1F) + 1; + } else if ((type & 0x08) != 0) { + pSubframe->subframeType = DRFLAC_SUBFRAME_FIXED; + pSubframe->lpcOrder = (drflac_uint8)(type & 0x07); + if (pSubframe->lpcOrder > 4) { + pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + pSubframe->lpcOrder = 0; + } + } else { + pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + } + } + if (pSubframe->subframeType == DRFLAC_SUBFRAME_RESERVED) { + return DRFLAC_FALSE; + } + pSubframe->wastedBitsPerSample = 0; + if ((header & 0x01) == 1) { + unsigned int wastedBitsPerSample; + if (!drflac__seek_past_next_set_bit(bs, &wastedBitsPerSample)) { + return DRFLAC_FALSE; + } + pSubframe->wastedBitsPerSample = (drflac_uint8)wastedBitsPerSample + 1; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex, drflac_int32* pDecodedSamplesOut) +{ + drflac_subframe* pSubframe; + drflac_uint32 subframeBitsPerSample; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(frame != NULL); + pSubframe = frame->subframes + subframeIndex; + if (!drflac__read_subframe_header(bs, pSubframe)) { + return DRFLAC_FALSE; + } + subframeBitsPerSample = frame->header.bitsPerSample; + if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + subframeBitsPerSample += 1; + } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + subframeBitsPerSample += 1; + } + if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { + return DRFLAC_FALSE; + } + subframeBitsPerSample -= pSubframe->wastedBitsPerSample; + pSubframe->pSamplesS32 = pDecodedSamplesOut; + switch (pSubframe->subframeType) + { + case DRFLAC_SUBFRAME_CONSTANT: + { + drflac__decode_samples__constant(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + } break; + case DRFLAC_SUBFRAME_VERBATIM: + { + drflac__decode_samples__verbatim(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + } break; + case DRFLAC_SUBFRAME_FIXED: + { + drflac__decode_samples__fixed(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + } break; + case DRFLAC_SUBFRAME_LPC: + { + drflac__decode_samples__lpc(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + } break; + default: return DRFLAC_FALSE; + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__seek_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex) +{ + drflac_subframe* pSubframe; + drflac_uint32 subframeBitsPerSample; + DRFLAC_ASSERT(bs != NULL); + DRFLAC_ASSERT(frame != NULL); + pSubframe = frame->subframes + subframeIndex; + if (!drflac__read_subframe_header(bs, pSubframe)) { + return DRFLAC_FALSE; + } + subframeBitsPerSample = frame->header.bitsPerSample; + if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + subframeBitsPerSample += 1; + } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + subframeBitsPerSample += 1; + } + if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { + return DRFLAC_FALSE; + } + subframeBitsPerSample -= pSubframe->wastedBitsPerSample; + pSubframe->pSamplesS32 = NULL; + switch (pSubframe->subframeType) + { + case DRFLAC_SUBFRAME_CONSTANT: + { + if (!drflac__seek_bits(bs, subframeBitsPerSample)) { + return DRFLAC_FALSE; + } + } break; + case DRFLAC_SUBFRAME_VERBATIM: + { + unsigned int bitsToSeek = frame->header.blockSizeInPCMFrames * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + } break; + case DRFLAC_SUBFRAME_FIXED: + { + unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return DRFLAC_FALSE; + } + } break; + case DRFLAC_SUBFRAME_LPC: + { + drflac_uint8 lpcPrecision; + unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { + return DRFLAC_FALSE; + } + if (lpcPrecision == 15) { + return DRFLAC_FALSE; + } + lpcPrecision += 1; + bitsToSeek = (pSubframe->lpcOrder * lpcPrecision) + 5; + if (!drflac__seek_bits(bs, bitsToSeek)) { + return DRFLAC_FALSE; + } + if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return DRFLAC_FALSE; + } + } break; + default: return DRFLAC_FALSE; + } + return DRFLAC_TRUE; +} +static DRFLAC_INLINE drflac_uint8 drflac__get_channel_count_from_channel_assignment(drflac_int8 channelAssignment) +{ + drflac_uint8 lookup[] = {1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 2}; + DRFLAC_ASSERT(channelAssignment <= 10); + return lookup[channelAssignment]; +} +static drflac_result drflac__decode_flac_frame(drflac* pFlac) +{ + int channelCount; + int i; + drflac_uint8 paddingSizeInBits; + drflac_uint16 desiredCRC16; +#ifndef DR_FLAC_NO_CRC + drflac_uint16 actualCRC16; +#endif + DRFLAC_ZERO_MEMORY(pFlac->currentFLACFrame.subframes, sizeof(pFlac->currentFLACFrame.subframes)); + if (pFlac->currentFLACFrame.header.blockSizeInPCMFrames > pFlac->maxBlockSizeInPCMFrames) { + return DRFLAC_ERROR; + } + channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + if (channelCount != (int)pFlac->channels) { + return DRFLAC_ERROR; + } + for (i = 0; i < channelCount; ++i) { + if (!drflac__decode_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i, pFlac->pDecodedSamples + (pFlac->currentFLACFrame.header.blockSizeInPCMFrames * i))) { + return DRFLAC_ERROR; + } + } + paddingSizeInBits = (drflac_uint8)(DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7); + if (paddingSizeInBits > 0) { + drflac_uint8 padding = 0; + if (!drflac__read_uint8(&pFlac->bs, paddingSizeInBits, &padding)) { + return DRFLAC_AT_END; + } + } +#ifndef DR_FLAC_NO_CRC + actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#endif + if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return DRFLAC_AT_END; + } +#ifndef DR_FLAC_NO_CRC + if (actualCRC16 != desiredCRC16) { + return DRFLAC_CRC_MISMATCH; + } +#endif + pFlac->currentFLACFrame.pcmFramesRemaining = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + return DRFLAC_SUCCESS; +} +static drflac_result drflac__seek_flac_frame(drflac* pFlac) +{ + int channelCount; + int i; + drflac_uint16 desiredCRC16; +#ifndef DR_FLAC_NO_CRC + drflac_uint16 actualCRC16; +#endif + channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + for (i = 0; i < channelCount; ++i) { + if (!drflac__seek_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i)) { + return DRFLAC_ERROR; + } + } + if (!drflac__seek_bits(&pFlac->bs, DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7)) { + return DRFLAC_ERROR; + } +#ifndef DR_FLAC_NO_CRC + actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#endif + if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return DRFLAC_AT_END; + } +#ifndef DR_FLAC_NO_CRC + if (actualCRC16 != desiredCRC16) { + return DRFLAC_CRC_MISMATCH; + } +#endif + return DRFLAC_SUCCESS; +} +static drflac_bool32 drflac__read_and_decode_next_flac_frame(drflac* pFlac) +{ + DRFLAC_ASSERT(pFlac != NULL); + for (;;) { + drflac_result result; + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + result = drflac__decode_flac_frame(pFlac); + if (result != DRFLAC_SUCCESS) { + if (result == DRFLAC_CRC_MISMATCH) { + continue; + } else { + return DRFLAC_FALSE; + } + } + return DRFLAC_TRUE; + } +} +static void drflac__get_pcm_frame_range_of_current_flac_frame(drflac* pFlac, drflac_uint64* pFirstPCMFrame, drflac_uint64* pLastPCMFrame) +{ + drflac_uint64 firstPCMFrame; + drflac_uint64 lastPCMFrame; + DRFLAC_ASSERT(pFlac != NULL); + firstPCMFrame = pFlac->currentFLACFrame.header.pcmFrameNumber; + if (firstPCMFrame == 0) { + firstPCMFrame = ((drflac_uint64)pFlac->currentFLACFrame.header.flacFrameNumber) * pFlac->maxBlockSizeInPCMFrames; + } + lastPCMFrame = firstPCMFrame + pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + if (lastPCMFrame > 0) { + lastPCMFrame -= 1; + } + if (pFirstPCMFrame) { + *pFirstPCMFrame = firstPCMFrame; + } + if (pLastPCMFrame) { + *pLastPCMFrame = lastPCMFrame; + } +} +static drflac_bool32 drflac__seek_to_first_frame(drflac* pFlac) +{ + drflac_bool32 result; + DRFLAC_ASSERT(pFlac != NULL); + result = drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes); + DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); + pFlac->currentPCMFrame = 0; + return result; +} +static DRFLAC_INLINE drflac_result drflac__seek_to_next_flac_frame(drflac* pFlac) +{ + DRFLAC_ASSERT(pFlac != NULL); + return drflac__seek_flac_frame(pFlac); +} +static drflac_uint64 drflac__seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 pcmFramesToSeek) +{ + drflac_uint64 pcmFramesRead = 0; + while (pcmFramesToSeek > 0) { + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; + } + } else { + if (pFlac->currentFLACFrame.pcmFramesRemaining > pcmFramesToSeek) { + pcmFramesRead += pcmFramesToSeek; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)pcmFramesToSeek; + pcmFramesToSeek = 0; + } else { + pcmFramesRead += pFlac->currentFLACFrame.pcmFramesRemaining; + pcmFramesToSeek -= pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + } + } + } + pFlac->currentPCMFrame += pcmFramesRead; + return pcmFramesRead; +} +static drflac_bool32 drflac__seek_to_pcm_frame__brute_force(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_bool32 isMidFrame = DRFLAC_FALSE; + drflac_uint64 runningPCMFrameCount; + DRFLAC_ASSERT(pFlac != NULL); + if (pcmFrameIndex >= pFlac->currentPCMFrame) { + runningPCMFrameCount = pFlac->currentPCMFrame; + if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } else { + isMidFrame = DRFLAC_TRUE; + } + } else { + runningPCMFrameCount = 0; + if (!drflac__seek_to_first_frame(pFlac)) { + return DRFLAC_FALSE; + } + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } + for (;;) { + drflac_uint64 pcmFrameCountInThisFLACFrame; + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { + drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + if (!isMidFrame) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; + } else { + return DRFLAC_FALSE; + } + } + } else { + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } + } else { + if (!isMidFrame) { + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFLACFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; + } else { + return DRFLAC_FALSE; + } + } + } else { + runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + isMidFrame = DRFLAC_FALSE; + } + if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { + return DRFLAC_TRUE; + } + } + next_iteration: + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } +} +#if !defined(DR_FLAC_NO_CRC) +#define DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO 0.6f +static drflac_bool32 drflac__seek_to_approximate_flac_frame_to_byte(drflac* pFlac, drflac_uint64 targetByte, drflac_uint64 rangeLo, drflac_uint64 rangeHi, drflac_uint64* pLastSuccessfulSeekOffset) +{ + DRFLAC_ASSERT(pFlac != NULL); + DRFLAC_ASSERT(pLastSuccessfulSeekOffset != NULL); + DRFLAC_ASSERT(targetByte >= rangeLo); + DRFLAC_ASSERT(targetByte <= rangeHi); + *pLastSuccessfulSeekOffset = pFlac->firstFLACFramePosInBytes; + for (;;) { + drflac_uint64 lastTargetByte = targetByte; + if (!drflac__seek_to_byte(&pFlac->bs, targetByte)) { + if (targetByte == 0) { + drflac__seek_to_first_frame(pFlac); + return DRFLAC_FALSE; + } + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); +#if 1 + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + break; + } +#else + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + targetByte = rangeLo + ((rangeHi - rangeLo)/2); + rangeHi = targetByte; + } else { + break; + } +#endif + } + if(targetByte == lastTargetByte) { + return DRFLAC_FALSE; + } + } + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + DRFLAC_ASSERT(targetByte <= rangeHi); + *pLastSuccessfulSeekOffset = targetByte; + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 offset) +{ +#if 0 + if (drflac__decode_flac_frame(pFlac) != DRFLAC_SUCCESS) { + if (drflac__read_and_decode_next_flac_frame(pFlac) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + } +#endif + return drflac__seek_forward_by_pcm_frames(pFlac, offset) == offset; +} +static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* pFlac, drflac_uint64 pcmFrameIndex, drflac_uint64 byteRangeLo, drflac_uint64 byteRangeHi) +{ + drflac_uint64 targetByte; + drflac_uint64 pcmRangeLo = pFlac->totalPCMFrameCount; + drflac_uint64 pcmRangeHi = 0; + drflac_uint64 lastSuccessfulSeekOffset = (drflac_uint64)-1; + drflac_uint64 closestSeekOffsetBeforeTargetPCMFrame = byteRangeLo; + drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + targetByte = byteRangeLo + (drflac_uint64)(((drflac_int64)((pcmFrameIndex - pFlac->currentPCMFrame) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO); + if (targetByte > byteRangeHi) { + targetByte = byteRangeHi; + } + for (;;) { + if (drflac__seek_to_approximate_flac_frame_to_byte(pFlac, targetByte, byteRangeLo, byteRangeHi, &lastSuccessfulSeekOffset)) { + drflac_uint64 newPCMRangeLo; + drflac_uint64 newPCMRangeHi; + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &newPCMRangeLo, &newPCMRangeHi); + if (pcmRangeLo == newPCMRangeLo) { + if (!drflac__seek_to_approximate_flac_frame_to_byte(pFlac, closestSeekOffsetBeforeTargetPCMFrame, closestSeekOffsetBeforeTargetPCMFrame, byteRangeHi, &lastSuccessfulSeekOffset)) { + break; + } + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return DRFLAC_TRUE; + } else { + break; + } + } + pcmRangeLo = newPCMRangeLo; + pcmRangeHi = newPCMRangeHi; + if (pcmRangeLo <= pcmFrameIndex && pcmRangeHi >= pcmFrameIndex) { + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame) ) { + return DRFLAC_TRUE; + } else { + break; + } + } else { + const float approxCompressionRatio = (drflac_int64)(lastSuccessfulSeekOffset - pFlac->firstFLACFramePosInBytes) / ((drflac_int64)(pcmRangeLo * pFlac->channels * pFlac->bitsPerSample)/8.0f); + if (pcmRangeLo > pcmFrameIndex) { + byteRangeHi = lastSuccessfulSeekOffset; + if (byteRangeLo > byteRangeHi) { + byteRangeLo = byteRangeHi; + } + targetByte = byteRangeLo + ((byteRangeHi - byteRangeLo) / 2); + if (targetByte < byteRangeLo) { + targetByte = byteRangeLo; + } + } else { + if ((pcmFrameIndex - pcmRangeLo) < seekForwardThreshold) { + if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return DRFLAC_TRUE; + } else { + break; + } + } else { + byteRangeLo = lastSuccessfulSeekOffset; + if (byteRangeHi < byteRangeLo) { + byteRangeHi = byteRangeLo; + } + targetByte = lastSuccessfulSeekOffset + (drflac_uint64)(((drflac_int64)((pcmFrameIndex-pcmRangeLo) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * approxCompressionRatio); + if (targetByte > byteRangeHi) { + targetByte = byteRangeHi; + } + if (closestSeekOffsetBeforeTargetPCMFrame < lastSuccessfulSeekOffset) { + closestSeekOffsetBeforeTargetPCMFrame = lastSuccessfulSeekOffset; + } + } + } + } + } else { + break; + } + } + drflac__seek_to_first_frame(pFlac); + return DRFLAC_FALSE; +} +static drflac_bool32 drflac__seek_to_pcm_frame__binary_search(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_uint64 byteRangeLo; + drflac_uint64 byteRangeHi; + drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + if (drflac__seek_to_first_frame(pFlac) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + if (pcmFrameIndex < seekForwardThreshold) { + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFrameIndex) == pcmFrameIndex; + } + byteRangeLo = pFlac->firstFLACFramePosInBytes; + byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + return drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi); +} +#endif +static drflac_bool32 drflac__seek_to_pcm_frame__seek_table(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_uint32 iClosestSeekpoint = 0; + drflac_bool32 isMidFrame = DRFLAC_FALSE; + drflac_uint64 runningPCMFrameCount; + drflac_uint32 iSeekpoint; + DRFLAC_ASSERT(pFlac != NULL); + if (pFlac->pSeekpoints == NULL || pFlac->seekpointCount == 0) { + return DRFLAC_FALSE; + } + for (iSeekpoint = 0; iSeekpoint < pFlac->seekpointCount; ++iSeekpoint) { + if (pFlac->pSeekpoints[iSeekpoint].firstPCMFrame >= pcmFrameIndex) { + break; + } + iClosestSeekpoint = iSeekpoint; + } + if (pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount == 0 || pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount > pFlac->maxBlockSizeInPCMFrames) { + return DRFLAC_FALSE; + } + if (pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame > pFlac->totalPCMFrameCount && pFlac->totalPCMFrameCount > 0) { + return DRFLAC_FALSE; + } +#if !defined(DR_FLAC_NO_CRC) + if (pFlac->totalPCMFrameCount > 0) { + drflac_uint64 byteRangeLo; + drflac_uint64 byteRangeHi; + byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + byteRangeLo = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset; + if (iClosestSeekpoint < pFlac->seekpointCount-1) { + drflac_uint32 iNextSeekpoint = iClosestSeekpoint + 1; + if (pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset >= pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset || pFlac->pSeekpoints[iNextSeekpoint].pcmFrameCount == 0) { + return DRFLAC_FALSE; + } + if (pFlac->pSeekpoints[iNextSeekpoint].firstPCMFrame != (((drflac_uint64)0xFFFFFFFF << 32) | 0xFFFFFFFF)) { + byteRangeHi = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset - 1; + } + } + if (drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + if (drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + if (drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi)) { + return DRFLAC_TRUE; + } + } + } + } +#endif + if (pcmFrameIndex >= pFlac->currentPCMFrame && pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame <= pFlac->currentPCMFrame) { + runningPCMFrameCount = pFlac->currentPCMFrame; + if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } else { + isMidFrame = DRFLAC_TRUE; + } + } else { + runningPCMFrameCount = pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame; + if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + return DRFLAC_FALSE; + } + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } + for (;;) { + drflac_uint64 pcmFrameCountInThisFLACFrame; + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { + drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + if (!isMidFrame) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; + } else { + return DRFLAC_FALSE; + } + } + } else { + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } + } else { + if (!isMidFrame) { + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFLACFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + goto next_iteration; + } else { + return DRFLAC_FALSE; + } + } + } else { + runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + isMidFrame = DRFLAC_FALSE; + } + if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { + return DRFLAC_TRUE; + } + } + next_iteration: + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + } +} +#ifndef DR_FLAC_NO_OGG +typedef struct +{ + drflac_uint8 capturePattern[4]; + drflac_uint8 structureVersion; + drflac_uint8 headerType; + drflac_uint64 granulePosition; + drflac_uint32 serialNumber; + drflac_uint32 sequenceNumber; + drflac_uint32 checksum; + drflac_uint8 segmentCount; + drflac_uint8 segmentTable[255]; +} drflac_ogg_page_header; +#endif +typedef struct +{ + drflac_read_proc onRead; + drflac_seek_proc onSeek; + drflac_meta_proc onMeta; + drflac_container container; + void* pUserData; + void* pUserDataMD; + drflac_uint32 sampleRate; + drflac_uint8 channels; + drflac_uint8 bitsPerSample; + drflac_uint64 totalPCMFrameCount; + drflac_uint16 maxBlockSizeInPCMFrames; + drflac_uint64 runningFilePos; + drflac_bool32 hasStreamInfoBlock; + drflac_bool32 hasMetadataBlocks; + drflac_bs bs; + drflac_frame_header firstFrameHeader; +#ifndef DR_FLAC_NO_OGG + drflac_uint32 oggSerial; + drflac_uint64 oggFirstBytePos; + drflac_ogg_page_header oggBosHeader; +#endif +} drflac_init_info; +static DRFLAC_INLINE void drflac__decode_block_header(drflac_uint32 blockHeader, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +{ + blockHeader = drflac__be2host_32(blockHeader); + *isLastBlock = (drflac_uint8)((blockHeader & 0x80000000UL) >> 31); + *blockType = (drflac_uint8)((blockHeader & 0x7F000000UL) >> 24); + *blockSize = (blockHeader & 0x00FFFFFFUL); +} +static DRFLAC_INLINE drflac_bool32 drflac__read_and_decode_block_header(drflac_read_proc onRead, void* pUserData, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +{ + drflac_uint32 blockHeader; + *blockSize = 0; + if (onRead(pUserData, &blockHeader, 4) != 4) { + return DRFLAC_FALSE; + } + drflac__decode_block_header(blockHeader, isLastBlock, blockType, blockSize); + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__read_streaminfo(drflac_read_proc onRead, void* pUserData, drflac_streaminfo* pStreamInfo) +{ + drflac_uint32 blockSizes; + drflac_uint64 frameSizes = 0; + drflac_uint64 importantProps; + drflac_uint8 md5[16]; + if (onRead(pUserData, &blockSizes, 4) != 4) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, &frameSizes, 6) != 6) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, &importantProps, 8) != 8) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, md5, sizeof(md5)) != sizeof(md5)) { + return DRFLAC_FALSE; + } + blockSizes = drflac__be2host_32(blockSizes); + frameSizes = drflac__be2host_64(frameSizes); + importantProps = drflac__be2host_64(importantProps); + pStreamInfo->minBlockSizeInPCMFrames = (drflac_uint16)((blockSizes & 0xFFFF0000) >> 16); + pStreamInfo->maxBlockSizeInPCMFrames = (drflac_uint16) (blockSizes & 0x0000FFFF); + pStreamInfo->minFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 24)) >> 40); + pStreamInfo->maxFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 0)) >> 16); + pStreamInfo->sampleRate = (drflac_uint32)((importantProps & (((drflac_uint64)0x000FFFFF << 16) << 28)) >> 44); + pStreamInfo->channels = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000000E << 16) << 24)) >> 41) + 1; + pStreamInfo->bitsPerSample = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000001F << 16) << 20)) >> 36) + 1; + pStreamInfo->totalPCMFrameCount = ((importantProps & ((((drflac_uint64)0x0000000F << 16) << 16) | 0xFFFFFFFF))); + DRFLAC_COPY_MEMORY(pStreamInfo->md5, md5, sizeof(md5)); + return DRFLAC_TRUE; +} +static void* drflac__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRFLAC_MALLOC(sz); +} +static void* drflac__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRFLAC_REALLOC(p, sz); +} +static void drflac__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRFLAC_FREE(p); +} +static void* drflac__malloc_from_callbacks(size_t sz, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + return NULL; +} +static void* drflac__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + if (p != NULL) { + DRFLAC_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + return p2; + } + return NULL; +} +static void drflac__free_from_callbacks(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} +static drflac_bool32 drflac__read_and_decode_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_uint64* pFirstFramePos, drflac_uint64* pSeektablePos, drflac_uint32* pSeektableSize, drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac_uint64 runningFilePos = 42; + drflac_uint64 seektablePos = 0; + drflac_uint32 seektableSize = 0; + for (;;) { + drflac_metadata metadata; + drflac_uint8 isLastBlock = 0; + drflac_uint8 blockType; + drflac_uint32 blockSize; + if (drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize) == DRFLAC_FALSE) { + return DRFLAC_FALSE; + } + runningFilePos += 4; + metadata.type = blockType; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + switch (blockType) + { + case DRFLAC_METADATA_BLOCK_TYPE_APPLICATION: + { + if (blockSize < 4) { + return DRFLAC_FALSE; + } + if (onMeta) { + void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + metadata.data.application.id = drflac__be2host_32(*(drflac_uint32*)pRawData); + metadata.data.application.pData = (const void*)((drflac_uint8*)pRawData + sizeof(drflac_uint32)); + metadata.data.application.dataSize = blockSize - sizeof(drflac_uint32); + onMeta(pUserDataMD, &metadata); + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + case DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE: + { + seektablePos = runningFilePos; + seektableSize = blockSize; + if (onMeta) { + drflac_uint32 iSeekpoint; + void* pRawData; + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + metadata.data.seektable.seekpointCount = blockSize/sizeof(drflac_seekpoint); + metadata.data.seektable.pSeekpoints = (const drflac_seekpoint*)pRawData; + for (iSeekpoint = 0; iSeekpoint < metadata.data.seektable.seekpointCount; ++iSeekpoint) { + drflac_seekpoint* pSeekpoint = (drflac_seekpoint*)pRawData + iSeekpoint; + pSeekpoint->firstPCMFrame = drflac__be2host_64(pSeekpoint->firstPCMFrame); + pSeekpoint->flacFrameOffset = drflac__be2host_64(pSeekpoint->flacFrameOffset); + pSeekpoint->pcmFrameCount = drflac__be2host_16(pSeekpoint->pcmFrameCount); + } + onMeta(pUserDataMD, &metadata); + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + case DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT: + { + if (blockSize < 8) { + return DRFLAC_FALSE; + } + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + drflac_uint32 i; + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + metadata.data.vorbis_comment.vendorLength = drflac__le2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) - 4 < (drflac_int64)metadata.data.vorbis_comment.vendorLength) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.vorbis_comment.vendor = pRunningData; pRunningData += metadata.data.vorbis_comment.vendorLength; + metadata.data.vorbis_comment.commentCount = drflac__le2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) / sizeof(drflac_uint32) < metadata.data.vorbis_comment.commentCount) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.vorbis_comment.pComments = pRunningData; + for (i = 0; i < metadata.data.vorbis_comment.commentCount; ++i) { + drflac_uint32 commentLength; + if (pRunningDataEnd - pRunningData < 4) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + commentLength = drflac__le2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + if (pRunningDataEnd - pRunningData < (drflac_int64)commentLength) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + pRunningData += commentLength; + } + onMeta(pUserDataMD, &metadata); + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + case DRFLAC_METADATA_BLOCK_TYPE_CUESHEET: + { + if (blockSize < 396) { + return DRFLAC_FALSE; + } + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + drflac_uint8 iTrack; + drflac_uint8 iIndex; + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + DRFLAC_COPY_MEMORY(metadata.data.cuesheet.catalog, pRunningData, 128); pRunningData += 128; + metadata.data.cuesheet.leadInSampleCount = drflac__be2host_64(*(const drflac_uint64*)pRunningData); pRunningData += 8; + metadata.data.cuesheet.isCD = (pRunningData[0] & 0x80) != 0; pRunningData += 259; + metadata.data.cuesheet.trackCount = pRunningData[0]; pRunningData += 1; + metadata.data.cuesheet.pTrackData = pRunningData; + for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { + drflac_uint8 indexCount; + drflac_uint32 indexPointSize; + if (pRunningDataEnd - pRunningData < 36) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + pRunningData += 35; + indexCount = pRunningData[0]; pRunningData += 1; + indexPointSize = indexCount * sizeof(drflac_cuesheet_track_index); + if (pRunningDataEnd - pRunningData < (drflac_int64)indexPointSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + for (iIndex = 0; iIndex < indexCount; ++iIndex) { + drflac_cuesheet_track_index* pTrack = (drflac_cuesheet_track_index*)pRunningData; + pRunningData += sizeof(drflac_cuesheet_track_index); + pTrack->offset = drflac__be2host_64(pTrack->offset); + } + } + onMeta(pUserDataMD, &metadata); + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + case DRFLAC_METADATA_BLOCK_TYPE_PICTURE: + { + if (blockSize < 32) { + return DRFLAC_FALSE; + } + if (onMeta) { + void* pRawData; + const char* pRunningData; + const char* pRunningDataEnd; + pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + pRunningData = (const char*)pRawData; + pRunningDataEnd = (const char*)pRawData + blockSize; + metadata.data.picture.type = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + metadata.data.picture.mimeLength = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) - 24 < (drflac_int64)metadata.data.picture.mimeLength) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.picture.mime = pRunningData; pRunningData += metadata.data.picture.mimeLength; + metadata.data.picture.descriptionLength = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) - 20 < (drflac_int64)metadata.data.picture.descriptionLength) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.data.picture.description = pRunningData; pRunningData += metadata.data.picture.descriptionLength; + metadata.data.picture.width = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + metadata.data.picture.height = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + metadata.data.picture.colorDepth = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + metadata.data.picture.indexColorCount = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + metadata.data.picture.pictureDataSize = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + metadata.data.picture.pPictureData = (const drflac_uint8*)pRunningData; + if (pRunningDataEnd - pRunningData < (drflac_int64)metadata.data.picture.pictureDataSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + onMeta(pUserDataMD, &metadata); + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + case DRFLAC_METADATA_BLOCK_TYPE_PADDING: + { + if (onMeta) { + metadata.data.padding.unused = 0; + if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { + isLastBlock = DRFLAC_TRUE; + } else { + onMeta(pUserDataMD, &metadata); + } + } + } break; + case DRFLAC_METADATA_BLOCK_TYPE_INVALID: + { + if (onMeta) { + if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { + isLastBlock = DRFLAC_TRUE; + } + } + } break; + default: + { + if (onMeta) { + void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + if (pRawData == NULL) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, pRawData, blockSize) != blockSize) { + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + return DRFLAC_FALSE; + } + metadata.pRawData = pRawData; + metadata.rawDataSize = blockSize; + onMeta(pUserDataMD, &metadata); + drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + } + } break; + } + if (onMeta == NULL && blockSize > 0) { + if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { + isLastBlock = DRFLAC_TRUE; + } + } + runningFilePos += blockSize; + if (isLastBlock) { + break; + } + } + *pSeektablePos = seektablePos; + *pSeektableSize = seektableSize; + *pFirstFramePos = runningFilePos; + return DRFLAC_TRUE; +} +static drflac_bool32 drflac__init_private__native(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +{ + drflac_uint8 isLastBlock; + drflac_uint8 blockType; + drflac_uint32 blockSize; + (void)onSeek; + pInit->container = drflac_container_native; + if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return DRFLAC_FALSE; + } + if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + if (!relaxed) { + return DRFLAC_FALSE; + } else { + pInit->hasStreamInfoBlock = DRFLAC_FALSE; + pInit->hasMetadataBlocks = DRFLAC_FALSE; + if (!drflac__read_next_flac_frame_header(&pInit->bs, 0, &pInit->firstFrameHeader)) { + return DRFLAC_FALSE; + } + if (pInit->firstFrameHeader.bitsPerSample == 0) { + return DRFLAC_FALSE; + } + pInit->sampleRate = pInit->firstFrameHeader.sampleRate; + pInit->channels = drflac__get_channel_count_from_channel_assignment(pInit->firstFrameHeader.channelAssignment); + pInit->bitsPerSample = pInit->firstFrameHeader.bitsPerSample; + pInit->maxBlockSizeInPCMFrames = 65535; + return DRFLAC_TRUE; + } + } else { + drflac_streaminfo streaminfo; + if (!drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { + return DRFLAC_FALSE; + } + pInit->hasStreamInfoBlock = DRFLAC_TRUE; + pInit->sampleRate = streaminfo.sampleRate; + pInit->channels = streaminfo.channels; + pInit->bitsPerSample = streaminfo.bitsPerSample; + pInit->totalPCMFrameCount = streaminfo.totalPCMFrameCount; + pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; + pInit->hasMetadataBlocks = !isLastBlock; + if (onMeta) { + drflac_metadata metadata; + metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + metadata.data.streaminfo = streaminfo; + onMeta(pUserDataMD, &metadata); + } + return DRFLAC_TRUE; + } +} +#ifndef DR_FLAC_NO_OGG +#define DRFLAC_OGG_MAX_PAGE_SIZE 65307 +#define DRFLAC_OGG_CAPTURE_PATTERN_CRC32 1605413199 +typedef enum +{ + drflac_ogg_recover_on_crc_mismatch, + drflac_ogg_fail_on_crc_mismatch +} drflac_ogg_crc_mismatch_recovery; +#ifndef DR_FLAC_NO_CRC +static drflac_uint32 drflac__crc32_table[] = { + 0x00000000L, 0x04C11DB7L, 0x09823B6EL, 0x0D4326D9L, + 0x130476DCL, 0x17C56B6BL, 0x1A864DB2L, 0x1E475005L, + 0x2608EDB8L, 0x22C9F00FL, 0x2F8AD6D6L, 0x2B4BCB61L, + 0x350C9B64L, 0x31CD86D3L, 0x3C8EA00AL, 0x384FBDBDL, + 0x4C11DB70L, 0x48D0C6C7L, 0x4593E01EL, 0x4152FDA9L, + 0x5F15ADACL, 0x5BD4B01BL, 0x569796C2L, 0x52568B75L, + 0x6A1936C8L, 0x6ED82B7FL, 0x639B0DA6L, 0x675A1011L, + 0x791D4014L, 0x7DDC5DA3L, 0x709F7B7AL, 0x745E66CDL, + 0x9823B6E0L, 0x9CE2AB57L, 0x91A18D8EL, 0x95609039L, + 0x8B27C03CL, 0x8FE6DD8BL, 0x82A5FB52L, 0x8664E6E5L, + 0xBE2B5B58L, 0xBAEA46EFL, 0xB7A96036L, 0xB3687D81L, + 0xAD2F2D84L, 0xA9EE3033L, 0xA4AD16EAL, 0xA06C0B5DL, + 0xD4326D90L, 0xD0F37027L, 0xDDB056FEL, 0xD9714B49L, + 0xC7361B4CL, 0xC3F706FBL, 0xCEB42022L, 0xCA753D95L, + 0xF23A8028L, 0xF6FB9D9FL, 0xFBB8BB46L, 0xFF79A6F1L, + 0xE13EF6F4L, 0xE5FFEB43L, 0xE8BCCD9AL, 0xEC7DD02DL, + 0x34867077L, 0x30476DC0L, 0x3D044B19L, 0x39C556AEL, + 0x278206ABL, 0x23431B1CL, 0x2E003DC5L, 0x2AC12072L, + 0x128E9DCFL, 0x164F8078L, 0x1B0CA6A1L, 0x1FCDBB16L, + 0x018AEB13L, 0x054BF6A4L, 0x0808D07DL, 0x0CC9CDCAL, + 0x7897AB07L, 0x7C56B6B0L, 0x71159069L, 0x75D48DDEL, + 0x6B93DDDBL, 0x6F52C06CL, 0x6211E6B5L, 0x66D0FB02L, + 0x5E9F46BFL, 0x5A5E5B08L, 0x571D7DD1L, 0x53DC6066L, + 0x4D9B3063L, 0x495A2DD4L, 0x44190B0DL, 0x40D816BAL, + 0xACA5C697L, 0xA864DB20L, 0xA527FDF9L, 0xA1E6E04EL, + 0xBFA1B04BL, 0xBB60ADFCL, 0xB6238B25L, 0xB2E29692L, + 0x8AAD2B2FL, 0x8E6C3698L, 0x832F1041L, 0x87EE0DF6L, + 0x99A95DF3L, 0x9D684044L, 0x902B669DL, 0x94EA7B2AL, + 0xE0B41DE7L, 0xE4750050L, 0xE9362689L, 0xEDF73B3EL, + 0xF3B06B3BL, 0xF771768CL, 0xFA325055L, 0xFEF34DE2L, + 0xC6BCF05FL, 0xC27DEDE8L, 0xCF3ECB31L, 0xCBFFD686L, + 0xD5B88683L, 0xD1799B34L, 0xDC3ABDEDL, 0xD8FBA05AL, + 0x690CE0EEL, 0x6DCDFD59L, 0x608EDB80L, 0x644FC637L, + 0x7A089632L, 0x7EC98B85L, 0x738AAD5CL, 0x774BB0EBL, + 0x4F040D56L, 0x4BC510E1L, 0x46863638L, 0x42472B8FL, + 0x5C007B8AL, 0x58C1663DL, 0x558240E4L, 0x51435D53L, + 0x251D3B9EL, 0x21DC2629L, 0x2C9F00F0L, 0x285E1D47L, + 0x36194D42L, 0x32D850F5L, 0x3F9B762CL, 0x3B5A6B9BL, + 0x0315D626L, 0x07D4CB91L, 0x0A97ED48L, 0x0E56F0FFL, + 0x1011A0FAL, 0x14D0BD4DL, 0x19939B94L, 0x1D528623L, + 0xF12F560EL, 0xF5EE4BB9L, 0xF8AD6D60L, 0xFC6C70D7L, + 0xE22B20D2L, 0xE6EA3D65L, 0xEBA91BBCL, 0xEF68060BL, + 0xD727BBB6L, 0xD3E6A601L, 0xDEA580D8L, 0xDA649D6FL, + 0xC423CD6AL, 0xC0E2D0DDL, 0xCDA1F604L, 0xC960EBB3L, + 0xBD3E8D7EL, 0xB9FF90C9L, 0xB4BCB610L, 0xB07DABA7L, + 0xAE3AFBA2L, 0xAAFBE615L, 0xA7B8C0CCL, 0xA379DD7BL, + 0x9B3660C6L, 0x9FF77D71L, 0x92B45BA8L, 0x9675461FL, + 0x8832161AL, 0x8CF30BADL, 0x81B02D74L, 0x857130C3L, + 0x5D8A9099L, 0x594B8D2EL, 0x5408ABF7L, 0x50C9B640L, + 0x4E8EE645L, 0x4A4FFBF2L, 0x470CDD2BL, 0x43CDC09CL, + 0x7B827D21L, 0x7F436096L, 0x7200464FL, 0x76C15BF8L, + 0x68860BFDL, 0x6C47164AL, 0x61043093L, 0x65C52D24L, + 0x119B4BE9L, 0x155A565EL, 0x18197087L, 0x1CD86D30L, + 0x029F3D35L, 0x065E2082L, 0x0B1D065BL, 0x0FDC1BECL, + 0x3793A651L, 0x3352BBE6L, 0x3E119D3FL, 0x3AD08088L, + 0x2497D08DL, 0x2056CD3AL, 0x2D15EBE3L, 0x29D4F654L, + 0xC5A92679L, 0xC1683BCEL, 0xCC2B1D17L, 0xC8EA00A0L, + 0xD6AD50A5L, 0xD26C4D12L, 0xDF2F6BCBL, 0xDBEE767CL, + 0xE3A1CBC1L, 0xE760D676L, 0xEA23F0AFL, 0xEEE2ED18L, + 0xF0A5BD1DL, 0xF464A0AAL, 0xF9278673L, 0xFDE69BC4L, + 0x89B8FD09L, 0x8D79E0BEL, 0x803AC667L, 0x84FBDBD0L, + 0x9ABC8BD5L, 0x9E7D9662L, 0x933EB0BBL, 0x97FFAD0CL, + 0xAFB010B1L, 0xAB710D06L, 0xA6322BDFL, 0xA2F33668L, + 0xBCB4666DL, 0xB8757BDAL, 0xB5365D03L, 0xB1F740B4L +}; +#endif +static DRFLAC_INLINE drflac_uint32 drflac_crc32_byte(drflac_uint32 crc32, drflac_uint8 data) +{ +#ifndef DR_FLAC_NO_CRC + return (crc32 << 8) ^ drflac__crc32_table[(drflac_uint8)((crc32 >> 24) & 0xFF) ^ data]; +#else + (void)data; + return crc32; +#endif +} +#if 0 +static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint32(drflac_uint32 crc32, drflac_uint32 data) +{ + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 24) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 16) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 8) & 0xFF)); + crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 0) & 0xFF)); + return crc32; +} +static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint64(drflac_uint32 crc32, drflac_uint64 data) +{ + crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 32) & 0xFFFFFFFF)); + crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 0) & 0xFFFFFFFF)); + return crc32; +} +#endif +static DRFLAC_INLINE drflac_uint32 drflac_crc32_buffer(drflac_uint32 crc32, drflac_uint8* pData, drflac_uint32 dataSize) +{ + drflac_uint32 i; + for (i = 0; i < dataSize; ++i) { + crc32 = drflac_crc32_byte(crc32, pData[i]); + } + return crc32; +} +static DRFLAC_INLINE drflac_bool32 drflac_ogg__is_capture_pattern(drflac_uint8 pattern[4]) +{ + return pattern[0] == 'O' && pattern[1] == 'g' && pattern[2] == 'g' && pattern[3] == 'S'; +} +static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_header_size(drflac_ogg_page_header* pHeader) +{ + return 27 + pHeader->segmentCount; +} +static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_body_size(drflac_ogg_page_header* pHeader) +{ + drflac_uint32 pageBodySize = 0; + int i; + for (i = 0; i < pHeader->segmentCount; ++i) { + pageBodySize += pHeader->segmentTable[i]; + } + return pageBodySize; +} +static drflac_result drflac_ogg__read_page_header_after_capture_pattern(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +{ + drflac_uint8 data[23]; + drflac_uint32 i; + DRFLAC_ASSERT(*pCRC32 == DRFLAC_OGG_CAPTURE_PATTERN_CRC32); + if (onRead(pUserData, data, 23) != 23) { + return DRFLAC_AT_END; + } + *pBytesRead += 23; + pHeader->capturePattern[0] = 'O'; + pHeader->capturePattern[1] = 'g'; + pHeader->capturePattern[2] = 'g'; + pHeader->capturePattern[3] = 'S'; + pHeader->structureVersion = data[0]; + pHeader->headerType = data[1]; + DRFLAC_COPY_MEMORY(&pHeader->granulePosition, &data[ 2], 8); + DRFLAC_COPY_MEMORY(&pHeader->serialNumber, &data[10], 4); + DRFLAC_COPY_MEMORY(&pHeader->sequenceNumber, &data[14], 4); + DRFLAC_COPY_MEMORY(&pHeader->checksum, &data[18], 4); + pHeader->segmentCount = data[22]; + data[18] = 0; + data[19] = 0; + data[20] = 0; + data[21] = 0; + for (i = 0; i < 23; ++i) { + *pCRC32 = drflac_crc32_byte(*pCRC32, data[i]); + } + if (onRead(pUserData, pHeader->segmentTable, pHeader->segmentCount) != pHeader->segmentCount) { + return DRFLAC_AT_END; + } + *pBytesRead += pHeader->segmentCount; + for (i = 0; i < pHeader->segmentCount; ++i) { + *pCRC32 = drflac_crc32_byte(*pCRC32, pHeader->segmentTable[i]); + } + return DRFLAC_SUCCESS; +} +static drflac_result drflac_ogg__read_page_header(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +{ + drflac_uint8 id[4]; + *pBytesRead = 0; + if (onRead(pUserData, id, 4) != 4) { + return DRFLAC_AT_END; + } + *pBytesRead += 4; + for (;;) { + if (drflac_ogg__is_capture_pattern(id)) { + drflac_result result; + *pCRC32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; + result = drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, pHeader, pBytesRead, pCRC32); + if (result == DRFLAC_SUCCESS) { + return DRFLAC_SUCCESS; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; + } else { + return result; + } + } + } else { + id[0] = id[1]; + id[1] = id[2]; + id[2] = id[3]; + if (onRead(pUserData, &id[3], 1) != 1) { + return DRFLAC_AT_END; + } + *pBytesRead += 1; + } + } +} +typedef struct +{ + drflac_read_proc onRead; + drflac_seek_proc onSeek; + void* pUserData; + drflac_uint64 currentBytePos; + drflac_uint64 firstBytePos; + drflac_uint32 serialNumber; + drflac_ogg_page_header bosPageHeader; + drflac_ogg_page_header currentPageHeader; + drflac_uint32 bytesRemainingInPage; + drflac_uint32 pageDataSize; + drflac_uint8 pageData[DRFLAC_OGG_MAX_PAGE_SIZE]; +} drflac_oggbs; +static size_t drflac_oggbs__read_physical(drflac_oggbs* oggbs, void* bufferOut, size_t bytesToRead) +{ + size_t bytesActuallyRead = oggbs->onRead(oggbs->pUserData, bufferOut, bytesToRead); + oggbs->currentBytePos += bytesActuallyRead; + return bytesActuallyRead; +} +static drflac_bool32 drflac_oggbs__seek_physical(drflac_oggbs* oggbs, drflac_uint64 offset, drflac_seek_origin origin) +{ + if (origin == drflac_seek_origin_start) { + if (offset <= 0x7FFFFFFF) { + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos = offset; + return DRFLAC_TRUE; + } else { + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos = offset; + return drflac_oggbs__seek_physical(oggbs, offset - 0x7FFFFFFF, drflac_seek_origin_current); + } + } else { + while (offset > 0x7FFFFFFF) { + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos += 0x7FFFFFFF; + offset -= 0x7FFFFFFF; + } + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos += offset; + return DRFLAC_TRUE; + } +} +static drflac_bool32 drflac_oggbs__goto_next_page(drflac_oggbs* oggbs, drflac_ogg_crc_mismatch_recovery recoveryMethod) +{ + drflac_ogg_page_header header; + for (;;) { + drflac_uint32 crc32 = 0; + drflac_uint32 bytesRead; + drflac_uint32 pageBodySize; +#ifndef DR_FLAC_NO_CRC + drflac_uint32 actualCRC32; +#endif + if (drflac_ogg__read_page_header(oggbs->onRead, oggbs->pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + oggbs->currentBytePos += bytesRead; + pageBodySize = drflac_ogg__get_page_body_size(&header); + if (pageBodySize > DRFLAC_OGG_MAX_PAGE_SIZE) { + continue; + } + if (header.serialNumber != oggbs->serialNumber) { + if (pageBodySize > 0 && !drflac_oggbs__seek_physical(oggbs, pageBodySize, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + continue; + } + if (drflac_oggbs__read_physical(oggbs, oggbs->pageData, pageBodySize) != pageBodySize) { + return DRFLAC_FALSE; + } + oggbs->pageDataSize = pageBodySize; +#ifndef DR_FLAC_NO_CRC + actualCRC32 = drflac_crc32_buffer(crc32, oggbs->pageData, oggbs->pageDataSize); + if (actualCRC32 != header.checksum) { + if (recoveryMethod == drflac_ogg_recover_on_crc_mismatch) { + continue; + } else { + drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch); + return DRFLAC_FALSE; + } + } +#else + (void)recoveryMethod; +#endif + oggbs->currentPageHeader = header; + oggbs->bytesRemainingInPage = pageBodySize; + return DRFLAC_TRUE; + } +} +#if 0 +static drflac_uint8 drflac_oggbs__get_current_segment_index(drflac_oggbs* oggbs, drflac_uint8* pBytesRemainingInSeg) +{ + drflac_uint32 bytesConsumedInPage = drflac_ogg__get_page_body_size(&oggbs->currentPageHeader) - oggbs->bytesRemainingInPage; + drflac_uint8 iSeg = 0; + drflac_uint32 iByte = 0; + while (iByte < bytesConsumedInPage) { + drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + if (iByte + segmentSize > bytesConsumedInPage) { + break; + } else { + iSeg += 1; + iByte += segmentSize; + } + } + *pBytesRemainingInSeg = oggbs->currentPageHeader.segmentTable[iSeg] - (drflac_uint8)(bytesConsumedInPage - iByte); + return iSeg; +} +static drflac_bool32 drflac_oggbs__seek_to_next_packet(drflac_oggbs* oggbs) +{ + for (;;) { + drflac_bool32 atEndOfPage = DRFLAC_FALSE; + drflac_uint8 bytesRemainingInSeg; + drflac_uint8 iFirstSeg = drflac_oggbs__get_current_segment_index(oggbs, &bytesRemainingInSeg); + drflac_uint32 bytesToEndOfPacketOrPage = bytesRemainingInSeg; + for (drflac_uint8 iSeg = iFirstSeg; iSeg < oggbs->currentPageHeader.segmentCount; ++iSeg) { + drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + if (segmentSize < 255) { + if (iSeg == oggbs->currentPageHeader.segmentCount-1) { + atEndOfPage = DRFLAC_TRUE; + } + break; + } + bytesToEndOfPacketOrPage += segmentSize; + } + drflac_oggbs__seek_physical(oggbs, bytesToEndOfPacketOrPage, drflac_seek_origin_current); + oggbs->bytesRemainingInPage -= bytesToEndOfPacketOrPage; + if (atEndOfPage) { + if (!drflac_oggbs__goto_next_page(oggbs)) { + return DRFLAC_FALSE; + } + if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { + return DRFLAC_TRUE; + } + } else { + return DRFLAC_TRUE; + } + } +} +static drflac_bool32 drflac_oggbs__seek_to_next_frame(drflac_oggbs* oggbs) +{ + return drflac_oggbs__seek_to_next_packet(oggbs); +} +#endif +static size_t drflac__on_read_ogg(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; + drflac_uint8* pRunningBufferOut = (drflac_uint8*)bufferOut; + size_t bytesRead = 0; + DRFLAC_ASSERT(oggbs != NULL); + DRFLAC_ASSERT(pRunningBufferOut != NULL); + while (bytesRead < bytesToRead) { + size_t bytesRemainingToRead = bytesToRead - bytesRead; + if (oggbs->bytesRemainingInPage >= bytesRemainingToRead) { + DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), bytesRemainingToRead); + bytesRead += bytesRemainingToRead; + oggbs->bytesRemainingInPage -= (drflac_uint32)bytesRemainingToRead; + break; + } + if (oggbs->bytesRemainingInPage > 0) { + DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), oggbs->bytesRemainingInPage); + bytesRead += oggbs->bytesRemainingInPage; + pRunningBufferOut += oggbs->bytesRemainingInPage; + oggbs->bytesRemainingInPage = 0; + } + DRFLAC_ASSERT(bytesRemainingToRead > 0); + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + break; + } + } + return bytesRead; +} +static drflac_bool32 drflac__on_seek_ogg(void* pUserData, int offset, drflac_seek_origin origin) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; + int bytesSeeked = 0; + DRFLAC_ASSERT(oggbs != NULL); + DRFLAC_ASSERT(offset >= 0); + if (origin == drflac_seek_origin_start) { + if (!drflac_oggbs__seek_physical(oggbs, (int)oggbs->firstBytePos, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { + return DRFLAC_FALSE; + } + return drflac__on_seek_ogg(pUserData, offset, drflac_seek_origin_current); + } + DRFLAC_ASSERT(origin == drflac_seek_origin_current); + while (bytesSeeked < offset) { + int bytesRemainingToSeek = offset - bytesSeeked; + DRFLAC_ASSERT(bytesRemainingToSeek >= 0); + if (oggbs->bytesRemainingInPage >= (size_t)bytesRemainingToSeek) { + bytesSeeked += bytesRemainingToSeek; + (void)bytesSeeked; + oggbs->bytesRemainingInPage -= bytesRemainingToSeek; + break; + } + if (oggbs->bytesRemainingInPage > 0) { + bytesSeeked += (int)oggbs->bytesRemainingInPage; + oggbs->bytesRemainingInPage = 0; + } + DRFLAC_ASSERT(bytesRemainingToSeek > 0); + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { + return DRFLAC_FALSE; + } + } + return DRFLAC_TRUE; +} +static drflac_bool32 drflac_ogg__seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + drflac_uint64 originalBytePos; + drflac_uint64 runningGranulePosition; + drflac_uint64 runningFrameBytePos; + drflac_uint64 runningPCMFrameCount; + DRFLAC_ASSERT(oggbs != NULL); + originalBytePos = oggbs->currentBytePos; + if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes)) { + return DRFLAC_FALSE; + } + oggbs->bytesRemainingInPage = 0; + runningGranulePosition = 0; + for (;;) { + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + drflac_oggbs__seek_physical(oggbs, originalBytePos, drflac_seek_origin_start); + return DRFLAC_FALSE; + } + runningFrameBytePos = oggbs->currentBytePos - drflac_ogg__get_page_header_size(&oggbs->currentPageHeader) - oggbs->pageDataSize; + if (oggbs->currentPageHeader.granulePosition >= pcmFrameIndex) { + break; + } + if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { + if (oggbs->currentPageHeader.segmentTable[0] >= 2) { + drflac_uint8 firstBytesInPage[2]; + firstBytesInPage[0] = oggbs->pageData[0]; + firstBytesInPage[1] = oggbs->pageData[1]; + if ((firstBytesInPage[0] == 0xFF) && (firstBytesInPage[1] & 0xFC) == 0xF8) { + runningGranulePosition = oggbs->currentPageHeader.granulePosition; + } + continue; + } + } + } + if (!drflac_oggbs__seek_physical(oggbs, runningFrameBytePos, drflac_seek_origin_start)) { + return DRFLAC_FALSE; + } + if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + return DRFLAC_FALSE; + } + runningPCMFrameCount = runningGranulePosition; + for (;;) { + drflac_uint64 firstPCMFrameInFLACFrame = 0; + drflac_uint64 lastPCMFrameInFLACFrame = 0; + drflac_uint64 pcmFrameCountInThisFrame; + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return DRFLAC_FALSE; + } + drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + pcmFrameCountInThisFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; + if (pcmFrameIndex == pFlac->totalPCMFrameCount && (runningPCMFrameCount + pcmFrameCountInThisFrame) == pFlac->totalPCMFrameCount) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + pFlac->currentPCMFrame = pcmFrameIndex; + pFlac->currentFLACFrame.pcmFramesRemaining = 0; + return DRFLAC_TRUE; + } else { + return DRFLAC_FALSE; + } + } + if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFrame)) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + drflac_uint64 pcmFramesToDecode = (size_t)(pcmFrameIndex - runningPCMFrameCount); + if (pcmFramesToDecode == 0) { + return DRFLAC_TRUE; + } + pFlac->currentPCMFrame = runningPCMFrameCount; + return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; + } else { + return DRFLAC_FALSE; + } + } + } else { + drflac_result result = drflac__seek_to_next_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + runningPCMFrameCount += pcmFrameCountInThisFrame; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + continue; + } else { + return DRFLAC_FALSE; + } + } + } + } +} +static drflac_bool32 drflac__init_private__ogg(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +{ + drflac_ogg_page_header header; + drflac_uint32 crc32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; + drflac_uint32 bytesRead = 0; + (void)relaxed; + pInit->container = drflac_container_ogg; + pInit->oggFirstBytePos = 0; + if (drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += bytesRead; + for (;;) { + int pageBodySize; + if ((header.headerType & 0x02) == 0) { + return DRFLAC_FALSE; + } + pageBodySize = drflac_ogg__get_page_body_size(&header); + if (pageBodySize == 51) { + drflac_uint32 bytesRemainingInPage = pageBodySize; + drflac_uint8 packetType; + if (onRead(pUserData, &packetType, 1) != 1) { + return DRFLAC_FALSE; + } + bytesRemainingInPage -= 1; + if (packetType == 0x7F) { + drflac_uint8 sig[4]; + if (onRead(pUserData, sig, 4) != 4) { + return DRFLAC_FALSE; + } + bytesRemainingInPage -= 4; + if (sig[0] == 'F' && sig[1] == 'L' && sig[2] == 'A' && sig[3] == 'C') { + drflac_uint8 mappingVersion[2]; + if (onRead(pUserData, mappingVersion, 2) != 2) { + return DRFLAC_FALSE; + } + if (mappingVersion[0] != 1) { + return DRFLAC_FALSE; + } + if (!onSeek(pUserData, 2, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + if (onRead(pUserData, sig, 4) != 4) { + return DRFLAC_FALSE; + } + if (sig[0] == 'f' && sig[1] == 'L' && sig[2] == 'a' && sig[3] == 'C') { + drflac_streaminfo streaminfo; + drflac_uint8 isLastBlock; + drflac_uint8 blockType; + drflac_uint32 blockSize; + if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return DRFLAC_FALSE; + } + if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + return DRFLAC_FALSE; + } + if (drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { + pInit->hasStreamInfoBlock = DRFLAC_TRUE; + pInit->sampleRate = streaminfo.sampleRate; + pInit->channels = streaminfo.channels; + pInit->bitsPerSample = streaminfo.bitsPerSample; + pInit->totalPCMFrameCount = streaminfo.totalPCMFrameCount; + pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; + pInit->hasMetadataBlocks = !isLastBlock; + if (onMeta) { + drflac_metadata metadata; + metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + metadata.pRawData = NULL; + metadata.rawDataSize = 0; + metadata.data.streaminfo = streaminfo; + onMeta(pUserDataMD, &metadata); + } + pInit->runningFilePos += pageBodySize; + pInit->oggFirstBytePos = pInit->runningFilePos - 79; + pInit->oggSerial = header.serialNumber; + pInit->oggBosHeader = header; + break; + } else { + return DRFLAC_FALSE; + } + } else { + return DRFLAC_FALSE; + } + } else { + if (!onSeek(pUserData, bytesRemainingInPage, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + } else { + if (!onSeek(pUserData, bytesRemainingInPage, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + } else { + if (!onSeek(pUserData, pageBodySize, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + } + pInit->runningFilePos += pageBodySize; + if (drflac_ogg__read_page_header(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += bytesRead; + } + pInit->hasMetadataBlocks = DRFLAC_TRUE; + return DRFLAC_TRUE; +} +#endif +static drflac_bool32 drflac__init_private(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD) +{ + drflac_bool32 relaxed; + drflac_uint8 id[4]; + if (pInit == NULL || onRead == NULL || onSeek == NULL) { + return DRFLAC_FALSE; + } + DRFLAC_ZERO_MEMORY(pInit, sizeof(*pInit)); + pInit->onRead = onRead; + pInit->onSeek = onSeek; + pInit->onMeta = onMeta; + pInit->container = container; + pInit->pUserData = pUserData; + pInit->pUserDataMD = pUserDataMD; + pInit->bs.onRead = onRead; + pInit->bs.onSeek = onSeek; + pInit->bs.pUserData = pUserData; + drflac__reset_cache(&pInit->bs); + relaxed = container != drflac_container_unknown; + for (;;) { + if (onRead(pUserData, id, 4) != 4) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += 4; + if (id[0] == 'I' && id[1] == 'D' && id[2] == '3') { + drflac_uint8 header[6]; + drflac_uint8 flags; + drflac_uint32 headerSize; + if (onRead(pUserData, header, 6) != 6) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += 6; + flags = header[1]; + DRFLAC_COPY_MEMORY(&headerSize, header+2, 4); + headerSize = drflac__unsynchsafe_32(drflac__be2host_32(headerSize)); + if (flags & 0x10) { + headerSize += 10; + } + if (!onSeek(pUserData, headerSize, drflac_seek_origin_current)) { + return DRFLAC_FALSE; + } + pInit->runningFilePos += headerSize; + } else { + break; + } + } + if (id[0] == 'f' && id[1] == 'L' && id[2] == 'a' && id[3] == 'C') { + return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#ifndef DR_FLAC_NO_OGG + if (id[0] == 'O' && id[1] == 'g' && id[2] == 'g' && id[3] == 'S') { + return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#endif + if (relaxed) { + if (container == drflac_container_native) { + return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#ifndef DR_FLAC_NO_OGG + if (container == drflac_container_ogg) { + return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + } +#endif + } + return DRFLAC_FALSE; +} +static void drflac__init_from_info(drflac* pFlac, const drflac_init_info* pInit) +{ + DRFLAC_ASSERT(pFlac != NULL); + DRFLAC_ASSERT(pInit != NULL); + DRFLAC_ZERO_MEMORY(pFlac, sizeof(*pFlac)); + pFlac->bs = pInit->bs; + pFlac->onMeta = pInit->onMeta; + pFlac->pUserDataMD = pInit->pUserDataMD; + pFlac->maxBlockSizeInPCMFrames = pInit->maxBlockSizeInPCMFrames; + pFlac->sampleRate = pInit->sampleRate; + pFlac->channels = (drflac_uint8)pInit->channels; + pFlac->bitsPerSample = (drflac_uint8)pInit->bitsPerSample; + pFlac->totalPCMFrameCount = pInit->totalPCMFrameCount; + pFlac->container = pInit->container; +} +static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac_init_info init; + drflac_uint32 allocationSize; + drflac_uint32 wholeSIMDVectorCountPerChannel; + drflac_uint32 decodedSamplesAllocationSize; +#ifndef DR_FLAC_NO_OGG + drflac_oggbs oggbs; +#endif + drflac_uint64 firstFramePos; + drflac_uint64 seektablePos; + drflac_uint32 seektableSize; + drflac_allocation_callbacks allocationCallbacks; + drflac* pFlac; + drflac__init_cpu_caps(); + if (!drflac__init_private(&init, onRead, onSeek, onMeta, container, pUserData, pUserDataMD)) { + return NULL; + } + if (pAllocationCallbacks != NULL) { + allocationCallbacks = *pAllocationCallbacks; + if (allocationCallbacks.onFree == NULL || (allocationCallbacks.onMalloc == NULL && allocationCallbacks.onRealloc == NULL)) { + return NULL; + } + } else { + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drflac__malloc_default; + allocationCallbacks.onRealloc = drflac__realloc_default; + allocationCallbacks.onFree = drflac__free_default; + } + allocationSize = sizeof(drflac); + if ((init.maxBlockSizeInPCMFrames % (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) == 0) { + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))); + } else { + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) + 1; + } + decodedSamplesAllocationSize = wholeSIMDVectorCountPerChannel * DRFLAC_MAX_SIMD_VECTOR_SIZE * init.channels; + allocationSize += decodedSamplesAllocationSize; + allocationSize += DRFLAC_MAX_SIMD_VECTOR_SIZE; +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) { + allocationSize += sizeof(drflac_oggbs); + } + DRFLAC_ZERO_MEMORY(&oggbs, sizeof(oggbs)); + if (init.container == drflac_container_ogg) { + oggbs.onRead = onRead; + oggbs.onSeek = onSeek; + oggbs.pUserData = pUserData; + oggbs.currentBytePos = init.oggFirstBytePos; + oggbs.firstBytePos = init.oggFirstBytePos; + oggbs.serialNumber = init.oggSerial; + oggbs.bosPageHeader = init.oggBosHeader; + oggbs.bytesRemainingInPage = 0; + } +#endif + firstFramePos = 42; + seektablePos = 0; + seektableSize = 0; + if (init.hasMetadataBlocks) { + drflac_read_proc onReadOverride = onRead; + drflac_seek_proc onSeekOverride = onSeek; + void* pUserDataOverride = pUserData; +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) { + onReadOverride = drflac__on_read_ogg; + onSeekOverride = drflac__on_seek_ogg; + pUserDataOverride = (void*)&oggbs; + } +#endif + if (!drflac__read_and_decode_metadata(onReadOverride, onSeekOverride, onMeta, pUserDataOverride, pUserDataMD, &firstFramePos, &seektablePos, &seektableSize, &allocationCallbacks)) { + return NULL; + } + allocationSize += seektableSize; + } + pFlac = (drflac*)drflac__malloc_from_callbacks(allocationSize, &allocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + drflac__init_from_info(pFlac, &init); + pFlac->allocationCallbacks = allocationCallbacks; + pFlac->pDecodedSamples = (drflac_int32*)drflac_align((size_t)pFlac->pExtraData, DRFLAC_MAX_SIMD_VECTOR_SIZE); +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) { + drflac_oggbs* pInternalOggbs = (drflac_oggbs*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize + seektableSize); + *pInternalOggbs = oggbs; + pFlac->bs.onRead = drflac__on_read_ogg; + pFlac->bs.onSeek = drflac__on_seek_ogg; + pFlac->bs.pUserData = (void*)pInternalOggbs; + pFlac->_oggbs = (void*)pInternalOggbs; + } +#endif + pFlac->firstFLACFramePosInBytes = firstFramePos; +#ifndef DR_FLAC_NO_OGG + if (init.container == drflac_container_ogg) + { + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + } + else +#endif + { + if (seektablePos != 0) { + pFlac->seekpointCount = seektableSize / sizeof(*pFlac->pSeekpoints); + pFlac->pSeekpoints = (drflac_seekpoint*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize); + DRFLAC_ASSERT(pFlac->bs.onSeek != NULL); + DRFLAC_ASSERT(pFlac->bs.onRead != NULL); + if (pFlac->bs.onSeek(pFlac->bs.pUserData, (int)seektablePos, drflac_seek_origin_start)) { + if (pFlac->bs.onRead(pFlac->bs.pUserData, pFlac->pSeekpoints, seektableSize) == seektableSize) { + drflac_uint32 iSeekpoint; + for (iSeekpoint = 0; iSeekpoint < pFlac->seekpointCount; ++iSeekpoint) { + pFlac->pSeekpoints[iSeekpoint].firstPCMFrame = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].firstPCMFrame); + pFlac->pSeekpoints[iSeekpoint].flacFrameOffset = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].flacFrameOffset); + pFlac->pSeekpoints[iSeekpoint].pcmFrameCount = drflac__be2host_16(pFlac->pSeekpoints[iSeekpoint].pcmFrameCount); + } + } else { + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + } + if (!pFlac->bs.onSeek(pFlac->bs.pUserData, (int)pFlac->firstFLACFramePosInBytes, drflac_seek_origin_start)) { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + } else { + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + } + } + } + if (!init.hasStreamInfoBlock) { + pFlac->currentFLACFrame.header = init.firstFrameHeader; + for (;;) { + drflac_result result = drflac__decode_flac_frame(pFlac); + if (result == DRFLAC_SUCCESS) { + break; + } else { + if (result == DRFLAC_CRC_MISMATCH) { + if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + continue; + } else { + drflac__free_from_callbacks(pFlac, &allocationCallbacks); + return NULL; + } + } + } + } + return pFlac; +} +#ifndef DR_FLAC_NO_STDIO +#include +#include +#include +static drflac_result drflac_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRFLAC_SUCCESS; + #ifdef EPERM + case EPERM: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRFLAC_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRFLAC_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRFLAC_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRFLAC_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRFLAC_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRFLAC_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRFLAC_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRFLAC_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRFLAC_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRFLAC_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRFLAC_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRFLAC_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRFLAC_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRFLAC_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRFLAC_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRFLAC_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRFLAC_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRFLAC_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRFLAC_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRFLAC_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRFLAC_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRFLAC_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRFLAC_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRFLAC_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRFLAC_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRFLAC_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRFLAC_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRFLAC_NOT_IMPLEMENTED; + #endif + #ifdef ENOTEMPTY + case ENOTEMPTY: return DRFLAC_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRFLAC_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRFLAC_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRFLAC_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRFLAC_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRFLAC_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRFLAC_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRFLAC_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRFLAC_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRFLAC_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRFLAC_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRFLAC_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRFLAC_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRFLAC_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRFLAC_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRFLAC_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRFLAC_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRFLAC_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRFLAC_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRFLAC_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRFLAC_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRFLAC_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRFLAC_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRFLAC_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRFLAC_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRFLAC_ERROR; + #endif + #ifdef EADV + case EADV: return DRFLAC_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRFLAC_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRFLAC_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRFLAC_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRFLAC_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRFLAC_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRFLAC_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRFLAC_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRFLAC_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRFLAC_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRFLAC_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRFLAC_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRFLAC_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRFLAC_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRFLAC_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRFLAC_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRFLAC_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRFLAC_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRFLAC_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRFLAC_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRFLAC_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRFLAC_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRFLAC_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRFLAC_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRFLAC_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRFLAC_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRFLAC_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRFLAC_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRFLAC_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRFLAC_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRFLAC_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRFLAC_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRFLAC_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRFLAC_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRFLAC_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRFLAC_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRFLAC_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRFLAC_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRFLAC_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRFLAC_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRFLAC_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRFLAC_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRFLAC_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRFLAC_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRFLAC_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRFLAC_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRFLAC_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRFLAC_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRFLAC_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRFLAC_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRFLAC_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRFLAC_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRFLAC_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRFLAC_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRFLAC_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRFLAC_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRFLAC_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRFLAC_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRFLAC_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRFLAC_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRFLAC_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRFLAC_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRFLAC_ERROR; + #endif + default: return DRFLAC_ERROR; + } +} +static drflac_result drflac_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + if (ppFile != NULL) { + *ppFile = NULL; + } + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRFLAC_INVALID_ARGS; + } +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drflac_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drflac_result result = drflac_result_from_errno(errno); + if (result == DRFLAC_SUCCESS) { + result = DRFLAC_ERROR; + } + return result; + } +#endif + return DRFLAC_SUCCESS; +} +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRFLAC_HAS_WFOPEN + #endif +#endif +static drflac_result drflac_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; + } + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRFLAC_INVALID_ARGS; + } +#if defined(DRFLAC_HAS_WFOPEN) + { + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drflac_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drflac_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + DRFLAC_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drflac_result_from_errno(errno); + } + pFilePathMB = (char*)drflac__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRFLAC_OUT_OF_MEMORY; + } + pFilePathTemp = pFilePath; + DRFLAC_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + *ppFile = fopen(pFilePathMB, pOpenModeMB); + drflac__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + if (*ppFile == NULL) { + return DRFLAC_ERROR; + } +#endif + return DRFLAC_SUCCESS; +} +static size_t drflac__on_read_stdio(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + return fread(bufferOut, 1, bytesToRead, (FILE*)pUserData); +} +static drflac_bool32 drflac__on_seek_stdio(void* pUserData, int offset, drflac_seek_origin origin) +{ + DRFLAC_ASSERT(offset >= 0); + return fseek((FILE*)pUserData, offset, (origin == drflac_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; +} +DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + return NULL; + } + pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return NULL; + } + return pFlac; +} +DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + return NULL; + } + pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return NULL; + } + return pFlac; +} +DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + return NULL; + } + pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return pFlac; + } + return pFlac; +} +DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + FILE* pFile; + if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + return NULL; + } + pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + fclose(pFile); + return pFlac; + } + return pFlac; +} +#endif +static size_t drflac__on_read_memory(void* pUserData, void* bufferOut, size_t bytesToRead) +{ + drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + size_t bytesRemaining; + DRFLAC_ASSERT(memoryStream != NULL); + DRFLAC_ASSERT(memoryStream->dataSize >= memoryStream->currentReadPos); + bytesRemaining = memoryStream->dataSize - memoryStream->currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + if (bytesToRead > 0) { + DRFLAC_COPY_MEMORY(bufferOut, memoryStream->data + memoryStream->currentReadPos, bytesToRead); + memoryStream->currentReadPos += bytesToRead; + } + return bytesToRead; +} +static drflac_bool32 drflac__on_seek_memory(void* pUserData, int offset, drflac_seek_origin origin) +{ + drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + DRFLAC_ASSERT(memoryStream != NULL); + DRFLAC_ASSERT(offset >= 0); + if (offset > (drflac_int64)memoryStream->dataSize) { + return DRFLAC_FALSE; + } + if (origin == drflac_seek_origin_current) { + if (memoryStream->currentReadPos + offset <= memoryStream->dataSize) { + memoryStream->currentReadPos += offset; + } else { + return DRFLAC_FALSE; + } + } else { + if ((drflac_uint32)offset <= memoryStream->dataSize) { + memoryStream->currentReadPos = offset; + } else { + return DRFLAC_FALSE; + } + } + return DRFLAC_TRUE; +} +DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac__memory_stream memoryStream; + drflac* pFlac; + memoryStream.data = (const drflac_uint8*)pData; + memoryStream.dataSize = dataSize; + memoryStream.currentReadPos = 0; + pFlac = drflac_open(drflac__on_read_memory, drflac__on_seek_memory, &memoryStream, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + pFlac->memoryStream = memoryStream; +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + oggbs->pUserData = &pFlac->memoryStream; + } + else +#endif + { + pFlac->bs.pUserData = &pFlac->memoryStream; + } + return pFlac; +} +DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac__memory_stream memoryStream; + drflac* pFlac; + memoryStream.data = (const drflac_uint8*)pData; + memoryStream.dataSize = dataSize; + memoryStream.currentReadPos = 0; + pFlac = drflac_open_with_metadata_private(drflac__on_read_memory, drflac__on_seek_memory, onMeta, drflac_container_unknown, &memoryStream, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + pFlac->memoryStream = memoryStream; +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + oggbs->pUserData = &pFlac->memoryStream; + } + else +#endif + { + pFlac->bs.pUserData = &pFlac->memoryStream; + } + return pFlac; +} +DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, NULL, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, NULL, container, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onMeta, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + return drflac_open_with_metadata_private(onRead, onSeek, onMeta, container, pUserData, pUserData, pAllocationCallbacks); +} +DRFLAC_API void drflac_close(drflac* pFlac) +{ + if (pFlac == NULL) { + return; + } +#ifndef DR_FLAC_NO_STDIO + if (pFlac->bs.onRead == drflac__on_read_stdio) { + fclose((FILE*)pFlac->bs.pUserData); + } +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) { + drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + DRFLAC_ASSERT(pFlac->bs.onRead == drflac__on_read_ogg); + if (oggbs->onRead == drflac__on_read_stdio) { + fclose((FILE*)oggbs->pUserData); + } + } +#endif +#endif + drflac__free_from_callbacks(pFlac, &pFlac->allocationCallbacks); +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + pOutputSamples[i*8+0] = (drflac_int32)left0; + pOutputSamples[i*8+1] = (drflac_int32)right0; + pOutputSamples[i*8+2] = (drflac_int32)left1; + pOutputSamples[i*8+3] = (drflac_int32)right1; + pOutputSamples[i*8+4] = (drflac_int32)left2; + pOutputSamples[i*8+5] = (drflac_int32)right2; + pOutputSamples[i*8+6] = (drflac_int32)left3; + pOutputSamples[i*8+7] = (drflac_int32)right3; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + pOutputSamples[i*8+0] = (drflac_int32)left0; + pOutputSamples[i*8+1] = (drflac_int32)right0; + pOutputSamples[i*8+2] = (drflac_int32)left1; + pOutputSamples[i*8+3] = (drflac_int32)right1; + pOutputSamples[i*8+4] = (drflac_int32)left2; + pOutputSamples[i*8+5] = (drflac_int32)right2; + pOutputSamples[i*8+6] = (drflac_int32)left3; + pOutputSamples[i*8+7] = (drflac_int32)right3; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (drflac_int32)left; + pOutputSamples[i*2+1] = (drflac_int32)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + pOutputSamples[i*8+0] = (drflac_int32)temp0L; + pOutputSamples[i*8+1] = (drflac_int32)temp0R; + pOutputSamples[i*8+2] = (drflac_int32)temp1L; + pOutputSamples[i*8+3] = (drflac_int32)temp1R; + pOutputSamples[i*8+4] = (drflac_int32)temp2L; + pOutputSamples[i*8+5] = (drflac_int32)temp2R; + pOutputSamples[i*8+6] = (drflac_int32)temp3L; + pOutputSamples[i*8+7] = (drflac_int32)temp3R; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); + temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); + temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); + temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); + temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); + temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); + temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); + temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); + pOutputSamples[i*8+0] = (drflac_int32)temp0L; + pOutputSamples[i*8+1] = (drflac_int32)temp0R; + pOutputSamples[i*8+2] = (drflac_int32)temp1L; + pOutputSamples[i*8+3] = (drflac_int32)temp1R; + pOutputSamples[i*8+4] = (drflac_int32)temp2L; + pOutputSamples[i*8+5] = (drflac_int32)temp2R; + pOutputSamples[i*8+6] = (drflac_int32)temp3L; + pOutputSamples[i*8+7] = (drflac_int32)temp3R; + } + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + left = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + right = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + left = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + right = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + } + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_int32 shift = unusedBitsPerSample; + int32x4_t wbpsShift0_4; + int32x4_t wbpsShift1_4; + uint32x4_t one4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + one4 = vdupq_n_u32(1); + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); + left = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + } + } else { + int32x4_t shift4; + shift -= 1; + shift4 = vdupq_n_s32(shift); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); + left = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + } + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)); + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + pOutputSamples[i*8+0] = (drflac_int32)tempL0; + pOutputSamples[i*8+1] = (drflac_int32)tempR0; + pOutputSamples[i*8+2] = (drflac_int32)tempL1; + pOutputSamples[i*8+3] = (drflac_int32)tempR1; + pOutputSamples[i*8+4] = (drflac_int32)tempL2; + pOutputSamples[i*8+5] = (drflac_int32)tempR2; + pOutputSamples[i*8+6] = (drflac_int32)tempL3; + pOutputSamples[i*8+7] = (drflac_int32)tempR3; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 0), _mm_unpacklo_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift4_0 = vdupq_n_s32(shift0); + int32x4_t shift4_1 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + int32x4_t left; + int32x4_t right; + left = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift4_0)); + right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift4_1)); + drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + framesRead = 0; + while (framesToRead > 0) { + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_s32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_s32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_s32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_s32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + pBufferOut[(i*channelCount)+j] = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + } + } + } + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + } + } + return framesRead; +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + left0 >>= 16; + left1 >>= 16; + left2 >>= 16; + left3 >>= 16; + right0 >>= 16; + right1 >>= 16; + right2 >>= 16; + right3 >>= 16; + pOutputSamples[i*8+0] = (drflac_int16)left0; + pOutputSamples[i*8+1] = (drflac_int16)right0; + pOutputSamples[i*8+2] = (drflac_int16)left1; + pOutputSamples[i*8+3] = (drflac_int16)right1; + pOutputSamples[i*8+4] = (drflac_int16)left2; + pOutputSamples[i*8+5] = (drflac_int16)right2; + pOutputSamples[i*8+6] = (drflac_int16)left3; + pOutputSamples[i*8+7] = (drflac_int16)right3; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + left = vshrq_n_u32(left, 16); + right = vshrq_n_u32(right, 16); + drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s16__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + left0 >>= 16; + left1 >>= 16; + left2 >>= 16; + left3 >>= 16; + right0 >>= 16; + right1 >>= 16; + right2 >>= 16; + right3 >>= 16; + pOutputSamples[i*8+0] = (drflac_int16)left0; + pOutputSamples[i*8+1] = (drflac_int16)right0; + pOutputSamples[i*8+2] = (drflac_int16)left1; + pOutputSamples[i*8+3] = (drflac_int16)right1; + pOutputSamples[i*8+4] = (drflac_int16)left2; + pOutputSamples[i*8+5] = (drflac_int16)right2; + pOutputSamples[i*8+6] = (drflac_int16)left3; + pOutputSamples[i*8+7] = (drflac_int16)right3; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4; + int32x4_t shift1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + left = vshrq_n_u32(left, 16); + right = vshrq_n_u32(right, 16); + drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + left >>= 16; + right >>= 16; + pOutputSamples[i*2+0] = (drflac_int16)left; + pOutputSamples[i*2+1] = (drflac_int16)right; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s16__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + temp0L >>= 16; + temp1L >>= 16; + temp2L >>= 16; + temp3L >>= 16; + temp0R >>= 16; + temp1R >>= 16; + temp2R >>= 16; + temp3R >>= 16; + pOutputSamples[i*8+0] = (drflac_int16)temp0L; + pOutputSamples[i*8+1] = (drflac_int16)temp0R; + pOutputSamples[i*8+2] = (drflac_int16)temp1L; + pOutputSamples[i*8+3] = (drflac_int16)temp1R; + pOutputSamples[i*8+4] = (drflac_int16)temp2L; + pOutputSamples[i*8+5] = (drflac_int16)temp2R; + pOutputSamples[i*8+6] = (drflac_int16)temp3L; + pOutputSamples[i*8+7] = (drflac_int16)temp3R; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + temp0L = ((drflac_int32)(mid0 + side0) >> 1); + temp1L = ((drflac_int32)(mid1 + side1) >> 1); + temp2L = ((drflac_int32)(mid2 + side2) >> 1); + temp3L = ((drflac_int32)(mid3 + side3) >> 1); + temp0R = ((drflac_int32)(mid0 - side0) >> 1); + temp1R = ((drflac_int32)(mid1 - side1) >> 1); + temp2R = ((drflac_int32)(mid2 - side2) >> 1); + temp3R = ((drflac_int32)(mid3 - side3) >> 1); + temp0L >>= 16; + temp1L >>= 16; + temp2L >>= 16; + temp3L >>= 16; + temp0R >>= 16; + temp1R >>= 16; + temp2R >>= 16; + temp3R >>= 16; + pOutputSamples[i*8+0] = (drflac_int16)temp0L; + pOutputSamples[i*8+1] = (drflac_int16)temp0R; + pOutputSamples[i*8+2] = (drflac_int16)temp1L; + pOutputSamples[i*8+3] = (drflac_int16)temp1R; + pOutputSamples[i*8+4] = (drflac_int16)temp2L; + pOutputSamples[i*8+5] = (drflac_int16)temp2R; + pOutputSamples[i*8+6] = (drflac_int16)temp3L; + pOutputSamples[i*8+7] = (drflac_int16)temp3R; + } + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + left = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + right = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i left; + __m128i right; + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + left = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + right = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + } + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + int32x4_t wbpsShift0_4; + int32x4_t wbpsShift1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + left = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + } + } else { + int32x4_t shift4; + shift -= 1; + shift4 = vdupq_n_s32(shift); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t left; + int32x4_t right; + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbpsShift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbpsShift1_4); + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + left = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + } + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s16__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) >> 16); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + tempL0 >>= 16; + tempL1 >>= 16; + tempL2 >>= 16; + tempL3 >>= 16; + tempR0 >>= 16; + tempR1 >>= 16; + tempR2 >>= 16; + tempR3 >>= 16; + pOutputSamples[i*8+0] = (drflac_int16)tempL0; + pOutputSamples[i*8+1] = (drflac_int16)tempR0; + pOutputSamples[i*8+2] = (drflac_int16)tempL1; + pOutputSamples[i*8+3] = (drflac_int16)tempR1; + pOutputSamples[i*8+4] = (drflac_int16)tempL2; + pOutputSamples[i*8+5] = (drflac_int16)tempR2; + pOutputSamples[i*8+6] = (drflac_int16)tempL3; + pOutputSamples[i*8+7] = (drflac_int16)tempR3; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + left = _mm_srai_epi32(left, 16); + right = _mm_srai_epi32(right, 16); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + int32x4_t shift0_4 = vdupq_n_s32(shift0); + int32x4_t shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + int32x4_t left; + int32x4_t right; + left = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4)); + right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); + left = vshrq_n_s32(left, 16); + right = vshrq_n_s32(right, 16); + drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_s16__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_s16__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + framesRead = 0; + while (framesToRead > 0) { + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_s16__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_s16__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_s16__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_s16__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (drflac_int16)(sampleS32 >> 16); + } + } + } + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + } + } + return framesRead; +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + float factor = 1 / 2147483648.0; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + drflac_uint32 right0 = left0 - side0; + drflac_uint32 right1 = left1 - side1; + drflac_uint32 right2 = left2 - side2; + drflac_uint32 right3 = left3 - side3; + pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (drflac_int32)left * factor; + pOutputSamples[i*2+1] = (drflac_int32)right * factor; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + __m128 factor; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + factor = _mm_set1_ps(1.0f / 8388608.0f); + for (i = 0; i < frameCount4; ++i) { + __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i right = _mm_sub_epi32(left, side); + __m128 leftf = _mm_mul_ps(_mm_cvtepi32_ps(left), factor); + __m128 rightf = _mm_mul_ps(_mm_cvtepi32_ps(right), factor); + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float32x4_t factor4; + int32x4_t shift0_4; + int32x4_t shift1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + factor4 = vdupq_n_f32(1.0f / 8388608.0f); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t left; + uint32x4_t side; + uint32x4_t right; + float32x4_t leftf; + float32x4_t rightf; + left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + right = vsubq_u32(left, side); + leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 left = pInputSamples0U32[i] << shift0; + drflac_uint32 side = pInputSamples1U32[i] << shift1; + drflac_uint32 right = left - side; + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_f32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + for (i = 0; i < frameCount; ++i) { + drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + float factor = 1 / 2147483648.0; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + drflac_uint32 left0 = right0 + side0; + drflac_uint32 left1 = right1 + side1; + drflac_uint32 left2 = right2 + side2; + drflac_uint32 left3 = right3 + side3; + pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (drflac_int32)left * factor; + pOutputSamples[i*2+1] = (drflac_int32)right * factor; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + __m128 factor; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + factor = _mm_set1_ps(1.0f / 8388608.0f); + for (i = 0; i < frameCount4; ++i) { + __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + __m128i left = _mm_add_epi32(right, side); + __m128 leftf = _mm_mul_ps(_mm_cvtepi32_ps(left), factor); + __m128 rightf = _mm_mul_ps(_mm_cvtepi32_ps(right), factor); + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float32x4_t factor4; + int32x4_t shift0_4; + int32x4_t shift1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + factor4 = vdupq_n_f32(1.0f / 8388608.0f); + shift0_4 = vdupq_n_s32(shift0); + shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t side; + uint32x4_t right; + uint32x4_t left; + float32x4_t leftf; + float32x4_t rightf; + side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); + right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); + left = vaddq_u32(right, side); + leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 side = pInputSamples0U32[i] << shift0; + drflac_uint32 right = pInputSamples1U32[i] << shift1; + drflac_uint32 left = right + side; + pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_f32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (float)((((drflac_int32)(mid + side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((((drflac_int32)(mid - side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample; + float factor = 1 / 2147483648.0; + if (shift > 0) { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + temp0L = (mid0 + side0) << shift; + temp1L = (mid1 + side1) << shift; + temp2L = (mid2 + side2) << shift; + temp3L = (mid3 + side3) << shift; + temp0R = (mid0 - side0) << shift; + temp1R = (mid1 - side1) << shift; + temp2R = (mid2 - side2) << shift; + temp3R = (mid3 - side3) << shift; + pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; + pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; + pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; + pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; + pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; + pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; + pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; + pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + } + } else { + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 temp0L; + drflac_uint32 temp1L; + drflac_uint32 temp2L; + drflac_uint32 temp3L; + drflac_uint32 temp0R; + drflac_uint32 temp1R; + drflac_uint32 temp2R; + drflac_uint32 temp3R; + drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid0 = (mid0 << 1) | (side0 & 0x01); + mid1 = (mid1 << 1) | (side1 & 0x01); + mid2 = (mid2 << 1) | (side2 & 0x01); + mid3 = (mid3 << 1) | (side3 & 0x01); + temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); + temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); + temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); + temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); + temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); + temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); + temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); + temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); + pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; + pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; + pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; + pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; + pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; + pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; + pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; + pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + } + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) * factor; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample - 8; + float factor; + __m128 factor128; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + factor = 1.0f / 8388608.0f; + factor128 = _mm_set1_ps(factor); + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i tempL; + __m128i tempR; + __m128 leftf; + __m128 rightf; + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + tempL = _mm_srai_epi32(_mm_add_epi32(mid, side), 1); + tempR = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); + leftf = _mm_mul_ps(_mm_cvtepi32_ps(tempL), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(tempR), factor128); + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + } + } else { + shift -= 1; + for (i = 0; i < frameCount4; ++i) { + __m128i mid; + __m128i side; + __m128i tempL; + __m128i tempR; + __m128 leftf; + __m128 rightf; + mid = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + mid = _mm_or_si128(_mm_slli_epi32(mid, 1), _mm_and_si128(side, _mm_set1_epi32(0x01))); + tempL = _mm_slli_epi32(_mm_add_epi32(mid, side), shift); + tempR = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); + leftf = _mm_mul_ps(_mm_cvtepi32_ps(tempL), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(tempR), factor128); + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + } + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift = unusedBitsPerSample - 8; + float factor; + float32x4_t factor4; + int32x4_t shift4; + int32x4_t wbps0_4; + int32x4_t wbps1_4; + DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + factor = 1.0f / 8388608.0f; + factor4 = vdupq_n_f32(factor); + wbps0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + wbps1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + if (shift == 0) { + for (i = 0; i < frameCount4; ++i) { + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + uint32x4_t mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbps0_4); + uint32x4_t side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbps1_4); + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + lefti = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); + righti = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + } + } else { + shift -= 1; + shift4 = vdupq_n_s32(shift); + for (i = 0; i < frameCount4; ++i) { + uint32x4_t mid; + uint32x4_t side; + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + mid = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), wbps0_4); + side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), wbps1_4); + mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, vdupq_n_u32(1))); + lefti = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); + righti = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + mid = (mid << 1) | (side & 0x01); + pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + } + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_f32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +#if 0 +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + for (drflac_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (float)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) / 2147483648.0); + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + float factor = 1 / 2147483648.0; + for (i = 0; i < frameCount4; ++i) { + drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + pOutputSamples[i*8+0] = (drflac_int32)tempL0 * factor; + pOutputSamples[i*8+1] = (drflac_int32)tempR0 * factor; + pOutputSamples[i*8+2] = (drflac_int32)tempL1 * factor; + pOutputSamples[i*8+3] = (drflac_int32)tempR1 * factor; + pOutputSamples[i*8+4] = (drflac_int32)tempL2 * factor; + pOutputSamples[i*8+5] = (drflac_int32)tempR2 * factor; + pOutputSamples[i*8+6] = (drflac_int32)tempL3 * factor; + pOutputSamples[i*8+7] = (drflac_int32)tempR3 * factor; + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} +#if defined(DRFLAC_SUPPORT_SSE2) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float factor = 1.0f / 8388608.0f; + __m128 factor128 = _mm_set1_ps(factor); + for (i = 0; i < frameCount4; ++i) { + __m128i lefti; + __m128i righti; + __m128 leftf; + __m128 rightf; + lefti = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); + righti = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); + leftf = _mm_mul_ps(_mm_cvtepi32_ps(lefti), factor128); + rightf = _mm_mul_ps(_mm_cvtepi32_ps(righti), factor128); + _mm_storeu_ps(pOutputSamples + i*8 + 0, _mm_unpacklo_ps(leftf, rightf)); + _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} +#endif +#if defined(DRFLAC_SUPPORT_NEON) +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ + drflac_uint64 i; + drflac_uint64 frameCount4 = frameCount >> 2; + const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; + const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; + drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + float factor = 1.0f / 8388608.0f; + float32x4_t factor4 = vdupq_n_f32(factor); + int32x4_t shift0_4 = vdupq_n_s32(shift0); + int32x4_t shift1_4 = vdupq_n_s32(shift1); + for (i = 0; i < frameCount4; ++i) { + int32x4_t lefti; + int32x4_t righti; + float32x4_t leftf; + float32x4_t rightf; + lefti = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4)); + righti = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); + leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); + rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); + drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + } + for (i = (frameCount4 << 2); i < frameCount; ++i) { + pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + } +} +#endif +static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +{ +#if defined(DRFLAC_SUPPORT_SSE2) + if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#elif defined(DRFLAC_SUPPORT_NEON) + if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + drflac_read_pcm_frames_f32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + } else +#endif + { +#if 0 + drflac_read_pcm_frames_f32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#else + drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#endif + } +} +DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut) +{ + drflac_uint64 framesRead; + drflac_uint32 unusedBitsPerSample; + if (pFlac == NULL || framesToRead == 0) { + return 0; + } + if (pBufferOut == NULL) { + return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + } + DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + unusedBitsPerSample = 32 - pFlac->bitsPerSample; + framesRead = 0; + while (framesToRead > 0) { + if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { + if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + break; + } + } else { + unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + drflac_uint64 frameCountThisIteration = framesToRead; + if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { + frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; + } + if (channelCount == 2) { + const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + switch (pFlac->currentFLACFrame.header.channelAssignment) + { + case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + { + drflac_read_pcm_frames_f32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + { + drflac_read_pcm_frames_f32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + { + drflac_read_pcm_frames_f32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + default: + { + drflac_read_pcm_frames_f32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + } break; + } + } else { + drflac_uint64 i; + for (i = 0; i < frameCountThisIteration; ++i) { + unsigned int j; + for (j = 0; j < channelCount; ++j) { + drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (float)(sampleS32 / 2147483648.0); + } + } + } + framesRead += frameCountThisIteration; + pBufferOut += frameCountThisIteration * channelCount; + framesToRead -= frameCountThisIteration; + pFlac->currentPCMFrame += frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (unsigned int)frameCountThisIteration; + } + } + return framesRead; +} +DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +{ + if (pFlac == NULL) { + return DRFLAC_FALSE; + } + if (pFlac->currentPCMFrame == pcmFrameIndex) { + return DRFLAC_TRUE; + } + if (pFlac->firstFLACFramePosInBytes == 0) { + return DRFLAC_FALSE; + } + if (pcmFrameIndex == 0) { + pFlac->currentPCMFrame = 0; + return drflac__seek_to_first_frame(pFlac); + } else { + drflac_bool32 wasSuccessful = DRFLAC_FALSE; + drflac_uint64 originalPCMFrame = pFlac->currentPCMFrame; + if (pcmFrameIndex > pFlac->totalPCMFrameCount) { + pcmFrameIndex = pFlac->totalPCMFrameCount; + } + if (pcmFrameIndex > pFlac->currentPCMFrame) { + drflac_uint32 offset = (drflac_uint32)(pcmFrameIndex - pFlac->currentPCMFrame); + if (pFlac->currentFLACFrame.pcmFramesRemaining > offset) { + pFlac->currentFLACFrame.pcmFramesRemaining -= offset; + pFlac->currentPCMFrame = pcmFrameIndex; + return DRFLAC_TRUE; + } + } else { + drflac_uint32 offsetAbs = (drflac_uint32)(pFlac->currentPCMFrame - pcmFrameIndex); + drflac_uint32 currentFLACFramePCMFrameCount = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + drflac_uint32 currentFLACFramePCMFramesConsumed = currentFLACFramePCMFrameCount - pFlac->currentFLACFrame.pcmFramesRemaining; + if (currentFLACFramePCMFramesConsumed > offsetAbs) { + pFlac->currentFLACFrame.pcmFramesRemaining += offsetAbs; + pFlac->currentPCMFrame = pcmFrameIndex; + return DRFLAC_TRUE; + } + } +#ifndef DR_FLAC_NO_OGG + if (pFlac->container == drflac_container_ogg) + { + wasSuccessful = drflac_ogg__seek_to_pcm_frame(pFlac, pcmFrameIndex); + } + else +#endif + { + if (!pFlac->_noSeekTableSeek) { + wasSuccessful = drflac__seek_to_pcm_frame__seek_table(pFlac, pcmFrameIndex); + } +#if !defined(DR_FLAC_NO_CRC) + if (!wasSuccessful && !pFlac->_noBinarySearchSeek && pFlac->totalPCMFrameCount > 0) { + wasSuccessful = drflac__seek_to_pcm_frame__binary_search(pFlac, pcmFrameIndex); + } +#endif + if (!wasSuccessful && !pFlac->_noBruteForceSeek) { + wasSuccessful = drflac__seek_to_pcm_frame__brute_force(pFlac, pcmFrameIndex); + } + } + if (wasSuccessful) { + pFlac->currentPCMFrame = pcmFrameIndex; + } else { + if (drflac_seek_to_pcm_frame(pFlac, originalPCMFrame) == DRFLAC_FALSE) { + drflac_seek_to_pcm_frame(pFlac, 0); + } + } + return wasSuccessful; + } +} +#if defined(SIZE_MAX) + #define DRFLAC_SIZE_MAX SIZE_MAX +#else + #if defined(DRFLAC_64BIT) + #define DRFLAC_SIZE_MAX ((drflac_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRFLAC_SIZE_MAX 0xFFFFFFFF + #endif +#endif +#define DRFLAC_DEFINE_FULL_READ_AND_CLOSE(extension, type) \ +static type* drflac__full_read_and_close_ ## extension (drflac* pFlac, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut)\ +{ \ + type* pSampleData = NULL; \ + drflac_uint64 totalPCMFrameCount; \ + \ + DRFLAC_ASSERT(pFlac != NULL); \ + \ + totalPCMFrameCount = pFlac->totalPCMFrameCount; \ + \ + if (totalPCMFrameCount == 0) { \ + type buffer[4096]; \ + drflac_uint64 pcmFramesRead; \ + size_t sampleDataBufferSize = sizeof(buffer); \ + \ + pSampleData = (type*)drflac__malloc_from_callbacks(sampleDataBufferSize, &pFlac->allocationCallbacks); \ + if (pSampleData == NULL) { \ + goto on_error; \ + } \ + \ + while ((pcmFramesRead = (drflac_uint64)drflac_read_pcm_frames_##extension(pFlac, sizeof(buffer)/sizeof(buffer[0])/pFlac->channels, buffer)) > 0) { \ + if (((totalPCMFrameCount + pcmFramesRead) * pFlac->channels * sizeof(type)) > sampleDataBufferSize) { \ + type* pNewSampleData; \ + size_t newSampleDataBufferSize; \ + \ + newSampleDataBufferSize = sampleDataBufferSize * 2; \ + pNewSampleData = (type*)drflac__realloc_from_callbacks(pSampleData, newSampleDataBufferSize, sampleDataBufferSize, &pFlac->allocationCallbacks); \ + if (pNewSampleData == NULL) { \ + drflac__free_from_callbacks(pSampleData, &pFlac->allocationCallbacks); \ + goto on_error; \ + } \ + \ + sampleDataBufferSize = newSampleDataBufferSize; \ + pSampleData = pNewSampleData; \ + } \ + \ + DRFLAC_COPY_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), buffer, (size_t)(pcmFramesRead*pFlac->channels*sizeof(type))); \ + totalPCMFrameCount += pcmFramesRead; \ + } \ + \ + \ + DRFLAC_ZERO_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), (size_t)(sampleDataBufferSize - totalPCMFrameCount*pFlac->channels*sizeof(type))); \ + } else { \ + drflac_uint64 dataSize = totalPCMFrameCount*pFlac->channels*sizeof(type); \ + if (dataSize > DRFLAC_SIZE_MAX) { \ + goto on_error; \ + } \ + \ + pSampleData = (type*)drflac__malloc_from_callbacks((size_t)dataSize, &pFlac->allocationCallbacks); \ + if (pSampleData == NULL) { \ + goto on_error; \ + } \ + \ + totalPCMFrameCount = drflac_read_pcm_frames_##extension(pFlac, pFlac->totalPCMFrameCount, pSampleData); \ + } \ + \ + if (sampleRateOut) *sampleRateOut = pFlac->sampleRate; \ + if (channelsOut) *channelsOut = pFlac->channels; \ + if (totalPCMFrameCountOut) *totalPCMFrameCountOut = totalPCMFrameCount; \ + \ + drflac_close(pFlac); \ + return pSampleData; \ + \ +on_error: \ + drflac_close(pFlac); \ + return NULL; \ +} +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s32, drflac_int32) +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s16, drflac_int16) +DRFLAC_DEFINE_FULL_READ_AND_CLOSE(f32, float) +DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_s32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} +DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_s16(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} +DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (channelsOut) { + *channelsOut = 0; + } + if (sampleRateOut) { + *sampleRateOut = 0; + } + if (totalPCMFrameCountOut) { + *totalPCMFrameCountOut = 0; + } + pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_f32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); +} +#ifndef DR_FLAC_NO_STDIO +DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); +} +DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); +} +DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + pFlac = drflac_open_file(filename, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); +} +#endif +DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); +} +DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); +} +DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + drflac* pFlac; + if (sampleRate) { + *sampleRate = 0; + } + if (channels) { + *channels = 0; + } + if (totalPCMFrameCount) { + *totalPCMFrameCount = 0; + } + pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + if (pFlac == NULL) { + return NULL; + } + return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); +} +DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drflac__free_from_callbacks(p, pAllocationCallbacks); + } else { + drflac__free_default(p, NULL); + } +} +DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments) +{ + if (pIter == NULL) { + return; + } + pIter->countRemaining = commentCount; + pIter->pRunningData = (const char*)pComments; +} +DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut) +{ + drflac_int32 length; + const char* pComment; + if (pCommentLengthOut) { + *pCommentLengthOut = 0; + } + if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { + return NULL; + } + length = drflac__le2host_32(*(const drflac_uint32*)pIter->pRunningData); + pIter->pRunningData += 4; + pComment = pIter->pRunningData; + pIter->pRunningData += length; + pIter->countRemaining -= 1; + if (pCommentLengthOut) { + *pCommentLengthOut = length; + } + return pComment; +} +DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData) +{ + if (pIter == NULL) { + return; + } + pIter->countRemaining = trackCount; + pIter->pRunningData = (const char*)pTrackData; +} +DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack) +{ + drflac_cuesheet_track cuesheetTrack; + const char* pRunningData; + drflac_uint64 offsetHi; + drflac_uint64 offsetLo; + if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { + return DRFLAC_FALSE; + } + pRunningData = pIter->pRunningData; + offsetHi = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + offsetLo = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + cuesheetTrack.offset = offsetLo | (offsetHi << 32); + cuesheetTrack.trackNumber = pRunningData[0]; pRunningData += 1; + DRFLAC_COPY_MEMORY(cuesheetTrack.ISRC, pRunningData, sizeof(cuesheetTrack.ISRC)); pRunningData += 12; + cuesheetTrack.isAudio = (pRunningData[0] & 0x80) != 0; + cuesheetTrack.preEmphasis = (pRunningData[0] & 0x40) != 0; pRunningData += 14; + cuesheetTrack.indexCount = pRunningData[0]; pRunningData += 1; + cuesheetTrack.pIndexPoints = (const drflac_cuesheet_track_index*)pRunningData; pRunningData += cuesheetTrack.indexCount * sizeof(drflac_cuesheet_track_index); + pIter->pRunningData = pRunningData; + pIter->countRemaining -= 1; + if (pCuesheetTrack) { + *pCuesheetTrack = cuesheetTrack; + } + return DRFLAC_TRUE; +} +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop +#endif +#endif +/* dr_flac_c end */ +#endif /* DRFLAC_IMPLEMENTATION */ +#endif /* MA_NO_FLAC */ + +#if !defined(MA_NO_MP3) && !defined(MA_NO_DECODING) +#if !defined(DR_MP3_IMPLEMENTATION) && !defined(DRMP3_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ +/* dr_mp3_c begin */ +#ifndef dr_mp3_c +#define dr_mp3_c +#include +#include +#include +DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision) +{ + if (pMajor) { + *pMajor = DRMP3_VERSION_MAJOR; + } + if (pMinor) { + *pMinor = DRMP3_VERSION_MINOR; + } + if (pRevision) { + *pRevision = DRMP3_VERSION_REVISION; + } +} +DRMP3_API const char* drmp3_version_string(void) +{ + return DRMP3_VERSION_STRING; +} +#if defined(__TINYC__) +#define DR_MP3_NO_SIMD +#endif +#define DRMP3_OFFSET_PTR(p, offset) ((void*)((drmp3_uint8*)(p) + (offset))) +#define DRMP3_MAX_FREE_FORMAT_FRAME_SIZE 2304 +#ifndef DRMP3_MAX_FRAME_SYNC_MATCHES +#define DRMP3_MAX_FRAME_SYNC_MATCHES 10 +#endif +#define DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES DRMP3_MAX_FREE_FORMAT_FRAME_SIZE +#define DRMP3_MAX_BITRESERVOIR_BYTES 511 +#define DRMP3_SHORT_BLOCK_TYPE 2 +#define DRMP3_STOP_BLOCK_TYPE 3 +#define DRMP3_MODE_MONO 3 +#define DRMP3_MODE_JOINT_STEREO 1 +#define DRMP3_HDR_SIZE 4 +#define DRMP3_HDR_IS_MONO(h) (((h[3]) & 0xC0) == 0xC0) +#define DRMP3_HDR_IS_MS_STEREO(h) (((h[3]) & 0xE0) == 0x60) +#define DRMP3_HDR_IS_FREE_FORMAT(h) (((h[2]) & 0xF0) == 0) +#define DRMP3_HDR_IS_CRC(h) (!((h[1]) & 1)) +#define DRMP3_HDR_TEST_PADDING(h) ((h[2]) & 0x2) +#define DRMP3_HDR_TEST_MPEG1(h) ((h[1]) & 0x8) +#define DRMP3_HDR_TEST_NOT_MPEG25(h) ((h[1]) & 0x10) +#define DRMP3_HDR_TEST_I_STEREO(h) ((h[3]) & 0x10) +#define DRMP3_HDR_TEST_MS_STEREO(h) ((h[3]) & 0x20) +#define DRMP3_HDR_GET_STEREO_MODE(h) (((h[3]) >> 6) & 3) +#define DRMP3_HDR_GET_STEREO_MODE_EXT(h) (((h[3]) >> 4) & 3) +#define DRMP3_HDR_GET_LAYER(h) (((h[1]) >> 1) & 3) +#define DRMP3_HDR_GET_BITRATE(h) ((h[2]) >> 4) +#define DRMP3_HDR_GET_SAMPLE_RATE(h) (((h[2]) >> 2) & 3) +#define DRMP3_HDR_GET_MY_SAMPLE_RATE(h) (DRMP3_HDR_GET_SAMPLE_RATE(h) + (((h[1] >> 3) & 1) + ((h[1] >> 4) & 1))*3) +#define DRMP3_HDR_IS_FRAME_576(h) ((h[1] & 14) == 2) +#define DRMP3_HDR_IS_LAYER_1(h) ((h[1] & 6) == 6) +#define DRMP3_BITS_DEQUANTIZER_OUT -1 +#define DRMP3_MAX_SCF (255 + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210) +#define DRMP3_MAX_SCFI ((DRMP3_MAX_SCF + 3) & ~3) +#define DRMP3_MIN(a, b) ((a) > (b) ? (b) : (a)) +#define DRMP3_MAX(a, b) ((a) < (b) ? (b) : (a)) +#if !defined(DR_MP3_NO_SIMD) +#if !defined(DR_MP3_ONLY_SIMD) && (defined(_M_X64) || defined(__x86_64__) || defined(__aarch64__) || defined(_M_ARM64)) +#define DR_MP3_ONLY_SIMD +#endif +#if ((defined(_MSC_VER) && _MSC_VER >= 1400) && (defined(_M_IX86) || defined(_M_X64))) || ((defined(__i386__) || defined(__x86_64__)) && defined(__SSE2__)) +#if defined(_MSC_VER) +#include +#endif +#include +#define DRMP3_HAVE_SSE 1 +#define DRMP3_HAVE_SIMD 1 +#define DRMP3_VSTORE _mm_storeu_ps +#define DRMP3_VLD _mm_loadu_ps +#define DRMP3_VSET _mm_set1_ps +#define DRMP3_VADD _mm_add_ps +#define DRMP3_VSUB _mm_sub_ps +#define DRMP3_VMUL _mm_mul_ps +#define DRMP3_VMAC(a, x, y) _mm_add_ps(a, _mm_mul_ps(x, y)) +#define DRMP3_VMSB(a, x, y) _mm_sub_ps(a, _mm_mul_ps(x, y)) +#define DRMP3_VMUL_S(x, s) _mm_mul_ps(x, _mm_set1_ps(s)) +#define DRMP3_VREV(x) _mm_shuffle_ps(x, x, _MM_SHUFFLE(0, 1, 2, 3)) +typedef __m128 drmp3_f4; +#if defined(_MSC_VER) || defined(DR_MP3_ONLY_SIMD) +#define drmp3_cpuid __cpuid +#else +static __inline__ __attribute__((always_inline)) void drmp3_cpuid(int CPUInfo[], const int InfoType) +{ +#if defined(__PIC__) + __asm__ __volatile__( +#if defined(__x86_64__) + "push %%rbx\n" + "cpuid\n" + "xchgl %%ebx, %1\n" + "pop %%rbx\n" +#else + "xchgl %%ebx, %1\n" + "cpuid\n" + "xchgl %%ebx, %1\n" +#endif + : "=a" (CPUInfo[0]), "=r" (CPUInfo[1]), "=c" (CPUInfo[2]), "=d" (CPUInfo[3]) + : "a" (InfoType)); +#else + __asm__ __volatile__( + "cpuid" + : "=a" (CPUInfo[0]), "=b" (CPUInfo[1]), "=c" (CPUInfo[2]), "=d" (CPUInfo[3]) + : "a" (InfoType)); +#endif +} +#endif +static int drmp3_have_simd(void) +{ +#ifdef DR_MP3_ONLY_SIMD + return 1; +#else + static int g_have_simd; + int CPUInfo[4]; +#ifdef MINIMP3_TEST + static int g_counter; + if (g_counter++ > 100) + return 0; +#endif + if (g_have_simd) + goto end; + drmp3_cpuid(CPUInfo, 0); + if (CPUInfo[0] > 0) + { + drmp3_cpuid(CPUInfo, 1); + g_have_simd = (CPUInfo[3] & (1 << 26)) + 1; + return g_have_simd - 1; + } +end: + return g_have_simd - 1; +#endif +} +#elif defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64) +#include +#define DRMP3_HAVE_SSE 0 +#define DRMP3_HAVE_SIMD 1 +#define DRMP3_VSTORE vst1q_f32 +#define DRMP3_VLD vld1q_f32 +#define DRMP3_VSET vmovq_n_f32 +#define DRMP3_VADD vaddq_f32 +#define DRMP3_VSUB vsubq_f32 +#define DRMP3_VMUL vmulq_f32 +#define DRMP3_VMAC(a, x, y) vmlaq_f32(a, x, y) +#define DRMP3_VMSB(a, x, y) vmlsq_f32(a, x, y) +#define DRMP3_VMUL_S(x, s) vmulq_f32(x, vmovq_n_f32(s)) +#define DRMP3_VREV(x) vcombine_f32(vget_high_f32(vrev64q_f32(x)), vget_low_f32(vrev64q_f32(x))) +typedef float32x4_t drmp3_f4; +static int drmp3_have_simd(void) +{ + return 1; +} +#else +#define DRMP3_HAVE_SSE 0 +#define DRMP3_HAVE_SIMD 0 +#ifdef DR_MP3_ONLY_SIMD +#error DR_MP3_ONLY_SIMD used, but SSE/NEON not enabled +#endif +#endif +#else +#define DRMP3_HAVE_SIMD 0 +#endif +#if defined(__ARM_ARCH) && (__ARM_ARCH >= 6) && !defined(__aarch64__) && !defined(_M_ARM64) +#define DRMP3_HAVE_ARMV6 1 +static __inline__ __attribute__((always_inline)) drmp3_int32 drmp3_clip_int16_arm(int32_t a) +{ + drmp3_int32 x = 0; + __asm__ ("ssat %0, #16, %1" : "=r"(x) : "r"(a)); + return x; +} +#else +#define DRMP3_HAVE_ARMV6 0 +#endif +typedef struct +{ + const drmp3_uint8 *buf; + int pos, limit; +} drmp3_bs; +typedef struct +{ + float scf[3*64]; + drmp3_uint8 total_bands, stereo_bands, bitalloc[64], scfcod[64]; +} drmp3_L12_scale_info; +typedef struct +{ + drmp3_uint8 tab_offset, code_tab_width, band_count; +} drmp3_L12_subband_alloc; +typedef struct +{ + const drmp3_uint8 *sfbtab; + drmp3_uint16 part_23_length, big_values, scalefac_compress; + drmp3_uint8 global_gain, block_type, mixed_block_flag, n_long_sfb, n_short_sfb; + drmp3_uint8 table_select[3], region_count[3], subblock_gain[3]; + drmp3_uint8 preflag, scalefac_scale, count1_table, scfsi; +} drmp3_L3_gr_info; +typedef struct +{ + drmp3_bs bs; + drmp3_uint8 maindata[DRMP3_MAX_BITRESERVOIR_BYTES + DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES]; + drmp3_L3_gr_info gr_info[4]; + float grbuf[2][576], scf[40], syn[18 + 15][2*32]; + drmp3_uint8 ist_pos[2][39]; +} drmp3dec_scratch; +static void drmp3_bs_init(drmp3_bs *bs, const drmp3_uint8 *data, int bytes) +{ + bs->buf = data; + bs->pos = 0; + bs->limit = bytes*8; +} +static drmp3_uint32 drmp3_bs_get_bits(drmp3_bs *bs, int n) +{ + drmp3_uint32 next, cache = 0, s = bs->pos & 7; + int shl = n + s; + const drmp3_uint8 *p = bs->buf + (bs->pos >> 3); + if ((bs->pos += n) > bs->limit) + return 0; + next = *p++ & (255 >> s); + while ((shl -= 8) > 0) + { + cache |= next << shl; + next = *p++; + } + return cache | (next >> -shl); +} +static int drmp3_hdr_valid(const drmp3_uint8 *h) +{ + return h[0] == 0xff && + ((h[1] & 0xF0) == 0xf0 || (h[1] & 0xFE) == 0xe2) && + (DRMP3_HDR_GET_LAYER(h) != 0) && + (DRMP3_HDR_GET_BITRATE(h) != 15) && + (DRMP3_HDR_GET_SAMPLE_RATE(h) != 3); +} +static int drmp3_hdr_compare(const drmp3_uint8 *h1, const drmp3_uint8 *h2) +{ + return drmp3_hdr_valid(h2) && + ((h1[1] ^ h2[1]) & 0xFE) == 0 && + ((h1[2] ^ h2[2]) & 0x0C) == 0 && + !(DRMP3_HDR_IS_FREE_FORMAT(h1) ^ DRMP3_HDR_IS_FREE_FORMAT(h2)); +} +static unsigned drmp3_hdr_bitrate_kbps(const drmp3_uint8 *h) +{ + static const drmp3_uint8 halfrate[2][3][15] = { + { { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,16,24,28,32,40,48,56,64,72,80,88,96,112,128 } }, + { { 0,16,20,24,28,32,40,48,56,64,80,96,112,128,160 }, { 0,16,24,28,32,40,48,56,64,80,96,112,128,160,192 }, { 0,16,32,48,64,80,96,112,128,144,160,176,192,208,224 } }, + }; + return 2*halfrate[!!DRMP3_HDR_TEST_MPEG1(h)][DRMP3_HDR_GET_LAYER(h) - 1][DRMP3_HDR_GET_BITRATE(h)]; +} +static unsigned drmp3_hdr_sample_rate_hz(const drmp3_uint8 *h) +{ + static const unsigned g_hz[3] = { 44100, 48000, 32000 }; + return g_hz[DRMP3_HDR_GET_SAMPLE_RATE(h)] >> (int)!DRMP3_HDR_TEST_MPEG1(h) >> (int)!DRMP3_HDR_TEST_NOT_MPEG25(h); +} +static unsigned drmp3_hdr_frame_samples(const drmp3_uint8 *h) +{ + return DRMP3_HDR_IS_LAYER_1(h) ? 384 : (1152 >> (int)DRMP3_HDR_IS_FRAME_576(h)); +} +static int drmp3_hdr_frame_bytes(const drmp3_uint8 *h, int free_format_size) +{ + int frame_bytes = drmp3_hdr_frame_samples(h)*drmp3_hdr_bitrate_kbps(h)*125/drmp3_hdr_sample_rate_hz(h); + if (DRMP3_HDR_IS_LAYER_1(h)) + { + frame_bytes &= ~3; + } + return frame_bytes ? frame_bytes : free_format_size; +} +static int drmp3_hdr_padding(const drmp3_uint8 *h) +{ + return DRMP3_HDR_TEST_PADDING(h) ? (DRMP3_HDR_IS_LAYER_1(h) ? 4 : 1) : 0; +} +#ifndef DR_MP3_ONLY_MP3 +static const drmp3_L12_subband_alloc *drmp3_L12_subband_alloc_table(const drmp3_uint8 *hdr, drmp3_L12_scale_info *sci) +{ + const drmp3_L12_subband_alloc *alloc; + int mode = DRMP3_HDR_GET_STEREO_MODE(hdr); + int nbands, stereo_bands = (mode == DRMP3_MODE_MONO) ? 0 : (mode == DRMP3_MODE_JOINT_STEREO) ? (DRMP3_HDR_GET_STEREO_MODE_EXT(hdr) << 2) + 4 : 32; + if (DRMP3_HDR_IS_LAYER_1(hdr)) + { + static const drmp3_L12_subband_alloc g_alloc_L1[] = { { 76, 4, 32 } }; + alloc = g_alloc_L1; + nbands = 32; + } else if (!DRMP3_HDR_TEST_MPEG1(hdr)) + { + static const drmp3_L12_subband_alloc g_alloc_L2M2[] = { { 60, 4, 4 }, { 44, 3, 7 }, { 44, 2, 19 } }; + alloc = g_alloc_L2M2; + nbands = 30; + } else + { + static const drmp3_L12_subband_alloc g_alloc_L2M1[] = { { 0, 4, 3 }, { 16, 4, 8 }, { 32, 3, 12 }, { 40, 2, 7 } }; + int sample_rate_idx = DRMP3_HDR_GET_SAMPLE_RATE(hdr); + unsigned kbps = drmp3_hdr_bitrate_kbps(hdr) >> (int)(mode != DRMP3_MODE_MONO); + if (!kbps) + { + kbps = 192; + } + alloc = g_alloc_L2M1; + nbands = 27; + if (kbps < 56) + { + static const drmp3_L12_subband_alloc g_alloc_L2M1_lowrate[] = { { 44, 4, 2 }, { 44, 3, 10 } }; + alloc = g_alloc_L2M1_lowrate; + nbands = sample_rate_idx == 2 ? 12 : 8; + } else if (kbps >= 96 && sample_rate_idx != 1) + { + nbands = 30; + } + } + sci->total_bands = (drmp3_uint8)nbands; + sci->stereo_bands = (drmp3_uint8)DRMP3_MIN(stereo_bands, nbands); + return alloc; +} +static void drmp3_L12_read_scalefactors(drmp3_bs *bs, drmp3_uint8 *pba, drmp3_uint8 *scfcod, int bands, float *scf) +{ + static const float g_deq_L12[18*3] = { +#define DRMP3_DQ(x) 9.53674316e-07f/x, 7.56931807e-07f/x, 6.00777173e-07f/x + DRMP3_DQ(3),DRMP3_DQ(7),DRMP3_DQ(15),DRMP3_DQ(31),DRMP3_DQ(63),DRMP3_DQ(127),DRMP3_DQ(255),DRMP3_DQ(511),DRMP3_DQ(1023),DRMP3_DQ(2047),DRMP3_DQ(4095),DRMP3_DQ(8191),DRMP3_DQ(16383),DRMP3_DQ(32767),DRMP3_DQ(65535),DRMP3_DQ(3),DRMP3_DQ(5),DRMP3_DQ(9) + }; + int i, m; + for (i = 0; i < bands; i++) + { + float s = 0; + int ba = *pba++; + int mask = ba ? 4 + ((19 >> scfcod[i]) & 3) : 0; + for (m = 4; m; m >>= 1) + { + if (mask & m) + { + int b = drmp3_bs_get_bits(bs, 6); + s = g_deq_L12[ba*3 - 6 + b % 3]*(int)(1 << 21 >> b/3); + } + *scf++ = s; + } + } +} +static void drmp3_L12_read_scale_info(const drmp3_uint8 *hdr, drmp3_bs *bs, drmp3_L12_scale_info *sci) +{ + static const drmp3_uint8 g_bitalloc_code_tab[] = { + 0,17, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16, + 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,16, + 0,17,18, 3,19,4,5,16, + 0,17,18,16, + 0,17,18,19, 4,5,6, 7,8, 9,10,11,12,13,14,15, + 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,14, + 0, 2, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16 + }; + const drmp3_L12_subband_alloc *subband_alloc = drmp3_L12_subband_alloc_table(hdr, sci); + int i, k = 0, ba_bits = 0; + const drmp3_uint8 *ba_code_tab = g_bitalloc_code_tab; + for (i = 0; i < sci->total_bands; i++) + { + drmp3_uint8 ba; + if (i == k) + { + k += subband_alloc->band_count; + ba_bits = subband_alloc->code_tab_width; + ba_code_tab = g_bitalloc_code_tab + subband_alloc->tab_offset; + subband_alloc++; + } + ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + sci->bitalloc[2*i] = ba; + if (i < sci->stereo_bands) + { + ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + } + sci->bitalloc[2*i + 1] = sci->stereo_bands ? ba : 0; + } + for (i = 0; i < 2*sci->total_bands; i++) + { + sci->scfcod[i] = (drmp3_uint8)(sci->bitalloc[i] ? DRMP3_HDR_IS_LAYER_1(hdr) ? 2 : drmp3_bs_get_bits(bs, 2) : 6); + } + drmp3_L12_read_scalefactors(bs, sci->bitalloc, sci->scfcod, sci->total_bands*2, sci->scf); + for (i = sci->stereo_bands; i < sci->total_bands; i++) + { + sci->bitalloc[2*i + 1] = 0; + } +} +static int drmp3_L12_dequantize_granule(float *grbuf, drmp3_bs *bs, drmp3_L12_scale_info *sci, int group_size) +{ + int i, j, k, choff = 576; + for (j = 0; j < 4; j++) + { + float *dst = grbuf + group_size*j; + for (i = 0; i < 2*sci->total_bands; i++) + { + int ba = sci->bitalloc[i]; + if (ba != 0) + { + if (ba < 17) + { + int half = (1 << (ba - 1)) - 1; + for (k = 0; k < group_size; k++) + { + dst[k] = (float)((int)drmp3_bs_get_bits(bs, ba) - half); + } + } else + { + unsigned mod = (2 << (ba - 17)) + 1; + unsigned code = drmp3_bs_get_bits(bs, mod + 2 - (mod >> 3)); + for (k = 0; k < group_size; k++, code /= mod) + { + dst[k] = (float)((int)(code % mod - mod/2)); + } + } + } + dst += choff; + choff = 18 - choff; + } + } + return group_size*4; +} +static void drmp3_L12_apply_scf_384(drmp3_L12_scale_info *sci, const float *scf, float *dst) +{ + int i, k; + memcpy(dst + 576 + sci->stereo_bands*18, dst + sci->stereo_bands*18, (sci->total_bands - sci->stereo_bands)*18*sizeof(float)); + for (i = 0; i < sci->total_bands; i++, dst += 18, scf += 6) + { + for (k = 0; k < 12; k++) + { + dst[k + 0] *= scf[0]; + dst[k + 576] *= scf[3]; + } + } +} +#endif +static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +{ + static const drmp3_uint8 g_scf_long[8][23] = { + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 12,12,12,12,12,12,16,20,24,28,32,40,48,56,64,76,90,2,2,2,2,2,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,18,22,26,32,38,46,54,62,70,76,36,0 }, + { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, + { 4,4,4,4,4,4,6,6,8,8,10,12,16,20,24,28,34,42,50,54,76,158,0 }, + { 4,4,4,4,4,4,6,6,6,8,10,12,16,18,22,28,34,40,46,54,54,192,0 }, + { 4,4,4,4,4,4,6,6,8,10,12,16,20,24,30,38,46,56,68,84,102,26,0 } + }; + static const drmp3_uint8 g_scf_short[8][40] = { + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 8,8,8,8,8,8,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 }, + { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 }, + { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 } + }; + static const drmp3_uint8 g_scf_mixed[8][40] = { + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 12,12,12,4,4,4,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, + { 6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,32,32,32,44,44,44,12,12,12,0 }, + { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,22,22,22,30,30,30,56,56,56,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 }, + { 4,4,4,4,4,4,6,6,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 } + }; + unsigned tables, scfsi = 0; + int main_data_begin, part_23_sum = 0; + int gr_count = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; + int sr_idx = DRMP3_HDR_GET_MY_SAMPLE_RATE(hdr); sr_idx -= (sr_idx != 0); + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + gr_count *= 2; + main_data_begin = drmp3_bs_get_bits(bs, 9); + scfsi = drmp3_bs_get_bits(bs, 7 + gr_count); + } else + { + main_data_begin = drmp3_bs_get_bits(bs, 8 + gr_count) >> gr_count; + } + do + { + if (DRMP3_HDR_IS_MONO(hdr)) + { + scfsi <<= 4; + } + gr->part_23_length = (drmp3_uint16)drmp3_bs_get_bits(bs, 12); + part_23_sum += gr->part_23_length; + gr->big_values = (drmp3_uint16)drmp3_bs_get_bits(bs, 9); + if (gr->big_values > 288) + { + return -1; + } + gr->global_gain = (drmp3_uint8)drmp3_bs_get_bits(bs, 8); + gr->scalefac_compress = (drmp3_uint16)drmp3_bs_get_bits(bs, DRMP3_HDR_TEST_MPEG1(hdr) ? 4 : 9); + gr->sfbtab = g_scf_long[sr_idx]; + gr->n_long_sfb = 22; + gr->n_short_sfb = 0; + if (drmp3_bs_get_bits(bs, 1)) + { + gr->block_type = (drmp3_uint8)drmp3_bs_get_bits(bs, 2); + if (!gr->block_type) + { + return -1; + } + gr->mixed_block_flag = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->region_count[0] = 7; + gr->region_count[1] = 255; + if (gr->block_type == DRMP3_SHORT_BLOCK_TYPE) + { + scfsi &= 0x0F0F; + if (!gr->mixed_block_flag) + { + gr->region_count[0] = 8; + gr->sfbtab = g_scf_short[sr_idx]; + gr->n_long_sfb = 0; + gr->n_short_sfb = 39; + } else + { + gr->sfbtab = g_scf_mixed[sr_idx]; + gr->n_long_sfb = DRMP3_HDR_TEST_MPEG1(hdr) ? 8 : 6; + gr->n_short_sfb = 30; + } + } + tables = drmp3_bs_get_bits(bs, 10); + tables <<= 5; + gr->subblock_gain[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->subblock_gain[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->subblock_gain[2] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + } else + { + gr->block_type = 0; + gr->mixed_block_flag = 0; + tables = drmp3_bs_get_bits(bs, 15); + gr->region_count[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 4); + gr->region_count[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->region_count[2] = 255; + } + gr->table_select[0] = (drmp3_uint8)(tables >> 10); + gr->table_select[1] = (drmp3_uint8)((tables >> 5) & 31); + gr->table_select[2] = (drmp3_uint8)((tables) & 31); + gr->preflag = (drmp3_uint8)(DRMP3_HDR_TEST_MPEG1(hdr) ? drmp3_bs_get_bits(bs, 1) : (gr->scalefac_compress >= 500)); + gr->scalefac_scale = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->count1_table = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->scfsi = (drmp3_uint8)((scfsi >> 12) & 15); + scfsi <<= 4; + gr++; + } while(--gr_count); + if (part_23_sum + bs->pos > bs->limit + main_data_begin*8) + { + return -1; + } + return main_data_begin; +} +static void drmp3_L3_read_scalefactors(drmp3_uint8 *scf, drmp3_uint8 *ist_pos, const drmp3_uint8 *scf_size, const drmp3_uint8 *scf_count, drmp3_bs *bitbuf, int scfsi) +{ + int i, k; + for (i = 0; i < 4 && scf_count[i]; i++, scfsi *= 2) + { + int cnt = scf_count[i]; + if (scfsi & 8) + { + memcpy(scf, ist_pos, cnt); + } else + { + int bits = scf_size[i]; + if (!bits) + { + memset(scf, 0, cnt); + memset(ist_pos, 0, cnt); + } else + { + int max_scf = (scfsi < 0) ? (1 << bits) - 1 : -1; + for (k = 0; k < cnt; k++) + { + int s = drmp3_bs_get_bits(bitbuf, bits); + ist_pos[k] = (drmp3_uint8)(s == max_scf ? -1 : s); + scf[k] = (drmp3_uint8)s; + } + } + } + ist_pos += cnt; + scf += cnt; + } + scf[0] = scf[1] = scf[2] = 0; +} +static float drmp3_L3_ldexp_q2(float y, int exp_q2) +{ + static const float g_expfrac[4] = { 9.31322575e-10f,7.83145814e-10f,6.58544508e-10f,5.53767716e-10f }; + int e; + do + { + e = DRMP3_MIN(30*4, exp_q2); + y *= g_expfrac[e & 3]*(1 << 30 >> (e >> 2)); + } while ((exp_q2 -= e) > 0); + return y; +} +static void drmp3_L3_decode_scalefactors(const drmp3_uint8 *hdr, drmp3_uint8 *ist_pos, drmp3_bs *bs, const drmp3_L3_gr_info *gr, float *scf, int ch) +{ + static const drmp3_uint8 g_scf_partitions[3][28] = { + { 6,5,5, 5,6,5,5,5,6,5, 7,3,11,10,0,0, 7, 7, 7,0, 6, 6,6,3, 8, 8,5,0 }, + { 8,9,6,12,6,9,9,9,6,9,12,6,15,18,0,0, 6,15,12,0, 6,12,9,6, 6,18,9,0 }, + { 9,9,6,12,9,9,9,9,9,9,12,6,18,18,0,0,12,12,12,0,12, 9,9,6,15,12,9,0 } + }; + const drmp3_uint8 *scf_partition = g_scf_partitions[!!gr->n_short_sfb + !gr->n_long_sfb]; + drmp3_uint8 scf_size[4], iscf[40]; + int i, scf_shift = gr->scalefac_scale + 1, gain_exp, scfsi = gr->scfsi; + float gain; + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + static const drmp3_uint8 g_scfc_decode[16] = { 0,1,2,3, 12,5,6,7, 9,10,11,13, 14,15,18,19 }; + int part = g_scfc_decode[gr->scalefac_compress]; + scf_size[1] = scf_size[0] = (drmp3_uint8)(part >> 2); + scf_size[3] = scf_size[2] = (drmp3_uint8)(part & 3); + } else + { + static const drmp3_uint8 g_mod[6*4] = { 5,5,4,4,5,5,4,1,4,3,1,1,5,6,6,1,4,4,4,1,4,3,1,1 }; + int k, modprod, sfc, ist = DRMP3_HDR_TEST_I_STEREO(hdr) && ch; + sfc = gr->scalefac_compress >> ist; + for (k = ist*3*4; sfc >= 0; sfc -= modprod, k += 4) + { + for (modprod = 1, i = 3; i >= 0; i--) + { + scf_size[i] = (drmp3_uint8)(sfc / modprod % g_mod[k + i]); + modprod *= g_mod[k + i]; + } + } + scf_partition += k; + scfsi = -16; + } + drmp3_L3_read_scalefactors(iscf, ist_pos, scf_size, scf_partition, bs, scfsi); + if (gr->n_short_sfb) + { + int sh = 3 - scf_shift; + for (i = 0; i < gr->n_short_sfb; i += 3) + { + iscf[gr->n_long_sfb + i + 0] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 0] + (gr->subblock_gain[0] << sh)); + iscf[gr->n_long_sfb + i + 1] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 1] + (gr->subblock_gain[1] << sh)); + iscf[gr->n_long_sfb + i + 2] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 2] + (gr->subblock_gain[2] << sh)); + } + } else if (gr->preflag) + { + static const drmp3_uint8 g_preamp[10] = { 1,1,1,1,2,2,3,3,3,2 }; + for (i = 0; i < 10; i++) + { + iscf[11 + i] = (drmp3_uint8)(iscf[11 + i] + g_preamp[i]); + } + } + gain_exp = gr->global_gain + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210 - (DRMP3_HDR_IS_MS_STEREO(hdr) ? 2 : 0); + gain = drmp3_L3_ldexp_q2(1 << (DRMP3_MAX_SCFI/4), DRMP3_MAX_SCFI - gain_exp); + for (i = 0; i < (int)(gr->n_long_sfb + gr->n_short_sfb); i++) + { + scf[i] = drmp3_L3_ldexp_q2(gain, iscf[i] << scf_shift); + } +} +static const float g_drmp3_pow43[129 + 16] = { + 0,-1,-2.519842f,-4.326749f,-6.349604f,-8.549880f,-10.902724f,-13.390518f,-16.000000f,-18.720754f,-21.544347f,-24.463781f,-27.473142f,-30.567351f,-33.741992f,-36.993181f, + 0,1,2.519842f,4.326749f,6.349604f,8.549880f,10.902724f,13.390518f,16.000000f,18.720754f,21.544347f,24.463781f,27.473142f,30.567351f,33.741992f,36.993181f,40.317474f,43.711787f,47.173345f,50.699631f,54.288352f,57.937408f,61.644865f,65.408941f,69.227979f,73.100443f,77.024898f,81.000000f,85.024491f,89.097188f,93.216975f,97.382800f,101.593667f,105.848633f,110.146801f,114.487321f,118.869381f,123.292209f,127.755065f,132.257246f,136.798076f,141.376907f,145.993119f,150.646117f,155.335327f,160.060199f,164.820202f,169.614826f,174.443577f,179.305980f,184.201575f,189.129918f,194.090580f,199.083145f,204.107210f,209.162385f,214.248292f,219.364564f,224.510845f,229.686789f,234.892058f,240.126328f,245.389280f,250.680604f,256.000000f,261.347174f,266.721841f,272.123723f,277.552547f,283.008049f,288.489971f,293.998060f,299.532071f,305.091761f,310.676898f,316.287249f,321.922592f,327.582707f,333.267377f,338.976394f,344.709550f,350.466646f,356.247482f,362.051866f,367.879608f,373.730522f,379.604427f,385.501143f,391.420496f,397.362314f,403.326427f,409.312672f,415.320884f,421.350905f,427.402579f,433.475750f,439.570269f,445.685987f,451.822757f,457.980436f,464.158883f,470.357960f,476.577530f,482.817459f,489.077615f,495.357868f,501.658090f,507.978156f,514.317941f,520.677324f,527.056184f,533.454404f,539.871867f,546.308458f,552.764065f,559.238575f,565.731879f,572.243870f,578.774440f,585.323483f,591.890898f,598.476581f,605.080431f,611.702349f,618.342238f,625.000000f,631.675540f,638.368763f,645.079578f +}; +static float drmp3_L3_pow_43(int x) +{ + float frac; + int sign, mult = 256; + if (x < 129) + { + return g_drmp3_pow43[16 + x]; + } + if (x < 1024) + { + mult = 16; + x <<= 3; + } + sign = 2*x & 64; + frac = (float)((x & 63) - sign) / ((x & ~63) + sign); + return g_drmp3_pow43[16 + ((x + sign) >> 6)]*(1.f + frac*((4.f/3) + frac*(2.f/9)))*mult; +} +static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *gr_info, const float *scf, int layer3gr_limit) +{ + static const drmp3_int16 tabs[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 785,785,785,785,784,784,784,784,513,513,513,513,513,513,513,513,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, + -255,1313,1298,1282,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,290,288, + -255,1313,1298,1282,769,769,769,769,529,529,529,529,529,529,529,529,528,528,528,528,528,528,528,528,512,512,512,512,512,512,512,512,290,288, + -253,-318,-351,-367,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,819,818,547,547,275,275,275,275,561,560,515,546,289,274,288,258, + -254,-287,1329,1299,1314,1312,1057,1057,1042,1042,1026,1026,784,784,784,784,529,529,529,529,529,529,529,529,769,769,769,769,768,768,768,768,563,560,306,306,291,259, + -252,-413,-477,-542,1298,-575,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-383,-399,1107,1092,1106,1061,849,849,789,789,1104,1091,773,773,1076,1075,341,340,325,309,834,804,577,577,532,532,516,516,832,818,803,816,561,561,531,531,515,546,289,289,288,258, + -252,-429,-493,-559,1057,1057,1042,1042,529,529,529,529,529,529,529,529,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,-382,1077,-415,1106,1061,1104,849,849,789,789,1091,1076,1029,1075,834,834,597,581,340,340,339,324,804,833,532,532,832,772,818,803,817,787,816,771,290,290,290,290,288,258, + -253,-349,-414,-447,-463,1329,1299,-479,1314,1312,1057,1057,1042,1042,1026,1026,785,785,785,785,784,784,784,784,769,769,769,769,768,768,768,768,-319,851,821,-335,836,850,805,849,341,340,325,336,533,533,579,579,564,564,773,832,578,548,563,516,321,276,306,291,304,259, + -251,-572,-733,-830,-863,-879,1041,1041,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,1396,1351,1381,1366,1395,1335,1380,-559,1334,1138,1138,1063,1063,1350,1392,1031,1031,1062,1062,1364,1363,1120,1120,1333,1348,881,881,881,881,375,374,359,373,343,358,341,325,791,791,1123,1122,-703,1105,1045,-719,865,865,790,790,774,774,1104,1029,338,293,323,308,-799,-815,833,788,772,818,803,816,322,292,307,320,561,531,515,546,289,274,288,258, + -251,-525,-605,-685,-765,-831,-846,1298,1057,1057,1312,1282,785,785,785,785,784,784,784,784,769,769,769,769,512,512,512,512,512,512,512,512,1399,1398,1383,1367,1382,1396,1351,-511,1381,1366,1139,1139,1079,1079,1124,1124,1364,1349,1363,1333,882,882,882,882,807,807,807,807,1094,1094,1136,1136,373,341,535,535,881,775,867,822,774,-591,324,338,-671,849,550,550,866,864,609,609,293,336,534,534,789,835,773,-751,834,804,308,307,833,788,832,772,562,562,547,547,305,275,560,515,290,290, + -252,-397,-477,-557,-622,-653,-719,-735,-750,1329,1299,1314,1057,1057,1042,1042,1312,1282,1024,1024,785,785,785,785,784,784,784,784,769,769,769,769,-383,1127,1141,1111,1126,1140,1095,1110,869,869,883,883,1079,1109,882,882,375,374,807,868,838,881,791,-463,867,822,368,263,852,837,836,-543,610,610,550,550,352,336,534,534,865,774,851,821,850,805,593,533,579,564,773,832,578,578,548,548,577,577,307,276,306,291,516,560,259,259, + -250,-2107,-2507,-2764,-2909,-2974,-3007,-3023,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-767,-1052,-1213,-1277,-1358,-1405,-1469,-1535,-1550,-1582,-1614,-1647,-1662,-1694,-1726,-1759,-1774,-1807,-1822,-1854,-1886,1565,-1919,-1935,-1951,-1967,1731,1730,1580,1717,-1983,1729,1564,-1999,1548,-2015,-2031,1715,1595,-2047,1714,-2063,1610,-2079,1609,-2095,1323,1323,1457,1457,1307,1307,1712,1547,1641,1700,1699,1594,1685,1625,1442,1442,1322,1322,-780,-973,-910,1279,1278,1277,1262,1276,1261,1275,1215,1260,1229,-959,974,974,989,989,-943,735,478,478,495,463,506,414,-1039,1003,958,1017,927,942,987,957,431,476,1272,1167,1228,-1183,1256,-1199,895,895,941,941,1242,1227,1212,1135,1014,1014,490,489,503,487,910,1013,985,925,863,894,970,955,1012,847,-1343,831,755,755,984,909,428,366,754,559,-1391,752,486,457,924,997,698,698,983,893,740,740,908,877,739,739,667,667,953,938,497,287,271,271,683,606,590,712,726,574,302,302,738,736,481,286,526,725,605,711,636,724,696,651,589,681,666,710,364,467,573,695,466,466,301,465,379,379,709,604,665,679,316,316,634,633,436,436,464,269,424,394,452,332,438,363,347,408,393,448,331,422,362,407,392,421,346,406,391,376,375,359,1441,1306,-2367,1290,-2383,1337,-2399,-2415,1426,1321,-2431,1411,1336,-2447,-2463,-2479,1169,1169,1049,1049,1424,1289,1412,1352,1319,-2495,1154,1154,1064,1064,1153,1153,416,390,360,404,403,389,344,374,373,343,358,372,327,357,342,311,356,326,1395,1394,1137,1137,1047,1047,1365,1392,1287,1379,1334,1364,1349,1378,1318,1363,792,792,792,792,1152,1152,1032,1032,1121,1121,1046,1046,1120,1120,1030,1030,-2895,1106,1061,1104,849,849,789,789,1091,1076,1029,1090,1060,1075,833,833,309,324,532,532,832,772,818,803,561,561,531,560,515,546,289,274,288,258, + -250,-1179,-1579,-1836,-1996,-2124,-2253,-2333,-2413,-2477,-2542,-2574,-2607,-2622,-2655,1314,1313,1298,1312,1282,785,785,785,785,1040,1040,1025,1025,768,768,768,768,-766,-798,-830,-862,-895,-911,-927,-943,-959,-975,-991,-1007,-1023,-1039,-1055,-1070,1724,1647,-1103,-1119,1631,1767,1662,1738,1708,1723,-1135,1780,1615,1779,1599,1677,1646,1778,1583,-1151,1777,1567,1737,1692,1765,1722,1707,1630,1751,1661,1764,1614,1736,1676,1763,1750,1645,1598,1721,1691,1762,1706,1582,1761,1566,-1167,1749,1629,767,766,751,765,494,494,735,764,719,749,734,763,447,447,748,718,477,506,431,491,446,476,461,505,415,430,475,445,504,399,460,489,414,503,383,474,429,459,502,502,746,752,488,398,501,473,413,472,486,271,480,270,-1439,-1455,1357,-1471,-1487,-1503,1341,1325,-1519,1489,1463,1403,1309,-1535,1372,1448,1418,1476,1356,1462,1387,-1551,1475,1340,1447,1402,1386,-1567,1068,1068,1474,1461,455,380,468,440,395,425,410,454,364,467,466,464,453,269,409,448,268,432,1371,1473,1432,1417,1308,1460,1355,1446,1459,1431,1083,1083,1401,1416,1458,1445,1067,1067,1370,1457,1051,1051,1291,1430,1385,1444,1354,1415,1400,1443,1082,1082,1173,1113,1186,1066,1185,1050,-1967,1158,1128,1172,1097,1171,1081,-1983,1157,1112,416,266,375,400,1170,1142,1127,1065,793,793,1169,1033,1156,1096,1141,1111,1155,1080,1126,1140,898,898,808,808,897,897,792,792,1095,1152,1032,1125,1110,1139,1079,1124,882,807,838,881,853,791,-2319,867,368,263,822,852,837,866,806,865,-2399,851,352,262,534,534,821,836,594,594,549,549,593,593,533,533,848,773,579,579,564,578,548,563,276,276,577,576,306,291,516,560,305,305,275,259, + -251,-892,-2058,-2620,-2828,-2957,-3023,-3039,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,-559,1530,-575,-591,1528,1527,1407,1526,1391,1023,1023,1023,1023,1525,1375,1268,1268,1103,1103,1087,1087,1039,1039,1523,-604,815,815,815,815,510,495,509,479,508,463,507,447,431,505,415,399,-734,-782,1262,-815,1259,1244,-831,1258,1228,-847,-863,1196,-879,1253,987,987,748,-767,493,493,462,477,414,414,686,669,478,446,461,445,474,429,487,458,412,471,1266,1264,1009,1009,799,799,-1019,-1276,-1452,-1581,-1677,-1757,-1821,-1886,-1933,-1997,1257,1257,1483,1468,1512,1422,1497,1406,1467,1496,1421,1510,1134,1134,1225,1225,1466,1451,1374,1405,1252,1252,1358,1480,1164,1164,1251,1251,1238,1238,1389,1465,-1407,1054,1101,-1423,1207,-1439,830,830,1248,1038,1237,1117,1223,1148,1236,1208,411,426,395,410,379,269,1193,1222,1132,1235,1221,1116,976,976,1192,1162,1177,1220,1131,1191,963,963,-1647,961,780,-1663,558,558,994,993,437,408,393,407,829,978,813,797,947,-1743,721,721,377,392,844,950,828,890,706,706,812,859,796,960,948,843,934,874,571,571,-1919,690,555,689,421,346,539,539,944,779,918,873,932,842,903,888,570,570,931,917,674,674,-2575,1562,-2591,1609,-2607,1654,1322,1322,1441,1441,1696,1546,1683,1593,1669,1624,1426,1426,1321,1321,1639,1680,1425,1425,1305,1305,1545,1668,1608,1623,1667,1592,1638,1666,1320,1320,1652,1607,1409,1409,1304,1304,1288,1288,1664,1637,1395,1395,1335,1335,1622,1636,1394,1394,1319,1319,1606,1621,1392,1392,1137,1137,1137,1137,345,390,360,375,404,373,1047,-2751,-2767,-2783,1062,1121,1046,-2799,1077,-2815,1106,1061,789,789,1105,1104,263,355,310,340,325,354,352,262,339,324,1091,1076,1029,1090,1060,1075,833,833,788,788,1088,1028,818,818,803,803,561,561,531,531,816,771,546,546,289,274,288,258, + -253,-317,-381,-446,-478,-509,1279,1279,-811,-1179,-1451,-1756,-1900,-2028,-2189,-2253,-2333,-2414,-2445,-2511,-2526,1313,1298,-2559,1041,1041,1040,1040,1025,1025,1024,1024,1022,1007,1021,991,1020,975,1019,959,687,687,1018,1017,671,671,655,655,1016,1015,639,639,758,758,623,623,757,607,756,591,755,575,754,559,543,543,1009,783,-575,-621,-685,-749,496,-590,750,749,734,748,974,989,1003,958,988,973,1002,942,987,957,972,1001,926,986,941,971,956,1000,910,985,925,999,894,970,-1071,-1087,-1102,1390,-1135,1436,1509,1451,1374,-1151,1405,1358,1480,1420,-1167,1507,1494,1389,1342,1465,1435,1450,1326,1505,1310,1493,1373,1479,1404,1492,1464,1419,428,443,472,397,736,526,464,464,486,457,442,471,484,482,1357,1449,1434,1478,1388,1491,1341,1490,1325,1489,1463,1403,1309,1477,1372,1448,1418,1433,1476,1356,1462,1387,-1439,1475,1340,1447,1402,1474,1324,1461,1371,1473,269,448,1432,1417,1308,1460,-1711,1459,-1727,1441,1099,1099,1446,1386,1431,1401,-1743,1289,1083,1083,1160,1160,1458,1445,1067,1067,1370,1457,1307,1430,1129,1129,1098,1098,268,432,267,416,266,400,-1887,1144,1187,1082,1173,1113,1186,1066,1050,1158,1128,1143,1172,1097,1171,1081,420,391,1157,1112,1170,1142,1127,1065,1169,1049,1156,1096,1141,1111,1155,1080,1126,1154,1064,1153,1140,1095,1048,-2159,1125,1110,1137,-2175,823,823,1139,1138,807,807,384,264,368,263,868,838,853,791,867,822,852,837,866,806,865,790,-2319,851,821,836,352,262,850,805,849,-2399,533,533,835,820,336,261,578,548,563,577,532,532,832,772,562,562,547,547,305,275,560,515,290,290,288,258 }; + static const drmp3_uint8 tab32[] = { 130,162,193,209,44,28,76,140,9,9,9,9,9,9,9,9,190,254,222,238,126,94,157,157,109,61,173,205}; + static const drmp3_uint8 tab33[] = { 252,236,220,204,188,172,156,140,124,108,92,76,60,44,28,12 }; + static const drmp3_int16 tabindex[2*16] = { 0,32,64,98,0,132,180,218,292,364,426,538,648,746,0,1126,1460,1460,1460,1460,1460,1460,1460,1460,1842,1842,1842,1842,1842,1842,1842,1842 }; + static const drmp3_uint8 g_linbits[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,6,8,10,13,4,5,6,7,8,9,11,13 }; +#define DRMP3_PEEK_BITS(n) (bs_cache >> (32 - n)) +#define DRMP3_FLUSH_BITS(n) { bs_cache <<= (n); bs_sh += (n); } +#define DRMP3_CHECK_BITS while (bs_sh >= 0) { bs_cache |= (drmp3_uint32)*bs_next_ptr++ << bs_sh; bs_sh -= 8; } +#define DRMP3_BSPOS ((bs_next_ptr - bs->buf)*8 - 24 + bs_sh) + float one = 0.0f; + int ireg = 0, big_val_cnt = gr_info->big_values; + const drmp3_uint8 *sfb = gr_info->sfbtab; + const drmp3_uint8 *bs_next_ptr = bs->buf + bs->pos/8; + drmp3_uint32 bs_cache = (((bs_next_ptr[0]*256u + bs_next_ptr[1])*256u + bs_next_ptr[2])*256u + bs_next_ptr[3]) << (bs->pos & 7); + int pairs_to_decode, np, bs_sh = (bs->pos & 7) - 8; + bs_next_ptr += 4; + while (big_val_cnt > 0) + { + int tab_num = gr_info->table_select[ireg]; + int sfb_cnt = gr_info->region_count[ireg++]; + const drmp3_int16 *codebook = tabs + tabindex[tab_num]; + int linbits = g_linbits[tab_num]; + if (linbits) + { + do + { + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do + { + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) + { + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + } + DRMP3_FLUSH_BITS(leaf >> 8); + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + if (lsb == 15) + { + lsb += DRMP3_PEEK_BITS(linbits); + DRMP3_FLUSH_BITS(linbits); + DRMP3_CHECK_BITS; + *dst = one*drmp3_L3_pow_43(lsb)*((drmp3_int32)bs_cache < 0 ? -1: 1); + } else + { + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + } + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } else + { + do + { + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do + { + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) + { + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + } + DRMP3_FLUSH_BITS(leaf >> 8); + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } + } + for (np = 1 - big_val_cnt;; dst += 4) + { + const drmp3_uint8 *codebook_count1 = (gr_info->count1_table) ? tab33 : tab32; + int leaf = codebook_count1[DRMP3_PEEK_BITS(4)]; + if (!(leaf & 8)) + { + leaf = codebook_count1[(leaf >> 3) + (bs_cache << 4 >> (32 - (leaf & 3)))]; + } + DRMP3_FLUSH_BITS(leaf & 7); + if (DRMP3_BSPOS > layer3gr_limit) + { + break; + } +#define DRMP3_RELOAD_SCALEFACTOR if (!--np) { np = *sfb++/2; if (!np) break; one = *scf++; } +#define DRMP3_DEQ_COUNT1(s) if (leaf & (128 >> s)) { dst[s] = ((drmp3_int32)bs_cache < 0) ? -one : one; DRMP3_FLUSH_BITS(1) } + DRMP3_RELOAD_SCALEFACTOR; + DRMP3_DEQ_COUNT1(0); + DRMP3_DEQ_COUNT1(1); + DRMP3_RELOAD_SCALEFACTOR; + DRMP3_DEQ_COUNT1(2); + DRMP3_DEQ_COUNT1(3); + DRMP3_CHECK_BITS; + } + bs->pos = layer3gr_limit; +} +static void drmp3_L3_midside_stereo(float *left, int n) +{ + int i = 0; + float *right = left + 576; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; i < n - 3; i += 4) + { + drmp3_f4 vl = DRMP3_VLD(left + i); + drmp3_f4 vr = DRMP3_VLD(right + i); + DRMP3_VSTORE(left + i, DRMP3_VADD(vl, vr)); + DRMP3_VSTORE(right + i, DRMP3_VSUB(vl, vr)); + } +#endif + for (; i < n; i++) + { + float a = left[i]; + float b = right[i]; + left[i] = a + b; + right[i] = a - b; + } +} +static void drmp3_L3_intensity_stereo_band(float *left, int n, float kl, float kr) +{ + int i; + for (i = 0; i < n; i++) + { + left[i + 576] = left[i]*kr; + left[i] = left[i]*kl; + } +} +static void drmp3_L3_stereo_top_band(const float *right, const drmp3_uint8 *sfb, int nbands, int max_band[3]) +{ + int i, k; + max_band[0] = max_band[1] = max_band[2] = -1; + for (i = 0; i < nbands; i++) + { + for (k = 0; k < sfb[i]; k += 2) + { + if (right[k] != 0 || right[k + 1] != 0) + { + max_band[i % 3] = i; + break; + } + } + right += sfb[i]; + } +} +static void drmp3_L3_stereo_process(float *left, const drmp3_uint8 *ist_pos, const drmp3_uint8 *sfb, const drmp3_uint8 *hdr, int max_band[3], int mpeg2_sh) +{ + static const float g_pan[7*2] = { 0,1,0.21132487f,0.78867513f,0.36602540f,0.63397460f,0.5f,0.5f,0.63397460f,0.36602540f,0.78867513f,0.21132487f,1,0 }; + unsigned i, max_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 7 : 64; + for (i = 0; sfb[i]; i++) + { + unsigned ipos = ist_pos[i]; + if ((int)i > max_band[i % 3] && ipos < max_pos) + { + float kl, kr, s = DRMP3_HDR_TEST_MS_STEREO(hdr) ? 1.41421356f : 1; + if (DRMP3_HDR_TEST_MPEG1(hdr)) + { + kl = g_pan[2*ipos]; + kr = g_pan[2*ipos + 1]; + } else + { + kl = 1; + kr = drmp3_L3_ldexp_q2(1, (ipos + 1) >> 1 << mpeg2_sh); + if (ipos & 1) + { + kl = kr; + kr = 1; + } + } + drmp3_L3_intensity_stereo_band(left, sfb[i], kl*s, kr*s); + } else if (DRMP3_HDR_TEST_MS_STEREO(hdr)) + { + drmp3_L3_midside_stereo(left, sfb[i]); + } + left += sfb[i]; + } +} +static void drmp3_L3_intensity_stereo(float *left, drmp3_uint8 *ist_pos, const drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +{ + int max_band[3], n_sfb = gr->n_long_sfb + gr->n_short_sfb; + int i, max_blocks = gr->n_short_sfb ? 3 : 1; + drmp3_L3_stereo_top_band(left + 576, gr->sfbtab, n_sfb, max_band); + if (gr->n_long_sfb) + { + max_band[0] = max_band[1] = max_band[2] = DRMP3_MAX(DRMP3_MAX(max_band[0], max_band[1]), max_band[2]); + } + for (i = 0; i < max_blocks; i++) + { + int default_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 3 : 0; + int itop = n_sfb - max_blocks + i; + int prev = itop - max_blocks; + ist_pos[itop] = (drmp3_uint8)(max_band[i] >= prev ? default_pos : ist_pos[prev]); + } + drmp3_L3_stereo_process(left, ist_pos, gr->sfbtab, hdr, max_band, gr[1].scalefac_compress & 1); +} +static void drmp3_L3_reorder(float *grbuf, float *scratch, const drmp3_uint8 *sfb) +{ + int i, len; + float *src = grbuf, *dst = scratch; + for (;0 != (len = *sfb); sfb += 3, src += 2*len) + { + for (i = 0; i < len; i++, src++) + { + *dst++ = src[0*len]; + *dst++ = src[1*len]; + *dst++ = src[2*len]; + } + } + memcpy(grbuf, scratch, (dst - scratch)*sizeof(float)); +} +static void drmp3_L3_antialias(float *grbuf, int nbands) +{ + static const float g_aa[2][8] = { + {0.85749293f,0.88174200f,0.94962865f,0.98331459f,0.99551782f,0.99916056f,0.99989920f,0.99999316f}, + {0.51449576f,0.47173197f,0.31337745f,0.18191320f,0.09457419f,0.04096558f,0.01419856f,0.00369997f} + }; + for (; nbands > 0; nbands--, grbuf += 18) + { + int i = 0; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; i < 8; i += 4) + { + drmp3_f4 vu = DRMP3_VLD(grbuf + 18 + i); + drmp3_f4 vd = DRMP3_VLD(grbuf + 14 - i); + drmp3_f4 vc0 = DRMP3_VLD(g_aa[0] + i); + drmp3_f4 vc1 = DRMP3_VLD(g_aa[1] + i); + vd = DRMP3_VREV(vd); + DRMP3_VSTORE(grbuf + 18 + i, DRMP3_VSUB(DRMP3_VMUL(vu, vc0), DRMP3_VMUL(vd, vc1))); + vd = DRMP3_VADD(DRMP3_VMUL(vu, vc1), DRMP3_VMUL(vd, vc0)); + DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vd)); + } +#endif +#ifndef DR_MP3_ONLY_SIMD + for(; i < 8; i++) + { + float u = grbuf[18 + i]; + float d = grbuf[17 - i]; + grbuf[18 + i] = u*g_aa[0][i] - d*g_aa[1][i]; + grbuf[17 - i] = u*g_aa[1][i] + d*g_aa[0][i]; + } +#endif + } +} +static void drmp3_L3_dct3_9(float *y) +{ + float s0, s1, s2, s3, s4, s5, s6, s7, s8, t0, t2, t4; + s0 = y[0]; s2 = y[2]; s4 = y[4]; s6 = y[6]; s8 = y[8]; + t0 = s0 + s6*0.5f; + s0 -= s6; + t4 = (s4 + s2)*0.93969262f; + t2 = (s8 + s2)*0.76604444f; + s6 = (s4 - s8)*0.17364818f; + s4 += s8 - s2; + s2 = s0 - s4*0.5f; + y[4] = s4 + s0; + s8 = t0 - t2 + s6; + s0 = t0 - t4 + t2; + s4 = t0 + t4 - s6; + s1 = y[1]; s3 = y[3]; s5 = y[5]; s7 = y[7]; + s3 *= 0.86602540f; + t0 = (s5 + s1)*0.98480775f; + t4 = (s5 - s7)*0.34202014f; + t2 = (s1 + s7)*0.64278761f; + s1 = (s1 - s5 - s7)*0.86602540f; + s5 = t0 - s3 - t2; + s7 = t4 - s3 - t0; + s3 = t4 + s3 - t2; + y[0] = s4 - s7; + y[1] = s2 + s1; + y[2] = s0 - s3; + y[3] = s8 + s5; + y[5] = s8 - s5; + y[6] = s0 + s3; + y[7] = s2 - s1; + y[8] = s4 + s7; +} +static void drmp3_L3_imdct36(float *grbuf, float *overlap, const float *window, int nbands) +{ + int i, j; + static const float g_twid9[18] = { + 0.73727734f,0.79335334f,0.84339145f,0.88701083f,0.92387953f,0.95371695f,0.97629601f,0.99144486f,0.99904822f,0.67559021f,0.60876143f,0.53729961f,0.46174861f,0.38268343f,0.30070580f,0.21643961f,0.13052619f,0.04361938f + }; + for (j = 0; j < nbands; j++, grbuf += 18, overlap += 9) + { + float co[9], si[9]; + co[0] = -grbuf[0]; + si[0] = grbuf[17]; + for (i = 0; i < 4; i++) + { + si[8 - 2*i] = grbuf[4*i + 1] - grbuf[4*i + 2]; + co[1 + 2*i] = grbuf[4*i + 1] + grbuf[4*i + 2]; + si[7 - 2*i] = grbuf[4*i + 4] - grbuf[4*i + 3]; + co[2 + 2*i] = -(grbuf[4*i + 3] + grbuf[4*i + 4]); + } + drmp3_L3_dct3_9(co); + drmp3_L3_dct3_9(si); + si[1] = -si[1]; + si[3] = -si[3]; + si[5] = -si[5]; + si[7] = -si[7]; + i = 0; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; i < 8; i += 4) + { + drmp3_f4 vovl = DRMP3_VLD(overlap + i); + drmp3_f4 vc = DRMP3_VLD(co + i); + drmp3_f4 vs = DRMP3_VLD(si + i); + drmp3_f4 vr0 = DRMP3_VLD(g_twid9 + i); + drmp3_f4 vr1 = DRMP3_VLD(g_twid9 + 9 + i); + drmp3_f4 vw0 = DRMP3_VLD(window + i); + drmp3_f4 vw1 = DRMP3_VLD(window + 9 + i); + drmp3_f4 vsum = DRMP3_VADD(DRMP3_VMUL(vc, vr1), DRMP3_VMUL(vs, vr0)); + DRMP3_VSTORE(overlap + i, DRMP3_VSUB(DRMP3_VMUL(vc, vr0), DRMP3_VMUL(vs, vr1))); + DRMP3_VSTORE(grbuf + i, DRMP3_VSUB(DRMP3_VMUL(vovl, vw0), DRMP3_VMUL(vsum, vw1))); + vsum = DRMP3_VADD(DRMP3_VMUL(vovl, vw1), DRMP3_VMUL(vsum, vw0)); + DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vsum)); + } +#endif + for (; i < 9; i++) + { + float ovl = overlap[i]; + float sum = co[i]*g_twid9[9 + i] + si[i]*g_twid9[0 + i]; + overlap[i] = co[i]*g_twid9[0 + i] - si[i]*g_twid9[9 + i]; + grbuf[i] = ovl*window[0 + i] - sum*window[9 + i]; + grbuf[17 - i] = ovl*window[9 + i] + sum*window[0 + i]; + } + } +} +static void drmp3_L3_idct3(float x0, float x1, float x2, float *dst) +{ + float m1 = x1*0.86602540f; + float a1 = x0 - x2*0.5f; + dst[1] = x0 + x2; + dst[0] = a1 + m1; + dst[2] = a1 - m1; +} +static void drmp3_L3_imdct12(float *x, float *dst, float *overlap) +{ + static const float g_twid3[6] = { 0.79335334f,0.92387953f,0.99144486f, 0.60876143f,0.38268343f,0.13052619f }; + float co[3], si[3]; + int i; + drmp3_L3_idct3(-x[0], x[6] + x[3], x[12] + x[9], co); + drmp3_L3_idct3(x[15], x[12] - x[9], x[6] - x[3], si); + si[1] = -si[1]; + for (i = 0; i < 3; i++) + { + float ovl = overlap[i]; + float sum = co[i]*g_twid3[3 + i] + si[i]*g_twid3[0 + i]; + overlap[i] = co[i]*g_twid3[0 + i] - si[i]*g_twid3[3 + i]; + dst[i] = ovl*g_twid3[2 - i] - sum*g_twid3[5 - i]; + dst[5 - i] = ovl*g_twid3[5 - i] + sum*g_twid3[2 - i]; + } +} +static void drmp3_L3_imdct_short(float *grbuf, float *overlap, int nbands) +{ + for (;nbands > 0; nbands--, overlap += 9, grbuf += 18) + { + float tmp[18]; + memcpy(tmp, grbuf, sizeof(tmp)); + memcpy(grbuf, overlap, 6*sizeof(float)); + drmp3_L3_imdct12(tmp, grbuf + 6, overlap + 6); + drmp3_L3_imdct12(tmp + 1, grbuf + 12, overlap + 6); + drmp3_L3_imdct12(tmp + 2, overlap, overlap + 6); + } +} +static void drmp3_L3_change_sign(float *grbuf) +{ + int b, i; + for (b = 0, grbuf += 18; b < 32; b += 2, grbuf += 36) + for (i = 1; i < 18; i += 2) + grbuf[i] = -grbuf[i]; +} +static void drmp3_L3_imdct_gr(float *grbuf, float *overlap, unsigned block_type, unsigned n_long_bands) +{ + static const float g_mdct_window[2][18] = { + { 0.99904822f,0.99144486f,0.97629601f,0.95371695f,0.92387953f,0.88701083f,0.84339145f,0.79335334f,0.73727734f,0.04361938f,0.13052619f,0.21643961f,0.30070580f,0.38268343f,0.46174861f,0.53729961f,0.60876143f,0.67559021f }, + { 1,1,1,1,1,1,0.99144486f,0.92387953f,0.79335334f,0,0,0,0,0,0,0.13052619f,0.38268343f,0.60876143f } + }; + if (n_long_bands) + { + drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[0], n_long_bands); + grbuf += 18*n_long_bands; + overlap += 9*n_long_bands; + } + if (block_type == DRMP3_SHORT_BLOCK_TYPE) + drmp3_L3_imdct_short(grbuf, overlap, 32 - n_long_bands); + else + drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[block_type == DRMP3_STOP_BLOCK_TYPE], 32 - n_long_bands); +} +static void drmp3_L3_save_reservoir(drmp3dec *h, drmp3dec_scratch *s) +{ + int pos = (s->bs.pos + 7)/8u; + int remains = s->bs.limit/8u - pos; + if (remains > DRMP3_MAX_BITRESERVOIR_BYTES) + { + pos += remains - DRMP3_MAX_BITRESERVOIR_BYTES; + remains = DRMP3_MAX_BITRESERVOIR_BYTES; + } + if (remains > 0) + { + memmove(h->reserv_buf, s->maindata + pos, remains); + } + h->reserv = remains; +} +static int drmp3_L3_restore_reservoir(drmp3dec *h, drmp3_bs *bs, drmp3dec_scratch *s, int main_data_begin) +{ + int frame_bytes = (bs->limit - bs->pos)/8; + int bytes_have = DRMP3_MIN(h->reserv, main_data_begin); + memcpy(s->maindata, h->reserv_buf + DRMP3_MAX(0, h->reserv - main_data_begin), DRMP3_MIN(h->reserv, main_data_begin)); + memcpy(s->maindata + bytes_have, bs->buf + bs->pos/8, frame_bytes); + drmp3_bs_init(&s->bs, s->maindata, bytes_have + frame_bytes); + return h->reserv >= main_data_begin; +} +static void drmp3_L3_decode(drmp3dec *h, drmp3dec_scratch *s, drmp3_L3_gr_info *gr_info, int nch) +{ + int ch; + for (ch = 0; ch < nch; ch++) + { + int layer3gr_limit = s->bs.pos + gr_info[ch].part_23_length; + drmp3_L3_decode_scalefactors(h->header, s->ist_pos[ch], &s->bs, gr_info + ch, s->scf, ch); + drmp3_L3_huffman(s->grbuf[ch], &s->bs, gr_info + ch, s->scf, layer3gr_limit); + } + if (DRMP3_HDR_TEST_I_STEREO(h->header)) + { + drmp3_L3_intensity_stereo(s->grbuf[0], s->ist_pos[1], gr_info, h->header); + } else if (DRMP3_HDR_IS_MS_STEREO(h->header)) + { + drmp3_L3_midside_stereo(s->grbuf[0], 576); + } + for (ch = 0; ch < nch; ch++, gr_info++) + { + int aa_bands = 31; + int n_long_bands = (gr_info->mixed_block_flag ? 2 : 0) << (int)(DRMP3_HDR_GET_MY_SAMPLE_RATE(h->header) == 2); + if (gr_info->n_short_sfb) + { + aa_bands = n_long_bands - 1; + drmp3_L3_reorder(s->grbuf[ch] + n_long_bands*18, s->syn[0], gr_info->sfbtab + gr_info->n_long_sfb); + } + drmp3_L3_antialias(s->grbuf[ch], aa_bands); + drmp3_L3_imdct_gr(s->grbuf[ch], h->mdct_overlap[ch], gr_info->block_type, n_long_bands); + drmp3_L3_change_sign(s->grbuf[ch]); + } +} +static void drmp3d_DCT_II(float *grbuf, int n) +{ + static const float g_sec[24] = { + 10.19000816f,0.50060302f,0.50241929f,3.40760851f,0.50547093f,0.52249861f,2.05778098f,0.51544732f,0.56694406f,1.48416460f,0.53104258f,0.64682180f,1.16943991f,0.55310392f,0.78815460f,0.97256821f,0.58293498f,1.06067765f,0.83934963f,0.62250412f,1.72244716f,0.74453628f,0.67480832f,5.10114861f + }; + int i, k = 0; +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (; k < n; k += 4) + { + drmp3_f4 t[4][8], *x; + float *y = grbuf + k; + for (x = t[0], i = 0; i < 8; i++, x++) + { + drmp3_f4 x0 = DRMP3_VLD(&y[i*18]); + drmp3_f4 x1 = DRMP3_VLD(&y[(15 - i)*18]); + drmp3_f4 x2 = DRMP3_VLD(&y[(16 + i)*18]); + drmp3_f4 x3 = DRMP3_VLD(&y[(31 - i)*18]); + drmp3_f4 t0 = DRMP3_VADD(x0, x3); + drmp3_f4 t1 = DRMP3_VADD(x1, x2); + drmp3_f4 t2 = DRMP3_VMUL_S(DRMP3_VSUB(x1, x2), g_sec[3*i + 0]); + drmp3_f4 t3 = DRMP3_VMUL_S(DRMP3_VSUB(x0, x3), g_sec[3*i + 1]); + x[0] = DRMP3_VADD(t0, t1); + x[8] = DRMP3_VMUL_S(DRMP3_VSUB(t0, t1), g_sec[3*i + 2]); + x[16] = DRMP3_VADD(t3, t2); + x[24] = DRMP3_VMUL_S(DRMP3_VSUB(t3, t2), g_sec[3*i + 2]); + } + for (x = t[0], i = 0; i < 4; i++, x += 8) + { + drmp3_f4 x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; + xt = DRMP3_VSUB(x0, x7); x0 = DRMP3_VADD(x0, x7); + x7 = DRMP3_VSUB(x1, x6); x1 = DRMP3_VADD(x1, x6); + x6 = DRMP3_VSUB(x2, x5); x2 = DRMP3_VADD(x2, x5); + x5 = DRMP3_VSUB(x3, x4); x3 = DRMP3_VADD(x3, x4); + x4 = DRMP3_VSUB(x0, x3); x0 = DRMP3_VADD(x0, x3); + x3 = DRMP3_VSUB(x1, x2); x1 = DRMP3_VADD(x1, x2); + x[0] = DRMP3_VADD(x0, x1); + x[4] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x1), 0.70710677f); + x5 = DRMP3_VADD(x5, x6); + x6 = DRMP3_VMUL_S(DRMP3_VADD(x6, x7), 0.70710677f); + x7 = DRMP3_VADD(x7, xt); + x3 = DRMP3_VMUL_S(DRMP3_VADD(x3, x4), 0.70710677f); + x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); + x7 = DRMP3_VADD(x7, DRMP3_VMUL_S(x5, 0.382683432f)); + x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); + x0 = DRMP3_VSUB(xt, x6); xt = DRMP3_VADD(xt, x6); + x[1] = DRMP3_VMUL_S(DRMP3_VADD(xt, x7), 0.50979561f); + x[2] = DRMP3_VMUL_S(DRMP3_VADD(x4, x3), 0.54119611f); + x[3] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x5), 0.60134488f); + x[5] = DRMP3_VMUL_S(DRMP3_VADD(x0, x5), 0.89997619f); + x[6] = DRMP3_VMUL_S(DRMP3_VSUB(x4, x3), 1.30656302f); + x[7] = DRMP3_VMUL_S(DRMP3_VSUB(xt, x7), 2.56291556f); + } + if (k > n - 3) + { +#if DRMP3_HAVE_SSE +#define DRMP3_VSAVE2(i, v) _mm_storel_pi((__m64 *)(void*)&y[i*18], v) +#else +#define DRMP3_VSAVE2(i, v) vst1_f32((float32_t *)&y[i*18], vget_low_f32(v)) +#endif + for (i = 0; i < 7; i++, y += 4*18) + { + drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); + DRMP3_VSAVE2(0, t[0][i]); + DRMP3_VSAVE2(1, DRMP3_VADD(t[2][i], s)); + DRMP3_VSAVE2(2, DRMP3_VADD(t[1][i], t[1][i + 1])); + DRMP3_VSAVE2(3, DRMP3_VADD(t[2][1 + i], s)); + } + DRMP3_VSAVE2(0, t[0][7]); + DRMP3_VSAVE2(1, DRMP3_VADD(t[2][7], t[3][7])); + DRMP3_VSAVE2(2, t[1][7]); + DRMP3_VSAVE2(3, t[3][7]); + } else + { +#define DRMP3_VSAVE4(i, v) DRMP3_VSTORE(&y[i*18], v) + for (i = 0; i < 7; i++, y += 4*18) + { + drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); + DRMP3_VSAVE4(0, t[0][i]); + DRMP3_VSAVE4(1, DRMP3_VADD(t[2][i], s)); + DRMP3_VSAVE4(2, DRMP3_VADD(t[1][i], t[1][i + 1])); + DRMP3_VSAVE4(3, DRMP3_VADD(t[2][1 + i], s)); + } + DRMP3_VSAVE4(0, t[0][7]); + DRMP3_VSAVE4(1, DRMP3_VADD(t[2][7], t[3][7])); + DRMP3_VSAVE4(2, t[1][7]); + DRMP3_VSAVE4(3, t[3][7]); + } + } else +#endif +#ifdef DR_MP3_ONLY_SIMD + {} +#else + for (; k < n; k++) + { + float t[4][8], *x, *y = grbuf + k; + for (x = t[0], i = 0; i < 8; i++, x++) + { + float x0 = y[i*18]; + float x1 = y[(15 - i)*18]; + float x2 = y[(16 + i)*18]; + float x3 = y[(31 - i)*18]; + float t0 = x0 + x3; + float t1 = x1 + x2; + float t2 = (x1 - x2)*g_sec[3*i + 0]; + float t3 = (x0 - x3)*g_sec[3*i + 1]; + x[0] = t0 + t1; + x[8] = (t0 - t1)*g_sec[3*i + 2]; + x[16] = t3 + t2; + x[24] = (t3 - t2)*g_sec[3*i + 2]; + } + for (x = t[0], i = 0; i < 4; i++, x += 8) + { + float x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; + xt = x0 - x7; x0 += x7; + x7 = x1 - x6; x1 += x6; + x6 = x2 - x5; x2 += x5; + x5 = x3 - x4; x3 += x4; + x4 = x0 - x3; x0 += x3; + x3 = x1 - x2; x1 += x2; + x[0] = x0 + x1; + x[4] = (x0 - x1)*0.70710677f; + x5 = x5 + x6; + x6 = (x6 + x7)*0.70710677f; + x7 = x7 + xt; + x3 = (x3 + x4)*0.70710677f; + x5 -= x7*0.198912367f; + x7 += x5*0.382683432f; + x5 -= x7*0.198912367f; + x0 = xt - x6; xt += x6; + x[1] = (xt + x7)*0.50979561f; + x[2] = (x4 + x3)*0.54119611f; + x[3] = (x0 - x5)*0.60134488f; + x[5] = (x0 + x5)*0.89997619f; + x[6] = (x4 - x3)*1.30656302f; + x[7] = (xt - x7)*2.56291556f; + } + for (i = 0; i < 7; i++, y += 4*18) + { + y[0*18] = t[0][i]; + y[1*18] = t[2][i] + t[3][i] + t[3][i + 1]; + y[2*18] = t[1][i] + t[1][i + 1]; + y[3*18] = t[2][i + 1] + t[3][i] + t[3][i + 1]; + } + y[0*18] = t[0][7]; + y[1*18] = t[2][7] + t[3][7]; + y[2*18] = t[1][7]; + y[3*18] = t[3][7]; + } +#endif +} +#ifndef DR_MP3_FLOAT_OUTPUT +typedef drmp3_int16 drmp3d_sample_t; +static drmp3_int16 drmp3d_scale_pcm(float sample) +{ + drmp3_int16 s; +#if DRMP3_HAVE_ARMV6 + drmp3_int32 s32 = (drmp3_int32)(sample + .5f); + s32 -= (s32 < 0); + s = (drmp3_int16)drmp3_clip_int16_arm(s32); +#else + if (sample >= 32766.5) return (drmp3_int16) 32767; + if (sample <= -32767.5) return (drmp3_int16)-32768; + s = (drmp3_int16)(sample + .5f); + s -= (s < 0); +#endif + return s; +} +#else +typedef float drmp3d_sample_t; +static float drmp3d_scale_pcm(float sample) +{ + return sample*(1.f/32768.f); +} +#endif +static void drmp3d_synth_pair(drmp3d_sample_t *pcm, int nch, const float *z) +{ + float a; + a = (z[14*64] - z[ 0]) * 29; + a += (z[ 1*64] + z[13*64]) * 213; + a += (z[12*64] - z[ 2*64]) * 459; + a += (z[ 3*64] + z[11*64]) * 2037; + a += (z[10*64] - z[ 4*64]) * 5153; + a += (z[ 5*64] + z[ 9*64]) * 6574; + a += (z[ 8*64] - z[ 6*64]) * 37489; + a += z[ 7*64] * 75038; + pcm[0] = drmp3d_scale_pcm(a); + z += 2; + a = z[14*64] * 104; + a += z[12*64] * 1567; + a += z[10*64] * 9727; + a += z[ 8*64] * 64019; + a += z[ 6*64] * -9975; + a += z[ 4*64] * -45; + a += z[ 2*64] * 146; + a += z[ 0*64] * -5; + pcm[16*nch] = drmp3d_scale_pcm(a); +} +static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) +{ + int i; + float *xr = xl + 576*(nch - 1); + drmp3d_sample_t *dstr = dstl + (nch - 1); + static const float g_win[] = { + -1,26,-31,208,218,401,-519,2063,2000,4788,-5517,7134,5959,35640,-39336,74992, + -1,24,-35,202,222,347,-581,2080,1952,4425,-5879,7640,5288,33791,-41176,74856, + -1,21,-38,196,225,294,-645,2087,1893,4063,-6237,8092,4561,31947,-43006,74630, + -1,19,-41,190,227,244,-711,2085,1822,3705,-6589,8492,3776,30112,-44821,74313, + -1,17,-45,183,228,197,-779,2075,1739,3351,-6935,8840,2935,28289,-46617,73908, + -1,16,-49,176,228,153,-848,2057,1644,3004,-7271,9139,2037,26482,-48390,73415, + -2,14,-53,169,227,111,-919,2032,1535,2663,-7597,9389,1082,24694,-50137,72835, + -2,13,-58,161,224,72,-991,2001,1414,2330,-7910,9592,70,22929,-51853,72169, + -2,11,-63,154,221,36,-1064,1962,1280,2006,-8209,9750,-998,21189,-53534,71420, + -2,10,-68,147,215,2,-1137,1919,1131,1692,-8491,9863,-2122,19478,-55178,70590, + -3,9,-73,139,208,-29,-1210,1870,970,1388,-8755,9935,-3300,17799,-56778,69679, + -3,8,-79,132,200,-57,-1283,1817,794,1095,-8998,9966,-4533,16155,-58333,68692, + -4,7,-85,125,189,-83,-1356,1759,605,814,-9219,9959,-5818,14548,-59838,67629, + -4,7,-91,117,177,-106,-1428,1698,402,545,-9416,9916,-7154,12980,-61289,66494, + -5,6,-97,111,163,-127,-1498,1634,185,288,-9585,9838,-8540,11455,-62684,65290 + }; + float *zlin = lins + 15*64; + const float *w = g_win; + zlin[4*15] = xl[18*16]; + zlin[4*15 + 1] = xr[18*16]; + zlin[4*15 + 2] = xl[0]; + zlin[4*15 + 3] = xr[0]; + zlin[4*31] = xl[1 + 18*16]; + zlin[4*31 + 1] = xr[1 + 18*16]; + zlin[4*31 + 2] = xl[1]; + zlin[4*31 + 3] = xr[1]; + drmp3d_synth_pair(dstr, nch, lins + 4*15 + 1); + drmp3d_synth_pair(dstr + 32*nch, nch, lins + 4*15 + 64 + 1); + drmp3d_synth_pair(dstl, nch, lins + 4*15); + drmp3d_synth_pair(dstl + 32*nch, nch, lins + 4*15 + 64); +#if DRMP3_HAVE_SIMD + if (drmp3_have_simd()) for (i = 14; i >= 0; i--) + { +#define DRMP3_VLOAD(k) drmp3_f4 w0 = DRMP3_VSET(*w++); drmp3_f4 w1 = DRMP3_VSET(*w++); drmp3_f4 vz = DRMP3_VLD(&zlin[4*i - 64*k]); drmp3_f4 vy = DRMP3_VLD(&zlin[4*i - 64*(15 - k)]); +#define DRMP3_V0(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0)) ; a = DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1)); } +#define DRMP3_V1(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1))); } +#define DRMP3_V2(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vy, w1), DRMP3_VMUL(vz, w0))); } + drmp3_f4 a, b; + zlin[4*i] = xl[18*(31 - i)]; + zlin[4*i + 1] = xr[18*(31 - i)]; + zlin[4*i + 2] = xl[1 + 18*(31 - i)]; + zlin[4*i + 3] = xr[1 + 18*(31 - i)]; + zlin[4*i + 64] = xl[1 + 18*(1 + i)]; + zlin[4*i + 64 + 1] = xr[1 + 18*(1 + i)]; + zlin[4*i - 64 + 2] = xl[18*(1 + i)]; + zlin[4*i - 64 + 3] = xr[18*(1 + i)]; + DRMP3_V0(0) DRMP3_V2(1) DRMP3_V1(2) DRMP3_V2(3) DRMP3_V1(4) DRMP3_V2(5) DRMP3_V1(6) DRMP3_V2(7) + { +#ifndef DR_MP3_FLOAT_OUTPUT +#if DRMP3_HAVE_SSE + static const drmp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f }; + static const drmp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f }; + __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, g_max), g_min)), + _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, g_max), g_min))); + dstr[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); + dstr[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); + dstl[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); + dstl[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); + dstr[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); + dstr[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); + dstl[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); + dstl[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); +#else + int16x4_t pcma, pcmb; + a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); + b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + vst1_lane_s16(dstr + (15 - i)*nch, pcma, 1); + vst1_lane_s16(dstr + (17 + i)*nch, pcmb, 1); + vst1_lane_s16(dstl + (15 - i)*nch, pcma, 0); + vst1_lane_s16(dstl + (17 + i)*nch, pcmb, 0); + vst1_lane_s16(dstr + (47 - i)*nch, pcma, 3); + vst1_lane_s16(dstr + (49 + i)*nch, pcmb, 3); + vst1_lane_s16(dstl + (47 - i)*nch, pcma, 2); + vst1_lane_s16(dstl + (49 + i)*nch, pcmb, 2); +#endif +#else + static const drmp3_f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f }; + a = DRMP3_VMUL(a, g_scale); + b = DRMP3_VMUL(b, g_scale); +#if DRMP3_HAVE_SSE + _mm_store_ss(dstr + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(1, 1, 1, 1))); + _mm_store_ss(dstr + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(1, 1, 1, 1))); + _mm_store_ss(dstl + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(0, 0, 0, 0))); + _mm_store_ss(dstl + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(0, 0, 0, 0))); + _mm_store_ss(dstr + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 3, 3, 3))); + _mm_store_ss(dstr + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 3, 3, 3))); + _mm_store_ss(dstl + (47 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(2, 2, 2, 2))); + _mm_store_ss(dstl + (49 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(2, 2, 2, 2))); +#else + vst1q_lane_f32(dstr + (15 - i)*nch, a, 1); + vst1q_lane_f32(dstr + (17 + i)*nch, b, 1); + vst1q_lane_f32(dstl + (15 - i)*nch, a, 0); + vst1q_lane_f32(dstl + (17 + i)*nch, b, 0); + vst1q_lane_f32(dstr + (47 - i)*nch, a, 3); + vst1q_lane_f32(dstr + (49 + i)*nch, b, 3); + vst1q_lane_f32(dstl + (47 - i)*nch, a, 2); + vst1q_lane_f32(dstl + (49 + i)*nch, b, 2); +#endif +#endif + } + } else +#endif +#ifdef DR_MP3_ONLY_SIMD + {} +#else + for (i = 14; i >= 0; i--) + { +#define DRMP3_LOAD(k) float w0 = *w++; float w1 = *w++; float *vz = &zlin[4*i - k*64]; float *vy = &zlin[4*i - (15 - k)*64]; +#define DRMP3_S0(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] = vz[j]*w1 + vy[j]*w0, a[j] = vz[j]*w0 - vy[j]*w1; } +#define DRMP3_S1(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vz[j]*w0 - vy[j]*w1; } +#define DRMP3_S2(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vy[j]*w1 - vz[j]*w0; } + float a[4], b[4]; + zlin[4*i] = xl[18*(31 - i)]; + zlin[4*i + 1] = xr[18*(31 - i)]; + zlin[4*i + 2] = xl[1 + 18*(31 - i)]; + zlin[4*i + 3] = xr[1 + 18*(31 - i)]; + zlin[4*(i + 16)] = xl[1 + 18*(1 + i)]; + zlin[4*(i + 16) + 1] = xr[1 + 18*(1 + i)]; + zlin[4*(i - 16) + 2] = xl[18*(1 + i)]; + zlin[4*(i - 16) + 3] = xr[18*(1 + i)]; + DRMP3_S0(0) DRMP3_S2(1) DRMP3_S1(2) DRMP3_S2(3) DRMP3_S1(4) DRMP3_S2(5) DRMP3_S1(6) DRMP3_S2(7) + dstr[(15 - i)*nch] = drmp3d_scale_pcm(a[1]); + dstr[(17 + i)*nch] = drmp3d_scale_pcm(b[1]); + dstl[(15 - i)*nch] = drmp3d_scale_pcm(a[0]); + dstl[(17 + i)*nch] = drmp3d_scale_pcm(b[0]); + dstr[(47 - i)*nch] = drmp3d_scale_pcm(a[3]); + dstr[(49 + i)*nch] = drmp3d_scale_pcm(b[3]); + dstl[(47 - i)*nch] = drmp3d_scale_pcm(a[2]); + dstl[(49 + i)*nch] = drmp3d_scale_pcm(b[2]); + } +#endif +} +static void drmp3d_synth_granule(float *qmf_state, float *grbuf, int nbands, int nch, drmp3d_sample_t *pcm, float *lins) +{ + int i; + for (i = 0; i < nch; i++) + { + drmp3d_DCT_II(grbuf + 576*i, nbands); + } + memcpy(lins, qmf_state, sizeof(float)*15*64); + for (i = 0; i < nbands; i += 2) + { + drmp3d_synth(grbuf + i, pcm + 32*nch*i, nch, lins + i*64); + } +#ifndef DR_MP3_NONSTANDARD_BUT_LOGICAL + if (nch == 1) + { + for (i = 0; i < 15*64; i += 2) + { + qmf_state[i] = lins[nbands*64 + i]; + } + } else +#endif + { + memcpy(qmf_state, lins + nbands*64, sizeof(float)*15*64); + } +} +static int drmp3d_match_frame(const drmp3_uint8 *hdr, int mp3_bytes, int frame_bytes) +{ + int i, nmatch; + for (i = 0, nmatch = 0; nmatch < DRMP3_MAX_FRAME_SYNC_MATCHES; nmatch++) + { + i += drmp3_hdr_frame_bytes(hdr + i, frame_bytes) + drmp3_hdr_padding(hdr + i); + if (i + DRMP3_HDR_SIZE > mp3_bytes) + return nmatch > 0; + if (!drmp3_hdr_compare(hdr, hdr + i)) + return 0; + } + return 1; +} +static int drmp3d_find_frame(const drmp3_uint8 *mp3, int mp3_bytes, int *free_format_bytes, int *ptr_frame_bytes) +{ + int i, k; + for (i = 0; i < mp3_bytes - DRMP3_HDR_SIZE; i++, mp3++) + { + if (drmp3_hdr_valid(mp3)) + { + int frame_bytes = drmp3_hdr_frame_bytes(mp3, *free_format_bytes); + int frame_and_padding = frame_bytes + drmp3_hdr_padding(mp3); + for (k = DRMP3_HDR_SIZE; !frame_bytes && k < DRMP3_MAX_FREE_FORMAT_FRAME_SIZE && i + 2*k < mp3_bytes - DRMP3_HDR_SIZE; k++) + { + if (drmp3_hdr_compare(mp3, mp3 + k)) + { + int fb = k - drmp3_hdr_padding(mp3); + int nextfb = fb + drmp3_hdr_padding(mp3 + k); + if (i + k + nextfb + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + k + nextfb)) + continue; + frame_and_padding = k; + frame_bytes = fb; + *free_format_bytes = fb; + } + } + if ((frame_bytes && i + frame_and_padding <= mp3_bytes && + drmp3d_match_frame(mp3, mp3_bytes - i, frame_bytes)) || + (!i && frame_and_padding == mp3_bytes)) + { + *ptr_frame_bytes = frame_and_padding; + return i; + } + *free_format_bytes = 0; + } + } + *ptr_frame_bytes = 0; + return mp3_bytes; +} +DRMP3_API void drmp3dec_init(drmp3dec *dec) +{ + dec->header[0] = 0; +} +DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info) +{ + int i = 0, igr, frame_size = 0, success = 1; + const drmp3_uint8 *hdr; + drmp3_bs bs_frame[1]; + drmp3dec_scratch scratch; + if (mp3_bytes > 4 && dec->header[0] == 0xff && drmp3_hdr_compare(dec->header, mp3)) + { + frame_size = drmp3_hdr_frame_bytes(mp3, dec->free_format_bytes) + drmp3_hdr_padding(mp3); + if (frame_size != mp3_bytes && (frame_size + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + frame_size))) + { + frame_size = 0; + } + } + if (!frame_size) + { + memset(dec, 0, sizeof(drmp3dec)); + i = drmp3d_find_frame(mp3, mp3_bytes, &dec->free_format_bytes, &frame_size); + if (!frame_size || i + frame_size > mp3_bytes) + { + info->frame_bytes = i; + return 0; + } + } + hdr = mp3 + i; + memcpy(dec->header, hdr, DRMP3_HDR_SIZE); + info->frame_bytes = i + frame_size; + info->channels = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; + info->hz = drmp3_hdr_sample_rate_hz(hdr); + info->layer = 4 - DRMP3_HDR_GET_LAYER(hdr); + info->bitrate_kbps = drmp3_hdr_bitrate_kbps(hdr); + drmp3_bs_init(bs_frame, hdr + DRMP3_HDR_SIZE, frame_size - DRMP3_HDR_SIZE); + if (DRMP3_HDR_IS_CRC(hdr)) + { + drmp3_bs_get_bits(bs_frame, 16); + } + if (info->layer == 3) + { + int main_data_begin = drmp3_L3_read_side_info(bs_frame, scratch.gr_info, hdr); + if (main_data_begin < 0 || bs_frame->pos > bs_frame->limit) + { + drmp3dec_init(dec); + return 0; + } + success = drmp3_L3_restore_reservoir(dec, bs_frame, &scratch, main_data_begin); + if (success && pcm != NULL) + { + for (igr = 0; igr < (DRMP3_HDR_TEST_MPEG1(hdr) ? 2 : 1); igr++, pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*576*info->channels)) + { + memset(scratch.grbuf[0], 0, 576*2*sizeof(float)); + drmp3_L3_decode(dec, &scratch, scratch.gr_info + igr*info->channels, info->channels); + drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 18, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]); + } + } + drmp3_L3_save_reservoir(dec, &scratch); + } else + { +#ifdef DR_MP3_ONLY_MP3 + return 0; +#else + drmp3_L12_scale_info sci[1]; + if (pcm == NULL) { + return drmp3_hdr_frame_samples(hdr); + } + drmp3_L12_read_scale_info(hdr, bs_frame, sci); + memset(scratch.grbuf[0], 0, 576*2*sizeof(float)); + for (i = 0, igr = 0; igr < 3; igr++) + { + if (12 == (i += drmp3_L12_dequantize_granule(scratch.grbuf[0] + i, bs_frame, sci, info->layer | 1))) + { + i = 0; + drmp3_L12_apply_scf_384(sci, sci->scf + igr, scratch.grbuf[0]); + drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 12, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]); + memset(scratch.grbuf[0], 0, 576*2*sizeof(float)); + pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*384*info->channels); + } + if (bs_frame->pos > bs_frame->limit) + { + drmp3dec_init(dec); + return 0; + } + } +#endif + } + return success*drmp3_hdr_frame_samples(dec->header); +} +DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples) +{ + size_t i = 0; +#if DRMP3_HAVE_SIMD + size_t aligned_count = num_samples & ~7; + for(; i < aligned_count; i+=8) + { + drmp3_f4 scale = DRMP3_VSET(32768.0f); + drmp3_f4 a = DRMP3_VMUL(DRMP3_VLD(&in[i ]), scale); + drmp3_f4 b = DRMP3_VMUL(DRMP3_VLD(&in[i+4]), scale); +#if DRMP3_HAVE_SSE + drmp3_f4 s16max = DRMP3_VSET( 32767.0f); + drmp3_f4 s16min = DRMP3_VSET(-32768.0f); + __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, s16max), s16min)), + _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, s16max), s16min))); + out[i ] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); + out[i+1] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); + out[i+2] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); + out[i+3] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); + out[i+4] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); + out[i+5] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); + out[i+6] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); + out[i+7] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); +#else + int16x4_t pcma, pcmb; + a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); + b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + vst1_lane_s16(out+i , pcma, 0); + vst1_lane_s16(out+i+1, pcma, 1); + vst1_lane_s16(out+i+2, pcma, 2); + vst1_lane_s16(out+i+3, pcma, 3); + vst1_lane_s16(out+i+4, pcmb, 0); + vst1_lane_s16(out+i+5, pcmb, 1); + vst1_lane_s16(out+i+6, pcmb, 2); + vst1_lane_s16(out+i+7, pcmb, 3); +#endif + } +#endif + for(; i < num_samples; i++) + { + float sample = in[i] * 32768.0f; + if (sample >= 32766.5) + out[i] = (drmp3_int16) 32767; + else if (sample <= -32767.5) + out[i] = (drmp3_int16)-32768; + else + { + short s = (drmp3_int16)(sample + .5f); + s -= (s < 0); + out[i] = s; + } + } +} +#include +#if defined(SIZE_MAX) + #define DRMP3_SIZE_MAX SIZE_MAX +#else + #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) + #define DRMP3_SIZE_MAX ((drmp3_uint64)0xFFFFFFFFFFFFFFFF) + #else + #define DRMP3_SIZE_MAX 0xFFFFFFFF + #endif +#endif +#ifndef DRMP3_SEEK_LEADING_MP3_FRAMES +#define DRMP3_SEEK_LEADING_MP3_FRAMES 2 +#endif +#define DRMP3_MIN_DATA_CHUNK_SIZE 16384 +#ifndef DRMP3_DATA_CHUNK_SIZE +#define DRMP3_DATA_CHUNK_SIZE DRMP3_MIN_DATA_CHUNK_SIZE*4 +#endif +#ifndef DRMP3_ASSERT +#include +#define DRMP3_ASSERT(expression) assert(expression) +#endif +#ifndef DRMP3_COPY_MEMORY +#define DRMP3_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#endif +#ifndef DRMP3_ZERO_MEMORY +#define DRMP3_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#endif +#define DRMP3_ZERO_OBJECT(p) DRMP3_ZERO_MEMORY((p), sizeof(*(p))) +#ifndef DRMP3_MALLOC +#define DRMP3_MALLOC(sz) malloc((sz)) +#endif +#ifndef DRMP3_REALLOC +#define DRMP3_REALLOC(p, sz) realloc((p), (sz)) +#endif +#ifndef DRMP3_FREE +#define DRMP3_FREE(p) free((p)) +#endif +#define DRMP3_COUNTOF(x) (sizeof(x) / sizeof(x[0])) +#define DRMP3_CLAMP(x, lo, hi) (DRMP3_MAX(lo, DRMP3_MIN(x, hi))) +#ifndef DRMP3_PI_D +#define DRMP3_PI_D 3.14159265358979323846264 +#endif +#define DRMP3_DEFAULT_RESAMPLER_LPF_ORDER 2 +static DRMP3_INLINE float drmp3_mix_f32(float x, float y, float a) +{ + return x*(1-a) + y*a; +} +static DRMP3_INLINE float drmp3_mix_f32_fast(float x, float y, float a) +{ + float r0 = (y - x); + float r1 = r0*a; + return x + r1; +} +static DRMP3_INLINE drmp3_uint32 drmp3_gcf_u32(drmp3_uint32 a, drmp3_uint32 b) +{ + for (;;) { + if (b == 0) { + break; + } else { + drmp3_uint32 t = a; + a = b; + b = t % a; + } + } + return a; +} +static DRMP3_INLINE double drmp3_sin(double x) +{ + return sin(x); +} +static DRMP3_INLINE double drmp3_exp(double x) +{ + return exp(x); +} +static DRMP3_INLINE double drmp3_cos(double x) +{ + return drmp3_sin((DRMP3_PI_D*0.5) - x); +} +static void* drmp3__malloc_default(size_t sz, void* pUserData) +{ + (void)pUserData; + return DRMP3_MALLOC(sz); +} +static void* drmp3__realloc_default(void* p, size_t sz, void* pUserData) +{ + (void)pUserData; + return DRMP3_REALLOC(p, sz); +} +static void drmp3__free_default(void* p, void* pUserData) +{ + (void)pUserData; + DRMP3_FREE(p); +} +static void* drmp3__malloc_from_callbacks(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + if (pAllocationCallbacks->onMalloc != NULL) { + return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); + } + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); + } + return NULL; +} +static void* drmp3__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks == NULL) { + return NULL; + } + if (pAllocationCallbacks->onRealloc != NULL) { + return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); + } + if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { + void* p2; + p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); + if (p2 == NULL) { + return NULL; + } + if (p != NULL) { + DRMP3_COPY_MEMORY(p2, p, szOld); + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } + return p2; + } + return NULL; +} +static void drmp3__free_from_callbacks(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (p == NULL || pAllocationCallbacks == NULL) { + return; + } + if (pAllocationCallbacks->onFree != NULL) { + pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); + } +} +static drmp3_allocation_callbacks drmp3_copy_allocation_callbacks_or_defaults(const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + return *pAllocationCallbacks; + } else { + drmp3_allocation_callbacks allocationCallbacks; + allocationCallbacks.pUserData = NULL; + allocationCallbacks.onMalloc = drmp3__malloc_default; + allocationCallbacks.onRealloc = drmp3__realloc_default; + allocationCallbacks.onFree = drmp3__free_default; + return allocationCallbacks; + } +} +static size_t drmp3__on_read(drmp3* pMP3, void* pBufferOut, size_t bytesToRead) +{ + size_t bytesRead = pMP3->onRead(pMP3->pUserData, pBufferOut, bytesToRead); + pMP3->streamCursor += bytesRead; + return bytesRead; +} +static drmp3_bool32 drmp3__on_seek(drmp3* pMP3, int offset, drmp3_seek_origin origin) +{ + DRMP3_ASSERT(offset >= 0); + if (!pMP3->onSeek(pMP3->pUserData, offset, origin)) { + return DRMP3_FALSE; + } + if (origin == drmp3_seek_origin_start) { + pMP3->streamCursor = (drmp3_uint64)offset; + } else { + pMP3->streamCursor += offset; + } + return DRMP3_TRUE; +} +static drmp3_bool32 drmp3__on_seek_64(drmp3* pMP3, drmp3_uint64 offset, drmp3_seek_origin origin) +{ + if (offset <= 0x7FFFFFFF) { + return drmp3__on_seek(pMP3, (int)offset, origin); + } + if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_start)) { + return DRMP3_FALSE; + } + offset -= 0x7FFFFFFF; + while (offset > 0) { + if (offset <= 0x7FFFFFFF) { + if (!drmp3__on_seek(pMP3, (int)offset, drmp3_seek_origin_current)) { + return DRMP3_FALSE; + } + offset = 0; + } else { + if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_current)) { + return DRMP3_FALSE; + } + offset -= 0x7FFFFFFF; + } + } + return DRMP3_TRUE; +} +static drmp3_uint32 drmp3_decode_next_frame_ex__callbacks(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +{ + drmp3_uint32 pcmFramesRead = 0; + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + if (pMP3->atEnd) { + return 0; + } + for (;;) { + drmp3dec_frame_info info; + if (pMP3->dataSize < DRMP3_MIN_DATA_CHUNK_SIZE) { + size_t bytesRead; + if (pMP3->pData != NULL) { + memmove(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + } + pMP3->dataConsumed = 0; + if (pMP3->dataCapacity < DRMP3_DATA_CHUNK_SIZE) { + drmp3_uint8* pNewData; + size_t newDataCap; + newDataCap = DRMP3_DATA_CHUNK_SIZE; + pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + if (pNewData == NULL) { + return 0; + } + pMP3->pData = pNewData; + pMP3->dataCapacity = newDataCap; + } + bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + if (bytesRead == 0) { + if (pMP3->dataSize == 0) { + pMP3->atEnd = DRMP3_TRUE; + return 0; + } + } + pMP3->dataSize += bytesRead; + } + if (pMP3->dataSize > INT_MAX) { + pMP3->atEnd = DRMP3_TRUE; + return 0; + } + DRMP3_ASSERT(pMP3->pData != NULL); + DRMP3_ASSERT(pMP3->dataCapacity > 0); + pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->pData + pMP3->dataConsumed, (int)pMP3->dataSize, pPCMFrames, &info); + if (info.frame_bytes > 0) { + pMP3->dataConsumed += (size_t)info.frame_bytes; + pMP3->dataSize -= (size_t)info.frame_bytes; + } + if (pcmFramesRead > 0) { + pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header); + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; + pMP3->mp3FrameChannels = info.channels; + pMP3->mp3FrameSampleRate = info.hz; + break; + } else if (info.frame_bytes == 0) { + size_t bytesRead; + memmove(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + pMP3->dataConsumed = 0; + if (pMP3->dataCapacity == pMP3->dataSize) { + drmp3_uint8* pNewData; + size_t newDataCap; + newDataCap = pMP3->dataCapacity + DRMP3_DATA_CHUNK_SIZE; + pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + if (pNewData == NULL) { + return 0; + } + pMP3->pData = pNewData; + pMP3->dataCapacity = newDataCap; + } + bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + if (bytesRead == 0) { + pMP3->atEnd = DRMP3_TRUE; + return 0; + } + pMP3->dataSize += bytesRead; + } + }; + return pcmFramesRead; +} +static drmp3_uint32 drmp3_decode_next_frame_ex__memory(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +{ + drmp3_uint32 pcmFramesRead = 0; + drmp3dec_frame_info info; + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->memory.pData != NULL); + if (pMP3->atEnd) { + return 0; + } + pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->memory.pData + pMP3->memory.currentReadPos, (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos), pPCMFrames, &info); + if (pcmFramesRead > 0) { + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; + pMP3->mp3FrameChannels = info.channels; + pMP3->mp3FrameSampleRate = info.hz; + } + pMP3->memory.currentReadPos += (size_t)info.frame_bytes; + return pcmFramesRead; +} +static drmp3_uint32 drmp3_decode_next_frame_ex(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +{ + if (pMP3->memory.pData != NULL && pMP3->memory.dataSize > 0) { + return drmp3_decode_next_frame_ex__memory(pMP3, pPCMFrames); + } else { + return drmp3_decode_next_frame_ex__callbacks(pMP3, pPCMFrames); + } +} +static drmp3_uint32 drmp3_decode_next_frame(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + return drmp3_decode_next_frame_ex(pMP3, (drmp3d_sample_t*)pMP3->pcmFrames); +} +#if 0 +static drmp3_uint32 drmp3_seek_next_frame(drmp3* pMP3) +{ + drmp3_uint32 pcmFrameCount; + DRMP3_ASSERT(pMP3 != NULL); + pcmFrameCount = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFrameCount == 0) { + return 0; + } + pMP3->currentPCMFrame += pcmFrameCount; + pMP3->pcmFramesConsumedInMP3Frame = pcmFrameCount; + pMP3->pcmFramesRemainingInMP3Frame = 0; + return pcmFrameCount; +} +#endif +static drmp3_bool32 drmp3_init_internal(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(onRead != NULL); + drmp3dec_init(&pMP3->decoder); + pMP3->onRead = onRead; + pMP3->onSeek = onSeek; + pMP3->pUserData = pUserData; + pMP3->allocationCallbacks = drmp3_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + if (pMP3->allocationCallbacks.onFree == NULL || (pMP3->allocationCallbacks.onMalloc == NULL && pMP3->allocationCallbacks.onRealloc == NULL)) { + return DRMP3_FALSE; + } + if (!drmp3_decode_next_frame(pMP3)) { + drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); + return DRMP3_FALSE; + } + pMP3->channels = pMP3->mp3FrameChannels; + pMP3->sampleRate = pMP3->mp3FrameSampleRate; + return DRMP3_TRUE; +} +DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pMP3 == NULL || onRead == NULL) { + return DRMP3_FALSE; + } + DRMP3_ZERO_OBJECT(pMP3); + return drmp3_init_internal(pMP3, onRead, onSeek, pUserData, pAllocationCallbacks); +} +static size_t drmp3__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + drmp3* pMP3 = (drmp3*)pUserData; + size_t bytesRemaining; + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->memory.dataSize >= pMP3->memory.currentReadPos); + bytesRemaining = pMP3->memory.dataSize - pMP3->memory.currentReadPos; + if (bytesToRead > bytesRemaining) { + bytesToRead = bytesRemaining; + } + if (bytesToRead > 0) { + DRMP3_COPY_MEMORY(pBufferOut, pMP3->memory.pData + pMP3->memory.currentReadPos, bytesToRead); + pMP3->memory.currentReadPos += bytesToRead; + } + return bytesToRead; +} +static drmp3_bool32 drmp3__on_seek_memory(void* pUserData, int byteOffset, drmp3_seek_origin origin) +{ + drmp3* pMP3 = (drmp3*)pUserData; + DRMP3_ASSERT(pMP3 != NULL); + if (origin == drmp3_seek_origin_current) { + if (byteOffset > 0) { + if (pMP3->memory.currentReadPos + byteOffset > pMP3->memory.dataSize) { + byteOffset = (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos); + } + } else { + if (pMP3->memory.currentReadPos < (size_t)-byteOffset) { + byteOffset = -(int)pMP3->memory.currentReadPos; + } + } + pMP3->memory.currentReadPos += byteOffset; + } else { + if ((drmp3_uint32)byteOffset <= pMP3->memory.dataSize) { + pMP3->memory.currentReadPos = byteOffset; + } else { + pMP3->memory.currentReadPos = pMP3->memory.dataSize; + } + } + return DRMP3_TRUE; +} +DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + DRMP3_ZERO_OBJECT(pMP3); + if (pData == NULL || dataSize == 0) { + return DRMP3_FALSE; + } + pMP3->memory.pData = (const drmp3_uint8*)pData; + pMP3->memory.dataSize = dataSize; + pMP3->memory.currentReadPos = 0; + return drmp3_init_internal(pMP3, drmp3__on_read_memory, drmp3__on_seek_memory, pMP3, pAllocationCallbacks); +} +#ifndef DR_MP3_NO_STDIO +#include +#include +#include +static drmp3_result drmp3_result_from_errno(int e) +{ + switch (e) + { + case 0: return DRMP3_SUCCESS; + #ifdef EPERM + case EPERM: return DRMP3_INVALID_OPERATION; + #endif + #ifdef ENOENT + case ENOENT: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef ESRCH + case ESRCH: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef EINTR + case EINTR: return DRMP3_INTERRUPT; + #endif + #ifdef EIO + case EIO: return DRMP3_IO_ERROR; + #endif + #ifdef ENXIO + case ENXIO: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef E2BIG + case E2BIG: return DRMP3_INVALID_ARGS; + #endif + #ifdef ENOEXEC + case ENOEXEC: return DRMP3_INVALID_FILE; + #endif + #ifdef EBADF + case EBADF: return DRMP3_INVALID_FILE; + #endif + #ifdef ECHILD + case ECHILD: return DRMP3_ERROR; + #endif + #ifdef EAGAIN + case EAGAIN: return DRMP3_UNAVAILABLE; + #endif + #ifdef ENOMEM + case ENOMEM: return DRMP3_OUT_OF_MEMORY; + #endif + #ifdef EACCES + case EACCES: return DRMP3_ACCESS_DENIED; + #endif + #ifdef EFAULT + case EFAULT: return DRMP3_BAD_ADDRESS; + #endif + #ifdef ENOTBLK + case ENOTBLK: return DRMP3_ERROR; + #endif + #ifdef EBUSY + case EBUSY: return DRMP3_BUSY; + #endif + #ifdef EEXIST + case EEXIST: return DRMP3_ALREADY_EXISTS; + #endif + #ifdef EXDEV + case EXDEV: return DRMP3_ERROR; + #endif + #ifdef ENODEV + case ENODEV: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef ENOTDIR + case ENOTDIR: return DRMP3_NOT_DIRECTORY; + #endif + #ifdef EISDIR + case EISDIR: return DRMP3_IS_DIRECTORY; + #endif + #ifdef EINVAL + case EINVAL: return DRMP3_INVALID_ARGS; + #endif + #ifdef ENFILE + case ENFILE: return DRMP3_TOO_MANY_OPEN_FILES; + #endif + #ifdef EMFILE + case EMFILE: return DRMP3_TOO_MANY_OPEN_FILES; + #endif + #ifdef ENOTTY + case ENOTTY: return DRMP3_INVALID_OPERATION; + #endif + #ifdef ETXTBSY + case ETXTBSY: return DRMP3_BUSY; + #endif + #ifdef EFBIG + case EFBIG: return DRMP3_TOO_BIG; + #endif + #ifdef ENOSPC + case ENOSPC: return DRMP3_NO_SPACE; + #endif + #ifdef ESPIPE + case ESPIPE: return DRMP3_BAD_SEEK; + #endif + #ifdef EROFS + case EROFS: return DRMP3_ACCESS_DENIED; + #endif + #ifdef EMLINK + case EMLINK: return DRMP3_TOO_MANY_LINKS; + #endif + #ifdef EPIPE + case EPIPE: return DRMP3_BAD_PIPE; + #endif + #ifdef EDOM + case EDOM: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef ERANGE + case ERANGE: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef EDEADLK + case EDEADLK: return DRMP3_DEADLOCK; + #endif + #ifdef ENAMETOOLONG + case ENAMETOOLONG: return DRMP3_PATH_TOO_LONG; + #endif + #ifdef ENOLCK + case ENOLCK: return DRMP3_ERROR; + #endif + #ifdef ENOSYS + case ENOSYS: return DRMP3_NOT_IMPLEMENTED; + #endif + #ifdef ENOTEMPTY + case ENOTEMPTY: return DRMP3_DIRECTORY_NOT_EMPTY; + #endif + #ifdef ELOOP + case ELOOP: return DRMP3_TOO_MANY_LINKS; + #endif + #ifdef ENOMSG + case ENOMSG: return DRMP3_NO_MESSAGE; + #endif + #ifdef EIDRM + case EIDRM: return DRMP3_ERROR; + #endif + #ifdef ECHRNG + case ECHRNG: return DRMP3_ERROR; + #endif + #ifdef EL2NSYNC + case EL2NSYNC: return DRMP3_ERROR; + #endif + #ifdef EL3HLT + case EL3HLT: return DRMP3_ERROR; + #endif + #ifdef EL3RST + case EL3RST: return DRMP3_ERROR; + #endif + #ifdef ELNRNG + case ELNRNG: return DRMP3_OUT_OF_RANGE; + #endif + #ifdef EUNATCH + case EUNATCH: return DRMP3_ERROR; + #endif + #ifdef ENOCSI + case ENOCSI: return DRMP3_ERROR; + #endif + #ifdef EL2HLT + case EL2HLT: return DRMP3_ERROR; + #endif + #ifdef EBADE + case EBADE: return DRMP3_ERROR; + #endif + #ifdef EBADR + case EBADR: return DRMP3_ERROR; + #endif + #ifdef EXFULL + case EXFULL: return DRMP3_ERROR; + #endif + #ifdef ENOANO + case ENOANO: return DRMP3_ERROR; + #endif + #ifdef EBADRQC + case EBADRQC: return DRMP3_ERROR; + #endif + #ifdef EBADSLT + case EBADSLT: return DRMP3_ERROR; + #endif + #ifdef EBFONT + case EBFONT: return DRMP3_INVALID_FILE; + #endif + #ifdef ENOSTR + case ENOSTR: return DRMP3_ERROR; + #endif + #ifdef ENODATA + case ENODATA: return DRMP3_NO_DATA_AVAILABLE; + #endif + #ifdef ETIME + case ETIME: return DRMP3_TIMEOUT; + #endif + #ifdef ENOSR + case ENOSR: return DRMP3_NO_DATA_AVAILABLE; + #endif + #ifdef ENONET + case ENONET: return DRMP3_NO_NETWORK; + #endif + #ifdef ENOPKG + case ENOPKG: return DRMP3_ERROR; + #endif + #ifdef EREMOTE + case EREMOTE: return DRMP3_ERROR; + #endif + #ifdef ENOLINK + case ENOLINK: return DRMP3_ERROR; + #endif + #ifdef EADV + case EADV: return DRMP3_ERROR; + #endif + #ifdef ESRMNT + case ESRMNT: return DRMP3_ERROR; + #endif + #ifdef ECOMM + case ECOMM: return DRMP3_ERROR; + #endif + #ifdef EPROTO + case EPROTO: return DRMP3_ERROR; + #endif + #ifdef EMULTIHOP + case EMULTIHOP: return DRMP3_ERROR; + #endif + #ifdef EDOTDOT + case EDOTDOT: return DRMP3_ERROR; + #endif + #ifdef EBADMSG + case EBADMSG: return DRMP3_BAD_MESSAGE; + #endif + #ifdef EOVERFLOW + case EOVERFLOW: return DRMP3_TOO_BIG; + #endif + #ifdef ENOTUNIQ + case ENOTUNIQ: return DRMP3_NOT_UNIQUE; + #endif + #ifdef EBADFD + case EBADFD: return DRMP3_ERROR; + #endif + #ifdef EREMCHG + case EREMCHG: return DRMP3_ERROR; + #endif + #ifdef ELIBACC + case ELIBACC: return DRMP3_ACCESS_DENIED; + #endif + #ifdef ELIBBAD + case ELIBBAD: return DRMP3_INVALID_FILE; + #endif + #ifdef ELIBSCN + case ELIBSCN: return DRMP3_INVALID_FILE; + #endif + #ifdef ELIBMAX + case ELIBMAX: return DRMP3_ERROR; + #endif + #ifdef ELIBEXEC + case ELIBEXEC: return DRMP3_ERROR; + #endif + #ifdef EILSEQ + case EILSEQ: return DRMP3_INVALID_DATA; + #endif + #ifdef ERESTART + case ERESTART: return DRMP3_ERROR; + #endif + #ifdef ESTRPIPE + case ESTRPIPE: return DRMP3_ERROR; + #endif + #ifdef EUSERS + case EUSERS: return DRMP3_ERROR; + #endif + #ifdef ENOTSOCK + case ENOTSOCK: return DRMP3_NOT_SOCKET; + #endif + #ifdef EDESTADDRREQ + case EDESTADDRREQ: return DRMP3_NO_ADDRESS; + #endif + #ifdef EMSGSIZE + case EMSGSIZE: return DRMP3_TOO_BIG; + #endif + #ifdef EPROTOTYPE + case EPROTOTYPE: return DRMP3_BAD_PROTOCOL; + #endif + #ifdef ENOPROTOOPT + case ENOPROTOOPT: return DRMP3_PROTOCOL_UNAVAILABLE; + #endif + #ifdef EPROTONOSUPPORT + case EPROTONOSUPPORT: return DRMP3_PROTOCOL_NOT_SUPPORTED; + #endif + #ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: return DRMP3_SOCKET_NOT_SUPPORTED; + #endif + #ifdef EOPNOTSUPP + case EOPNOTSUPP: return DRMP3_INVALID_OPERATION; + #endif + #ifdef EPFNOSUPPORT + case EPFNOSUPPORT: return DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EAFNOSUPPORT + case EAFNOSUPPORT: return DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED; + #endif + #ifdef EADDRINUSE + case EADDRINUSE: return DRMP3_ALREADY_IN_USE; + #endif + #ifdef EADDRNOTAVAIL + case EADDRNOTAVAIL: return DRMP3_ERROR; + #endif + #ifdef ENETDOWN + case ENETDOWN: return DRMP3_NO_NETWORK; + #endif + #ifdef ENETUNREACH + case ENETUNREACH: return DRMP3_NO_NETWORK; + #endif + #ifdef ENETRESET + case ENETRESET: return DRMP3_NO_NETWORK; + #endif + #ifdef ECONNABORTED + case ECONNABORTED: return DRMP3_NO_NETWORK; + #endif + #ifdef ECONNRESET + case ECONNRESET: return DRMP3_CONNECTION_RESET; + #endif + #ifdef ENOBUFS + case ENOBUFS: return DRMP3_NO_SPACE; + #endif + #ifdef EISCONN + case EISCONN: return DRMP3_ALREADY_CONNECTED; + #endif + #ifdef ENOTCONN + case ENOTCONN: return DRMP3_NOT_CONNECTED; + #endif + #ifdef ESHUTDOWN + case ESHUTDOWN: return DRMP3_ERROR; + #endif + #ifdef ETOOMANYREFS + case ETOOMANYREFS: return DRMP3_ERROR; + #endif + #ifdef ETIMEDOUT + case ETIMEDOUT: return DRMP3_TIMEOUT; + #endif + #ifdef ECONNREFUSED + case ECONNREFUSED: return DRMP3_CONNECTION_REFUSED; + #endif + #ifdef EHOSTDOWN + case EHOSTDOWN: return DRMP3_NO_HOST; + #endif + #ifdef EHOSTUNREACH + case EHOSTUNREACH: return DRMP3_NO_HOST; + #endif + #ifdef EALREADY + case EALREADY: return DRMP3_IN_PROGRESS; + #endif + #ifdef EINPROGRESS + case EINPROGRESS: return DRMP3_IN_PROGRESS; + #endif + #ifdef ESTALE + case ESTALE: return DRMP3_INVALID_FILE; + #endif + #ifdef EUCLEAN + case EUCLEAN: return DRMP3_ERROR; + #endif + #ifdef ENOTNAM + case ENOTNAM: return DRMP3_ERROR; + #endif + #ifdef ENAVAIL + case ENAVAIL: return DRMP3_ERROR; + #endif + #ifdef EISNAM + case EISNAM: return DRMP3_ERROR; + #endif + #ifdef EREMOTEIO + case EREMOTEIO: return DRMP3_IO_ERROR; + #endif + #ifdef EDQUOT + case EDQUOT: return DRMP3_NO_SPACE; + #endif + #ifdef ENOMEDIUM + case ENOMEDIUM: return DRMP3_DOES_NOT_EXIST; + #endif + #ifdef EMEDIUMTYPE + case EMEDIUMTYPE: return DRMP3_ERROR; + #endif + #ifdef ECANCELED + case ECANCELED: return DRMP3_CANCELLED; + #endif + #ifdef ENOKEY + case ENOKEY: return DRMP3_ERROR; + #endif + #ifdef EKEYEXPIRED + case EKEYEXPIRED: return DRMP3_ERROR; + #endif + #ifdef EKEYREVOKED + case EKEYREVOKED: return DRMP3_ERROR; + #endif + #ifdef EKEYREJECTED + case EKEYREJECTED: return DRMP3_ERROR; + #endif + #ifdef EOWNERDEAD + case EOWNERDEAD: return DRMP3_ERROR; + #endif + #ifdef ENOTRECOVERABLE + case ENOTRECOVERABLE: return DRMP3_ERROR; + #endif + #ifdef ERFKILL + case ERFKILL: return DRMP3_ERROR; + #endif + #ifdef EHWPOISON + case EHWPOISON: return DRMP3_ERROR; + #endif + default: return DRMP3_ERROR; + } +} +static drmp3_result drmp3_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) +{ +#if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err; +#endif + if (ppFile != NULL) { + *ppFile = NULL; + } + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRMP3_INVALID_ARGS; + } +#if defined(_MSC_VER) && _MSC_VER >= 1400 + err = fopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drmp3_result_from_errno(err); + } +#else +#if defined(_WIN32) || defined(__APPLE__) + *ppFile = fopen(pFilePath, pOpenMode); +#else + #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) + *ppFile = fopen64(pFilePath, pOpenMode); + #else + *ppFile = fopen(pFilePath, pOpenMode); + #endif +#endif + if (*ppFile == NULL) { + drmp3_result result = drmp3_result_from_errno(errno); + if (result == DRMP3_SUCCESS) { + result = DRMP3_ERROR; + } + return result; + } +#endif + return DRMP3_SUCCESS; +} +#if defined(_WIN32) + #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #define DRMP3_HAS_WFOPEN + #endif +#endif +static drmp3_result drmp3_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (ppFile != NULL) { + *ppFile = NULL; + } + if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { + return DRMP3_INVALID_ARGS; + } +#if defined(DRMP3_HAS_WFOPEN) + { + #if defined(_MSC_VER) && _MSC_VER >= 1400 + errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); + if (err != 0) { + return drmp3_result_from_errno(err); + } + #else + *ppFile = _wfopen(pFilePath, pOpenMode); + if (*ppFile == NULL) { + return drmp3_result_from_errno(errno); + } + #endif + (void)pAllocationCallbacks; + } +#else + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + char pOpenModeMB[32] = {0}; + DRMP3_ZERO_OBJECT(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return drmp3_result_from_errno(errno); + } + pFilePathMB = (char*)drmp3__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); + if (pFilePathMB == NULL) { + return DRMP3_OUT_OF_MEMORY; + } + pFilePathTemp = pFilePath; + DRMP3_ZERO_OBJECT(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + { + size_t i = 0; + for (;;) { + if (pOpenMode[i] == 0) { + pOpenModeMB[i] = '\0'; + break; + } + pOpenModeMB[i] = (char)pOpenMode[i]; + i += 1; + } + } + *ppFile = fopen(pFilePathMB, pOpenModeMB); + drmp3__free_from_callbacks(pFilePathMB, pAllocationCallbacks); + } + if (*ppFile == NULL) { + return DRMP3_ERROR; + } +#endif + return DRMP3_SUCCESS; +} +static size_t drmp3__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); +} +static drmp3_bool32 drmp3__on_seek_stdio(void* pUserData, int offset, drmp3_seek_origin origin) +{ + return fseek((FILE*)pUserData, offset, (origin == drmp3_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; +} +DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3_bool32 result; + FILE* pFile; + if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) { + return DRMP3_FALSE; + } + result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRMP3_TRUE) { + fclose(pFile); + return result; + } + return DRMP3_TRUE; +} +DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3_bool32 result; + FILE* pFile; + if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) { + return DRMP3_FALSE; + } + result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != DRMP3_TRUE) { + fclose(pFile); + return result; + } + return DRMP3_TRUE; +} +#endif +DRMP3_API void drmp3_uninit(drmp3* pMP3) +{ + if (pMP3 == NULL) { + return; + } +#ifndef DR_MP3_NO_STDIO + if (pMP3->onRead == drmp3__on_read_stdio) { + FILE* pFile = (FILE*)pMP3->pUserData; + if (pFile != NULL) { + fclose(pFile); + pMP3->pUserData = NULL; + } + } +#endif + drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); +} +#if defined(DR_MP3_FLOAT_OUTPUT) +static void drmp3_f32_to_s16(drmp3_int16* dst, const float* src, drmp3_uint64 sampleCount) +{ + drmp3_uint64 i; + drmp3_uint64 i4; + drmp3_uint64 sampleCount4; + i = 0; + sampleCount4 = sampleCount >> 2; + for (i4 = 0; i4 < sampleCount4; i4 += 1) { + float x0 = src[i+0]; + float x1 = src[i+1]; + float x2 = src[i+2]; + float x3 = src[i+3]; + x0 = ((x0 < -1) ? -1 : ((x0 > 1) ? 1 : x0)); + x1 = ((x1 < -1) ? -1 : ((x1 > 1) ? 1 : x1)); + x2 = ((x2 < -1) ? -1 : ((x2 > 1) ? 1 : x2)); + x3 = ((x3 < -1) ? -1 : ((x3 > 1) ? 1 : x3)); + x0 = x0 * 32767.0f; + x1 = x1 * 32767.0f; + x2 = x2 * 32767.0f; + x3 = x3 * 32767.0f; + dst[i+0] = (drmp3_int16)x0; + dst[i+1] = (drmp3_int16)x1; + dst[i+2] = (drmp3_int16)x2; + dst[i+3] = (drmp3_int16)x3; + i += 4; + } + for (; i < sampleCount; i += 1) { + float x = src[i]; + x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); + x = x * 32767.0f; + dst[i] = (drmp3_int16)x; + } +} +#endif +#if !defined(DR_MP3_FLOAT_OUTPUT) +static void drmp3_s16_to_f32(float* dst, const drmp3_int16* src, drmp3_uint64 sampleCount) +{ + drmp3_uint64 i; + for (i = 0; i < sampleCount; i += 1) { + float x = (float)src[i]; + x = x * 0.000030517578125f; + dst[i] = x; + } +} +#endif +static drmp3_uint64 drmp3_read_pcm_frames_raw(drmp3* pMP3, drmp3_uint64 framesToRead, void* pBufferOut) +{ + drmp3_uint64 totalFramesRead = 0; + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onRead != NULL); + while (framesToRead > 0) { + drmp3_uint32 framesToConsume = (drmp3_uint32)DRMP3_MIN(pMP3->pcmFramesRemainingInMP3Frame, framesToRead); + if (pBufferOut != NULL) { + #if defined(DR_MP3_FLOAT_OUTPUT) + float* pFramesOutF32 = (float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalFramesRead * pMP3->channels); + float* pFramesInF32 = (float*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(float) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + DRMP3_COPY_MEMORY(pFramesOutF32, pFramesInF32, sizeof(float) * framesToConsume * pMP3->channels); + #else + drmp3_int16* pFramesOutS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalFramesRead * pMP3->channels); + drmp3_int16* pFramesInS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(drmp3_int16) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + DRMP3_COPY_MEMORY(pFramesOutS16, pFramesInS16, sizeof(drmp3_int16) * framesToConsume * pMP3->channels); + #endif + } + pMP3->currentPCMFrame += framesToConsume; + pMP3->pcmFramesConsumedInMP3Frame += framesToConsume; + pMP3->pcmFramesRemainingInMP3Frame -= framesToConsume; + totalFramesRead += framesToConsume; + framesToRead -= framesToConsume; + if (framesToRead == 0) { + break; + } + DRMP3_ASSERT(pMP3->pcmFramesRemainingInMP3Frame == 0); + if (drmp3_decode_next_frame(pMP3) == 0) { + break; + } + } + return totalFramesRead; +} +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut) +{ + if (pMP3 == NULL || pMP3->onRead == NULL) { + return 0; + } +#if defined(DR_MP3_FLOAT_OUTPUT) + return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#else + { + drmp3_int16 pTempS16[8192]; + drmp3_uint64 totalPCMFramesRead = 0; + while (totalPCMFramesRead < framesToRead) { + drmp3_uint64 framesJustRead; + drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempS16) / pMP3->channels; + if (framesToReadNow > framesRemaining) { + framesToReadNow = framesRemaining; + } + framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempS16); + if (framesJustRead == 0) { + break; + } + drmp3_s16_to_f32((float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalPCMFramesRead * pMP3->channels), pTempS16, framesJustRead * pMP3->channels); + totalPCMFramesRead += framesJustRead; + } + return totalPCMFramesRead; + } +#endif +} +DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut) +{ + if (pMP3 == NULL || pMP3->onRead == NULL) { + return 0; + } +#if !defined(DR_MP3_FLOAT_OUTPUT) + return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#else + { + float pTempF32[4096]; + drmp3_uint64 totalPCMFramesRead = 0; + while (totalPCMFramesRead < framesToRead) { + drmp3_uint64 framesJustRead; + drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempF32) / pMP3->channels; + if (framesToReadNow > framesRemaining) { + framesToReadNow = framesRemaining; + } + framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempF32); + if (framesJustRead == 0) { + break; + } + drmp3_f32_to_s16((drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalPCMFramesRead * pMP3->channels), pTempF32, framesJustRead * pMP3->channels); + totalPCMFramesRead += framesJustRead; + } + return totalPCMFramesRead; + } +#endif +} +static void drmp3_reset(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + pMP3->pcmFramesConsumedInMP3Frame = 0; + pMP3->pcmFramesRemainingInMP3Frame = 0; + pMP3->currentPCMFrame = 0; + pMP3->dataSize = 0; + pMP3->atEnd = DRMP3_FALSE; + drmp3dec_init(&pMP3->decoder); +} +static drmp3_bool32 drmp3_seek_to_start_of_stream(drmp3* pMP3) +{ + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->onSeek != NULL); + if (!drmp3__on_seek(pMP3, 0, drmp3_seek_origin_start)) { + return DRMP3_FALSE; + } + drmp3_reset(pMP3); + return DRMP3_TRUE; +} +static drmp3_bool32 drmp3_seek_forward_by_pcm_frames__brute_force(drmp3* pMP3, drmp3_uint64 frameOffset) +{ + drmp3_uint64 framesRead; +#if defined(DR_MP3_FLOAT_OUTPUT) + framesRead = drmp3_read_pcm_frames_f32(pMP3, frameOffset, NULL); +#else + framesRead = drmp3_read_pcm_frames_s16(pMP3, frameOffset, NULL); +#endif + if (framesRead != frameOffset) { + return DRMP3_FALSE; + } + return DRMP3_TRUE; +} +static drmp3_bool32 drmp3_seek_to_pcm_frame__brute_force(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + DRMP3_ASSERT(pMP3 != NULL); + if (frameIndex == pMP3->currentPCMFrame) { + return DRMP3_TRUE; + } + if (frameIndex < pMP3->currentPCMFrame) { + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + } + DRMP3_ASSERT(frameIndex >= pMP3->currentPCMFrame); + return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, (frameIndex - pMP3->currentPCMFrame)); +} +static drmp3_bool32 drmp3_find_closest_seek_point(drmp3* pMP3, drmp3_uint64 frameIndex, drmp3_uint32* pSeekPointIndex) +{ + drmp3_uint32 iSeekPoint; + DRMP3_ASSERT(pSeekPointIndex != NULL); + *pSeekPointIndex = 0; + if (frameIndex < pMP3->pSeekPoints[0].pcmFrameIndex) { + return DRMP3_FALSE; + } + for (iSeekPoint = 0; iSeekPoint < pMP3->seekPointCount; ++iSeekPoint) { + if (pMP3->pSeekPoints[iSeekPoint].pcmFrameIndex > frameIndex) { + break; + } + *pSeekPointIndex = iSeekPoint; + } + return DRMP3_TRUE; +} +static drmp3_bool32 drmp3_seek_to_pcm_frame__seek_table(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + drmp3_seek_point seekPoint; + drmp3_uint32 priorSeekPointIndex; + drmp3_uint16 iMP3Frame; + drmp3_uint64 leftoverFrames; + DRMP3_ASSERT(pMP3 != NULL); + DRMP3_ASSERT(pMP3->pSeekPoints != NULL); + DRMP3_ASSERT(pMP3->seekPointCount > 0); + if (drmp3_find_closest_seek_point(pMP3, frameIndex, &priorSeekPointIndex)) { + seekPoint = pMP3->pSeekPoints[priorSeekPointIndex]; + } else { + seekPoint.seekPosInBytes = 0; + seekPoint.pcmFrameIndex = 0; + seekPoint.mp3FramesToDiscard = 0; + seekPoint.pcmFramesToDiscard = 0; + } + if (!drmp3__on_seek_64(pMP3, seekPoint.seekPosInBytes, drmp3_seek_origin_start)) { + return DRMP3_FALSE; + } + drmp3_reset(pMP3); + for (iMP3Frame = 0; iMP3Frame < seekPoint.mp3FramesToDiscard; ++iMP3Frame) { + drmp3_uint32 pcmFramesRead; + drmp3d_sample_t* pPCMFrames; + pPCMFrames = NULL; + if (iMP3Frame == seekPoint.mp3FramesToDiscard-1) { + pPCMFrames = (drmp3d_sample_t*)pMP3->pcmFrames; + } + pcmFramesRead = drmp3_decode_next_frame_ex(pMP3, pPCMFrames); + if (pcmFramesRead == 0) { + return DRMP3_FALSE; + } + } + pMP3->currentPCMFrame = seekPoint.pcmFrameIndex - seekPoint.pcmFramesToDiscard; + leftoverFrames = frameIndex - pMP3->currentPCMFrame; + return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, leftoverFrames); +} +DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex) +{ + if (pMP3 == NULL || pMP3->onSeek == NULL) { + return DRMP3_FALSE; + } + if (frameIndex == 0) { + return drmp3_seek_to_start_of_stream(pMP3); + } + if (pMP3->pSeekPoints != NULL && pMP3->seekPointCount > 0) { + return drmp3_seek_to_pcm_frame__seek_table(pMP3, frameIndex); + } else { + return drmp3_seek_to_pcm_frame__brute_force(pMP3, frameIndex); + } +} +DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount) +{ + drmp3_uint64 currentPCMFrame; + drmp3_uint64 totalPCMFrameCount; + drmp3_uint64 totalMP3FrameCount; + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + if (pMP3->onSeek == NULL) { + return DRMP3_FALSE; + } + currentPCMFrame = pMP3->currentPCMFrame; + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + totalPCMFrameCount = 0; + totalMP3FrameCount = 0; + for (;;) { + drmp3_uint32 pcmFramesInCurrentMP3Frame; + pcmFramesInCurrentMP3Frame = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFramesInCurrentMP3Frame == 0) { + break; + } + totalPCMFrameCount += pcmFramesInCurrentMP3Frame; + totalMP3FrameCount += 1; + } + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return DRMP3_FALSE; + } + if (pMP3FrameCount != NULL) { + *pMP3FrameCount = totalMP3FrameCount; + } + if (pPCMFrameCount != NULL) { + *pPCMFrameCount = totalPCMFrameCount; + } + return DRMP3_TRUE; +} +DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3) +{ + drmp3_uint64 totalPCMFrameCount; + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, NULL, &totalPCMFrameCount)) { + return 0; + } + return totalPCMFrameCount; +} +DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3) +{ + drmp3_uint64 totalMP3FrameCount; + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, NULL)) { + return 0; + } + return totalMP3FrameCount; +} +static void drmp3__accumulate_running_pcm_frame_count(drmp3* pMP3, drmp3_uint32 pcmFrameCountIn, drmp3_uint64* pRunningPCMFrameCount, float* pRunningPCMFrameCountFractionalPart) +{ + float srcRatio; + float pcmFrameCountOutF; + drmp3_uint32 pcmFrameCountOut; + srcRatio = (float)pMP3->mp3FrameSampleRate / (float)pMP3->sampleRate; + DRMP3_ASSERT(srcRatio > 0); + pcmFrameCountOutF = *pRunningPCMFrameCountFractionalPart + (pcmFrameCountIn / srcRatio); + pcmFrameCountOut = (drmp3_uint32)pcmFrameCountOutF; + *pRunningPCMFrameCountFractionalPart = pcmFrameCountOutF - pcmFrameCountOut; + *pRunningPCMFrameCount += pcmFrameCountOut; +} +typedef struct +{ + drmp3_uint64 bytePos; + drmp3_uint64 pcmFrameIndex; +} drmp3__seeking_mp3_frame_info; +DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints) +{ + drmp3_uint32 seekPointCount; + drmp3_uint64 currentPCMFrame; + drmp3_uint64 totalMP3FrameCount; + drmp3_uint64 totalPCMFrameCount; + if (pMP3 == NULL || pSeekPointCount == NULL || pSeekPoints == NULL) { + return DRMP3_FALSE; + } + seekPointCount = *pSeekPointCount; + if (seekPointCount == 0) { + return DRMP3_FALSE; + } + currentPCMFrame = pMP3->currentPCMFrame; + if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, &totalPCMFrameCount)) { + return DRMP3_FALSE; + } + if (totalMP3FrameCount < DRMP3_SEEK_LEADING_MP3_FRAMES+1) { + seekPointCount = 1; + pSeekPoints[0].seekPosInBytes = 0; + pSeekPoints[0].pcmFrameIndex = 0; + pSeekPoints[0].mp3FramesToDiscard = 0; + pSeekPoints[0].pcmFramesToDiscard = 0; + } else { + drmp3_uint64 pcmFramesBetweenSeekPoints; + drmp3__seeking_mp3_frame_info mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES+1]; + drmp3_uint64 runningPCMFrameCount = 0; + float runningPCMFrameCountFractionalPart = 0; + drmp3_uint64 nextTargetPCMFrame; + drmp3_uint32 iMP3Frame; + drmp3_uint32 iSeekPoint; + if (seekPointCount > totalMP3FrameCount-1) { + seekPointCount = (drmp3_uint32)totalMP3FrameCount-1; + } + pcmFramesBetweenSeekPoints = totalPCMFrameCount / (seekPointCount+1); + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + for (iMP3Frame = 0; iMP3Frame < DRMP3_SEEK_LEADING_MP3_FRAMES+1; ++iMP3Frame) { + drmp3_uint32 pcmFramesInCurrentMP3FrameIn; + DRMP3_ASSERT(pMP3->streamCursor >= pMP3->dataSize); + mp3FrameInfo[iMP3Frame].bytePos = pMP3->streamCursor - pMP3->dataSize; + mp3FrameInfo[iMP3Frame].pcmFrameIndex = runningPCMFrameCount; + pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFramesInCurrentMP3FrameIn == 0) { + return DRMP3_FALSE; + } + drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + } + nextTargetPCMFrame = 0; + for (iSeekPoint = 0; iSeekPoint < seekPointCount; ++iSeekPoint) { + nextTargetPCMFrame += pcmFramesBetweenSeekPoints; + for (;;) { + if (nextTargetPCMFrame < runningPCMFrameCount) { + pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; + pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; + pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + break; + } else { + size_t i; + drmp3_uint32 pcmFramesInCurrentMP3FrameIn; + for (i = 0; i < DRMP3_COUNTOF(mp3FrameInfo)-1; ++i) { + mp3FrameInfo[i] = mp3FrameInfo[i+1]; + } + mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].bytePos = pMP3->streamCursor - pMP3->dataSize; + mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].pcmFrameIndex = runningPCMFrameCount; + pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL); + if (pcmFramesInCurrentMP3FrameIn == 0) { + pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; + pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; + pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + break; + } + drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + } + } + } + if (!drmp3_seek_to_start_of_stream(pMP3)) { + return DRMP3_FALSE; + } + if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return DRMP3_FALSE; + } + } + *pSeekPointCount = seekPointCount; + return DRMP3_TRUE; +} +DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints) +{ + if (pMP3 == NULL) { + return DRMP3_FALSE; + } + if (seekPointCount == 0 || pSeekPoints == NULL) { + pMP3->seekPointCount = 0; + pMP3->pSeekPoints = NULL; + } else { + pMP3->seekPointCount = seekPointCount; + pMP3->pSeekPoints = pSeekPoints; + } + return DRMP3_TRUE; +} +static float* drmp3__full_read_and_close_f32(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +{ + drmp3_uint64 totalFramesRead = 0; + drmp3_uint64 framesCapacity = 0; + float* pFrames = NULL; + float temp[4096]; + DRMP3_ASSERT(pMP3 != NULL); + for (;;) { + drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; + drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_f32(pMP3, framesToReadRightNow, temp); + if (framesJustRead == 0) { + break; + } + if (framesCapacity < totalFramesRead + framesJustRead) { + drmp3_uint64 oldFramesBufferSize; + drmp3_uint64 newFramesBufferSize; + drmp3_uint64 newFramesCap; + float* pNewFrames; + newFramesCap = framesCapacity * 2; + if (newFramesCap < totalFramesRead + framesJustRead) { + newFramesCap = totalFramesRead + framesJustRead; + } + oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(float); + newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(float); + if (newFramesBufferSize > DRMP3_SIZE_MAX) { + break; + } + pNewFrames = (float*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + if (pNewFrames == NULL) { + drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + break; + } + pFrames = pNewFrames; + framesCapacity = newFramesCap; + } + DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(float))); + totalFramesRead += framesJustRead; + if (framesJustRead != framesToReadRightNow) { + break; + } + } + if (pConfig != NULL) { + pConfig->channels = pMP3->channels; + pConfig->sampleRate = pMP3->sampleRate; + } + drmp3_uninit(pMP3); + if (pTotalFrameCount) { + *pTotalFrameCount = totalFramesRead; + } + return pFrames; +} +static drmp3_int16* drmp3__full_read_and_close_s16(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +{ + drmp3_uint64 totalFramesRead = 0; + drmp3_uint64 framesCapacity = 0; + drmp3_int16* pFrames = NULL; + drmp3_int16 temp[4096]; + DRMP3_ASSERT(pMP3 != NULL); + for (;;) { + drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; + drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_s16(pMP3, framesToReadRightNow, temp); + if (framesJustRead == 0) { + break; + } + if (framesCapacity < totalFramesRead + framesJustRead) { + drmp3_uint64 newFramesBufferSize; + drmp3_uint64 oldFramesBufferSize; + drmp3_uint64 newFramesCap; + drmp3_int16* pNewFrames; + newFramesCap = framesCapacity * 2; + if (newFramesCap < totalFramesRead + framesJustRead) { + newFramesCap = totalFramesRead + framesJustRead; + } + oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(drmp3_int16); + newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(drmp3_int16); + if (newFramesBufferSize > DRMP3_SIZE_MAX) { + break; + } + pNewFrames = (drmp3_int16*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + if (pNewFrames == NULL) { + drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + break; + } + pFrames = pNewFrames; + framesCapacity = newFramesCap; + } + DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(drmp3_int16))); + totalFramesRead += framesJustRead; + if (framesJustRead != framesToReadRightNow) { + break; + } + } + if (pConfig != NULL) { + pConfig->channels = pMP3->channels; + pConfig->sampleRate = pMP3->sampleRate; + } + drmp3_uninit(pMP3); + if (pTotalFrameCount) { + *pTotalFrameCount = totalFramesRead; + } + return pFrames; +} +DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return NULL; + } + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} +DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return NULL; + } + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} +DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + return NULL; + } + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} +DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + return NULL; + } + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} +#ifndef DR_MP3_NO_STDIO +DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + return NULL; + } + return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); +} +DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + drmp3 mp3; + if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + return NULL; + } + return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); +} +#endif +DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + return drmp3__malloc_from_callbacks(sz, pAllocationCallbacks); + } else { + return drmp3__malloc_default(sz, NULL); + } +} +DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +{ + if (pAllocationCallbacks != NULL) { + drmp3__free_from_callbacks(p, pAllocationCallbacks); + } else { + drmp3__free_default(p, NULL); + } +} +#endif +/* dr_mp3_c end */ +#endif /* DRMP3_IMPLEMENTATION */ +#endif /* MA_NO_MP3 */ + + +/* End globally disabled warnings. */ +#if defined(_MSC_VER) + #pragma warning(pop) +#endif + +#endif /* miniaudio_c */ +#endif /* MINIAUDIO_IMPLEMENTATION */ + +/* +RELEASE NOTES - VERSION 0.10.x +============================== +Version 0.10 includes major API changes and refactoring, mostly concerned with the data conversion system. Data conversion is performed internally to convert +audio data between the format requested when initializing the `ma_device` object and the format of the internal device used by the backend. The same applies +to the `ma_decoder` object. The previous design has several design flaws and missing features which necessitated a complete redesign. + + +Changes to Data Conversion +-------------------------- +The previous data conversion system used callbacks to deliver input data for conversion. This design works well in some specific situations, but in other +situations it has some major readability and maintenance issues. The decision was made to replace this with a more iterative approach where you just pass in a +pointer to the input data directly rather than dealing with a callback. + +The following are the data conversion APIs that have been removed and their replacements: + + - ma_format_converter -> ma_convert_pcm_frames_format() + - ma_channel_router -> ma_channel_converter + - ma_src -> ma_resampler + - ma_pcm_converter -> ma_data_converter + +The previous conversion APIs accepted a callback in their configs. There are no longer any callbacks to deal with. Instead you just pass the data into the +`*_process_pcm_frames()` function as a pointer to a buffer. + +The simplest aspect of data conversion is sample format conversion. To convert between two formats, just call `ma_convert_pcm_frames_format()`. Channel +conversion is also simple which you can do with `ma_channel_converter` via `ma_channel_converter_process_pcm_frames()`. + +Resampling is more complicated because the number of output frames that are processed is different to the number of input frames that are consumed. When you +call `ma_resampler_process_pcm_frames()` you need to pass in the number of input frames available for processing and the number of output frames you want to +output. Upon returning they will receive the number of input frames that were consumed and the number of output frames that were generated. + +The `ma_data_converter` API is a wrapper around format, channel and sample rate conversion and handles all of the data conversion you'll need which probably +makes it the best option if you need to do data conversion. + +In addition to changes to the API design, a few other changes have been made to the data conversion pipeline: + + - The sinc resampler has been removed. This was completely broken and never actually worked properly. + - The linear resampler now uses low-pass filtering to remove aliasing. The quality of the low-pass filter can be controlled via the resampler config with the + `lpfOrder` option, which has a maximum value of MA_MAX_FILTER_ORDER. + - Data conversion now supports s16 natively which runs through a fixed point pipeline. Previously everything needed to be converted to floating point before + processing, whereas now both s16 and f32 are natively supported. Other formats still require conversion to either s16 or f32 prior to processing, however + `ma_data_converter` will handle this for you. + + +Custom Memory Allocators +------------------------ +miniaudio has always supported macro level customization for memory allocation via MA_MALLOC, MA_REALLOC and MA_FREE, however some scenarios require more +flexibility by allowing a user data pointer to be passed to the custom allocation routines. Support for this has been added to version 0.10 via the +`ma_allocation_callbacks` structure. Anything making use of heap allocations has been updated to accept this new structure. + +The `ma_context_config` structure has been updated with a new member called `allocationCallbacks`. Leaving this set to it's defaults returned by +`ma_context_config_init()` will cause it to use MA_MALLOC, MA_REALLOC and MA_FREE. Likewise, The `ma_decoder_config` structure has been updated in the same +way, and leaving everything as-is after `ma_decoder_config_init()` will cause it to use the same defaults. + +The following APIs have been updated to take a pointer to a `ma_allocation_callbacks` object. Setting this parameter to NULL will cause it to use defaults. +Otherwise they will use the relevant callback in the structure. + + - ma_malloc() + - ma_realloc() + - ma_free() + - ma_aligned_malloc() + - ma_aligned_free() + - ma_rb_init() / ma_rb_init_ex() + - ma_pcm_rb_init() / ma_pcm_rb_init_ex() + +Note that you can continue to use MA_MALLOC, MA_REALLOC and MA_FREE as per normal. These will continue to be used by default if you do not specify custom +allocation callbacks. + + +Buffer and Period Configuration Changes +--------------------------------------- +The way in which the size of the internal buffer and periods are specified in the device configuration have changed. In previous versions, the config variables +`bufferSizeInFrames` and `bufferSizeInMilliseconds` defined the size of the entire buffer, with the size of a period being the size of this variable divided by +the period count. This became confusing because people would expect the value of `bufferSizeInFrames` or `bufferSizeInMilliseconds` to independantly determine +latency, when in fact it was that value divided by the period count that determined it. These variables have been removed and replaced with new ones called +`periodSizeInFrames` and `periodSizeInMilliseconds`. + +These new configuration variables work in the same way as their predecessors in that if one is set to 0, the other will be used, but the main difference is +that you now set these to you desired latency rather than the size of the entire buffer. The benefit of this is that it's much easier and less confusing to +configure latency. + +The following unused APIs have been removed: + + ma_get_default_buffer_size_in_milliseconds() + ma_get_default_buffer_size_in_frames() + +The following macros have been removed: + + MA_BASE_BUFFER_SIZE_IN_MILLISECONDS_LOW_LATENCY + MA_BASE_BUFFER_SIZE_IN_MILLISECONDS_CONSERVATIVE + + +Other API Changes +----------------- +Other less major API changes have also been made in version 0.10. + +`ma_device_set_stop_callback()` has been removed. If you require a stop callback, you must now set it via the device config just like the data callback. + +The `ma_sine_wave` API has been replaced with a more general API called `ma_waveform`. This supports generation of different types of waveforms, including +sine, square, triangle and sawtooth. Use `ma_waveform_init()` in place of `ma_sine_wave_init()` to initialize the waveform object. This takes a configuration +object called `ma_waveform_config` which defines the properties of the waveform. Use `ma_waveform_config_init()` to initialize a `ma_waveform_config` object. +Use `ma_waveform_read_pcm_frames()` in place of `ma_sine_wave_read_f32()` and `ma_sine_wave_read_f32_ex()`. + +`ma_convert_frames()` and `ma_convert_frames_ex()` have been changed. Both of these functions now take a new parameter called `frameCountOut` which specifies +the size of the output buffer in PCM frames. This has been added for safety. In addition to this, the parameters for `ma_convert_frames_ex()` have changed to +take a pointer to a `ma_data_converter_config` object to specify the input and output formats to convert between. This was done to make it more flexible, to +prevent the parameter list getting too long, and to prevent API breakage whenever a new conversion property is added. + +`ma_calculate_frame_count_after_src()` has been renamed to `ma_calculate_frame_count_after_resampling()` for consistency with the new `ma_resampler` API. + + +Filters +------- +The following filters have been added: + + |-------------|-------------------------------------------------------------------| + | API | Description | + |-------------|-------------------------------------------------------------------| + | ma_biquad | Biquad filter (transposed direct form 2) | + | ma_lpf1 | First order low-pass filter | + | ma_lpf2 | Second order low-pass filter | + | ma_lpf | High order low-pass filter (Butterworth) | + | ma_hpf1 | First order high-pass filter | + | ma_hpf2 | Second order high-pass filter | + | ma_hpf | High order high-pass filter (Butterworth) | + | ma_bpf2 | Second order band-pass filter | + | ma_bpf | High order band-pass filter | + | ma_peak2 | Second order peaking filter | + | ma_notch2 | Second order notching filter | + | ma_loshelf2 | Second order low shelf filter | + | ma_hishelf2 | Second order high shelf filter | + |-------------|-------------------------------------------------------------------| + +These filters all support 32-bit floating point and 16-bit signed integer formats natively. Other formats need to be converted beforehand. + + +Sine, Square, Triangle and Sawtooth Waveforms +--------------------------------------------- +Previously miniaudio supported only sine wave generation. This has now been generalized to support sine, square, triangle and sawtooth waveforms. The old +`ma_sine_wave` API has been removed and replaced with the `ma_waveform` API. Use `ma_waveform_config_init()` to initialize a config object, and then pass it +into `ma_waveform_init()`. Then use `ma_waveform_read_pcm_frames()` to read PCM data. + + +Noise Generation +---------------- +A noise generation API has been added. This is used via the `ma_noise` API. Currently white, pink and Brownian noise is supported. The `ma_noise` API is +similar to the waveform API. Use `ma_noise_config_init()` to initialize a config object, and then pass it into `ma_noise_init()` to initialize a `ma_noise` +object. Then use `ma_noise_read_pcm_frames()` to read PCM data. + + +Miscellaneous Changes +--------------------- +The MA_NO_STDIO option has been removed. This would disable file I/O APIs, however this has proven to be too hard to maintain for it's perceived value and was +therefore removed. + +Internal functions have all been made static where possible. If you get warnings about unused functions, please submit a bug report. + +The `ma_device` structure is no longer defined as being aligned to MA_SIMD_ALIGNMENT. This resulted in a possible crash when allocating a `ma_device` object on +the heap, but not aligning it to MA_SIMD_ALIGNMENT. This crash would happen due to the compiler seeing the alignment specified on the structure and assuming it +was always aligned as such and thinking it was safe to emit alignment-dependant SIMD instructions. Since miniaudio's philosophy is for things to just work, +this has been removed from all structures. + +Results codes have been overhauled. Unnecessary result codes have been removed, and some have been renumbered for organisation purposes. If you are are binding +maintainer you will need to update your result codes. Support has also been added for retrieving a human readable description of a given result code via the +`ma_result_description()` API. + +ALSA: The automatic format conversion, channel conversion and resampling performed by ALSA is now disabled by default as they were causing some compatibility +issues with certain devices and configurations. These can be individually enabled via the device config: + + ```c + deviceConfig.alsa.noAutoFormat = MA_TRUE; + deviceConfig.alsa.noAutoChannels = MA_TRUE; + deviceConfig.alsa.noAutoResample = MA_TRUE; + ``` +*/ + +/* +RELEASE NOTES - VERSION 0.9.x +============================= +Version 0.9 includes major API changes, centered mostly around full-duplex and the rebrand to "miniaudio". Before I go into detail about the major changes I +would like to apologize. I know it's annoying dealing with breaking API changes, but I think it's best to get these changes out of the way now while the +library is still relatively young and unknown. + +There's been a lot of refactoring with this release so there's a good chance a few bugs have been introduced. I apologize in advance for this. You may want to +hold off on upgrading for the short term if you're worried. If mini_al v0.8.14 works for you, and you don't need full-duplex support, you can avoid upgrading +(though you won't be getting future bug fixes). + + +Rebranding to "miniaudio" +------------------------- +The decision was made to rename mini_al to miniaudio. Don't worry, it's the same project. The reason for this is simple: + +1) Having the word "audio" in the title makes it immediately clear that the library is related to audio; and +2) I don't like the look of the underscore. + +This rebrand has necessitated a change in namespace from "mal" to "ma". I know this is annoying, and I apologize, but it's better to get this out of the road +now rather than later. Also, since there are necessary API changes for full-duplex support I think it's better to just get the namespace change over and done +with at the same time as the full-duplex changes. I'm hoping this will be the last of the major API changes. Fingers crossed! + +The implementation define is now "#define MINIAUDIO_IMPLEMENTATION". You can also use "#define MA_IMPLEMENTATION" if that's your preference. + + +Full-Duplex Support +------------------- +The major feature added to version 0.9 is full-duplex. This has necessitated a few API changes. + +1) The data callback has now changed. Previously there was one type of callback for playback and another for capture. I wanted to avoid a third callback just + for full-duplex so the decision was made to break this API and unify the callbacks. Now, there is just one callback which is the same for all three modes + (playback, capture, duplex). The new callback looks like the following: + + void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount); + + This callback allows you to move data straight out of the input buffer and into the output buffer in full-duplex mode. In playback-only mode, pInput will be + null. Likewise, pOutput will be null in capture-only mode. The sample count is no longer returned from the callback since it's not necessary for miniaudio + anymore. + +2) The device config needed to change in order to support full-duplex. Full-duplex requires the ability to allow the client to choose a different PCM format + for the playback and capture sides. The old ma_device_config object simply did not allow this and needed to change. With these changes you now specify the + device ID, format, channels, channel map and share mode on a per-playback and per-capture basis (see example below). The sample rate must be the same for + playback and capture. + + Since the device config API has changed I have also decided to take the opportunity to simplify device initialization. Now, the device ID, device type and + callback user data are set in the config. ma_device_init() is now simplified down to taking just the context, device config and a pointer to the device + object being initialized. The rationale for this change is that it just makes more sense to me that these are set as part of the config like everything + else. + + Example device initialization: + + ma_device_config config = ma_device_config_init(ma_device_type_duplex); // Or ma_device_type_playback or ma_device_type_capture. + config.playback.pDeviceID = &myPlaybackDeviceID; // Or NULL for the default playback device. + config.playback.format = ma_format_f32; + config.playback.channels = 2; + config.capture.pDeviceID = &myCaptureDeviceID; // Or NULL for the default capture device. + config.capture.format = ma_format_s16; + config.capture.channels = 1; + config.sampleRate = 44100; + config.dataCallback = data_callback; + config.pUserData = &myUserData; + + result = ma_device_init(&myContext, &config, &device); + if (result != MA_SUCCESS) { + ... handle error ... + } + + Note that the "onDataCallback" member of ma_device_config has been renamed to "dataCallback". Also, "onStopCallback" has been renamed to "stopCallback". + +This is the first pass for full-duplex and there is a known bug. You will hear crackling on the following backends when sample rate conversion is required for +the playback device: + - Core Audio + - JACK + - AAudio + - OpenSL + - WebAudio + +In addition to the above, not all platforms have been absolutely thoroughly tested simply because I lack the hardware for such thorough testing. If you +experience a bug, an issue report on GitHub or an email would be greatly appreciated (and a sample program that reproduces the issue if possible). + + +Other API Changes +----------------- +In addition to the above, the following API changes have been made: + +- The log callback is no longer passed to ma_context_config_init(). Instead you need to set it manually after initialization. +- The onLogCallback member of ma_context_config has been renamed to "logCallback". +- The log callback now takes a logLevel parameter. The new callback looks like: void log_callback(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message) + - You can use ma_log_level_to_string() to convert the logLevel to human readable text if you want to log it. +- Some APIs have been renamed: + - mal_decoder_read() -> ma_decoder_read_pcm_frames() + - mal_decoder_seek_to_frame() -> ma_decoder_seek_to_pcm_frame() + - mal_sine_wave_read() -> ma_sine_wave_read_f32() + - mal_sine_wave_read_ex() -> ma_sine_wave_read_f32_ex() +- Some APIs have been removed: + - mal_device_get_buffer_size_in_bytes() + - mal_device_set_recv_callback() + - mal_device_set_send_callback() + - mal_src_set_input_sample_rate() + - mal_src_set_output_sample_rate() +- Error codes have been rearranged. If you're a binding maintainer you will need to update. +- The ma_backend enums have been rearranged to priority order. The rationale for this is to simplify automatic backend selection and to make it easier to see + the priority. If you're a binding maintainer you will need to update. +- ma_dsp has been renamed to ma_pcm_converter. The rationale for this change is that I'm expecting "ma_dsp" to conflict with some future planned high-level + APIs. +- For functions that take a pointer/count combo, such as ma_decoder_read_pcm_frames(), the parameter order has changed so that the pointer comes before the + count. The rationale for this is to keep it consistent with things like memcpy(). + + +Miscellaneous Changes +--------------------- +The following miscellaneous changes have also been made. + +- The AAudio backend has been added for Android 8 and above. This is Android's new "High-Performance Audio" API. (For the record, this is one of the nicest + audio APIs out there, just behind the BSD audio APIs). +- The WebAudio backend has been added. This is based on ScriptProcessorNode. This removes the need for SDL. +- The SDL and OpenAL backends have been removed. These were originally implemented to add support for platforms for which miniaudio was not explicitly + supported. These are no longer needed and have therefore been removed. +- Device initialization now fails if the requested share mode is not supported. If you ask for exclusive mode, you either get an exclusive mode device, or an + error. The rationale for this change is to give the client more control over how to handle cases when the desired shared mode is unavailable. +- A lock-free ring buffer API has been added. There are two varients of this. "ma_rb" operates on bytes, whereas "ma_pcm_rb" operates on PCM frames. +- The library is now licensed as a choice of Public Domain (Unlicense) _or_ MIT-0 (No Attribution) which is the same as MIT, but removes the attribution + requirement. The rationale for this is to support countries that don't recognize public domain. +*/ + +/* +REVISION HISTORY +================ +v0.10.35 - 2021-04-27 + - Fix the C++ build. + +v0.10.34 - 2021-04-26 + - WASAPI: Fix a bug where a result code is not getting checked at initialization time. + - WASAPI: Bug fixes for loopback mode. + - ALSA: Fix a possible deadlock when stopping devices. + - Mark devices as default on the null backend. + +v0.10.33 - 2021-04-04 + - Core Audio: Fix a memory leak. + - Core Audio: Fix a bug where the performance profile is not being used by playback devices. + - JACK: Fix loading of 64-bit JACK on Windows. + - Fix a calculation error and add a safety check to the following APIs to prevent a division by zero: + - ma_calculate_buffer_size_in_milliseconds_from_frames() + - ma_calculate_buffer_size_in_frames_from_milliseconds() + - Fix compilation errors relating to c89atomic. + - Update FLAC decoder. + +v0.10.32 - 2021-02-23 + - WASAPI: Fix a deadlock in exclusive mode. + - WASAPI: No longer return an error from ma_context_get_device_info() when an exclusive mode format + cannot be retrieved. + - WASAPI: Attempt to fix some bugs with device uninitialization. + - PulseAudio: Yet another refactor, this time to remove the dependency on `pa_threaded_mainloop`. + - Web Audio: Fix a bug on Chrome and any other browser using the same engine. + - Web Audio: Automatically start the device on some user input if the device has been started. This + is to work around Google's policy of not starting audio if no user input has yet been performed. + - Fix a bug where thread handles are not being freed. + - Fix some static analysis warnings in FLAC, WAV and MP3 decoders. + - Fix a warning due to referencing _MSC_VER when it is undefined. + - Update to latest version of c89atomic. + - Internal refactoring to migrate over to the new backend callback system for the following backends: + - PulseAudio + - ALSA + - Core Audio + - AAudio + - OpenSL|ES + - OSS + - audio(4) + - sndio + +v0.10.31 - 2021-01-17 + - Make some functions const correct. + - Update ma_data_source_read_pcm_frames() to initialize pFramesRead to 0 for safety. + - Add the MA_ATOMIC annotation for use with variables that should be used atomically and remove unnecessary volatile qualifiers. + - Add support for enabling only specific backends at compile time. This is the reverse of the pre-existing system. With the new + system, all backends are first disabled with `MA_ENABLE_ONLY_SPECIFIC_BACKENDS`, which is then followed with `MA_ENABLE_*`. The + old system where you disable backends with `MA_NO_*` still exists and is still the default. + +v0.10.30 - 2021-01-10 + - Fix a crash in ma_audio_buffer_read_pcm_frames(). + - Update spinlock APIs to take a volatile parameter as input. + - Silence some unused parameter warnings. + - Fix a warning on GCC when compiling as C++. + +v0.10.29 - 2020-12-26 + - Fix some subtle multi-threading bugs on non-x86 platforms. + - Fix a bug resulting in superfluous memory allocations when enumerating devices. + - Core Audio: Fix a compilation error when compiling for iOS. + +v0.10.28 - 2020-12-16 + - Fix a crash when initializing a POSIX thread. + - OpenSL|ES: Respect the MA_NO_RUNTIME_LINKING option. + +v0.10.27 - 2020-12-04 + - Add support for dynamically configuring some properties of `ma_noise` objects post-initialization. + - Add support for configuring the channel mixing mode in the device config. + - Fix a bug with simple channel mixing mode (drop or silence excess channels). + - Fix some bugs with trying to access uninitialized variables. + - Fix some errors with stopping devices for synchronous backends where the backend's stop callback would get fired twice. + - Fix a bug in the decoder due to using an uninitialized variable. + - Fix some data race errors. + +v0.10.26 - 2020-11-24 + - WASAPI: Fix a bug where the exclusive mode format may not be retrieved correctly due to accessing freed memory. + - Fix a bug with ma_waveform where glitching occurs after changing frequency. + - Fix compilation with OpenWatcom. + - Fix compilation with TCC. + - Fix compilation with Digital Mars. + - Fix compilation warnings. + - Remove bitfields from public structures to aid in binding maintenance. + +v0.10.25 - 2020-11-15 + - PulseAudio: Fix a bug where the stop callback isn't fired. + - WebAudio: Fix an error that occurs when Emscripten increases the size of it's heap. + - Custom Backends: Change the onContextInit and onDeviceInit callbacks to take a parameter which is a pointer to the config that was + passed into ma_context_init() and ma_device_init(). This replaces the deviceType parameter of onDeviceInit. + - Fix compilation warnings on older versions of GCC. + +v0.10.24 - 2020-11-10 + - Fix a bug where initialization of a backend can fail due to some bad state being set from a prior failed attempt at initializing a + lower priority backend. + +v0.10.23 - 2020-11-09 + - AAudio: Add support for configuring a playback stream's usage. + - Fix a compilation error when all built-in asynchronous backends are disabled at compile time. + - Fix compilation errors when compiling as C++. + +v0.10.22 - 2020-11-08 + - Add support for custom backends. + - Add support for detecting default devices during device enumeration and with `ma_context_get_device_info()`. + - Refactor to the PulseAudio backend. This simplifies the implementation and fixes a capture bug. + - ALSA: Fix a bug in `ma_context_get_device_info()` where the PCM handle is left open in the event of an error. + - Core Audio: Further improvements to sample rate selection. + - Core Audio: Fix some bugs with capture mode. + - OpenSL: Add support for configuring stream types and recording presets. + - AAudio: Add support for configuring content types and input presets. + - Fix bugs in `ma_decoder_init_file*()` where the file handle is not closed after a decoding error. + - Fix some compilation warnings on GCC and Clang relating to the Speex resampler. + - Fix a compilation error for the Linux build when the ALSA and JACK backends are both disabled. + - Fix a compilation error for the BSD build. + - Fix some compilation errors on older versions of GCC. + - Add documentation for `MA_NO_RUNTIME_LINKING`. + +v0.10.21 - 2020-10-30 + - Add ma_is_backend_enabled() and ma_get_enabled_backends() for retrieving enabled backends at run-time. + - WASAPI: Fix a copy and paste bug relating to loopback mode. + - Core Audio: Fix a bug when using multiple contexts. + - Core Audio: Fix a compilation warning. + - Core Audio: Improvements to sample rate selection. + - Core Audio: Improvements to format/channels/rate selection when requesting defaults. + - Core Audio: Add notes regarding the Apple notarization process. + - Fix some bugs due to null pointer dereferences. + +v0.10.20 - 2020-10-06 + - Fix build errors with UWP. + - Minor documentation updates. + +v0.10.19 - 2020-09-22 + - WASAPI: Return an error when exclusive mode is requested, but the native format is not supported by miniaudio. + - Fix a bug where ma_decoder_seek_to_pcm_frames() never returns MA_SUCCESS even though it was successful. + - Store the sample rate in the `ma_lpf` and `ma_hpf` structures. + +v0.10.18 - 2020-08-30 + - Fix build errors with VC6. + - Fix a bug in channel converter for s32 format. + - Change channel converter configs to use the default channel map instead of a blank channel map when no channel map is specified when initializing the + config. This fixes an issue where the optimized mono expansion path would never get used. + - Use a more appropriate default format for FLAC decoders. This will now use ma_format_s16 when the FLAC is encoded as 16-bit. + - Update FLAC decoder. + - Update links to point to the new repository location (https://github.com/mackron/miniaudio). + +v0.10.17 - 2020-08-28 + - Fix an error where the WAV codec is incorrectly excluded from the build depending on which compile time options are set. + - Fix a bug in ma_audio_buffer_read_pcm_frames() where it isn't returning the correct number of frames processed. + - Fix compilation error on Android. + - Core Audio: Fix a bug with full-duplex mode. + - Add ma_decoder_get_cursor_in_pcm_frames(). + - Update WAV codec. + +v0.10.16 - 2020-08-14 + - WASAPI: Fix a potential crash due to using an uninitialized variable. + - OpenSL: Enable runtime linking. + - OpenSL: Fix a multithreading bug when initializing and uninitializing multiple contexts at the same time. + - iOS: Improvements to device enumeration. + - Fix a crash in ma_data_source_read_pcm_frames() when the output frame count parameter is NULL. + - Fix a bug in ma_data_source_read_pcm_frames() where looping doesn't work. + - Fix some compilation warnings on Windows when both DirectSound and WinMM are disabled. + - Fix some compilation warnings when no decoders are enabled. + - Add ma_audio_buffer_get_available_frames(). + - Add ma_decoder_get_available_frames(). + - Add sample rate to ma_data_source_get_data_format(). + - Change volume APIs to take 64-bit frame counts. + - Updates to documentation. + +v0.10.15 - 2020-07-15 + - Fix a bug when converting bit-masked channel maps to miniaudio channel maps. This affects the WASAPI and OpenSL backends. + +v0.10.14 - 2020-07-14 + - Fix compilation errors on Android. + - Fix compilation errors with -march=armv6. + - Updates to the documentation. + +v0.10.13 - 2020-07-11 + - Fix some potential buffer overflow errors with channel maps when channel counts are greater than MA_MAX_CHANNELS. + - Fix compilation error on Emscripten. + - Silence some unused function warnings. + - Increase the default buffer size on the Web Audio backend. This fixes glitching issues on some browsers. + - Bring FLAC decoder up-to-date with dr_flac. + - Bring MP3 decoder up-to-date with dr_mp3. + +v0.10.12 - 2020-07-04 + - Fix compilation errors on the iOS build. + +v0.10.11 - 2020-06-28 + - Fix some bugs with device tracking on Core Audio. + - Updates to documentation. + +v0.10.10 - 2020-06-26 + - Add include guard for the implementation section. + - Mark ma_device_sink_info_callback() as static. + - Fix compilation errors with MA_NO_DECODING and MA_NO_ENCODING. + - Fix compilation errors with MA_NO_DEVICE_IO + +v0.10.9 - 2020-06-24 + - Amalgamation of dr_wav, dr_flac and dr_mp3. With this change, including the header section of these libraries before the implementation of miniaudio is no + longer required. Decoding of WAV, FLAC and MP3 should be supported seamlessly without any additional libraries. Decoders can be excluded from the build + with the following options: + - MA_NO_WAV + - MA_NO_FLAC + - MA_NO_MP3 + If you get errors about multiple definitions you need to either enable the options above, move the implementation of dr_wav, dr_flac and/or dr_mp3 to before + the implementation of miniaudio, or update dr_wav, dr_flac and/or dr_mp3. + - Changes to the internal atomics library. This has been replaced with c89atomic.h which is embedded within this file. + - Fix a bug when a decoding backend reports configurations outside the limits of miniaudio's decoder abstraction. + - Fix the UWP build. + - Fix the Core Audio build. + - Fix the -std=c89 build on GCC. + +v0.10.8 - 2020-06-22 + - Remove dependency on ma_context from mutexes. + - Change ma_data_source_read_pcm_frames() to return a result code and output the frames read as an output parameter. + - Change ma_data_source_seek_pcm_frames() to return a result code and output the frames seeked as an output parameter. + - Change ma_audio_buffer_unmap() to return MA_AT_END when the end has been reached. This should be considered successful. + - Change playback.pDeviceID and capture.pDeviceID to constant pointers in ma_device_config. + - Add support for initializing decoders from a virtual file system object. This is achieved via the ma_vfs API and allows the application to customize file + IO for the loading and reading of raw audio data. Passing in NULL for the VFS will use defaults. New APIs: + - ma_decoder_init_vfs() + - ma_decoder_init_vfs_wav() + - ma_decoder_init_vfs_flac() + - ma_decoder_init_vfs_mp3() + - ma_decoder_init_vfs_vorbis() + - ma_decoder_init_vfs_w() + - ma_decoder_init_vfs_wav_w() + - ma_decoder_init_vfs_flac_w() + - ma_decoder_init_vfs_mp3_w() + - ma_decoder_init_vfs_vorbis_w() + - Add support for memory mapping to ma_data_source. + - ma_data_source_map() + - ma_data_source_unmap() + - Add ma_offset_pcm_frames_ptr() and ma_offset_pcm_frames_const_ptr() which can be used for offsetting a pointer by a specified number of PCM frames. + - Add initial implementation of ma_yield() which is useful for spin locks which will be used in some upcoming work. + - Add documentation for log levels. + - The ma_event API has been made public in preparation for some uncoming work. + - Fix a bug in ma_decoder_seek_to_pcm_frame() where the internal sample rate is not being taken into account for determining the seek location. + - Fix some bugs with the linear resampler when dynamically changing the sample rate. + - Fix compilation errors with MA_NO_DEVICE_IO. + - Fix some warnings with GCC and -std=c89. + - Fix some formatting warnings with GCC and -Wall and -Wpedantic. + - Fix some warnings with VC6. + - Minor optimization to ma_copy_pcm_frames(). This is now a no-op when the input and output buffers are the same. + +v0.10.7 - 2020-05-25 + - Fix a compilation error in the C++ build. + - Silence a warning. + +v0.10.6 - 2020-05-24 + - Change ma_clip_samples_f32() and ma_clip_pcm_frames_f32() to take a 64-bit sample/frame count. + - Change ma_zero_pcm_frames() to clear to 128 for ma_format_u8. + - Add ma_silence_pcm_frames() which replaces ma_zero_pcm_frames(). ma_zero_pcm_frames() will be removed in version 0.11. + - Add support for u8, s24 and s32 formats to ma_channel_converter. + - Add compile-time and run-time version querying. + - MA_VERSION_MINOR + - MA_VERSION_MAJOR + - MA_VERSION_REVISION + - MA_VERSION_STRING + - ma_version() + - ma_version_string() + - Add ma_audio_buffer for reading raw audio data directly from memory. + - Fix a bug in shuffle mode in ma_channel_converter. + - Fix compilation errors in certain configurations for ALSA and PulseAudio. + - The data callback now initializes the output buffer to 128 when the playback sample format is ma_format_u8. + +v0.10.5 - 2020-05-05 + - Change ma_zero_pcm_frames() to take a 64-bit frame count. + - Add ma_copy_pcm_frames(). + - Add MA_NO_GENERATION build option to exclude the `ma_waveform` and `ma_noise` APIs from the build. + - Add support for formatted logging to the VC6 build. + - Fix a crash in the linear resampler when LPF order is 0. + - Fix compilation errors and warnings with older versions of Visual Studio. + - Minor documentation updates. + +v0.10.4 - 2020-04-12 + - Fix a data conversion bug when converting from the client format to the native device format. + +v0.10.3 - 2020-04-07 + - Bring up to date with breaking changes to dr_mp3. + - Remove MA_NO_STDIO. This was causing compilation errors and the maintenance cost versus practical benefit is no longer worthwhile. + - Fix a bug with data conversion where it was unnecessarily converting to s16 or f32 and then straight back to the original format. + - Fix compilation errors and warnings with Visual Studio 2005. + - ALSA: Disable ALSA's automatic data conversion by default and add configuration options to the device config: + - alsa.noAutoFormat + - alsa.noAutoChannels + - alsa.noAutoResample + - WASAPI: Add some overrun recovery for ma_device_type_capture devices. + +v0.10.2 - 2020-03-22 + - Decorate some APIs with MA_API which were missed in the previous version. + - Fix a bug in ma_linear_resampler_set_rate() and ma_linear_resampler_set_rate_ratio(). + +v0.10.1 - 2020-03-17 + - Add MA_API decoration. This can be customized by defining it before including miniaudio.h. + - Fix a bug where opening a file would return a success code when in fact it failed. + - Fix compilation errors with Visual Studio 6 and 2003. + - Fix warnings on macOS. + +v0.10.0 - 2020-03-07 + - API CHANGE: Refactor data conversion APIs + - ma_format_converter has been removed. Use ma_convert_pcm_frames_format() instead. + - ma_channel_router has been replaced with ma_channel_converter. + - ma_src has been replaced with ma_resampler + - ma_pcm_converter has been replaced with ma_data_converter + - API CHANGE: Add support for custom memory allocation callbacks. The following APIs have been updated to take an extra parameter for the allocation + callbacks: + - ma_malloc() + - ma_realloc() + - ma_free() + - ma_aligned_malloc() + - ma_aligned_free() + - ma_rb_init() / ma_rb_init_ex() + - ma_pcm_rb_init() / ma_pcm_rb_init_ex() + - API CHANGE: Simplify latency specification in device configurations. The bufferSizeInFrames and bufferSizeInMilliseconds parameters have been replaced with + periodSizeInFrames and periodSizeInMilliseconds respectively. The previous variables defined the size of the entire buffer, whereas the new ones define the + size of a period. The following APIs have been removed since they are no longer relevant: + - ma_get_default_buffer_size_in_milliseconds() + - ma_get_default_buffer_size_in_frames() + - API CHANGE: ma_device_set_stop_callback() has been removed. If you require a stop callback, you must now set it via the device config just like the data + callback. + - API CHANGE: The ma_sine_wave API has been replaced with ma_waveform. The following APIs have been removed: + - ma_sine_wave_init() + - ma_sine_wave_read_f32() + - ma_sine_wave_read_f32_ex() + - API CHANGE: ma_convert_frames() has been updated to take an extra parameter which is the size of the output buffer in PCM frames. Parameters have also been + reordered. + - API CHANGE: ma_convert_frames_ex() has been changed to take a pointer to a ma_data_converter_config object to specify the input and output formats to + convert between. + - API CHANGE: ma_calculate_frame_count_after_src() has been renamed to ma_calculate_frame_count_after_resampling(). + - Add support for the following filters: + - Biquad (ma_biquad) + - First order low-pass (ma_lpf1) + - Second order low-pass (ma_lpf2) + - Low-pass with configurable order (ma_lpf) + - First order high-pass (ma_hpf1) + - Second order high-pass (ma_hpf2) + - High-pass with configurable order (ma_hpf) + - Second order band-pass (ma_bpf2) + - Band-pass with configurable order (ma_bpf) + - Second order peaking EQ (ma_peak2) + - Second order notching (ma_notch2) + - Second order low shelf (ma_loshelf2) + - Second order high shelf (ma_hishelf2) + - Add waveform generation API (ma_waveform) with support for the following: + - Sine + - Square + - Triangle + - Sawtooth + - Add noise generation API (ma_noise) with support for the following: + - White + - Pink + - Brownian + - Add encoding API (ma_encoder). This only supports outputting to WAV files via dr_wav. + - Add ma_result_description() which is used to retrieve a human readable description of a given result code. + - Result codes have been changed. Binding maintainers will need to update their result code constants. + - More meaningful result codes are now returned when a file fails to open. + - Internal functions have all been made static where possible. + - Fix potential crash when ma_device object's are not aligned to MA_SIMD_ALIGNMENT. + - Fix a bug in ma_decoder_get_length_in_pcm_frames() where it was returning the length based on the internal sample rate rather than the output sample rate. + - Fix bugs in some backends where the device is not drained properly in ma_device_stop(). + - Improvements to documentation. + +v0.9.10 - 2020-01-15 + - Fix compilation errors due to #if/#endif mismatches. + - WASAPI: Fix a bug where automatic stream routing is being performed for devices that are initialized with an explicit device ID. + - iOS: Fix a crash on device uninitialization. + +v0.9.9 - 2020-01-09 + - Fix compilation errors with MinGW. + - Fix compilation errors when compiling on Apple platforms. + - WASAPI: Add support for disabling hardware offloading. + - WASAPI: Add support for disabling automatic stream routing. + - Core Audio: Fix bugs in the case where the internal device uses deinterleaved buffers. + - Core Audio: Add support for controlling the session category (AVAudioSessionCategory) and options (AVAudioSessionCategoryOptions). + - JACK: Fix bug where incorrect ports are connected. + +v0.9.8 - 2019-10-07 + - WASAPI: Fix a potential deadlock when starting a full-duplex device. + - WASAPI: Enable automatic resampling by default. Disable with config.wasapi.noAutoConvertSRC. + - Core Audio: Fix bugs with automatic stream routing. + - Add support for controlling whether or not the content of the output buffer passed in to the data callback is pre-initialized + to zero. By default it will be initialized to zero, but this can be changed by setting noPreZeroedOutputBuffer in the device + config. Setting noPreZeroedOutputBuffer to true will leave the contents undefined. + - Add support for clipping samples after the data callback has returned. This only applies when the playback sample format is + configured as ma_format_f32. If you are doing clipping yourself, you can disable this overhead by setting noClip to true in + the device config. + - Add support for master volume control for devices. + - Use ma_device_set_master_volume() to set the volume to a factor between 0 and 1, where 0 is silence and 1 is full volume. + - Use ma_device_set_master_gain_db() to set the volume in decibels where 0 is full volume and < 0 reduces the volume. + - Fix warnings emitted by GCC when `__inline__` is undefined or defined as nothing. + +v0.9.7 - 2019-08-28 + - Add support for loopback mode (WASAPI only). + - To use this, set the device type to ma_device_type_loopback, and then fill out the capture section of the device config. + - If you need to capture from a specific output device, set the capture device ID to that of a playback device. + - Fix a crash when an error is posted in ma_device_init(). + - Fix a compilation error when compiling for ARM architectures. + - Fix a bug with the audio(4) backend where the device is incorrectly being opened in non-blocking mode. + - Fix memory leaks in the Core Audio backend. + - Minor refactoring to the WinMM, ALSA, PulseAudio, OSS, audio(4), sndio and null backends. + +v0.9.6 - 2019-08-04 + - Add support for loading decoders using a wchar_t string for file paths. + - Don't trigger an assert when ma_device_start() is called on a device that is already started. This will now log a warning + and return MA_INVALID_OPERATION. The same applies for ma_device_stop(). + - Try fixing an issue with PulseAudio taking a long time to start playback. + - Fix a bug in ma_convert_frames() and ma_convert_frames_ex(). + - Fix memory leaks in the WASAPI backend. + - Fix a compilation error with Visual Studio 2010. + +v0.9.5 - 2019-05-21 + - Add logging to ma_dlopen() and ma_dlsym(). + - Add ma_decoder_get_length_in_pcm_frames(). + - Fix a bug with capture on the OpenSL|ES backend. + - Fix a bug with the ALSA backend where a device would not restart after being stopped. + +v0.9.4 - 2019-05-06 + - Add support for C89. With this change, miniaudio should compile clean with GCC/Clang with "-std=c89 -ansi -pedantic" and + Microsoft compilers back to VC6. Other compilers should also work, but have not been tested. + +v0.9.3 - 2019-04-19 + - Fix compiler errors on GCC when compiling with -std=c99. + +v0.9.2 - 2019-04-08 + - Add support for per-context user data. + - Fix a potential bug with context configs. + - Fix some bugs with PulseAudio. + +v0.9.1 - 2019-03-17 + - Fix a bug where the output buffer is not getting zeroed out before calling the data callback. This happens when + the device is running in passthrough mode (not doing any data conversion). + - Fix an issue where the data callback is getting called too frequently on the WASAPI and DirectSound backends. + - Fix error on the UWP build. + - Fix a build error on Apple platforms. + +v0.9 - 2019-03-06 + - Rebranded to "miniaudio". All namespaces have been renamed from "mal" to "ma". + - API CHANGE: ma_device_init() and ma_device_config_init() have changed significantly: + - The device type, device ID and user data pointer have moved from ma_device_init() to the config. + - All variations of ma_device_config_init_*() have been removed in favor of just ma_device_config_init(). + - ma_device_config_init() now takes only one parameter which is the device type. All other properties need + to be set on the returned object directly. + - The onDataCallback and onStopCallback members of ma_device_config have been renamed to "dataCallback" + and "stopCallback". + - The ID of the physical device is now split into two: one for the playback device and the other for the + capture device. This is required for full-duplex. These are named "pPlaybackDeviceID" and "pCaptureDeviceID". + - API CHANGE: The data callback has changed. It now uses a unified callback for all device types rather than + being separate for each. It now takes two pointers - one containing input data and the other output data. This + design in required for full-duplex. The return value is now void instead of the number of frames written. The + new callback looks like the following: + void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount); + - API CHANGE: Remove the log callback parameter from ma_context_config_init(). With this change, + ma_context_config_init() now takes no parameters and the log callback is set via the structure directly. The + new policy for config initialization is that only mandatory settings are passed in to *_config_init(). The + "onLog" member of ma_context_config has been renamed to "logCallback". + - API CHANGE: Remove ma_device_get_buffer_size_in_bytes(). + - API CHANGE: Rename decoding APIs to "pcm_frames" convention. + - mal_decoder_read() -> ma_decoder_read_pcm_frames() + - mal_decoder_seek_to_frame() -> ma_decoder_seek_to_pcm_frame() + - API CHANGE: Rename sine wave reading APIs to f32 convention. + - mal_sine_wave_read() -> ma_sine_wave_read_f32() + - mal_sine_wave_read_ex() -> ma_sine_wave_read_f32_ex() + - API CHANGE: Remove some deprecated APIs + - mal_device_set_recv_callback() + - mal_device_set_send_callback() + - mal_src_set_input_sample_rate() + - mal_src_set_output_sample_rate() + - API CHANGE: Add log level to the log callback. New signature: + - void on_log(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message) + - API CHANGE: Changes to result codes. Constants have changed and unused codes have been removed. If you're + a binding mainainer you will need to update your result code constants. + - API CHANGE: Change the order of the ma_backend enums to priority order. If you are a binding maintainer, you + will need to update. + - API CHANGE: Rename mal_dsp to ma_pcm_converter. All functions have been renamed from mal_dsp_*() to + ma_pcm_converter_*(). All structures have been renamed from mal_dsp* to ma_pcm_converter*. + - API CHANGE: Reorder parameters of ma_decoder_read_pcm_frames() to be consistent with the new parameter order scheme. + - The resampling algorithm has been changed from sinc to linear. The rationale for this is that the sinc implementation + is too inefficient right now. This will hopefully be improved at a later date. + - Device initialization will no longer fall back to shared mode if exclusive mode is requested but is unusable. + With this change, if you request an device in exclusive mode, but exclusive mode is not supported, it will not + automatically fall back to shared mode. The client will need to reinitialize the device in shared mode if that's + what they want. + - Add ring buffer API. This is ma_rb and ma_pcm_rb, the difference being that ma_rb operates on bytes and + ma_pcm_rb operates on PCM frames. + - Add Web Audio backend. This is used when compiling with Emscripten. The SDL backend, which was previously + used for web support, will be removed in a future version. + - Add AAudio backend (Android Audio). This is the new priority backend for Android. Support for AAudio starts + with Android 8. OpenSL|ES is used as a fallback for older versions of Android. + - Remove OpenAL and SDL backends. + - Fix a possible deadlock when rapidly stopping the device after it has started. + - Update documentation. + - Change licensing to a choice of public domain _or_ MIT-0 (No Attribution). + +v0.8.14 - 2018-12-16 + - Core Audio: Fix a bug where the device state is not set correctly after stopping. + - Add support for custom weights to the channel router. + - Update decoders to use updated APIs in dr_flac, dr_mp3 and dr_wav. + +v0.8.13 - 2018-12-04 + - Core Audio: Fix a bug with channel mapping. + - Fix a bug with channel routing where the back/left and back/right channels have the wrong weight. + +v0.8.12 - 2018-11-27 + - Drop support for SDL 1.2. The Emscripten build now requires "-s USE_SDL=2". + - Fix a linking error with ALSA. + - Fix a bug on iOS where the device name is not set correctly. + +v0.8.11 - 2018-11-21 + - iOS bug fixes. + - Minor tweaks to PulseAudio. + +v0.8.10 - 2018-10-21 + - Core Audio: Fix a hang when uninitializing a device. + - Fix a bug where an incorrect value is returned from mal_device_stop(). + +v0.8.9 - 2018-09-28 + - Fix a bug with the SDL backend where device initialization fails. + +v0.8.8 - 2018-09-14 + - Fix Linux build with the ALSA backend. + - Minor documentation fix. + +v0.8.7 - 2018-09-12 + - Fix a bug with UWP detection. + +v0.8.6 - 2018-08-26 + - Automatically switch the internal device when the default device is unplugged. Note that this is still in the + early stages and not all backends handle this the same way. As of this version, this will not detect a default + device switch when changed from the operating system's audio preferences (unless the backend itself handles + this automatically). This is not supported in exclusive mode. + - WASAPI and Core Audio: Add support for stream routing. When the application is using a default device and the + user switches the default device via the operating system's audio preferences, miniaudio will automatically switch + the internal device to the new default. This is not supported in exclusive mode. + - WASAPI: Add support for hardware offloading via IAudioClient2. Only supported on Windows 8 and newer. + - WASAPI: Add support for low-latency shared mode via IAudioClient3. Only supported on Windows 10 and newer. + - Add support for compiling the UWP build as C. + - mal_device_set_recv_callback() and mal_device_set_send_callback() have been deprecated. You must now set this + when the device is initialized with mal_device_init*(). These will be removed in version 0.9.0. + +v0.8.5 - 2018-08-12 + - Add support for specifying the size of a device's buffer in milliseconds. You can still set the buffer size in + frames if that suits you. When bufferSizeInFrames is 0, bufferSizeInMilliseconds will be used. If both are non-0 + then bufferSizeInFrames will take priority. If both are set to 0 the default buffer size is used. + - Add support for the audio(4) backend to OpenBSD. + - Fix a bug with the ALSA backend that was causing problems on Raspberry Pi. This significantly improves the + Raspberry Pi experience. + - Fix a bug where an incorrect number of samples is returned from sinc resampling. + - Add support for setting the value to be passed to internal calls to CoInitializeEx(). + - WASAPI and WinMM: Stop the device when it is unplugged. + +v0.8.4 - 2018-08-06 + - Add sndio backend for OpenBSD. + - Add audio(4) backend for NetBSD. + - Drop support for the OSS backend on everything except FreeBSD and DragonFly BSD. + - Formats are now native-endian (were previously little-endian). + - Mark some APIs as deprecated: + - mal_src_set_input_sample_rate() and mal_src_set_output_sample_rate() are replaced with mal_src_set_sample_rate(). + - mal_dsp_set_input_sample_rate() and mal_dsp_set_output_sample_rate() are replaced with mal_dsp_set_sample_rate(). + - Fix a bug when capturing using the WASAPI backend. + - Fix some aliasing issues with resampling, specifically when increasing the sample rate. + - Fix warnings. + +v0.8.3 - 2018-07-15 + - Fix a crackling bug when resampling in capture mode. + - Core Audio: Fix a bug where capture does not work. + - ALSA: Fix a bug where the worker thread can get stuck in an infinite loop. + - PulseAudio: Fix a bug where mal_context_init() succeeds when PulseAudio is unusable. + - JACK: Fix a bug where mal_context_init() succeeds when JACK is unusable. + +v0.8.2 - 2018-07-07 + - Fix a bug on macOS with Core Audio where the internal callback is not called. + +v0.8.1 - 2018-07-06 + - Fix compilation errors and warnings. + +v0.8 - 2018-07-05 + - Changed MAL_IMPLEMENTATION to MINI_AL_IMPLEMENTATION for consistency with other libraries. The old + way is still supported for now, but you should update as it may be removed in the future. + - API CHANGE: Replace device enumeration APIs. mal_enumerate_devices() has been replaced with + mal_context_get_devices(). An additional low-level device enumration API has been introduced called + mal_context_enumerate_devices() which uses a callback to report devices. + - API CHANGE: Rename mal_get_sample_size_in_bytes() to mal_get_bytes_per_sample() and add + mal_get_bytes_per_frame(). + - API CHANGE: Replace mal_device_config.preferExclusiveMode with mal_device_config.shareMode. + - This new config can be set to mal_share_mode_shared (default) or mal_share_mode_exclusive. + - API CHANGE: Remove excludeNullDevice from mal_context_config.alsa. + - API CHANGE: Rename MAL_MAX_SAMPLE_SIZE_IN_BYTES to MAL_MAX_PCM_SAMPLE_SIZE_IN_BYTES. + - API CHANGE: Change the default channel mapping to the standard Microsoft mapping. + - API CHANGE: Remove backend-specific result codes. + - API CHANGE: Changes to the format conversion APIs (mal_pcm_f32_to_s16(), etc.) + - Add support for Core Audio (Apple). + - Add support for PulseAudio. + - This is the highest priority backend on Linux (higher priority than ALSA) since it is commonly + installed by default on many of the popular distros and offer's more seamless integration on + platforms where PulseAudio is used. In addition, if PulseAudio is installed and running (which + is extremely common), it's better to just use PulseAudio directly rather than going through the + "pulse" ALSA plugin (which is what the "default" ALSA device is likely set to). + - Add support for JACK. + - Remove dependency on asound.h for the ALSA backend. This means the ALSA development packages are no + longer required to build miniaudio. + - Remove dependency on dsound.h for the DirectSound backend. This fixes build issues with some + distributions of MinGW. + - Remove dependency on audioclient.h for the WASAPI backend. This fixes build issues with some + distributions of MinGW. + - Add support for dithering to format conversion. + - Add support for configuring the priority of the worker thread. + - Add a sine wave generator. + - Improve efficiency of sample rate conversion. + - Introduce the notion of standard channel maps. Use mal_get_standard_channel_map(). + - Introduce the notion of default device configurations. A default config uses the same configuration + as the backend's internal device, and as such results in a pass-through data transmission pipeline. + - Add support for passing in NULL for the device config in mal_device_init(), which uses a default + config. This requires manually calling mal_device_set_send/recv_callback(). + - Add support for decoding from raw PCM data (mal_decoder_init_raw(), etc.) + - Make mal_device_init_ex() more robust. + - Make some APIs more const-correct. + - Fix errors with SDL detection on Apple platforms. + - Fix errors with OpenAL detection. + - Fix some memory leaks. + - Fix a bug with opening decoders from memory. + - Early work on SSE2, AVX2 and NEON optimizations. + - Miscellaneous bug fixes. + - Documentation updates. + +v0.7 - 2018-02-25 + - API CHANGE: Change mal_src_read_frames() and mal_dsp_read_frames() to use 64-bit sample counts. + - Add decoder APIs for loading WAV, FLAC, Vorbis and MP3 files. + - Allow opening of devices without a context. + - In this case the context is created and managed internally by the device. + - Change the default channel mapping to the same as that used by FLAC. + - Fix build errors with macOS. + +v0.6c - 2018-02-12 + - Fix build errors with BSD/OSS. + +v0.6b - 2018-02-03 + - Fix some warnings when compiling with Visual C++. + +v0.6a - 2018-01-26 + - Fix errors with channel mixing when increasing the channel count. + - Improvements to the build system for the OpenAL backend. + - Documentation fixes. + +v0.6 - 2017-12-08 + - API CHANGE: Expose and improve mutex APIs. If you were using the mutex APIs before this version you'll + need to update. + - API CHANGE: SRC and DSP callbacks now take a pointer to a mal_src and mal_dsp object respectively. + - API CHANGE: Improvements to event and thread APIs. These changes make these APIs more consistent. + - Add support for SDL and Emscripten. + - Simplify the build system further for when development packages for various backends are not installed. + With this change, when the compiler supports __has_include, backends without the relevant development + packages installed will be ignored. This fixes the build for old versions of MinGW. + - Fixes to the Android build. + - Add mal_convert_frames(). This is a high-level helper API for performing a one-time, bulk conversion of + audio data to a different format. + - Improvements to f32 -> u8/s16/s24/s32 conversion routines. + - Fix a bug where the wrong value is returned from mal_device_start() for the OpenSL backend. + - Fixes and improvements for Raspberry Pi. + - Warning fixes. + +v0.5 - 2017-11-11 + - API CHANGE: The mal_context_init() function now takes a pointer to a mal_context_config object for + configuring the context. The works in the same kind of way as the device config. The rationale for this + change is to give applications better control over context-level properties, add support for backend- + specific configurations, and support extensibility without breaking the API. + - API CHANGE: The alsa.preferPlugHW device config variable has been removed since it's not really useful for + anything anymore. + - ALSA: By default, device enumeration will now only enumerate over unique card/device pairs. Applications + can enable verbose device enumeration by setting the alsa.useVerboseDeviceEnumeration context config + variable. + - ALSA: When opening a device in shared mode (the default), the dmix/dsnoop plugin will be prioritized. If + this fails it will fall back to the hw plugin. With this change the preferExclusiveMode config is now + honored. Note that this does not happen when alsa.useVerboseDeviceEnumeration is set to true (see above) + which is by design. + - ALSA: Add support for excluding the "null" device using the alsa.excludeNullDevice context config variable. + - ALSA: Fix a bug with channel mapping which causes an assertion to fail. + - Fix errors with enumeration when pInfo is set to NULL. + - OSS: Fix a bug when starting a device when the client sends 0 samples for the initial buffer fill. + +v0.4 - 2017-11-05 + - API CHANGE: The log callback is now per-context rather than per-device and as is thus now passed to + mal_context_init(). The rationale for this change is that it allows applications to capture diagnostic + messages at the context level. Previously this was only available at the device level. + - API CHANGE: The device config passed to mal_device_init() is now const. + - Added support for OSS which enables support on BSD platforms. + - Added support for WinMM (waveOut/waveIn). + - Added support for UWP (Universal Windows Platform) applications. Currently C++ only. + - Added support for exclusive mode for selected backends. Currently supported on WASAPI. + - POSIX builds no longer require explicit linking to libpthread (-lpthread). + - ALSA: Explicit linking to libasound (-lasound) is no longer required. + - ALSA: Latency improvements. + - ALSA: Use MMAP mode where available. This can be disabled with the alsa.noMMap config. + - ALSA: Use "hw" devices instead of "plughw" devices by default. This can be disabled with the + alsa.preferPlugHW config. + - WASAPI is now the highest priority backend on Windows platforms. + - Fixed an error with sample rate conversion which was causing crackling when capturing. + - Improved error handling. + - Improved compiler support. + - Miscellaneous bug fixes. + +v0.3 - 2017-06-19 + - API CHANGE: Introduced the notion of a context. The context is the highest level object and is required for + enumerating and creating devices. Now, applications must first create a context, and then use that to + enumerate and create devices. The reason for this change is to ensure device enumeration and creation is + tied to the same backend. In addition, some backends are better suited to this design. + - API CHANGE: Removed the rewinding APIs because they're too inconsistent across the different backends, hard + to test and maintain, and just generally unreliable. + - Added helper APIs for initializing mal_device_config objects. + - Null Backend: Fixed a crash when recording. + - Fixed build for UWP. + - Added support for f32 formats to the OpenSL|ES backend. + - Added initial implementation of the WASAPI backend. + - Added initial implementation of the OpenAL backend. + - Added support for low quality linear sample rate conversion. + - Added early support for basic channel mapping. + +v0.2 - 2016-10-28 + - API CHANGE: Add user data pointer as the last parameter to mal_device_init(). The rationale for this + change is to ensure the logging callback has access to the user data during initialization. + - API CHANGE: Have device configuration properties be passed to mal_device_init() via a structure. Rationale: + 1) The number of parameters is just getting too much. + 2) It makes it a bit easier to add new configuration properties in the future. In particular, there's a + chance there will be support added for backend-specific properties. + - Dropped support for f64, A-law and Mu-law formats since they just aren't common enough to justify the + added maintenance cost. + - DirectSound: Increased the default buffer size for capture devices. + - Added initial implementation of the OpenSL|ES backend. + +v0.1 - 2016-10-21 + - Initial versioned release. +*/ + + +/* +This software is available as a choice of the following licenses. Choose +whichever you prefer. + +=============================================================================== +ALTERNATIVE 1 - Public Domain (www.unlicense.org) +=============================================================================== +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. + +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +=============================================================================== +ALTERNATIVE 2 - MIT No Attribution +=============================================================================== +Copyright 2020 David Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ diff --git a/sources/LabSound/third_party/ooura/fftsg.h b/sources/LabSound/third_party/ooura/fftsg.h new file mode 100644 index 00000000..a5cff226 --- /dev/null +++ b/sources/LabSound/third_party/ooura/fftsg.h @@ -0,0 +1,219 @@ + +/* + + This version of the ooura fft routines is by Richard Eakin, for Cinder Audio 2 + + */ + +/* + +This is the OOURA implementation of various FFT algorithms, which was found at: +http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html + +The original package contains multiple implementations, we are using fftsg.c, also +called 'Fast Version III (Split-Radix)'. Documentation of the algorithms and their +parameters remain in the corresponding implementation file. + +Modifications (August 2013): +- The functions have been templated on the scalar type, which was originally double. +Definitions for T = float and double are declared at the bottom of fftsg.cpp +- Removed pthreads support. + +======================================================================== + +Original docs from OOURA's readme.txt: + +General Purpose FFT (Fast Fourier/Cosine/Sine Transform) Package + +Description: +A package to calculate Discrete Fourier/Cosine/Sine Transforms of +1-dimensional sequences of length 2^N. + +Files: +fft4g.c : FFT Package in C - Fast Version I (radix 4,2) +fft4g.f : FFT Package in Fortran - Fast Version I (radix 4,2) +fft4g_h.c : FFT Package in C - Simple Version I (radix 4,2) +fft8g.c : FFT Package in C - Fast Version II (radix 8,4,2) +fft8g.f : FFT Package in Fortran - Fast Version II (radix 8,4,2) +fft8g_h.c : FFT Package in C - Simple Version II (radix 8,4,2) +fftsg.c : FFT Package in C - Fast Version III (Split-Radix) +fftsg.f : FFT Package in Fortran - Fast Version III (Split-Radix) +fftsg_h.c : FFT Package in C - Simple Version III (Split-Radix) +readme.txt : Readme File +sample1/ : Test Directory +Makefile : for gcc, cc +Makefile.f77: for Fortran +testxg.c : Test Program for "fft*g.c" +testxg.f : Test Program for "fft*g.f" +testxg_h.c : Test Program for "fft*g_h.c" +sample2/ : Benchmark Directory +Makefile : for gcc, cc +Makefile.pth: POSIX Thread version +pi_fft.c : PI(= 3.1415926535897932384626...) Calculation Program +for a Benchmark Test for "fft*g.c" + +Difference of the Files: +C and Fortran versions are equal and +the same routines are in each version. +"fft4g*.*" are optimized for most machines. +"fft8g*.*" are fast on the UltraSPARC. +"fftsg*.*" are optimized for the machines that +have the multi-level (L1,L2,etc) cache. +The simple versions "fft*g_h.c" use no work area, but +the fast versions "fft*g.*" use work areas. +The fast versions "fft*g.*" have the same specification. + +Routines in the Package: +cdft: Complex Discrete Fourier Transform +rdft: Real Discrete Fourier Transform +ddct: Discrete Cosine Transform +ddst: Discrete Sine Transform +dfct: Cosine Transform of RDFT (Real Symmetric DFT) +dfst: Sine Transform of RDFT (Real Anti-symmetric DFT) + +Usage: +Please refer to the comments in the "fft**.*" file which +you want to use. Brief explanations are in the block +comments of each package. The examples are also given in +the test programs. + +Method: +-------- cdft -------- +fft4g*.*, fft8g*.*: +A method of in-place, radix 2^M, Sande-Tukey (decimation in +frequency). Index of the butterfly loop is in bit +reverse order to keep continuous memory access. +fftsg*.*: +A method of in-place, Split-Radix, recursive fast +algorithm. +-------- rdft -------- +A method with a following butterfly operation appended to "cdft". +In forward transform : +A[k] = sum_j=0^n-1 a[j]*W(n)^(j*k), 0<=k<=n/2, +W(n) = exp(2*pi*i/n), +this routine makes an array x[] : +x[j] = a[2*j] + i*a[2*j+1], 0<=j +void cdft(int n, int isgn, T *a, int *ip, T *w); + +template +void rdft(int n, int isgn, T *a, int *ip, T *w); + +template +void ddct(int n, int isgn, T *a, int *ip, T *w); + +template +void ddst(int n, int isgn, T *a, int *ip, T *w); + +template +void dfct(int n, T *a, T *t, int *ip, T *w); + +template +void dfst(int n, T *a, T *t, int *ip, T *w); + +} diff --git a/sources/LabSound/third_party/ooura/src/fftsg.cpp b/sources/LabSound/third_party/ooura/src/fftsg.cpp new file mode 100644 index 00000000..29bde10d --- /dev/null +++ b/sources/LabSound/third_party/ooura/src/fftsg.cpp @@ -0,0 +1,3358 @@ +/* +Fast Fourier/Cosine/Sine Transform + dimension :one + data length :power of 2 + decimation :frequency + radix :split-radix + data :inplace + table :use +functions + cdft: Complex Discrete Fourier Transform + rdft: Real Discrete Fourier Transform + ddct: Discrete Cosine Transform + ddst: Discrete Sine Transform + dfct: Cosine Transform of RDFT (Real Symmetric DFT) + dfst: Sine Transform of RDFT (Real Anti-symmetric DFT) +function prototypes + void cdft(int, int, double *, int *, double *); + void rdft(int, int, double *, int *, double *); + void ddct(int, int, double *, int *, double *); + void ddst(int, int, double *, int *, double *); + void dfct(int, double *, double *, int *, double *); + void dfst(int, double *, double *, int *, double *); +macro definitions + USE_CDFT_PTHREADS : default=not defined + CDFT_THREADS_BEGIN_N : must be >= 512, default=8192 + CDFT_4THREADS_BEGIN_N : must be >= 512, default=65536 + USE_CDFT_WINTHREADS : default=not defined + CDFT_THREADS_BEGIN_N : must be >= 512, default=32768 + CDFT_4THREADS_BEGIN_N : must be >= 512, default=524288 + + +-------- Complex DFT (Discrete Fourier Transform) -------- + [definition] + + X[k] = sum_j=0^n-1 x[j]*exp(2*pi*i*j*k/n), 0<=k + X[k] = sum_j=0^n-1 x[j]*exp(-2*pi*i*j*k/n), 0<=k + ip[0] = 0; // first time only + cdft(2*n, 1, a, ip, w); + + ip[0] = 0; // first time only + cdft(2*n, -1, a, ip, w); + [parameters] + 2*n :data length (int) + n >= 1, n = power of 2 + a[0...2*n-1] :input/output data (double *) + input data + a[2*j] = Re(x[j]), + a[2*j+1] = Im(x[j]), 0<=j= 2+sqrt(n) + strictly, + length of ip >= + 2+(1<<(int)(log(n+0.5)/log(2))/2). + ip[0],ip[1] are pointers of the cos/sin table. + w[0...n/2-1] :cos/sin table (double *) + w[],ip[] are initialized if ip[0] == 0. + [remark] + Inverse of + cdft(2*n, -1, a, ip, w); + is + cdft(2*n, 1, a, ip, w); + for (j = 0; j <= 2 * n - 1; j++) { + a[j] *= 1.0 / n; + } + . + + +-------- Real DFT / Inverse of Real DFT -------- + [definition] + RDFT + R[k] = sum_j=0^n-1 a[j]*cos(2*pi*j*k/n), 0<=k<=n/2 + I[k] = sum_j=0^n-1 a[j]*sin(2*pi*j*k/n), 0 IRDFT (excluding scale) + a[k] = (R[0] + R[n/2]*cos(pi*k))/2 + + sum_j=1^n/2-1 R[j]*cos(2*pi*j*k/n) + + sum_j=1^n/2-1 I[j]*sin(2*pi*j*k/n), 0<=k + ip[0] = 0; // first time only + rdft(n, 1, a, ip, w); + + ip[0] = 0; // first time only + rdft(n, -1, a, ip, w); + [parameters] + n :data length (int) + n >= 2, n = power of 2 + a[0...n-1] :input/output data (double *) + + output data + a[2*k] = R[k], 0<=k + input data + a[2*j] = R[j], 0<=j= 2+sqrt(n/2) + strictly, + length of ip >= + 2+(1<<(int)(log(n/2+0.5)/log(2))/2). + ip[0],ip[1] are pointers of the cos/sin table. + w[0...n/2-1] :cos/sin table (double *) + w[],ip[] are initialized if ip[0] == 0. + [remark] + Inverse of + rdft(n, 1, a, ip, w); + is + rdft(n, -1, a, ip, w); + for (j = 0; j <= n - 1; j++) { + a[j] *= 2.0 / n; + } + . + + +-------- DCT (Discrete Cosine Transform) / Inverse of DCT -------- + [definition] + IDCT (excluding scale) + C[k] = sum_j=0^n-1 a[j]*cos(pi*j*(k+1/2)/n), 0<=k DCT + C[k] = sum_j=0^n-1 a[j]*cos(pi*(j+1/2)*k/n), 0<=k + ip[0] = 0; // first time only + ddct(n, 1, a, ip, w); + + ip[0] = 0; // first time only + ddct(n, -1, a, ip, w); + [parameters] + n :data length (int) + n >= 2, n = power of 2 + a[0...n-1] :input/output data (double *) + output data + a[k] = C[k], 0<=k= 2+sqrt(n/2) + strictly, + length of ip >= + 2+(1<<(int)(log(n/2+0.5)/log(2))/2). + ip[0],ip[1] are pointers of the cos/sin table. + w[0...n*5/4-1] :cos/sin table (double *) + w[],ip[] are initialized if ip[0] == 0. + [remark] + Inverse of + ddct(n, -1, a, ip, w); + is + a[0] *= 0.5; + ddct(n, 1, a, ip, w); + for (j = 0; j <= n - 1; j++) { + a[j] *= 2.0 / n; + } + . + + +-------- DST (Discrete Sine Transform) / Inverse of DST -------- + [definition] + IDST (excluding scale) + S[k] = sum_j=1^n A[j]*sin(pi*j*(k+1/2)/n), 0<=k DST + S[k] = sum_j=0^n-1 a[j]*sin(pi*(j+1/2)*k/n), 0 + ip[0] = 0; // first time only + ddst(n, 1, a, ip, w); + + ip[0] = 0; // first time only + ddst(n, -1, a, ip, w); + [parameters] + n :data length (int) + n >= 2, n = power of 2 + a[0...n-1] :input/output data (double *) + + input data + a[j] = A[j], 0 + output data + a[k] = S[k], 0= 2+sqrt(n/2) + strictly, + length of ip >= + 2+(1<<(int)(log(n/2+0.5)/log(2))/2). + ip[0],ip[1] are pointers of the cos/sin table. + w[0...n*5/4-1] :cos/sin table (double *) + w[],ip[] are initialized if ip[0] == 0. + [remark] + Inverse of + ddst(n, -1, a, ip, w); + is + a[0] *= 0.5; + ddst(n, 1, a, ip, w); + for (j = 0; j <= n - 1; j++) { + a[j] *= 2.0 / n; + } + . + + +-------- Cosine Transform of RDFT (Real Symmetric DFT) -------- + [definition] + C[k] = sum_j=0^n a[j]*cos(pi*j*k/n), 0<=k<=n + [usage] + ip[0] = 0; // first time only + dfct(n, a, t, ip, w); + [parameters] + n :data length - 1 (int) + n >= 2, n = power of 2 + a[0...n] :input/output data (double *) + output data + a[k] = C[k], 0<=k<=n + t[0...n/2] :work area (double *) + ip[0...*] :work area for bit reversal (int *) + length of ip >= 2+sqrt(n/4) + strictly, + length of ip >= + 2+(1<<(int)(log(n/4+0.5)/log(2))/2). + ip[0],ip[1] are pointers of the cos/sin table. + w[0...n*5/8-1] :cos/sin table (double *) + w[],ip[] are initialized if ip[0] == 0. + [remark] + Inverse of + a[0] *= 0.5; + a[n] *= 0.5; + dfct(n, a, t, ip, w); + is + a[0] *= 0.5; + a[n] *= 0.5; + dfct(n, a, t, ip, w); + for (j = 0; j <= n; j++) { + a[j] *= 2.0 / n; + } + . + + +-------- Sine Transform of RDFT (Real Anti-symmetric DFT) -------- + [definition] + S[k] = sum_j=1^n-1 a[j]*sin(pi*j*k/n), 0= 2, n = power of 2 + a[0...n-1] :input/output data (double *) + output data + a[k] = S[k], 0= 2+sqrt(n/4) + strictly, + length of ip >= + 2+(1<<(int)(log(n/4+0.5)/log(2))/2). + ip[0],ip[1] are pointers of the cos/sin table. + w[0...n*5/8-1] :cos/sin table (double *) + w[],ip[] are initialized if ip[0] == 0. + [remark] + Inverse of + dfst(n, a, t, ip, w); + is + dfst(n, a, t, ip, w); + for (j = 1; j <= n - 1; j++) { + a[j] *= 2.0 / n; + } + . + + +Appendix : + The cos/sin table is recalculated when the larger table required. + w[] and ip[] are compatible with all routines. +*/ + +#include "ooura/fftsg.h" +#include + +namespace { + + template + struct math + { + static T acos (T x) {return ::acos (double(x));} + static T asin (T x) {return ::asin (double(x));} + static T atan (T x) {return ::atan (double(x));} + static T atan2 (T y, T x) {return ::atan2 (double(y), double(x));} + static T cos (T x) {return ::cos (double(x));} + static T sin (T x) {return ::sin (double(x));} + static T tan (T x) {return ::tan (double(x));} + static T cosh (T x) {return ::cosh (double(x));} + static T sinh (T x) {return ::sinh (double(x));} + static T tanh (T x) {return ::tanh (double(x));} + static T exp (T x) {return ::exp (double(x));} + static T log (T x) {return ::log (double(x));} + static T log10 (T x) {return ::log10 (double(x));} + static T modf (T x, T *iptr) + { + double ival; + T rval( ::modf (double(x),&ival)); + *iptr = ival; + return rval; + } + static T pow (T x, T y) {return ::pow (double(x), double(y));} + static T sqrt (T x) {return ::sqrt (double(x));} +#if defined( _MSC_VER ) + static T cbrt( T x ) { return ( x > 0 ) ? (::pow( x, 1.0 / 3.0 )) : (- ::pow( -x, 1.0 / 3.0 ) ); } +#else + static T cbrt( T x ) { return ::cbrt( x ); } +#endif + static T ceil (T x) {return ::ceil (double(x));} + static T abs (T x) {return ::fabs (double(x));} + static T floor (T x) {return ::floor (double(x));} + static T fmod (T x, T y) {return ::fmod (double(x), double(y));} + static T hypot (T x, T y) {return ::hypot (double(x), double(y));} + static T signum (T x) {return ( x >0.0 ) ? 1.0 : ( ( x < 0.0 ) ? -1.0 : 0.0 ); } + static T min(T x, T y) {return ( x < y ) ? x : y; } + static T max(T x, T y) {return ( x > y ) ? x : y; } + static T clamp(T x, T min=0, T max=1) {return ( x < min ) ? min : ( ( x > max ) ? max : x );} + }; + + + template<> + struct math + { + static float acos (float x) {return ::acosf (x);} + static float asin (float x) {return ::asinf (x);} + static float atan (float x) {return ::atanf (x);} + static float atan2 (float y, float x) {return ::atan2f (y, x);} + static float cos (float x) {return ::cosf (x);} + static float sin (float x) {return ::sinf (x);} + static float tan (float x) {return ::tanf (x);} + static float cosh (float x) {return ::coshf (x);} + static float sinh (float x) {return ::sinhf (x);} + static float tanh (float x) {return ::tanhf (x);} + static float exp (float x) {return ::expf (x);} + static float log (float x) {return ::logf (x);} + static float log10 (float x) {return ::log10f (x);} + static float modf (float x, float *y) {return ::modff (x, y);} + static float pow (float x, float y) {return ::powf (x, y);} + static float sqrt (float x) {return ::sqrtf (x);} +#if defined( _MSC_VER ) + static float cbrt( float x ) { return ( x > 0 ) ? (::powf( x, 1.0f / 3.0f )) : (- ::powf( -x, 1.0f / 3.0f ) ); } +#else + static float cbrt (float x) { return ::cbrtf( x ); } +#endif + static float ceil (float x) {return ::ceilf (x);} + static float abs (float x) {return ::fabsf (x);} + static float floor (float x) {return ::floorf (x);} + static float fmod (float x, float y) {return ::fmodf (x, y);} +#if !defined(_MSC_VER) + static float hypot (float x, float y) {return ::hypotf (x, y);} +#else + static float hypot (float x, float y) {return ::sqrtf(x*x + y*y);} +#endif + static float signum (float x) {return ( x > 0.0f ) ? 1.0f : ( ( x < 0.0f ) ? -1.0f : 0.0f ); } + static float min(float x, float y) {return ( x < y ) ? x : y; } + static float max(float x, float y) {return ( x > y ) ? x : y; } + static float clamp(float x, float min=0, float max=1) {return ( x < min ) ? min : ( ( x > max ) ? max : x );} + }; + +} // anon + + +namespace ooura { + +template void cftfsub(int n, T *a, int *ip, int nw, T *w); +template void makewt(int nw, int *ip, T *w); +template void cftfsub(int n, T *a, int *ip, int nw, T *w); +template void cftbsub(int n, T *a, int *ip, int nw, T *w); +template void rftfsub(int n, T *a, int nc, T *c); +template void rftbsub(int n, T *a, int nc, T *c); +template void dctsub(int n, T *a, int nc, T *c); +template void dstsub(int n, T *a, int nc, T *c); +template void bitrv2(int n, int *ip, T *a); +template void bitrv2conj(int n, int *ip, T *a); +template void bitrv216(T *a); +template void bitrv216neg(T *a); +template void bitrv208(T *a); +template void bitrv208neg(T *a); +template void cftb1st(int n, T *a, T *w); +template void cftf1st(int n, T *a, T *w); +template void cftrec4(int n, T *a, int nw, T *w); +template int cfttree(int n, int j, int k, T *a, int nw, T *w); +template void cftleaf(int n, int isplt, T *a, int nw, T *w); +template void cftmdl1(int n, T *a, T *w); +template void cftmdl2(int n, T *a, T *w); +template void cftf161(T *a, T *w); +template void cftf162(T *a, T *w); +template void cftf081(T *a, T *w); +template void cftf082(T *a, T *w); +template void cftb040(T *a); +template void cftx020(T *a); +template void cftf040(T *a); +template void cftfx41(int n, T *a, int nw, T *w); + +template +void makewt(int nw, int *ip, T *w) +{ + void makeipt(int nw, int *ip); + int j, nwh, nw0, nw1; + T delta, wn4r, wk1r, wk1i, wk3r, wk3i; + + ip[0] = nw; + ip[1] = 1; + if (nw > 2) + { + nwh = nw >> 1; + delta = math::atan((T)1.0) / nwh; + wn4r = math::cos(delta * nwh); + w[0] = 1; + w[1] = wn4r; + if (nwh == 4) + { + w[2] = math::cos(delta * 2); + w[3] = math::sin(delta * 2); + } + else if (nwh > 4) + { + makeipt(nw, ip); + w[2] = (T)0.5 / math::cos(delta * 2); + w[3] = (T)0.5 / math::cos(delta * 6); + for (j = 4; j < nwh; j += 4) + { + w[j] = math::cos(delta * j); + w[j + 1] = math::sin(delta * j); + w[j + 2] = math::cos(3 * delta * j); + w[j + 3] = -math::sin(3 * delta * j); + } + } + nw0 = 0; + while (nwh > 2) + { + nw1 = nw0 + nwh; + nwh >>= 1; + w[nw1] = 1; + w[nw1 + 1] = wn4r; + if (nwh == 4) + { + wk1r = w[nw0 + 4]; + wk1i = w[nw0 + 5]; + w[nw1 + 2] = wk1r; + w[nw1 + 3] = wk1i; + } + else if (nwh > 4) + { + wk1r = w[nw0 + 4]; + wk3r = w[nw0 + 6]; + w[nw1 + 2] = (T)0.5 / wk1r; + w[nw1 + 3] = (T)0.5 / wk3r; + for (j = 4; j < nwh; j += 4) + { + wk1r = w[nw0 + 2 * j]; + wk1i = w[nw0 + 2 * j + 1]; + wk3r = w[nw0 + 2 * j + 2]; + wk3i = w[nw0 + 2 * j + 3]; + w[nw1 + j] = wk1r; + w[nw1 + j + 1] = wk1i; + w[nw1 + j + 2] = wk3r; + w[nw1 + j + 3] = wk3i; + } + } + nw0 = nw1; + } + } +} + +void makeipt(int nw, int *ip) +{ + int j, l, m, m2, p, q; + + ip[2] = 0; + ip[3] = 16; + m = 2; + for (l = nw; l > 32; l >>= 2) + { + m2 = m << 1; + q = m2 << 3; + for (j = m; j < m2; j++) + { + p = ip[j] << 2; + ip[m + j] = p; + ip[m2 + j] = p + q; + } + m = m2; + } +} + +template +void makect(int nc, int *ip, T *c) +{ + int j, nch; + T delta; + + ip[1] = nc; + if (nc > 1) + { + nch = nc >> 1; + delta = math::atan((T)1.0) / nch; + c[0] = math::cos(delta * nch); + c[nch] = (T)0.5 * c[0]; + for (j = 1; j < nch; j++) + { + c[j] = (T)0.5 * math::cos(delta * j); + c[nc - j] = (T)0.5 * math::sin(delta * j); + } + } +} + +template +void cdft(int n, int isgn, T *a, int *ip, T *w) +{ + int nw; + + nw = ip[0]; + if (n > (nw << 2)) + { + nw = n >> 2; + makewt(nw, ip, w); + } + if (isgn >= 0) + { + cftfsub(n, a, ip, nw, w); + } + else + { + cftbsub(n, a, ip, nw, w); + } +} + +template +void rdft(int n, int isgn, T *a, int *ip, T *w) +{ + int nw, nc; + T xi; + + nw = ip[0]; + if (n > (nw << 2)) + { + nw = n >> 2; + makewt(nw, ip, w); + } + nc = ip[1]; + if (n > (nc << 2)) + { + nc = n >> 2; + makect(nc, ip, w + nw); + } + if (isgn >= 0) + { + if (n > 4) + { + cftfsub(n, a, ip, nw, w); + rftfsub(n, a, nc, w + nw); + } + else if (n == 4) + { + cftfsub(n, a, ip, nw, w); + } + xi = a[0] - a[1]; + a[0] += a[1]; + a[1] = xi; + } + else + { + a[1] = (T)0.5 * (a[0] - a[1]); + a[0] -= a[1]; + if (n > 4) + { + rftbsub(n, a, nc, w + nw); + cftbsub(n, a, ip, nw, w); + } + else if (n == 4) + { + cftbsub(n, a, ip, nw, w); + } + } +} + +template +void ddct(int n, int isgn, T *a, int *ip, T *w) +{ + int j, nw, nc; + T xr; + + nw = ip[0]; + if (n > (nw << 2)) + { + nw = n >> 2; + makewt(nw, ip, w); + } + nc = ip[1]; + if (n > nc) + { + nc = n; + makect(nc, ip, w + nw); + } + if (isgn < 0) + { + xr = a[n - 1]; + for (j = n - 2; j >= 2; j -= 2) + { + a[j + 1] = a[j] - a[j - 1]; + a[j] += a[j - 1]; + } + a[1] = a[0] - xr; + a[0] += xr; + if (n > 4) + { + rftbsub(n, a, nc, w + nw); + cftbsub(n, a, ip, nw, w); + } + else if (n == 4) + { + cftbsub(n, a, ip, nw, w); + } + } + dctsub(n, a, nc, w + nw); + if (isgn >= 0) + { + if (n > 4) + { + cftfsub(n, a, ip, nw, w); + rftfsub(n, a, nc, w + nw); + } + else if (n == 4) + { + cftfsub(n, a, ip, nw, w); + } + xr = a[0] - a[1]; + a[0] += a[1]; + for (j = 2; j < n; j += 2) + { + a[j - 1] = a[j] - a[j + 1]; + a[j] += a[j + 1]; + } + a[n - 1] = xr; + } +} + +template +void ddst(int n, int isgn, T *a, int *ip, T *w) +{ + int j, nw, nc; + T xr; + + nw = ip[0]; + if (n > (nw << 2)) + { + nw = n >> 2; + makewt(nw, ip, w); + } + nc = ip[1]; + if (n > nc) + { + nc = n; + makect(nc, ip, w + nw); + } + if (isgn < 0) + { + xr = a[n - 1]; + for (j = n - 2; j >= 2; j -= 2) + { + a[j + 1] = -a[j] - a[j - 1]; + a[j] -= a[j - 1]; + } + a[1] = a[0] + xr; + a[0] -= xr; + if (n > 4) + { + rftbsub(n, a, nc, w + nw); + cftbsub(n, a, ip, nw, w); + } + else if (n == 4) + { + cftbsub(n, a, ip, nw, w); + } + } + dstsub(n, a, nc, w + nw); + if (isgn >= 0) + { + if (n > 4) + { + cftfsub(n, a, ip, nw, w); + rftfsub(n, a, nc, w + nw); + } + else if (n == 4) + { + cftfsub(n, a, ip, nw, w); + } + xr = a[0] - a[1]; + a[0] += a[1]; + for (j = 2; j < n; j += 2) + { + a[j - 1] = -a[j] - a[j + 1]; + a[j] -= a[j + 1]; + } + a[n - 1] = -xr; + } +} + +template +void dfct(int n, T *a, T *t, int *ip, T *w) +{ + int j, k, l, m, mh, nw, nc; + T xr, xi, yr, yi; + + nw = ip[0]; + if (n > (nw << 3)) + { + nw = n >> 3; + makewt(nw, ip, w); + } + nc = ip[1]; + if (n > (nc << 1)) + { + nc = n >> 1; + makect(nc, ip, w + nw); + } + m = n >> 1; + yi = a[m]; + xi = a[0] + a[n]; + a[0] -= a[n]; + t[0] = xi - yi; + t[m] = xi + yi; + if (n > 2) + { + mh = m >> 1; + for (j = 1; j < mh; j++) + { + k = m - j; + xr = a[j] - a[n - j]; + xi = a[j] + a[n - j]; + yr = a[k] - a[n - k]; + yi = a[k] + a[n - k]; + a[j] = xr; + a[k] = yr; + t[j] = xi - yi; + t[k] = xi + yi; + } + t[mh] = a[mh] + a[n - mh]; + a[mh] -= a[n - mh]; + dctsub(m, a, nc, w + nw); + if (m > 4) + { + cftfsub(m, a, ip, nw, w); + rftfsub(m, a, nc, w + nw); + } + else if (m == 4) + { + cftfsub(m, a, ip, nw, w); + } + a[n - 1] = a[0] - a[1]; + a[1] = a[0] + a[1]; + for (j = m - 2; j >= 2; j -= 2) + { + a[2 * j + 1] = a[j] + a[j + 1]; + a[2 * j - 1] = a[j] - a[j + 1]; + } + l = 2; + m = mh; + while (m >= 2) + { + dctsub(m, t, nc, w + nw); + if (m > 4) + { + cftfsub(m, t, ip, nw, w); + rftfsub(m, t, nc, w + nw); + } + else if (m == 4) + { + cftfsub(m, t, ip, nw, w); + } + a[n - l] = t[0] - t[1]; + a[l] = t[0] + t[1]; + k = 0; + for (j = 2; j < m; j += 2) + { + k += l << 2; + a[k - l] = t[j] - t[j + 1]; + a[k + l] = t[j] + t[j + 1]; + } + l <<= 1; + mh = m >> 1; + for (j = 0; j < mh; j++) + { + k = m - j; + t[j] = t[m + k] - t[m + j]; + t[k] = t[m + k] + t[m + j]; + } + t[mh] = t[m + mh]; + m = mh; + } + a[l] = t[0]; + a[n] = t[2] - t[1]; + a[0] = t[2] + t[1]; + } + else + { + a[1] = a[0]; + a[2] = t[0]; + a[0] = t[1]; + } +} + +template +void dfst(int n, T *a, T *t, int *ip, T *w) +{ + int j, k, l, m, mh, nw, nc; + T xr, xi, yr, yi; + + nw = ip[0]; + if (n > (nw << 3)) + { + nw = n >> 3; + makewt(nw, ip, w); + } + nc = ip[1]; + if (n > (nc << 1)) + { + nc = n >> 1; + makect(nc, ip, w + nw); + } + if (n > 2) + { + m = n >> 1; + mh = m >> 1; + for (j = 1; j < mh; j++) + { + k = m - j; + xr = a[j] + a[n - j]; + xi = a[j] - a[n - j]; + yr = a[k] + a[n - k]; + yi = a[k] - a[n - k]; + a[j] = xr; + a[k] = yr; + t[j] = xi + yi; + t[k] = xi - yi; + } + t[0] = a[mh] - a[n - mh]; + a[mh] += a[n - mh]; + a[0] = a[m]; + dstsub(m, a, nc, w + nw); + if (m > 4) + { + cftfsub(m, a, ip, nw, w); + rftfsub(m, a, nc, w + nw); + } + else if (m == 4) + { + cftfsub(m, a, ip, nw, w); + } + a[n - 1] = a[1] - a[0]; + a[1] = a[0] + a[1]; + for (j = m - 2; j >= 2; j -= 2) + { + a[2 * j + 1] = a[j] - a[j + 1]; + a[2 * j - 1] = -a[j] - a[j + 1]; + } + l = 2; + m = mh; + while (m >= 2) + { + dstsub(m, t, nc, w + nw); + if (m > 4) + { + cftfsub(m, t, ip, nw, w); + rftfsub(m, t, nc, w + nw); + } + else if (m == 4) + { + cftfsub(m, t, ip, nw, w); + } + a[n - l] = t[1] - t[0]; + a[l] = t[0] + t[1]; + k = 0; + for (j = 2; j < m; j += 2) + { + k += l << 2; + a[k - l] = -t[j] - t[j + 1]; + a[k + l] = t[j] - t[j + 1]; + } + l <<= 1; + mh = m >> 1; + for (j = 1; j < mh; j++) + { + k = m - j; + t[j] = t[m + k] + t[m + j]; + t[k] = t[m + k] - t[m + j]; + } + t[0] = t[m + mh]; + m = mh; + } + a[l] = t[0]; + } + a[0] = 0; +} + + +template +void cftfsub(int n, T *a, int *ip, int nw, T *w) +{ + + if (n > 8) + { + if (n > 32) + { + cftf1st(n, a, &w[nw - (n >> 2)]); + if (n > 512) + { + cftrec4(n, a, nw, w); + } + else if (n > 128) + { + cftleaf(n, 1, a, nw, w); + } + else + { + cftfx41(n, a, nw, w); + } + bitrv2(n, ip, a); + } + else if (n == 32) + { + cftf161(a, &w[nw - 8]); + bitrv216(a); + } + else + { + cftf081(a, w); + bitrv208(a); + } + } + else if (n == 8) + { + cftf040(a); + } + else if (n == 4) + { + cftx020(a); + } +} + +template +void cftbsub(int n, T *a, int *ip, int nw, T *w) +{ + if (n > 8) + { + if (n > 32) + { + cftb1st(n, a, &w[nw - (n >> 2)]); + if (n > 512) + { + cftrec4(n, a, nw, w); + } + else if (n > 128) + { + cftleaf(n, 1, a, nw, w); + } + else + { + cftfx41(n, a, nw, w); + } + bitrv2conj(n, ip, a); + } + else if (n == 32) + { + cftf161(a, &w[nw - 8]); + bitrv216neg(a); + } + else + { + cftf081(a, w); + bitrv208neg(a); + } + } + else if (n == 8) + { + cftb040(a); + } + else if (n == 4) + { + cftx020(a); + } +} + +template +void bitrv2(int n, int *ip, T *a) +{ + int j, j1, k, k1, l, m, nh, nm; + T xr, xi, yr, yi; + + m = 1; + for (l = n >> 2; l > 8; l >>= 2) + { + m <<= 1; + } + nh = n >> 1; + nm = 4 * m; + if (l == 8) + { + for (k = 0; k < m; k++) + { + for (j = 0; j < k; j++) + { + j1 = 4 * j + 2 * ip[m + k]; + k1 = 4 * k + 2 * ip[m + j]; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 -= nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nh; + k1 += 2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 += nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += 2; + k1 += nh; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 -= nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nh; + k1 -= 2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 += nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + k1 = 4 * k + 2 * ip[m + k]; + j1 = k1 + 2; + k1 += nh; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 -= nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= 2; + k1 -= nh; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nh + 2; + k1 += nh + 2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nh - nm; + k1 += 2 * nm - 2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + } + else + { + for (k = 0; k < m; k++) + { + for (j = 0; j < k; j++) + { + j1 = 4 * j + ip[m + k]; + k1 = 4 * k + ip[m + j]; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nh; + k1 += 2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += 2; + k1 += nh; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nh; + k1 -= 2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + k1 = 4 * k + ip[m + k]; + j1 = k1 + 2; + k1 += nh; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += nm; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + } +} + +template +void bitrv2conj(int n, int *ip, T *a) +{ + int j, j1, k, k1, l, m, nh, nm; + T xr, xi, yr, yi; + + m = 1; + for (l = n >> 2; l > 8; l >>= 2) + { + m <<= 1; + } + nh = n >> 1; + nm = 4 * m; + if (l == 8) + { + for (k = 0; k < m; k++) + { + for (j = 0; j < k; j++) + { + j1 = 4 * j + 2 * ip[m + k]; + k1 = 4 * k + 2 * ip[m + j]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 -= nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nh; + k1 += 2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 += nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += 2; + k1 += nh; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 -= nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nh; + k1 -= 2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 += nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + k1 = 4 * k + 2 * ip[m + k]; + j1 = k1 + 2; + k1 += nh; + a[j1 - 1] = -a[j1 - 1]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + a[k1 + 3] = -a[k1 + 3]; + j1 += nm; + k1 += 2 * nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 -= nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= 2; + k1 -= nh; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nh + 2; + k1 += nh + 2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nh - nm; + k1 += 2 * nm - 2; + a[j1 - 1] = -a[j1 - 1]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + a[k1 + 3] = -a[k1 + 3]; + } + } + else + { + for (k = 0; k < m; k++) + { + for (j = 0; j < k; j++) + { + j1 = 4 * j + ip[m + k]; + k1 = 4 * k + ip[m + j]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nh; + k1 += 2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += 2; + k1 += nh; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += nm; + k1 += nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nh; + k1 -= 2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 -= nm; + k1 -= nm; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + k1 = 4 * k + ip[m + k]; + j1 = k1 + 2; + k1 += nh; + a[j1 - 1] = -a[j1 - 1]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + a[k1 + 3] = -a[k1 + 3]; + j1 += nm; + k1 += nm; + a[j1 - 1] = -a[j1 - 1]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + a[k1 + 3] = -a[k1 + 3]; + } + } +} + +template +void bitrv216(T *a) +{ + T x1r, x1i, x2r, x2i, x3r, x3i, x4r, x4i, + x5r, x5i, x7r, x7i, x8r, x8i, x10r, x10i, + x11r, x11i, x12r, x12i, x13r, x13i, x14r, x14i; + + x1r = a[2]; + x1i = a[3]; + x2r = a[4]; + x2i = a[5]; + x3r = a[6]; + x3i = a[7]; + x4r = a[8]; + x4i = a[9]; + x5r = a[10]; + x5i = a[11]; + x7r = a[14]; + x7i = a[15]; + x8r = a[16]; + x8i = a[17]; + x10r = a[20]; + x10i = a[21]; + x11r = a[22]; + x11i = a[23]; + x12r = a[24]; + x12i = a[25]; + x13r = a[26]; + x13i = a[27]; + x14r = a[28]; + x14i = a[29]; + a[2] = x8r; + a[3] = x8i; + a[4] = x4r; + a[5] = x4i; + a[6] = x12r; + a[7] = x12i; + a[8] = x2r; + a[9] = x2i; + a[10] = x10r; + a[11] = x10i; + a[14] = x14r; + a[15] = x14i; + a[16] = x1r; + a[17] = x1i; + a[20] = x5r; + a[21] = x5i; + a[22] = x13r; + a[23] = x13i; + a[24] = x3r; + a[25] = x3i; + a[26] = x11r; + a[27] = x11i; + a[28] = x7r; + a[29] = x7i; +} + +template +void bitrv216neg(T *a) +{ + T x1r, x1i, x2r, x2i, x3r, x3i, x4r, x4i, + x5r, x5i, x6r, x6i, x7r, x7i, x8r, x8i, + x9r, x9i, x10r, x10i, x11r, x11i, x12r, x12i, + x13r, x13i, x14r, x14i, x15r, x15i; + + x1r = a[2]; + x1i = a[3]; + x2r = a[4]; + x2i = a[5]; + x3r = a[6]; + x3i = a[7]; + x4r = a[8]; + x4i = a[9]; + x5r = a[10]; + x5i = a[11]; + x6r = a[12]; + x6i = a[13]; + x7r = a[14]; + x7i = a[15]; + x8r = a[16]; + x8i = a[17]; + x9r = a[18]; + x9i = a[19]; + x10r = a[20]; + x10i = a[21]; + x11r = a[22]; + x11i = a[23]; + x12r = a[24]; + x12i = a[25]; + x13r = a[26]; + x13i = a[27]; + x14r = a[28]; + x14i = a[29]; + x15r = a[30]; + x15i = a[31]; + a[2] = x15r; + a[3] = x15i; + a[4] = x7r; + a[5] = x7i; + a[6] = x11r; + a[7] = x11i; + a[8] = x3r; + a[9] = x3i; + a[10] = x13r; + a[11] = x13i; + a[12] = x5r; + a[13] = x5i; + a[14] = x9r; + a[15] = x9i; + a[16] = x1r; + a[17] = x1i; + a[18] = x14r; + a[19] = x14i; + a[20] = x6r; + a[21] = x6i; + a[22] = x10r; + a[23] = x10i; + a[24] = x2r; + a[25] = x2i; + a[26] = x12r; + a[27] = x12i; + a[28] = x4r; + a[29] = x4i; + a[30] = x8r; + a[31] = x8i; +} + +template +void bitrv208(T *a) +{ + T x1r, x1i, x3r, x3i, x4r, x4i, x6r, x6i; + + x1r = a[2]; + x1i = a[3]; + x3r = a[6]; + x3i = a[7]; + x4r = a[8]; + x4i = a[9]; + x6r = a[12]; + x6i = a[13]; + a[2] = x4r; + a[3] = x4i; + a[6] = x6r; + a[7] = x6i; + a[8] = x1r; + a[9] = x1i; + a[12] = x3r; + a[13] = x3i; +} + +template +void bitrv208neg(T *a) +{ + T x1r, x1i, x2r, x2i, x3r, x3i, x4r, x4i, + x5r, x5i, x6r, x6i, x7r, x7i; + + x1r = a[2]; + x1i = a[3]; + x2r = a[4]; + x2i = a[5]; + x3r = a[6]; + x3i = a[7]; + x4r = a[8]; + x4i = a[9]; + x5r = a[10]; + x5i = a[11]; + x6r = a[12]; + x6i = a[13]; + x7r = a[14]; + x7i = a[15]; + a[2] = x7r; + a[3] = x7i; + a[4] = x3r; + a[5] = x3i; + a[6] = x5r; + a[7] = x5i; + a[8] = x1r; + a[9] = x1i; + a[10] = x6r; + a[11] = x6i; + a[12] = x2r; + a[13] = x2i; + a[14] = x4r; + a[15] = x4i; +} + +template +void cftf1st(int n, T *a, T *w) +{ + int j, j0, j1, j2, j3, k, m, mh; + T wn4r, csc1, csc3, wk1r, wk1i, wk3r, wk3i, + wd1r, wd1i, wd3r, wd3i; + T x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i, + y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i; + + mh = n >> 3; + m = 2 * mh; + j1 = m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[0] + a[j2]; + x0i = a[1] + a[j2 + 1]; + x1r = a[0] - a[j2]; + x1i = a[1] - a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[0] = x0r + x2r; + a[1] = x0i + x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + a[j2] = x1r - x3i; + a[j2 + 1] = x1i + x3r; + a[j3] = x1r + x3i; + a[j3 + 1] = x1i - x3r; + wn4r = w[1]; + csc1 = w[2]; + csc3 = w[3]; + wd1r = 1; + wd1i = 0; + wd3r = 1; + wd3i = 0; + k = 0; + for (j = 2; j < mh - 2; j += 4) + { + k += 4; + wk1r = csc1 * (wd1r + w[k]); + wk1i = csc1 * (wd1i + w[k + 1]); + wk3r = csc3 * (wd3r + w[k + 2]); + wk3i = csc3 * (wd3i + w[k + 3]); + wd1r = w[k]; + wd1i = w[k + 1]; + wd3r = w[k + 2]; + wd3i = w[k + 3]; + j1 = j + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j] + a[j2]; + x0i = a[j + 1] + a[j2 + 1]; + x1r = a[j] - a[j2]; + x1i = a[j + 1] - a[j2 + 1]; + y0r = a[j + 2] + a[j2 + 2]; + y0i = a[j + 3] + a[j2 + 3]; + y1r = a[j + 2] - a[j2 + 2]; + y1i = a[j + 3] - a[j2 + 3]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + y2r = a[j1 + 2] + a[j3 + 2]; + y2i = a[j1 + 3] + a[j3 + 3]; + y3r = a[j1 + 2] - a[j3 + 2]; + y3i = a[j1 + 3] - a[j3 + 3]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + a[j + 2] = y0r + y2r; + a[j + 3] = y0i + y2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + a[j1 + 2] = y0r - y2r; + a[j1 + 3] = y0i - y2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2] = wk1r * x0r - wk1i * x0i; + a[j2 + 1] = wk1r * x0i + wk1i * x0r; + x0r = y1r - y3i; + x0i = y1i + y3r; + a[j2 + 2] = wd1r * x0r - wd1i * x0i; + a[j2 + 3] = wd1r * x0i + wd1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = wk3r * x0r + wk3i * x0i; + a[j3 + 1] = wk3r * x0i - wk3i * x0r; + x0r = y1r + y3i; + x0i = y1i - y3r; + a[j3 + 2] = wd3r * x0r + wd3i * x0i; + a[j3 + 3] = wd3r * x0i - wd3i * x0r; + j0 = m - j; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0] + a[j2]; + x0i = a[j0 + 1] + a[j2 + 1]; + x1r = a[j0] - a[j2]; + x1i = a[j0 + 1] - a[j2 + 1]; + y0r = a[j0 - 2] + a[j2 - 2]; + y0i = a[j0 - 1] + a[j2 - 1]; + y1r = a[j0 - 2] - a[j2 - 2]; + y1i = a[j0 - 1] - a[j2 - 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + y2r = a[j1 - 2] + a[j3 - 2]; + y2i = a[j1 - 1] + a[j3 - 1]; + y3r = a[j1 - 2] - a[j3 - 2]; + y3i = a[j1 - 1] - a[j3 - 1]; + a[j0] = x0r + x2r; + a[j0 + 1] = x0i + x2i; + a[j0 - 2] = y0r + y2r; + a[j0 - 1] = y0i + y2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + a[j1 - 2] = y0r - y2r; + a[j1 - 1] = y0i - y2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2] = wk1i * x0r - wk1r * x0i; + a[j2 + 1] = wk1i * x0i + wk1r * x0r; + x0r = y1r - y3i; + x0i = y1i + y3r; + a[j2 - 2] = wd1i * x0r - wd1r * x0i; + a[j2 - 1] = wd1i * x0i + wd1r * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = wk3i * x0r + wk3r * x0i; + a[j3 + 1] = wk3i * x0i - wk3r * x0r; + x0r = y1r + y3i; + x0i = y1i - y3r; + a[j3 - 2] = wd3i * x0r + wd3r * x0i; + a[j3 - 1] = wd3i * x0i - wd3r * x0r; + } + wk1r = csc1 * (wd1r + wn4r); + wk1i = csc1 * (wd1i + wn4r); + wk3r = csc3 * (wd3r - wn4r); + wk3i = csc3 * (wd3i - wn4r); + j0 = mh; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0 - 2] + a[j2 - 2]; + x0i = a[j0 - 1] + a[j2 - 1]; + x1r = a[j0 - 2] - a[j2 - 2]; + x1i = a[j0 - 1] - a[j2 - 1]; + x2r = a[j1 - 2] + a[j3 - 2]; + x2i = a[j1 - 1] + a[j3 - 1]; + x3r = a[j1 - 2] - a[j3 - 2]; + x3i = a[j1 - 1] - a[j3 - 1]; + a[j0 - 2] = x0r + x2r; + a[j0 - 1] = x0i + x2i; + a[j1 - 2] = x0r - x2r; + a[j1 - 1] = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2 - 2] = wk1r * x0r - wk1i * x0i; + a[j2 - 1] = wk1r * x0i + wk1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3 - 2] = wk3r * x0r + wk3i * x0i; + a[j3 - 1] = wk3r * x0i - wk3i * x0r; + x0r = a[j0] + a[j2]; + x0i = a[j0 + 1] + a[j2 + 1]; + x1r = a[j0] - a[j2]; + x1i = a[j0 + 1] - a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[j0] = x0r + x2r; + a[j0 + 1] = x0i + x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2] = wn4r * (x0r - x0i); + a[j2 + 1] = wn4r * (x0i + x0r); + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = -wn4r * (x0r + x0i); + a[j3 + 1] = -wn4r * (x0i - x0r); + x0r = a[j0 + 2] + a[j2 + 2]; + x0i = a[j0 + 3] + a[j2 + 3]; + x1r = a[j0 + 2] - a[j2 + 2]; + x1i = a[j0 + 3] - a[j2 + 3]; + x2r = a[j1 + 2] + a[j3 + 2]; + x2i = a[j1 + 3] + a[j3 + 3]; + x3r = a[j1 + 2] - a[j3 + 2]; + x3i = a[j1 + 3] - a[j3 + 3]; + a[j0 + 2] = x0r + x2r; + a[j0 + 3] = x0i + x2i; + a[j1 + 2] = x0r - x2r; + a[j1 + 3] = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2 + 2] = wk1i * x0r - wk1r * x0i; + a[j2 + 3] = wk1i * x0i + wk1r * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3 + 2] = wk3i * x0r + wk3r * x0i; + a[j3 + 3] = wk3i * x0i - wk3r * x0r; +} + +template +void cftb1st(int n, T *a, T *w) +{ + int j, j0, j1, j2, j3, k, m, mh; + T wn4r, csc1, csc3, wk1r, wk1i, wk3r, wk3i, + wd1r, wd1i, wd3r, wd3i; + T x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i, + y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i; + + mh = n >> 3; + m = 2 * mh; + j1 = m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[0] + a[j2]; + x0i = -a[1] - a[j2 + 1]; + x1r = a[0] - a[j2]; + x1i = -a[1] + a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[0] = x0r + x2r; + a[1] = x0i - x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i + x2i; + a[j2] = x1r + x3i; + a[j2 + 1] = x1i + x3r; + a[j3] = x1r - x3i; + a[j3 + 1] = x1i - x3r; + wn4r = w[1]; + csc1 = w[2]; + csc3 = w[3]; + wd1r = 1; + wd1i = 0; + wd3r = 1; + wd3i = 0; + k = 0; + for (j = 2; j < mh - 2; j += 4) + { + k += 4; + wk1r = csc1 * (wd1r + w[k]); + wk1i = csc1 * (wd1i + w[k + 1]); + wk3r = csc3 * (wd3r + w[k + 2]); + wk3i = csc3 * (wd3i + w[k + 3]); + wd1r = w[k]; + wd1i = w[k + 1]; + wd3r = w[k + 2]; + wd3i = w[k + 3]; + j1 = j + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j] + a[j2]; + x0i = -a[j + 1] - a[j2 + 1]; + x1r = a[j] - a[j2]; + x1i = -a[j + 1] + a[j2 + 1]; + y0r = a[j + 2] + a[j2 + 2]; + y0i = -a[j + 3] - a[j2 + 3]; + y1r = a[j + 2] - a[j2 + 2]; + y1i = -a[j + 3] + a[j2 + 3]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + y2r = a[j1 + 2] + a[j3 + 2]; + y2i = a[j1 + 3] + a[j3 + 3]; + y3r = a[j1 + 2] - a[j3 + 2]; + y3i = a[j1 + 3] - a[j3 + 3]; + a[j] = x0r + x2r; + a[j + 1] = x0i - x2i; + a[j + 2] = y0r + y2r; + a[j + 3] = y0i - y2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i + x2i; + a[j1 + 2] = y0r - y2r; + a[j1 + 3] = y0i + y2i; + x0r = x1r + x3i; + x0i = x1i + x3r; + a[j2] = wk1r * x0r - wk1i * x0i; + a[j2 + 1] = wk1r * x0i + wk1i * x0r; + x0r = y1r + y3i; + x0i = y1i + y3r; + a[j2 + 2] = wd1r * x0r - wd1i * x0i; + a[j2 + 3] = wd1r * x0i + wd1i * x0r; + x0r = x1r - x3i; + x0i = x1i - x3r; + a[j3] = wk3r * x0r + wk3i * x0i; + a[j3 + 1] = wk3r * x0i - wk3i * x0r; + x0r = y1r - y3i; + x0i = y1i - y3r; + a[j3 + 2] = wd3r * x0r + wd3i * x0i; + a[j3 + 3] = wd3r * x0i - wd3i * x0r; + j0 = m - j; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0] + a[j2]; + x0i = -a[j0 + 1] - a[j2 + 1]; + x1r = a[j0] - a[j2]; + x1i = -a[j0 + 1] + a[j2 + 1]; + y0r = a[j0 - 2] + a[j2 - 2]; + y0i = -a[j0 - 1] - a[j2 - 1]; + y1r = a[j0 - 2] - a[j2 - 2]; + y1i = -a[j0 - 1] + a[j2 - 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + y2r = a[j1 - 2] + a[j3 - 2]; + y2i = a[j1 - 1] + a[j3 - 1]; + y3r = a[j1 - 2] - a[j3 - 2]; + y3i = a[j1 - 1] - a[j3 - 1]; + a[j0] = x0r + x2r; + a[j0 + 1] = x0i - x2i; + a[j0 - 2] = y0r + y2r; + a[j0 - 1] = y0i - y2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i + x2i; + a[j1 - 2] = y0r - y2r; + a[j1 - 1] = y0i + y2i; + x0r = x1r + x3i; + x0i = x1i + x3r; + a[j2] = wk1i * x0r - wk1r * x0i; + a[j2 + 1] = wk1i * x0i + wk1r * x0r; + x0r = y1r + y3i; + x0i = y1i + y3r; + a[j2 - 2] = wd1i * x0r - wd1r * x0i; + a[j2 - 1] = wd1i * x0i + wd1r * x0r; + x0r = x1r - x3i; + x0i = x1i - x3r; + a[j3] = wk3i * x0r + wk3r * x0i; + a[j3 + 1] = wk3i * x0i - wk3r * x0r; + x0r = y1r - y3i; + x0i = y1i - y3r; + a[j3 - 2] = wd3i * x0r + wd3r * x0i; + a[j3 - 1] = wd3i * x0i - wd3r * x0r; + } + wk1r = csc1 * (wd1r + wn4r); + wk1i = csc1 * (wd1i + wn4r); + wk3r = csc3 * (wd3r - wn4r); + wk3i = csc3 * (wd3i - wn4r); + j0 = mh; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0 - 2] + a[j2 - 2]; + x0i = -a[j0 - 1] - a[j2 - 1]; + x1r = a[j0 - 2] - a[j2 - 2]; + x1i = -a[j0 - 1] + a[j2 - 1]; + x2r = a[j1 - 2] + a[j3 - 2]; + x2i = a[j1 - 1] + a[j3 - 1]; + x3r = a[j1 - 2] - a[j3 - 2]; + x3i = a[j1 - 1] - a[j3 - 1]; + a[j0 - 2] = x0r + x2r; + a[j0 - 1] = x0i - x2i; + a[j1 - 2] = x0r - x2r; + a[j1 - 1] = x0i + x2i; + x0r = x1r + x3i; + x0i = x1i + x3r; + a[j2 - 2] = wk1r * x0r - wk1i * x0i; + a[j2 - 1] = wk1r * x0i + wk1i * x0r; + x0r = x1r - x3i; + x0i = x1i - x3r; + a[j3 - 2] = wk3r * x0r + wk3i * x0i; + a[j3 - 1] = wk3r * x0i - wk3i * x0r; + x0r = a[j0] + a[j2]; + x0i = -a[j0 + 1] - a[j2 + 1]; + x1r = a[j0] - a[j2]; + x1i = -a[j0 + 1] + a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[j0] = x0r + x2r; + a[j0 + 1] = x0i - x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i + x2i; + x0r = x1r + x3i; + x0i = x1i + x3r; + a[j2] = wn4r * (x0r - x0i); + a[j2 + 1] = wn4r * (x0i + x0r); + x0r = x1r - x3i; + x0i = x1i - x3r; + a[j3] = -wn4r * (x0r + x0i); + a[j3 + 1] = -wn4r * (x0i - x0r); + x0r = a[j0 + 2] + a[j2 + 2]; + x0i = -a[j0 + 3] - a[j2 + 3]; + x1r = a[j0 + 2] - a[j2 + 2]; + x1i = -a[j0 + 3] + a[j2 + 3]; + x2r = a[j1 + 2] + a[j3 + 2]; + x2i = a[j1 + 3] + a[j3 + 3]; + x3r = a[j1 + 2] - a[j3 + 2]; + x3i = a[j1 + 3] - a[j3 + 3]; + a[j0 + 2] = x0r + x2r; + a[j0 + 3] = x0i - x2i; + a[j1 + 2] = x0r - x2r; + a[j1 + 3] = x0i + x2i; + x0r = x1r + x3i; + x0i = x1i + x3r; + a[j2 + 2] = wk1i * x0r - wk1r * x0i; + a[j2 + 3] = wk1i * x0i + wk1r * x0r; + x0r = x1r - x3i; + x0i = x1i - x3r; + a[j3 + 2] = wk3i * x0r + wk3r * x0i; + a[j3 + 3] = wk3i * x0i - wk3r * x0r; +} + +template +void cftrec4(int n, T *a, int nw, T *w) +{ + int isplt, j, k, m; + + m = n; + while (m > 512) + { + m >>= 2; + cftmdl1(m, &a[n - m], &w[nw - (m >> 1)]); + } + cftleaf(m, 1, &a[n - m], nw, w); + k = 0; + for (j = n - m; j > 0; j -= m) + { + k++; + isplt = cfttree(m, j, k, a, nw, w); + cftleaf(m, isplt, &a[j - m], nw, w); + } +} + +template +int cfttree(int n, int j, int k, T *a, int nw, T *w) +{ + int i, isplt, m; + + if ((k & 3) != 0) + { + isplt = k & 1; + if (isplt != 0) + { + cftmdl1(n, &a[j - n], &w[nw - (n >> 1)]); + } + else + { + cftmdl2(n, &a[j - n], &w[nw - n]); + } + } + else + { + m = n; + for (i = k; (i & 3) == 0; i >>= 2) + { + m <<= 2; + } + isplt = i & 1; + if (isplt != 0) + { + while (m > 128) + { + cftmdl1(m, &a[j - m], &w[nw - (m >> 1)]); + m >>= 2; + } + } + else + { + while (m > 128) + { + cftmdl2(m, &a[j - m], &w[nw - m]); + m >>= 2; + } + } + } + return isplt; +} + +template +void cftleaf(int n, int isplt, T *a, int nw, T *w) +{ + if (n == 512) + { + cftmdl1(128, a, &w[nw - 64]); + cftf161(a, &w[nw - 8]); + cftf162(&a[32], &w[nw - 32]); + cftf161(&a[64], &w[nw - 8]); + cftf161(&a[96], &w[nw - 8]); + cftmdl2(128, &a[128], &w[nw - 128]); + cftf161(&a[128], &w[nw - 8]); + cftf162(&a[160], &w[nw - 32]); + cftf161(&a[192], &w[nw - 8]); + cftf162(&a[224], &w[nw - 32]); + cftmdl1(128, &a[256], &w[nw - 64]); + cftf161(&a[256], &w[nw - 8]); + cftf162(&a[288], &w[nw - 32]); + cftf161(&a[320], &w[nw - 8]); + cftf161(&a[352], &w[nw - 8]); + if (isplt != 0) + { + cftmdl1(128, &a[384], &w[nw - 64]); + cftf161(&a[480], &w[nw - 8]); + } + else + { + cftmdl2(128, &a[384], &w[nw - 128]); + cftf162(&a[480], &w[nw - 32]); + } + cftf161(&a[384], &w[nw - 8]); + cftf162(&a[416], &w[nw - 32]); + cftf161(&a[448], &w[nw - 8]); + } + else + { + cftmdl1(64, a, &w[nw - 32]); + cftf081(a, &w[nw - 8]); + cftf082(&a[16], &w[nw - 8]); + cftf081(&a[32], &w[nw - 8]); + cftf081(&a[48], &w[nw - 8]); + cftmdl2(64, &a[64], &w[nw - 64]); + cftf081(&a[64], &w[nw - 8]); + cftf082(&a[80], &w[nw - 8]); + cftf081(&a[96], &w[nw - 8]); + cftf082(&a[112], &w[nw - 8]); + cftmdl1(64, &a[128], &w[nw - 32]); + cftf081(&a[128], &w[nw - 8]); + cftf082(&a[144], &w[nw - 8]); + cftf081(&a[160], &w[nw - 8]); + cftf081(&a[176], &w[nw - 8]); + if (isplt != 0) + { + cftmdl1(64, &a[192], &w[nw - 32]); + cftf081(&a[240], &w[nw - 8]); + } + else + { + cftmdl2(64, &a[192], &w[nw - 64]); + cftf082(&a[240], &w[nw - 8]); + } + cftf081(&a[192], &w[nw - 8]); + cftf082(&a[208], &w[nw - 8]); + cftf081(&a[224], &w[nw - 8]); + } +} + +template +void cftmdl1(int n, T *a, T *w) +{ + int j, j0, j1, j2, j3, k, m, mh; + T wn4r, wk1r, wk1i, wk3r, wk3i; + T x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; + + mh = n >> 3; + m = 2 * mh; + j1 = m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[0] + a[j2]; + x0i = a[1] + a[j2 + 1]; + x1r = a[0] - a[j2]; + x1i = a[1] - a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[0] = x0r + x2r; + a[1] = x0i + x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + a[j2] = x1r - x3i; + a[j2 + 1] = x1i + x3r; + a[j3] = x1r + x3i; + a[j3 + 1] = x1i - x3r; + wn4r = w[1]; + k = 0; + for (j = 2; j < mh; j += 2) + { + k += 4; + wk1r = w[k]; + wk1i = w[k + 1]; + wk3r = w[k + 2]; + wk3i = w[k + 3]; + j1 = j + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j] + a[j2]; + x0i = a[j + 1] + a[j2 + 1]; + x1r = a[j] - a[j2]; + x1i = a[j + 1] - a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2] = wk1r * x0r - wk1i * x0i; + a[j2 + 1] = wk1r * x0i + wk1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = wk3r * x0r + wk3i * x0i; + a[j3 + 1] = wk3r * x0i - wk3i * x0r; + j0 = m - j; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0] + a[j2]; + x0i = a[j0 + 1] + a[j2 + 1]; + x1r = a[j0] - a[j2]; + x1i = a[j0 + 1] - a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[j0] = x0r + x2r; + a[j0 + 1] = x0i + x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2] = wk1i * x0r - wk1r * x0i; + a[j2 + 1] = wk1i * x0i + wk1r * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = wk3i * x0r + wk3r * x0i; + a[j3 + 1] = wk3i * x0i - wk3r * x0r; + } + j0 = mh; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0] + a[j2]; + x0i = a[j0 + 1] + a[j2 + 1]; + x1r = a[j0] - a[j2]; + x1i = a[j0 + 1] - a[j2 + 1]; + x2r = a[j1] + a[j3]; + x2i = a[j1 + 1] + a[j3 + 1]; + x3r = a[j1] - a[j3]; + x3i = a[j1 + 1] - a[j3 + 1]; + a[j0] = x0r + x2r; + a[j0 + 1] = x0i + x2i; + a[j1] = x0r - x2r; + a[j1 + 1] = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j2] = wn4r * (x0r - x0i); + a[j2 + 1] = wn4r * (x0i + x0r); + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = -wn4r * (x0r + x0i); + a[j3 + 1] = -wn4r * (x0i - x0r); +} + +template +void cftmdl2(int n, T *a, T *w) +{ + int j, j0, j1, j2, j3, k, kr, m, mh; + T wn4r, wk1r, wk1i, wk3r, wk3i, wd1r, wd1i, wd3r, wd3i; + T x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i, y0r, y0i, y2r, y2i; + + mh = n >> 3; + m = 2 * mh; + wn4r = w[1]; + j1 = m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[0] - a[j2 + 1]; + x0i = a[1] + a[j2]; + x1r = a[0] + a[j2 + 1]; + x1i = a[1] - a[j2]; + x2r = a[j1] - a[j3 + 1]; + x2i = a[j1 + 1] + a[j3]; + x3r = a[j1] + a[j3 + 1]; + x3i = a[j1 + 1] - a[j3]; + y0r = wn4r * (x2r - x2i); + y0i = wn4r * (x2i + x2r); + a[0] = x0r + y0r; + a[1] = x0i + y0i; + a[j1] = x0r - y0r; + a[j1 + 1] = x0i - y0i; + y0r = wn4r * (x3r - x3i); + y0i = wn4r * (x3i + x3r); + a[j2] = x1r - y0i; + a[j2 + 1] = x1i + y0r; + a[j3] = x1r + y0i; + a[j3 + 1] = x1i - y0r; + k = 0; + kr = 2 * m; + for (j = 2; j < mh; j += 2) + { + k += 4; + wk1r = w[k]; + wk1i = w[k + 1]; + wk3r = w[k + 2]; + wk3i = w[k + 3]; + kr -= 4; + wd1i = w[kr]; + wd1r = w[kr + 1]; + wd3i = w[kr + 2]; + wd3r = w[kr + 3]; + j1 = j + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j] - a[j2 + 1]; + x0i = a[j + 1] + a[j2]; + x1r = a[j] + a[j2 + 1]; + x1i = a[j + 1] - a[j2]; + x2r = a[j1] - a[j3 + 1]; + x2i = a[j1 + 1] + a[j3]; + x3r = a[j1] + a[j3 + 1]; + x3i = a[j1 + 1] - a[j3]; + y0r = wk1r * x0r - wk1i * x0i; + y0i = wk1r * x0i + wk1i * x0r; + y2r = wd1r * x2r - wd1i * x2i; + y2i = wd1r * x2i + wd1i * x2r; + a[j] = y0r + y2r; + a[j + 1] = y0i + y2i; + a[j1] = y0r - y2r; + a[j1 + 1] = y0i - y2i; + y0r = wk3r * x1r + wk3i * x1i; + y0i = wk3r * x1i - wk3i * x1r; + y2r = wd3r * x3r + wd3i * x3i; + y2i = wd3r * x3i - wd3i * x3r; + a[j2] = y0r + y2r; + a[j2 + 1] = y0i + y2i; + a[j3] = y0r - y2r; + a[j3 + 1] = y0i - y2i; + j0 = m - j; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0] - a[j2 + 1]; + x0i = a[j0 + 1] + a[j2]; + x1r = a[j0] + a[j2 + 1]; + x1i = a[j0 + 1] - a[j2]; + x2r = a[j1] - a[j3 + 1]; + x2i = a[j1 + 1] + a[j3]; + x3r = a[j1] + a[j3 + 1]; + x3i = a[j1 + 1] - a[j3]; + y0r = wd1i * x0r - wd1r * x0i; + y0i = wd1i * x0i + wd1r * x0r; + y2r = wk1i * x2r - wk1r * x2i; + y2i = wk1i * x2i + wk1r * x2r; + a[j0] = y0r + y2r; + a[j0 + 1] = y0i + y2i; + a[j1] = y0r - y2r; + a[j1 + 1] = y0i - y2i; + y0r = wd3i * x1r + wd3r * x1i; + y0i = wd3i * x1i - wd3r * x1r; + y2r = wk3i * x3r + wk3r * x3i; + y2i = wk3i * x3i - wk3r * x3r; + a[j2] = y0r + y2r; + a[j2 + 1] = y0i + y2i; + a[j3] = y0r - y2r; + a[j3 + 1] = y0i - y2i; + } + wk1r = w[m]; + wk1i = w[m + 1]; + j0 = mh; + j1 = j0 + m; + j2 = j1 + m; + j3 = j2 + m; + x0r = a[j0] - a[j2 + 1]; + x0i = a[j0 + 1] + a[j2]; + x1r = a[j0] + a[j2 + 1]; + x1i = a[j0 + 1] - a[j2]; + x2r = a[j1] - a[j3 + 1]; + x2i = a[j1 + 1] + a[j3]; + x3r = a[j1] + a[j3 + 1]; + x3i = a[j1 + 1] - a[j3]; + y0r = wk1r * x0r - wk1i * x0i; + y0i = wk1r * x0i + wk1i * x0r; + y2r = wk1i * x2r - wk1r * x2i; + y2i = wk1i * x2i + wk1r * x2r; + a[j0] = y0r + y2r; + a[j0 + 1] = y0i + y2i; + a[j1] = y0r - y2r; + a[j1 + 1] = y0i - y2i; + y0r = wk1i * x1r - wk1r * x1i; + y0i = wk1i * x1i + wk1r * x1r; + y2r = wk1r * x3r - wk1i * x3i; + y2i = wk1r * x3i + wk1i * x3r; + a[j2] = y0r - y2r; + a[j2 + 1] = y0i - y2i; + a[j3] = y0r + y2r; + a[j3 + 1] = y0i + y2i; +} + +template +void cftfx41(int n, T *a, int nw, T *w) +{ + if (n == 128) + { + cftf161(a, &w[nw - 8]); + cftf162(&a[32], &w[nw - 32]); + cftf161(&a[64], &w[nw - 8]); + cftf161(&a[96], &w[nw - 8]); + } + else + { + cftf081(a, &w[nw - 8]); + cftf082(&a[16], &w[nw - 8]); + cftf081(&a[32], &w[nw - 8]); + cftf081(&a[48], &w[nw - 8]); + } +} + +template +void cftf161(T *a, T *w) +{ + T wn4r, wk1r, wk1i, + x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i, + y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i, + y4r, y4i, y5r, y5i, y6r, y6i, y7r, y7i, + y8r, y8i, y9r, y9i, y10r, y10i, y11r, y11i, + y12r, y12i, y13r, y13i, y14r, y14i, y15r, y15i; + + wn4r = w[1]; + wk1r = w[2]; + wk1i = w[3]; + x0r = a[0] + a[16]; + x0i = a[1] + a[17]; + x1r = a[0] - a[16]; + x1i = a[1] - a[17]; + x2r = a[8] + a[24]; + x2i = a[9] + a[25]; + x3r = a[8] - a[24]; + x3i = a[9] - a[25]; + y0r = x0r + x2r; + y0i = x0i + x2i; + y4r = x0r - x2r; + y4i = x0i - x2i; + y8r = x1r - x3i; + y8i = x1i + x3r; + y12r = x1r + x3i; + y12i = x1i - x3r; + x0r = a[2] + a[18]; + x0i = a[3] + a[19]; + x1r = a[2] - a[18]; + x1i = a[3] - a[19]; + x2r = a[10] + a[26]; + x2i = a[11] + a[27]; + x3r = a[10] - a[26]; + x3i = a[11] - a[27]; + y1r = x0r + x2r; + y1i = x0i + x2i; + y5r = x0r - x2r; + y5i = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + y9r = wk1r * x0r - wk1i * x0i; + y9i = wk1r * x0i + wk1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + y13r = wk1i * x0r - wk1r * x0i; + y13i = wk1i * x0i + wk1r * x0r; + x0r = a[4] + a[20]; + x0i = a[5] + a[21]; + x1r = a[4] - a[20]; + x1i = a[5] - a[21]; + x2r = a[12] + a[28]; + x2i = a[13] + a[29]; + x3r = a[12] - a[28]; + x3i = a[13] - a[29]; + y2r = x0r + x2r; + y2i = x0i + x2i; + y6r = x0r - x2r; + y6i = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + y10r = wn4r * (x0r - x0i); + y10i = wn4r * (x0i + x0r); + x0r = x1r + x3i; + x0i = x1i - x3r; + y14r = wn4r * (x0r + x0i); + y14i = wn4r * (x0i - x0r); + x0r = a[6] + a[22]; + x0i = a[7] + a[23]; + x1r = a[6] - a[22]; + x1i = a[7] - a[23]; + x2r = a[14] + a[30]; + x2i = a[15] + a[31]; + x3r = a[14] - a[30]; + x3i = a[15] - a[31]; + y3r = x0r + x2r; + y3i = x0i + x2i; + y7r = x0r - x2r; + y7i = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + y11r = wk1i * x0r - wk1r * x0i; + y11i = wk1i * x0i + wk1r * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + y15r = wk1r * x0r - wk1i * x0i; + y15i = wk1r * x0i + wk1i * x0r; + x0r = y12r - y14r; + x0i = y12i - y14i; + x1r = y12r + y14r; + x1i = y12i + y14i; + x2r = y13r - y15r; + x2i = y13i - y15i; + x3r = y13r + y15r; + x3i = y13i + y15i; + a[24] = x0r + x2r; + a[25] = x0i + x2i; + a[26] = x0r - x2r; + a[27] = x0i - x2i; + a[28] = x1r - x3i; + a[29] = x1i + x3r; + a[30] = x1r + x3i; + a[31] = x1i - x3r; + x0r = y8r + y10r; + x0i = y8i + y10i; + x1r = y8r - y10r; + x1i = y8i - y10i; + x2r = y9r + y11r; + x2i = y9i + y11i; + x3r = y9r - y11r; + x3i = y9i - y11i; + a[16] = x0r + x2r; + a[17] = x0i + x2i; + a[18] = x0r - x2r; + a[19] = x0i - x2i; + a[20] = x1r - x3i; + a[21] = x1i + x3r; + a[22] = x1r + x3i; + a[23] = x1i - x3r; + x0r = y5r - y7i; + x0i = y5i + y7r; + x2r = wn4r * (x0r - x0i); + x2i = wn4r * (x0i + x0r); + x0r = y5r + y7i; + x0i = y5i - y7r; + x3r = wn4r * (x0r - x0i); + x3i = wn4r * (x0i + x0r); + x0r = y4r - y6i; + x0i = y4i + y6r; + x1r = y4r + y6i; + x1i = y4i - y6r; + a[8] = x0r + x2r; + a[9] = x0i + x2i; + a[10] = x0r - x2r; + a[11] = x0i - x2i; + a[12] = x1r - x3i; + a[13] = x1i + x3r; + a[14] = x1r + x3i; + a[15] = x1i - x3r; + x0r = y0r + y2r; + x0i = y0i + y2i; + x1r = y0r - y2r; + x1i = y0i - y2i; + x2r = y1r + y3r; + x2i = y1i + y3i; + x3r = y1r - y3r; + x3i = y1i - y3i; + a[0] = x0r + x2r; + a[1] = x0i + x2i; + a[2] = x0r - x2r; + a[3] = x0i - x2i; + a[4] = x1r - x3i; + a[5] = x1i + x3r; + a[6] = x1r + x3i; + a[7] = x1i - x3r; +} + +template +void cftf162(T *a, T *w) +{ + T wn4r, wk1r, wk1i, wk2r, wk2i, wk3r, wk3i, + x0r, x0i, x1r, x1i, x2r, x2i, + y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i, + y4r, y4i, y5r, y5i, y6r, y6i, y7r, y7i, + y8r, y8i, y9r, y9i, y10r, y10i, y11r, y11i, + y12r, y12i, y13r, y13i, y14r, y14i, y15r, y15i; + + wn4r = w[1]; + wk1r = w[4]; + wk1i = w[5]; + wk3r = w[6]; + wk3i = -w[7]; + wk2r = w[8]; + wk2i = w[9]; + x1r = a[0] - a[17]; + x1i = a[1] + a[16]; + x0r = a[8] - a[25]; + x0i = a[9] + a[24]; + x2r = wn4r * (x0r - x0i); + x2i = wn4r * (x0i + x0r); + y0r = x1r + x2r; + y0i = x1i + x2i; + y4r = x1r - x2r; + y4i = x1i - x2i; + x1r = a[0] + a[17]; + x1i = a[1] - a[16]; + x0r = a[8] + a[25]; + x0i = a[9] - a[24]; + x2r = wn4r * (x0r - x0i); + x2i = wn4r * (x0i + x0r); + y8r = x1r - x2i; + y8i = x1i + x2r; + y12r = x1r + x2i; + y12i = x1i - x2r; + x0r = a[2] - a[19]; + x0i = a[3] + a[18]; + x1r = wk1r * x0r - wk1i * x0i; + x1i = wk1r * x0i + wk1i * x0r; + x0r = a[10] - a[27]; + x0i = a[11] + a[26]; + x2r = wk3i * x0r - wk3r * x0i; + x2i = wk3i * x0i + wk3r * x0r; + y1r = x1r + x2r; + y1i = x1i + x2i; + y5r = x1r - x2r; + y5i = x1i - x2i; + x0r = a[2] + a[19]; + x0i = a[3] - a[18]; + x1r = wk3r * x0r - wk3i * x0i; + x1i = wk3r * x0i + wk3i * x0r; + x0r = a[10] + a[27]; + x0i = a[11] - a[26]; + x2r = wk1r * x0r + wk1i * x0i; + x2i = wk1r * x0i - wk1i * x0r; + y9r = x1r - x2r; + y9i = x1i - x2i; + y13r = x1r + x2r; + y13i = x1i + x2i; + x0r = a[4] - a[21]; + x0i = a[5] + a[20]; + x1r = wk2r * x0r - wk2i * x0i; + x1i = wk2r * x0i + wk2i * x0r; + x0r = a[12] - a[29]; + x0i = a[13] + a[28]; + x2r = wk2i * x0r - wk2r * x0i; + x2i = wk2i * x0i + wk2r * x0r; + y2r = x1r + x2r; + y2i = x1i + x2i; + y6r = x1r - x2r; + y6i = x1i - x2i; + x0r = a[4] + a[21]; + x0i = a[5] - a[20]; + x1r = wk2i * x0r - wk2r * x0i; + x1i = wk2i * x0i + wk2r * x0r; + x0r = a[12] + a[29]; + x0i = a[13] - a[28]; + x2r = wk2r * x0r - wk2i * x0i; + x2i = wk2r * x0i + wk2i * x0r; + y10r = x1r - x2r; + y10i = x1i - x2i; + y14r = x1r + x2r; + y14i = x1i + x2i; + x0r = a[6] - a[23]; + x0i = a[7] + a[22]; + x1r = wk3r * x0r - wk3i * x0i; + x1i = wk3r * x0i + wk3i * x0r; + x0r = a[14] - a[31]; + x0i = a[15] + a[30]; + x2r = wk1i * x0r - wk1r * x0i; + x2i = wk1i * x0i + wk1r * x0r; + y3r = x1r + x2r; + y3i = x1i + x2i; + y7r = x1r - x2r; + y7i = x1i - x2i; + x0r = a[6] + a[23]; + x0i = a[7] - a[22]; + x1r = wk1i * x0r + wk1r * x0i; + x1i = wk1i * x0i - wk1r * x0r; + x0r = a[14] + a[31]; + x0i = a[15] - a[30]; + x2r = wk3i * x0r - wk3r * x0i; + x2i = wk3i * x0i + wk3r * x0r; + y11r = x1r + x2r; + y11i = x1i + x2i; + y15r = x1r - x2r; + y15i = x1i - x2i; + x1r = y0r + y2r; + x1i = y0i + y2i; + x2r = y1r + y3r; + x2i = y1i + y3i; + a[0] = x1r + x2r; + a[1] = x1i + x2i; + a[2] = x1r - x2r; + a[3] = x1i - x2i; + x1r = y0r - y2r; + x1i = y0i - y2i; + x2r = y1r - y3r; + x2i = y1i - y3i; + a[4] = x1r - x2i; + a[5] = x1i + x2r; + a[6] = x1r + x2i; + a[7] = x1i - x2r; + x1r = y4r - y6i; + x1i = y4i + y6r; + x0r = y5r - y7i; + x0i = y5i + y7r; + x2r = wn4r * (x0r - x0i); + x2i = wn4r * (x0i + x0r); + a[8] = x1r + x2r; + a[9] = x1i + x2i; + a[10] = x1r - x2r; + a[11] = x1i - x2i; + x1r = y4r + y6i; + x1i = y4i - y6r; + x0r = y5r + y7i; + x0i = y5i - y7r; + x2r = wn4r * (x0r - x0i); + x2i = wn4r * (x0i + x0r); + a[12] = x1r - x2i; + a[13] = x1i + x2r; + a[14] = x1r + x2i; + a[15] = x1i - x2r; + x1r = y8r + y10r; + x1i = y8i + y10i; + x2r = y9r - y11r; + x2i = y9i - y11i; + a[16] = x1r + x2r; + a[17] = x1i + x2i; + a[18] = x1r - x2r; + a[19] = x1i - x2i; + x1r = y8r - y10r; + x1i = y8i - y10i; + x2r = y9r + y11r; + x2i = y9i + y11i; + a[20] = x1r - x2i; + a[21] = x1i + x2r; + a[22] = x1r + x2i; + a[23] = x1i - x2r; + x1r = y12r - y14i; + x1i = y12i + y14r; + x0r = y13r + y15i; + x0i = y13i - y15r; + x2r = wn4r * (x0r - x0i); + x2i = wn4r * (x0i + x0r); + a[24] = x1r + x2r; + a[25] = x1i + x2i; + a[26] = x1r - x2r; + a[27] = x1i - x2i; + x1r = y12r + y14i; + x1i = y12i - y14r; + x0r = y13r - y15i; + x0i = y13i + y15r; + x2r = wn4r * (x0r - x0i); + x2i = wn4r * (x0i + x0r); + a[28] = x1r - x2i; + a[29] = x1i + x2r; + a[30] = x1r + x2i; + a[31] = x1i - x2r; +} + +template +void cftf081(T *a, T *w) +{ + T wn4r, x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i, + y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i, + y4r, y4i, y5r, y5i, y6r, y6i, y7r, y7i; + + wn4r = w[1]; + x0r = a[0] + a[8]; + x0i = a[1] + a[9]; + x1r = a[0] - a[8]; + x1i = a[1] - a[9]; + x2r = a[4] + a[12]; + x2i = a[5] + a[13]; + x3r = a[4] - a[12]; + x3i = a[5] - a[13]; + y0r = x0r + x2r; + y0i = x0i + x2i; + y2r = x0r - x2r; + y2i = x0i - x2i; + y1r = x1r - x3i; + y1i = x1i + x3r; + y3r = x1r + x3i; + y3i = x1i - x3r; + x0r = a[2] + a[10]; + x0i = a[3] + a[11]; + x1r = a[2] - a[10]; + x1i = a[3] - a[11]; + x2r = a[6] + a[14]; + x2i = a[7] + a[15]; + x3r = a[6] - a[14]; + x3i = a[7] - a[15]; + y4r = x0r + x2r; + y4i = x0i + x2i; + y6r = x0r - x2r; + y6i = x0i - x2i; + x0r = x1r - x3i; + x0i = x1i + x3r; + x2r = x1r + x3i; + x2i = x1i - x3r; + y5r = wn4r * (x0r - x0i); + y5i = wn4r * (x0r + x0i); + y7r = wn4r * (x2r - x2i); + y7i = wn4r * (x2r + x2i); + a[8] = y1r + y5r; + a[9] = y1i + y5i; + a[10] = y1r - y5r; + a[11] = y1i - y5i; + a[12] = y3r - y7i; + a[13] = y3i + y7r; + a[14] = y3r + y7i; + a[15] = y3i - y7r; + a[0] = y0r + y4r; + a[1] = y0i + y4i; + a[2] = y0r - y4r; + a[3] = y0i - y4i; + a[4] = y2r - y6i; + a[5] = y2i + y6r; + a[6] = y2r + y6i; + a[7] = y2i - y6r; +} + +template +void cftf082(T *a, T *w) +{ + T wn4r, wk1r, wk1i, x0r, x0i, x1r, x1i, + y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i, + y4r, y4i, y5r, y5i, y6r, y6i, y7r, y7i; + + wn4r = w[1]; + wk1r = w[2]; + wk1i = w[3]; + y0r = a[0] - a[9]; + y0i = a[1] + a[8]; + y1r = a[0] + a[9]; + y1i = a[1] - a[8]; + x0r = a[4] - a[13]; + x0i = a[5] + a[12]; + y2r = wn4r * (x0r - x0i); + y2i = wn4r * (x0i + x0r); + x0r = a[4] + a[13]; + x0i = a[5] - a[12]; + y3r = wn4r * (x0r - x0i); + y3i = wn4r * (x0i + x0r); + x0r = a[2] - a[11]; + x0i = a[3] + a[10]; + y4r = wk1r * x0r - wk1i * x0i; + y4i = wk1r * x0i + wk1i * x0r; + x0r = a[2] + a[11]; + x0i = a[3] - a[10]; + y5r = wk1i * x0r - wk1r * x0i; + y5i = wk1i * x0i + wk1r * x0r; + x0r = a[6] - a[15]; + x0i = a[7] + a[14]; + y6r = wk1i * x0r - wk1r * x0i; + y6i = wk1i * x0i + wk1r * x0r; + x0r = a[6] + a[15]; + x0i = a[7] - a[14]; + y7r = wk1r * x0r - wk1i * x0i; + y7i = wk1r * x0i + wk1i * x0r; + x0r = y0r + y2r; + x0i = y0i + y2i; + x1r = y4r + y6r; + x1i = y4i + y6i; + a[0] = x0r + x1r; + a[1] = x0i + x1i; + a[2] = x0r - x1r; + a[3] = x0i - x1i; + x0r = y0r - y2r; + x0i = y0i - y2i; + x1r = y4r - y6r; + x1i = y4i - y6i; + a[4] = x0r - x1i; + a[5] = x0i + x1r; + a[6] = x0r + x1i; + a[7] = x0i - x1r; + x0r = y1r - y3i; + x0i = y1i + y3r; + x1r = y5r - y7r; + x1i = y5i - y7i; + a[8] = x0r + x1r; + a[9] = x0i + x1i; + a[10] = x0r - x1r; + a[11] = x0i - x1i; + x0r = y1r + y3i; + x0i = y1i - y3r; + x1r = y5r + y7r; + x1i = y5i + y7i; + a[12] = x0r - x1i; + a[13] = x0i + x1r; + a[14] = x0r + x1i; + a[15] = x0i - x1r; +} + +template +void cftf040(T *a) +{ + T x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; + + x0r = a[0] + a[4]; + x0i = a[1] + a[5]; + x1r = a[0] - a[4]; + x1i = a[1] - a[5]; + x2r = a[2] + a[6]; + x2i = a[3] + a[7]; + x3r = a[2] - a[6]; + x3i = a[3] - a[7]; + a[0] = x0r + x2r; + a[1] = x0i + x2i; + a[2] = x1r - x3i; + a[3] = x1i + x3r; + a[4] = x0r - x2r; + a[5] = x0i - x2i; + a[6] = x1r + x3i; + a[7] = x1i - x3r; +} + +template +void cftb040(T *a) +{ + T x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; + + x0r = a[0] + a[4]; + x0i = a[1] + a[5]; + x1r = a[0] - a[4]; + x1i = a[1] - a[5]; + x2r = a[2] + a[6]; + x2i = a[3] + a[7]; + x3r = a[2] - a[6]; + x3i = a[3] - a[7]; + a[0] = x0r + x2r; + a[1] = x0i + x2i; + a[2] = x1r + x3i; + a[3] = x1i - x3r; + a[4] = x0r - x2r; + a[5] = x0i - x2i; + a[6] = x1r - x3i; + a[7] = x1i + x3r; +} + +template +void cftx020(T *a) +{ + T x0r, x0i; + + x0r = a[0] - a[2]; + x0i = a[1] - a[3]; + a[0] += a[2]; + a[1] += a[3]; + a[2] = x0r; + a[3] = x0i; +} + +template +void rftfsub(int n, T *a, int nc, T *c) +{ + int j, k, kk, ks, m; + T wkr, wki, xr, xi, yr, yi; + + m = n >> 1; + ks = 2 * nc / m; + kk = 0; + for (j = 2; j < m; j += 2) + { + k = n - j; + kk += ks; + wkr = (T)0.5 - c[nc - kk]; + wki = c[kk]; + xr = a[j] - a[k]; + xi = a[j + 1] + a[k + 1]; + yr = wkr * xr - wki * xi; + yi = wkr * xi + wki * xr; + a[j] -= yr; + a[j + 1] -= yi; + a[k] += yr; + a[k + 1] -= yi; + } +} + +template +void rftbsub(int n, T *a, int nc, T *c) +{ + int j, k, kk, ks, m; + T wkr, wki, xr, xi, yr, yi; + + m = n >> 1; + ks = 2 * nc / m; + kk = 0; + for (j = 2; j < m; j += 2) + { + k = n - j; + kk += ks; + wkr = (T)0.5 - c[nc - kk]; + wki = c[kk]; + xr = a[j] - a[k]; + xi = a[j + 1] + a[k + 1]; + yr = wkr * xr + wki * xi; + yi = wkr * xi - wki * xr; + a[j] -= yr; + a[j + 1] -= yi; + a[k] += yr; + a[k + 1] -= yi; + } +} + +template +void dctsub(int n, T *a, int nc, T *c) +{ + int j, k, kk, ks, m; + T wkr, wki, xr; + + m = n >> 1; + ks = nc / n; + kk = 0; + for (j = 1; j < m; j++) + { + k = n - j; + kk += ks; + wkr = c[kk] - c[nc - kk]; + wki = c[kk] + c[nc - kk]; + xr = wki * a[j] - wkr * a[k]; + a[j] = wkr * a[j] + wki * a[k]; + a[k] = xr; + } + a[m] *= c[0]; +} + +template +void dstsub(int n, T *a, int nc, T *c) +{ + int j, k, kk, ks, m; + T wkr, wki, xr; + + m = n >> 1; + ks = nc / n; + kk = 0; + for (j = 1; j < m; j++) + { + k = n - j; + kk += ks; + wkr = c[kk] - c[nc - kk]; + wki = c[kk] + c[nc - kk]; + xr = wki * a[k] - wkr * a[j]; + a[k] = wkr * a[k] + wki * a[j]; + a[j] = xr; + } + a[m] *= c[0]; +} + +// template definitions + +template void cdft(int n, int isgn, float *a, int *ip, float *w); +template void rdft(int n, int isgn, float *a, int *ip, float *w); +template void ddct(int n, int isgn, float *a, int *ip, float *w); +template void ddst(int n, int isgn, float *a, int *ip, float *w); +template void dfct(int n, float *a, float *t, int *ip, float *w); +template void dfst(int n, float *a, float *t, int *ip, float *w); + +template void cdft(int n, int isgn, double *a, int *ip, double *w); +template void rdft(int n, int isgn, double *a, int *ip, double *w); +template void ddct(int n, int isgn, double *a, int *ip, double *w); +template void ddst(int n, int isgn, double *a, int *ip, double *w); +template void dfct(int n, double *a, double *t, int *ip, double *w); +template void dfst(int n, double *a, double *t, int *ip, double *w); + +} // namespace ooura diff --git a/sources/LabSound/third_party/readerwriterqueue/LICENSE.md b/sources/LabSound/third_party/readerwriterqueue/LICENSE.md new file mode 100644 index 00000000..76d802ec --- /dev/null +++ b/sources/LabSound/third_party/readerwriterqueue/LICENSE.md @@ -0,0 +1,28 @@ +This license applies to all the code in this repository except that written by third +parties, namely the files in benchmarks/ext, which have their own licenses, and Jeff +Preshing's semaphore implementation (used in the blocking queue) which has a zlib +license (embedded in atomicops.h). + +Simplified BSD License: + +Copyright (c) 2013-2015, Cameron Desrochers +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this list of +conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, this list of +conditions and the following disclaimer in the documentation and/or other materials +provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/sources/LabSound/third_party/readerwriterqueue/atomicops.h b/sources/LabSound/third_party/readerwriterqueue/atomicops.h new file mode 100644 index 00000000..e980faa4 --- /dev/null +++ b/sources/LabSound/third_party/readerwriterqueue/atomicops.h @@ -0,0 +1,665 @@ +// ©2013-2016 Cameron Desrochers. +// Distributed under the simplified BSD license (see the license file that +// should have come with this header). +// Uses Jeff Preshing's semaphore implementation (under the terms of its +// separate zlib license, embedded below). + +#pragma once + +// Provides portable (VC++2010+, Intel ICC 13, GCC 4.7+, and anything C++11 compliant) implementation +// of low-level memory barriers, plus a few semi-portable utility macros (for inlining and alignment). +// Also has a basic atomic type (limited to hardware-supported atomics with no memory ordering guarantees). +// Uses the AE_* prefix for macros (historical reasons), and the "moodycamel" namespace for symbols. + +#include +#include +#include +#include +#include + +// Platform detection +#if defined(__INTEL_COMPILER) +#define AE_ICC +#elif defined(_MSC_VER) +#define AE_VCPP +#elif defined(__GNUC__) +#define AE_GCC +#endif + +#if defined(_M_IA64) || defined(__ia64__) +#define AE_ARCH_IA64 +#elif defined(_WIN64) || defined(__amd64__) || defined(_M_X64) || defined(__x86_64__) +#define AE_ARCH_X64 +#elif defined(_M_IX86) || defined(__i386__) +#define AE_ARCH_X86 +#elif defined(_M_PPC) || defined(__powerpc__) +#define AE_ARCH_PPC +#else +#define AE_ARCH_UNKNOWN +#endif + + +// AE_UNUSED +#define AE_UNUSED(x) ((void)x) + + +// AE_FORCEINLINE +#if defined(AE_VCPP) || defined(AE_ICC) +#define AE_FORCEINLINE __forceinline +#elif defined(AE_GCC) +//#define AE_FORCEINLINE __attribute__((always_inline)) +#define AE_FORCEINLINE inline +#else +#define AE_FORCEINLINE inline +#endif + + +// AE_ALIGN +#if defined(AE_VCPP) || defined(AE_ICC) +#define AE_ALIGN(x) __declspec(align(x)) +#elif defined(AE_GCC) +#define AE_ALIGN(x) __attribute__((aligned(x))) +#else +// Assume GCC compliant syntax... +#define AE_ALIGN(x) __attribute__((aligned(x))) +#endif + + +// Portable atomic fences implemented below: + +namespace moodycamel { + +enum memory_order { + memory_order_relaxed, + memory_order_acquire, + memory_order_release, + memory_order_acq_rel, + memory_order_seq_cst, + + // memory_order_sync: Forces a full sync: + // #LoadLoad, #LoadStore, #StoreStore, and most significantly, #StoreLoad + memory_order_sync = memory_order_seq_cst +}; + +} // end namespace moodycamel + +#if (defined(AE_VCPP) && (_MSC_VER < 1700 || defined(__cplusplus_cli))) || (defined(AE_ICC) && __INTEL_COMPILER < 1600) +// VS2010 and ICC13 don't support std::atomic_*_fence, implement our own fences + +#include + +#if defined(AE_ARCH_X64) || defined(AE_ARCH_X86) +#define AeFullSync _mm_mfence +#define AeLiteSync _mm_mfence +#elif defined(AE_ARCH_IA64) +#define AeFullSync __mf +#define AeLiteSync __mf +#elif defined(AE_ARCH_PPC) +#include +#define AeFullSync __sync +#define AeLiteSync __lwsync +#endif + + +#ifdef AE_VCPP +#pragma warning(push) +#pragma warning(disable: 4365) // Disable erroneous 'conversion from long to unsigned int, signed/unsigned mismatch' error when using `assert` +#ifdef __cplusplus_cli +#pragma managed(push, off) +#endif +#endif + +namespace moodycamel { + +AE_FORCEINLINE void compiler_fence(memory_order order) +{ + switch (order) { + case memory_order_relaxed: break; + case memory_order_acquire: _ReadBarrier(); break; + case memory_order_release: _WriteBarrier(); break; + case memory_order_acq_rel: _ReadWriteBarrier(); break; + case memory_order_seq_cst: _ReadWriteBarrier(); break; + default: assert(false); + } +} + +// x86/x64 have a strong memory model -- all loads and stores have +// acquire and release semantics automatically (so only need compiler +// barriers for those). +#if defined(AE_ARCH_X86) || defined(AE_ARCH_X64) +AE_FORCEINLINE void fence(memory_order order) +{ + switch (order) { + case memory_order_relaxed: break; + case memory_order_acquire: _ReadBarrier(); break; + case memory_order_release: _WriteBarrier(); break; + case memory_order_acq_rel: _ReadWriteBarrier(); break; + case memory_order_seq_cst: + _ReadWriteBarrier(); + AeFullSync(); + _ReadWriteBarrier(); + break; + default: assert(false); + } +} +#else +AE_FORCEINLINE void fence(memory_order order) +{ + // Non-specialized arch, use heavier memory barriers everywhere just in case :-( + switch (order) { + case memory_order_relaxed: + break; + case memory_order_acquire: + _ReadBarrier(); + AeLiteSync(); + _ReadBarrier(); + break; + case memory_order_release: + _WriteBarrier(); + AeLiteSync(); + _WriteBarrier(); + break; + case memory_order_acq_rel: + _ReadWriteBarrier(); + AeLiteSync(); + _ReadWriteBarrier(); + break; + case memory_order_seq_cst: + _ReadWriteBarrier(); + AeFullSync(); + _ReadWriteBarrier(); + break; + default: assert(false); + } +} +#endif +} // end namespace moodycamel +#else +// Use standard library of atomics +#include + +namespace moodycamel { + +AE_FORCEINLINE void compiler_fence(memory_order order) +{ + switch (order) { + case memory_order_relaxed: break; + case memory_order_acquire: std::atomic_signal_fence(std::memory_order_acquire); break; + case memory_order_release: std::atomic_signal_fence(std::memory_order_release); break; + case memory_order_acq_rel: std::atomic_signal_fence(std::memory_order_acq_rel); break; + case memory_order_seq_cst: std::atomic_signal_fence(std::memory_order_seq_cst); break; + default: assert(false); + } +} + +AE_FORCEINLINE void fence(memory_order order) +{ + switch (order) { + case memory_order_relaxed: break; + case memory_order_acquire: std::atomic_thread_fence(std::memory_order_acquire); break; + case memory_order_release: std::atomic_thread_fence(std::memory_order_release); break; + case memory_order_acq_rel: std::atomic_thread_fence(std::memory_order_acq_rel); break; + case memory_order_seq_cst: std::atomic_thread_fence(std::memory_order_seq_cst); break; + default: assert(false); + } +} + +} // end namespace moodycamel + +#endif + + +#if !defined(AE_VCPP) || (_MSC_VER >= 1700 && !defined(__cplusplus_cli)) +#define AE_USE_STD_ATOMIC_FOR_WEAK_ATOMIC +#endif + +#ifdef AE_USE_STD_ATOMIC_FOR_WEAK_ATOMIC +#include +#endif +#include + +// WARNING: *NOT* A REPLACEMENT FOR std::atomic. READ CAREFULLY: +// Provides basic support for atomic variables -- no memory ordering guarantees are provided. +// The guarantee of atomicity is only made for types that already have atomic load and store guarantees +// at the hardware level -- on most platforms this generally means aligned pointers and integers (only). +namespace moodycamel { +template +class weak_atomic +{ +public: + weak_atomic() { } +#ifdef AE_VCPP +#pragma warning(push) +#pragma warning(disable: 4100) // Get rid of (erroneous) 'unreferenced formal parameter' warning +#endif + template weak_atomic(U&& x) : value(std::forward(x)) { } +#ifdef __cplusplus_cli + // Work around bug with universal reference/nullptr combination that only appears when /clr is on + weak_atomic(nullptr_t) : value(nullptr) { } +#endif + weak_atomic(weak_atomic const& other) : value(other.value) { } + weak_atomic(weak_atomic&& other) : value(std::move(other.value)) { } +#ifdef AE_VCPP +#pragma warning(pop) +#endif + + AE_FORCEINLINE operator T() const { return load(); } + + +#ifndef AE_USE_STD_ATOMIC_FOR_WEAK_ATOMIC + template AE_FORCEINLINE weak_atomic const& operator=(U&& x) { value = std::forward(x); return *this; } + AE_FORCEINLINE weak_atomic const& operator=(weak_atomic const& other) { value = other.value; return *this; } + + AE_FORCEINLINE T load() const { return value; } + + AE_FORCEINLINE T fetch_add_acquire(T increment) + { +#if defined(AE_ARCH_X64) || defined(AE_ARCH_X86) + if (sizeof(T) == 4) return _InterlockedExchangeAdd((long volatile*)&value, (long)increment); +#if defined(_M_AMD64) + else if (sizeof(T) == 8) return _InterlockedExchangeAdd64((long long volatile*)&value, (long long)increment); +#endif +#else +#error Unsupported platform +#endif + assert(false && "T must be either a 32 or 64 bit type"); + return value; + } + + AE_FORCEINLINE T fetch_add_release(T increment) + { +#if defined(AE_ARCH_X64) || defined(AE_ARCH_X86) + if (sizeof(T) == 4) return _InterlockedExchangeAdd((long volatile*)&value, (long)increment); +#if defined(_M_AMD64) + else if (sizeof(T) == 8) return _InterlockedExchangeAdd64((long long volatile*)&value, (long long)increment); +#endif +#else +#error Unsupported platform +#endif + assert(false && "T must be either a 32 or 64 bit type"); + return value; + } +#else + template + AE_FORCEINLINE weak_atomic const& operator=(U&& x) + { + value.store(std::forward(x), std::memory_order_relaxed); + return *this; + } + + AE_FORCEINLINE weak_atomic const& operator=(weak_atomic const& other) + { + value.store(other.value.load(std::memory_order_relaxed), std::memory_order_relaxed); + return *this; + } + + AE_FORCEINLINE T load() const { return value.load(std::memory_order_relaxed); } + + AE_FORCEINLINE T fetch_add_acquire(T increment) + { + return value.fetch_add(increment, std::memory_order_acquire); + } + + AE_FORCEINLINE T fetch_add_release(T increment) + { + return value.fetch_add(increment, std::memory_order_release); + } +#endif + + +private: +#ifndef AE_USE_STD_ATOMIC_FOR_WEAK_ATOMIC + // No std::atomic support, but still need to circumvent compiler optimizations. + // `volatile` will make memory access slow, but is guaranteed to be reliable. + volatile T value; +#else + std::atomic value; +#endif +}; + +} // end namespace moodycamel + + + +// Portable single-producer, single-consumer semaphore below: + +#if defined(_WIN32) +// Avoid including windows.h in a header; we only need a handful of +// items, so we'll redeclare them here (this is relatively safe since +// the API generally has to remain stable between Windows versions). +// I know this is an ugly hack but it still beats polluting the global +// namespace with thousands of generic names or adding a .cpp for nothing. +extern "C" { + struct _SECURITY_ATTRIBUTES; + __declspec(dllimport) void* __stdcall CreateSemaphoreW(_SECURITY_ATTRIBUTES* lpSemaphoreAttributes, long lInitialCount, long lMaximumCount, const wchar_t* lpName); + __declspec(dllimport) int __stdcall CloseHandle(void* hObject); + __declspec(dllimport) unsigned long __stdcall WaitForSingleObject(void* hHandle, unsigned long dwMilliseconds); + __declspec(dllimport) int __stdcall ReleaseSemaphore(void* hSemaphore, long lReleaseCount, long* lpPreviousCount); +} +#elif defined(__MACH__) +#include +#elif defined(__unix__) +#include +#endif + +namespace moodycamel +{ + // Code in the spsc_sema namespace below is an adaptation of Jeff Preshing's + // portable + lightweight semaphore implementations, originally from + // https://github.com/preshing/cpp11-on-multicore/blob/master/common/sema.h + // LICENSE: + // Copyright (c) 2015 Jeff Preshing + // + // This software is provided 'as-is', without any express or implied + // warranty. In no event will the authors be held liable for any damages + // arising from the use of this software. + // + // Permission is granted to anyone to use this software for any purpose, + // including commercial applications, and to alter it and redistribute it + // freely, subject to the following restrictions: + // + // 1. The origin of this software must not be misrepresented; you must not + // claim that you wrote the original software. If you use this software + // in a product, an acknowledgement in the product documentation would be + // appreciated but is not required. + // 2. Altered source versions must be plainly marked as such, and must not be + // misrepresented as being the original software. + // 3. This notice may not be removed or altered from any source distribution. + namespace spsc_sema + { +#if defined(_WIN32) + class Semaphore + { + private: + void* m_hSema; + + Semaphore(const Semaphore& other); + Semaphore& operator=(const Semaphore& other); + + public: + Semaphore(int initialCount = 0) + { + assert(initialCount >= 0); + const long maxLong = 0x7fffffff; + m_hSema = CreateSemaphoreW(nullptr, initialCount, maxLong, nullptr); + } + + ~Semaphore() + { + CloseHandle(m_hSema); + } + + void wait() + { + const unsigned long infinite = 0xffffffff; + WaitForSingleObject(m_hSema, infinite); + } + + bool try_wait() + { + const unsigned long RC_WAIT_TIMEOUT = 0x00000102; + return WaitForSingleObject(m_hSema, 0) != RC_WAIT_TIMEOUT; + } + + bool timed_wait(std::uint64_t usecs) + { + const unsigned long RC_WAIT_TIMEOUT = 0x00000102; + return WaitForSingleObject(m_hSema, (unsigned long)(usecs / 1000)) != RC_WAIT_TIMEOUT; + } + + void signal(int count = 1) + { + ReleaseSemaphore(m_hSema, count, nullptr); + } + }; +#elif defined(__MACH__) + //--------------------------------------------------------- + // Semaphore (Apple iOS and OSX) + // Can't use POSIX semaphores due to http://lists.apple.com/archives/darwin-kernel/2009/Apr/msg00010.html + //--------------------------------------------------------- + class Semaphore + { + private: + semaphore_t m_sema; + + Semaphore(const Semaphore& other); + Semaphore& operator=(const Semaphore& other); + + public: + Semaphore(int initialCount = 0) + { + assert(initialCount >= 0); + semaphore_create(mach_task_self(), &m_sema, SYNC_POLICY_FIFO, initialCount); + } + + ~Semaphore() + { + semaphore_destroy(mach_task_self(), m_sema); + } + + void wait() + { + semaphore_wait(m_sema); + } + + bool try_wait() + { + return timed_wait(0); + } + + bool timed_wait(std::int64_t timeout_usecs) + { + mach_timespec_t ts; + ts.tv_sec = static_cast(timeout_usecs / 1000000); + ts.tv_nsec = (timeout_usecs % 1000000) * 1000; + + // added in OSX 10.10: https://developer.apple.com/library/prerelease/mac/documentation/General/Reference/APIDiffsMacOSX10_10SeedDiff/modules/Darwin.html + kern_return_t rc = semaphore_timedwait(m_sema, ts); + + return rc != KERN_OPERATION_TIMED_OUT && rc != KERN_ABORTED; + } + + void signal() + { + semaphore_signal(m_sema); + } + + void signal(int count) + { + while (count-- > 0) + { + semaphore_signal(m_sema); + } + } + }; +#elif defined(__unix__) + //--------------------------------------------------------- + // Semaphore (POSIX, Linux) + //--------------------------------------------------------- + class Semaphore + { + private: + sem_t m_sema; + + Semaphore(const Semaphore& other); + Semaphore& operator=(const Semaphore& other); + + public: + Semaphore(int initialCount = 0) + { + assert(initialCount >= 0); + sem_init(&m_sema, 0, initialCount); + } + + ~Semaphore() + { + sem_destroy(&m_sema); + } + + void wait() + { + // http://stackoverflow.com/questions/2013181/gdb-causes-sem-wait-to-fail-with-eintr-error + int rc; + do + { + rc = sem_wait(&m_sema); + } + while (rc == -1 && errno == EINTR); + } + + bool try_wait() + { + int rc; + do { + rc = sem_trywait(&m_sema); + } while (rc == -1 && errno == EINTR); + return !(rc == -1 && errno == EAGAIN); + } + + bool timed_wait(std::uint64_t usecs) + { + struct timespec ts; + const int usecs_in_1_sec = 1000000; + const int nsecs_in_1_sec = 1000000000; + clock_gettime(CLOCK_REALTIME, &ts); + ts.tv_sec += usecs / usecs_in_1_sec; + ts.tv_nsec += (usecs % usecs_in_1_sec) * 1000; + // sem_timedwait bombs if you have more than 1e9 in tv_nsec + // so we have to clean things up before passing it in + if (ts.tv_nsec >= nsecs_in_1_sec) { + ts.tv_nsec -= nsecs_in_1_sec; + ++ts.tv_sec; + } + + int rc; + do { + rc = sem_timedwait(&m_sema, &ts); + } while (rc == -1 && errno == EINTR); + return !(rc == -1 && errno == ETIMEDOUT); + } + + void signal() + { + sem_post(&m_sema); + } + + void signal(int count) + { + while (count-- > 0) + { + sem_post(&m_sema); + } + } + }; +#else +#error Unsupported platform! (No semaphore wrapper available) +#endif + + //--------------------------------------------------------- + // LightweightSemaphore + //--------------------------------------------------------- + class LightweightSemaphore + { + public: + typedef std::make_signed::type ssize_t; + + private: + weak_atomic m_count; + Semaphore m_sema; + + bool waitWithPartialSpinning(std::int64_t timeout_usecs = -1) + { + ssize_t oldCount; + // Is there a better way to set the initial spin count? + // If we lower it to 1000, testBenaphore becomes 15x slower on my Core i7-5930K Windows PC, + // as threads start hitting the kernel semaphore. + int spin = 10000; + while (--spin >= 0) + { + if (m_count.load() > 0) + { + m_count.fetch_add_acquire(-1); + return true; + } + compiler_fence(memory_order_acquire); // Prevent the compiler from collapsing the loop. + } + oldCount = m_count.fetch_add_acquire(-1); + if (oldCount > 0) + return true; + if (timeout_usecs < 0) + { + m_sema.wait(); + return true; + } + if (m_sema.timed_wait(timeout_usecs)) + return true; + // At this point, we've timed out waiting for the semaphore, but the + // count is still decremented indicating we may still be waiting on + // it. So we have to re-adjust the count, but only if the semaphore + // wasn't signaled enough times for us too since then. If it was, we + // need to release the semaphore too. + while (true) + { + oldCount = m_count.fetch_add_release(1); + if (oldCount < 0) + return false; // successfully restored things to the way they were + // Oh, the producer thread just signaled the semaphore after all. Try again: + oldCount = m_count.fetch_add_acquire(-1); + if (oldCount > 0 && m_sema.try_wait()) + return true; + } + } + + public: + LightweightSemaphore(ssize_t initialCount = 0) : m_count(initialCount) + { + assert(initialCount >= 0); + } + + bool tryWait() + { + if (m_count.load() > 0) + { + m_count.fetch_add_acquire(-1); + return true; + } + return false; + } + + void wait() + { + if (!tryWait()) + waitWithPartialSpinning(); + } + + bool wait(std::int64_t timeout_usecs) + { + return tryWait() || waitWithPartialSpinning(timeout_usecs); + } + + void signal(ssize_t count = 1) + { + assert(count >= 0); + ssize_t oldCount = m_count.fetch_add_release(count); + assert(oldCount >= -1); + if (oldCount < 0) + { + m_sema.signal(1); + } + } + + ssize_t availableApprox() const + { + ssize_t count = m_count.load(); + return count > 0 ? count : 0; + } + }; + } // end namespace spsc_sema +} // end namespace moodycamel + +#if defined(AE_VCPP) && (_MSC_VER < 1700 || defined(__cplusplus_cli)) +#pragma warning(pop) +#ifdef __cplusplus_cli +#pragma managed(pop) +#endif +#endif diff --git a/sources/LabSound/third_party/readerwriterqueue/readerwriterqueue.h b/sources/LabSound/third_party/readerwriterqueue/readerwriterqueue.h new file mode 100644 index 00000000..59732006 --- /dev/null +++ b/sources/LabSound/third_party/readerwriterqueue/readerwriterqueue.h @@ -0,0 +1,894 @@ +// ©2013-2016 Cameron Desrochers. +// Distributed under the simplified BSD license (see the license file that +// should have come with this header). + +#pragma once + +#include "atomicops.h" +#include +#include +#include +#include +#include +#include +#include // For malloc/free/abort & size_t +#if __cplusplus > 199711L || _MSC_VER >= 1700 // C++11 or VS2012 +#include +#endif + + +// A lock-free queue for a single-consumer, single-producer architecture. +// The queue is also wait-free in the common path (except if more memory +// needs to be allocated, in which case malloc is called). +// Allocates memory sparingly (O(lg(n) times, amortized), and only once if +// the original maximum size estimate is never exceeded. +// Tested on x86/x64 processors, but semantics should be correct for all +// architectures (given the right implementations in atomicops.h), provided +// that aligned integer and pointer accesses are naturally atomic. +// Note that there should only be one consumer thread and producer thread; +// Switching roles of the threads, or using multiple consecutive threads for +// one role, is not safe unless properly synchronized. +// Using the queue exclusively from one thread is fine, though a bit silly. + +#ifndef MOODYCAMEL_CACHE_LINE_SIZE +#define MOODYCAMEL_CACHE_LINE_SIZE 64 +#endif + +#ifndef MOODYCAMEL_EXCEPTIONS_ENABLED +#if (defined(_MSC_VER) && defined(_CPPUNWIND)) || (defined(__GNUC__) && defined(__EXCEPTIONS)) || (!defined(_MSC_VER) && !defined(__GNUC__)) +#define MOODYCAMEL_EXCEPTIONS_ENABLED +#endif +#endif + +#ifndef MOODYCAMEL_HAS_EMPLACE +#if !defined(_MSC_VER) || _MSC_VER >= 1800 // variadic templates: either a non-MS compiler or VS >= 2013 +#define MOODYCAMEL_HAS_EMPLACE 1 +#endif +#endif + +#ifdef AE_VCPP +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#pragma warning(disable: 4820) // padding was added +#pragma warning(disable: 4127) // conditional expression is constant +#endif + +namespace moodycamel { + +template +class ReaderWriterQueue +{ + // Design: Based on a queue-of-queues. The low-level queues are just + // circular buffers with front and tail indices indicating where the + // next element to dequeue is and where the next element can be enqueued, + // respectively. Each low-level queue is called a "block". Each block + // wastes exactly one element's worth of space to keep the design simple + // (if front == tail then the queue is empty, and can't be full). + // The high-level queue is a circular linked list of blocks; again there + // is a front and tail, but this time they are pointers to the blocks. + // The front block is where the next element to be dequeued is, provided + // the block is not empty. The back block is where elements are to be + // enqueued, provided the block is not full. + // The producer thread owns all the tail indices/pointers. The consumer + // thread owns all the front indices/pointers. Both threads read each + // other's variables, but only the owning thread updates them. E.g. After + // the consumer reads the producer's tail, the tail may change before the + // consumer is done dequeuing an object, but the consumer knows the tail + // will never go backwards, only forwards. + // If there is no room to enqueue an object, an additional block (of + // equal size to the last block) is added. Blocks are never removed. + +public: + typedef T value_type; + + // Constructs a queue that can hold maxSize elements without further + // allocations. If more than MAX_BLOCK_SIZE elements are requested, + // then several blocks of MAX_BLOCK_SIZE each are reserved (including + // at least one extra buffer block). + explicit ReaderWriterQueue(size_t maxSize = 15) +#ifndef NDEBUG + : enqueuing(false) + ,dequeuing(false) +#endif + { + assert(maxSize > 0); + assert(MAX_BLOCK_SIZE == ceilToPow2(MAX_BLOCK_SIZE) && "MAX_BLOCK_SIZE must be a power of 2"); + assert(MAX_BLOCK_SIZE >= 2 && "MAX_BLOCK_SIZE must be at least 2"); + + Block* firstBlock = nullptr; + + largestBlockSize = ceilToPow2(maxSize + 1); // We need a spare slot to fit maxSize elements in the block + if (largestBlockSize > MAX_BLOCK_SIZE * 2) { + // We need a spare block in case the producer is writing to a different block the consumer is reading from, and + // wants to enqueue the maximum number of elements. We also need a spare element in each block to avoid the ambiguity + // between front == tail meaning "empty" and "full". + // So the effective number of slots that are guaranteed to be usable at any time is the block size - 1 times the + // number of blocks - 1. Solving for maxSize and applying a ceiling to the division gives us (after simplifying): + size_t initialBlockCount = (maxSize + MAX_BLOCK_SIZE * 2 - 3) / (MAX_BLOCK_SIZE - 1); + largestBlockSize = MAX_BLOCK_SIZE; + Block* lastBlock = nullptr; + for (size_t i = 0; i != initialBlockCount; ++i) { + auto block = make_block(largestBlockSize); + if (block == nullptr) { +#ifdef MOODYCAMEL_EXCEPTIONS_ENABLED + throw std::bad_alloc(); +#else + abort(); +#endif + } + if (firstBlock == nullptr) { + firstBlock = block; + } + else { + lastBlock->next = block; + } + lastBlock = block; + block->next = firstBlock; + } + } + else { + firstBlock = make_block(largestBlockSize); + if (firstBlock == nullptr) { +#ifdef MOODYCAMEL_EXCEPTIONS_ENABLED + throw std::bad_alloc(); +#else + abort(); +#endif + } + firstBlock->next = firstBlock; + } + frontBlock = firstBlock; + tailBlock = firstBlock; + + // Make sure the reader/writer threads will have the initialized memory setup above: + fence(memory_order_sync); + } + + // Note: The queue should not be accessed concurrently while it's + // being moved. It's up to the user to synchronize this. + ReaderWriterQueue(ReaderWriterQueue&& other) + : frontBlock(other.frontBlock.load()), + tailBlock(other.tailBlock.load()), + largestBlockSize(other.largestBlockSize) +#ifndef NDEBUG + ,enqueuing(false) + ,dequeuing(false) +#endif + { + other.largestBlockSize = 32; + Block* b = other.make_block(other.largestBlockSize); + if (b == nullptr) { +#ifdef MOODYCAMEL_EXCEPTIONS_ENABLED + throw std::bad_alloc(); +#else + abort(); +#endif + } + b->next = b; + other.frontBlock = b; + other.tailBlock = b; + } + + // Note: The queue should not be accessed concurrently while it's + // being moved. It's up to the user to synchronize this. + ReaderWriterQueue& operator=(ReaderWriterQueue&& other) + { + Block* b = frontBlock.load(); + frontBlock = other.frontBlock.load(); + other.frontBlock = b; + b = tailBlock.load(); + tailBlock = other.tailBlock.load(); + other.tailBlock = b; + std::swap(largestBlockSize, other.largestBlockSize); + return *this; + } + + // Note: The queue should not be accessed concurrently while it's + // being deleted. It's up to the user to synchronize this. + ~ReaderWriterQueue() + { + // Make sure we get the latest version of all variables from other CPUs: + fence(memory_order_sync); + + // Destroy any remaining objects in queue and free memory + Block* frontBlock_ = frontBlock; + Block* block = frontBlock_; + do { + Block* nextBlock = block->next; + size_t blockFront = block->front; + size_t blockTail = block->tail; + + for (size_t i = blockFront; i != blockTail; i = (i + 1) & block->sizeMask) { + auto element = reinterpret_cast(block->data + i * sizeof(T)); + element->~T(); + (void)element; + } + + auto rawBlock = block->rawThis; + block->~Block(); + std::free(rawBlock); + block = nextBlock; + } while (block != frontBlock_); + } + + + // Enqueues a copy of element if there is room in the queue. + // Returns true if the element was enqueued, false otherwise. + // Does not allocate memory. + AE_FORCEINLINE bool try_enqueue(T const& element) + { + return inner_enqueue(element); + } + + // Enqueues a moved copy of element if there is room in the queue. + // Returns true if the element was enqueued, false otherwise. + // Does not allocate memory. + AE_FORCEINLINE bool try_enqueue(T&& element) + { + return inner_enqueue(std::forward(element)); + } + +#if MOODYCAMEL_HAS_EMPLACE + // Like try_enqueue() but with emplace semantics (i.e. construct-in-place). + template + AE_FORCEINLINE bool try_emplace(Args&&... args) + { + return inner_enqueue(std::forward(args)...); + } +#endif + + // Enqueues a copy of element on the queue. + // Allocates an additional block of memory if needed. + // Only fails (returns false) if memory allocation fails. + AE_FORCEINLINE bool enqueue(T const& element) + { + return inner_enqueue(element); + } + + // Enqueues a moved copy of element on the queue. + // Allocates an additional block of memory if needed. + // Only fails (returns false) if memory allocation fails. + AE_FORCEINLINE bool enqueue(T&& element) + { + return inner_enqueue(std::forward(element)); + } + +#if MOODYCAMEL_HAS_EMPLACE + // Like enqueue() but with emplace semantics (i.e. construct-in-place). + template + AE_FORCEINLINE bool emplace(Args&&... args) + { + return inner_enqueue(std::forward(args)...); + } +#endif + + // Attempts to dequeue an element; if the queue is empty, + // returns false instead. If the queue has at least one element, + // moves front to result using operator=, then returns true. + template + bool try_dequeue(U& result) + { +#ifndef NDEBUG + ReentrantGuard guard(this->dequeuing); +#endif + + // High-level pseudocode: + // Remember where the tail block is + // If the front block has an element in it, dequeue it + // Else + // If front block was the tail block when we entered the function, return false + // Else advance to next block and dequeue the item there + + // Note that we have to use the value of the tail block from before we check if the front + // block is full or not, in case the front block is empty and then, before we check if the + // tail block is at the front block or not, the producer fills up the front block *and + // moves on*, which would make us skip a filled block. Seems unlikely, but was consistently + // reproducible in practice. + // In order to avoid overhead in the common case, though, we do a double-checked pattern + // where we have the fast path if the front block is not empty, then read the tail block, + // then re-read the front block and check if it's not empty again, then check if the tail + // block has advanced. + + Block* frontBlock_ = frontBlock.load(); + size_t blockTail = frontBlock_->localTail; + size_t blockFront = frontBlock_->front.load(); + + if (blockFront != blockTail || blockFront != (frontBlock_->localTail = frontBlock_->tail.load())) { + fence(memory_order_acquire); + + non_empty_front_block: + // Front block not empty, dequeue from here + auto element = reinterpret_cast(frontBlock_->data + blockFront * sizeof(T)); + result = std::move(*element); + element->~T(); + + blockFront = (blockFront + 1) & frontBlock_->sizeMask; + + fence(memory_order_release); + frontBlock_->front = blockFront; + } + else if (frontBlock_ != tailBlock.load()) { + fence(memory_order_acquire); + + frontBlock_ = frontBlock.load(); + blockTail = frontBlock_->localTail = frontBlock_->tail.load(); + blockFront = frontBlock_->front.load(); + fence(memory_order_acquire); + + if (blockFront != blockTail) { + // Oh look, the front block isn't empty after all + goto non_empty_front_block; + } + + // Front block is empty but there's another block ahead, advance to it + Block* nextBlock = frontBlock_->next; + // Don't need an acquire fence here since next can only ever be set on the tailBlock, + // and we're not the tailBlock, and we did an acquire earlier after reading tailBlock which + // ensures next is up-to-date on this CPU in case we recently were at tailBlock. + + size_t nextBlockFront = nextBlock->front.load(); + size_t nextBlockTail = nextBlock->localTail = nextBlock->tail.load(); + fence(memory_order_acquire); + + // Since the tailBlock is only ever advanced after being written to, + // we know there's for sure an element to dequeue on it + assert(nextBlockFront != nextBlockTail); + AE_UNUSED(nextBlockTail); + + // We're done with this block, let the producer use it if it needs + fence(memory_order_release); // Expose possibly pending changes to frontBlock->front from last dequeue + frontBlock = frontBlock_ = nextBlock; + + compiler_fence(memory_order_release); // Not strictly needed + + auto element = reinterpret_cast(frontBlock_->data + nextBlockFront * sizeof(T)); + + result = std::move(*element); + element->~T(); + + nextBlockFront = (nextBlockFront + 1) & frontBlock_->sizeMask; + + fence(memory_order_release); + frontBlock_->front = nextBlockFront; + } + else { + // No elements in current block and no other block to advance to + return false; + } + + return true; + } + + + // Returns a pointer to the front element in the queue (the one that + // would be removed next by a call to `try_dequeue` or `pop`). If the + // queue appears empty at the time the method is called, nullptr is + // returned instead. + // Must be called only from the consumer thread. + T* peek() + { +#ifndef NDEBUG + ReentrantGuard guard(this->dequeuing); +#endif + // See try_dequeue() for reasoning + + Block* frontBlock_ = frontBlock.load(); + size_t blockTail = frontBlock_->localTail; + size_t blockFront = frontBlock_->front.load(); + + if (blockFront != blockTail || blockFront != (frontBlock_->localTail = frontBlock_->tail.load())) { + fence(memory_order_acquire); + non_empty_front_block: + return reinterpret_cast(frontBlock_->data + blockFront * sizeof(T)); + } + else if (frontBlock_ != tailBlock.load()) { + fence(memory_order_acquire); + frontBlock_ = frontBlock.load(); + blockTail = frontBlock_->localTail = frontBlock_->tail.load(); + blockFront = frontBlock_->front.load(); + fence(memory_order_acquire); + + if (blockFront != blockTail) { + goto non_empty_front_block; + } + + Block* nextBlock = frontBlock_->next; + + size_t nextBlockFront = nextBlock->front.load(); + fence(memory_order_acquire); + + assert(nextBlockFront != nextBlock->tail.load()); + return reinterpret_cast(nextBlock->data + nextBlockFront * sizeof(T)); + } + + return nullptr; + } + + // Removes the front element from the queue, if any, without returning it. + // Returns true on success, or false if the queue appeared empty at the time + // `pop` was called. + bool pop() + { +#ifndef NDEBUG + ReentrantGuard guard(this->dequeuing); +#endif + // See try_dequeue() for reasoning + + Block* frontBlock_ = frontBlock.load(); + size_t blockTail = frontBlock_->localTail; + size_t blockFront = frontBlock_->front.load(); + + if (blockFront != blockTail || blockFront != (frontBlock_->localTail = frontBlock_->tail.load())) { + fence(memory_order_acquire); + + non_empty_front_block: + auto element = reinterpret_cast(frontBlock_->data + blockFront * sizeof(T)); + element->~T(); + + blockFront = (blockFront + 1) & frontBlock_->sizeMask; + + fence(memory_order_release); + frontBlock_->front = blockFront; + } + else if (frontBlock_ != tailBlock.load()) { + fence(memory_order_acquire); + frontBlock_ = frontBlock.load(); + blockTail = frontBlock_->localTail = frontBlock_->tail.load(); + blockFront = frontBlock_->front.load(); + fence(memory_order_acquire); + + if (blockFront != blockTail) { + goto non_empty_front_block; + } + + // Front block is empty but there's another block ahead, advance to it + Block* nextBlock = frontBlock_->next; + + size_t nextBlockFront = nextBlock->front.load(); + size_t nextBlockTail = nextBlock->localTail = nextBlock->tail.load(); + fence(memory_order_acquire); + + assert(nextBlockFront != nextBlockTail); + AE_UNUSED(nextBlockTail); + + fence(memory_order_release); + frontBlock = frontBlock_ = nextBlock; + + compiler_fence(memory_order_release); + + auto element = reinterpret_cast(frontBlock_->data + nextBlockFront * sizeof(T)); + element->~T(); + + nextBlockFront = (nextBlockFront + 1) & frontBlock_->sizeMask; + + fence(memory_order_release); + frontBlock_->front = nextBlockFront; + } + else { + // No elements in current block and no other block to advance to + return false; + } + + return true; + } + + // Returns the approximate number of items currently in the queue. + // Safe to call from both the producer and consumer threads. + inline size_t size_approx() const + { + size_t result = 0; + Block* frontBlock_ = frontBlock.load(); + Block* block = frontBlock_; + do { + fence(memory_order_acquire); + size_t blockFront = block->front.load(); + size_t blockTail = block->tail.load(); + result += (blockTail - blockFront) & block->sizeMask; + block = block->next.load(); + } while (block != frontBlock_); + return result; + } + + +private: + enum AllocationMode { CanAlloc, CannotAlloc }; + +#if MOODYCAMEL_HAS_EMPLACE + template + bool inner_enqueue(Args&&... args) +#else + template + bool inner_enqueue(U&& element) +#endif + { +#ifndef NDEBUG + ReentrantGuard guard(this->enqueuing); +#endif + + // High-level pseudocode (assuming we're allowed to alloc a new block): + // If room in tail block, add to tail + // Else check next block + // If next block is not the head block, enqueue on next block + // Else create a new block and enqueue there + // Advance tail to the block we just enqueued to + + Block* tailBlock_ = tailBlock.load(); + size_t blockFront = tailBlock_->localFront; + size_t blockTail = tailBlock_->tail.load(); + + size_t nextBlockTail = (blockTail + 1) & tailBlock_->sizeMask; + if (nextBlockTail != blockFront || nextBlockTail != (tailBlock_->localFront = tailBlock_->front.load())) { + fence(memory_order_acquire); + // This block has room for at least one more element + char* location = tailBlock_->data + blockTail * sizeof(T); +#if MOODYCAMEL_HAS_EMPLACE + new (location) T(std::forward(args)...); +#else + new (location) T(std::forward(element)); +#endif + + fence(memory_order_release); + tailBlock_->tail = nextBlockTail; + } + else { + fence(memory_order_acquire); + if (tailBlock_->next.load() != frontBlock) { + // Note that the reason we can't advance to the frontBlock and start adding new entries there + // is because if we did, then dequeue would stay in that block, eventually reading the new values, + // instead of advancing to the next full block (whose values were enqueued first and so should be + // consumed first). + + fence(memory_order_acquire); // Ensure we get latest writes if we got the latest frontBlock + + // tailBlock is full, but there's a free block ahead, use it + Block* tailBlockNext = tailBlock_->next.load(); + size_t nextBlockFront = tailBlockNext->localFront = tailBlockNext->front.load(); + nextBlockTail = tailBlockNext->tail.load(); + fence(memory_order_acquire); + + // This block must be empty since it's not the head block and we + // go through the blocks in a circle + assert(nextBlockFront == nextBlockTail); + tailBlockNext->localFront = nextBlockFront; + + char* location = tailBlockNext->data + nextBlockTail * sizeof(T); +#if MOODYCAMEL_HAS_EMPLACE + new (location) T(std::forward(args)...); +#else + new (location) T(std::forward(element)); +#endif + + tailBlockNext->tail = (nextBlockTail + 1) & tailBlockNext->sizeMask; + + fence(memory_order_release); + tailBlock = tailBlockNext; + } + else if (canAlloc == CanAlloc) { + // tailBlock is full and there's no free block ahead; create a new block + auto newBlockSize = largestBlockSize >= MAX_BLOCK_SIZE ? largestBlockSize : largestBlockSize * 2; + auto newBlock = make_block(newBlockSize); + if (newBlock == nullptr) { + // Could not allocate a block! + return false; + } + largestBlockSize = newBlockSize; + +#if MOODYCAMEL_HAS_EMPLACE + new (newBlock->data) T(std::forward(args)...); +#else + new (newBlock->data) T(std::forward(element)); +#endif + assert(newBlock->front == 0); + newBlock->tail = newBlock->localTail = 1; + + newBlock->next = tailBlock_->next.load(); + tailBlock_->next = newBlock; + + // Might be possible for the dequeue thread to see the new tailBlock->next + // *without* seeing the new tailBlock value, but this is OK since it can't + // advance to the next block until tailBlock is set anyway (because the only + // case where it could try to read the next is if it's already at the tailBlock, + // and it won't advance past tailBlock in any circumstance). + + fence(memory_order_release); + tailBlock = newBlock; + } + else if (canAlloc == CannotAlloc) { + // Would have had to allocate a new block to enqueue, but not allowed + return false; + } + else { + assert(false && "Should be unreachable code"); + return false; + } + } + + return true; + } + + + // Disable copying + ReaderWriterQueue(ReaderWriterQueue const&) { } + + // Disable assignment + ReaderWriterQueue& operator=(ReaderWriterQueue const&) { } + + + + AE_FORCEINLINE static size_t ceilToPow2(size_t x) + { + // From http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 + --x; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + for (size_t i = 1; i < sizeof(size_t); i <<= 1) { + x |= x >> (i << 3); + } + ++x; + return x; + } + + template + static AE_FORCEINLINE char* align_for(char* ptr) + { + const std::size_t alignment = std::alignment_of::value; + return ptr + (alignment - (reinterpret_cast(ptr) % alignment)) % alignment; + } +private: +#ifndef NDEBUG + struct ReentrantGuard + { + ReentrantGuard(bool& _inSection) + : inSection(_inSection) + { + assert(!inSection && "ReaderWriterQueue does not support enqueuing or dequeuing elements from other elements' ctors and dtors"); + inSection = true; + } + + ~ReentrantGuard() { inSection = false; } + + private: + ReentrantGuard& operator=(ReentrantGuard const&); + + private: + bool& inSection; + }; +#endif + + struct Block + { + // Avoid false-sharing by putting highly contended variables on their own cache lines + weak_atomic front; // (Atomic) Elements are read from here + size_t localTail; // An uncontended shadow copy of tail, owned by the consumer + + char cachelineFiller0[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic) - sizeof(size_t)]; + weak_atomic tail; // (Atomic) Elements are enqueued here + size_t localFront; + + char cachelineFiller1[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic) - sizeof(size_t)]; // next isn't very contended, but we don't want it on the same cache line as tail (which is) + weak_atomic next; // (Atomic) + + char* data; // Contents (on heap) are aligned to T's alignment + + const size_t sizeMask; + + + // size must be a power of two (and greater than 0) + Block(size_t const& _size, char* _rawThis, char* _data) + : front(0), localTail(0), tail(0), localFront(0), next(nullptr), data(_data), sizeMask(_size - 1), rawThis(_rawThis) + { + } + + private: + // C4512 - Assignment operator could not be generated + Block& operator=(Block const&); + + public: + char* rawThis; + }; + + + static Block* make_block(size_t capacity) + { + // Allocate enough memory for the block itself, as well as all the elements it will contain + auto size = sizeof(Block) + std::alignment_of::value - 1; + size += sizeof(T) * capacity + std::alignment_of::value - 1; + auto newBlockRaw = static_cast(std::malloc(size)); + if (newBlockRaw == nullptr) { + return nullptr; + } + + auto newBlockAligned = align_for(newBlockRaw); + auto newBlockData = align_for(newBlockAligned + sizeof(Block)); + return new (newBlockAligned) Block(capacity, newBlockRaw, newBlockData); + } + +private: + weak_atomic frontBlock; // (Atomic) Elements are enqueued to this block + + char cachelineFiller[MOODYCAMEL_CACHE_LINE_SIZE - sizeof(weak_atomic)]; + weak_atomic tailBlock; // (Atomic) Elements are dequeued from this block + + size_t largestBlockSize; + +#ifndef NDEBUG + bool enqueuing; + bool dequeuing; +#endif +}; + +// Like ReaderWriterQueue, but also providees blocking operations +template +class BlockingReaderWriterQueue +{ +private: + typedef ::moodycamel::ReaderWriterQueue ReaderWriterQueue; + +public: + explicit BlockingReaderWriterQueue(size_t maxSize = 15) + : inner(maxSize) + { } + + + // Enqueues a copy of element if there is room in the queue. + // Returns true if the element was enqueued, false otherwise. + // Does not allocate memory. + AE_FORCEINLINE bool try_enqueue(T const& element) + { + if (inner.try_enqueue(element)) { + sema.signal(); + return true; + } + return false; + } + + // Enqueues a moved copy of element if there is room in the queue. + // Returns true if the element was enqueued, false otherwise. + // Does not allocate memory. + AE_FORCEINLINE bool try_enqueue(T&& element) + { + if (inner.try_enqueue(std::forward(element))) { + sema.signal(); + return true; + } + return false; + } + + + // Enqueues a copy of element on the queue. + // Allocates an additional block of memory if needed. + // Only fails (returns false) if memory allocation fails. + AE_FORCEINLINE bool enqueue(T const& element) + { + if (inner.enqueue(element)) { + sema.signal(); + return true; + } + return false; + } + + // Enqueues a moved copy of element on the queue. + // Allocates an additional block of memory if needed. + // Only fails (returns false) if memory allocation fails. + AE_FORCEINLINE bool enqueue(T&& element) + { + if (inner.enqueue(std::forward(element))) { + sema.signal(); + return true; + } + return false; + } + + + // Attempts to dequeue an element; if the queue is empty, + // returns false instead. If the queue has at least one element, + // moves front to result using operator=, then returns true. + template + bool try_dequeue(U& result) + { + if (sema.tryWait()) { + bool success = inner.try_dequeue(result); + assert(success); + AE_UNUSED(success); + return true; + } + return false; + } + + + // Attempts to dequeue an element; if the queue is empty, + // waits until an element is available, then dequeues it. + template + void wait_dequeue(U& result) + { + sema.wait(); + bool success = inner.try_dequeue(result); + AE_UNUSED(result); + assert(success); + AE_UNUSED(success); + } + + + // Attempts to dequeue an element; if the queue is empty, + // waits until an element is available up to the specified timeout, + // then dequeues it and returns true, or returns false if the timeout + // expires before an element can be dequeued. + // Using a negative timeout indicates an indefinite timeout, + // and is thus functionally equivalent to calling wait_dequeue. + template + bool wait_dequeue_timed(U& result, std::int64_t timeout_usecs) + { + if (!sema.wait(timeout_usecs)) { + return false; + } + bool success = inner.try_dequeue(result); + AE_UNUSED(result); + assert(success); + AE_UNUSED(success); + return true; + } + + +#if __cplusplus > 199711L || _MSC_VER >= 1700 + // Attempts to dequeue an element; if the queue is empty, + // waits until an element is available up to the specified timeout, + // then dequeues it and returns true, or returns false if the timeout + // expires before an element can be dequeued. + // Using a negative timeout indicates an indefinite timeout, + // and is thus functionally equivalent to calling wait_dequeue. + template + inline bool wait_dequeue_timed(U& result, std::chrono::duration const& timeout) + { + return wait_dequeue_timed(result, std::chrono::duration_cast(timeout).count()); + } +#endif + + + // Returns a pointer to the front element in the queue (the one that + // would be removed next by a call to `try_dequeue` or `pop`). If the + // queue appears empty at the time the method is called, nullptr is + // returned instead. + // Must be called only from the consumer thread. + AE_FORCEINLINE T* peek() + { + return inner.peek(); + } + + // Removes the front element from the queue, if any, without returning it. + // Returns true on success, or false if the queue appeared empty at the time + // `pop` was called. + AE_FORCEINLINE bool pop() + { + if (sema.tryWait()) { + bool result = inner.pop(); + assert(result); + AE_UNUSED(result); + return true; + } + return false; + } + + // Returns the approximate number of items currently in the queue. + // Safe to call from both the producer and consumer threads. + AE_FORCEINLINE size_t size_approx() const + { + return sema.availableApprox(); + } + + +private: + // Disable copying & assignment + BlockingReaderWriterQueue(ReaderWriterQueue const&) { } + BlockingReaderWriterQueue& operator=(ReaderWriterQueue const&) { } + +private: + ReaderWriterQueue inner; + spsc_sema::LightweightSemaphore sema; +}; + +} // end namespace moodycamel + +#ifdef AE_VCPP +#pragma warning(pop) +#endif diff --git a/win64/CMakeLists.txt b/win64/CMakeLists.txt index 817e2304..9bf2290a 100644 --- a/win64/CMakeLists.txt +++ b/win64/CMakeLists.txt @@ -38,6 +38,19 @@ set_target_properties(crypto PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libcrypto.lib ) +add_library(libnyquist STATIC IMPORTED GLOBAL) +set_target_properties(libnyquist PROPERTIES + IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libnyquist_d.lib +) +add_library(sampleRate STATIC IMPORTED GLOBAL) +set_target_properties(sampleRate PROPERTIES + IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/samplerate.lib +) + +add_library(libwavpack STATIC IMPORTED GLOBAL) +set_target_properties(libwavpack PROPERTIES + IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libwavpack_d.lib +) add_library(curl SHARED IMPORTED GLOBAL) @@ -256,6 +269,9 @@ list(APPEND CC_EXTERNAL_LIBS zlib websockets SDL2 + libnyquist + libwavpack + sampleRate SDL2Main tcmalloc ${glslang_libs_name} diff --git a/win64/libs/libnyquist.lib b/win64/libs/libnyquist.lib new file mode 100644 index 0000000000000000000000000000000000000000..d483b0ba8d5e1f39ea0809d571740110d2074423 GIT binary patch literal 6399316 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 z%0A53>2GJ2!% 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

    T7a`-d0zAb#Cuf6s7E|+-;sp&F_3)uDcn| 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Π!aOqT)DPtks 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

    y1g!vl9<&OStsBe4 z$N}4a$hLPyx-b^WGgebT`CQdapx1%U0KE}(Cg>fY*!+s{aEs~XkdEq*C1!n^v&5t+ z9TFy3j0uL6h)J)fD|U;)9x?77GuU4Z_N>8PF<7I)nho}~!FXju5-j2m4V9<_F9c;6W82ZOm$r|K@%HbH5!!PrvNZx4h0 z++Y_Q>{5fV4QY7e4R*W1I4x^|X}^)?kMWh7rvUubpj5 zx4IeZG=udq*kuOmZ?J&|n~XJ*rjO!)nif&>J1PXVQK8c4w$QetCDE2}6zlH&p~XA> z_h45W98gV8E~Mavy(!5%4EEw2v`cVS&=(tcMWlwo>J$RMk~rVPHrE}Bqp1V@tHX~# zPo!__aB z@3H{qIu=5)-gI6|tse}j52ET=i36V?E(d_1^nUH^43o(s`qt+n)c%j+gh&V z)!O;(?DQ`Qf;Z$sv{1C-+G|jhL*RPqo4pL#9C#*0 zS%$zA5)+D9n06j=w0#feQWPU*2u!7VLIxv#%CwJ%p4dr{a;mst{PdeEE&`LAShmTW zr86x(s48>Hd7VnDb*f9|H-zkhh*9fRrV7MR#<82YJq_C=Dy8VMX3VY$i*sD4!sN@} zSz=EtD|OMzCq9{G9Dm5QKpyjncYWhBv3Tq#-f`~=l)qszyHek5rP$xWd6K@dtLvq~ zX7!UR-}y(^a3Poyv$o1paw58$PEd%HF_N{3*h`SG&e&6+svGB|8M#9-vNV`;o@G!A zxZ0icP<|}gJ>RC*)xoRcex}t6tV4e+lDW#@Dxp&Fci`?NsUpskn933|VoW52>9k73 zJVqiV{s*!9#Lgv5wb)Njx@sv;v@nfaFFhfjW8$3aq-kQmRMNsz>q@b|gS@|X!Y)p> ze3L&|vG7tOOW0X$AV~WO71ZPq+}dc~v_B{-A_y7>9SHg< zXb6;tpbUrYau6sthsLKlGdE4?Tshd-c-y2ix4OHc$m0jN_CN4G(NA7(Uco*q#hi}3@aH^#p?uPJ`y z`rW|TB(3=SW8R8?GwyRJi*(QR#+w`bOXi@Pj6V)c>DCG_~A+K zIbLx^uOwFFjqe-1ecj$$2Cd1bCc+&2&Ez8(jr*Zpv9Z;x7vD5yg!>ro#bw6dFW(&h zd<;^URrUpv5Og2F-`9|koq!4th|BMiU40kd16M8h`x;%e!09KUy8W)%e}>|}zB$RRG5J|$)+RX4^tAX9=mAmbzzYhfE&Rl;0@ zkNO)cp0B}R#`xK1$%pFXfS@aCZm(9I&>Ro#p9rz56Qg8Y<45BB8AJ7(hpD*-pswGx~m zUNxAZphX=STxzGIMv;Q24fFb>?wn7FxX~;?K9XH21`NS)h|Rn?06x}VPg>E zu(4hSJKtbb9HV~OO=wEzmHkv8MeN|fLVBq<`Gtl431RxN}a3Uj@f~4p#!4*Rkgl068MfPT1Qw1pjLJl{f)D} zFi!T2-5K8tMX_+!65m{-`sZC#8eM}6 z*S{{!TN}#T#JGH%>~QC-&?_m>QfxxT;R}<+2l35g*Q3a?@Fq#!8ZUO><*sWV+;x>{ zME2LYjh@R5b?mR#Q1k4%%!;+noY4{e{i-%|#uaE`oO`ImVRG9!V|L99zC$o^DsPHR zml=bb**as)oH%Rt)Ed1)l$bJ9UY7gF=O9$R=D;N|wMsGuZecr$BDpz_`yj#bHTs}I zVkYS!ezv`Bnqy? z^;afiHx-$b3Gju>W4)EM@Yi=SSx}6Qx4_DiL@8&Z;Cv~4eOYO#9-q4#{&-R{+CjoN zHPv$!h|lZuW%<0_eVG}apF!^b>Qez`j`3x7^?A?m`7%76;HA^4p3?z$^*Y&($!*7+ei3BL@OGzbr1e*buTr>_ zvtTB@**^|Q_76Obb280xEG7~Ffc8Hcjbr zlA_p6@TJ(TwkboDpec5z!G3An{n=n#@Tj|&3`R~$u{{R+%wU}B`87jUV(RV;RGMOE z+op6>kb_Z7Pu+3F2+$FOk&RM7pkhkqeiQ@hCDyu za&==k?MbL zmj%2BUmV@UBV_1E;E^;QPR7CWer$(DaYVeLq497B?t^hpO_4@yk$J*7-ax%CClDR! zMFj)wmn@f(majcUXhrk=byhoD7x7r38%PfSEt zh+la(>uB$gT5ZmtPCHB~qzv5=Tj*Snvcoo2G z$w}-b_=*KJeths(&mlPy>Q8srIP%h`;iSYTCj&0Kp&{7#%ojWV=;3U+vH#Ik0}b8I z9SEvKpE+g1MB|YIss1#|N?4qU3cEe|6=72zoFTCdgx@rr%O>r~_2F4$Vxn3uZqg*J zHzAi#iT!&iLtgufi2Ynww)JD{s76Xux{as1Q@CpY&R1_=a%)ekS2<7)|489QNh#!^ zDK?z&o9;@=#6=Z}kU86O%qMr0BC8hF?;a8CT-SxxS0`-LC91{3q~ERsvyWso+}bF6qGULEz4h{c0E1 zgluz5Y!IapVPE6+9dWXL>@#Th5oYTu(4hT20vdpw_0=DA9Vos<{smeL`V;6t&~At) z1bR6rSw}AD!l3tnGCWoiSw*(dacR!fNt0>~RcxI76>9|JZmPj*4K~+c%&YocX0WFW z_O!v847SB!I}G-L!CDM<%wTCqyT;+OP3e@|x3TjK#=NV$s|;3Yun7jMF<7m^c#Nlh z?>5+94fd?Tcx0#UDD_TLx^>K8Sbo`<&o*UPnFix_pZd)<7$;!G1{!R%!MMq%am+Co zA3Ij;5raKuuxAZMg#qerD#m+_quMs%iR0+H;e0pdZj>@OA=%;!LPU@C)CYQI}om)yd!kzqi}uo)^L4o6P6b^`Vxm&D1@sHK-(1`zbwJ4C5@lC@#u_j)Fsh% zp}e&vo;4x7!TA(Ig|k9+7LN6{oooVwSOTq_A=7DLgebC#n_`A!krPoUuF+;+{=ix=;lKP9@Mq>AgU zhA`g!Y~14x=6xJ`5Xz(KpwO1P964G4``n`3dxbokWar>HaQZblW%!G8%y?}sx2$V( zAr6bb()@Ez&j~G9#~xI1?b=L`N6zG)au}w?V)DXt5dS|%Yrd?FBG#ekiXnXCdisT) zFvzdff@{*$8RK=yrMti6}}}y~OwL++-tpY{*cl6eh8Ra;Cs!QM!M+S6J=j zp$P6I{}ZX?fnSO>A<3UJO$M?OORpKS%+j3+JvdD)vxa)OIMQ!850eyfS@m-UZk^}( zcgv~vpV<^n7rIWb|>I zPLjFTK>LY1{?S0$=va7#gs^#X>-ed%R{A?^6OkwjdLM?m&J{kLyU?6xP}!~&Y*5Z~ z4NTg+zLllGs9%5sPCekCTtzOu^!q}R*DlsT*AiDhDO+7fsnAt-_&{^Q?;;Obdp0=d z$5v{ZZmSRKY4(W<;s+f~praHN=1y?Xak_W^Vj)BrbXX9g&{#e#0V3SudpWEDi7 zxEBANAKUu!l-B#-J+S8V!9g!j=I$cUCqQuy8mUJq^#gqr6lZv%%#`2XMaA_2{ScJy zux}*px`EOiTm6-wy%A1N9M0(e08M!K#9-IkrgTa;+3uzrY>vU^8|-0&{mx+ADbP6B zBs7lg27AX~Um1+0qVBkiQNNkCDc#C8SdPKC|E=x@8EmYp%=YWGO}YRXB~N4ruy25s z$TRq)i;db|OKTxNg7w9Nla($nSNcppP^0s79p`a|9gIGilZnAL96eG}b&wYo_&PNB z>->@^Wn|u>2oA>aZ}y=ItoXsNH}WhpzH9W(_>R$^#E)ey$*D$0VYokMsT!8$Jfnsu zbGFh@n|q*m@hAR!oY6&y{)ON3$|Qv1`*x_^$N3p=dCtpB)7z$K0@|rKIi) z*X+mQ$1?529Lsc)m+2%pQ?tN1HRKdWJURxQ4vGJ-%ri)XxNX6N_rV@^ua|R{O3A%} zVqTOJVd2;ILLh2*IwxNZFXv>!fUTG8`0bfLlhBUh@V0ziX} z%XtLC@yAQ^ek#rT4remg#JZdvioStUfv)j6nQ2@&%SO+_wfy(FYe8MmDJUkw_nWqrqkL*eO{jqN`@MCyhaIHizIli{M z<-|y+=^4d-{}%c>F%tQ#k=%5wRVXS#Z)QN012e)$GKy@zrpjt{g^Z5_hsB{SWJyM05{}IF5htz89?0Lg| zcuOUYeiwPA1%5kbiP!c%V#{QlmF_@SSmdo`iS5PlE{CRSocJ#CRukG>z8l|{cqcQ) zo#or`Wr??vmN(0H#hY=MdNgyymRbp8GCk07IdiFSGwd@0JkC@=3I*w*N|A98Y%%^jtkY!w6YYJu2 z2fL6cjOUWxN+c8K%1G-L@wJ(G8MA1M1iBXo+bjhX&X~e9qtuKr6Y(BoyWsMHaS; zYygWacE4thMb~AG$%;EUCmh-|CsKUFS~Le*d|Tq1$LI{aw>%#I_Igwg#I>Fnw+8bx z_7-lxaR1Ey>l!;>zYbVK{2;`;4qwo8TWb91&|S?wvm$B9-38&T3lH6zvaWH==skfK zk$5~2j8@9I`qO4FmO;Ct>rqwPTEbNrDLQ>oB105eo03==8fox@GFAMGOqBD{-Vtb| zJ2`WeZ$i&ylii7Da+}LJmvsk%nxLb}tsK$jIKo(dG)t?ux|Ji^jH3e#3NEG5CdXIn zxMIVlqXU>Kc1abCK^0((m{;Jm+7au@5yGhw%D+i9${vAWK`^WZUgx4kWli{?vKXgW ziyPo9dc=I^GbBeiV!iJ|4{5 z!S;JNbJ<(F=nOJ>0bZEJ{#8|Dpl-h#=~=RcjX!>{>;3D*ux-qm_+f~~9nM-Jp5oh3 z#D~kbhai9*Kiv6#b$+;;Ixj9*JO9yO!FvC_oJ*qX19=U{8>HesLWIS6TcrTjgknq9 zu{Q-`MaN`|i#pn4-iWMUkqAv6$}@n9L*!WOY2Aiv>XT#C9y zj_(*L-AfmxlwOJXwz0QybYNGr%R(A+<|&9xY8Jsb@syw|OY0rPWDdd_9Wo_v%E&DX z_2cVh$&EXjT(K4xeC1y%uvF(Mw3obcu`o0x2q zWXzjcT~>vTZ;1D#*CTUZk3TU6ECb%GZi;_97Q4f@VH{D$0tScG$aR>HT$>$ffgAED zy!=Wo&v}@NUIB&E4^beR|PlSUsRm3ztHUKa2y{d;o#E zpVIsb9|IDI4LHu{GGf7;O3Zsrc*o+G;exHVbrd9wB}g5&6avxL7wm4Qy?fy25#8i#eR(8O)E;$xK5JXxGvQ&{w0vIlEDW7koXO-az zhQe%A*xbK04`7=n~<@V7Sr!#{X zkiQ+fEn&4AS}V+MQ^44i)GaJB&^pbhq+sLRClUX=GbB_y0tp7KYv3O3CJ8~Dk5 zocZJJc^+Jc0?`jb_U^i~-U)!CkG}3yQpj^Co-qy&m^Zs-f4Z*mv@z?^v>Wz62Ib;c zBA;usxeLY#U5J6Kps(jh>WH?uBU^ z{(G%UJE9WA^Z-n6i0Sf7Cl2tWvf0~!qrEHI2!4%$D{c#uPU#7Q{Orx%*)wmfm^K41 zIZuIZYYGbU3|lu)d4^sj5~h>H$G3iN@NzRqe<~?e2K#5+OS8Jj9w#@1|A`dhu>jYf zu*XS1JSRUQD}-9vv*aeR+AG|()~l|dyMx55JIxd~E)qR%6%58YBJn29>PJhM6g)cv zIpWLKy#K+o|IxHszx2(;jg#)~igdwz(iJc8EWSjh`ji0_s%t@YgNy1=@^bAjN@OIti4 zdTkyrrsl$_2y%pknUZ-2uF3XvFY%t*(TgOUT(E$<8LWC0EC@8TZpLo;n}k;5@j6tDHsotJl7})6tE7MtYw1bikl6v&k*~SspnhEQs{sRgnVAZ6b zX?>Oc8|#sbv#j+{ko#K3Y-@rq9sOvqb#sSN)|L*PtoBgIs>OpnWr_14?`bFs=IdOv z18UBJn4s%2Xe0a#{fsxnOp)l#CT9O$$%05|6NSB`CI^{E0{%Qd%4)P z7?|ZAV!yyuX*bu6z<9?KLKWW2;U}JyCdpEfM(e82U=Ct0{{a%HZPAz?6!qb>;_Y9mq}|{=o*b9 z68hT!f4`A@=VJ))N}KF7is|nkxWS_G0WNDPU8JGS)aw9i;NaKd%`2^mEu=#1W07>| z>BdlSF@j&8l>H~I$6X8DldNGWLo7Df3)_vgR;OpUoEm1fIm%>d^c7RbL+!-O8MjF) zm^Vj`6*rzIj<1@GL3x^e(Hn15z?~~-cubZ@T&!Y6DJw^Sa`Yk z+DXfv-ph9P2eJ1}&9fFmJ>-QrVYt@%lWUcyI_1ye zhHdeE33g}tGFQO5(tW*qi}!77UCIU4*{P>_Ifku6!4^t5J>98Ln$*?xH*2>`M+mk# zZ42`<##+lo!$$kHOeO6g(x$_cPQ4z8<|Oys?2dm%Io^eG z-0z+5UW`mR{V%x>uTHOXaj0TLrV0&~W}4L>w_s=5EtwBK-h!O+$NLf-S%}SqIU6?0 zol>}(*esX}VG9a&mS8-ktOSNLHT*aVF+8zYRYGQBpk;V2D;q8p`=MjR^=sF4p3&BK zo>N^{rxaR8Q)XG;rvA-(wcQ0s;(X7O8Go~`^YykK_C02;>@dhG>KL{j>DbYFM@Ay1 z1+6V9yxUyMTq8V{)(a_3DbHm*D*ov9V#Hkox0Ok5Z*e{D8tj>5os~MoO2J@%tldJ- zl8g)&oTDKLF`7Wt1Mh>L?2&>~Y&zVvqoDE&PON`HT~?azYJ-xr|t_Z=wxbxBb*8v)QUuvda& zMH!ijW>F3bt#*R{1(f(6Q0Aip%J4c+u6(Ws<+P3!cBHqBbEvI^okRI}&>^5VfNle& zyHD)z)bYsg-`d|ZG4xD;{dCZqKso*5npY%X<7J>zVIKuL4fI;j>7ZN$LP8?q#hgm_ zr-9Pl*`RcH4k+DS3`%!HK>rVIUjiOwb-n*hW)i|AFo}SoqDF`<8dMNeFsPX@12ZrI z6jW4{C4iua7!pMbIAI7f{TRf$+tyN-R&Cwtj#U!YfTBdK;#R?>f7|3%OU=s!Uj zA9n(efpR7IIA}Z2CqRz?MPG;?4f-VL)1Y*>9F*?rLFsNiDBU%I(%nwbr$IU0JP*og zVmWA4N29s=deB?&eGlj|(1$_q1uY23t@rpuP<}6UzIQs`Upe1cV2DO*?#BKMcf&v* z2IX|e_b~*%J{urv3ZIuQS3L0{Zp|I75iGT?-V;684*#i+{0 z>!jNiCo3lyWqWaEw+la0I1n9B@CeeMPus2CSU2D? z*xQP|uh_p8+oRY>%!wv_qaBmqnxxoN#U4`Z5ydtt#u?Y-<9)@*zctwBihZS+2cxBl zH`_7!t)mn>R!aA2igCs^aonNUZx#ECVvi}dLa|kfZC30p#XeQ6S+O4!Yf)?% z=3bKz&h{oP*DCfa#ooYNYus&dOwblvxgnfdiu;N!(U$cUc)0nDzOQFq)WR#p&>M!vJ*87I10fUU46#RFl(qWFD3xD zPkP~X>a;2--GlBw`r+=?{3c>+;oixq6gSus)XW-p6*NP*t}lmc6d-AGSx= z?u+4qAyjnL?nAI9)TX`ghi8);9L=^3ye7CQi2sx4>`UJeFGAw`w>c>I3o?n>)p`hj zKOVFRkL!Div|?UbIzTH<{7fq*!}mY6+PnUXR?B9Vk3T%1wO^}6LvVjit7RiKH>{ji zOYfPjwulb!*S6Ju4QwR-+#ky)7v+Xgm)D@=*Aq>VW!4L{2=qiyY}%v=bD>In7ATuA z%e4=twpwEAx2Pe*xcil2*bq3_9~4`!*hawK}ktBdr74w931g8vL+zvM%o-M*P!uV3o5gQ6Y2SW_kC|G)tp}fP-t5 z1W!!{?m>`@V=}Nl>_&~cBq#1+xJRwxcR6@&hYMr0Ouj3pOsEtmf5InQANP+@@O?Qx zGnfkn>$G3n71;cfG2$9_&jChU3fQwPAB#Agwu}Bt)t_v+<4r*FFUxQ?7Mz$rol_xl z*34kb7Rr3E<(>h`!I$MgoGp+z2TbB@8E_kCUAQfo%L3DqY4YQc#j*@G-ZA+_9^YVd z6kDY37Ay9kVt-W(qpB0$-xYgTu@4mcQn7Co8-w;_;vMUlAp4!znfqKEy#n{kN;ln* z|2$sRlZ2Q>f&fhHW_|Z(}u*KO|xgEDn~ew^uh@P~G*pe3+*MOXm9k-g!miwxH+NbcPoa6037parC+de?A%C zSj#>+Je@5jwwCL}>dH+h^#^!iq6-q@{+9%p(J) z0wqgU6Mp6`tqdj1S{wPLrc zU$#r*mjkPD$Kljq&nUKBv3C@steJ85g<@YTR)BIc;dORQeyf*ay%ig%Searx&^LZZ zD)yXWe^)GICpnzN?AJqf?Z+@twZybd+c7NHy(O#MT^NC>iV) z8c@3lmNowHfbxNX1HB(+G-tJf2cON7Y9so@Y`Ema|I+pJywT zkOH9%Oai=homajt*bVYYEd=IXB;Jk>VtjXvJGicVG;MGxHh$OldqO4ka2-yT_Y_?Z17*hbi&>VxAD)f%}maSc-~_V5Hh?l?t38J;>F z4fmM&@LDN<13g`Fp7(o$*sd{9gp@k1OO zmkb3z9TbyC9G45l{SXJ|{*#0BaM060F9tmwlnsFCWqW40C_C$hTzBxL$!|?l3^9tW z->OxtPBE5+@%yl19B2*3f!2h_GB6l(Z?I;?xHK~u^J?4$9Fw1~B|6wKit+H*xI0_1 z-zm0Cu?X~7cRgP&@g;T^+2y^U8!uVA>o81bpWEfV!}jiE?Ig_3P>XF3%}p-hxNDc^ zCl_)IvC9jR3ps|^<(-oYIV9TUJ(COf!MB~2T=?Lj1boSbf29EumdS;W!xTy`;dnaW z(Xj}(`qTlBP6e$wv2@9Hpw*r2+c|XBy*|$miNWp2xMgq0jecCT;G-u+lnK3b71xxw zck!yI6*7)?;}elgg-XBhZu>0(!}j2=HtyuTYHyKmDB8y5!dFA7Ze1OFyrSdX!UtBM za|b~pZAC~;@=>k@2RzE01QtAqG*F&&$sd@Qg-jk+pEbF`nh#0r&VT;#(=gC4 zkDtZyG}QF`;c&SeZ3x5c`jFi~E?I1S7z^Z*1}Fgsg8{%}uY-p%t?{NTs3h21Fm0t6 zsM|YKx@X?$U~n`{Yn(C#!BXMTw5Gf7YH3-wkm*9@S-?t~o`+W}v9cYO-Xk_7mvE^n z<%FyB>lU(f=`vkt%kcG&TrN7-z{J+!F3sp6VbhWV|>8?$CV$|-}r9GpG4aigxBI$_3)$A?^@&1(IlVIm}l4ZNx*mW^&|_ z{T{)-k*SzNyH1Xb9!-g_)#7(H3OD^&b4S#4zP~oxTbTEYoGfpbypp`0Ieuv6^Fe)I zPX6iHX_jfM{M>WL$*UmMQ=yzrcOYn&)~!;I)NmLqBny>%3m)EQp=mIBuJ_rnnDWf$ z*1tqu_nSrss}$sF}Tu31Atx+KAYyo$ZB4bVT50zuB7Gj*+l1JhL{fvKuVNsAbz$ zN2c(2wN1AwN~Ey*O^~fxPX@nuD_pog_SfxstsgImT2`EWI0nilQUS`YG#s=aC};08 zL6P|QV9;|wfuW+TIMX}|bUY{uA*<-1q5ixPRsMvbNc<0%K_r7A=6#GfBEHq~0j;GHiJf1!qj4$#UjOWk>o2yu@ zVvj4vCu)qldc{^Nw%Y54*XWr17Vh~Mj5<%02pAOtaTH^;atqV}MJhk5zypE*Nc{?z zGuA-?P;JzHg)eZ7+zvMuSg%`NLQcS0g7(&!y>ZP)7d7(UO2^WF29|8cq{Y`cW+z&3 zXNR&sDIaUsiY6Lyf0j&a6baW^bWC>V2J8 zrEw!`pYXFcI8_l#UGWpNKX3yuBGv1$;0jZurk>Mzssr?R0&IKgV-_nsJd{JZ_S5eSK^xU7TnwVh>alSJIMLXZnG_>or^uk12gK zkXnd3aGQ9Ay*gG>A5L{XjMo5rM@rV<3Cqp6{IviPMJl&reI9A}BrE7$$0F@!Qr=%W zT5JHxg;H#V!IbZimX&Urkv35b;8aVecVlN&qkQasKR zvA@{S7pgK&1N`#VqA+YyT~UK$D^X!4%Zw`9yaJY2Y$-_hcq+wr3X zD9wJ*T8di=!NTF{zW@i`p+a_aZYs<=e?%2G8C*+7;kT>!9h`k8Ru1%=Uh;Rv($Kw} zHO9QIa}GS1-?0(^HxtJSaAx*N+3iFOp6dma%7n|r1$PXx6twz!|7A__Fp8@*d1RuO z7uLglACx=9%Duc-!s3Fka&;9IlLiZ^CKXFv{4ju6e?}1HqVDo&!TNjMr7cg!7(7de z*Z3{#y)632u9OTH{Ep22+H)+la+&4sNO6)BNAPGm?{pX^mxRi5H(UUw@uYh}TY$F-r0q_ka$Z!Xj0 zVrTy8pEk=fy-*6@mFT7zHrt9>CiB_J!a@%0=G(Lz3TAMCHphf$7w$p8R)Fr0{o-+S zAa3m6a6lAi{8*U5CyNgQjew2@<*J&I0E@E}xw>A2tPX9JmUn zZXu?JtLIlRPMCuQn#@tU!FYUOuq)KvRf^r9SVFPiDn@3B@%tCW9#d?EVyhG*f6v6* ztk@5VwJ655wQ<+YF_~4i!MMsc@sh(}Fb*jOyHv4>ip@~0O0kq;H!Jo>#U4~sOZHj%O*uNFqqZrk58NWw3Cckx(Vy7rZMP0_-aK$cFY@%X(0M)p=MzPxz zyGyZ06njFkerRjPZ-2++H+(QJoXDxJysZJ12QBi_2B$MH<=){UyK+ysFI0mb->-Oh zs@u&KQ2AK9mG5T6O5VYWDOXo*eP8FB8WmvLEnw4$rXnr!rVyW|pspSFH4XP7v8*|| zLQKMaOrz_6`2X`g$PsF4M?s*v?BD+}!dzHH=;>tLVQsK(vnG0a$wI;`MAC{Xi^bhXGApM~gomOTMog z-_R(;8ybNlyo3+MJzST8*!qDCmPnbz{EC!jW{L1TEhu(v9>^FAPh_Pr>0Ct2&iLlS z!SMak4`h5x=Xf?b2NxM$z`@ng@RxodgHK|d07h#Lt{IQA7UAoEdmw|ee-XmZTn(_? z%{S}DJOGusI^cSu?dqTmn6o;lmem2izs4UXT>Y_~bAf;vloPxBPQnCBLtjw#g;PL( z>3p+NdHB?f5`sCt8iP>PBm<@J|Vs|KZpJIPj z>`BF*RqQpzHY@glVjn5S>Da{UMaoUQWYHO{lVY5X4c1$+GQ~oQ@w$d_N8YpvZ<}JA zG!6EZVw^q=M(viyFQ-p~bytjfE)B-%)3`fLv2w)*D|V4$oKlTnpV#%9>zE+6YS>rj zIXWc zBgxwy6nDE~_J`4zc9E$7rD2g&BoHZWyw)4ViC1FVF1+Q$;H-ncs&DJLg2B19@j<^TX%`CXyqN<#Mf5GSGXtU2w`;{EFy`)cUu`k7bmGX zjP1o`{60XsqJfug{Fh%62IEbiz=+jAq-jqK+>_q1JY+bt3dJaglx za2AB~&p;Q2v%?Ssz9{T{H=4S@7cKdKtPwlZY2UQ>uaPPkL$%_1BI5#-p#?FB7>`6W=^gUGQA{0Y3 zRb4y<^&V%DBy0M|>>X2TO>8EJR+DLNlR46ykuJC>vwcm90 zqOcTLSRuQzU{M&)i>z+gos$fAh2buHci+7wd#m#UFTVBycgH1fH)p?a3=H@C3-icD_^Hti1LrL(|eO~Hnb3UH9v zu+97ZI}IOtaiGY<0I)(|;`9bzRxdrKg;W%EbPzr@G99Gk{&unYxat6+z(j)^@*bKBAULvvQ& zcf)odT)Hi=;Lqq-kTtoh@5+*u)g1#b)(4j}r=gNf%{js4%xe(xJe#-Gwa|85P|5-N zw_qzJ5kyh&4Vld!OIh3%v|mB)!X=x(--B{M$jAlq#{7wFH!7oYH5Kdx9z$>0Q-pE| zm8=h@hIZiLtGL3+E6RyN<=#!+O=wZ!@81qC*Q^IO@7=sRRJv(ir(o&pHx!qmuwO?u zHw8C;*jxfQH)M}XKmmnXpi#!yt~|Ba+FUT=Kj3Hd^pS%hxtG6umBG8#bLqE zJM0XH1>&&t&p1qu>I~6+W(iGwR9A5c;Y^ch$uKI9(wcD5O~m{WES+}yS*Jy=({6BD z^s`QjU8hBGTKuz4d%8~XTF|JTKkKxY>$E4F_WD_;y~Qc>m>ks$u6v8?1C~I)45z)} zwBNy<_Rnw%NwHD=#VJbE1Wa2gS9{pNhCKnkodk$OL}10Bf#@go_`_32qx!SI@V#*e zgC&OzWOw8uI+$27rU0EGVyEIDA$xMJ9Yot`SKS|0V_}t5b5bzAf@4}%b#XAUFKh16 zlw}*dcS>?_)^n8YhT*56eIxHMCq2#n_*`FBpl&CoUE7lkW4rlrU;)FX-R z>R|0&#vWKeRvdKg#VQ*y35<@};htgponXTc1<^$PKJ?*taB%Tp#!HOIRxWt;b^+P6 z2ds`&r~wo~a->hrD_#xRmsmUU5KV=d2{7YwL=WOctdiX&yAxk#Ny1RJH_Du9-^Q8T zTMy-A(Nyid$VN1kKLo?RJ73dx*p^uZqk0IZ0YxZq@f<37t-@YQmUATA`0P9c$6pcq zMb7G&F^8By>OQXN5wYtY1Q>YsW#l%nLf(-^RRtc~!twm0tW-CfNrxySUcPV&2m;XO z^$Z1`-3%|73isi4j)#$Mnc$%HGzgJF$W`Adg41jkFC$^N)`d5+lI5m2nwq_sM(l8Y z#IEQWgy!AK?KnHjbuzy$j1=MQIMwSRKC9VXRzRs`fFgDnJobi2vZ4S}X_0RJF+C05 zhkxc};h*z=3amIfY+tfFY**|H+H=1R+mm;N?Ha2hb)_$`;+nlJ;e6ETDy9l_J!m7R zIb8q26C&ZBOetOfD`5Qtdj~6wz_aW4o>&V;{U2bR>Kuf})$q73*sza|K8@KgaydrJ z{Bo2JhWlsN;>0W1@KXWW{&x|(roUJQ@kB|qJe5Bt<+~1KJhD^-dbRB97Az5Kjx$%$KS0m1;&3X72Jy}|TQ;ICXYcL-M zR@A+M1R{g811nM+U`&SbvRd7%Vj2t6CNYhH>2)!UhKU@?WOyV@Z;B}f(-tvBVB#5e zGK?axYZOzN9quZ3q++O?rrpW9rGSyanGxugOrAG2mYUi>mb|iHDQdpReI_G-}$heHEW$+_3mD*8O+| zALETHQ=XXLQL-!vRQP%rSv)W{z{oQ5a=}0+EK1xLz}MUOViDs=%6zcogI;8DPtdyx z|E)vwfg4s$;IXe@Vs$xfil3}fFB;iCHnMF&Xk>-QwL$M{6h;EgwQd_6ppzAZ?JM74 zMSaMSR@_FJgOD9<4B1z|Vqdom!fVL+xe z@ND!w_~n|5VeA$Y-`&PSWguPF~g9gvA%T zCc2r^wOgPi{E>S2osz_;SD(cJ$mwdOjp&G|4fZOw@4(_Caj?cNAG5JVNvwqgVny$W zEsJ`DvIy=XiB&kZdvO`P*bh8Nlouxnb5x)7lrHIWhayJrYe!y)*jDiTWVm1c! zpdHS|kejTS&5cE=*;p)I`%Oy=!{Mf+(A}aG43&^%kAm$2hMVn-yYEI4G!?VqOg*p* zUum_Om#pfJ?^Q)S2b=@bYRo=9QK4i^pD0Gj6@vv~x*j;5!ol>lQGE2ubxl{pbP4`^ zRvq>VYs3~@4>?ynzr+5QT<(Lb-ms_ci^3i-$gg(RwCPujn>3lyf#dMpC|^52tB{8$ zcrATaXfkhqg>mSIt2c0ehWMEVRYRGFjUhQg;$dS*?9c0%)BXnQ1Ai?}pUx`0EgjaN z>MFkeV#0e6ZpVoGVG9xoY`D+Y6%`?1Ij_PZE;SYYM%hE(}!?LN1T&&{*8=Qg2yOLZV!>}zyLJ$gJO)ztC*WYUzm3>lb5zb(R_Atk)?4j1W>GlQM0eGcDYGV5 z<36@|^Pc%LlBMP_n)xs#^=baCmOo$KFw9|MW=@`6sgEqO8N4M0dYBXkgZKo^nT^HG zE}QXAaq}$nce(LTlL|QmcBf&LYgxD9!1p3K^CkoJeksxs5++&3CyD>Bg{@5)$1-#v z%X+|frnS~;@5!@H^-S`T2TEqETm0>;*K&?)_mdR=@Z2lpw3qB=*So=~B>MItNCLU#Zcsg~oAcaan2H3ucslr5v5|u` zc$Vf?3C>8M@+t;}@gbhy;RsJEj}4BDZ7ScetViUmI)dnSiJx3iz&8rt=6c5aIk!PD zkt!N{qchZa=2_o)MtQb+_h>_$iBR}_AZ~I%@#9&A6GqXD$C3J+GLAa-+@v=Wmf!X0 zr=}x2?j*}R{4bYAe@O06Iqf~HiSxA>euc&pXg9ds`%)9Ta~rbQ?Kl{qF<~@tho>{8 zXPcWV?D;b!SMwzX9%Y!qn~>kp>V-d}+|}fqrDeL-Y=rr)U95}E!#=xKARXaw(jZ&k0SBuOsZ*wEj3i^)q!}=mCv${u*L@G`dZ>;V$3=o~#ErcJX;g`raTNiarkeSV3St!4e zapQ@sJZqPSIbp#JlBn+W=D^)4mgxx8eCxKhcF;N6x+9pv>WProGkEKr4(Y;@F=)c1 z%aP2}tdkJM<%o8lj45Msaxo5dNAo%f!~U5VhlZk{e#*+R`uSE_dwpgMx*SpWlNS0= zd#}~b7xdLa-r`%UOHQ7(Dd!(qa?4Q)vTfJuDP`DIGFyRIf0V@C*Wqf6^8bw?MYP?3ZA7h?Bx{zU6rbVZ||wv!ZM(0gK5dk@7nrfaxseBG^W zGNQcac~Scb>)=}n=dp}dH7ka?oLDnu+_Xv59Bk&;?c%JzWT9=NbsH%g6xs36f|Z{> zMVeJTp{iQKVlpwaL75-j%tR4qquAZ7Q9-6OWIAIGCrZzop4;9UpUY&h5f7I^Do0C+ z!MV*L9c2}+m5rMk71_yERhTM`U{EK7`FAOX6EF%FW?ZD5h!=q|vr1}NSbr2( zMp&M69`!&`f-8N~ZThUK)25_{gEz%NPDTYx95;3Hgh^FbN}+L*o+D1`tSod4RthKK z0n%YQqKo+2q-F+uvg|m`{aSn;oe{fpF37G;2M>yaF+Lw={4db8>5<8%h%hgwan5f& z=e_N#${uOGoxRs$mpAiX`WixWcMLY2=2sn(QTXQ(^Ukk!h5bo0E9YC-dlREj6-Ue6 zg|4U|Z%$`#Cm_S5a>7zM-rRKMv@Q0Br8qK6aYAM(a)_BCPRh~Rb2Cb80_u+?#&YFC zV5qoy#(TGQsF#^^?J6)b4I%z)*HE>WbIe442UiLZ3$?mbrdAROt0}+ zQ5m&xqfk3rtGZ^vFA#5cODauec&wwv+sPTJX7=5Bo(^AQrMjN=rBjn}{>#Sug#>Hn zLe_hOe4mJHx2e0XiEG&}xrX!Lfkw1{rh?s@^0<_a%k*NZHt{RBYBTMmDIA)(I1_W+ zL!f;)gvZPu9uX`=imZ|z&Rq|FIKTd`!Sd7|f|+${A&Y{cFmyJYf8&p;M7IMU?qTY1 zbc_(VXBm#`<=nIIu10@g+^&%8RtB7d&~Oh{3cTwX0l;-X9GZ1MeK#U>E?$Ov z(u)^!o#SiREXu+^&X4=5Eht=WJ50YdcRaaQ8h~WQL1B(R16m5Y6LcUbWv9*pEdh;y z&IBC_S_e7|Gzl65T>@GGx)c;~#D4=i0+ja<&H<&?ymLYC1x1464}zW#%C+`IpqoL* zf^tz!d9!Vx*hj^=fF2KuBBUH$oP+sfP|Cqw208|G8YsmbF9#ihJYESp3Umf2n|2lG zZj>b&Pkb+E4Jen2^FU7pjpP5bL2E%HpbJ3H0lg9Q63`?l_brP-uLZpqbOGpnppS#z z5BeeKBcRQoOF(^?4Q>YYgZ>7TdnFv1#;Hp9F3{^ie+&A1(BFfu1ic6JD^P~}4JhN` ztio{HVTtf4=&_*u=5pXk&@d?KEItJkhw||mpf7=PZB!2$1#JN3vTQXd7mn*ecY|&K z-3R(Q=uw!QH-erC%J0#jn?WxH-2yrT^li|yJ6P8Hpu<47g1!y+7*G44=X;=^yn)!hQcxP>Ht{G33|({PRqR)a z-K5wpian#)a>dpvwn4FX6r7Pzt&;|;Q!J_2BZ@tt*ha;g6x*iQCyE8K-FQ1WCckxzVm%Z)S+Tx~4N`1~ zVizcOv10QSo3GgIiruZ)pA>sov5kr~DfYf%+Z6L*tT*MC>zMo&^;sH>`YcWP6)VBF*COn$4#G38msiVab0 zm}1mdZTyZ?>?*}(DRzrucPPf2E5`3~#nvjeL9sU#dq*+OwZ`vW#fD=(HQ2e1$!}FF zHe0a;iY-#?0mU9ttWmL76njsxt%_w~UN-UOI3~Z^8-oQtUa!8Wnp*vCkCyLa{uoIZXNjjtTRE zV#g>pT(NT%n~wE}@jKHo`5}H6933>mcZr=N9m%^(M&dYT4CJeDM2nGwXCx563m3#H zpQqqg)ZS(LievU?v1CPV1oC*bJD0*y4B}fjfz1h~h6E@(Mo5yk|?GAMu`j_@p6Mwk`2Z)>m30RI0Z-AzP- zvLfpwAI#CZLAzA=!x{{0j+!JMpj>L?J}7B8E4)Q=JDzQZ_HONG4*HQl<_B zv5ScJHN4v`c8M26R;9W}Bz4O&L>I;jy(#;5Fd?Vn;(4sAaB~X(CSF(y91ymaXBaVBp1u=PABc(%9T( zE>3O3$V%Xu#^C1N&96RR1dEpS%dr)-Alp{b)OUR-DS_0zPU)Nx8}5QTNt&ymX^-9L zRN1EI*j|DSANqnNE1}Y^#opcUX;!$dW!{+(xTMy*;X#`+9F!^xdEdf;EsnKur5B=q zy9=g3o^Q(Fq;I$*P;&#-S5}n1HfL?$^+}s0z^vOZo0cF^qDfQwF=)pY?!!52ZqoMQ zGnDKPsU92wr_UqN4Q+Ho8{IH9S(LT}FA0v#JdeB{88#=56d?W}muHH_Fx@GpC`{Cx z47GYN-6bY66gUR>@ZyI8F2)r2eeKf)wKgV_j)2XiJg6yN3- z0vF({!ma1B0%y)TcfyRzCX|TPL1~2m^ zh(B3%h=oCq0M=75{^QZ;W-9iS*FCrMSWpo&X%ODcn{k1WqIS7UWGH8Su!whpXH&Oz+)SKqDo7<>tZvDh=wuwN@ zS6;(s>LjJ)zV4Eg`f$-9&DIK{ZFp;^=bZ$0;^{fv^7Am!8;(;sY%*PziOcKrPR=_a z?*!bz@cUgJ)r5@jLUc9%q`WA&#)sz}hyNSoM2)pvU zfqB2gzoYU7!F^{aW${rdOMbRDuV>!LNYW8`*X10NpOx#rpfeG{^Y5GP80Q>L96F1+ z8%pLPd)qDOHRQi^#}y0~99gu~?GIj-RxiKIZ;3a3`eFhaXL!&quQDOQor%DDsdwyB z)O(s=d6_vJFp49&yY@<~=H)^j%$QU_3yLNkoe<}_r}WcG+9R=%mF*rm%$k1H%(Uum zj<{VU*s#+C-C$#;-$=S*7a;({YURy1%laiojxM-loUZw=x`XkYHUG{0toHfdY_~yW z>ZNHCpNC=o9$uKK&W7B@{6ps7m!I9e4L6i=vXk8{KF`2~>H~!fg2*=Ym zAAI&S$FqBey|m8w6He>w=*`I+hL)GDZFCTt!hUTuzTyCF)YYNW2|fDH~?SuXz*3pU0uE^%Z+`3X=7_Af3*PiE`OCFW%5_44Q~uE4w~ez>Y!N& zi}A293|1K!$#b0wh=U*84o8*Y$s_{!8}8A;jA3$2F>uD9q#E`bVe9@l7w{dZLjnBV z0Z&FEIX|2V%3=64P;f*=lN>mb!fky5v=TTq(_uP@_XLfC^4y7BRcf9a4N4ySg`g`z z$vu4=bUf%spqGPw4SEGAFT6|#<;~EmLB}Fp*MQCfy$*#_yww{Y|mg6eEAz zxcf%2?-dK6UQAj#IVQinerK?LigiW37_6IPg4$HYdMj3@SV*zU6uUw(*1HKWq1e5O z{YkOEDMtPnefX_^D8?ftgY8l5N5$Hs{hK&CI3~aK3&l=QY`kKV6uVoodlY+AvA-!+ zgkEdnATP(Hg%^&yW?s1Bp3mLlt){Y=GTc3e`a-O^Ya-A;5*o0$b|#jFHKlfWQ6z!Ktt)Ks-4Zj|Kzm{dfpe% z`vLtY)@7A!3YF9+N8#@5%c0~TXF~>^Mi?$I`o%x>H0>^1^b&Vv_K%Aea!Y0pE27H4 zQN_WA?YW7+7e5Y%Sv3P%)`jf#kOwahJhQkrJtL8grA<|zmNenk3W7%@q2w?V1A=Ts zP&@8~yGY=r`ic}gEkvn1uXNL!5neuJG8tC$0mG{Q)a!(2|7Z_F;_B^Tk~rSUQekd; z6BL<9@)o$st1oS=+FsIFvMD)?`A?2=5@$)`f;=m-LIeK99mTv$W2u+cBgyIT1{EQ? zVa4{QhR<^G#5JOA9RcLPP53Nei9icDxajO)%jzhySSq1Y=gRH%QpSOomaveUa3v@U znMQt~LfmeQdCLoU^J531a_h6vjn4DR|L* zinnn}c`_C&3Ouu+4b&ZKtg^UCTM@QDL5P7RTsBv*s8C)*11myvP($mHmq?2=^r*K? z^a`O(;o>)<%a!)M9@V{*)eX^glOLyX*0t1(M5(wP291gr$hPM~AydoxjLQ`0N16Sl zp8e%O<@5aq%_9;mxiv!%9;lSZe;Zz6U2a+YOCRbtxajYvH=)2$&rZ?ff=5|asB~*! z@fVP-PrSsIa-ccy z{~Xa2G>yZiB))7v#rqPU<(rax=|jY}14oLM33OC3WTSWB(%62zfGu;o3^Q$N(q2e* zQ_Nm65~OK&V8v?~>}2;pC3!o8N5}}z>CEZ=>&r#UW#8Sof8U+rk%R@F6@swGnA9@S zGCJ6s5FUE$(u|b)a!p@Fc>DKN6z|7OOY5O!%F=Xt{^NME=%wulAvEAo9Z6onH^#k% z#AOtzuotgISvpyk_N?R8&*fJ}k~K1tNa%AO!j+_&NUMrA{W&AQCc!^5J|WLLkh11> zYZsDQNGTgvav_^ht6E9xmqU3#`_&o@|Npr>9_1a{2$Z^&Mfw_5Xc7B&#mf*A6gP~_ zln*})*s3COLxM2Pz@L#6zfw%=@b76@9r&zGFwH-jrVbcxhT+R=9S@VSErV&OU^R;U z6{d-TtyPSd1SYsGd6-<@z>$AAxHrP7FAVuV0=fN~f;+Uz}OE6Uk z_O@a?_lgO25=Ljq8*17I(kN@2uxUqqYN4q%f|`HIKh4a zlks~7OszRg*L2xmRmS;n)dN2JfO1!5enwTsBqJj~ZN{W&l_DJ8T1=js@-$EBc-bPx zP~68$7$xlv%43Sc(J#bNQ9A~b<~jXB7*pI2d91-?Y(??z)@<1XlO5|I%lC=IXAL8Oa0^qwvRWwLeVlJMC!GDs%TsA)o(g{^Pwf2Q zga4O#!d4hRBT1dE%VRUroX%sVxb4)YO^!t#M`yTC=kY9Y-yfW)1Lv`*O}&BZR%@Zg zy5tpu>6Vor0O!!K_fn`;whFiYOs{YisQnt{n17Hu`$*DoC3+G?-=O41+T8aj;~T68 zz#vG6YVyfeLBSTPAv3K6AM%}@;nrLsVP7x|RU?$m+XlvMq153o+vYDPKTx{>8SIAa zfp_R+GcWsK*<=FPxE4zS&dNxDd3%ouxJm3v4w8ND#5o_Zz?l6e`Mw5SX8){rg3Eiw z{s_rBwL349Z$3cd7Jj;VlVTSHlC_dwM-68S7VV0Ch!s6LA2HEvqvq$v{Pxd<^N zp`Mx%qY*h~>d4QaEE<*A9Jq@z1h?_0t2;CO>1sYt+;-7wHcg{-HM7~Uly@>%NV|20 z8?cT_^S|fj7k7Zw7Xh9_%Y2mOWkX7q9?Uila+WNWsE$F%}hh z>Co?sSR3$YMHW;%fr*&)FifqbcR6-aa(aF^r(HfY82R$Ea`H|?NA!C0uE^_=SMgt0 zB#Y9>nxB?Yk!IXwaZ=|CAIL~IE7PEv#mQoK>_IAch}gcZ{n_O0LR_@!;3@KC#+I(= zS>oqVDMT`NXUeyEA<2v==|)Xe%~Z&K3}i4^K5hH3w{{nb$nQmAU|P|(ov&QpwnG(b zmf6}Xt?iWkvdrSxEq2`xlI4GkZB+ZPIT^VClK%VmVU8A59cMwt-i#gqekQx*tZ}u} z1#vUGCuX!^nMxByY!O~)v&zZM_qETP{y(*Y2!ih?tuHqtGwuvwWS{o!BPJtVb?C=8J9r44>&HPH8;y z%;}a*e5rizpFNH-Je?(Pyu``g@%zTbVv)PmBy%DkcfW9JP^%Q`tDbtYeIErZ1F7|mC% z#WkbbPRqo08jdWy+JW~7c2QQg^-tU>8dMlYh4FWt;O}Jh#>r_N?9$CA-HwNen{?-n z$oGNE;w-T{4e^@Jy?b8GLtR5$d*oBx-6(F)xy}>dUAHl;vup90XvvSwa=Qe z$eeW3d3{RUr}Ij&Ol}C%F{j7vKZ{*DuWiR|jADVh4`jst-_~BAV!z6p!s$rU+5JrH zirQq??XQ%oP)^^-B?%Q*S15u`T9vZT_nS2x=P!N&vfU_k?#Xn>AwHm zd9xP|$eW8Qz3hLk(!s(hzzuHQ!lbK|Ldh0x%BStpReF}#9c;cT72AscsdJwze$rJv zQoavd)lspd;!{)A`%TgdQ)uXZuUUWmPb<+oB;^*O!%S5BXLbiRBgkwH#BTn#;rmMox-=t+=^Fl8 z?Aq2aXRAZeDj+O?pQl}Sa01fpBi(Vcz)EzN+3dKy9(AyxdZ)y67DPs5Gcb6gOZ;S1?8Ry-0}EX z*z1f0{R8MZpoLftB9WrweKhD)e4ht89rS$Azk^-?+5kERlv@bitvdzuQqWRRaGc}S zpyNTW0i6KKrP?IW6ezgV@%ur+&yT+k3J!n#L(rL^--2EX%4H7n81Ii!kl&mU_&v(` zz7>?xBp-mz2R#-IW&!94pmfi*Lmen@N7$e#(8ZveK~tdr09^vg9(gn94$#{{$?v`c zlu{{_`ZQ80H2H;-Zm>$n)^A;_!xBU8epWrAX4V;GFDIvKyUilr30Suyf{j5|uf8NUsRtx=43zl=NH{W9(j zQ;fI33`XTH#@ztL!iq%|o1oZa#jaMYMzNa}yG^kN6njXqZxs7pG2ZDiX*t|6`7Pe* zGT8BoMHQ=1>_WwOf6L^pMltq8gYiz62`{PGJBs~NvF{Y)3l7F_XY@Pcx2t3FTg8g? zR4k-eM6uC|jZti-V%3VRRcwP|A1d}Q#eC?yCM~&+$=tzm(x+H&b;p}mCLd*rg%lgB z*m%V#vuDDat=MYCc;aTl`&hBV*GY+Onzt$aj~NmyGgNI6#I)}k14iJv6mJ5 zM6n%;{adj;iXD!T%%tTg$K;3V7#BNHv9MxM#qLq;Ud5Ix_L5>-6njsx?TYPGEVsQI zFJ%Hu`SE6jNgs7r8mymU{S~`IvEM58q+-u1_L^dw75iMVuN1>3(}@>{3r@U8DR!)4 zCo0xQv8ZAdiv3BkhZS3?*jmN5Dn@|=lV9GKHf4b6$HDR)Q=V0zSWm@zDV9*|M#cW1 z*nNtnQ=TYXGj(32*fr{IsbaS(woI}66MbQf!W5amDUd>>kCQQEa(l zYZcp|*oTV!OR@f7{F**E&@uU~(Ta^xtV*$K6kDR$Zxp*nv3nI;uGmY89R>!2iT6my z|Vu|EB2CNT{^pIIovV%tv-sKs@Mp{Mk#icVzU&xL9v8l zzg6rHiY@Nq#=F!p;oj#cyc&7|Zf-8Zvc0tk@XVOKHr7nOBBObgpU`%Q<;E? z7b3v$hUN^c!yOlE6BHEmRZ#i!wMDpoh_?$Ml>DlAz}-X>iro_)c{h>aiPZqPniyEH z7Lmm&Z904Y+}#vxTyHm3)UBTfg{14!l3=*k=Nk;^GSS)Fv>TG5zQNI!`e`fA-QCjS zfZk0Nr44ibL8rr8J00#MB-+wg0kzp@N9?ymjyD}Xq$oodltJXxjUbrBccf+Iw1&(W z8l$C~=4>7W$3rq54@%-Y{(=ZgA}WgH#UL%&h`a^rc+hAkxCDtL|5{uREU`N`Q1=)N zs3M;ubQ(*^>2Yv5ra>zf2*3S2*6Pq{8*bY101UV_%5ruJeV{Lp`Zc6I!_)z8?}{a# zDvrZZ#9k#e2))xW`>n9OMZTim4Nx-s5m1K2x`^-mksunZ|Q?3zrKJ)~QIoMk^c2126fyde@dV%?p&SoaeJwHh0Dq(pW=thtdXo zHZ*6Kt_;Lh4odoN40|`AvSX!d=0G4^iWh>82?{#KQs^SgxhYwQJg($7BfTP)N>C;e z4RYdAyvYGc@G{7`<26`6^w7o`efuf6iaaG*{w?0%2(|Y(U*E}Bmh-h+zP!%YUitDl zU;9d5U|rAoBa=g^Ml_=Z2sS#_cytP} zDO>ac^Ak+2pg+nn&Qv+Z+SSB@UGq!jmJ>oSqR)7c>rU?M7VVJfS@zh(DJ13*7lE#;wm^LWU;? z@pWnkycj|;C;NG)(+Khmo;B`@2;TNYELi$jOv1_zo=$FzZ#U2z-jaqzU6LMnpyz;+g?cXNH=uM!mN>u92F2JA9}Y@<9GaV&{?2dXv_emu=!P>+dxq!@$HU%FXWTT2n?&5Ccg-|8*GYW>!*r3#~m2y zV)Bc^P~+}y#r~x39#-sS#a>hFc$Am%d!l3VLp8XIov9eb293K5730-MgONc^li%W% zMuR=0*h`TSI zQS1oRfeG(u$KUXC zs*Afus8@w=U{=_Ce4zo$ozI}}CAa1mi65|l1*a5EHFYLQ@C7blBZ2Vl=MV!Iuv?l> zhN~K=1c686D3rSRXlI4EzC6`0tNB>t{a6{|5cjtv-Dc{L4`(@|iB35B| zOyWN+9fQfN3hyecZp~9J8~BVT6yPvdc-6CO#73@Gos00CYoRC<;=9|%Bga7pA!;POH8=TTr%Kzj)kA|GYb>0 zIn2W3S{d&tAjhx~I{rIL##>P*QGHcSRXP|JxcT)EZybqCYF;z~s$dyI+L9^ZL}7%c z(?jNw;)w#QM@lG9JKyQJ_nTmuc=j;!yGuM!+|5laCqXkK&zLxFR?WmI=BS@#)m8kg zvbcWg3G;!}X{4n$+SraPOcpHAertYLPkz}XUX>!D3MCB_wJWShDQbcTz&J1@}P5n z1p+xk96gRYFF>1Xmzl#hbN#QyWv)cWx!%no=W?;y|DQ-9!YwSs*oboA9IQ;n$yjUlQ3(J=M|XE(@lx`U5j90-Vt@yUksmhYd~!Rs%Ky+?A#ywP#m2s0J^{d zPXxpU+z0e{P?Se}1SqHJ(V!S{;#Yy* zphH3b1Ud|qO|}A*)7=ylika?cGFm;=W% zQ*5hZI~Cid*gnNj%}yLgIi@`8Sj9MLn)LNijD6i;R2gH^$D2n6o2eMJ1Q=|IV$>I4 zFzO31etDbOVD*ZovawofsNm@6&s}3 z2*pMzR;}1<#qLq;Ud0|&>~D&V!3b;eOYIXT-u>?A*Y0G+Wb)`16tnt5_Bln)9eDd{ z+zsCot=x{c+amUwU_*0m1Xrf*4@1dVajzG6O&@b_&qxy7GVm(EQ(Guk_q`2Mmf}4~ z-f0d6o+)Tqg;$I=2TQ-M`Yc$oAz1Qtas;?GuO+W7-j4Vz`_|&|NQsS?kHAjBt3#zL zBbBQ{scGLtd~_w$O>z!72l-?7wje`GL2iu!(MU*O(} zHmQ56*D_dvt${nQdMBFilx5zDek}=KNRy-{Ikwlx#1Dlv7cji_2(M)=yh>=)O_2D> z558p7`${OSlYrsr9rSwUjNuJ2;UTQ*r;;We3_FrogK7Q?a3_Z$6EPcl=_1f@H?r@$ zhSit8Kg4Epkn%-gph#H0ZrZ)yL=vBSY95K$ zh^Rb?cv{v*6F(Kqv13^D^aonZOavP~&K}%;Qm>IM^-&ZWb0S#+_igb>ZrQ;@Pp1K; zd{;6rYeU7yLeqPwxYwOmG`4eAeX+_tcws$No{N`WqYXd#D(b!qEcpXm_x;>is@bu> zjs!b*USiuZ&tcNwD{$oveZRw26o?)4x@?-Gc7`k~(hHJ5dtEhTSWTwYkfqsccgwQIEc|9oyKKgU>7%ckIa!u? zr`32wMG}|Txcx1>yF+23dSy=JWZ7`tDw_%Gy{y}6Lchyzr)io1lRF9D7k|YHkt@1)n@T?>#HJ8}a>({$wacz<<`t7Iy?Xv2r4hID< zP>8o1vdSz^)`8ZmT+4FE6=`O1J7MCiapq|Nu3V`FhdSBG+u_QUtN_dU(9;jt>7J{k z)Q&rk*sPi>$2mpIKt}>fvjffhORVp&5e8JV;YR0DDTU7XGFJx8qaVD*`k_QZ#!-1; zG3$gOkHx#Z?UoYC`qo*yL*_PfzbMxEki7iQ5EMgBNZQ zgHtO>p!I!X?bS^O7z)x%gt5gMjvx&uNV*oFFvf_-2x_oQFs_=*3(FXYe1GgoZv-J>CmKRhpt z&%E|I+4))J`Tn21I>xoVqzqz-X(?1A!^$c?ov8*hHl1Sk#xm>X0YJ0nCR*UG{Kj|M*@rOeICO!?klaF?7#nRKwL7>=qW$F^77Qt-yNL31AO zV*ekmN^v<#o>JR<)BQiuwMx*bZ!y?*?p|2U-)cOizbs^36W!#h;sR?kU+{ zINYY)W?a3X6$DY;TSh1Em+#s>todxbc9NCfo>JO}WL(4ed6|4B<}8W)z!&4llw#2z zxXK5KZTP>=ItM!Pech~c@6T!JU|FYpW@gq;&B(eJBfoe4hhUI*feuAv+z%tKIrCYb zt~rNz+vRleo}Y7cenERzA0jvtX3XQDIs;*MltK1YvsXTfaq)Vv-f!g@icg%pDK%q; z4WmJp5@RcK}x4D!p9flx>}>-q(p`( z&qp|lavxK{PwN)%t=4kuNzYp{Jn;Rd-i|xwWHcL)d~=UnE)3@J;%`BQI?S2km&q=c zWSTdDS|@ux8d>Y1#hVxcg_AvSE)kKz#JMd0v%?5$`8AQ|WL4&-99>X~sfl&R31{Y1P)`{-o)7vDP^2~fPf)ts0eUGY z8{;@obQw8-;rLUD?=sLSpln=|L5Diu><0Wk*ZIB$bSl0d0KEeA1yF{|1zZ&#vM6U#vKoQ z48{W=gYm$}U_9_Km>1=1FdoSn>@dZ6EN8G^DpsNxZyy-HrHcJZu^SYlPFv%Sye1Rg z3dL3_wpp>a6#GcAPZjf^?oD{vjtOO|SQo{vQ*5qcJo+(y?^5hZ#hz7cm0~;^G->`+ zv1Y}-SL_GHI{Dl<4s%R?>uSY#Tfl_J`#L5qH!JoR#U4}a1;th<_JLv_DfXpe-zb)s z?Z&}ZVNAT!730kSgDp~Qv0{HxjBmFXch4xcT(Nf)`=?^OjcoGvg>`U~MT!+G)?2ZDij^rA zQf#bZ;}x5(*i6Oh6iYpggn|eG? zbf@cOvIiT5 zr7OsK1H+E|R+qb(!MwY{1EI`NX?;~Q6e5aF(N{ys!C>ePHw@iW{#*t?-rYUm-Q5!* z@AZd*IZLC7wT5^1Wnl4GxG=n39Ny04S?*Mx>W+twzy5|}cj>AUr2P{7`S_Zf!!^TT zAg8xqVT5XXddnSDKJ0sfa>rzTt$1Zzh0PLn2G?-dgQwSU++CzuWyP|_jv=IC2`1qA z53Dl2)NCG}Hv9V3Q2uhRYNv0t8{?kA{K_PjtMFYWz!wMRw=rp4{+nM<9J#uuv27QR z2V-W%;gt+R^IChx%F*npV5#k=XeRz!?DQyXmYaZ1-5Lf0pk) z2iW!Su=NSC9V$uWHE)x|M{&$KG$XV$=VX<*@2cCqdig%^j^`e+tH8qBaEy3h++Q&B zPf^;817knb*(13YcRAcujEDJvyPB!6Xtk^1R)^_kapS1j@E8~b&ub63)rqS`+tx~N zY*=iSt@bliieCf^HjNP;QDc^|m!TK;$37qLz!oF-d%H!>12fIbFI~2Q5F*YURw^6ZI6x*WMdy4(27+31XZ;4~dvrblwdry2b1y+3B_wz6w>Dr6Oxl+DoAYrvTS-E1|$mb zQT>Z)Z&FAPPdY8dCtg3=j+(UW?V;q8v^SRy?8ee{H622wFYxMPU_lFA+`>?)p!(>< zUSBMQ)hR;}5)FjwBgq6+95;7!?k2!dH4gmHUAT_0X@^i>3oLj501^xl_oTd5l^U}9 zp&u|qS9f$md%gfJn)BT+ENk$Vms|-+%Dt0BOF>P0$F}*1L`#19E1&6e!$FFu&>1=P zA(iH>EVLA>@9XOlK3GhGIryA~qF$TeZ5RJKd0q>sC1sL)fu$EpN+EE;P-d^;;vqso zFdQAPmgkzrt*V5FG3bmw>u#9N!JkhKeJFI|v!2Gk!^PBqe=)`Y`x5_hF!0HX_Z-)K z){#isL@^x?(*!Y{4ig3r*j@{hk(x(xWl^#K$bdEnc=rLr@MbLnE$9J*{4y6MRnRk7 zJ#Nau#p90?FH=RPIlV$TE@N>q#fV9}Gn9#=yUZJmySs@Ka>{1f^jPo^92p%4(Q5ih zFGz~yo9yBu@l)&BpK-}kK3N5z1k#V@v|>~-P_Amult3n8zBcMchoAsBF`2-{(vcq% zGbSc#z$n89#e!Vb8^T=!#_Ad2aq>#(V%D63PJTE~d<}dT{@fqypdK^AkpMn+z@CVM zWpgqp%sdbl23KEDEDeQmH4XH1e9s0Y11kwy3VJJO5cF@LgFs&b4TG)$jex!h8U_6j zbSUUfP_(@GUeFk54$^}*DGypBuK2O|9tHXfP~fPHtpWk)d)iXgTP3&|iU8 zg4Tkf$HdvT$WZEq@NY+}Hw+}2j4}#?!H3uyWfTURrPxyS%iI~i%M`m`vDJz-D)xqA zTNGm*m^i*u>~N&hU=(yRaonlc?-VN=#o-he;Qk+LZvq%)b+wPblbMh(2~L8DNKqn0 zi^K)R1w}CvCNjZ^EP@7#1PCA~n~*3f%U}{9z6@gBXzPMYU0U}lVyl<{0|5jB){5FH zBCSBwB3c^|&Hs7Mecv;a5c~D}{=d<1?tR|7@Auqu&+Xa?1!{k=4Lsyg+5sDGNGo5}4yt-`bkWZ{Y;bzCD2^yRoXvDmvvD@r(6+ zYmHA22Bc#hd5j}OXT?y6KKy4o_$#2TufQw;hOM}@2!GRi;ve~$4nAo{+02QPN+-@N zy(Sncy&}TH+yU7yjxbw~!Wm_<6f8o#DMpcjLl3(5{~A?T%`=mhNB zQ8aoh9~3Jrk;&s=SpYj4rEqd*gR*0=YzBd{fl?EIX`nQj)sn%uS~A$p>h3nh>J@ui zvHX#odSlP#T99~J!@jr=-z+?BnJl(dJuArO5UzPJw;!B@Yu?ChLMp?thYlh`5Stkj zj=lawt{6*-?Is|2o#ktg2)4=jfz^w0(Q=yQ-&`-RXdZ<3NbFHI&!vlY;$!8l-O$h$ z;e|3Qg3E#X@I7QdgW84lmE7GD+oek=6*eUt>sCpDu(_K;xgpdx=JI7ovmNXbj@`E# z398$Tdu_1>n1Zjf@nMTyXxH)4!=PPTw>t}V$z{mCs@oa{5b|EtC4|=;Q?W^J%)}Ei zYgh=OK)4=z@-C5BHA6*gec%?!zAB3%W4#a?<0!&wncyIpt$WDkA-rWTZbI8HwBvYp zGv^bq?SxwWuI z?04dGMk>Bj?FfYqp1v3oy=B_Y?2Xmt^pfQ>%f)~^rLy6#)sB=Fzgw@X!Co(t) zLDnC`r?_&R6!Hns76=?VURr$!mo4XriCVdUwTuS4Ed?V(*!w}{TA8kaJRGRH0nMp$ zEeGY|!1C*0*;KXs36ua^SvYn-Cls{f7f<7gt{YrQ1BxHbTKpm$K`75_FK&Rzi5%|> z!8KcIxNPlFIL8%J-nn#T;=*N%nW*a8^5ZMtSiFiQUEV$tTl{A@Z9FHidU3yQEN`&~ zms$XPnBG&oc$j9*<#2pSJ+7oK_1Y44Vc)&H2~lXj?e?_FA5+5iyS!5Ev~wl_;%+|= z+8ZFI>5DgATN^*pyDIf<*5{E?+tI?7rFKI#ge&)ZD*oyuFJdyxs&NV%H$?FoZ@X}8 zaXHcx_TuV9jBO%}v7i^P<|b;kY%wE+N0tKf4yUYWlOp*D2}D-z#6tTYLHkFDJa!Mq zma{zV2I1DN_3&Mry3fql2-ittoaS`xmks^A^W*}G)|0?;lOK) z-$4CLMs~*8i`T$dBjXOjEsjE3aYX;a745NLkL;(Ks{Y@LW$1n`i3+Q~TQD3k6s|&Q zvzgj#No{s%A2&fGcO#!{QHgXR&ZUyJz-x$da*af9OPnK|{Q93ieYG66fXc~`anFK3;Y!|4y40e22FpbZ%Tm&p- z-nsFYN5#s~bwVhzP~YYdT$k7*awBMVf}{CPL@mx@E$)8<5r{*+pX@j+47~L&*~9RQ z$z}}PPGrYK?uYKb4~Af@@caI|0{HlaZ|8|rS) zTG*%19)umG^z0)0L^hl#VjAI=pIc|{2*6tj(uAE(ir|?kNh#-7<_;-D!iR>cC+1EJ zRBuK4?Dau=8*X*ieVUe6_p5)e<(z=|Ex4!-VqwteYj0|t9$a*IVE}xev^6M&g^kw* z?ajeIGM9CS(}MPn;JbS&_bhxp3LtMw;03-$6`EQ*9B%6lXHBhp9yn)Ja2d-etCX44V(5_aO|@%7pGXf*j~@N%3QMz%wfpD4ym*8^3@K6h}%x<11~fP zd22J?=c+rBHQBqPaUevx?Reh0LVI0dUL6Hr5q!$8{(U$Y>*NW%wFQBvql!3#w;Kqk zu_Gc5=HU^e`I*7MYda?g@dz2dhwO(rJ`~~>)kLrsc4B}mw6_M|#JZ~4kw zmGg3^q@bs8U=6IUeiq@PBeCB=8wG|~4wfPICiEW$fES$HCScz$!{^QgBke88rwDQ4zOr4vx3bV_rC8trHEPulE3)6HJkr^pTEYN++|Gglvp|`wYrM<3NDQZ*0X_y)2Ouu4Jk4m|X|bCg zXDvZB4!bdYM4%RdYf2vTaP1kkoh2+pow=kfhva(*D@wFz3@t%K#qzh8Ra-q-cZ+3s zTD}X|(#7xLU+j$*mmnF=NHwHOUcCfRS=X-au(u|iwG!j1S!JprOO1GfrDLyKe>~#Y zfYkeh3$Q+iro+H?q5JqO9+`|0({z|9X5zEBUws^V32<3b@QQ+9K8!nWiRtGstrye9 zFl`kR#ipnz%qJpF&x+sYff-E*JiIohk=U6T-3gmv`m^}>947O1Y^rOT4bw~A8Qyn_ z4a1to_?Q9H!{V2USQm-u?ljl$@6>cJa$O}~3$b}};!x9jFq!APCuLxwk`h8vgfsLg z_|yGcafT}3Di7aBgU;v)gZx@-91T;Yt$iaoEQvkhb+Tt<(O)Nlbk5*m5Bc^uWSCKK zYx$%(=Edy-Vbf#Cz;BJ;mEa8^1r(`C$7YWKCj`LXbL<{@%ACh*$B3D8k4aBPwvho{ zBlc^Nnrmpax|!6#BzGMXPiGg%Gq@c1uF(Qf)y4MCh7OwagOf5H3rEG;uQ0GWS>K)z@m`09$?VHC=`2*2Yls{H6XVSm| zKK<18X;>JJ6SCEO@VU5RT6yWTnYTcAny-WK-0LgJ$M>F-QEJ8DJw1i98J~xW1qhIm1llEr5edhkPH8ENQd^?4WDMwyA>Hfr<_5EYQ|^w2#RsgN>Ti zjPaY*#2&@7T9dbu)S#z_HQ&?O>YkFHLf&}3bdI@`dBM9N`yg_6jh8;Vr?UlLE?-fU z6DlT~@}sL4Pfv8PRyQwLPaNb9N%SY6C1pq(oq>d#B;=iAVr7 zBV%pcj!gdnl8o7t=9J1!Urp*an2yOxPJ}dr17~TX&v2mWC>3zO=M3vU3^g0Y_fX)Y z>Dl^O24nbwBa1cXs;h^YY;us;4J2`cMnaask^SWrsg!>r7p$xgtS_;+UhiE2_eLPt zbm&Pk-Lwk(Jg{3sJSjLP*@^L&YZRk}e2eEK%nU_XtNap*vHxwoDanuE`*{2z3~2-T zGG5Ltl?hi8QH)9e&mO-R9+nDb7o!3irASX`*U5T9+OF}X#hT=sEZva!K11#%6~VWg zCARu<`Nna*bn^JJ@|n;hbnb;x(d?u@NP(B5NRC4`&E(FCxJd@7Zs=VJ!S!=65@-6N zHQw_xX0+=JIqr7ebMT^2-=806jivyrbv7J)-^0{IHnNGsA1Y*$OpZV@Dwq$$?fmrs~bWYki95KOR#ju!wqm)4NQam#ekGJv~Xe*+kqH{BD z#J?w@v^zq8ggT5)XxHA`9`@{vGux#DO^33kY_Gpv7LtSq$}+v(P%WnnZ1?lb_7}Q! z(*t4t8h`9TXG-aem^9tY#wb}+l9bQH1nS|;Q8<$3S#vPa@=487d7qM9hV5;ZIINdb zJ~OW;rgc^ei<>H+F;b>|Cu1Xtr7pg|E%#qZSWBnzTkoVedZSRhOAg~rirkDd@HWMnDC|BN zMG)F4fT}2;pUV<+zi;Y{$js|qEnIAwhotkgz069q3iJUq=!>LPu*;n*U8|FohG!wz zQrO+{1nZ39#xK2vgUTs_b&!_BNvEIK`&bmp$-=)maGhwsGb@ZR4_6*t#N`O-{YB0mjPsU6Q+WBq`o{gb}6Ky(bX%7A>@mG$&JMp&^e{9lS@z)K1r;<{6#Xxv) zeoUY9!;OpHkVRr*84F`)`(nFb0Wh;{3moOx0Yynw0S~v#D-AgVTOM{%qNo=zM`S6n z_2Gv;_|QVgiCY(bkS#P)&_aDxCw$0fQ1ZduQpj1fqRuvfVX$|x*WuVL(d~FIBc~^_ zf%z8#PVNet7eH1a*geAqmZv1#h2VK;M%l8C;L2i%hbs%dB*7lZ)r33?p{og=f*(Z8 zoZyFebS6S0%g)}77}&QFu};fODcW~y{5&*+A?yZ+@Yj@rf1Drps5z)=E``5va0D66 zgMBjSWuP-b=YgW2qA}1Jpbt8B?#*t6o$I#w{Ejf9_@83*RiIpe)PSaY%`*#mp!dK| zmgq`QuB9FV<)rik=+~f+f%5r>$3eLdAnwI-g6^_FY3~90G$@zd&wx$<{T=93(C0w8 zlmh=R`XcBHps$0z2>K@IOQ3b2FN1CbeFbzY=&PW7dTKT35zyB_Q!$~g0p-LB24R%@ zuD3u(f^Gnv4Z0cheo!1+M)`QlcF;e9z6-hq^b^o`KzDf%|pcJjn1brX01L&uq$ANNB+YyvvOUHv= z2igU6C1^L$$3Ra6ebKRR0__evK+gm12YL}`J}9mcMN2?01w9kR^C#rN z98lBbmvy4SCOKbm1w!3bD0aVMzgFx?#eS#Q9~E1x*cQdmIwS>tkw`M}exq2kxSs}viq*aXEUE5-{tCcOI;dq%P66yp;g#vPydF!}gOu|tY=##m_Fb#+Wo z^{rS~F+Sp9-0@L26CN+^7>v((7_3UMrHZXo>_NqNX~+0os~8^uG1zv+zE!MAv91_j zjk{AE6LbOqW;!N3AEDTVid~}ERf-K)>~Y1OQtS_kaRxDY z<7FI^-@hq#Sg{`zI~8+)ad(^FbHbk*|6yswbCXS~R`@LcVF*lg-2013b#S1zH zo2A$a#qL$?4aI5|n}a#S_`St3`K?OD_^gIW%QK2Srx>5rFn;;0hHEMD+kn zLryM^%{-Y(ih6}&zA)sO>??76czX_1#h2CB9Y}ZdYE{-kwjr<_D=}+eV0G2GKj6$3 z$Fh0#o-1wDbB&wsH#2)k&#I%HAX=hV;@9gNsNs>#X0Q>=Z(i{vLwMZ0UV3&qnk>c5Q5-D zRfH%i3ZTk7%{~z^L$TNX^s3qg3@?<9xa;y7JXbTLBhs7kuP;5XA@IVE{cplMFK?y8 z#s24EK?sGG9k6#u$@$`dnD?~0CU3EKW2CGedCEZmAy0DYMLZIy$7I6K2za9_uRf7h z`^1pF4xtBvb^Froy2{;YH=OX ztCd;_tRCDPSe=qr52U`aJ&fj4A{S7a)x4p<#4zu9YR-bZ&3#eRK8md!hXZe=z$>B} zg!-??VQj=(kmVF7qRT<*LsoLh`8+5r6rWRa`0iuXCzo8rjxh!Z7_t4O7X{wB36X64 zRo*)2g)3_)_72N|w9BwUdxK~*bFbG01FJh0$A)_XtJl>YNNw1cn+CZh$SX{)+wGm~ zt%rL5NT^R>HANVbq4SC=Yf~cqH_m%2L>WHn?BZ2wX#Iz1)HG@@JB_738EW(2Duy!G zwe2EyU9mUV>r&sma^@8A=BJ_cNG{O1U=ODeOqV<+%F<2?L7!V-ZD-a8?h!0F9l4M6 z_@0HISLYd+%fjmMy?{rJl*4{@Ujxw9{#CGEdUWA9`$T&SqOj2D>3Ij6#EH@*0&9=^ z<59FGJ1uWVq--6;J&L^>s8p_c=YsA`8f$;EM8`D3wmMzns%s3>%&(1?hV6Pg&2EU; zn~|}~!$%jKif@s0F9r$mDs|{%w@CNq)gkAN8BC?eCl08c&g1r3$fe{!wOWc(tIg}6 zhYX?^Igs%Pru1(JEPDdukF+dQc;%aH%f5<{Y*F3q0DCrjCYn-jM4$u9e;iYe6PGBd z)(tBdoo}TCs{f3otUHnfs_%lk$~P%&g->_T(_7V)!b19nbj_=e1=A~=j=yCdT4|FSWdre-a; z0X^Nvfy9YLQd(@wV=PX0uWxfCYc&U;(H%3A1)DdZwTJrumaTf;!%m~KO!GeV|8}Q9HU9smYf;hT&?HHhC;|_T zE&auMWZY2~csopYh!hID+;seTtyOAzMos%+GVXZ#I0JupogO2yG4Vc;G3BW#A0`vt z5ST7Xr;N&2n689hpGAcigC&&j^((K@O%Uu%HC>>lh?+`aGU43pjE@gsDwdGRA2X)2VKQH-Bq1W<*8Qa>dc7={!KVQUl4A z6WDTm^H^8#+z>}kljeejoP2BSJ@A5u>1nLTnq;oMIHyU;ch~!SDy#xY7bSNXEjer= ztRzt+Js;u9-t?jy`I(#OwJ@Kmr+ZFRP|rAXT1ELJszWy^WHwHO({5-p?1dEcpsL31 zVxOFn13queGZ|@dpL;RSE%R)dYy89&^Qn?sObiyeQQ#Nj-2d02%kp^GsFZ{%I^FoD zh?~FTRKq-s(tzFt-Y$a4ii)2m?T&)(jLsJt{ zEE6Y9D<9u7Qyi3bNTfNMFtVvBtC9gBGbV&WHYTH#Krsn1_T%AaK=$B~bg$=#a!5p` z;84O~Nc*5b^E~Sc2ytYBEq=Ph!-h3VzR$#W7Mzj!dQUJ6bFfntz;$Au3!mn77#;y! zA=rErst=VtDXDPHi#QbNX@>?6rm}=XC6F(ob6Qq|bq%n@k-5=SK4t3lQ%WbeB3>*J z^Wc2M>VdYAC_YE8`OI64W4DgRNE^6QqGFr)hu9zSY(%zxo^;gqa1SJ?{Zu@SlW`V~ za8u-fIrT)Gyd4*<$#B}B$0|+eFT8_kw$?$4^l2#|9!Qcy%&S%jeTTCpX11Q$^6hbD?g#a{=B zg?wG|l-XqXovI0wV@W<+AL%dYk)9E2M9v6P6)H+lZbfN z&ScF*9FT~UpFWa^(-!^SdlK|NIJsl|nSQ@}mr`$-ymB~|i8m;y4rmH8R{q+B3I;A@xa%|dJR zWnKuG4fhy)V8OYim=`cKGj{ffunZ>Dk~knc2X;()Gs!b$~`UEz|#_d^6)6yP1(?%8(K~rUBnkjUJqfzq3s2?UO6G zt@`<;gx*(5i*4#ov75$wOa@b{vNPHv_|r1ZK`nKJZc<-nD%#M1Y}5Bmq8UtQtgCoM z(rubeVmD2*TT-=4udCdf5kh!b?b>CgFC-j9p0)j?fhu?=$RPX66Mf3KOBXwm$1EUH-oCTFpixj z;}~Uy+NUIkz!Wn#>m`H>B*n}jQ@qg$)#SKkYL6L{s|z?ccLPmo|E>e$!g~O%)CtEce2qXDK0?n7Kwa3+WW`~QUKMQVj z=dhXX5qocOXDZTNPwc?_{fZ>&m~1Z@@_)$oH8RU5vOPlVCfhw)H-jbViD~G6F^W)A z8WlbySGL=90}@|i6yeM3oV3^slf~?0uJA2>DkB3A*Cl2`Kh|z-5B@Jpq~~iNG;0ih zn~C_nxHWS#Tbt_+SD zF|BmzssD#o+Dk%Al-22CH?72deUAfk@*jnsqHIjgk4rn}m!xKv?TT|e1)I3~reG6g zj8?(Sy`6K5f1t=IJq@r;0j3x6fqS$eo}@h*rH0n%hvYpOrGRSnON%{M@{@gLLzI$` z4BCgnb${Hau0(xa0^qL>-rF+DV$TJ=6!>|dQ$YuSLRv;%>DvW*8SH-p%?Irdzx-YV zItY}~2jF-_9|Z-^BKjogRiMqFLqNHhyBahKid{@J?%1hjlR7eZhiDAwOQ2&xxnjXS zJ-Qck9B4L1^6{W0pc6pHfR=&Y3_20?kD!x4-vFHq%6W<5oR1+9+<@q1py1a;DM&vH zlydO5fUW_hq!YJdw}JBfc|It&YKuTK(Y?S$igFu9`+1<1pqGFy2IU532`D9p?gV9b zq@8;e+MfcoK{<}ZK>r1LALwAz0i>;>kAOY`%5Br5pk6dl+BkR~h2w6E zV%rt_R zeWBPv#k!#F8F!RxG4Tc!D^zTlVj~rsq}Wu&Dipg_v0o|nkYbc@G4WEu#l*W!u^o#2 zO|efE`&zMoDRzR_4Uej@On9d$c7|eCD|W47QN^khTcOy!ihZcq$BKQW*dfLI=yxV> z$2lgyb&6s=6gyk7^AsyrY_4KeigER6@^-IcD;4{TVw8U|?*5_J0mZ&k?1*BQqpzDZ z4|Gh>zoS^0V&s|{cXJe5uh=HVK3A+!F)#YP@tfwDu!U3XM8zg4HdV1|#i*9nQIeian*+9~65{F)E5RaZpjLNgox(8tgd7 zgp!jo&X6JE$1sz@2z~j>&IP+nR}&I@pZgF^Y{- z>|wV!u)B5ykc@wokEd6>Cx~E7MI&C&%Qsaumx|tdC;n zD^{&ojbisH_AABqDfWe8O^O{=Y)A(;Emu1x^l8P)6njarR~4&MEUp-3Y*=a;R;^?5 zTTo+kZE%F6Ab8OiD=_heaeSW>u6c+HI2FH%hieMQg=>nt6!vWnm&F?Jt;qh`J{&1K z1Qo&drbtb379J`K)f7S-Z$(Z`aWCf$w8H%Ub@S7kH*I)yZnm#I6sx>>kWw3vbK$#Y zWes@MjB_?(4F|&g>u>QE+1tXEpB{u1$3DUHK8^5EFGOI4t9J&L&jT8X4R0>0tV=Jd zI{=}UD^iM@*Ck$c4gXjiE6Ref0j~D{dzZbVYIESKhG5OGeK_a~e{a{>JN~`P#l9eR zv?X?s*bgnSZ;PnX8@kCCCSJV4Zz4A~@=wbU%aV(fsl=rV<`@JIjsPOO#Yc9De)~&NDSMFOY!W(K2 z+L79WL2sn?TfC*auwzZ68hVav!<9|x^Y%iMNTWAoZ|Pe*S>4-_c)m9h4^(y;8%wvacpEx)oUYhmY_ zlyGxh7;oo>D-V0-?d@9|8|rCHlYBwVgtxAIaIiULL)~pN^AE-k&)6A1yk`q+3&RJA zS*|r*Tx7Y{aF*C})Sk2dbBIDf93`L6^oA?{iTC^BK*IKQ5b8RCsVcHJqS@|f3Q`5l z!bt4=T1R1IIL7^pRpkB7X+MG0or|mYE;zFotZZ@(5{gOp~BK<^Is$Y_@R6ir~1HrX~!i%t72w@uu`N~*kb8&1H zLyyGHY+vmCdzi9pk71P+wk!HYY`hOyksitWE~$QfMo*67Z#oo>yfleC$Zc0ZEmKV*g47V z4e6B6ouCO<`eRSf|e{bzf;}3@VSt!X+!Z={=;Mc1qEE>eUCv`f5%||8(FwS z89Pr%29|Y4?~B;eyA3ssr{(?fc3v(uWYd03+lBl;Z_n7w~?ZRG_ zwJn~Ad>n;`;>}_m6{p*oFY$>;Rzpjr^Ar%oGm(WT=n#d%*7|;4Ra;&ZLU9G{258%X zFb9;gHP_-f)JO*p8qrBKSoS)|ItKGLhoGYeLS~TAYHW`Z+Yz+u^S0C^a)$;Gh7Q_! zzb%5guF6_8h>e&lvx@qE7g$z?3?p&l!hN?nZN|*1u}QO%--hggoUG5G(8WVAZNP%e zXYmNcnC7Ty4>~d!5cv8%On00@6R#DF1m?A7!ep?UVHzRWT9}Loz-ImWXPAb|*J5lR zjA^Wz$iz0-Eif6sPpXM;Xz;5~)F7CzX&8G9+1<5K~Wj|@&?Zn;@_V3Zdagj~zY^4L7@6{2s)x)5CMFrvp@|jImBl zp>i9xYLD~k-K7x8$xMpx1__T{jMr%_>u=Idc{$h=b&r&Oz$!gA!k61dAY`Gb+$_FQ z#eO3E=Sl?*lTau|VM6Jda;3G!n&f#XNe-ip*GDN9k|o*tL;|Gr!1+v-)x*mca4m}S zPKlr!4*K2X=+J2M;J*-`_kPQ$^SO|j2J5nk#<=&|}bZpjaz%IX?z` z%;BA{athuJ?d2SNXUWOwaV zbWJ{ir|V-Ay#{VO;dB>bB1m*vOJN5liiut$5ncqP23=YtnoWsgbzHui6$TSrFLoo0 z$u&W8f{zt+Sb?`kb1Cqlk8ko!F}ZLU4|@VHZ=#4K3~we)S$-(I)*!2=LuQ2 zGSl0gK?z-c0WL!D6vdweqjryOsU%T&R&1(&H%%OJUnz;31vQ%O{UV@Bd` zIyy7z2)$Sr<4U?aFU)er3&?j$Iuef$C9+oy!P(4kFEv+}&8YRv$ z+9$Wp7M;bdZ>j=-l%z)4UhGD^j`Kja*v~ztt*}j6^6fnF%k{xUVmGo<>1kDQw*!8OfPa23(&R+2Aw8-XHUX8JdsjZ`E6+4F3BVC{NBIltsd>WyD~O zP?oDwhuvi)x&V*gSJ1ihJQWf)VWkdN*hv z(0f3+NFg2qT?WdF`M&{O2l^0U8GVE$Ho_PlB!heG2qz8pl^ZJg4Tj=1+4?^fQCSv z*UvYAo(j4i^mNBQ5%f*iD?ncd<Oe<=2yVw9idSHDGd7sj36 zF`+&bJ6*9$6yu)L_#Lg-SjBEoY=&aDDYihdI~7~5*zXj3Ua>8TZCC6=#XeTdLO(S5 z@Hr;v-BOH;LzCtl#c~xJrWn-*8+YRso21xHid87aalyn(p#kG}m10jQM&VK8Zj)l~ zD)zo&pDRYyMkYKj#s=e;+&qIFuh@x-U7*;-icx&j_~mlP_#LmsP_aVAsuWwQ*heUYSMC^W5RMqu>!@GC}u16fMUE*X5yvBITPM@icwg>U=+YI?uIEg zQZb5S8Fv+mQ6$S?HHuND(O|z)j3Rgj^E)QLb-H4`6}wQeOBB08vB8QhSL~OHeW}>j ziv6IN2jT-vfnSt_nY2(?!C;p6hRP3LMH7n-LaPvVi2$MI8L72SdDRz!x3lzIUvE_>WQn7~>drYxEDz;X! zEsAYdjOsm1T6#JrzjcmceHB}z7zH9sn(tPO0uctgw}TtrO2_24!hAl40twgP8LmD_ zuNC9H37n7Psp7*eo+|z{;@xeYDn3|L_amMvh8hB11?N*6L-|y336JD(cb6A<=T2UM zw~1fCG0`n8kBH=5;v75(k%QBrzBnDaDr65zoDM;oMRP6Ag}UP;DU_LGQ|Cu0uMW0I z=BXjipj>m6pZDhh1npYA%|FPTtGUk*KZ?^voDao|`hOKzc9R^2A!&R>u!Ii^4&~M3 zDR=;^PjGB-OzHaG$jEj0^I1FbuQ?LIh%H*(7hzgz{RlC%p<#c5>nZr-&cgg!+~53( zM~Jz-;Le7;aq~0#(_+|7K>OtYf&1VV2MCGVnuf(lX8AY?;W;o@28kzfoPXjG;>#sg z?(r`dPg~kPRbkS&&osZE%bh%P^wN5>!wvipxa{RRM$EicISY2OHrsrJm<)um;(^ac zwXJr2F24W7BgAAk8usz~7>(Qwy5T=C)jyY@FP6Zn8oW@ne+16v_Jn4K)aaRAxMT09Co1ppffbWo}uacs@a6T;?0>(;}q zH!J%8$D_dPgHa4;?1%I4$KSbtXulYgjo}hdHkkgPZ1>nWN5_F)2FhB*hB?aA<6ATe z8U$SmS^)YN(0tHOK(7G(Cn){1&xb+J1f7@eZq8^j&)gYovh&q1w?7SbvtroHI({Ee z>~Y1OQmkIFw-wu^*k2XTa51vlM$kvEL}hM}dvs z*A!c?7_T;(IDS+t1sfBCQJaDB%SV9?)>|8?`n5;pn~b z#*z=>AC1}&{|xxnl0#vNEWHrwzaniNyYB?yQ8+nKPvfJgs1+1l+4c!=IyvL=DR0chG+P)APR^#dE9JmE%{oWIr|6R zx7mol^K&slcHv$}=0R??FKG3;NeCEL8P+ABvwFfHKX)FSH2eBnZ!LGJ?0$e%|J-JVC)ReFc%qJS8-#G#(2t9DfT*WT%ML0H7Itd+{MculFkhPJ`>QKdB9Gp8IZly7=6XbSp5PrkSK`Y{n8besB}X%9z!n$IKlykt z9m8f0tSrnS9w|&}AMORnjLL2f9S-6leBe0l{#akL&|@%IIh<~pG^4EJvoWR>gPsG* zVz?0WUC@g_Io8si3rahSons-#z}FC%VNlTo4!2^Q=?!*+VlxzrDR#GF4=MJjVqlCp zalEP6-xT{)u`d<-S}`)HO!_)ICc~gI7#UP1ePmD>j5#w{fnrxEHd--iZ!zvRC|0i+ zH0zDL`kLU#qS)_C4nr_$(HBe68u3!q83UK9pznroO?4LbtM(!)-w|DVx9^JB`|a29 z+Jyy8d$o9`l#ht!+jsW^;ynU$FFeb&p>FOObDl1;8#XR_2RMd=;s*5BcZuJ=5~gpk z4)3Ec)!{`y?9kD%zQd=c;Ki@@fu}%KceDdo_(D{mx+5))ZmU2w@7D7L)VWA>7$U(# z`M&8aSP*$AcK+q^gk=uwMP(c){sJkuB|*EIiA1cu@C;oJLa_ER*5We3;{{`&IIwoX zsrL3jcPswKQITas<44Y_s|m$cKy)>JBs-GZuc&|hyuIPr$Q7<6BF3o87)a25m4O$< zs-I<1mAw;u!wZD zPBKZ9?{xLc`!Ni`)%Wo%>mvEi4`O`@Wqwc~Of&WIZ$|Hk&pl_$%^mO@*_Ohkzh#?f zY!`1j=lxqw308gqJ!fOkgwP_K;)Cxaftt-Cw~H@m7IX2`8LN{ok+GWj0vYQ*7=2S3 z7<{~un-2hnS8|7ni#Kwofbxy9C}>3=r=D5IC$3=qzS>~w_m!cL(<|zKaNYqaTeoV% zc8rbR)yRZ2ROR+zh>JF`uLQ3f`-|(=cSj|!&*8qT1}5qm_3=Q!x<;@x^f!ZXT)SSr za_v4rzTN@T62b0)X{VUDO8HDoe}ieSn7)DO?_z3?M*9yjv2T1XrgLGU-fEvU45rrv zo2aJlXoV);vteo}K=%_#lCQoetgVvwR zWUirXi*yew&C5BH`j4p#s6BMCgNLUl3$A)Z9;i-b-;;y{M9rwk9{P^RfA$skL)K-3ad ziJJ{6jK;}~6kP*w>b=RA?{3jeol!n%w%MI>oyqx~(J;c_A#k^3AlZXgauTQ151{>J zrY`E7(HoKoncdu@>BBvs+#PY4T|X;s=In`hTZ^rS6~if&ivha1V+76POD9jA>%1FN zkj=`-5jT_JCJ|jbM(0~}I`fndHy+EhvL|8YL=2HIiQ`FpG5*`N@IMymqJLI!K3sdO zo5xS9;L5NdyC3YvPegXW+y(RRlBD?OBYy9qhuh`iJr^pU$?&H9Bt0*)V<$Y=md$B% zF8tk!zuWM4JO1Y3k7+RFGepZKj66In`FKFmaBNZEaU|n(6m^Hr|7}ql#V8b~XuGI~ zB6&D?$1mKXs7z5;ifmgxz9ttnkBImXJzEEh+W7B@=0z+~U8cAzaav}IlJpc535FPJ zDvE%Az3{gZe_Z+Vk84+s-R>{PHDEZ;#%g$qhypQWrjQlFHpmnCEckLS#lHx1i%aob z;jRJ5xQBR>hButW12${nxpJCc4?BmYA)cgRiEn&lA*URQhIrheh>vHmt#Uvyp_&1u zBXAZh``r+a8AOf)){wx=;`$JPHTZLX9NVX0A>9eUvksVtH8RJ0@*lX~#b_N}51J3k z5osVO8_pG=<3R_3vcDFA@-Q?4%Dp&-@aP38qPi=}{tYqo=*^%QOrp1eVvQf=vEnGu z8c>Gw5a@NF96iT_egj$t%DHC>DA(>AFrS&VJ57G!%^7Th^VKi93=KA0G0wpTyHBx4 z75lAXFDdq_V%rqkq1fLP`&6+MeR%W=9mz#VizekP_aRZ-J;m-ihZwGvtonMwoM#-gMcQq4aKNS(qIoO z_LySNEB3Nt2Qj*u@Tj}r_~pI{8p*M33iCe4qAymlXl1)&HaBJq#eeO&a^r(TG!~KA zOBL3J%c?n|;p8GxcHcqZxc*aA^NZckVZN)#J_!Bg^?3ET2_Lw*ir5eBhB0ElxetU} ziE;cVzX(WO_~It75Z56c_2X1>+7Hf|BfQ`~`rwAT!6mhb zyaYjSsGD6fA{Pv;8%BM)p>A|Zh|q1>LTGC+HjvS9zK=E`qf30bwD4bk=@Q>k@@@P` z_C;ZAD)J*pOvHYth>7Q84dkG~Ul)^vrd}V@0e6J_R)pOZviOdC<{(@^xqQ^&X z%j(o00f$ariK0SrmAn%_Fm|&z4q`{NuQ-O6!zGX5%1xcZUcO%*>V|Wi^|*|PTJT7{ zg|Yk1m%3H$Cq$*1@->3UP<9p!gVEn_9 z9UJNwM+kWwF{qj6je5QDwg4S?0NpiLbTom`M8aVUE@-; zh)CXHY$PRJdGAW=^wy!KvNF?MC(7@gY|q0^h-SUt_#ol0!r6 zQmjb9J~ZmTA)jM%`-H1E2bN!sT!EuzLmCXv=5j=X;g#Io z#_&ci*CZH}WKfYicd!g?!apTP@lOu^rugvBtn>|!P8bt$?Y5Jx|TL0^Y3p6b}Ze5CWgit^p}F`G@%51nk*zc{^8i& z@efCB%g)B7}3E8aPl=5tOk?QUT)rdxut<;*G>80v34mnySUcnBt&8l=B`4SVZ!J& z2icn2>-HBhVe}ffivM1@qR9RXdY`Xb-xr0qK8HK|U&C|{SPeewF_;=pp=l3HpNQ#X zg!Ohhu}fjvCZ-~o3@?DIg?9wo4-<6*`>f8GmtPSR=XCQX`mZpLZWTVlqcD9cvGJ9l z17hOBc$>s_5r)Z3!Sb=(ZOKvCgVk+oj>0s!8i2I+1D)Ly2Kgm(6h;gcj)LsF;0R*T zvS%6xhYQ8=mw2}``9PYR2|k62#wg!=w0qhSsxHRq5?diNNuEBFh^M(DBZkV>Ex}AU zh-*z$Fzh;?hbM=x^E~Hy-nt>>LhHGdZq}D6eXPs8xmLB8k0rW6A*9)p_;k4P6UfiG zPNJM942z+#n;&0Hb&nOW%bsP<)f4yZ4ho;0m$^)m=izPO8$4?~k4yZ#bzzREp-fm( z&l89_67*!Tb2YhN>^F;qcw2|vyWu8rxN+_EQ_LX&IVHD=*UxZ?sO@9!eQ-lof!Rm4 zU=^@BhU2qg+!&en>9B8>An);XmhU*|N9)4RHxRm^&h=pT650H&YV1X&LorFFg_NFhnbF& zVK;3rczQ$6)aTguFnu#TeKn1yY0;C30DGz=u8^}yBWFlXQOH#?yW#t>U%3E!sEsne zmw}T92ib0^v(+%AioL7j586znl(wNoj>4;ce)u1deHS);xc4wy^7b^0>>XzY36c#} zAZOEiB%nK?2-^L|zcP(Hhg(Xo*4C7Jtqz`ZQ+_G^W-$8A)lvX)boPtE`0EBC1Kyn| z5OzyU{Ctv{D2CaSuCI{fFnbdbEbpzj*`xddlgk^o`7{bk5Z#?@L9J%`0 zuN&IATP)8CX6)qExi!r6^nvSx@_n9%982;!Abvmodd(4Mp;XDymnet?@5b&)R@YSM zr%k^Mmw?i6=HBwv+4gXdnO(V(jU|XcT?WxQn0buu-Z(nNG7O(-aDOBI$mF>jf6MT9 z7yiibStSXeA9JzWn2={=atgR`xX=xkOcEJAwXl=XLyk%n;7qcd+~a5&^R262^S1})i49Old? z9VO*4Rb<1!Nh4nX?m2XDEE(d#Si(Hb1;Eyb!&xxYvSp+&c8(o%!47GVTX4dhoz3QI z>}bE{-p3(8E07ZR$2opC=6;;aT2&5ywq->*KU@OJ{!I?kx1d-HMo)zstO=s|p!uMj z6N8}alp#=dMvT|d=RvOk-Qd`_I(C*iIZ%f{$$_HuMlmS48^b_d4ixp)flC%$3R(in zk(L}N-m@AF8uA+adQjqXL5Z&b9Sh1HG!gV4px1-`2s#y%*Egntatxdf+6Qz7C`G$z zzs9jo1f2ytd)rN*QPA0-n;rXh$4<>|=*>~~rdvSsF;?CV8U>vP`V{B_&=)|X`2Sy^ zcYvm#-07aZvI>+Ovv|78F{8=Pd^s3bDF#Cx91N*-uv-#cjqhCPq9+P$`rdrvD+1ULb0b6dquG|itSSD zuZodhZqnj+OwdrM7%x|t^vU_3v<<#0YOn$7u0Szz+e~=mwi$QND)ypcJl{6%Y89h8 z5rgegY_DSb6#G`OCdJax_Kn|6#{`XYiuF<~U$Ky4;}n~y71sq8}P}?H!ZfIzh3M6dSDARf>&PY^-88D8|*2iI-O; zOdPx_VK82mFc_~&80=-mRx3s=u*TgM#XeN*W5o_A_LX8s6#G%JZWw1wcsY*AZ%tS1 zCdHaC7Z`VZ-P5EmAMz#%^>VRibC(*q6CUHoo4_;}2SW?dlc5MNQub12NAf@qhszeF z!&GeVwrj9tvAp#W@D}G5l|AxTOqD_JcJfDqYtU~Yez7^6w^cZvdG(Y}nH9muDMhjK zYbfYo{{<|kq5I&_8XWVH?+@nYL2x>UhP_Sr3Q_Y5!2-mZnF8^b-6<9D=2jsjt$=(?*GobRpI_y1F^@E0E9B) zAqbtU59dLN9OM&kfT%|Gnq=)-;1?D6P@W9)z^D|Iki-sq6+b~f5kQqVSV{o=JpfAu zSSIFWWG{we1AjpL2cds(-m{2*{?DCQ5#JjoV3REdPnCAD;YZU`+fcDxdEWaVb@>_u>5)y76 zIabC*Zr-6$?~0w73RN>F=KE4{&y0ksk&#*->|2vKeI_&siJU(9NKPMcR#G; zX+VTvr)N*g?Wai%(U}uBK1D=~u2+Q5K}v-{x!k?AKh_49E@3e>=Ju@><(o~}l}zB| zV2$JipP4n-SU_Pr#f&e^-o)z8B?dHcWnS&&gLFm>P^~YEn;SD3nq#;T?}LZiO%#cfw=@ zqYl8dSNx`6BL2IWy24}xqo{uQbHN6}WCWwA$83azV#D>WKE=0-v26RqO804440(BmU z8h`y9;e?Vo@Zt#WdgVnm?8=h4pZQ`Z2QOd3A=_|3_Rp}-aoi6qpFIt33go5>7xS3s z;Ks;SQPDkAx%)1+?h{5qf+f04^eu6}>!H|@guuZcNBH>75+3YO@lE?+%)wNr<4Ro3 zO})gk7#HzehNqF8NiaL-3O@>)9E3i8cG(noZ~J-<_mLDX%V#WB`IOmHrWwI2@?N+c z*z3( zT56k~mzmx9e=D^_5yCN&+KE1LiIN}exB-31TNwZw>G*U+eiEdYQoRGAVCWn`ne7vt zzp}~W%OJgF7@oNpKPV-3I&%Ip7#dsfw+DYm@W-CUb~aet7y)_;AsMD=He6hl-9L$u zbu&_s8CWz1vFEjG=RH*fw!GfC(4~_4GrS(+%}gBuEQ|VXgwe$`IgOISe{2J_h;NDH zFyF^E%Ra(K9+;LBVPdPpHeYh@mfrP~2!?pX%cMTZlDVk_hjj+s^ zY6>^WYaj4Ieis>5wJ>wsabEiXix}!cfN^YbUjX6QLcUQ0aCVs?9y3;e-37!jvgQh7 ziyfJHfs7LSJ6TInSdG|HP@J&u8KEcXj*O2j*EmVEXyUc-%GQj~v^A3%bqM%w{JB4l zwNZp|5`aHDAcdSb{`LdC7W4{Gw&gJBeV|u@J_Jfu(o>+tpl^W=1KkKZ9CSbENKp2i z5>T?RegVqfJ{FYibUbLlYgk5)fs$1;2qV;upk<(B5s?){me3qfj090`^cH~L!gS+* zYVTbHdM_wOhA8KZDp0a^)?v;u!ca8%$(nL7jw1$Ri5qtuXAHJdu?H1u#SSR;m10K}`%$s3C=(OjDUQhx_Oy!y6`QOWnLH*fH!DUakHPL#j7%Pb zk;!V}_^V=MsT%AH#i&ceV8=Nozr_n)2IB=Un$RN@8=%-&#U>~=L$TS4J+Iiyiv3wJ zGH*;AdllQK*ch}Ila_Ig$#4BmvF8=rt{7KDCOqn;Fn;$aHURC*U_8h%?nWy{9j^u> zi_y5Na!h_J|7yxOLAa?Gx^VKAyehXAT|QzT3gfy(4nEpYV zE==H49}4(m6H}Ed@c`*Xft(z8UIEYh@CR?qQY3cQP=pE>{UWg?4KUhE!uU5Fd*Bs= z$FqAz$ zVlNOsQ2JT?$aQbWkDOW8m~vk2(j_}2T2rFfi$s_O1`~M87fjxXAjs_HyAe#d>;c|I ziIly-oP=?cuk0=s1sNjYyo1G*8mmLc5U$HX6nLy#cEtV^);Dr@!wM0Os@w(`iemTQ zi|~r-_TuUJZ3)HHSC&;tVMpwZ6p0$ci!xagu*1&kjlbDG{Bv76#5xKx4G*Ta`lAK2 zBlgE3`}^X&4~uMScF)SpK!vxbv<;;$^3$oJKYnNocnaCWaItYXWPT2esfVoyw!x$F zA&R3P3r0aaC-L=?QTgBEYdy-7o8w_eslL17*I}@4yx$gy+WAhrvsm1JTVUDcMux-W z&}k~z@i9|{s4h7_7BQ7u~%OFLJ7W>`%w?lz8VLyz|-PK#u^^d_fB)e#Y}0b z{CYnJAPD545XYKEse929<7>~@4*+0~-Y`+b)n^sKbeEXOO#hR_OQ!ZF!7hfW<&L)+1>btd zI~cAItaTP>c~2PRm%QVJ6pd_G{+k`I5vAZd7>9`XW&XsDH~GbIb60~RGCjmkuI{g7 zcUvl3Zdqe<5o&(@unIPUE&T*Y_r|RZ$j6vRXY)~#T>Evj&X&C;*ShYxbYh=7Lpt|tuzkk}^}-4bj+ zT_t_XB~N_0`f0HnJ;aGiNqQ%VGvL{%U~C+~2uN&IXO)|Gp}EbxfS;{7-e)|$g;_uy zl_uCOvXwTebEJw2vKiz!@v>ds1kQ&YtK8CAvnT0pmVAp&k}_L@Sc1I;w%wG_>Wt0M zI9PrlVx8-q0d>+DDXXO561TLb&R}?`1>-meD*&`%?>?;VDgTpCtCe)Q!etdSNTg%2 zh3kvvnvg|U*pm%v(L>m>rJaEXOtUiEx6eE&&@SNZospL@2rpW9=MFAoM#f~Ahr`*4 z-qvgmmet4jqh1Ea$8s_WTjhDq`shE2QIW^+zIZKCu@>XilM=+!fBUReRs(cukrl>^x?}^mY=vam3^seJm2(wv57jjP=*h6=dl;$Qf|E*g z1!34axG^0L-;YVGlOd92I*5sNvBcWCMbQsSiSNR(8@E+Tt+)44)Qor06|$E{v7eOX zJsAp*3vfdz8@8@25%wpHWiu;qGjZC?Ib>QH^(0i@$D51{GcT#Of5qDFUUfDCIqfu7 z`B@nm*rjJt`)S(onWtpA=nrA`D1wbW7PXr~`fO7|O5giU%0y+m2f*H{$D7gqLLC1iS zYj7PXyV7{jde8}=9K6avx#yb*dJuFH=t;=iR8S7&SSv*LgU%$5e9r-u`4{v|;=XCpcvbX36G~9COnFc8jR9}1|x6MU|bCvY_wuy6|)t) zOR?W5_K0HZ72BlPyNbQ97}t*`-c-lr7uD$oqbQU~%LVH0V#Nv-F%4qzqa!j~(RvRhXf*ssRA!ujoo{zVy)^Wopl_?goSyi`Ul08CbS>!7d}8K$Tr!_iS`?C#6r&&w zcjjfT;5=`BJ!N4>X+4jnLVTRJj(1&v!OH1`>SMA5J01rR9bk4RJc$R z8yc2?qHR-lH_GrZv_@HGF;EUiixI6Ej%f1BF_XbCAj((2h^QNEfns;6-{p$EsMsrt z)hf0@u^d!_36DdHiI?}VvZx-gi=%Mxns8Y;@2KrBvUi2;BN6*+Ucy>_0(?+?AYVN! zwBIkT-dWMD`pb$gfz^S)+T$w^WChmN^V@6>WANaywcvJB8g#i?r7o47{^*40`^SI&Uy2DwE z*7Zgyd3OZ+?+67VTMDZ;-vP^U~IUud%T4x}d!|_$Rity2EKfdq?oy z&novUd_4*vZwqu0241TRO|2acw+M7D}O<5s4Y~@{tu&8)vzP~W=!ulYd!)o*g z?e(CczzekycIh&(#&$QgwSJqiSx}I=`P$w z<{)}kjngcN0Bh=-OWm$Ysb$ln&X8RXSIXvhvaE?N(c&}wn z`J`E;bD&MC6sM?@=1iIC9Hg@JCyPfT*G&z9CZN-i(!|c_pXjcceyB<{;o{s@2b_p_ z&ulXt3HQ9mV}>=Xo$w1db~m~+WVzcrDazicNN@C29O0doaYn}V8E0ba)hD9}$_Wdw z4efYbnHA>F$&GNiOI(@X}62sm6_H(QG%w#IWcgZ#i#6fB|_d#5c|oV0Fs_-?U3NOIS|}Eqe+RZpC72R2(7Z7$A90j`Fg%1Su0c<9Vw9x zuPz7W^7m#?n4@gnw}9RS3bP#g(f)vA=e;?`!!cqREfO?_!f2lb>-q z?kW^x9LDcGiany(O`MSu2camZ!D^{skm0}AO zBiFw1`)9@es@O}4y{g!oifvZxL&bI~#%-EOU#4RMPq$({6&t45NX04?lcO- z*IXEUril=~ zI5FsLn&@49|K!GvXa{f^T$FKsm-%Uj>VxOMzMv!4DQow1hR);{>SejID6RJUIfKLa z19h55)T}-jEP8vv(f(H(i#FVRTJZd}Sc3SYZwD83Uv$KtO4t`*N#R&0h%2mS;6}a= zKiwN#lqSKX;~Ume8;Uk8=vJ_ywSLq7v<*lIVjYmT!1s^5J)H*}^uK^yMc=@>3t!;a zTeNyXhqU#<)7J;n8W(j5#?pNL7mo11y4tL%{+H#{>~_nkivLfSQ>MP-ouDPOW}OcU ztD^7xi!)_ig(g5=Q7oxOL!1KIPJl{6$6TdLD@xTryWQ4gBpMQj&_SRl^@c%ysaq4X zu;OH8);%2BIY+1NPH5-xo(bS&nHn#}o9rVU}jUyx7W@VECfV1k*Kb zw+B;%CPZfx#-3b&ogp&8{Vk`*Oh+D$l{BB9mRvWq*>Q2rmLpCE;F$mLC-F@0 z|Gcz10*?7wo~K3bES}2Ca|%CMg=wj>mrg@LXZ9__iDa*HGQFoJ7k}=0g;PG)9bi+z zFW=J}lYKwS=d4HE67{Effu3)5^gQ7?AM4lTI&NPtEUL=7T-#+%mx?Y65KrgMuD> z8qJ+BYlb;DkZKQI_fT zXLiP7E}7X8{NO9&>MHeLsuL;j4ntBQ7ExwfNMh(PBsGwqtyHU@{)Lrl#(!I>{#F{u z^RkrV@vz&mx&t}OdPCk)as`7`db<@X8C%+~Sa%B6cE$RRV96Eh*JA%)R;+J{%gcXZ zby{s_c7g)Cw)+9L`NzatUuia6ow`{XZY4Y{!S*ZDT;{|4urloh-ZacX7VD11&c?)5 zDr<$6#g!_Tr1@}T7NG8ulxxp+Ygc#Sd6<=I0ImYbbRXyipgj4!5VSjJ0F>vS#7}ha zlN`LagBLn@UkC3GS`7E+frddj`V0c)h&~v!9P}bkcIHyh8$fwdJr8s^=ps-oqhkY* zFQ%V!2RgkhffuH`OJJICGlDc5>?+5U!R5GvO;>ELV(h-g?<0!+NwI$@_Pk>CiZv*< zOR+B%}?$y{g!1 z#duC^+_frp1j^B1M?0nri_ZZK#^-=0ycvqkR;)&`+Z0=)*gC~1Xv>86iDF+X_KjjZ z;Wh4f!fWE?39rF;!fUXf6ysU1!N?(C-0_6hU?(efnqoZlHST!oYut@dtU|GS6?;H2 z>J&GAsqf7At-|`oVDlVP2Kdq-E*(cr+xl%Lk63VJsI$Xl5=q!mnEP!GuB^mJ!Uh9w zn2qadB0y0m7BlW~7*c9_0Ic89DPA)cy|!Q7x|%21d+~i;&C_aH2@}@_>uR2Z31tbs zw6(cctl^r$FkYOlrec^LL>KYlKXb0|K4^PMD7C;k;@{2qcXDt1k)K(fO`blva?JP% z6*G(^%L}q&=$z!|4^1#)LrRbfBpW{?{4=>?>kN?=$@wpUfHVDraBh+fwT`FbS~DYq zBd~j~$z>f!<6H^L{6WgyUyA+(hD5I5LVROt$N|jM=t*#y>j{*3I~SSfFdlO7eE4IM zQBE-ok!E-S?GO71P!5kH9Xrc}!z6d!R5E0C-ZW*1bQOb*bH3u$p}M#bNP%Ud7x*2M>>#|LNPY0tsz!MXes;2&@WX5Yr} z)(xK5mqaXNgkE>sLj27V(<1!Mq-pTzMVPwR4W7C((Gg_qTGZ9L!85Nrt}Dp+09xw0 z!IdA+%>kLT996q+a8>ot;}F(j_{NblfQU7oBx*>RA;U?8F^ck|&}YW1`4wE7J`+?E zTY$k3ww%S;=w$8t%&jP}41B){^b|Bm^GoS76Q(Eo46n5h|7OM3~FHY%9%Cpl(G3^b$*#`jQD( zWyEq~O|ahF0WFmSf_w(&IvI5yE9e+kC7CgQ*cKbnSlN4~IylC)7~3cMTMQTaGN!Q( z`@=rLv9qwwhy8BHz73RP-3Oo-f_@148_+6*PdnRs0JIPAmoWmGv5+P+78-1v^VN)n z2IE+0+_8@uj3b=E9#m|pVmv=I?zj*&?szw5uzbZPDt4`64=cvyzwt}?HOB7>#ki+1 z*cQb;QtT7OmZrJx9(PRU6fK>nXt<)Q%XbU%7u?NyXlv-2#quyburD z+t=3LIK4S+ug3kD|BgQ*m-2-99vC9jq=J{^Dma-U{0r8n%7?X~U+kziK02 zZ$Zd|r@;#%EqLwRyNQ1wQ*J>z3;{@zTL6Cb-8(-_elz&ThdvF~)KNZQRtX+3(@Dd} zhrWsyZJ77BhE0cFZ`eP3TYAIZLrpMj_ciQ31hH>7E?84iu@%XP*#C(Xedtfz!el}o zV!;|baZZ~zDrz^BBnG8LVNdwV!4Z!~us@V++Er5UJ+7-SO7t8!afyFbW@Q#P5 zD8;{Qll|6~1HcZ3yqgIhbfA!TgK*S0MT-74KL-bYnOEUY&KUi?9oKu=LGKz&Rd{5L zL#IL>I^pE0GA{t`XwkHiB}Y(e+~GQbN*dVi1nMqSW-hWZ2lUjR4cF5rK&;cO8RN%{ zn+i2dU;v$6F>dMvdF>a(yy^j;<7E>n&XPedxxVQm_K^sY9Rl4LcOH-ml=RS793;=4 zP7^z?1y2(XlW-sB-oKd`IjZ)+H**{_RqpF}!eV}>$ZZa{gQBWTHnrqkGx@pH^B>Dx z%WzaRzut};kHrlIA0Hksw?pnIKUuyr2K0OUF7Pzseu4um$9CiA0`cRXnBe|mjyV-U zG8_r%=6TvPu>X~TU@BuiUV!OUv6~A{rpgpv7x~WqS|q75*KfR+I#b*SL>s$aqQgT(#{N_wZ+yr_@@re%oFE{B;B#~tU85YG! z8tf#+_-e~wLB+U>HW*8RrVMMgVmxOsSdC(Qojq_MT#&DE4o~xIZ^>crkjJ@Q!dyT`ca@4aNz`xT8QGgJIg~5w#&S0Mib(2XP{I@=ULM;#s5Tn9NB;b~OOV`6Yw?J>#4jM;y#&Z|=q8p>$%eZTSDlJHKz?VIv>KnGC zDEX?1RBSG(Xp9tX@+a7qBM>=J01aO)5F-3%V=qk%^Z_eP_#lI0m#-A_62uCZLXHZ= z(&F*VlC{-Hzemy^I7mwlUuk4X+8O6J6ru{wLrePhD2+XDc%(Uy6|2odySK z-k&T7#*xTnjW)`|+D~4cWKbRkx7tMe|zGumCcO&d8@Xx}O(h-{KH$pq-u}C15jRge1(Q^a7dkzWqn{jn_sFqYwea{9^-;lzTh?30>y4u><-0v-fG;H@I>qjL&25WZv zoZy2s`@R0e_2551$yfav1?wxZw__$*1l<6PJKEzQQ+NHb^q$!xXa^1=Rl&H0O^FWy zd2ZasFGy^B9ui#B;A>q6om|19L;l6BB0cHDFv=!z63S*sV!$(z#EgR}`A5NYLil0J ze`_;x7fuX4RDyqO28-SXfGYCHRF{AS?*o~n|DTmtsVT20%BwoHysH0iwLkYkNk`Gp|H4dbD1(L$w4p=OqpOFScBoodMh{el)68 z;p_>s$n!X6_KaC_UOj8VxY?7ZU(-&2x7i<=i2y-iuV5xYb8UtLXs_&ZI&xB*Jl=?k zN$%gy@pAq$`>&|@OwM%_MiR`Pfp%~L1GbJzaXUo5ao@+~J##>}$z7U}gv&{Qk0#vX ztz5A`i!_cB|2eRKi!gA8Bl|*zwS`veB(ZbvRV4N!#XXP1%EWH?u_-0jwI}Cc^FWAc z`BvN>m-dsx%*Q`4lan~#DJM2YyV)!WHa{Xpn z-&uK{3{U&3)-3TOf3WYO6b|Ny$GbS|l55pm*v%!XsS7iKn!OdvKb6IAi0riX!H0<# z2K?A&a*;P|=JZk&XTCAEBTkBCpqvz+bL@4F{Y_9#k__ttP=>)1uv0+;pqxyJzvSR` z4*oW1G4S_62ZHVejeusMJ!2~u%K^Ozl=5JQfPx)Bp6&4RwiNaa4*rFMH#@iw`M4P0 zyMQ9iBFux~_J(~JC@1r0WO6HXOlCW0FmC5)GTS+WaXV+Q`_=D*im^P5yOoNqRjg65 z9g1=BZo*@k8NX~%2IFa-!8nT;jAd#tp6eN`P%&N~8!Vt$NU<`-hATE!vGI!WGTFot zQ*4Q1cPqvl731z@#a>seNwEm(!?=q&CQkZE7X9JD%OG>20w;buB0T!r8?xV#NuO(? znpVvD)iAhoe#l;z7=bB&2V^`B&2=A{CyKF^xpDgH26u*UIB;`G+c}>|GbZ*nZaQOj z3)ZY|JK@s~$60t<9tamT&3iOd^xpiQB^9e774lZI$Oy%=DeNHFx*Ff+?KMpLyq?Mp z7X7$jI-eHgmn5$8MeReS1&1as3E4*k6T`q_-%z``>MV%Sz}Dx)XaSUyE=1lisoB_! zg|IC;G8oVFl(aV5k%RGcZrz|5<;IT($A{mFnRJbBP<%8DtqsA}HKC%9=0Oz>A`00b z1&a>OuP90MeAUtP6SBL6i=wX{oL`(6c_^9~dFofY3ND1FeLmZaPuI*-on=3moa_w+P;d9_lxFq@w z@c9^wITck3?rJkMQ)&g`=i5fc&GdaEZYYtA-#yk?`92NDpd)0eVtU;0z2GF74ZQtS z#fi!JVRy%gCl^*THJPa@U+wNxRR|~6*GSL|`co>Z((v9*ddDfYHvUn<7ZGHKz`#iRud&B1y&rY;ac;9~iT z^-*kqVgbe2FHLxyq)Z&66=SIytV*$YiY-=*laz7CF~)@VvSN*jy{_0+#XeB%OU0TM zn}qSqgg4bOxtCcL+oL#rtNGEh;G*D*a1SML@0%%Nuzy8PBxvK1D~O%c`&GvT{VOs9 z6FJCtgXGR=APpyr9BTiK0d`_IK0J^H={8YpFQH!zd=7dw!wvk1c7y3S#MA-*uE4)h z|Lb6io0_R(q~p)V^Qg+Rj1FF-#<%_GYOWht8|Ys6T_)pB>N1|=j``)vIKeR|SAZbS zTl%#br#PBbl@WMvyxuYHyB0 zQgj6rk@IYOH}6k*sKW(HVaT!^*{u-u)cedx^{Ur6>)qLLKU)5laNygRT6umMJYbc(sw462|PsD1M+Kr_J8%pf= z;i{zslA;ojE{zM==C;C>7EFS!y18;syMI4ae9gtBES+syyK`~?_pUqty>{m)yqCqV zVee1S(zYPKVgI|sy)6xN{>u()R;R;Vj+eK%MeokL7l+3K^6&=Z1u1DSHXsmy&g-mfV(d9uSmx;icE;r4y5^4ZSpVMQhy)~k1B?z9YP--?mbk3 z^Nu;&%pEJZW3F7o1G@Kfxi3#c85@%i*k1hG2c$il|1H3mF=yvWcKRiQXe?$3=FQXX-4 zPVvkm?!$OC=i?j|%pbbHw5Abc`-61*9Xk z9P}(uE;yLax#)&Dz z;^xbQ_gBSUQ0yhewkXCi!ldPU#SSRe5otH!WjLk`tCwP@DArf8vlSbp7#qEbgG(zD z9*?FCHdiqoO&cs76Si>&1|$ayL$3B6JgJ5P*kKfnxCqHi6^#hde(Brxb`_t0IO^am6o7v#X<}Wx9w0A`d_L-?aQro&9Cu*;w3d&rO%5T5B z3sG48)<<~cyEqPWX<~3oBr)<})Vn59{{=>vLFtiJZZUZtjDyX9g}@fl40e|QPoT2` zKAb=|L%d=aC`>Hd)c|#d_><+uw^0$?J(ib2$0wX+^2?X5JDhU^ODCp&sZh1-TTy)Z zD1`IRKP`gPLK=T!_`;qD5tnfiN6sB^mve_o#(!(xPR0j;h0xoG!^{&z7b=c-YrgXM zYdc^vkr8$#rNhOL@F-;1tz-sZXQPfl#@&-bDSp16kvb0 zPNHcJOh$b8?WnM}!pd07ecP>!?gy3!Kcv^U8&9Y79oOz`Gbp1WTb22l(TmH`z5n?<&Mb+#xd?D zDaMQ$tV*%pD#re2!h1w9-ai@aABsJ%SiNEmihZouXNv7r>^sG{B{XSa$(c9;kl0E# zXB6i}=&_yQ=OQ0uYSshX z6)IW>t*;pTWce4e-;;%0Byst{C{}a<`v(kZ9J-PsK@r}tOehbjIpCW&xfEw>5o}|? zKY*iXai6M@dz(c6Grngb;W0gOah7h!lBh4E+S=pA&45o%QA z+lK8>+W<8T!p-(lNzsP+dC+i;ai}Dba~nr3UmWf-oZ$yyZi1V6pF^STXOLD3Ju2Hr ztuEQr(y$rQLN|=rT_V>)Zy;qQ3EW9Zf-k|K3XKmvPjJ-{b6{oA!=M)!dP9(6TKpQK+*gbuDest zDvHO*P0er$%ZY~>$&5S22JiFU41B-NQ<)=t9@WUx2Kd_qTXs%0-Hty2M~!RDH60(W z{^Vc0|0fCrLGy4H%h)&w`vv|qfDIhngV1T4jiUbT2^^)_8y^sp4<@$rqH2Y{EcOU$>eD;O7s%9 z?zjB3V({(Vi4;5w*@J)g66ySD6G>3~ac4A?{C zIwftt=lK5%GopLNUEAJ-p~1;J7|unk z`!hjN=lYm9nKWoW5wr-D1&pv_=YST21|57X zXbAR+pkYuR7Y_pMhV;>0E-1f~se<48g7W*Npb^k=&=OD{UJU`|L$r%Q*$>M=*?X6z zyK^Z`c;2R1g=5N)R|m%3Y{l+ScfV8YkBU92*sF@IR_sm1HY?Vw*td#tO<>~f?wFtz zPqAK#ouL?a5hfp8+Zn$@72`g^U|c~OcXufEJH;MV?9Yllqu2|I@#fNm_mN_I6#H5+ zGA9~$WKJ~k_Ezjv#Re;e7t4-2-gX+lS17htu|~y0c75&o$`k#s)c?Q9mpGhwiMnS| z1r#l{UJNZ+!Gih@F&wVr)snYf4=8y~+I|^61wQ$^7XSEM!~D###?;Bv`%axf{iN<7 z4EaBkr%PY&?m7hrE=3Cb^5Yt>xSV92goWr?mQO|wjxPNL_hIZvK8@j{kuKgY)Bcx7 z^JXodd^DdW;q}3BMrSKGB}{p4bKL*-Nd8C(gFJ40h2wEpw!0(c6g%|uhx2EN`{cuU zlc%n5f0$P{UA=gObhwA}-cG4cZvOlE>QQ*L?L(|1P*QvFkGW&1aW8=Jz&+=XdUA)# zb0wAL59@n5mi-Ka!wG+UVbvz67sUaLZ1JbNhdn<<=Fl+*VVT8yxN%H=@&*ES7&*^Vb%w(I4;%%8Yg}~zjqYa{K35e1qifh zzb0dD6TUyiHOr_l)4Z%)?BJ(5P55-sPQWlY$n1YUC|bKT=_5edqiZ zW#c=GcUWC6?w80OL zMVz!eo9`I@*#icI^&2;=w;DE#mVmJlHFV!7`6!(22eMx(M_-`4r@$_HX}HNKX+RLN zGhbVOQ~Ab*$F9PwGowZYN*Q)=%k=~`G}NpbkJMOm`a1c!%~4&rzTx)K;GrxYwGK|p z-)q=j{yO%CoA7T9lJP#0^bI1ANd@#|MjY< zG4EGM+o%n{huW7>TMJer#p^b;gzO#IS$={YW@E#w^8Yl{jcjdb9Qi%8I?O^sP5Iqq z0$m#{9JxMP@m)jT)88nm|2)l{oZ9bzHP)0Qv{xYPa^(8*)q)5_+EQ@*H zDDjJ@6jwnbjA<;;6ga3_YP= zl<(i;V+q?2i{=qj%X#OsZ`0U>ySo{VMRqSj08uX!@! zXthLDqe${UOY{%ex8)%H1+V?SVD+Y!Xhm}{G1P)fyRD@KYa{i$adH&O!%0j%d_echEu$hW4Li%KU??p>@9}88S}xbWW-uer6OjGg0$xUKxem z7M3Pfutp>3RMe1E7WIA)ZNzvdi?qOvgd(HY-jVAY_Mg#sL&t_6FR9zp!F>4f@?9+B zX&9U&nf^O?jsT@YOxfD{z{nkFzM;gyMDP%_-Qpr;Q5C;~X?)(*QLtw7oDeUJ5-k`= zBi?tQlere(Efg`^mvcb47RkM+2Ra3sK>6i4C@n#FMo6SMQ%(doN5Fu7e4CpP^Z>dH zB@iPR&3V|k7Cor3;dTzOqj-OuU256)F|o)ot9-NMD_U`zV2OvnWoo=1nroSjCC<$Z zGBq4$q2dv;Modw=!KB#m4OP)>%F5}-P~(gQj9!n_n<4J@(da&Nvumju!E?ppgW#nh-cA5eXKhb9e{!# zNBxgU(2qLFw6y(DmH&9&Qp~PFYVI-fLKJ$2a*!~9dVIe)vGZ67#sC$};yfrkB#M_9g%U?tJoXj@Y zu3VOdJNG>T=tWo>b;s_@ZV8`azhn{B$qKM;{#du4d@9+8%D22 zxnRApuN)8kvkiy=c?T08po`y)UgNr;p0WD`Jdn+U{f9$z@Mt>+0wRd!U~2<=L8wSn zvdy!pG-@mobNHEN6x!qnKA?tB>XH;a!W5FmoY(+Xl=IP-^iDMB=CX^*GeJ}3rhp9&VJ_3_T z%TF*FCD9#FH3@Nd8cas9)zvT=)ypD6t#omMIY5BTaO?zQ#mK1of(VHly zQ(@XA?x<76gT`VCA*F_;gbJ}B-=U@~=d z2~2r{O@PVNZycs?1Y>TDIxq^nGVLHAreDd|3t;+_m?ptw)MK+QjJxBpRW;>uHcb7* zou><$I9w#9Tvg#)dl3-*;i?#I>^pp`=?#PY%(=nz8Ixy2F8QQ!GbfB02f^t#&Yt|g z=>HlfCw1hQ9VUV8$lxQ^pKH8M)&FH44)FpfDtRSDXNjXf!&5O@InM|3t&R@nu_^`o z$-BUshF4F;*#WqqvKh|GF zOA8q*$QcH^E+ok7%Xow1N34IpFGu+MixH*T1vwRVamc0_v>Q6 z3>RvybC%#R_Qb(ZuArrOzLc6d8t;K{E)cs(UJryLM_ATVaPNjQe!|qsangiXQ|C*b z&&Mejl(b0gx%tlUy##@j$9vwCn^bl(Q4Qy4n;VX}#u2hE?evJ}NrZ3O@Q;FxL}j}1 zT`l2qhhaDptJ9CQZtk?c(*+KWW-RUPSDrkasm-;1Cr6F}2?tV!+uX$N!U#^u@N9c5 zY|{bG@tti=mUo5b2yu#(4z>r@V;GI00!-TF5il*1QVq%X9N6DLE_mt5cFUv5LUDhl zgwOeu+<3UC?0kuJTxZ6~gMCvoXL)*}Dv6N?(O{DVV^}%b5N;PYytFWBU5Up7Q{*Ug z8ZgsXiql`W9`ioy`&U{^C-%bP?EZ-LW~rIyJ0<&&i2I-BKIP}gk}f4@7`xemZsJ=D1nL6OZtBN-6#Y-P3h65xllZH%B8#D(S*H#B*HA z)lY}sn8$swFEYDkXLdd^(FT(*NEo>KQW`~*$9kabXx=iiZE7OW4R{Y zj>BD|VZ3Jc&K9h*)XwSF<=GsEW+EH+;@>3vBdg4{&c6kq{C5lf@kWpP4EM(i2DeGYUDC>m~zBjZ0oxu$s;luN)@KqrG@B#m*sQ4hKp zbPebV&^JIiw!aO^)z&+pok8CP?GE|@=w+ZEf^yaI5hzz1pM!F=+zq+`^h;3oLfSb> zeF4f5jraiv&qYPkJ_i(K6Z<7IT6lEHl z4cZENGiVwX5M1ARK{tYenft~`|1bQmy+o1WNUxM}l&BfgIE6{U6!6zPD3JOssv9+M*gMJEH z1o{;yZl_{7=u^1djd3Lv06iZx2zn`KG3Z#(fuQq2L!e7R!=TGS2Z3@9$Eqgg!wTw3 zP_CpVfN}*j5%eL@Yd{|b#abb@3KVT9wgwcJm9ZV5Q$V?o!rDRZ_EsTn=5CKB!>wHwt6ysWvKDt;nian~>pA~yXu@@BEuGoi)eW4iVWs??;Hztll ziXDqF#b75mCJ1m>tgm8Jx@+8BuGqDTO;_wz#co&ZkBU927^S+J@LpGJt70E0)}q)! z#nLf;8NZp13A%(7>#112Vto|jai#G)K(VM|Wr}gaHSWeMR;d`LQhv>_7Am$#vHKN! zP_gF}TdCMq#XeAMmttQk)*a)oNy|}=39oV#J4LbSip^4Nfnv8P_9w;uqF94sJb^QL zdq=TtiXBkwkYXobyf^9V<(M+8R~1{W*hh+eqS)CeMdSB;$CP0WQ*5MS6^dP>SdC(Q zJ7m)QsA7LsjB+hZ929G1++|>{FjzOolwqBs*y)O$tr%w`<9CE&qZFH_*ma6kD^{!6 zV$3Zj-X)GH1DpwXffU7cQjhp>O5Kg(7Pk7!l^FZ&>db7iS!^p> z69_=JrvHu{luoo_ab5)egSMT8&`Rw3;HLeN_=9=NnVbjncyt$nk3P}FqBGGWFP0$9 zgCXXlJc^(#IKrFDv`GB9yrqmL{&L>^pwal_c}qYy{fOtA!6;ZE7Rgt<}$WYFFlB`bKnv>yh_qw#-lS_m50Dll4n~X|B4;JdP1ouNDs)9_b;oj zKad4UzjTpH+?R)ki+gZfvjgF4W9NL5+(ql+~7 zm%XNb*1=EGhEJiqJo8Z!=3f!mK`g5+_5raRgV~vR-VH(T`k;5C_pM<4PgzhnIu(KZ zggF1h=LG3N#E&E$vIp((z5!1XU=WVIZ+IK+K_56!j<+#_%413US7q6&k+QWR@NVEv z{7Z!S1)O<9dHLS@kat(j%hGoAIfA!Frq9m8-aV&A+T6 z2%kvncT6jNt_{{7WKjP`X4ZwhUrK)Dqjz7>yEo|l#`{AM7xv!&AV-bJN}9ixdqfI) z!CQ=lc`dMn?ThjJI)WF;GuhP2*wi2}dKL8CjyxE)$9x;MZ)gtMXZlxc_b=P#X2rA{ zvkTf7It@rzJsLk=QuQl+Ss^{id*eiV%NK&0kBo;k}SNN@R|L=M-} zcn(49*syJbH_{5Tmm!({RoVU(>|^L#(824i1D42%_*X5?;~6VN$s%Oj-y?PmFYG7Y zrl4I95CacDZ&OJ{4aeS~y|{)ek3|2u{uTTE%OKf}!NXZ0`bW^);@ywLg$mva6}*ea zz(LwtFrB?H683IJnR4N7Z;&Ky4%v~GkT*RMD=p4A;Cn8ZvviE)6z;jUIuOm@VC>`#2?<@b0WeiONIj| zC8&u|*1_>|)p|VOub+r~`Byo zMa5t=Gt&tIZ}2uki!+rUR_|}U8Ku?fMUp)kE3H^-Yf+;=+8BlF9f&^Rdmewmk->?z z<~2xuT8*A%szGL3$R0=^n8@tR8IhB12`1xE{Pa-4u5kP*Hr9j>rw}N_f?d(L3DaqG z;rP=v7M6doa!QA^sp?>>X^yQ1@xKZ=B~k<}ZinTm1MnX#jBQ#$_I@4(&TE)zI1 zRk4x85MdNdB%FB3T(Sg|4}b3$>P*-A0N70XYpdsFExZf2V_+?smt7+UK#T9nbs$>| z;ws>}5`(xJ>$;+WT1u+du0(9g3f(mm+kI;g+o}G3NH>qrz6LGo?ZQ95(iH8A(6>BG z_>Vuwp_RuPI_wfT0KABOQGP~PJY_GKpx#cO?rBcrVR#+ByQj|{Yc^!$kDEID#+ef& z0Nyv4-ypfZYJ`QS-{7Mc~b~n>ik>ke%BNFd}yTF#&=o|2of`uThs}?ObwvKM_$^ieJ6Z z8&q;>*|>@+(68X;gKg(ybYV)haicA#RemN~P7P8;z&vu9DBfM?V~tz+$Tq}@E7?|~ zgPd%ea%1o50tXa=?FKN3R{5Fua@)kmOGw0bwmP5bx^_w>zioVS3J(vw)i6!2s+|Xp z*U1FVm^g9v1jrhJ2cEZghvVC&N6fTNw$i{n&nqeuP^?`*oQl|6OesUz0PntC$BWuI z4!|*Q%Zy`kI^ae)S~l?FSw^v!iTXup66x9`?v_w^|7Vi0q+O_NhsjWJ@iu;PMWu%7 z`ntcJFAf7oJ88kSJ?cnXXMaQ$%;uHkHt8;>b?{j^9o*{2)is^6SFzEuu$D`T&0RKI z6Hj;fT9@B>=k{vALTBEWew2-(;OBFdcRwuZ-h9LOt~DTmqtnA?~wDcc+`?6 zdemGkP~zR>mZ|+zyq{wwpOQ_e;_zx(_awNuP|{;A4|yAVrPxPlL&4qlb?SlTJV_kH zQ!;$rSz|6St&u5CNQTOhE-#|Zk&N=bh0k{CL09BQ=j@1Km8DDUC(+sWeqrv6TDZ z*WAvt48CESp)HP0n{9HqjNI2iGKk?tU^VQPFsgi0fUZVCvrKrqZp!3T6ucHQl8{>K zY!?$GSGSmiN(Q7NFh=WzHRt&Sk`N@}OqT>nRGe2*W8$Fjp48LnPRPiz_&NplVo{JXOYF7j$%Z^@JnEruaui%9VZVar zaRdg7tEKQ*n2!sdi|IXELMN+&X^Wjw8jdq;n>u2@=qnNK6))@;$*iJWO^MCMz$IOS z?Ub2ViGP;$4~U)oo%ImvgvG*%bC87fkMt`&Cw62#kr#mPk8zbLZ9Izb|0zZLrRP-0 zVmrz+Mlzlb7n8;B9qI1C4V7=`ZfJk*0CT4##w+cSRr`S0H=+zO!Mu`*$I-r&?mufh ze52G{-{(m~=q&fCD}F(t;D~JJt-?ZK00dx$kiOL zK%LbbHR5aq>?pG}D>X`%+5ym!J$0SDSlb1_NXpdJ6(3?Y12!V5+*ML`c8g+WrNcy_ zb{%&*NA#2Qr{jZ3EmtDF;WSH;Us!Q4FI*lNZ)8i7>Si>#3a6|X=ssUR=t_X@3l)wg zXMBF(q-?@Znb}!d0sY|2)I9;Rl{rP;Zbs%;c0cpA{mjaHW)#*w{0m6Kg8@J82UxIS z{Oj-FYjMSSEbOm?o(}pZXn)Wxpo{>kz8KfxpMqAy&rZEUa{T)`vK4!K~aIRYEblvSS={8SUCy%Kwovf?*Q!p`!3Lq zpk#^W)oTZgBBk1FpaVfs!LgB`xIT~7fSv`)KG+xZcc2h+5xW<(Kj>0WRB-GcpuD1e z7L-@BuYmpr^fgdk&29umeaCn;5Cr`IlvlDJf`&oK-ZdEXdr&li7{@P+&oNF`7))Y* zP+UyL&IHANELIGPI*OHnV%&~h4q6V%$(>iYoWsY0z5qG_^nFl_9kD#L2TXdg0?;X- zeL=x2Bv;I{K)G+64cZ6Q^ghhy3YR7$Y{+1foUa+u7!6jX*q_wzUlikjVcfl~*bc=$ zRSb3Nxa;beGFXoeh8h%8hIN`^zfz1_KobXBFHITNe8s92ODOhR#U4@YPl~Nq>k`FAC^kW{$%@^r*!_w%D8>=Ml>I)%zE`Xp`mu?(yJO0*iWIw0 zv1y83r`UYOsud&4hY62NA12;)ifvSk*P+H84<(Je6EPMTthZyzu+CJhpJEp(Hc+vP z6&t457{w|So1qw)OH90XDt4D*4=eVVV#^eJRQ%inqcDCquAGqb;B5C(%juKfyF_w zUW#!;W84i?>|(`+DK=9vD%v*jk}cNweL}Hk6^;SJ{A0q~qgbnA zUW`G;@5zp-i*=e}QN_v>8?D$_#ilAov6?2ld5XmpTcX(Ait*ysr0*rgUQ=v?V(%)p zU9lF$4l0&~3t1B$nT||a@)YBf4TB9hk2o8rB0H|`pZ8MjBk;K%z z+(`T(F6bih=edN7#9!f3N+kd^MB=qrx8T~jwgn_=e-X8tfjxk=TKc(L|X)TGVtyM#)RfcwU8{zoceoGX%=*!dKiUB<`ojf*tlP za{E$Hzb=eQGdJFKe14m2-@-HTlIl7p6SoGDcTS8=67YBuk0WSrBV_5A?(Vm$hy}K{z%Dce_DbMs|qpF zM(u}U;6!&N+7Y1cN=P#Y7lPRt9%yj&dgv1^|c!#ulosTih4?Ak>zA;Oh# z7>UpCfvD5Y^Lqdp>(mu41+R)xPSc?(uLgS`{087}~9J;I5)0{>(;8!PWSx zD_B77E-vF?-Vc%k03{5~X{JOyP!h%(UWZF||FR!Y^n!$Qah2y<*vi%z3qnxt1_`eL z-`1LMOgVTP5KLIu9m42af@A^-xPgUzu;m+@jd$kZ+#v2Sy&Jr5+H-JA2;ZwEDRc74 z_kdJ>8MP^IrOXY3=gTr@GdqfYrv@&Yf zav($!_YSm&_j;}*F?S{E+1`%gdacBJ&=lN<^`HAf_Js&62!@Yb?^YDZ!1(B1&!P1f ztiio8T))Y$WL?3n>jpHlEN{Jk#YSFk|A?~QPPnwnyUkAQKz!gX@Za%Q6eu_hN)j`{ zVGv48_9WQ~LiQM6G%?Z_D%cwD1b%`@;^uUOA4yz~_P=5yqjLtQ4>?YG-$Lp_-fjL> zLl2nl?%j%{1q;@YwP1T{0#|Ht5*hSngyYA0(VUUKRYR%U8&~n$-~s#;-t8qKQMnSG z6D^B{g{o)gyg1RnSIE9{UNG)s-)1i!Y)5-xXdTgq9188Y6HpLagxzC@7YR*dHsVIx zbPlj*fhz%KIN6-=RfiG-z#vmAlT-z6>lfeJpHryt3BW4~5)+_>vO_swn1XjZoQb^D z!LFA2P@+$D#4d&6^I$-{R#RdO=gLWD>1RVF#1i>|c*jAxV8)4jR z*K(djJ8cBp2s#RIaDUWErL#S(kJ>WAqB=9Yjm5U_)cXAyp`vZ`yF(9q(B2%3dj{D# zr-r%%9$`Gf55_Oa2|^DORyA%hZAH!YFHYn@=7z5?zGDDs zgi~Lz;4REH@se~FbUc^|Z#k*noQW*OXMRcb+9fDB`0j~7I1jjiuj|S;0Xq=ZQg) zMi7c$iS%V-MRIPiX!U{%G0Be&B_ge0Tj(!3JM9fYJF93Dq?;E~0I7uMFnhWT+p5gPDTBoPu|9wJuaeFO46FrS6a z^Hg@N4(vjU?o@5@FL)VQ7T}dZhQIL4`IqBW1T2T`&f$KahWmXFksINDU^)3HWM`fC z3YVn|DkJulW9{c@hRock5nB{GZ^$mNAr(T3I^?>A>>(>l{6k;E`ZeSqima_+W&4M& z4V^cvDP;5C4se$=!F7qhbY0ZO57n$71(kQ7|8}XK6{W77P;#W`#mixu~PKoz*@M8*yGT|Blfm}IuNFwv* zhnH+K#dwfYxtgb^bI#;8V^LN<7y7FP4z)nTStF$*IopFB69W`kmxSdJBMo|O$P1RnmQG;X#P?uzi}2E<2UiL+4LFa$OcN@q z1Lsj42CN;38{w}6nHY*&X6cVfXC@*nSO*T*f%d}R*5T|WzVLRk#h4v{ehJ_UM%qPt zIyqsr%HE+>_6bf$;Hpv}tLv8Y zLot}q41ba*@GTq$u>zpeLV7KJJs1xhWEb++Ql~4wLta0|xRTbj_C1S`*a$g{>;&r| zQu8&KjigzTve?ohHGgB4e38~#smY>On&8qIUbtL$R?qPqjQq0wL4kA25Q@(SKbq`- zFxH@D%AUt;OEAPPUiS^sC)+0W-6$A|9a%vWm#lqcUX~AyZ(erTqB)wMOG{}kEus8? zd^&2I$^uAzs=+IRqpw_Z z1~R%P7ny~?Ww0b+FYL1(?&1oNxT9NpkqO(5M3C+Hi&nzb0Qjx}y`VP?@~fUbdFqrg zsUj1Uzi12|UE^N`?x`-wPVyO%5nw1%w*&rpp@9PJ#v3c%Nt)l~a&gAXwaW$gYi70e zOqVL$*3upI3_O5MC>bZn3-ICyUMtL;9hxvTgvi|Bm%_nFy0XSe@C?rU2FZ2W2-pV+ z(7)SUZ_kdk84p;CyL6I!y%C6lodg8?BQ(i_-&gIo*Z_%H^cUmjL+3qq!cdk+1A_Se~cC z!+1)jcxAU=;D2K2y)Rx3KS&wuf5Nc{B}BUEIrlI@b38J?mED9l1RFi5h@UWZ+>H~) zx4D;%z-504vAYxjo5M<}X1;tk947%cu#_CLdz;@%6s61IWbP4Jlngf?9mwVDV7NT4 zWl>XFIa%Crt%Kje%#W?VS>L5y-Ql0sJxE%MxLU7l8My_oihhB#Kf@lP_u`%^;vzjAmn zX>9sa5yVFE_*EwBhgX-4V$YCz?+!b!79pub>z!T9{F0F`O^MuP32Mg?#^~n3-)eFC zy+$W%A#ijs`YHH!we-BncrI^BZ>AetN?xB#i7q)Dq}&g?`RfDEFN)(0Qa|z+vS2Ysc#Wq7j!+=IvzPPslVTZ zgultano?5la(;mwbk5ZiXK5mq9>(9+6n{xRxL@L~ZK9aiJgCv)!C8~vGAwK6f_&Mk;Ys-XW|%Fvpa+13p_9-NWUzBo!8Hh{L%Gm zYqa%5+L0aCb)KnFHS&}El2P%H!TeTsqr4E79cMd}E6Jo}h0XfkSbl+pO*obrH|HVp z_qv19f3Qd+OQ&0lO|;4{86Wp5=C`t2Qr5?%A?os&JlzNxnTBvTO0k_RZA~PwhCt)*m_8M z@8T40EQgKHa49nI&!p6;$-^*v{v`H~q-2;{6B$)#Xe7!cMgL@6AXhMZ61hH)5c^7$ zTvzKP-1fL7x>4|xfE)QWyqKeKC5oSK!(w?BT9g?wrbxqn(~|~gQz6~{kNDEV6Sto7 z7&-ckp7)~=%7&qPsYFFCr3)nJ^tQno&P_J!tHg`pbz~5G#okf8=fFNz>_#FF3vsR3 zr-1j25{ukYm@Mu&cI=V1baI+ItTOh$;UAbdx}{c)VQzFQwUbn8xs)4Yog|6wkJ88j z)JVIRMt9B$NGb?C!{JqP&RW`{zO6E4@klbjr>FA&TYkM&9kAqqEc(luZ zdLEV}u$%MIGd8wTOh;=kJ+)&Gt4l|>X)p*g6gT3w&@BOnliDy`Gg*9Pk1e1t-5TI? zlf+AZtfCRACCOx)DHg08BI$-oGT0h@hdq}C!gbSlakL&?k4%n!2dLG9e?u>@*d^`SF20dIF#+^=7 zZu&0kIM@112X}%%<&t^XRTT}R2hSO%YKB}?CSErR5%K53(^JJTM>U{RDICBvlU*ytncMKn;O8Up zx2)WdkCY7Iiqe%lG%ho{90)3y$2g zuvY!40}GkjOfLtthL)E~axKG>#$xd$b!HB1&%{0mts~Pq1%H`%b~-a7JZN1Dj54bVkqGyf?;5O=s=MR+`Pu3C zIuwH^`K<#m^F(Z@@LQ9$m`gy;DnmVbl0^<;mRTi&8k)+6O_u3$d>|Y4P_SY1WQknG zV}bFc2w^07usK?g5eyCu5B5w3DS+}|lfSr1;r6F9j4p<++RGJA*@3edSLz4d4YL^Q6mG|%-KZZ@cBd@MCjFqh zNHDo8Xm*1vw;f6BFkIWa^lSUwSr7Pa)~~5MFS4(<=$BvEAsqupnCjh{Ox?{Ki%;Ac znBs1``$*vx&z04LX{J2eeG=WL8rB>KN7om%@uNZS0*>d2F?Q!MpqvNCf^t~68WjB5 z)5r~{xF)MKrn(?QQia;^j20ZLwD&X?DNQgl!iC?}X3K`%fW=7O>--voLQ zD8y05qM+dCjd3)Mf!2Yd`Ng(?-V3@1^gd7z(tbZE^YDAneV|J~e*~qwZaDZO9szv- zv>bFPXfO1KCqTK8eHxVSEdCDq7tlvR>p+)-l9&4*pl^Ua1KI@o9B2y6@gMI_L7c>(~q65_04vq6sloeP=+O0h3Tg4Tetes2do7WO+pj|2T3=t-atfkNO_ z>=V$FK|cdM9kdm+0Q5vmFT@K$`+!~r+7Fb=CA@)%Q4}=o6eRO&(0f4727M6p98iim zqdU&35SjynpvHGXRpyHl~d z6njjuClp(u*gq9}PqFtE`?q3y6#GH39~C|MpSEB3i!UnusyVh0quH-#khJf?*66N z$BKQY*nY)2W8Gll?dq8DhDfoq6bmXAR&0u5GZec?v6~gUPq9BJ_LO4F6x*iQzZCmQ zvAv2Njgl~FKF%>^Sf?shpx8Nz6)DDbkMYZuk14A$id87acMirK-#Hj}OBH)uvE_8Wr2B*awQWD(1zi!o^#MOqu7;-jZ^G8#pWn>mtyxR_Jm?jDfYTzO^SV>*bc>fSVx+&Pj^f>5m78xu_DDT zRBVW17b`YPvFjDPU9me9`=eryD)y>ks}*}wvCWEouGklfb;i2a3i-VmB#vvtoBD zc9&ugEB2UT%M^Q7v2}`VRP1}j4k(s^vr^MGz$E3gjZ+jmU9qzjJ72L&6}wEaYZaTW z*d2=fPO(2K_NZddDE5M4s}*}qvF{YyuNaP@oqRyMhm((E6gytApkiUgE>UcRV&fE> zpxAYa%~7mYvAANtSL`9hUQw)Gu{RXkq}XSQ?N+QK&aX`!foIRj+fj-gtJoQe^;N9- zNZ0STj)`JsA)R#C2&(?QEK>7jZlq#i-XiQiBlhkWv3bMyc@*FJa^6w_x4(2IXsNw7 zn#iez3GNo=JxK^+8tp!5!Snn<|Hb}Y{1mj0wp(mF2lZ04sj_QuB^sI~U-onW|AYsu z#cxI8m3d`&=FlnJ@BLsa#ma`xdkFV&)`Fo?$k3Y!w&K0`3{kKAR$8!cpq+CR#6?0n zE8d!H0F&`+V7-=C4tUo=E@N=$Ngb5Ec<|Uq%s~88kZLG8z`m`@U26p6*1JdB696@3oRs_q(T-TYH^4 zb*fI1mp*3>+_2QhFSn|Xp+(5WaHYTezSvvclKvb`O*Z_?9qoH>B*LSHFmhO&`=%fE zY>V>N&4lgTP|oyV#g_D!e}RvZXx2TUXxBl|U&jY@E{TqC7e&^XWIwkm@)pv^4>IXB z$&^56Z0W~*L2@t;h(vhUu_*FkQSL)2$Ps*T6OSca5osx@cpI?h%Sw0-4#Fo zg7^+a4irb+j1EyC>sCYKno){UHjQ2)b0iU(Ne?ip8LN>4%kbIm>YMEBs=m(o+7DqS z5QSzH=lq%Vw&HsWk%aip*>zMUWa1{UYAdztXr z>Ce4wz8qTU#dU>!(~k>-h2=9CO8m&Mf)?Ax**;Bxtb})9k72!M6z>ZU9 z2M#?;L&piif~7x_O4*hJ{WtBvS))m$7Z){DvBL7 z0PQFrToETTcc_;y;bq6cV)#bccYytygR$>a_HV$x^I+^hDf>>a|8yXBaH2$iqP5)g zxk)%-z^1cTs(#@C>#`FCxX_suM?43O#lxUcGYh>q9%O0{4_axq+AR@ro5skasY6gT z3lCV6H61BrN7XDmU`H>=r07^@@Sw^DFcLogg1zT|#om+bXMz2!|BC%AviAXdpM$WYS=KpU;rdCJ#KiXxiB(2QLKs!v89C9xoe=CVb$*NJD269=r(bi~g(7 z$;oCs*lF?FQQ7@J2bDJU89iq9OUO zq7gkam{L;#KKuJ0FVC6^P`xa2WlI$dCaP8)QHu? zFlDMt;o++5;F=;X_^`gmzr!KiEo^tB>I?`_IPE_c^uiP1ke_X`dD?Z(0V>$p8v|W2 z(EytUMV$*WpM|Cf&pZ`Rt|+wiW*pzfdMP&Vp*YCjp=oW8Us213nmRq@?Ts+yXjI$e z5vY0Zk~A@OR1$1=#EL8f5rp}T5HD0;<{lDN+G%;W94;!=I)5hGuX?aRwIib8X=^v4|2_gJ5dwtMh}LUhs8^#s0aA7i$+5-!GW%pFtD zMOn>v$62St8IMU-VoYKj?Y&d=_>M_z+KN0YSuA%T3d$i8Mh&d*{zQ)9{$0ySc$sct{x7~YP537%QK48L53 z7t+AX+c7W2Gt~x7g3Q6VvML$^cak%qosVUBj(^E`p^<`Iy$>!c?B0zs;7qFBI+kdRp_);qHbwO?}fOpG! z$afNQ*Hmxyw;m?+2gpyYF{hTsL&w*Jt!HrgWK4r0p_(yfNYnhs)v=C+d#@mn#Xub+ z1MWLO*|TFiKRf~yoB83ZK^K9tMDGT@0Tec9!#wZe6zT$DsJvLqLGJ{84YVE< z|H5b}RwL*hY}&2`JvPO%))9x`Vm&C0hHU`lbq4fz0_a` z%ZCd{9gN0|4Ic~B_Kwu~Nm@pbZ~8G86A2#h}n;V^Arx`Bp0i^)VZJUoooPneaR)2@_sl+m$Lt zVhvWQ7?gf&z9ovGX4u%9ifvJ>RWT1r*@Q=B4ij&0#R?U>STP!uG1 znZxk0H5iO490sEbhry`0VXz&Fc`@-aSc>iP$#uO3%Ta8Y@{Lf8iW`QH7yi=av+h^y zkBap`cV+l^FxT(}aJg1Wpl%XxC9BHm5`cs_+cp^|0_38c%0T2J%8bLPPmUlt82P>g zR^bxF#`Ewt z2liAMQ~6Nt&;Cf(IWz&3{_=X-^LTCp#IKOP!UgLc&uxa3$J69lUw0|w#S+AfO)4*j z{fMfZ33as;V^__nosm;%RUehUvM6Ud?A3^L7Ym%s3d}0nxTvQnPXy01)gK8_9T= z{M~PT_H3yW4zTmKwTRrgcHq#-2lkD^E`JXgIyu0;S=i<80olm`_IHF`{wn+LOS0}R z!}o#lL?Y!Gv3m@bV?q(t-DNX=BB9G)4gL2eT6Y&YkeF@4E`JZmP7bhtDeUt1fb8S| z`wn53zXxO|2iU(6cKNI9`^p)^x6^ncNvP?+tL1ff*^EC)=<-)X-&f9%1Bq!7cKLfi zc5;AyudvJC1G1ANfZeo+V=!F`m1jqMN@$+QvvP<{J6VYx}X#N|o6s*1O7;7FXj_gg8}srwTGbr%-? zF_M{bxZ*MDs*>Nt7=I$C6;PWOJ>{8yjQ0s}?N12QryXx4p5sE0whK;2aFXB7&vZN= zNRAU|#~;S?e&sj=+cD3>^MU0!!`t~-i06IFV1@{1ONY4RVV^RXiNf}-^>~5|X1dg! zb;+k#7vq?H0j_v>2G$?qG8mRFbTxQY1AarWwDgD!g=?n;65cx3J=R3XZnCXX$X}*I z{=)L3dSNyp;IezGK!=LJpOzN*70>l|yPRfLlYc@Pb)Fo%wX|95hl zs}WR4}nZM;C2ET)_=pP zO@{&*R`o=I3{R1cq_byQOG+3vHS+Ea)?gf1i z)Pquk8JqAipi4m6@jVL4I>uvWb3va3Wu1BobO-3OpnE`{1EpML87Phl$?-C-$(Q4~ zANu@PLD|2*0ZKUujkX&(30*$xO2x+8E}u13F&tYLA3lruXZ$WwY>8rjQf#GSs}*}o zv9}eY#KeU6g<@`ekHL~{7Y@%VM%jr;b2r5(J26;Lu@c3q6k|>rzIlrAppL;_PzY`2a0{780BIn4zKO< zSy_s8QS2xAl_YB4h zcMO()*^tYJsYU$gGdUB!Xl-4-_!wJ}4L0dx(@(*r>j2aoej}`LZ-W4{DDrqVaA>wg z=BB^_p#?2mM*h+h4^X?qWN0qV*uyeA1O$<}-3=P@M;c+NesL&5BlZjZ(Go8frm*o_ z=ZA!$D0&v?KRuzkk|lw<%fh@%d}vWLEnFD&{t4j>2h9N;3Hqg{zOHy)YZD$T{k3~> z!S;8k7qFb(I(OalF@cJPK=ke~6oVm?DJY40!`v8eY`7^SBewgrRk7WfLv!-`nd@$i zh0bH+IBdbrOv1gu%|64&H{ za?Nhr_UJ2Od$dDw-n+%=p?Ak$R5x@~d9ZbLDDTts`Q_MfwM)w%y$JR(2>Eb2ZLn7b~0-X|!`g%CuQlskUF zF()b|$^!WEt5;auwR_Xj=N88ceu63ZY>cB$!H;&ba0OW0rFCJ5Y``U*nHn%GOgMnTSuan+^m|bNE63 zlkF#1@pJEbv>zBV)+W?|DA0t8BcH;@CGN@oztNHw zjbgz&jj1Bum`W->D~=9;3F&56Nn~~UyqEA%!P-4&QFp*q5*>mT^|iZyH1yE${?SFF zx*`;`sJrpb3gyy5MHx^0RRTwQ&JWY+FILEkD{8tVusx zGPi#E$(o-9=x&Pn9Znl-eB`FgqPgYh>0CE%=PeTF2cpI0Kr_6Hk;=vG$|JTrBd|BN zdw2t4fIjNFKs0}EtfhMceBSa!NyV>$XmlGol#+>Shl0dfPI)0GjBx;t*K#W1=)E;m zH?!U}mPjlReI1i6YfB5SDd8X*+mq3c`2uU($A#$#MDN`OJHu;XYu}GY|BCMT>$E|r zTSv>bNno!K4@5R3KD>p5?Gym1zB?OJ$=HVBO|h@9*cxjdzAESYO9=b%y*pDGOZT=9>n9ECOFJx10r!)V zukaZU&b1j!TN1*0lOMBF!`fko#fjxU!+INE#jtF~(w`E-+Q_iJ(XeP2g5SuA_CCX6 zI5t!1PUP2D31LaPc4$~T?Xc!KVKJwf6U~BYDqMw#)l3HLRcPu-KioNf*Ph zUzQ?jglx*OZMvKyY>{B##W*rbzl4$XZTMghKYB^~z@6ZnWHE`Ru9+IK*9ndeSbk4I zo8K0wZ3(2`F&{$JK+RePX%v}uL6HfOoCv^L9v~czLYo0<<3*C?M>p+NL9%fFnhhykFsN4t(fFqqbvR)aW9Be*H!Fu+!9 z`Wc(AKPwO^31iFUbt1jDN^3G3K#`IqMRh%K|HopOGw;b+yS2t;ef12Qjz6*qX^Cc_ zz0du4*17CLobe=3u?6wWp+W{ag)m?BdAM_^->HZ%y_S)+HX!~NlGvx!>|(2!@iC^bb8^ZNyI+!p$N4z} z@d(F*Ih?G*@j?!#s&KrPv$LzD^AwEbR^;ur{c)heg-rA!3e#-{b2nEvW9RFkB6JPt zhe-Ud)FRsA$a>i;dO82MU^MXCc#r?L@wjjSyho1r*MZk1bDdB9uku5sFe0l_5(P-O zKk}R1-;J+5&zhCey0#9+&R2O`>jSk7?tW~aGyZ{)qWLCP66{juk6(z%r5&H&lkY}^ z4Pfgy-tWrCts#gJBfuyA$ftIX$$JW-cjqI<@wMk$vpPlnzqPJr>TvymyR`vPx@&gb z#n?XUy%lL=$K_u>5V8!O%~GEO=_?IJz(6iZO`kgeqdX+M`BE2) zB3PTC_Vxphh4V23u~~}>^h^#bdQn{{CxBrpA3j=RHyfr#|Mc!VW7E5ThHy zOZ|~Gfr?)+8(R*pW%!mq!e(PmJAPI=2gQ5{cM}F77Q<{CrlBqR47ghfnbD=jM*6LI6-@(1|V& zw#GtGL73oQ!5~9<|4yI31QVZ7WM;h|cgUpA;pLfN9@^O88{LQxaHC^Szk@m$wJoSu zScBC^)AA#`YCm^vY4z-C_7+C_vX+kIv9rAOv(oc+&GJTeHD~4RP7m#F?v%G1kGq?b z@^+<%cG=6q=*7Pk!OQTx2AtB0Y)>D6^^Fun^kN+NTAjBl5V>q2?z7kyncD|nhlO}g zN&|{=LdB6E@zlKtpODQpe0~u=IUr4yuMrH_aS}KJVlc{XI)bPfb9QH#EH#VCw_-Pq z{@h>ttG62G_#_wv!YVy9XF3~Oc{esPUhGD#ZACRj#u15bA%zJ<4#er+qcVnB3dLsdl$l3rdTMFbt zl9Dl}lau65vOJI0K?ltwnPI&>di`>$}<|=}*T&4cuCk7rUh+8t&f6p5n;&P`?Pa)(2}>WrgzA zq|dKIGhx@9kD@}E2e3lJ2|*O*9RuWzh^JWdMiyh385u&ID91HcVccCcFIcfD;K4~p zf8dHq7em&uf?kkx)bPQT{ya)`nI$XTm{fb#n*21cXbE(0er@C6p4m zs(Dk>uI3STV`6NVgd!#AW#46d_P}4U4p-pldJOUTJ@qoe&+4$813d$m_$2Uk8u+{Z z==7bOZlNwO8DG~2pAnen>Rpe%#Pr&5n4t&`XLi%wneTLWWFD= zkhL1FE1|S6(0ik_5OCV^z?w$N37soS%0`bEg@#-lMi0OwQ9J@k2)a(>Z&6(rduG_h zA1!nh%{%g|p{Q39;6?;)UubeVT&uIGeSZb|u@R`GUW*qCzJ(cw*Ln;tx4eA^uH)n_ zjj+5dt{>FJ3q@bW#(>v40=4>id3!QkImZ#phs%UV^9#l`8m_JKHUgIkuMsX@!0NSV z!pmT(=xz*OFoUOT@<%OqITp zI2OV6wYVOD>lX3BL+`)JcQn9NBiQF~)ryNJT1~2sfXk$+J6v~3$WKFM%7k)y7FwdD z>K3?o4XzjenG+2oz*}Hl3}5lz9B^?uQZr{-voeguSr`Ts@F~v} zn9iHv&J_#H+*-aEIS=!57L9q+GOf|xKG}P=buTWYzXm%$H^C@fZ`W+ky|TN?9V{HG zm{?UYp=?TZm82t#5SHK{%;|N03hCgEVgO+e!S`|7l+R4p*{By7JVX^cz6*Yw_e+@T z`#a)b`UitAwKMsivP!HIU`o_nW@FNIaZ-VGyY(NdQqq;_KEt)ZbGsGt-Y6T>wBRY1 zbp$7m9XDN)wip3XEdav#tj$Oovx7++DoN?)>u8PdcvDAXlRUojKGWjHC9QjR&~|fl)Al8G7eu?I8JeB@*PBzAo049sl0ZoDqrdyg!LK`vsZ#5+wGs3#Uw- z3eER|%yNV?k%3u9XMK*)uFgodZq2B6I|&^t?|iV}@=?c~9XsR31EWFE12r6V+`GZL z)KEuklwp#Z=kRaGjj>tzD|D#v#GFNLHc=SS4tQFjR@{+6?UZ9tXcP&h4@u7W`C{OlM#w zB|XJ2|Cp4daC1?9CMDeSKVEA2v~gpmqKZ{bm^yA6&m|cDeH?b%f5w01znA*YZ|A>D zJO9)NFh?~mnpSpA;3jx1$Q%k!kBi68IzNt#;DHEc#40I*Egl{wI?eLB@?BTD`EC*_ zL!t2dv(8UzwC?S6thK7sjj(r3e=h4g@%N6Wmv#SsF3>5+%x;%3-a=v$RxyP(v8PY0 zx=|9x(wHWZWoEr^*G498ieRT?bg;Ikdo#=~Kbzwo^i!5ayY(hVS<2>TN~C+ch^g>l zBA$F@nK?4R>c)a!Ck5QaRRcYTttfalRjOu}N_e?ht=4lej{Y~xmDcF_AY-j7wQ~pS z#?H@Z)WhwFoyyR&UDVEX11^hILA{l?^VX-GH>znob2*u$rz|_G?4sasX={{6E@Q`R zy_4SE{h9l;Vh-ZaRt%cH=P9>iec5UHrziJx_PFB;BV(m&X0;e0UB?Zg$dQHQny%#ZGGG@9G7k zv%N3^oC9N|=Zc2Z8t`wH5tE14{F!U510jIbV3vJ>6jz zH^)6fI`PM)EXKh?{8bajO~dg(o(?L=4C8wjOFq8r*$CG7_f4KM_1ZC$Cf+oT{j)!l zX*opVdD8tp`o5X25R9-6v*UE`<+vN@6|n!!gJAUIvX)7`U|K#yU+!q=7&FObV==B@ zTdA4<3&n1jb1*(;zF!KgUx$vccXgEOhNLuTwXj~Xk4D#0F!9Mt(vI?!%t=Si98n-Skv+XbtN5X4f^AFD=;` ze#k~QOK=0a>J)4I#7Ve0KyCs!+$xl2MlU>50@8uC-x{#FH=~E0xX+6&M5Rf1wZ$)AsMn&_9_aqb+% zMZS2AUua!!4Ra;K%(UNP&FA}9@ZM?05g5Wf#&f+ZD`|xFc2W=2G^aKt7GRlVv{P9) zb+W8~d*a>2L`e%vn3p4>OG7)Ta+%767AigE(YVU@bC`2p?Ox!$O}Z0ybH7O1o4n2F z&RXmW$(k`xT1h9VbnGQJOG_}{%nDj8&&xbH)^w?~JcsCf(;;Xvk6VBD?nyHF#u~-> z6}m>uL^?qm!}-RmC48o1w4@^}&y2rNdW;uc%y;oG&#${Y){CzAoiM!Mf~Dnj+S{dx zZFeW3j(5k|F8XH55Rj`bx=WAXl9nKL<7J6Zb~f6G^4}t3hY6sj>!5 zL0AhVhRve7moIL6GF^7%#4*!^EemY4GRC8G^p=I_OwZF*x`D(lPg@L2@>3~Ej|9TJ z|6HCAmwwVOaY>(lqcCug`a%XNb9EF4sUIYJGvz%8C=9RonddcdWy!O-gn?Ont?*y( znhS+l7G)D6H3QBU?$cnW-5GH5!Ha2wnMjvSnsOCqpQs=B&=r!mccM+38r~%#Zx()(O_RDX%=0}uF?N`y{HKjCYd6IFg_(iAo)Jsq z5q~VL0y$s%S9$+-=ljqoI3fH~Lbmpi3E`=BzA|qixad5_^^mp9oo!9@o@*`lCR^Wn zGpy-JpSi!r_`*v`(Z|?Dg<3~T|U_&ee8N(4g_^8W9xb3MD0l7JV8*6(`Zo9jtOE4$xr1Ez9aIfn8er)~ui z&)ZU$zLb8Gb?X_aM_H0{LBwG?{YyM2SYNu?2AESA@|?*>nd$VO2i8wMf427=*Z0x` zaBAUHZ>}a11~c5g!_r~>WYvC=LE7z*Rq;m&sYu>)fc;hKr{U)SYx?$uQgS1~zk=Sa z4V~|lrK?l-u+*%$@|rRu1CX$2_27NU8*?EXXS1|Tip7Tg-pS(}nMQL4i<@rot4!_- zo)ULQPoLzDGIQNAl(?DroOzCP2F~PiC*N3$I?r&Og{}3N>k1@mY5GPtC%my1-astMg*&UMIX`RkX>zJ9= zxl>xlBT_phd(t{)0Zj6xc1-rBC83cyIdP5VG%OI{X9g2a2bRe5Hni#Y(0(t?OpGUp zc+!$<`XwKd*3p;j^&FXcZR$zMKF_hBr{MW$JSC@{h1I1K&v2`CuL&QhFn5_&xf z1$h*pT(E9Q$3XbD8NxSC)USr%?PLhvoFg3&IaF8mj$hvw6F=sf$gAOoN;iJxXcZpo z6qG|gdOJ>2c?ppTKR4-Oyl2>VdMd2Ly|<(NIO#)gWP)ZzD3qXPNq4|2+-NQy8JjTU zE0t_x-FrlMGvt{I>q>bxXI{+UGI6q z&NC7+Ns8ivxkHgjX`!@~j5OFvN;y0=4V5~HCDHMaw9Gbl)v^59ba?pz21hB0_G>dn za&AH-(qVb#+?<+(F3W@NumgIjlTxp?d#$SzdaZN!*=v0&UBLC0xq#F3T1M2j70a00 zt@m+n%_;wn2$+0BT!?m1NIwGIBzfo_)^Qs3N%X4dHX03} zEzEE;Gj{+pN8sWch_qF-6F4{T2DmV{G&^m)x~&CprNC`A;j-`wjZ=g@VvR^P(};3A ziGw=qDA^lXJWa<S9P+$amQX()Sb2(zA7{Uof#1N7p zV5ZoC$q@ne(cos9O>){T>G`P)ic4=ND6{m&;zm-$CG`MTVIgX>Njqoe4y!#g=PM?X zvu}N6X5Vs*@dtbvBqI9bo_Y%wsc!(;D;+zoDYbC<8lLBYZUv2iQkpg&v>#}c@9k$w zZ~06K?;W5GpbJ1@fyw#<=!N*)yFmS*i$F(%-VMrm2k~+C^C9SM?!j{gC?u(2_M#7g z&H}~maX4&0-)cYKZa)u2n*WIR$KsnF0i{IqQP5GKOF_BcgxOX2Vf&ejJS@V(AAqg^ z<=)Hdpxhf-56XR)H$m5@nCFi{`TPV%q|Kllnce~24EiqUFQ6ZSa-Z;H(4&!;pMjnU zx(&1l^mEW4=og^FLB9kY2f70^4Eip>tu2^WImL~58qnPWi*f*uDt4DyMZ!Z>N)V4 zl0_^d!xU8zzYr8_xo|n?G|+0$8$suTGM&pnXM(-~dOPSlpbJ1h1YHQqjaMvn!_A<7 z0Oh9q-Jq1=V-XlW3G^P&Q$gsKT|Y?ll9@rHckQO z!+7TA;}f7OK(RCq$3UM1rI6z(&<{bM2K^NDFQ614Ed%`#^sk^97;^sxS`PXGDECKS z1f`hzCD0ped?6@Q^1~-#xk-E^=*ytxpv0$w;*ekXM$p$mx%2b}D6g7W3Hm7LD$rL! zSA$aE*a+GHiY0!y5tQlp0<;OV1#|;wc4y1l2znyuo1mjX-vYf7bPMQM(6>Psg1!TK z59qs~uY$f0N&Ybq9 z%LhA>4mQbl`LNsQU}41;Dz-?mrHVbH*mA{QQ*5VVNQI=phuN|d2YM(Q%TkOx0w#Sq zilN7_F|>Jc!4jQfXs0$dRI!L+sNJ?-)GwRwF~v~kHukDwpDMOpu^$xsSur2RK9i@o zmeh`;hhjYy3n&&+tX#3NiqVdq32(Y$3l&?W*b>G5q}Uq8U>ng+%SVcRs@T_x{aZ0N z#%2?5vhBiZK(S*LJ5{mM6{EJK@yijPE?8SsY_ekaEA~glo>J^t#okhk*Yle2zEJF6 zinS`{!3@Fh9c{Z(t>YByt=PGW6)JYIVv`iBR4lC69K{wZ_Ml?VD7H+o*A%N)>Ju`0!;EB2UTe^zXxVw)A)q1ZQyVPC*bpVxN5LV{vckT>39>tzg>{-QDDYizjPZis)*lxvsQ|xrip-mjUY!?IviWMlv3kwY&FDx`^ z9myI!%I6uU>U`xWE*!KCFW#a>eE6~#VLY@1?STNuABiXDY{yuoOno-Uu&OR;kl zD^Tnr#Re;Oxnfr%N2V~v5kuHB0`fE>{Qt4 zX!yz%8>?8QVpWRWso33$J)+p-iv3lw7ZqzzET-5N#okryABugYSQgd{Ce2-J7cS~l ztcPNQ6uV5Z>lNcwgXVi5R_rmwc)_5FgBJ`MKCWd9wpy{b72^uW@cpdVZpD(Z&M1Jl$dP;0VQzR_tWOaupk**f7N^6uU~XX^P#TSgm5WDfW_L zuPFAdV&5w^2y04{=F4oC&l;oHIK@^d_PSzkDz-&2*I`b0P>Hki09y)n9ET}(nqp@v zHd3*2#U?3Msn|Tl<}0>Xu?H1sA6|2 z_K;$aDCUMt+W1YjT}ZQHhbuNkv1y9cDt4PDEVy`N;QnB|H`&hBx6oUe@q{?R< zV!KkULlrw+v0jQ@pjd%oqZAvX*tLpXr`SxzY7~1#u{RW3uh=HVl5r%_k06uU>UM-_WQv2I`Cum(Qxi89kGhD%<75nM&AT z8xG6#mD#Y}cDa8TZZ;hlsCXe~8N@rVr&JWVuLy%rkf*li=PU(Sf-~k$QIDRQvAuv!2#z*ISavsqr8s<;1TpmT3p17IXO%C;-(C9V`!lEHymNU1yYMZ z-GmgFiSP#Mre_4AllKN9y8{j1x`Vl`h-i9K0O!}EXZ;0!t?>(KM<@u3ZK*icABg%} zPi%$w1_ysLyt8p|eh4fa`F|6v=JPghQibPs7|p>k=h913aKirkW^b%%*w2j(gG<*n zHe69!ANyhW2Q*I<>aZ6_OHI&`&3v^r_QS}pV_Qe=iLDyB1|enkoz1`bdzqX7Ok@0? zr{;5{=7V8hGBx$lf_UTwrLcWw(v{YMZ=JOK2)hA|OvPD}7VH0hQu@b}66)YhObhcx z(qiX}_kS)i38hru*pQGLp$;jM1ShjlMB8B}p&7*_MbyI-5o=Zk4%!E5zr{^muk*Nj zOZOQ$FfRiO6tuQn8Or-PJ^DCmS4r-_E{SHn9L)Xs|3xiJ>!y{=sbcNYAA>0d+G>&1 z^Ww2_Gyu}ly(%ZaxbA*7%TRP=&cI+~M9*MkTAxP$^zMb5`S+4~{vEQ6wc}B?LOPye zGYm$)kWQfNz;9jh%G8}dk2JG0_zkc#ed2c^Kwu-tZRY?De zMBuaudNL<~>E=KQ#l+@!ws;7gQ{i7hZ@>a{~AjHw)VQE;%ZVYdjX?fg9? z2Zpd4WdDq|Tt1#$)==ypV}Jkm2TOU*jUAkG%mvqPT~t=$FPk=@Qu%w@0Wu)+FK*B8 zAKZq&Pdol4cy??m%RygBIJSqN7s=mRkCU=|dFCGz(^9ycBUJD?Zt_)C@e_rCcFgSJ zyC9>g1Q+Ym6DrHDtR7!BaqM*Dkx_lkmi)QReKLx&5}G>CgYE&n&{b^Bb9J-6aLtzF zT?4*9OIi7BzfjPTkb^k+R177;YV4fWVi#*JPL^F@O>q}no89IvF4|N+T>SpUnqu`p zcql&cJGl($f)<27^9ekEC0Hen_RYa=a}9PDYq4AOlDvNw?|zi`Q`{Y)%yutM%Xf3l zfeqc4Q84Db5q8M%i&}20PE?d%!P8#xGr{eKLi$qI8-hQN?8NRFeiyi=LW#2#|D3Z% z=9@Zr&I7g<|59DwS`R~Wmb%mV64o@-2rXd~ak;#>&$GdLOw>7F!gH=f@R&l4>)lG9HiwN6fFgXactdt4K+ z4~UaYZohS_`*iCgl%G?ju+xb0<@aFuWveD%>+WFPh8_MnP?WnBJ8>)8eUH{~e%jY6)l9-!~r^HC*%g+CqU|B&lY3WeCe7?(5LH!>EgU zK~r5_tU6aJjtCrL{pgxz^Txlh5Ip7JZozrrT30o0S}U=hbf;Qt+<9_S*+7ZL{J}KV z{?P(9RZlAM%r0wyYoMr}Ovf`j3MkE(Ziz}8VFl6EP%~qm0&ThzD!we_EBqValCq=v z51YGz;$4GteVF2Q1>r?$Y_x2Hq822nVrkllX~J<+*5#6Ac#j|Z>E#g7odP$zPX7Lk z%|WbSaCM!z;_F3F{IgyLT>*-J;SWJkVqsSOS3%wITMx?OSOt0nXbhAk*aTVxN`F^@ z(jS`<{jrJAA2yVQpEZE|*Z>uNZnBa8Fii5ue>5ohvq2gD#h~OL3Ci#}86^Lspya3N z7xLqJF-g}dQ2N^nN`Jg;ir>kugWq{HD8KVKP=-e(7KTTq6^1tfl;K?ux(bxWkQv?| zKp7r~noXcREGTuPIGd|<`Q&;;gN?M`nhjTjO;W5*{YDkLPcf**NXR}pENc96W^3YD zqkQWXdrz^C6#G>%^qaQdPPQx6%2ceUVrMDF`eWi9s~F4CV2c#PCc2Gb+uV+0y<(db z`$e%mik*V;G2xwNyL{GVij^ux1Hp!GqGG%@&S1E_&W`s*#a1Zxu3{f5_8-M|Db^8X zYQpPeyL{I1ik+y~d5ZN@jN6^Y?^MNRD|V}5k156hkUo4CH$IJDZhRW7BPLx2>twqy zgHo(OvB8R6uGp1|jaO{0Vs(oBRk0Tpdo9U{x88R7V1ezExV7$@Z!+Qa>fNZ$a$uB9bEaPkcqQT-7hpPH$GE@sX=b zi|*Kq&&fc-hQAGOTN`We#>1sK%{`{imF(S}fsERnF>W)>F%4gVT4EviweWL{WP8K# zVR*=xN9*(Wy2A(}vX5fhOLuU=wqPLY1=EmIi8MDM!puV=_p;vPZJE_C5FMIRRT5bf z%3T$R7Ufi_Ijh*#QheG+r3lk_3Rzy`4Y}ZLZOB_cio&-D=n5 zhdkRto}H1~SpAFgcBIdLn)Xy_15Qj{S!h9GA1lK+p2?A6jyANYI)YaZ=Hwg4qMU)o zF+Zo=IOgP3(m{(^VdHoqXCWMc$O}13gg%qQ(J&BsFlPtp;>i5j+mKp(;Be$;0KyqI zSjV(hpr&yd*wmudY6u~%)!96I&zYsM?1UlFIu(*2ueA}bfVln+*E7)N_2Rx0%St+) zuAvCYSdU^iohE#T*`1o#`iSL>J=(Y}s6)_=^l4`c>N{|;;cfz*cLE&pYqO*rH&rb_ zEgQ-Ojoc+GYm4~8vP7Os@Tnyd!XsD;U66VD<;q`JHI)Yj%<@n!j_??hBeXX3gM@Jzrs-bHvL_s99r}Zu$)kBGUkOU1%@OKohR*g^BopYj`uIEZ}{*9B4D<#RD@eGgn z8S?-<$Cf0|ci^P&1j&klczX_6tQC@7`QnbRQaFQ$GAR``@hg*X(=;__$|sxCnUyB# zoNN|IAWtXQO)&Nc&~_~9Md7wte3moqkI#e|8TG`DmB_A@$Wk=29Qy#*EA~%daA@DJyj9MQkdz! z7M{+N=jT2Cgi{r_p?RcvYH<9hBstl0MCzrA8lCm-rLJ~_p67{IP_ zTqpyFhumq$caSwR@{IzPF;(Lv3d%ahOBBN;T|5Fnfx@*{jx`4~FgvE2EPkbu2Q;Q( z@?b>5nhhuF%{rZZ2PccPc`ynL@zMZ`Ik@;dUd|Af2C3CtN>|GBRupZ6DPD$Pjj5=R zL^9B9sW9<_%1|Z6?>394KYZ2|oYIOUidRvyV{?Ap9S8clOyuwc;bac-;J*3gWZ?MNK%N0l*ycm@ezVazxAOF~HTPdhqZ7 zOPa;63(EM?Z5v)WKlX=Qx*ZAN9UB~LL5~#fsi17G(?Bl+#X=&?La7Gb1A09uoA^zj zY_@Yi)9vRh&{=q9gSZ8htt^cH^Fhfs29*9-Bz*3NFPjHi0E(rHEXn4B-iv3(%ieGS z==-2|f*y%<-vxR$=ps;x2=4)9zkV+$mrieBKr(u%bos2&id|{DeAZ;e@U`N@XZ=Aj zglJ=rD)xk8&nxzlVrvvzuh@Hvap`2z!u&JoYgH^2d0{Z-qT%bU*tv=oDt57A;}oNK z&iK7iF=%GnSe;@~#U4`Z5ycu5iz&86F=!6k;r&}NF0xI$)L%8W`SPyQ^$Ze@v+dmD8-YYoA zbXO-w)^2I>v_zilb0|gk?-fOGuSF;)e+PoHYG3UM6tnUrcu0Sv_ANa1^`=MBN?~8P ziRO|q4<>(kF!HYdHB=K^ej#2Z9GIaFMCa#(0SlP^+|LdFOoe6H(xUX0?-kQJ@tbk$ z#0BXu&-aqIB%1GzY)N0a21bv!j>nb5=_}Xa0$IE-@?OxeJ7fHomhqk~<2{?l7t{^) zUQm*|v3hlLGJ-3PY(px!1PeqX%Rxes+As;f2=j65VZ0Zq9SQ^w-C={?Ovj5Nwet1R z0oh=Xlm;qZB~(23%c|3h(%*>i%jG-qz4V9AwLfz$mlODWW7)m=&`@M;Fgh%|#8dBJ zoH#GRXC+LWS#&ya9zANrYHXz2b7%HilTtXa;~^-W3eb?Pxb7w#z@nUy^yq{kr+ zz94hV5I#s`J|?4+Y#E|47fqzccM;QqF!@JDp#?Y(yl? zE9bjV9~fkQ+qaU*^c8N0JKlz2!Z#rE2fVGvKj+8#PiyoPCA?sRr(mwZHi6m|W`Ud! zdO0X+Xm})OA?Q@li$L!H4TAm!6ujY8paVf!H3orh104){4C3MQaiH|asxl0;6m$gW zG|*9?(?QEXDJ-o3{S)XoP@Hpu5lbtK^G4W#F>|2>=mpGNh%O)fSq6hoarv<0L<+G0toZ#w80~ zKAzdKvF8-SIVT%?U$HEdoAJv_n2g{2A=EO#<~v4D_Ph``!mu~BJ|Z8o!!{ki>Gx&e zz>PEJ;+VPhvu?sY9l{hJo6=XhajBKtmde#b8n!;RJF}w+fOo9Gtb0*j(~S4wJx>PE zKy+AsqJP}PGT7VBfB(IHT#^zEx{LB;1e)Zs}bl3i5Jtq@27h|NmkbFx^wM!5hklSG}~~8;IA=kM*JnV*-bTA{&HSMwkVSE?3rCNK=@8*iYRE%4dE7 zpIM)-0PO+#HfpBnhv@RL-?B0ESmN?=y=h}ND0Yux?1zkB_CqE-_Cp3+r`Vf{eXrPm z6zhcIH-5QNH-3*-j6JTw&Q$Dd#flZ9V%yKAjZj5>FnR~Kaf1}nW9;ZDiAsN|whvkf78=X&mNNL zVfW!AAZGWW9IljXj+YbQGW!sfaG5;^_GL{S`L+fwb0@{!aGBdKIP1yE=3CBiJ~@`I zui-lHIJ$m@>r-)2+Cz&EUW-zki?iwCY-WpK%iy|Pu;1V^E3)&@i_A$OUnyK>C*%dV zo|8B}hRfXj@daEDOB}zzWp+opA|EyjUk+SmpX3s_ZbB-&)(E)P%i9XLriuu2U7JaHWq5Fp7-Pw(gRp^`HA zX&Cp;ktJ78K%%h6ch+^)V{5o3pjDLWi4PPJ*?ge$@$;JSd1))@CFYlp1F4@Cw#sWm*# z^Xo1@Dr#oJu0RqBKJCOwj5Z&EIGacufhXY~P5LGZ%Z~>;=RItJ&M(7pv=NpwV9tT^ z@zxQRFN3?iuzWc%))Qwr$$COFI`zO=7Y4Xsy~wExe8FO6dBa1zyq)#kX1sKMtlxcn zxX}YZqYa*7!8Qim2qcWz5^G-gKG0sEOkHnKW*usExE1t#(0pWfUr-iZKhSDWWO;Z# zDBs@?S^&Bkv=H=b(2GIcZmFcVV%IBnr($<2_PAnCDi%|0onr4Q_Mu|`Q0yzkb}9C& zVk{GrzD~BwXZ2MqU$LJQ<6e#VUS21d9l{Wg;|)V|G6Hx^X(y&#iVQ2lbfh~X3`9|B zc<5m(jyClEwg`U4z5@M`TOdlEfaxKg%iE}6gfO5}Xo6d(D`KI@9>@~cGK5g%L7{=V z`8i=cJ9zpVbEFgYN6tf{CWY!Alt~zF^Gd&ic9=Nj5dP>Ss-}PFUvXI%Bro@^8@;{j zo3HlQ?BXfN8D3l_KMMB|`l*;@HSFquX_No$?X}x)SwY{q>(ifGk6Yf0Ce{x|>Uq(7 z1G`B-E{HG6tuOMdLO|5bndvJ|e{L1v4$ZjKdKG9<`g8R-TakgWd=jo_L=4dnEw zvbO%s65KV2i@^esHzRX$C==(q?y&b2eZEA%)Io#PAFVd z)zkHJmhnQ-{uUe}ztq6Hp{qJz5sf}<%*~9tcC9a1yJjp7tw`Mo%CUo9xGs*W8#|F+mU0Uy@0fI|UJ$s!N^ABaQO~+N40$)!tSxPujOR39#o~&{FZ^< za%!#%6iyeuxjlQkY$HNGx2P`lb)yE|#d--E4s2YsGOj&nCTifl1wP4sf(I? z#xHhkV|s1VO70cRSHxVr$8ma}9$=adSA z1b!~hb+Ap$F+V=78esE4=7R81=vFpDp>Tp#fbwb@{KNDK=AS3ZEnf5=7s>P$|5UTU zfQDa|XNL7ph~52}VpUth48YiAvV_U%#H%h$n3dzEPQ;9?0#_#`gdIRwH2A{diB>)b z;@SMVdFriSTw7t?pBB@py;3hPu7-mCSx};X%ypsr1c`^WQw|JB+NV`tORM;jM`eS~ zm01sCphjAzT(@ z#%FSpy6=-1?0(71I^?n_s5cuASn<&O7JkR5Uo;N;XUPsxLt)~TQ@_86 zOGHcXvyZEy_^FhQo*@xj<+;=P8ii$o$ai8z0vSYi@Ua5$^B||;=c&1K&aqi_p_n4` z^vjV|tQE1k`n|$L9l1d8pV8e|a zftDNh#wrPelc^l0`H+EGxKnOZu{%^Yb|MOoe$6FgtP%9dN>$r~A;|6)4`}ceKRtel z&9%t8Hi1Yjo+c3TdaRbKSez>)AyAivmHJMyF@S+Agg;w{0@Ru11GCk z52xXBDk&w_lf}Z)U7lHr{iNO;EnOCOy6WZqURNgsd=&m&V6Bk)F$s9NyzA$YuFKRh z1TPO&e86@I9*~eCwuyNvT?T%6U_QwE`0rPS5Mq_`6(x0f!1qw3M|ei zos)J=L*)rIzAziZzPiJ)B*(W^(J@1bxtX1ZnvX^ z=(46xG0SmAa*PCEEYVj>URCnQ86C0O%#YPZxA5kU&e zFcW16)b}i_7(8-`Q)i?$8AE47fe*tBB zIHkZhhdF(Mush7L@+MG@t2cvI+xRTdTky=e!MqelxI~xFLb_~>vpIt?vkV_|)L?TI zo2S?diY-^HQL!e)K2VIgYQkehF>z$sE+3AKI#`ZkeH81f7)46P?@fx`s@Uy{vDY(v ze^l%}#XeGuqI<(fF&_x>^C>B#}onjP1nY2&{ zWzv#{@-tY5?LuBD#*G5QSFBi2vC9-IRcxGM6BT1!F>&0e*kg+EOqz*<3X_I!gJSP1 z_OW9BQmk3A!@Q1Ps!p2lPE_m^#d!UIiQ_!Qf{K+WcCBL9DK=BF8pXa=?B9wVn&iZB zxb1?WJ;hE{Y@}l4icM0iQn9dNa}-;o7|m^(?_H|cGm33c>@CGUR_rsynicy_G2EqV z=T)lh@>yppcD7>0iUk!bRg5OnP5SOt>;c98tk~0v{iIlnV%`o;T2gG6&+4LBSH(&d z8>LvaVmB%_SFt+9epL+14?E47wky>-OtC`6E>^5Uv8xn&NwHTHTca3F!JB;fNU={9 zI|gHgsi()=E}wOtV*L~gDpsP{`-*+6*e=C>RSfsV*m2+xgPoS+6+2Ne8l5+3;nndb z%_9^mQ|ubWXxhi{eF@o?@w>xz`D|rmYCvS5A4=4HfJhEV5k!$3zk2^n5q7!o>?(}* zcpy;mcZmH?arU|+n`{MzuS?Sw#CD(7Furb1Xd60Q9!SjFFymkTYgQi_s@RN;{BDk) zKxETG*|5KZ9_otb4+L`%r}MssJg|~cLFt%b6hUCz2QuWIz_})e6LL=O8^dLU$dUIb z8vhXEPVKK5>9aS(5iM>NTRU?kj6l>I2t~aM0(mVrWCo%J4CU3Q*Zv8-k=Tjp7&&Kl zXl<%(+SytkYsokfu$8+b5WP4%Q1Pa2;P0L_r;2H6+-EwGPtCva%1r39i`w}+yIzlwrJ`bxVPqJt5fsE5=Oqj_u5K}f*96fCpo3sX0SmolQY*5nO(8ak5e>u12_6p}p48Na3e~(Xhaa#}eb9+;+!&FNUZK+6i|b z1{XY9HJ}fi0EhhcDcqGkbJ0@TB2bMBP@6EZF*k5RD2n;|z6GLe%v@QT6*1@RXZBR)o=&XzP|9}L>?koZ%xx$0 zP6U10`C$`|ug&xh80OkF_^R&0zC@$UZ|9xePF$R1E}-K|jP;*4TbPv@q%Pp2+B#SF zZ(`TkmXu1e2jYqNy+etcRS`djEjV$@JQ*dQ=Dkb`7mUu9`4ezs8yCM^5n4WhHw=>V z@g!j9VCk0_%;;_sjI)?cT@-aX7%)VzGC>L()(4QHt0J_Y=&0u5g zx3JEqd|bjAzD0`h3k_DU7*b(lUn}-+#e7JYiQ^F41q-~2Q5V33$5w0jrYLrgVqAt9 zzNZx9mm6%8Vp|paR51=mhL5KVO&osP<-=8_4#u1_d`lFgu7$ytDfWV5ylu#Y$6MSC zUjVzIUHq40`yQI)p~(0C+Fckw??rxaYdWJK>WzXI4^_|ysMv{p?v79&1PKOf>)oM> z4@z=B2v%$f=57u&{L}4^`uFyarqwj;a0h?+ptU~oK~XeoF8o79at?_Fg9*dEH8h^! zt$_uH(48Df`S(xKU^0qIRR;&j=I^ zK~C~V+Kqx!$6ZxDY0OlJ*m1?x)T!fea%JKaTZ1faX>Is$bR>zxVTL?&n~KegVz4;# zbaOU5zKLnB1?Je+11w%uT)zC%t??B8}WI+m8{}*fD0v}azwtqHf31PFc38spgO2oBB zgBA?6XsFG?F6_!KK_Ci>0tS#MC<5_T(2XJBdRU6rYHM4x-mTTIwSu;lEFmP^BmpmY z4_-mAMQaNJCI9Dn=bYJ1h}O^Ve}37#Gtb=T%$a%Totbwc=6lfF!az`8;#>4I9AKC~ zzwRs7{IVEyb|ioCI50Wn_p%DNE^KWpSt99FHH52{6ftQW0!(^Gh=*OQsAzHt!{L-6 zj+h8+`^5g?V2LEi%vf6@$pRH@_l)ll=B)pH803SM6;A$~8H`#DC40kF>!bh$BUMh( zp_G?4P@g4s=*-6?s%~u&_ghSEj39{GEK#dX4{6g2Fs;ZTXU%DrGJOWqZw2FSePucc zriTOzXj2tTDrR@#DGzG<-xaG;iwcIkTqEm9KdnMs^pLGCOxU zYWFF7kwJ(BUz>{(c}m1xyoy|qXJ_UmJ&{UO%<+jwT&z}H* zRaD_pRoWfT#x}A7Z6^=@9G>kt^n%RHUqSiiSA)htQ=sfcw}5g$ZUub`bR#JEJLu)(A@8ZY^jC^c7IH(bqxQ`%Xk_S3Da{9-geRv5Re! zN46~~e^+X3k@k0+#_rbGeH!~8js00;DUCI0Y=_1^(iqF5(*2jlD2i7YH@2ueS88mc z#^!14dW{W1-K((NTdBgb)5gY0Z0JL$9jW>%V(kpKVHevM;H|>-9lm88KG?nYEqyD> zW7mPz*oxbscZ-Fr-Z)4;{@2)e_`WA(fvrged@CEOTWf#S(Gjp3upP0w<(6r(fv==3 zV77*=5$;g3Fdv*+pFkoTfuq09!cIJFPFx=-X~CAp>el5yfPe026vKf$vlYHQfy4+m z7`eVCHZgiS8rt^%qytMPH}_mcvb$%XtU2I|HqS`7FAH}xhRfdbEuD-VhEcLmk z(hB7(W+zoB5xn&^J%EZ`9nXux_i+NeEj(AJE^Ra%Ig7>}auRjAi#r}#l2ifU+7RQmd8mhg6Q zR*G)O9kTb}&T!7iyOx;Upg7zAGA!U2+4V7VY8I@zz9QH=cYVb`I(2;m83ez~u1~Ry zbAUPz+f-gII~!S96!>&>LTqOxpll;&ftG{*7<3%y5Kz7lU~=3q0Qwm0K~Q!lBSCk7 zGMuzkPrRa(k16v-$spn zqA})9rLj+A2Q_vqUYkmT!a(J(L}NeH7&osgf855S{Bi%E!pNv7>}HK|$Wa)lxXK?_ z8WqOLuEIFkRoHrsZPwTu8hb}$yEOKh#wZj~@p1iF#aCVljr)}jLmamDurr19d%k}H z=dx2W<@TYzmfIh)c0>~)$n$Yf`tw!Gd!qX-X@?$1I6<`Sf?(P0&)BXT_**;D50!ls z@E$LOas8Iv4{w)*VQ-=R|O3+8mJ=N(?&$ zYZkihR_-7VR5yI)!HV~WqyHs)%S&2-T!oIw99@tYomai#o{w!jF}fgDwq?N+L2GtS z)Cw7ay8mSPmT`^{NXGuN>ZvE6d~)B8Nb(Y|8aLWL4JPNhGV^1N+aI)s9|~Hdz6@GN z`&Ow2UtjQwrO^1F3`f?a#x&5H#NiaC~T)i2ec|vAz9(jaRqyLuXvQ zhEXV=L32AY&xpj7Vi+;4p--Ap2YUoM8Ut+y1GNWbNXZHOMU5$;viDG}@68A%`UNc$ zc|<NY!j8zi$0l5OUYnZ-7BW@>+)xu&|!&gVv!0Vp9R9;j}Sd=fEJ zf$H^)kA@8lK*L6QGgGPkJ-%VU8wtgQjb0wejMPzq{1ez(&Ub-EgO*T{bl(sv`G{?5 zbaE(pCu42x4SDW<(5!N^2Zs>z&0Q-+VSavg*oyTHmu}ukPhsoQF=4A_LfBe3C7hft z^Nhfyfk~G(aztz_;%tIT=AGsAe*n_;WZO1iXClngpy%u1w02(gtgEOaK65yotPX#% z2R?F+aGnea93ru`0#BXnd1CL}-5jAzd~-%oCcbZn_UMc`0wv!ZQ2C&r#q+DI&O4^J zWyP_l<5bspnGcZ3ii5KV!l(3NO{0GoQ-p@cSP2 zdik**t>}2Co-&yQj_8j_T6r>K={hqh7B~KL)%L;IrF6Y91q!}7Jdbv9+o76+u%V2$ zXDJil#>Oz(<;+s10O3$Q8j}(fB44(lvQi0f;-_{QeF0=Ue$K=8O5TczVV)t+8F>3_ z!=<26(6d3OfSwD=7=Hq~z_u^9?f(EB4xB@O0JI2kjsQIwltVX%xG?BLprb%rKr2AE zfQ|tTAs=7^;#8nq30ey}5wso@vy(WR5{C9TW#N~BQkr@>=o6sRLHWI10ZNwO61+P# z&!I_aYf~6Ph^x}prm(phTdKpdR4VKP8e5?;_A4rEN@JTf)}}GeZj`@W8smOEh4r#c z9^-o&J5FP#Y3vM*aRZkM%e}%hd3aN}jq&SO7&$}b?`nvUv3Bi5 zr5W{a`4&9|TH8_H53HxZwxbn=2Cl(sR)H}I^ZgdXjTbA^Rjn!_YaO8QwgYgpL)kvCCO@|JFw=rx=NP$o zjpF#3@A;+1Axyw_J(|ucvSueQS@qR#M#=1~`R%L~szgu>i5kT?tcvj<{Qe)ZdgnK1 z^#HQ!dnuKurwne@w%Fx)`~D#$Xsy}zcQ78=sRP*ot0lFoA5PKj>=!gsW@|7}PjO@7 z9)8-Go5szCM7M2fieGon*nE@!x2! zr;|y*eM?zu&8c>UHrI2aPrSLFlYcM~I+|r9Y z%vzY#;j-6Yik`^I=0L5mT9{&jeGgSy4MHFK1j(#cccf3S^@H=qj@_6eXeih>S?oue*C z`>CLBf?f_vDP$GssR%n0l<)c~(0f22NIi73fyb--5mY`a95fKpz1ei26ZS9_J?2CqUUso&;sRP&v8cE@<*l zkD855woM+^g^i&W#N>fI$-(Z_*l#rUkjDO?u|H~TtH$`=&vh-VJIlf6a21X~M=VH6q16*&(l^5OZ{0iz3(~%R#t7eP z?}ZR%=7h}LkqPg;5p+|leK@$C+L0B4XcHYcj;2_8l_8NCq>R#Jzcw$IdiM8 z%G%0lz z3Y%fODs>eKyG~>1F6^-AD8%GpmtbR$X{2uT=OW9$VSkD1 zD$(SR=$0Yhi&Qm+!4k!i1wlxe8k62~Dik-+p`eq%2GVHK%Xt>WV5`sff+KIDWjKU< z1GDhIV4(CUtIzKZWeW7-G1mYdKhSO4b8LIIZO>NrL5|&R+a3Q|wmnPvSJ4#=f{n{E zy^oMm^(b5Ci>{lIFhk~h)E*Gzx(x4Yv1%YktHI1+U9jZe!9)#2lCwhKeb45`UvvH1 z2O*+5DOCUOn|%;U<*2&d^{8lA2<1QsT8{OcSl)jZR%iJlL zFj&I%3%s<>qO4^Y;DTLxR&LXSC;$h)!GGwUwW}!0=~*L@v6FeB00mE`^qAwuN!P?C z%oe6T>`g9qa$#T};m73wu3fOft7nJn3F8dck;})N=a!3?kSq)5?~9m)LF*m$bje!p$8sySezm$PLRnqGuwS&;+TY^ZLsG` z#?t)W+2ZGFxT9~vW4SIc&XkkHSL@84={gT;zS0M(MRNl9*Q&YGXHSRHC@Pd1G+A5~&aYSGl+cW^jz_FFiSN5zKgf`AjmF#dn(?Q+ zIHBt{`(@|hh;Ej78suDO%<2Bs{8nl~Z4K@EDje1tqH5}e&}E`PkIWA8BYEYOi7K!C zv23n3L`Yusq4co`@s@;mMfSOl)gcnD{+JDn$C7vYkg~`Up|+QAif^vJKuKM>q@?~8YjdWgj`c)IT^?L1sdIJC_)r&iU#Pk(n&-F-S; ztf=98eD)ItSJ3u`mJOjY}}&# z8Pvt4pnn9t473?^3g}i)jGgfvpy*db$<$S#9BsLkMvb;KDaKb}WPBC&GwtsdjaeE4 z+iv@NT4VpCvA=07rLoN#Ytz`@HAdb-rF&RoS;)D<*alSoexR|lG{zk$%HJ@JjnEj` zJQen0jm^;5l^Ua{P5Gm!O~v>m*Q-CVIY}ddA z%rXn|iLc{U`f6?^T9qh3RbYKEV5Y)}%AD|hF{@o}uu6t~;j$JmD=(y(l^uI=$JI`} zd8{Pvh$gS@i|upK#Oyq3(}WiNa1y)9!q!Id5w%{TXens@fn3aTYcUz5fOR-(Efc(K zZ_HYY(?7o0{&3Y|<^mI=B5ZE0li)#X8L?P$q?^OG)tqX_q-9$WyG#c1=#RCS5+i-| zC#s?dmh1yJmJ_aOW|m?}e-KB0>LtU;g1&*e!>*f;ax%E98q5QSepR4vwP4jBQ8gBE zl*cz}^8iVh)V8)wFp-~havs<`5R*eTTYm2yFdlARdYqxC2W) zU&kSE56O`%0(;{0@Lw)HGv`d@5?MhPR=^pVk#R07;88o+((J&ZZyNfe68(5YAC_dwa7g@6{PpRwp2k-~ zek&oa&8V}B+3y88b+Aj;O{+jL?Wm5|BXa=DLB#7p8r zF%R1$szB7`KLmOQ><@#oQXd0d0gBNu{wV10K{LLe0uA|^XNj?D^d*4Rdk zy{<7f8|81G#`t9`EEoBtDcA7XCJ(+B2jkM5^7liHm1=Cb#zt!F3XPF>Q(>>y*v~Y! zL}Ql5{;aVVG{zk!Du3iHRD1_D)}b+uQ_A0cwh1b+(XoD=7DTAx4_bHo+ffmi=;A&a zoSf+6Tl7RvbnkUv_4O@!*)1l&uf7&o>DEMn|D3!1JK^8A>>3~tZ}A*y3jiv&WBb5_ zGS)xjTOB$P|0)Y%#pZAPzw~(A(Fj^u#HnlIIsbNe<|T&=9I|FDo)j`?Egl%MqD#Ud zYtoWvz*?|mOu(A8WPHesE(wOrNlVHD=7J?d1LmwHLqc$!5Hc4m9vrgfFP;)K=Pw=* z#0HuHNOivdn5gw}(3-Y*TF{)fxHt$^g#(@Z!F`&)fY2oRm`NXgS_gOX(TC6w`j|x@ zMYIm>eh4;qK&Rvm-)cGCODTnDoIJ$cFF~{2w-OsOpW#kWu{6N~ zQ2{OR+U$F#QCpgP&#ZI21^olyF~bT;MiB2Y@v!6o-du~s#P6cFp%87m}K)EV;=E2cCUxmwSiL7;D@ z{orsds~T!G2SD2;@PN5dYNUhfWBXJ8A^9|b3#Ab5pt&Ug1g5{6n**?zo6Qyk9f)vD zXOh?k+qNNM8*1Ci#TK+}VX;MR+ZeHpw`~)|=C*A)V)NQItkWUA0^8PCY=yS1NNj%F zR%}AP-J>Jb_EqgyY6tHNvfIkDiW0E07GJc5S|uA;_yWIqx1VCeDAc#I%c0_S_98P9 zIbj^=3MZ6DbXH|{XSMXggIIxVK&M#RkZ}9YS!DNNT<2h)RDf?S)Cd1!dH8o}Z(s|( z_&3`VzK=~KfL>`}0Nv1lkTrhE-~jrkApvwq{(v=~9n$l!ss{3|Z6IT}@lk zH)M`qQcT^mh$?mr3~ojgW<&+h5X)CdAWDD3n@w78o5reTde5)gF*b5o+1iI1&!I*Z z4c|&+9)UNbVQ%IAJ>N6iQ-`@#kMTb9Io*pGq%Z&&ifaEENF8D;{zS*vm(B&+iq;(U zd$l!(R<~H~?*-<7iLz`q8_jhA{;f4rP<2}j2YQ|)Hb1@56P=1|r$VvywQU7rV_qdm zvE|q{clTTJJTFKKPWhrKzJmr-^^xt?h2!{H*vx6-@@;sa`e1rQQ!TTb>e5P4+6vtO zYj5bJO*L~+zWH4=q76a3%4vEtK1N-(;8@bV#J6&5$eJ)DVBJs@ux6s2-hhGmnYNG> z#=wJGfMGCRP}02>@>Vq2V9bO6lVYfq)$?P$5%>I<7wp6oam#@T?Y}$^v{;aAn9%IX z>8D5#H%w@1<@8G?AQd z$G(JleC*#aPm3Lf+feu^2Mvp#y)XrVa85Zyko_FgP_Dg1W;7;#oMqME?Fti*M98&H>c;U*3xaF`0Bf170Y*BfLfCq9)H zG}94hg}pz=Fo6Ns^s&xmadF%AP6SeRI_GgeNFLrI3e zA;dV?WMBh{4M=0)MWs(PaVTV)`MUXPzBo*6b_8sJs8Uql9vmJqTj7P{ zC>;vL#*vn`0DKyjIk^|*mXCm6=5&c zu1_(vflZf#D^J5P+8DtptA0Mh#E%QBq@0zi=j#@J9pS^|$msE*v12NtS{$zS(^5!G zp+_5&G&-_RGgf3%d2m`ZVdP9Po^hYlV{X=8d-_GcURpQo_MYD}e((O&eQQ>{XOY2$ z*#^WyQMuaP>+DixY%lg;3O|4}Kpj0!i!RR4!jDJj#n#0~X~kD!S0_#=hMXz(pJ3IQ znpu?)20OWO%ZxgAZI2U;XL>Zd9`BiJeBN^@WYNKVauJU70Xtl@^nsgzS?X)SFJS*? zcAoK=*<|8!X1nB{OJ4gMZj_f&f%GEE=~&cI3kY*0FFRZb?2~yEvVj)-xTN8A6=J!g z5W7nYjk&IV#xL;uD}K~N$;Fq`CEQXL>?QV5HAev3)15^6KJDtW_r-a~A)WM>v4y;mAv2+gGPrDo;yCQlJ|M{y@X18nI7N<`SO z)e$CsV%!?VrlWQsWH$5se0IQW3fM`7=I=D8{QUM#xYI=P^ZELe|IV+w2x;&IDYt4_ z(dztKGxl7e^7X@hio&Yz1NqWMA*d2z6*n`C0(Ld%6wo;S=725&{Q;_{2J~`JETF`% z110{1TkVnZpfxa@5A-6?lR#&HhCr_XorSlLjS_LTf@PrXpjdd18+eyL2IV`&B4@le zDDn_50gZxg1x3q|u>Pt}$-oQ0ca7tS{cJofq5WF$QXEu*SH+ zqx?G`34)Yw=B}a4U_T_;@jEk%PqW z-X}3UhoMsYdmXXyM4ty9mT>>Z+Kg;?o#fXYZznH?jErJBBpFS6ePWvJRSZYwv_Nu- zNfUGW@9pWFdQR<{(}Hi2)8KEiA{~uU?vc4)4spqg;0bMP0fexi%h_da*&NM{7ZNx5pTp08s8Yv!CaIeYwqp zSBWvsB?T1^6NFJb8fLU9JQrcC?TzD71=s}J8!Dc98~>Co&}1cCh>g!JuH%g9*hu3n zAjv+$$%7;%at&L=*VAAt9t0ub9Hkfny;RtCKrNOoyX|R+dPc8sf??4NxttM zK~EDFg^I_^#eR#c(l||65V6|-^3oQ2gLYpaisATHXQs)c3}g`eDqNZSANQuCmiD^> z1LFz6KD2QRn{gV4fU=;ILCZmZ0*Yal#{%Pgn?D7;3UoN=O`t*0J3vFAEb0i*`#~e1 z97N9tT?@*gobRv#lzABo%4r6NZZ3z92j%ki1W-TdL{O^Ox)}7QpqGGhjp#B^vWCnb z_c~1l<*u4(ppStv|NjFz1C*@5Lz)$!$-~22Hdbw$JY;ul>_&~%Yb>F$-)ZbIjr~bu zD>c@rv1X06YwSafu^v?ZzSJ1nl#RJ>mrM`MRHW@I^e>1UgAjgvLTn-x^Lr5dB^GKE!YY^uh1 zJWrMFZH={SY!_;c^(9{1h8w2O@#C`Ts4iVMm{a{+@GZOU$=A=FItL2iIgoG>&Vg{u$0yoN!&Jt&R(g+rZo#U%kB#jQ-P; zmm_vhv!^J6m(D$fEO{3Lb{^Iny9(4fW|!(A_fOLt`xAQ*?uy%{Nu706*j)Hh*ize+ z%kvU8_Jqcs))+q+6?UV>qNp;3vGP=WWUh)TFT6-A0I1zF#>5_y{ii+WFNZF%$`59?qJUR z(RBws^9R=*^v*xN?qFWc6;W$VIEf2v!`7=oTglb#u`mf3wV)^K)t!uJ_fNV5i@O7l z?goruClHe<-72x+me@RO=p_=cUW=HU1PxPSCt%Zti7x|%8?G5{YdSb_4K6C)4mEdu zC8Rr2)r@UFwPC9z3|VZkgvPyRt56A81qCO>2r`2rSpH8va%c-pck`R z#;{t3vRaB+Ed{KWh*Jbr_H#R1OFCN%J6n(HWbLlt(B0d$;8=8EVY|z9juhD|IqBAe zH*76cO`_DP#|Qk}H`cVj*ls4bvxL+6|LB5Qp*KSSc9CG-bLUCKVqiYbw5#Fsb;~!KC7Q6($wmhcK!5c(6&u z!d_OHA}}@eV*Z>C@kSWBD)^-c?kwbsiY1dQoIIMBt)5mhb=KtRS5KdN#f_rim;6vU z`WKgR_1r7Ck7$^5ABx5D%MtuAGULIIn!6}ZqJe^SxsvEc=8p;50yUh(sir$nOVF7SLsuf+omRirMhDNOi6~^M@W+Kf2|;oy-YW{ejQ2NKnc!& zN`}Ypk&-x-Vsy;#$=8S+lBMFj0dqS%C+OtB?AVVA&;HHXT#lXTGplDP?QY!8JxP3i zDbhAqfELCNd78+NnUeyf%vY>kL>5OGDBt7(Iv8$fgY$q1d=U(FS_AJwG$3?QQ>9~P+`V4u)Y;^PR<50&&ro7CP#?3}`y|`Tt z;d&P4AX(srv%t@)-QJu_y&>)^+TrpfT>4Q~o+MmWwhdjC@JNRg}PN( zzHL$ph!sXIUWMJP{k3T|{{m-IqBi44XgmYGb!vnqHaU3aay5Y2PZ0T;p$#<;arb<6+ zx}mr+G0X36YPhH)d>^h52;O?A>A(a}(-#xZKorJ|<)KpCd{F#)r0#%wL3PC17)g#j z6fW5qPJNmc?f^SD+zsAH=K1z*4~WBsI3|V<;hKWHrY|PEiD<{W_BMSwv3xI#QP-D< zeax3l?@wrFg0B7ayuay9czl0CTe$91SIvvDvNa1&jab{xPrB>ECEFs_hDZsnR>*Vb z!82H*aw@U~y+*?8$6mx>@_JXqY7SU`N3q`vm3{6@9>*B#4nZIEI)tDq zXjTo>KSz?4-lRL1o6F7S@O{x_!Q!O5jCPNs7);M7s=nX&1BdOV-ux zbVEBdR739#BnK>xU~7f0zhV2q#ZB~}xML5Y)=bplTd?q@`wuw>ZSi z)`+=1Vz$_o_(mA|nri+W<@sK`ZQR$vqH?3;eV~D|T?HK zo#4I$^8xoAYabjtAzJIER&5aAwyy256M}arUE6m+*Y?JU=-LjHeYLQJEeSVd`<`hY zZRe!qb$OMGozSRuX|w-uE^+Q?;$_V%B-3s3ac!OOS>1m;zNOD%t(|UgpE!nwq}4t_^j56r7E3V!dMBRwJ{o2g#uA8P6NBP|_Hz7$UjZW6|4}% zxe7^p!nXesl==P>=x9*(KNo=xK)!g%mSR+CQW}vJcBSp=kwdczyIEt)bl5vJ_E(KH zXl#?lS~d1>jd50|(j}9v(&%lQJjU@FJ5ght)_T2UTiJUH7t|fdn|pn7WJk2B5gZ{o)4rp?*~XGy3%3Z|J}No*)^J(s`X14; zm*<^d`@RpK2ksr)P`6=k#~P~{+%LGCs@6yexbNY4;ECf+A0khCn-1lJrKT~jt}!oC z*N{gjty%CU7k2wbt2W}+fv`2y&&A%nXxVyS^5v1UtC~8Cw~@@baq@N3tL9&$*cS>n6ss|9>insbu|6q7LYj+F%CxD5hW#!M zY`VA%t9T3vVlQ2!ITWwNFcu-a5@NZGk31ev!6o%Ch`10YmqAH`c;|qqo)=xr6IUKw z1``r6_ZsJaoL>Js1ut2FZh)8vb+zQryuOuo@+uN}^Pzh@SDQa7n=#z8F>( zw!-D)&QOApF96QO&w2Q6)t!WCxyWhw4p_+??#6)r5R^rr{UgvHgXSR|?NdN$XXi@$ z?`%6?3Wvu5@c(C&RSh>ZsVh+wHrsYpSE4A41FG`(D;@T?8hc7(&uHu~8e6TgH#PRI z#{Q!*v>H2&qij>Ik*~4SGM3Mn4=D3%mGb?Xr zC)N%VCf&UBa1DDk_7u4Dux-IRk*W0_m(0?AhH3xs0-90Xr+* zQSm5dS(g=8z9c^65`NxoN0re>QD~j+qtt~Z=?+RQ7w}ylB~g~k?u>GnGrE^Y#fkqa zgr9yCj&lTi8#mYw5HWl=UCvB9o4o#_>jZ-nhMp3|h;Qs-P7*&obQhzNeFs{-214$5 zopdqc<;Z{NVknr!rj3_@n@ZU=ZqPr@#zyPl+LN5ZFF$BEk*}`;KGNNgQ8y) zKAL>#L$I^MXtLc=bz&a~O7|bx_6R8XZFVHj>5haZk1~4*% z(AdKoYt|T7f>jzHXzUY>^+cXjUMNCU{*Kky2^u5ssr<2fRQ`lV5?16QT=m+3I6JQ! zGp~`V?bx6PeGtLqa94oe*}_1w{1CLIf;WgJ$L2tO)e^M1C43@zBD%`+$hBpgM9$*g zB={i(DIv=yGD>-nVLgc3%{CP((w8KU3ejPK!4+4cpV-DihzSL`69 zj!)blDrv+OYqtliR`4w7w94^S=ea~gCEqkZarult3|j}G+IAU>E^Fk^vaHFdp8@cO zv65B#799TSUjZ{Pk!3)?{UPd;PxC#99ga8_hKozzZTe#J>!l6gt(xAy>{DiWz;7aQ zWgMm7F^HnbJ+UVR`-J@2>?ESo@v#af^+9)-7%+6 zkYJXM=T^wV9L{lS&HQWRW<24<(!Apa>7BVx@ly%2!L<-K3^}WoI33ez#q(70qi!`# zch#p#9F%FXhr;5atJL)a>As)8koMsQWm`0HIkB7uV{X-Cie|W!`aG;EL+8o1yywy1 zsfZT2PB6{`>*)jYbT;*9Y}>50Dz_~}d%yY!fEYOG4&m2uZ5+13Uc?S~_X{m8oE zx%uq8xK`+#QsAqsaHU@*@$K-Vc-Zvo;&{{!Tn#kN>kySz2CKKiHQeT3MSk-*ygCot z)f8~6eE>XQgLs2+whl6`7k~}~ecHBfwe4&PrNEu>CWwNU!F~xS$DcSTdZaijk#ZZ( z*y+w~WW>({Jr8sgDBZb%jPYF$8U$sfg+MuOJ*~$rnv}M7g`>X>5bWUeg#^Vdd{*jj{9!>xc5GbWgTT9)nAN3Zt?N<&SeUg1niQKdV_HhG}VD6t=(TF}~x8Fbx&tc7Dsw>H-X z(F8Vc!qMA1hQh?fiWk^I1BrMZ?198>gF%w#XGfaj17Jc5MxZ$!P8-L=h%}5{ENkgj z#E=MJ{cT~ixt1|9fJ)`(YoIj6BXQf2=GduZ#+_KsxRC_obu-?B3{rO>d*RfsF<$#O z#E4exWYf<1Z47Fsq++uRql&=HBL0DP<^t7iubW7QOipvHgC_2fY$&%xt<*)`ft-b9 zUGp$@6@#&odP@YXBt&PtkjG>aDlg3A?z2@;Ca)@_^iOGTi~yNpXcpQoe-Vv|fuRm0yS8!T$x4O9$DIeL&Oe+*-iI6rVXcWk(f;pte|FCHx( z_>Y45KtB0)wg~K;a%El~_*s7lEV62wyk;+l)#sie?o~p`AdTnqxa-I0ntzV7p8v)U zqw%h^qCbuMK}Uk3-{hPuJ`EJ}1epVj z2E7UP3eZKMm}<$TSm<5ilqo~L8(#xD5fmS_aWN?SG)Q~n?}JVS{W~bygxtV^z9>Ed z`J4vIH#i*>VGQ(4abO1IIwEVI1$qXr%5U6RoD#MRh<=6*mWBFg%0~G zjXkC@ia}I-?A=vZ3OW>)jr0}fu}x6Wq%lg#l|Rl!Ahb>2^O|wBRjBme(If^syt(8l zB-R(C?ABrjy)|7)~wS{=?zD4N3(6{X$dVOB_1;dTT=`!-7zTc(h_E>#C^}|}y zWBXRW3{Re0aQ=T?bKQz#RIlp0yP=~YQ3r7YReCgVIXqFv5j}8Ks(0O2If=Tr;S{mf zMtq^>-9KHmdDEs%&Enn7RQI*BtHy2s6^K25s@+U|>Q>3cteENh+S^y1TWf zhhd_(+v;A0De))PW!>Q%U;W*HIYC6Za1+^6ESG)j!;9>V5_b(DlBnaSnRGv&sB^<` zpKtYRzSYo((2{iDDb@uWqQty6Bjc`O|PiR(e9qn#9x@Ty2D=IqDfTvm+S%G#*6I3c3lJj5qWWs zg+#>O#EB?hK@eU!5DGH~QBkNq#%kt05ECeGpTc_}^g4YbIzHK}>E=DoR2hn~=q&uN z5YtfnA1$UIqw3YR)=}ED9VW^S+{XAU^eoF1mmk#UUK!LXMjkM3#aVM-f^r_c53~&QD^QGw-1i!%=&={Z5Uxi0K)F?}FX#@??}P3G z#R_SBKPY(kI5*1`fgS^T66mR*r-F_IEe7Rwxzj)|2F(MV0-6tc1!y18YEa}UPA>Zx z&>KOKH(7r^9dtSDC7{0q9RT_u=oz5D13eS;Y0w{naz2KyO2)p|&}%BeKTRGUurd^O zsclk=0ScR~vD>x3Wg7dX#(tx*H5yx|G1j|^k0YZ>7w^HwKGhiN*v1ZPtPpjn!lEYa zuoPb@>^_ZkQuA8=%}VK^l&zNCHO5ox{tsaY%1w~LvNbi{bMD^>z_;jA#0(i*&B>wa z=A9-wx7t+0G3Z@i0B%^@WN-;udv|e-+N$L+8NxA=7af(bNpC!0H7AG0*r{4upl0PC z7(%xM%XUHeeZW@%1vSlF|1=@M3qYT2>UuM5tet_JZMX^-vlk4D;T%WiC6AC}5%&l=&9_e0iZT(6l2 zwf^CxoYH+=T&;TW1A#0QECCX*vSK-mlVhGC`QmugC zpyFK2I1`Kc?!g8j1K;A3#{PJda7|*&+v*y7UyU-YD?#VF7qx9g;lW7*V^{cBNdBWky;VeCT zsaY511NPW(VwR(8<7iyx+4s2erqwo<@^)5w7o}!g!$*#@Fey=VV*~I&VJiqY>|X`BzHPC+MUY0Fx~|rtA2O!xcTz zy1edqo7Y_cZT!&_coI@=46qmV85yN;99x(dj+7XY@$jfOPmVY*^Jt7Y4o{-Qn|ukc zir;&Xk@RVj%lb3X+98f8)n!~abym%E;~2YMB#2~|;@s0^4&F`p!mi79gSkZES zT^v2S#=$Z@i463R^m}!ir&A!_rCfl&6OD_db&Nzs@)ypaIWUtGE0+SPf5qBN-NwCf z{DYOt8sV$Ryrz?4T8B#;tz-$ExU|s@mzEYIH0a22UIOuw72|Tkb2e@nN>uxEP`05v zK*=V6-I6VKcY`i~{Xx)MK_3FG2YnQ@4fJtPb|nnY#*MEj&Q|p_D5m1Zv!IWG{t0vw zDAE<}{$ShUdC1R;pv9n=zKTe94Jfx{HG#6P17jhq%&YiR6)QuNT6$F2bmT%|*V?9B zVVxCrr^fEp{vOg8N@0g>(AZjyky%k`fMK-#ky%k#7D}Vi0DEU+12i^7V?#9tQHkwu zhQ@eiL&Zm-h>CB8#vayKqsE#wwoPNNYwQD!eWI~{YK%;)N~0(0R;8P3n;>@97(Z|2 zk6YoCKW>Fn7&pKvjEaI3Ms=VHdq!iNaw%-J#x`nfi^e|D*lvyWGo7#}+a`}OSz}ci z=Fs~ykQn!lZM)A5mQ$jd3tLDf&{EPDw zMRI}o8#ok;dmCd#JJAfl3B`)S>V_fk9gGOp%2(jt>bSSsHxR*H-FB9&{1EQ#jytY8 z5*bf8InFJ5Vi=KqcL1V?-*Mh>a#W7v=7d8cm3z{W#&$XmI}xG)A@aJ0*aL?`IN;Vb zlodgp5GYUO+e}vFKepX*z!{6mFEi3`c&gZ5M1@eJa2ls`RA0hj033?DIxv2x{5T&I z+wY`-CE#&`5n^E15b!l_C>(}#a)>4;`KMrM6c@(L8yK;EHU!I~6gphmcoN>n#rV0o z+1J>SL(@o@*q6EG#F@gbfSr?CH!lmc{Vjp%BEcx?Q~uaLD${0d`dFJfv)=6ahvy+W(L)n`+o=o&fhhf?jws4D#5!|7K2~HEZ&; z=~dTIb)9HZ$rdR_&8&IT=M9wMm~xC#33Holuw(AjQ;Naky!`gDO71as>eW|F4^FR= zK;&iAqaq>OHBf-NTuert0+=JosC{=cb%8M$F2Q3v8-V7GlK?i}6z&?3dXk7s} z=V3dz4ebL?yl_$;wBb10#;u^`po>7KfG!4&gQ8`}e+!E2$5(;g4$4uRqdrHsrJyF_ z#WY_w$fGo}@#hXu^2ZoG<5z%^3y6c>1A0Fw#?m<3<1au5Af7sWZ)$X=2`BwDHqAD9 zWZtCw&DR*>v%}u6u}3uagvOdRwozluw~DW)ZSoj}s2_zD*(Tk~Q|l9ZxU~9+x;^DV z>!t#9>_PLUJV@1p)?9bcJS%8j?hTrk=U8J4&5Qb4BmL&cqT$H_gM-${0YP(QaUePP zSgT^N`7g6#V9=@<8Z;}0gpvcOg|{d%-d`L}eh-<1$Qdeep`@x8)J^zdhT8Eaa~-t> z55{($nb9O(2AIRD7T@!W_)ZOLTv60)!TrdA)Xp5-)OJd^3Ywyy5BBPSG@+rS)iusP z%=f&z7qIcYI!aoBw(jnY8{dF>A!m4|1)Bh^jfrt;bh5L7h^E31u8+=RBGF_*h`9mD zIca^yv^Ia6w3@n4tNyc_uT$}bt1yA*L=`C|Nmv*pUM!Hgo>$Nfj8wghc#bF-Fcb_$ zP-Sxpvb%re>&m#hr;}LKvEk%VOoItjB7pDtyCu!A*=CJGNmI;7sDA6s{aMaFs!m&6 zqo7aw`6#W=yZe;1uoidcibX2DB{2#kzkQca)kTQl!<(yBe2{L~D>JHyD!GXH3KKcw zza^3p@9uuxrw6gUTKNfA&G#4MMBsU7H&fY4RLzF(v)^B*>g~Aslt|TPH#4BX;aRJ+#B%t-u8#A8+##8FSO`)`I>jTvB*+{cT>dnt!fXS_5aUT6Rtvs zg%pZWf$8@nAJI3wAN6Xa1v~Gj`{v9K^Qv@>!P8QC_k2&NJ%7~1tqs!g$;UIOQ++YY zLHIX*(Ep~s{3y-9|5{&sI~n}}tlzFbV0{fn3PZlRzP@Ypw?F<3UprB=5+&? z1}05z?I1ez5u`sE0r^2MtxIz1SQoF9vrjNAi zDLtI9lfPeJ@Dr$Y$Z%8FLN~ZoW_u>%m@PDc)QLBUW2bf zxUT}OJQ)UgGG_$SuU0dHBlvsg3VBWnPM2W6$W}5tI~Jhiz<=Dg>og)gBT&*y&InZ6 ze}qo&^YY2==4gJuk1r zh`$TrkJx8;#aQ#pI#JSaNqkh20u7e-tWFN{uyC!9jK^3OQh)GWOOX3c@ z&eD_p0t<}i1lbwHGeex>L0`G6r*Rn+j?6ap8)LEeWs07`IAtw`JTP6>r4s5|Gs~zl zkI%^8g)B7IGml3jS%N$|vm7TDN`QywQ;5z-`b9KXVzYoT@Q=jBEf_`dtg#}&dJ1+l z%&Z+wf7#TTt0?>tYnC_ABkOmr%fv6sOKxx&evV(h8Dg6xrvqJYWBr~bU>wA+6#P!a z;KrV#F%o|mZUt~V6U`fYJB(t=HW7w%LEU|8COZCHgJHi*u;JOqWk|cn z;luIvSUfSe7bNUs-Dz!6*eo}*de$^`7-lR=cDa=HLYb5EtQ|jj<~Z{z-QV;_Y}t!v zc-_5oPt83g_lHo#l%LxlQRn753I*?nAIi1of1ls=~_GlQ@4Ovicgy?OaKZ zZ*i8mMNxN3wtY;OQkaVkq*M7#MZo+W&qQ5>iDK{7T@l<~cdy(Zeup9yenSyF;#Q%H zaAMaY)ZdnSO15cUfGRV+*~grb;VxBc)+eFhD$Co$%pH>J&-G{Lcu&bjfK#Q0dqXP0 z&x23JUaA#HIogi=|ZYTDTW@;h-KhlM|NRWNJ($Tm}d+JA2|XGu&K;;RYd zv(2cl;09dOn^w<(M5jj0L6zOd zK^c}WL9V{0`>4AUdHTj4@J@*$-I}@R&t?C0i1c0jj%>|!_kP#b{FKDqeN%Wq+`geT z*9~TC?(q$s`Cy6SV%-xi6T7>+BAoMGTk{3qP=ud~Te>wL(L!!r(|rpuZ{6bU>1Esa zPAxp8BZOP;*hwKKi$V_C=2wPbtqbK#xCX>RXtQ_t*SxUG}-#t-|NdRA=n z)uM;d$><(dN7mYYWLxUYe0Ey=T$vfx9hYO~0PD0I!+9+iUT%N`=dR9T3O`LQrpRhaSl$XO zcsPgVYRV5_<_bL@tnb7*Er6^bUS!*mpx95f?VL2zJp>A=OFUxRFR<;LThe_3DCYTb zN@i%EZo6}mOFO3zmw__Fv~%jf_-bu?y=~{jmGN+5ISG{0RQl(%g5fz$odP-yWw;#l zBhV^Pb`sM-*MQCdWhZzAD94_6jn!*xrN;iEu`L?g zrm_EM%!N0^TzL%6BUJvrr?FEscACb{(HOO#s<7NEqrzUGvFRG)=3?cK+lrOHg&Mm< zWA|w6X^s7l#+o#?USk~FRebMg>@$sht}z$doATGgHhB!HHc}W>8`0!325Ia^8VhMG zqOs{3tJc_!8e6Ebq{i;h*n=8-L}P!}*b5q4ud&S<>xu6~Ad6 z7^5^+p|Qs__LRmNHP)=L?4C}19^2$Gj?vih8oN?sS8Hss#%|XbuL@K7>tmZd#+e#B zOJh%J><=1Sr!lI=QgzjbX z4z*1lW4y*DXpC2!sq(gJY^TQdXsk5X@%Llfg!iVg3XMIivBx#GR%0z1%Y}SUrR%dz z=qEMSPh(eU>>7VAO625RgfjXkQdmo&CUV?XNc#CMKu@)#Fr ztWskWASYMpPO?oNsKYJqh+1z#nQMK6@3u!VHbm<7o4%!WFhPsQp-6I!i`sIc$;f`{ z`l`TId#Kpp@MJ_w8kS?5`7kKsi0p+zj{VSn(a?0@^akpX2=GGQVV%CTkQmzK zJktxz9iCPA<(w=={Bwl=*UX)N){I%#Or1Y@>fE_gZ-n&M(dTfa4zL$6c%PTw>86sj zkiVx)H#q*`lf?7Kj5ALeTG~0uSC2=y&iP_ddwt1vu_Ro;pp=VJb#6v6AXn}IZjF0! z#CpWPB3y7n1(W!CZ527pJ?}GN0Cn{uHY4+BEqFcqfRddn@_SzZ4CCiKtg|qhD0(Yf zK92KXs5H9&4YVBeCD32mcIJ|H)^P*q08nn$SIiDgYKx1)rrE9@k^d^JR%1yW_708x zL1W~~ReT#X_Oiy_)Y!WkBNMCApk!W!4Og|*ufOp}``)ZQ&;XAM%+dxZ+*=b>I~Z{j zZ;!h7vB_Zd(l}gk=3$XgoFXhqHQGV4SMjdhMx4sfp>{G9^a|HA&@kWXMe?q3o%1kL z85@s>!>uRsEuRk4XqZens1R4Djkf_Q?Xu;KOfes_j2Crn>N;L z_gqkZJ!POQ!YI%J(DOi#1^p=~+yoyAIvn;OD1I^_q5tz?4}-D}X=fX*%5mB-P3k?j9H&Yu|ujjX0=<}qRCi1nhZ5CTAbh7N^M3Vyg?{7vi=#~_a2W*1;g+V zPJNOUF2P>gp}(eA^szb77Bhm8+-R#te<|uN{5=HKNptL8NC5qhl+A7I|SY$UQ>EO)pY~+HpLl z6}0FaU0MzuYSi5hhXtRkt-UGFy{PHHqz$6=X;C?}CB@A5!shGLVD76A^F*$-6}Rln zy~NtsMR%OlD5~Rp{T4Cr#@YuLTsS^#H99Kg&cx2!|D^RbHSN!fCgV+eSq7ZIW=Wu;DqOZC7^*}|chE4R_a@BKw!KcmU3IwID;qB!+FFjDgQ@@TTM zA!tF@X2I<^pv6}eE8FE;b^t{S*ByrP`He6^sd*&1@NleT2hNqf6{*|PBa$5Y5?|z= ztbN-f9cxX*agZDE0{h+z;!JYURgM1%pj80!W9QT(tf?S&(D;KT)Jr9Hv=}J9k3ctR z@)oLw%5&d}VpR0SD~GPY#*)VHeQC6SFAuwmO0Z!MP72l zLq1(Kzl|c<;wbVoFjCfbbAJ?|F;dkKED3`Y*4ME?UwgZZ)g^ILDV-| zNVsDiUJ_bNzIPehmM^hEuCi3MN%f&tQa&E%Vx!u%{J7*O_N2*|U2rzIj>J^^&iC7ZMnc!62Al4paKPQniF(?^`DE z{0ss}uE?tkEZYTp$Tb>Dq^S2)#S^T)`Z|d!Zb$Vui9RY=1F+Hz`Pf~kP;YJ+QoyX< zUi0+ak=Z@G$7Ew+@ni@{M?hZc=G8jh<2{aERdv2gs)4+$k}(dGEIkSPUi_%yE8D*D zl1xUUU{pk|j--*@ctn9kRM&MM~EbJIRE9)}j zQ5+F$$U0G$6se&6SqVc9tQ1G^dx)GfkWscfS+-+p4|vVvy(X5HyuIDoZf|)X@6jP| z@4gVW=A(>LL61f$PXsN<_IYzKV{jB{@g$orX}QVdoYZl3)X3PW9?4>Ggwi$9ij zkKjI(R+X$s>;c!Ekd$S+d^n!%#Njelh}#O3=wj&QQkPHJoPg9QhhNHQu=wwqf{hz& zP-I~9BriQP8j4ajPe%AuiSsI{CEhKn(!U&ANOs|<`AInIs2VpUYxC!(*ZBPs>|8n1 z&-Dr?nA%^3^UH)HTiBIqFn)c|Vypf03(J=;ge|?oH6HtG)LwaImzGa24ag5$ zJuUE*X^mU47rwR3_vCC|e2dX+9e>Z7tvBqxK*h3oQ$EV`s=cLkj zUSlt7Y^%oJ)!6$Q`@6N3j3DE-qYAVjUCk3 z33z`hERTSxus_sTsm4ZWtU_a#XpBe2R9Ln*72jfw-KnvAH8vC9iSjqgHhGK;Jp;9S z*ymBzz`$_g*J4imc@?3=-x^3Pd@CTOP;V2O6SV$@z5=|?+(VJ7_n=5LT-TU|ll0}_ zYom!!IGVu8G3!7yQ8Og6%26W#(ZdPB#KM8$WEcnLTdp@FID}TW11IHEJ0Bts_uQ4xnaieM9_5Ce#Ob(%{^Zr+1&#=c%m=EC7R`q)HP&MnLac$cR;KiJ9w%Tkb)L5pIyv5+ib;l-LJ#m@Gs?xUPM#U4nMv z6f&r6s+<_zd59)) zc{sPpkBeGuv1ABJ*3*hx;IVNWSGt=}2OabBG)kfp zx1CoO2YFOay#%Wg9R275yg2yDvqF7i);jRX8D4y=E4_i2$jv1}?!YQCK~^X)=^e9* zOWJ1J3(w*c36#AS^hLjrBRw0|vEEh=LYs9l5fGfDr7sa89)oZJ_FT$q= zeHgWkt(fX2E>)LxMy*FU7+5WVgxg=%xbU)|6~Z0#%ZxY@NP0*6RyU$#V3t+MP{a_j zindqimr_D;ol&weuqqFcNa=8BGUqQwIaA29TFM%4>0jT#&(!dRTXsVii0#UourAFj zNd*|2wK3>hJpxyhR`!)U?c0#yHL5nnB&wRiR(&g?L8>#%wiyAlweD|w8Sjk5g@xTW&}SIv4iGf>SfSB1Ps1u+-w?^}IgA=>CV zYXc-Jfz;tVOc1_E?Z<^u>wd!CZs9Gy)uRi2tMRsw05o%@_V>oC1K@^*2@2r0-|aoj zB(fm&XuTUkwT5u)$-OSih3qg_yEs-M`CKM{WwDM5v8z^{2mYKJ+agz5|LoZ%W# zgtu4(g}pu2Wf{8*R^^?F&dklaosk$(6hGIf=@+P5;CH(g9xIAnC>}0D3xH~4Uli2s z_pRe>=?X)uoc4I|5w8$l|y3I_HapP2$aJg4q7#Z;kt$cR*jb@*A}8} z&xS6!&=_>A6KuurzSR|ngXRYq0dPAn%TjSD0GXa|bos~-M$VKw7@{3!&4y~~jT?%S(t+Y?f_RTirHE81e*-Bog*ARfu5W5|PLIaEx z1wKM%TOf6yXP{$EpzT1Q_JE8sIe`~tnDL5cnqXNgdJ!}(WZbHpFe8{KK=GQPqh>b* zA!XE6hJnYr6oQn61EC>i3K{@TFNbELFAQ35Suyv%?NO^{$i6oMsSiA%ve$h{@?Ei# zzoWSA$YLX8K3Rd(!8}O#(Vcwt7mkjRWX)kj7N$3AZ>Z!zhyx4t+(Zte8Uh?tT=*3X zLM;XG3z`k68rBPFU3)*NrCjLsk$!0lN^GJoR`UGVrT}cHkF{{(NDBzZ_@3D&)_~by zu1W3h`TvM}6Zj~L^AG&pBP1lzBp87rYJgaSK}E4jjYk$XxQiP=4ha|x5P~3ABtZ~? zE`})SvKG&(Rg1P-Yg?~c#d_shPEi6LsAwbF%ApnU3W((Y{XWn8&Tb;D{eS-dkG~f- z&&+r3dFP#Z=9y<^+Ur}|I-J{+RM3*x%D)%opA|2^G_blZY+Y#1?&)<` zo`jQYDg%SI*k8UfB@tyxBFdCR9}1%~oMYK0HJt%lQw{|HWNh`E8j6wCL`8fxePK-5 z=5hW*l*$ZXFO>~Uinim_p#V1F?tPBauNG^T1}`U8A-6h=IrP9f+eoP?RD z1->{*_$_EzKL@r?z^Sg7Uoo#NG`b82P#2HEWaXl)#Zbj?S$YPFbG%9+f{m7-zewSX zE-t1RF0)3~#c*+-mvRj@DNO3J%epQ3&$3X$Gd*xMvCiA#3ni10m@kXFAtp<}$z7VYo-_?RI67DZ|>~t z%BIhra+OSA+4&!b7syKz&cPHvWL+;4W0ria;KN;gt!E@%Doo_jt2{1~7mh{xw4~sW z?JVxA*0ic-POB)JkK<{o%BEK8kv1$T*Ya^jh?|9Bqyz2X4CWM&{DM9$DZBuUvv!wN zJ+B&+Ir@)>1Q%B#yR<06=rs?Y?8N3z>sEh+Ki zn5yR$&zn2X1Y~2;Cmv9k5CIbd+Nbq7)zBLrIC*0Yvr$})BC0~V9!)eG_FstmUX$1; ziIjihiM1K5C56{yYu!(uKV?pZb4|9BBwrop)|l1fbW2~>JS0&l_D7TFboo%);ykp) zReVJ_(c7t<67j=7@nm7NpOzE~QB+VfZRT{{#6bR(({3I@?i?5lmSz5w^0Gl#Dmquv z;+tP4Z#7fw45WgkzW5THBd0>6%Gfl;2RjFBA6OQVjm7!!WoidZj$GdEcn|A zVj;Z%i4}d9e6HLD!-{uV_lo^zuFJ3*>eN;a;^-;;#dB!ffo|9wr_1t5%Nqc`_lLg)^sB&pQ_-E@U?%XtUVjGRWqM$=Q$NtfbL^VBW& z130cL9m1My+#X&b)i@Wg`bOzmzQX3MTP4cnK5pFNYn8Xky-3a&w_3gf-OELcA%88{ z`4D{$5pS1Bbiec_;W~kvv6JK-s~-fL`FKNGn+RgHN=y7a=_*%})#A#vE^sGV)7)LH zyWFX$FsD>#=cw43^W>#dc+Q5weV05dBHjR}Rm`2o)mHt4n1@`curxFaC#tGB^X8%T z@T!OoK0lV&D3sK7SYCpMX&4Hl{m%iZw;NsK(7nElV`5K3hDW=)ns?e0zSm2bU!u=) zQj5RNS*ZI5<#WiFG}wooD7mYJ)LL&&(9Weu)_L{BHZ&=DJ6sI#Geg$zl6SfyGE`n} zx}%FtF4*Bu6Mu6|j|Y}KvHEz+X(qh1NoIHBW(&4tr$>QTrpX+!L%9w=NQxy7JSc6A z*vmU~D2!~W;MdD>D4KIbWV$BiK1Y(ES_jR2^udr znwV2?@(iW;vC5eNo`k1?he=?k7tDi?$>Q&tf7giz*_gl%xPbFh4Ojo;6 z(w(2=8nGW1cM9#b8F!{ISq!o=JhU$nxdwwYb>TzA3?-dpks_Rz({ z`!rggiDoi<+(U2J*PD0-{bzltUR}E@-IMIBFD0HUze^;CXIhl?pJq+Wq6WZ~{q*-G zg7P;7_Rc@91w0|i=^xgfK0HUxIfI^wa~+@(P9q@brOENguph?2&Plp3@^U1iM1bS%+Sd zPMOB3Ll0mUI(o`%=&r&}E=+fI{pXCfiU0nvOy4M$i*MZvs6XbQNd_6zUpb zj;XhT-VAy>=#!wo0j1XLy`V|>oE`x^4)jsb-k^U5?F0H4C^cyx2mKl76QF+3Cqaur z9{?Q(`a94?pbvpA1AQ3u2GGBO-VOQ;=p&%dg02N!3;I0hbD%GRJ`dUm`XXpEC}gSO z4WJF6Z-X|1z7N_2`jKtlW83$Gt_S`F=qAv-E}ViPzo2L%;X+Wfk?@V6EH9^-+d!#{ zyB%~h=muj1!p=>aIWtwL$y=i=>8SD~+aVS%N z;|+F&!LBkGxfAvGD}&u;us;~=PX>G0U`+^@ohKQKMeMv!M-rqHwNP_ z0S(Jt0$Mii4N&Z4gPm`%iwss~uyTWO4}pfQGT1E!yTf1)80;Z~J!h~N4fck?-Zt1j z4YtQ%-x-bl;AepK_q6Hyd9%V6wP74sRa$Y7TljJ>S-t1#G1gVh-X%>4}^>=~6*vl$5#b6Z%yT)J(47S{0wFdjW!5%Rf z&v?;vxtB`Q*lMuX4fd_U+6|V0zFET_XPZ*3lMU9-VC?(V-z5fHX0RI!#`%-_d)Q#F z7>o;bn!lX}Yc<#>2II(~{xVUY8eg_;O0@>Ps?8q9C7Q3e}pu(<}CZ?GE-cB8@W zG}t``d(mJG2HRz@e;Mq6!M-+FDtK@$$Fa64)f!;1fd(6Hun`8EXs{~{cD2Fg8f=-t zZZO!*2D{Z@_Z#d%gFR-jrwsP4!Tw>eeFpo?V9>F%%ZAyA{oYPBSiZr|GgyJaE-~1p z1{-g%D-3p(!DbokdV~GKVD}j8euF(`u%`^xXs~q#`^sPk4c46Qlx>4;!ugMp=1^S# zXVn(s0LW39fx1A-<>PV2Zy-?qbnZ&92h=gBE7={0v;^vAv<4$>p}NUCLUl8?hUzLe zgz6U67e@|8d{}e#M10V9u!2!7IP>%9$L>hF8DoPWdF-t)(S-zVKYm~kq!#YPyh+_ zIO6ksc?tHL9OsX0_zGY>*S2H@5bKj%0mMBP zja=N~f}h{B5qZQ?7EEw^+1=2Z!Zk!#8V+K`uff-H&}ZwFr1(^^B-vkp%P~T)O)siT zg)*`zmSoiOKB5qA6Pgi-EXl3pT|y}#m=+<@`C+m5k{5L|;$te4bBdb~7K1c93yFX5SWMTXGuwsWIVqvo@GTqd$tE&gvFkEHb zDuu^-<+F`gqg%%kKfW1j{II+!Woz(z>XEq1k7YZS5UZVSC|2_!s&Hbdqjg^ zHT0Zb=W`F*7-_+qUp61tGSsEx|(-g*AExzF0*LZ5c}XrOYDO~Z^u5EwK=wDR%1;gE(B@t z#ty!j(%f*}n_k=}T$n;t^~Ml%#0y?sIuUpKx(SqrN2Lb zvHA(z*MLs$$3pS3^^kSxuXqfX{z9W6OMi*Wd@*;vHC-gtWaO#a%t`D@#M1W9KrA)!*|PW`XstM?|PJh5{{Qj=QB8*$kKxBGa`dt`VM1 zKUS6JIZXX1t%@)A=^4qDaHZ_oK7Y*-OVDdvow-PaXqtcyvky)Q)Q%q>L&!>%2b4DA}DJWq~FOFg5Zh;GjT_ zLYd3NemS=148ugx5%21%31xb==vVwx*y#9Ahft)WY%sn;!WEEzF&S$MvaB-m8^nH! zCm!beLhU=nPjbTIkt`j=Bc^Pb^Gs@8vo3gF2~JDE)4P-W)se6E5Z5|r9OvPu3yt}R z1!6qcsgOtPgz9b{ZmPW4l`Qg9%3HI<9d`<2gHJhL&0@4Bjjv)(u zTxm5Kmy75zIlLGQHHPPI+*R@i%>G~MT(r16mGaU}^lK$c(I_9)qIK(3&+#x+6oBXk z&ovTejtSF4G?WA4rhh0hv!6oUFf|!gexV~1q>uby_~ngsq>u6;C~!8aqQl7!&R0R1 zUl;)?tTPvsQB22XXoHEZIxePzyYsMbp`LSZ0H4?(`h_t28+@(dQqV!5SAm`fIvaE_ z=xWdcP*(IspvQt1f>wh1K&c5g6!Zm9e5PT(tYM(vf}(!HBhf&DpsedlLAeQ^V!Lg& z-9o-b!OrET%Ruu%$AIz^q<=e|GV*PCs zbde24O*)Nly1}?Kq1YV;yW3z78SIY+qxzSoLH%hB+iI|n490h+{=PIAFD+4wLKh87 z5vpRj1`8N0WUvy0l^Se`!NLZ6z+e=xXc|0*LDTq~!KhuW*mi?`XfQ6oX;=^5z4}YG zO_(+sj6xUnM}0%}N1=;iBMmmjU=*vUzp%kp8H@rJ4f}+_o;Fy$!I}+Li7{W}tF}#g zYw|9 zymVhDEhKgWm~Mzv|B8Mv$kTxp(d!sw@tSKQ()G6DQ{?56=I#KFBEu2CKDM3q#Cyas4)sxw9IbB@O zNeHReQg#E5t`*Pml6x+^4-|XiIa+#K7+Hs7#H|?db%F3x&kV{DO#k4eIS=;aItyPc zJI@MY%&dMK2^6pX-f%!KZr}9Kxr$|=&@+S3rJ9HDez#k9#QSZOT{_!C0Q6)~+L5r> zPqFQMr*!8~!Y+RR==I37O3Gc`^>-uyNw z$DflB|InOZG|Dt1W1RfFOshSk^7C?_gbWmHo&QPxR^$Nb*C7P@o83spigb);L*25& z5{<86PfFr81{66lz6K}0dMCc28eiQ-ftqzVLE=+rhL#{Z5oF)@_j|ypMEtoqQST@Z zPP~Wu>I(21GG$&>#Nvuhd&A7F^e9vMjhMkfza5&&*d06FQ%{}t_WHY^*ACIcCd7IU zX2}~6=K#cs8NH{ms4hMCe~4P*6>WJ&J+MR6h#8vVK5W!wj|{DQi8B(yoY&d88o4)j zHS&v&xzJHrEyLA52OXiJyn}y4qbi`HIPc`O!o* z#C(|M33k0PZ84@djj10hucKNj#q}3<8W1jqFOCDfKqvm!0fCFm|9LP7BHjLo2d7lX z{4_o|^p_c->Q0)4YK|A2!s?@&ZpXsz6X1~OjgW=I>0a}oGh?fe@q4~jLT!}!>0xk$ zSiM~&lgAtw<9bh3)fJTz&Y96XD&g*c4#^m7qm3T}$bL56(=Y9(I>_Lh-0U=*)|iHK z8`Js$%Wz}hNj>qu4KvIZyJ>cl@gXQa%;-RJ{!xY*4nXK~@suWn)M19RNc8)7ddM)t zS)_L7M;~T>Dt{%3s@FYymfNIPC)uH~}HfB!B~ zzSNE4ns_LsmXP(hUEH*Uoa=5C`_W7IS8*$XW>TDYC=^WpkO{CKY@ki#9jG)zS8kpq z9}$N6dwc|ErYqsVuM-T0Gc%?BOb%dvUpNzN~aBgoriq~8H(-zUa-Ma!62|3 z0h17Bi=>_X0`2G6cAsru1d4A%4i7v7^hO(BZR2Y|iL<#31Z@L73zV;&b~h@Mb~a4f z(`T?|S_W--_oWn^eV1saSjjbhBF`debK-x%z- z2K$r2prB!g-D0p7gYje0_`2FAs2UiI4Nubz8*GKa?l;(j2K&3gs4SylHyP|zgZ;~3 zdkuC8>O%8!scphRhz7gLV9O0wYcS6FHS8S*6Y^pY`{?5x6%tT@y8o*7>D2G%LU-=b%~%ruyv-vU+2r&!=U2icy+*J zI9!9DmwHn69U9|}2{{l!@(8@5&a<~G;Kt{2{3i7iBmQ)lz3J5%|7G^(T%i#kps&CO zjExkCsq;n(j?$qoo zDMq2a(zRa=j1wtVgEJ`->-Ya8Op2H&J2SlUj-44xMV-D(IItumJL&YrJFvWj1X!P2 zlb{0)+S|qpP@yzl2+9uPI;5o?1Wh{AQH<#*cDwO+m%-jL*t-VXXRyx<#t&cPJ0-=!s1+sk6YfB}9!_M!GPmu%}4DX!fxyHZq#w zjAlcAgKKCm{dGws23QQtY7NToU)wzXSgbPqK;=8h` z4@$y!QfkA}NM?B=7I?7Y>g}XI-qdGFnDr}+1Bu@e#6!t`!WnF(@L;AV64Z-*uXLb4Y zq$i)0?l~sy*t9(Gw`btP%@pqMq*R9&x*MJnKVT+K4iDc2o-Xq7@`Lt?{e1a&b2=sB z3BQ|m2KdU;@sGS^nvv4{r`V;p#6~Tq#_WF}v8Vip*l+)T8T*40TRirA5@M$sa*o*b z51NVdK;Z9iR8Ge;5N;i~D85XxOW-p^ySNj(#P;VrY&Yy}(f~}eL9$2EmOxJeMs|pD z7vgLiw1Wj=I}y!W+E>F)w&zXIvq4WpykwKu9>HQsueAup&|ZrsWor~8Tca4+8pX)g zD0YXzC@fd(A%p$VU=0R~8H|z|jgNYX8n&;&erm8vgHbA@{>bWRSh6~bk#SLMo59{U z*e-)nK&}2p*(MdgV!L<<*CKZi+zhlQ=~R=z#ch!Tp~yj==YURWGmmb_+l}I2@P}n= zZY8f32B>mZKO_p3K5|$VWDGgJ$ZkK@y>oro0UX(!F>-GtR@3V8?1rzr$QB4K{E?V% z`{Brz{7r$#Tie?Lkym{M*pEDNza-&XdkiA-Mc$0S<8FaovI_B;t@}m#b5=d1Bl`=m z-28dQ%kM|lQE4IaDwh8J8PC2C;l{fyI34U;s4nclL0@-6r0gHG&7Z$bVu@_o-Wpkz z%Yn#OuxUCH#I2gTVh{Pop?nu&LNwU6{P&2THFn~M&H%9K3Vot= z1bYG|-4pyZOw{1=N>8sQ$_&-?v@!h?CJo_?8arVq>?COEjkXC1mX!p0<k^6GhHov^HoiJ8kv-0PGmch~(fTuCRVg2iJwR7{UV<&j5;GM4^grm9xtA|nnceN`w3!?Fa2v5 z%!Pt`#l080Gp;7~qgcE#C}cMe7+aAX(DHF| z{N=zL*C{BUH(!?~vH(9I-j0=Y<{%x;8mT-V_da+2Rr+q|y$)U|9^`xFihdofkjQbv z_FUL0JcMq)D<7EKH9%6&1rk>sVB0zyQZapPvk+#tgn7DSlG=2bplEl3`+$zNV8CT*(4zklIBYcGX2N{~Ks7c1p$pSfM zmY$mqr^3$X7@@}tmymezgT&LNBt7{;PAz&Ra3|uDG$uVcjrTb~5SFlMX(}2&f2ZR2 zWnatsqSKEUxrKq6xcnU)Hz#llOr<-R0yY*Ett5WIstlmV0PDeIVfa(~by%-T6v=e@ z+Nd(X2G7bF>9W5RE(WpvD%kl8U=YcN1hHE-!JK#yHutmeawYTG^s6vFZ_ z^G)|E&_SS!L4O8XW4n`EVLbQR_6I=mM#4{n{v328D0+LjGkgf>5!gAeW4ocf0CX7W zD$q+nIrdx%x(_r2%Dx(7gm6^XqI}9x(UfX2uZqpJO{v@`WMj(=cBjGaG1$Wf<0_cO z*J!YH2HR$^Hx2f!!P*U$hWu(?GHjFH7NHn#i_kR4Au4vJ!69#4=I@4f-40f@>h8m1}yfo}ogUvPA ze1k1B*bN4I%3wT)QS;Jbur~~L*kI^%Y=7ytDNW8%)UX2#HqiLv{tnIGWP?>2tlD7v z!6&G{FKv^pIM8|SKh`HJkN%8jdf5wtgW6xj?DrRuuLivvifju-K6ei73Y0^O^W`N) z)Hw|mxqVQid^Wy%HnTyN(Qv}n)}ldF)!kJT!EMdY)?={?i)f{TU-R_@P9ZQ?zmjxW~__KDx3OuAR?#=3QS+Thfvj+M8;=%~(?F%Xn$?+RMj{ z8~4o~dxg@saLCuWMNUhd{N``|57`~GG2`U} zP?RW&jPSyX<`)G(As%1n_cRqj^nkV3{9#^`;GLiR$gEF@(Ts#xQPCj7)F&jP(O7I&b`FTh>DE2>y zo##Dh0l1N$r+&DsLUDf%%*Y>vW!6|{+WuvLf{(|=J`3@EApYM-@T*6xb_3o^ih8g3 zWzjhqx3GPX6-+e}O*=!MrD6+gQ<`<1!EQC! zod$c*U=JH?gTY=g82Kelqt#%a7>uRUbkRC&e_q>^YEinPVJTfve`g!)T!RfU7-dlE zkKKlbooF!LRHs;t!5%Q!Lk4@&V1F}MgTZ13Ycbdx2K(G#Ul|OYjGZnyF3sPG2J2(6 z(+zf(!NB6%VSNTGHrQnbt2WpogRL~!Dua^+K*d^JmNGt0|+$ zK8FxC%;fmS532XIZw!_n3`X{cM7V^b-y=J?`Qbu{X%fdhY(YpLg+F6Qxp5w5#^c*O z4W7nD$Ks$>?kx!wytU-LeO()NyM50iNh?&|6e?K1^s+$YwICFA+BXJT_C$MM3g6DS zj~gyR!`%3rJq(c{N*rDn*}Q$Pr!lhiIu9bM-R6s43Qa;iaLGnr!P^V6 z0_B?#ZUp=z==MVlvV0d(t*>T4j*XcN%b~Gn?KX~lIlc`4W?$X0aymRjExt0d1L9}M zZ|9TPv+$}psO-g$Q!IV#fp5W_vZ`z5msQP}Ii0tppx>53uVQY6Gy9DXd8bNONr?yg z6g+!icLHbx9Y?)f@z1uNEB-&0ZaGmx5`tSFaeGVr#-$#8%-X)o!cZZ^0b>1k53l1*dAqYQaaM-QntU8r0X7p7vP_K-Fqtj^;e^mzimBDT^7@|b!G1#XD zOGZ6w*fiUOYvBxbg27HTSiZq7HrP;uagf#ct}`{YlFxV>w zqu5`=QtVF?CQlLQW0s&tUet43AUb0$u4*YnfLL4q%H4@7n?*T+@}=0U_fG5}uEqL% z{Ki4sip$@|QOL2jyaTa4Vjd{wLNSjL^JFnsVo1oinV*^;x4cYuI&mE1%)2wPYhrsRZo}!!WwCEF zXUFb}Z7*$%ZJPLg?Ar;OV_%d^i>*f1#^Ue33CP>GCF#xZH#W8=wyzYXEL!35+pK8_ z`YyeEQSt`7g_=_U;x7(fbqCP&Y26 zQ@VlqUdsGx9QB=xA8wdQe=bz8bzxTl3N}JT=G)b2FU+PCX9i@ z;@Z=3m2HHFvMf4zd4W!_VB?bKkm}MC7_-KQn6N7`%lk`Qio=^^_TVJb97hc_6umc> zZ7vwOqGvF2eNJ=3qP(j8!N`Y`nodT(n{wEJ{{k(xqi*JJffRL`F5VA}{q;i7JNv;P zkB*uPr_8U!F>F&7RL`SKxneetLz^p?nNWOOC_|``Hpd50Rkh?a&?m7?g0`k}XUWXD zmAI#jBL$bH(O=@Z((E=AD^Sj?`k>o)Sn4?5?pa63}^JQJzP`nht*ak1OwbQo$;a!(UWti{1VrnjYVwAey7sN0>* zaSWwuMxN^hd*9X7daGkF75A@$GdoDi0~uspLXiHzI*-aM73F3;tA`aweZI+fT^v4G zv6@pori!`c07DrvTZr?Z=W-q&SDeq!%7H8O_9%WOKf<>;(j{+`!z&ZidoJ{i@#f&k z!1z{1x}3Md(V25hy&=PX6AaE;RM4q?Jxhvt9qHosL=`ftUGpyEGpBk_I9UZ{`@GA` zB?!y;QEzAn$RO~ZQj;5Ttanwym#yIMB1HBk@AgB+N z6PY2Pmw^rgT?5KdmjXuGskBe~cu?9aY&*Z3AnY7{>ru-(`qHH0Tg5o`E5;5^v1JCk z$6)NN)gRls`XgVU*eeFxYA}wk>hE)dQS_`Bc^eJe$6%)zjJk{Jk8f7}@x>{|g>%Jj zGuW>U_B(_9!C*}WTW_%K27Ak3PovH>jkUH3x^P@a4?*c2ClHL~d?%EfGG^T6zOm3r zTK-8r$`&a9b8aT$z=HZ(&eR9Jdv{Uf^KV|rWlOHRR|pROrrx|CS4c!!YCp}mxx#}^ z@KEL{2#;$hUdUZb8i@s>7yN|~Z`@*Q3q=Q<7lQL6g3ZQMEAkyTUF7f&GV_A0btg`( zAldZE-CNwG7{Z|j7INWSqZNp}kh>pI;YjjO`HrYp(hA%aXlTU^7b|jC!wDB;<%TfU zAS9&;!G;gr*tEYo0BwN$bxbvnw?e3KVAMMccW4FkU&9C#MPL-g4;3W1M$-oeJ@vHC zpeM|tW_V&MW4tSvzn;}N8G&k@K%)`^t;k&oJjf(bRNFfg5|(rfQ-UzugI{7&Tag=P z!1Cr`ej}4u#0(5Zk*0CpHkf<$0|BJp82kq3M))Daj1D`@nO!00a-%TcYp=%!5x(O9 zwm0NKyG(M(lORG=ftbD;w|QlHZwbJ%2$zNJXntVo1n+6FcS<+M4ot|#EK#$73&C); zSXR25*NSC7N0>#5?Va!r{5BzEdTMOf1UK$06Mv`CUzXzxHfTcn`4V+s$44)T>B$aW z+~VbI$BR4Qxn162v1fCjW_E50_L>xvkBNA5p?<*T$Odp1G7^Y9o!bT)(WdK%H3iPB zVw~1KEf?n(NMpNKnokHC5^Od_1?!epP@#e?g92xqlpe}|v$*_~Q2zVDh7a6mO401) zaLIT)=D{6ocriEnBI|t66^+!Rxw~0qD7T9h*8ITy3E3!f$p+q}m;RH0=e3{*7q9Jh zEqI;k5^T8bI4VNZ4z{lk*2KK__Y{KI0V*!YW5IhFt5Uw>F%6MeNXexvGHt-^GS#>SG#IrhG)XMXt`od>D=tKQrkSA;}FHWC=Q-(PK*4xfz z&eg^5IG@2o%=KLHHzeRUGSMa9F-Gi5JU3Y9xwpFYtYY39buAL&Vl{_J)^uX*Iyhg7 z(E6M%gEOb@rwi~~&);3&NJzd>hAhO8>9Tn5Du?k=CS;O3h>dAnG9LpBqXV8BJxi>M z-K}mtvYdw@XkJnzM!o|_nv58)t(ZT1N~Jy6OK|+r8)CT#KUkn!JWsn^E|!E%%2_pc zS>-dP%$-{?TX!&U63f?wb6-6VShu^FQA#N>gyQ*~=Tz78z>co<)4UDhz>PCaU27@G@`4H3RX;>Iu=mwwEI z3LNu38_|ps=j%PoT|WhvHzW((0Vl$EZovK$MVVuV>N*R)uRv`EFO=hn~gXy$;We#r@L!~q??1d!3yB1^N`=F7qkA!i<=?Dpe$lP z5Qm{6gR5t8I>_0Auo%p6Wt9Q38wIyh@XaV{UN$)~*0Dxtzbx5fVf>=f z6GR}D@f=$G4xhk`Dh=2)8-E;34ZqE&K(7FO5|p*`G$@&&XF$7yJ`2h{El0abk#63ys3|mt>o81G>Se1F8Oo8tf8-@l)4y#~bVhgWYJbI}OIwZjFy? z+#2>NgOOcQj4Y`7``BRn4EC+T+6~4n_8K-ItQHHT6%ZeE0h5!+UH9<&X^=qWIedzAj4s+rK2ug2j-b<=W7D2pG33!qTv93%q} z|KPSOc*bM|9fCiXH%ny>`kEpbRy{86l|8<=HwvonbKH?eGminKbS9r7;2+I+aP z9Spz*u^k4#v^~~#<}L^6;=?gTzKmfFzUXil9QGDRufc=?&iGhZF z>CYHekAMt-uo_gnBcvo~Cy@|(Z#<0cv%#+ccNHOvaAlf%i{j}WUKMOajg{4me{_IjC#+4&ofqi z3YH2DD;=(22-(8G5a!s85IPXpfNeJ=O3VHN-!(7f)*}wf$GH=vj(KQyAW`?~pXn$ab0&ucWpq=5H zR0h^D44$nmoOH6-*VfRUi?Bu5yCOfYHeZ`IgKKFsn@5{h^!c|ahm@*AQq%s_0 zFtZ9GEOhl3WqmxFEXN#S2guP(V0~I&SRSk(k*|#NnW{m`cEfPW^_7U9IJcN9@le2& z%V?}uJuX+7aA$YHCcK?+i&HR+Pq`|7dj>l@=a7du2g$3~{aI_^!fjI=>ajdDrK&n! z0_HFa_zMzV6*lAIFFh%XuR*SQkd$XkFH20EMV>5ydF0U1IY71%(R-B$s;5*|RdmV% zW4T6R;d%W>XZ_f)9Q{z2wV-kuZ=jhm-S{62cYRa>R}YKB`MIo$xw`h$4QPXSTj?HP z?G;Xzuc%nC!|pX!H#b>s-WX6KIl2$4U#DQnm!Gm4U9q> zmTRnamXQ+%1mhnKyA`H**kTDg3;CfS2zzrq2XNMuQzN4U;~x#X1E#oQFJ26KPnNn%>=R6eoCUoe2-PHEt3}32QRCnbOT3k$2|GV71t-kI;_jv2KZt4W-br>(wyEWM3aP~M} zUG;t$8N_dR21?{JP>5T^ev5ku?qy&>$b)YejG8?|WW$|upSO6N$q+Q*rw*AicUqNj z^K9T}ONb`VV^*W<4mZ~+m2-zs56`n6XCeen*7@2sF-$e3mKvninD~cc?`9esl(Oyj z!0hwXE3&F?{NuY}1LVRzBdQ`d$)5t|8f zzhgID=2oN1hC*1(2(Y0@{_b;qWgQTlIp@UbW5M^hzDBP{|9nv?!1fCMFV}6> zaF^mP!S#jZxO>z>Fu#}kF@TnZZby9vRpGr=tj_k`KlYE3umJ6R4 z?M_RZ?YzL8?d*EG;y2P2@Ao+O+hB0^ zZ_G0L6ZJV%?Cc}dUW^84R<0LG{lX0o$2%Ua&n|}(V?OmRY}NvWEH=!MXd@_lkIkS} zpj$v2KwkyryW9r)7AWMjqPqM#Xfoo$^h0Fhn0$oU$zxMgcoJwU=pIn~!klo>AE$%# zM-^@Qqjm=U@!kIuv>fzbpp~Euw;q(~Yz1XL+Ced)31_1`pMr9a_Gh3x$8A3-yYtUM zdG*;Bpo>7i1m(GHQ1A&a2mKn9z2Y~Zb)apaH-qAUsxW&;x7!N;3Dg7n7f>hxg_}XU zfNlhZs<2$Q&=vGe*r6~SX8(XGZkS&!4l9)Ds}~=KPG4!lhDOw#VprOxREyGn#pWCA zR)djE(y$L2>|ukk8EDwo4c2O~j|@f;fcnd}O{uuN-NAAVMvg@Nab-i(ono*GgWYDZ zUmNTX2K$r2@V@Q%I4#xqzB8B$Z&I-=+mvPGu;m7O zz+ev;{9~YOp&E_L#w*GT2K7Yc$xa2HR$^&kXj3 z!93^#HGj#rDb?cDCW`ei*kFTQV6agJ8*8u`2AgfLu)$UsY>mNwZ?Go}_O!uXF&MYz zYW?jrSgXMf8w~8f?a!O+lq1D9eNTOVJQm5EL&Go?ye_9GvLAwoW6)PnD@9IF-U|an z`GdZWE$Z*h4Myj=V~aD99M3*pl-E{V{s9FG_TgR7mG_>9-ILo}L*-D{FTz&IQ2B;p z>=lio`^17#Logo`wl;6Zs@3@PgHeC3JGj2-FsAHSjFP(|gOQ!V^^He>1ipC}7p`Ny zqL!%*k9r>>4SL=P<>R8>HYc*(-T>7A+v|&?-mvJW+={9DJ1EDHw%DPPy|KNet=D>E zyT?O)=FA;1wT*9p={>kLLM%|SAJEqEdjRc(X~*~vB#vGZ$2%o4cxz`|hkqz8xPRR_ zDg?~F$HcU_WIX^ZvHbT;!Tre5B0ArRNOH|Qd4Dh}B-uGCD6nM4v|vX9Sj)+%U60zv zJ6c+fI+nT)dSb=-SoX@yWRk28@0uSy%%89|wkQvpPbfyluPG{s@3n0@6@ila;3JWRmYYRL za2HzX><+6>)ZqPDr`4xp&^h`LnuEtb`!aDpVQ9YdqTDHSr_8>tYG##iu8ypLoG2%q z`sls3oN!JSAVvJ@a!F_TfbL2ihp^{}-#6UOoXKT{iox;enFJbfKe5k+=Y9fwl;GK( zV2y<%MdzH8Fz`&1E3Pm>N+E8T&&XB3zO0vE7xo*joF-FpIa&NvxZlD?yWZ|Dl6$h8 z7L-OACuc!di#=J~3dJ0f>j@u)S?3N@T|KZuR*ubhf5z_{tiAO`*hfwLx4CbEZsleO za*lVMWL@dX!JUge6XF{!@jZz6_DlTba6Jdh5NBC`!Mvdj@$qoz2N7S2lyQtJ#qvYr z(P!Of4Mon&McHMbgw;QJakD)im<%LwJ}?7zT`4KSL_BfxBHjgoMev~9H|jfq{njkN z5f9tXRt)NBa@Ju%a2uFMcOgsz{Q%euP*&4yP==iY$|(}@d{E-tCr5mkZRe|{y%LoE z7TEZ8HvTKyexGfB4wU|QYyjhHwDEUr`)=FLBdM4#YPi$?S)lYk22|3s-K%XorT$ak zemf|3mWA&HT>#4O1&1ODJIs4XlpUrimA9o?igC?Iv8xO=%V0GIyUAd;8SK{vd%|E( z8?4@7%?5kVU>_LlQ-ghOuwzgcnm?+>X#TjaqgWq<`3zQMFiwBe9~o#3yVPLI4fYp< zJ!!Bl25T|cSk$A&S7Mtuv?nOPjQ3sc8xQT5mB@YwH*xU$aI{}!V6Q~yF6#|<%kVxK z$}sp$xMXo5ykgCv4SV4rk8PEJZ{Ll<-=90`n|A24&>vJ$=n~l-8v@dfd?`1h86#0OvGGRc_aS^BD$dSNZq38&V+pX?m541U;DHF>7SJW#)p}_h^ z@&nWY*-9V5Z~h^gAW`qdw%SV@BEwL%ns6TE>F0`y%d1euiNXb3MvS^DP;Y?yK)7G4 z?nVU$=V!nrgKH;lzcEi z4Hl&os859IR0k!~AMGu}D0NV97U>FR%92s^PEoIDglYwcCN4^Zx*mqQMGQ(7tx&fp z&F)Gtor)&wV((xmJ5bsLB+HxCynJej_cW`HXvAty=CK{)LDc??csvgvo(ze+f5(WB zkx>7`lB@obtNw^9{r-Rlx;hhcvDcqEN==M zN6mm-uqZEqMG0VWqaHO$)tC*S)QMrkh8_vqB-Bb;VGDtVg=z!zL;ocDD*#-2V9UW8 zAI=W(GJ87PVr64ZENjgCkK?Ifh4EuY+z(J5G*GzcCPLLNoDuz%bhCG0yt~ z5K1wx53eda1yGQsGA}Q-tE6k}P!@l_!$Hr+pl6#X&^(1~?nZ9Fp5Vh0#%8i)l~ZS& z&63|FpVTF=Io}OVnZkF8_KFe&8a~Em8RW8jt1mj#BgXbdWdBYu-ay0=`qKCuZv+Pp z1S@xsufx?K&=tEG-;pE{Y;VM3mbBjy2^&5y8w!ITG^!3|4aW<^tIQ%PP0!+c1*`1%wObrKp~ZD$i|Z!dyQ+6->}a5!ylVqx zTv=J-ovi|~v&m)_e$RVAV$Y=a%#de&!1Gp!|6dDY;Vz^09P}lq*rlUUYr*n2rKa-V z56BzG8%8^jms}1;KhvKk1x|ypW3EtWd@B50@bv^do5(jWcvYCv%E0nwcC$Rg1qbS0 z(KHB_ONE6D!qicf={U?hJF7DBIyOpzt3aRY2ZKBgGbyS}WcZXhoHW!ZMK(^K#gZKN{psq*P!Z}E!V#WTH;S65`YaRAQ1!6yxJXNiFYwrkD(6sN z>HEt{6xX-fv5>`bt|E7CSE-u0SQp2-!_%`K`m8bQC~+oF*HQTCIr9Eaicj2*)rX<2 z@}%=!FG}5#p{BIQvVLinbq3Qak4DL^=szkweI_1tZxp8i{Uv`~;n0E>iaY;kWbCNo zY<_~$Qy{^kEMOoqedZ*rMo{U=;lqo>S@o@Y!t9cyKbCex8Q&;zzsr;9S}SFx?7fe) z8;X~yC6{Q&k_p1hkubfJ;<9$#1~v;XIw)50J!)nW6suT+>eo@M zIsk9Xl=HAppp2*ofMy$nbXD$6`7J0}-`{|)K}^u64nGR|d(gjvJ`B16^bycj&_9Cq zL~Sx0rHS-^H7Nb_tWx^F5tROa4NCv4eMoM@l-fN8%6p@p0G$B})>N+jrMnM#q=avLuqO=mw882P)@(4Y;b_>`4fct__8aW5!LYDx=lLYtlqM^)S`NzA zH9pGL6{BojG0N5z%R?JhY=CXToM~YuQ&?2cuq10w9~O{`XKeb|Mo^r;9k(#n$mt~;$$e$Jk)agit|zvi zc};2>=huOnJ+1{i_VAm-hB(wz09Wc|th!5TYKXTuvMCU~>~L}Z=0L+UJ1$mE-fqar3ipjSc;9DDQBZI`;C62xsg-B1w{Zl}7T0>lj( zY?;`|M+@B#lzf7?zX;UqbuG9t1i9xKDCVUoCMJXo=!JwflUw_|>Yc$#zGh`g`F6&( zP23_oGY_88u&_()i_04Jbwv|t;MjmYc-Y8yXkr^SM6MJ5a3D8u#txpb0bakotbSjT z;|;23*zebtx84RO93$bsC^=pzMV&dZ55~XS{Na?ecU-Y=2Q)!^8EEPSSCv%`!-vs= z?#XM-F{WiOtrP4?HiR%n2S56pIPb0*Arg5L?>g!Ss6YhdLB=|}bDb!xH zgbvsAu%w!V+&B`^BHj-~0qEb6pjOZ}R|`%}JOu~akd^s6vZnD)#X&E+N4`)pS0#c- zF4eA*bZ^7J-W6}4E6(rg3ZHS_4`MdL!udpeRka78HYE_&eL3@=Ur@j!F0PKv#kmfYKk?(+DV=6>2Vw zG%Uz4!>pOrpsdYXL0Ri`#}d4_XMoZjOYhb#peKORADbbxsKXov$v#a7y#sWCZD-pj zn?$vU(^4F^g(lTDSB%=`id7hYGYv)^bM?2>VC>`+yW3z78SIY+qj*gHJ!h~t4fc+~ zzBbq)gQcPlH0-gqDOFAeRg5)EQ!12l9DgGWHq~I$4R(XU@P_QLVD;=Yo-!D9!ZnQx zY*Q*^Fgt^FSEK~%W@QHJs&XiaT!V~a!LWbT?qGE2N}8_UfirHKeT({Ex)!3zVBOGg zAaW3kbM?5x7k+v|GJ>;dacwYmnE4}H=<|xZf{_ie8S6G7s>NCGatK@52ci!>up7}^ zu}u?h&#k9nZwYp!L+W*)1b30e7MDQrxwI9%I@nUl#+gmH*f-;*amX>2hMF^O;`IWt zcP75#^y?z;ti<23xud?{$1l#*KAL^~qgP^!`1tzfhQ1RwqnmF)w%5lB*R8j{7mRA# zU@A0FEBqmDs#^l#y5Y?$ z24-2Vewd6;2y_4?NPInNBunhDR z0{ug|oMIQ@eL;ygBM@dWINti@Vm zpCH1PdfM@mD=vij*Z`X{8zV&4QV)9}ez=Xc5;8cwLr?)J19=b1Lr_QNVf&)K;)y`M zv{5n&v_t<)^b{Wk{WI+MfIb6C`xl^(fObb*wDZl;J_wX@3crn4g8mKmYeAm{4TG)) zg)XFodj*vKGf{{1N5@r`L3WJEN7WJDC}Ww4VBMkY`FU2L$C2IEXX!}8szziNX;4F>kk_E&E( zN>VgzHR@Z#F0xHB*H4i{NpY->Kk^PI_BWG30b}kC8IgCFY_><=-PlvU zV?s8zL1kfR-Z3F1w!5Suw!ai-#y8=_n??@7{K@U`I8$c(l4k>v-nqf@?Llnt!kzEY zER+gE&?(3u#@>biHqgrw(R#HPM~7f6ZiEulYL3Olk+(S(7w5ktV{!HkX0T~qK5;^+ z2Wuu1CyY9bYh5$JEj4ik&+ow~%q2oNVAxok75GH`V$gMbz-arxmnm^av4S{#s`(6gs`1wxs+%7vPQ#SGQC2#nmu*mSTsZ8pxe9Rm%9xx zRl#$f#7n=}Mg40ll}0BkytYAH?~gzcbrWWrD!X${mB zO%6nA^I(IqBvP9LQ>d>n7zk`>vb&7XDOj!+9^oIknrC^}`)#1E;U% zRUMIf+{jVTP@UpyU*|74uw-zggZ=1!?NA>Cpu!6GqQYP~ z=Rv~P2ckoeLSx4iP>EcHK|+Bj&SnnOy|@NRVbJj|z*_n|d`9fve<3xw?;2mU@Vh@! z4Q4?H>?Q64o}1y>u5^rZ3o>Iz>?Dt9l68|X*NC#s z2BLLg5L_D*JDjK4x?U&FQ2ZssWr3=!@^F?fjJNMw!$0*Hy?m`S?dP9N{u#(WI9cvZ zUuEpzGT$N@Y_IP|Esb#l@#-+1T_`cy+DJHDG&4{)sV8_PHob8(;BWBu`nsaLKzUIn zras-!eD9(g_I=hxSJGrF+l1=w3&UFMc_&misnU#gIQ%RCB?x&hSo?3_ktg2eK}e$O zYWbZ9uno9vp}b8r8t_~!d6aJ|6e${o(1lboiWH?#4ADNW1STKV<`A%WGTK>AATq8J zD*%HrM_(R@6wTn-Gy@rqf{Q#qc6jG#TZt57O<}!1G7fuY#|>T&!3Cp<`0_%LV8EBZ zj^1&=+bC}T)gZo_c2~v<_7o_6I$X`%EG2%Xeq*~QK+U?16KG8AIf-8I2@+V^H?l4t z{LT1{e$NIdJDv6##P8l;#SUe8eLX8geJx8&N)KlawRA3G((D53YwV>x%^e}jI#9N zh$4dJ|3IT#aUbJ^oW5S(O>@Kb5Qz|eo$wbETfm}}L0&;wepc`MJ9*j>_jI!Dr}Tbr zCr>-$p31z&S4t;etqH!MJS6Fr-k;vd*GCDy(v7doPQG?0_`(W`9anaOFS}sbxTLPP zuV#HR3Ril6&tSpfj8z{&!73D~SOk#{Hfc9Vz6mr{3{Uy*q{K84snE&wA8Q+3`@>okF4MIyubjlor~)Q}gMaLgC|aLZx&H z<&B5(b_nHVu{QEersoWatay=3OideF%mH@)=yzZ*#tCN8=<8yFhUtAf#Poh3df!f% zg8A=@96UgU%dq6aV^e^2WB6;NaIorBKBA{jW&WFYIu&Hz57%75}5Gm2cj=x`U(@43I4W1OkbnhSSkL{ZP*>bE9e5WI|$|<4(5MZoZsw^?6-H! z@tc(X00-^;Uv&rB@*<>Oe(aX0ok6@McKfkgqWAy!OTf65ncd_6<5$?U_ZdV zL0EvO_6^O^MM?PB&6lq%z^mX2;`1fw(#!WA$|Nb}zSAuz_JPtjzyxe7Ag%997hJ^N3DW%@VHstUdV>~|D^oV22!005dP=KD?i_TDn7e( z9e(%Wv*YY66sZk^j}AocSSch*>5R->{gL7n94-qFl>Fd;G>8)E@x?VlL}cfWEXa)% zWl~%es$1IAA6e>!oG`^-AflX%RbPF|Q+8DX7s2VinYY)rB6Mu;q!lt=V@YR~@cXg- zlUCL8Ylci?Rc$T}hv4)PJs+5Kdo9$A_)V^;Jx85Z)H08;LkP86omSOepoZIP2g88d z43e=>bNrHDQnv+iJ?thwtv>ePmGv@3w`ET%fx!G6b29AIYRmgD*1GOPtNFu8JwL)S ze{D8m($%G%C4mC zm##SGUKan$($FzWkQX?%Weyn}Yl8!&^qs#mnEmeUS2u!c9O>Z)hAFtZBxNQ~3p$%0u82h(tw(J!p$G5LA~f49~NL z;d!<&JkJ(}=h?#WJQapVA6f(X26ycEO3SXiVp7v^9o)rya5)wHl^(#l%hKxRIj&(CTX*Q+q{ zY>^zqVEP7(sn=?Q>9Cj%LAdprxSj&pEH*U5^&FU@D1q0y*qElkv`PHkXiR@HrWRxR z#+Xio>|H|)HKwN#!)VbBc@Yv{H9d>X-D+yjc5?b51alfT2U`|mk}joi+&=4t|MNO2 zn@)!>isp_7eYYPB@+_}fFn>PIpTflv&K7!Z4$>|3~=*dhd3A;ES@uu(`{pIMUlSlGE9 zhIRk$JG`e$2FD^p-B1(IiAdO?HK!t;nE>2=MGw|n5-W@9N1JfY|Kn<;J_n)M;bab{ z7go%voKcn-(`0y?Ctkmim;wk{CUzdBrj>Y~#GEN*;);BpxbqM4X;+V|JP1C$NBqb= zUPR^iNQdih#K&ey3C+NoD>3W!Q%pIPjRZ=yd@VCz=juB&XK;4d34#SsGh@V01U0in z;%1Kc>h+1|h)Y!ZOz+_w0vA6K+sPH)v-Ml?w!S-4Wv&V(WVdda*85qk1LiDUFu&yD zYS?E;nA<(=P`0KYZi5<4aWpD|aWhwg#Sj0)bH%kaeWv#~%7!zI3d_*l>8Y0_$BNjB zAKGj7aM$2&PV|L@B8cULk{g+vMuQok0vJ}8XnuY zYCNMUpI3QZnZ2E!Lv?bk_&X#q_5`eW=nLa{?|5g|9EPxBsm{4{ z5XZ9aXL!HMa9Tnx;A9);o4FZf#?H1WRkJ#L&|8Vhb9@hHv7QGXI&Y3ghH*Kcjfsk5 zOQffnb=+sxy*T(!D=Y;*W(odnc07)mCd@I?#9y^;#O6?q$7MYy*aR$U_b^)>p)xps z%AATav(=IB_kHomL;W-Z2bmwNk2|gOh`4JjWo6~SwY!viRCm!6lee%)!n5Ub)m;mu znJ&|MK|Bp53N;*C5zG1i$Hc9xHOHR4@C>cxS1t z93C+cuoIa-hUUt7dd535`vd`bj_;A5a8vryzC38HEWOJKp0m27c=FPQr2W+Sb@8Tm zaXWnybP_A7MF(ykqI*rEs>$}^M8adCE!Q2tldR%wR{A_NEb5CvyQ2F=-aeVm%VYI< zr65yrq}zzBpC@GF?S9Bc^74(I?rFoibn#@S_3h&IWFbSDY58e=fzfmt&B#<{7Y08w zA$Su@ky?93dh)Tzu_rtI*!1+?J<@xhl71ro|CIkP{OM5#8y{49af2@gZ@iq0Yf{#U z;$jFz_$LNs>={o`7SXMlEdE*Izn7c&=;A77>yhUj6vI=uGi`cWE-KNFyd-z;lIlt8 z(k0!~Ep0sVeo{)8e(B!R($dnV{(zsn|G`iHwA3Gr=YR2&_dmtc^}nVip8#sXWlgbu zie^An$(>+eaQTntXSld$E%sgf+%*j9c*Cp$Xlp+29tOTakEz)z{syI`Tb0&IYoXQE zwGjIiu0_kd)>?(%F`fn1Z#;{W<7rHlG#*CmZ%EjSJcDs0&GR^p<^q@BdJ(^i+n8X0R`Cl4V zUfO?eSo~oA7eD=fAf9;Ri8s)FqJMD?8t5=wn^0t(>negiYLWFbG|;CL8fdHd>zAB{ z26`j*S$9F>yb-@H?gdsYeo1Jcw|VBvsOW&-I*#2D%mvbTAs{TKvvK z<9sHefjVgCua|u?!9&V|Iqn`AN^lEJ@NxxTVku=6tOD0Yu#^>y(3^I#2$O+vAV_@J1B!+>g&o`}s zuI+X=g6=_LI0MI8pKi6_SAv>n_fP_#ujALL))^i9(I+IjKJJsOe_DN9yX@}5iEfbR z1gIqSvEIYm;63g;t&=e_o#NgJbVSztPPOZ~<%1vi{5|2Pe$dBb|JBFQDs`t6{e1Vi zR+DwUt3j%Y{qki}wp1K`b_D(YxBsC+bH&$LsG_&f_x^vb&_NPiUsUM7(8unwob%E& zGdx?_4ITN9ag)0nQ{0a%4)v_eZq~#s@~N$0IG)097Jk$aZFK{*pM=@V@@^>R47nbM zj8+qVy40FC&nG9FzbvC+H(w@d-K)UDyqrlj;#JPO9aE1R#ar9Y?s#q?sPu z49sb2PavFHs>j3$Ed6qd$3{EC#fc_wx#9Fm5$8||CdFBiqUJCLZZzO5N8$N6NFEh{ zdwv0NvV-h*n(Qzh^8TC_jBq7P3jl+aB0H-kDUy8;WK_w%qP$>VkF|cD6-Cs17`?Nn zVKNHqJd}a#$0RujfCqZ<`G;kNIU9#weRzs(=S++Cux z>e?TG{d7>`7lM8T%318!pycJh0o@3Sxk8wwp`FY+?K6;1Zk5@lWbuEV_k7=b(Q4*@e?NH7dCtDS=X~e9 zFZki`QP4QhcreHbpp*&A^m~G~2j#w<_+5^Dxnp1B*mr;?!hIKL5-9g6CxUhblbQlL z34H~3-os(glR&S=`4^5s!{fm?odS9r=xLy2UD83vVZAyXv;y=@&}PsMpi?k_&jOtT z+7XmhER9s978jsF`#>A%deZ*uJKJN8c<`>-_Qe-xI6deIx(@V0(C#Dz-$iKP$FUvDJ!gQS5!i zS`_GXCln+o0HH#da$8nPQZMZNgGI5>0saj(NdgCpxA? z>wLv7RP1ua{E7`ztVpp5it(GQN#jn%7AQtFP$u1_iY-%YxndtFwo|b$730+}lST~Y zBNHEIID?(4*cpoTR_qeRu2$?C#VA9^#5YQ@sftZkY=L466?;;#rxjbL*xQPIuGoIX zeo*X3#ZoZGn!KFsnDAI!u^x)?dxG)TUopzKHW+1G)0AkklU9tNWdqA;QaT;jCzUi0}tzC+Ju2@IZtnt^yF(q18D|U@yRf^Rp_MBq> zQtW_Y2NlCh zM6r7ndr`5M6`O{2-NZN3F(q1eDR#GF%N3(6X@*F&)+@GAF`S$^@wIbIiPo8lbyRG% zV(S$9Sg~D-#o;-W$zOZNlxUr$SSQ7XDpsi2B*n@V!`CJ!K7L6vR4BNoZajSPtuz*Ae?3tjLy~Wd9pXk~N_&7aww=)(o#3 zG6v#J&I$IahkiKnP@26go%xP=?emovi4tB`E%KX&E*GXpvIGcOhKcqx>=KUo~(#Bo(kJE()hMR_m6dFRwqND`idP?vFK zLxy}h9y#j9l^3E8zrm1=%GQa)0&>N1&*Ntx4RC1?VGY*33+tV~uzv33c4XA(Nt33Q zj;^4RF@D3S9M0pI=~0dM9VJk}b0Rj^0}zqtRNPMT@Ia^>8OMo#g?aYQVr7eKqSQf!m?0#OL0N$%0wkag`uS+S zSnRo;Q#2X(bCvAycn-lL+%MjCVjGr($BI{>E!d{QY8 zdq;#fVu~gr&Y6O>Vr%QhHD%1G8B?G?seDqIQ9On&YW-Wh^}q+BSR~!XD=JNjH34z` zT|Awr?LggCquiKSb{68V;^|@pa$~8OS}}T(L_&A$9r0_ADj$Ju6U0EFqj8U)LD>0a zxdw~U5+Qd_d_D@Fl!7=IuIzRc3xrw6$PHrG8sw4cqyWSc_+hgQ^0fIB#lTSqv{xJX zL0jS3{c#*{%bN~hy#o%9vBK=yV?f!QU~0oxgO-5~0=)^e7!=#ma0%#i&^tjPvnRY5 zbS5Y-tbp+iF9p2~^a;@4gK|?I27MiLJ}9TWYS0sq4;vKQM(Z9>js*y>4xbAO89?ES zK<@|T)_D;qwq4erKnH=+KgaQdpxqJQ5G*Wat3^|yHCnMU$CL=M5UxLNx{SYtiY-!X zsbWtm#xj^RmMgYRu@4p7tJoKcorrvzu-HI5>2_1>0>wg#@vD-_UzuX;p$237nfPu~ z>`}#*Dz;v+jf#DsShHdW72^V8(x7MslLnki`kiA z2VVhSr7tGH3V}v=EF0n)T)GxdW}&FF9?y*^oJQ`3haw#!^qyZ+Fg_INp8_vwc`xgG z)tr^L#zM>rl-|_%`xqf*yhQbVXvssAu#Hpx=KuwlB{p3zBU@x%%L9u8c z<$1Y_7PKK=u{FPDat2--_e=?{stKm!DP=Coi3gM;lNaXOgEH(5fttx!@*DH)cl)Qj zIp@L{{P$j%4VK{j8t4h#vNNxAJDw!t#@LULIrutLwdW@1N3MgY_SX-imJ1?akn$jT z5Mr+fMAA5UPy|l^$102os$o;9xyB#6+8n38*l&p>qQQAK?j`q! zBqB&WcO(%FQb|NcI;CDxwjudjahl&w zs9IBzXs`NVYiup_=Eg_-tq8!bP!Rhy+AU=6K2GlG$*-BgVUd+m^*z{Yw0c^=e(@k% zH)5umNZQw-ni+i{C7#P1h8jjm71SsA?eFn!Jrs%*aKh;6PYHg9$ta8U=eIu$*dO85 zxaW@9fs{A;rUoP9TVWWR>Iud|9_ZZMVC-)4zRn|+fSq!6#M}F-NLp_c(Vx9K6#2dP zA$wi#`s{jt&Q_=|ZVG0vk96?B^&x`6oGrnWf-R6HACp)4g=fYa7|whYorR~*A(kQE zE*R|3*%3&|-+>FVF@c)X@l4svOP{#BfHpo)@1e!BthS}|?)4Qc5b4PkF`;+|aHIQ52#oP6TDIFm-psxpNlA0>K5K!Z_ z+xu&vI6>ZPV|Kai6C3XZq3pT=;mbqL9odj=7B|~0Znm?y;o>ZEfPQTjx5!gVVKuuO zfAPqb5aD30%;5H>048&1btFu41)C33i`)(+muqg#eyJv$={s0=HE|9LnCr;69P-eWgi<|-!(Gf~_ZdvEZ37{lELcUG3L1PL*n zt+Dv9a<_gNgd*lP*CW#q5?gNkBJqr!1v0-m^5K>&{TuITSgCbY=5>qN%ZesvznWTnO1M4Np zXLsE|h_f|Kc0JtaO%vd5?`@uk#SgDMR-p>H$#5@BnXVt{f@8nV#!)Fxy` zn~>36Yw6VK6-E#*hd``!!u5#9@8h=mZLyE=EXJ_mut-CErjx}UbC^K??8Hl@zg&$| ziEQ{cH=nUXom@W3sHtE*;VU72=7uDje?R6P=-QC@IbdJF48*OQ+w5#rd_lzTWl@dH zEii6|mQ_rfP%7h(k-kaHx(~BdGd{CEATtCb?<@r{f}VJN*^ESd?bTZ(a<$ z$2>m~B*r2kmVUkr0up;yxt7Uq`_e>`#!#fqkAwKgj1l4Y@iM&e{VFbjPlO+oK|+*| zt{87R4(q=U{@AD{3{K%Bg*TD=3p8&f@PSXG_>+*wx}#eJuzBLpV0@7#=b#Tg5J(Z0iO0%2Z`K{JtjTxDCtw zjlWU7ejnABm@3}|Us-MP)=z4Vlg<@kB&h2MujFKCcz2Bu6n;514D`5D1JML#Mq+Wh ztb0?2-_PA2`L~VmN^bNhV(0HX9KVsL`yD75l}kZaf?fvt9cT_H=WrYyg*gR4jc1rs z&6S|TL32Upf(`(^4|EVHoBt}%_dxSNQ;`R{^H_;?9QlczU(D&B19AxH=b%GDdB6mb z(qX>Lq5XQtUIuzS?9@8W<4z9lLeM{f-T?X}DC6fkGz#=n&{EKSpga!cH|cSp)Y{Ht zP`;YE8MHI#B+#osdHi`R=H8j^Y3$!Qe_V__~Me*{eiC4L>~0#Lpb zyBqXgP#$ys6O_lG{2IF$lxs7OJ-2}}zZg5XJPA$)^l8vepf7-42l{VNGK(*QJ_`C0 z=-(WBEhvtP!i}J>fUX674Rix2{e29&3Y1IFYET}tUW@iO$E-9Nb&&?U!EsH5L|fM% z*>dCWR>f{t%vS6k#a>kGWyKm5Tcg;!ifvQuYsJ{}OuAjrhfMy?b4-c6-Q!@FDAr%G zs}-Z{Qxldw)x>v`Vq^picB^8Ly69j_6?;-K_G=U0a>bey<6*6dZ?9rsDE5ONL`gw5Z$0V7!lK(x8TRgXJnl4NnFes@N@x%}}gH zv4~<1DYith=M?*wVs9z7NwH5A+pE}jiXBnx1k5!ie_UlvIrxmlU>7UqS1hO)^-3Fm z)JtW;PEc&JVsjOnr`Y3){YA0Y6{}P1EyXq|_O)W)DdxdkX7Uo}m=dki7314mlfO$9 zyIe8eUNK>Ld&T%0tyr02e^l%)#U57dF~wd`>_3XVt=JaDb}7c0*rfZ7Vm~N$7S?Bz zzfO)R(YjEvixs<8v0;kcqSy?@?p18DVoxddcg0>->~+Q7RcxDLpDMOju_KE8q}T}< zv8Eh8$Ap_}ie0E!P_aD4Zc%K8V(;KA%EY(TF;Pu#G1OV$b$j|Sk?ZPS)WGTJYncyX z`6#fD*`5;N zatKwwVUQoTo>^O28)t8gczuZH)?%ca!FcSeGoia;%f3KPead~cQ2)!UPQ!V8ZFYUl z)tP~8sOoqdj{cPXn`(w4(W~fZ$a!pVF)UWSwP&1gqYiHMI*Gb0ei1cr&8I<9EZEzFV-wq078EpvaK`-hbNgJ47 zx(e!9>zZT7=~1!Y_C6k4PX)rUP5n~d@OJXocpne7u0)tQyQq=&PDapHul$W8SAGuc zcjyLQUi5X2Dt`}?!7#VU!}u+j9C{pgQ{+?lIvwtBfxg=r2Kj}-Nslcn<>Pnv$beTv zMo%-_d2UC{?>yN$k$*T(fUs=P`N!X-?yYAeJ5y zYL>*phquSa!qX&fQI0)y7KOWHa^Re%n->07S)|KW4jsTOU-c&A?#U>%!3WnXY45umSo;(Nl z@UlC8+ffCTc=D9iCU`02A4o1H!%G!?StC4rTQft<6=jnq$zGLBHB_Kn&jcJSJZHt= z%!co3jY0}j9oOO*f?GN__?Q`EZ*s2a@WAI1iJ%36etAg5hsI5RME80RebGZj|uIjzkrq9Tl^WN(k;b_vPe z(|v6mh8YJwl;PhgZJbP)@c!f&NDGKQm^C57I7l=>@P?Q1_DPF4|I4!7JX007tS0u%))=f zHAO0d{nQ5?xVqeRDGTR987#dH#GF@Y7f*d}Z) z*8fR3TVU7X+{D{VoGJN$h+V^Aob`B)5mw~*BNcXG9(xROk5qU#vQWKa_F;^yW6mIh zJe)z~-qRsKhw8#oyQ*Z*AJBb z_$jVC=wQd4GXd>WK(XG0*|~7HC(Lox1C(9hLeS?y`M_j9=tZDkfnE%XVJY@lP}(^^ zVS^e@0mUh67>{Idy6haEfZC3oERWS}3gY8x93&oBo_LE|~`DN1JB4xtJ^Z#VAzV_-j;bjbeKgJD?bPo0EpuG2!yN zV%dt}NXzku!z?Ea+_rNt94t9lwPH9FaxiYWO*y#bHu>Y0+hE*s8*H~?dlWmWn1$YN z{Bfgg!lo(KN3p(&4OWb*aZK2;ij7z7WH3`EzSA62qSZq&KFu&;uT-qRVj~qBt=MG6 zxCu64x%D+^L=@Ym*oTU7`)d4g`)b0*fyXmgd&iV0%C!x4j$(V%-vPybYpVc8_BG*K zgZ7^M(oF^S*UoNXt>L(TkKMx6*e%rh>psVB;fv^QVYfdr7`ufhGsEckcbtgbLV`bM zwI6rNWV_H1$UY3le0-p0EUtUo9|Y}&JbQZ{l=Inp3vxEiosQcOKWq)2`GvVPC3}R` zx03s|HwNwG|7_XEn;%UT@t&(QK~sXbHT`zY)ophJ#hE484FqlPf6Pu`YXJM9lKtLb zjrTv;3HT!g&~f+OoF}mn7$3lGYiOWbF1dANDq=U_$1dO>ZFT{daTjn|MK@-nDPTV- z9Qmfb*>%CH-6ktlyHkR7ZL&gs{{qA^DUyaOA{Tv!%7Ab++=}r&23G&UQ0yvl`hCFZ zKjv`yySY1=6}|aQv0)=uu0^;@Fui##9+7iZ^IF4TG8p=Ru=xYfpvSZMoC-MoF96-u z83y^0%`d|Z;{PX`PX?W92fyrdNhgE8RO}wl1rTfEG6){)mn?oSS%}GJ_mU9&kZY9K zxH0&woZq-pa4dVDDIv+QW=c%ALcG94Veh#B{}1-Qn`8s87Oid)cRem1bSh#GheCTfT?Q;^sUMGGB{3?Ubt-+mek8TanB$9FgLUxjn zb2VfivGbovnfw76b}|`!T954jE0$ahmv>x$hRCvWB|3f^ERuqR+60j;0E3XBnlC}# zwFZFIFtvVc5U!SBQn)Q3Zo&5N=BFY)hz*Ud|W1hxBoh8 z&zL5{(>(FC6*q#~OQxuG$c^2-mw$)&>GGQ_J>w#`I$8WZkI!`GN)10ayK%KgpJ06B z;fKrsaxJ9{9!<#dYy-;Qj zw5Xfeq_R!HM&WmsaH+qtZP<_;1L-ot{33ts4bO>NC&}OOZvmoR_t&^+W`|sK31T>&i)M=)%SCgj8{~K{dKO)d z=c2>v9b7b}2ynoe@VfOA?wZ5NaMv7!=2gKVVCW|L`!me^I(Qb4Zyj_kz8Z0U-2}>+ z1z!Zhy+AjE{?5VK*=hGX_8=(z4F<)Ry)Y*Ux^qO)J`MCeQ1(T9R|s=(ZUtQmx*has z&<{X2fPM(N8T4b&X2-tMvF`(I2F|U(PSAs(jOQEBU7&F&&u5@u-L1W#91jOT%R#>Y z<>dDjDB0{GD7W+Y04Bp`8?4B2HEg!Q$Y#@I-hLa5r7_q88Xp;MgK_I%{IQoA>?Os> za2xCs#XeQ+YsI+08h>Xa?0w_@)qwoS3UihZFNzXF>y(i~GF4t7wnql%IBHfdx!rX(v%F|yt!U9#TBU%p~w!VSi+ zQ^p^^P8n>sVtW)D52nZXo8*}Ac2u!D6)TBz{f%`@iK^+$oQTgmfG^$P&KzB5Yy|2$ z!yF*G&JLn^pz|!!Z0O>RhAyc!^r>ZrKDX4+7Z(~T^7=zI(nQ?7sSB+f4z2UnpTUFo zP5JhcTBZs;)b2x$n#Fg*uYK=E_@Dq^T>lR8y++SSKU`HVfVAO}Sq=V-;X5i1r`^#F z!A@b^yd<7cdAQddUELQVFSC*u*qc*#N9KO$kYrpC1bm2sfPKM?;{h);T^m1juAkh> z7Vq4|)zvGI7yPcwvvUhkgfPrin`ih|SBFm}g8`*{{I@^e7QkMz5M}bO*ogm7ZS^2Y zb}gK5@yK1R1W#H8P0e|Zj`yQqeyKdeQ zdYPM4Blf+2>4adV_gq90nb#Aw8k$(!0hhVUBYsa!HSx=vkgGXKaeZ*7+aR_#a|O5& zqZAE#*6c*wSf6DlXNs1z3IOrA+8&~}T2!B)0a3R$-nM=PO}CNwSv+S6tqvxnlV*RM zACV@3TCu|X$XV!uXx|xy@R#AbUyj)aA7(}l#wUkl81u8CwE6s0F(G(dnwVPiBNsEu z{Olh>kpT($*`FhhOaZt518wo;K^FSWMe`h(lF@H2Y7bmgBs>}`!FCpf116XU^4vod z^PC55CS!``^)+z6Z)wXr3J0TBVo^Icy^xb$0@4dfg2|F#A1CAi+VVs;{i9w6qLlDO zSrQzvK^b>ZINyl_8oY}_$xJ;>QoqQFW4EM^Jj_mg6uTcO-~ecODhdyFLZ&lyia*cm zAgT9sLVh5r%+$6nDd6Kob)x zas2mTLK*bmR}#u_{J$m%HPe4>sB&@w-pCADhIb%TZJLGmGJ^{ud0VB*;-OKnun@I*_}SnPntfDyO4X8|pt~GTe*9*zL>{O;2|X}!Pi~U? z*jwg4{S7HrqyGZBA7H+UPT6?!)`_-FOlidfD3 zdvoCcs#NN}0os+ucxSe2sOvL)?fy7O7td;HoYmt4B89{2p>pAHRs&*jW^L$5I^1L9 z%)|!&Wksu~gZ49;Ha3nZ+RgZP&a7yt>sAEK3EhfTqs0o*Yo|fM*_fhzaK2#w?2H*_ zBMVX>gsxwSCq(`M8`y>g345PM)}!c0R^v0gpg?SPA$su$sG!?dL;>(OHoB2O(^=F0 z*$s7PFu60B@a)3vOmj1O1Prq-*wNr0QB=!>qfu`_l$SY)uY%Zm#PPevhogzDMGQq7 zqyFJ%-;FyUBfjbQa4ht;#%V?8FrTO<$uG1eEF0crDsv4g^Fsg|hu2D7Ha511o~aWg zz~LTEtjk_S8yf0{6n)uH*Q@B0#vw(G2-GlhEQ^d{jWET+2$)v55mmXFRk>w$`ixT% z=(s9;QmV^EQH9&1r9y#*6s>WquwJU}RuqV7TvqfJGWJ2^Av9LB;^5s>oEsr4uGg^@ zcX8t@CJBVcj4_Q36_?L#p@eyPc?P=Lh+u)og<*# z`1Zo}jeCc0ZrC*;X_KdM{|FXfD=KOSyK2esol?EKkb7t^DB9Y%dBj_dM~2rn)J;d< z*>zh|J=B3gp?N62}kEZ~%g7gFV+$m6Nl zhc(XjjZEdgKKz%pI?#uUt5x|Xxhh09E9;w-s<9Z_t7DJEoHBTIbs+-5v~hKHnlS+@ zRxDky62&?wHde6=#l|a^sn{gNvJ@*o|j#p z7a5d*ho<-DN4%>LkfHW?@r<>#HeeqPM$-OJ5b02P+#^;@S4Pv$U@$wWBaUL#%|MS$ zElDnjgCo#*o6j&>OU^vA%G%!G{#?L2f>QR>80MkTIp|5m6aBH$j?|odP4C4fhdR>cJJ< zndN1#3}zoiHhgW&LN^+qu6x5hWFyms~e_Kkv4x>H+Z_$8Q%y@y}O#GFGW}b=$kf|4IVd1BOiR0|l z$^=v~29!P6(EA@W^e@ez^t~F6uV!ICh2+qEq0DsOjnG|N80?8m*tOu=5ECpc>7fy8 zP}({a@SAJvq<}_=HP;QaMB$I<16V=69!_sf@b=@iwfp1TI;cfQz}}$Oh`RsbqZ?MP z{~pH~BO3mPkC+jw|EmuauCiQ8{Xa6yrdT0*c78QWPZXLu;>sz-n+E+@s0uP+=e zlFv?5c)z5#ukeNym?=!l9ztFG=(H|YZq(YwV``0@u`J50if81aPnrt4 z{n(YD_ZsY~xwhciB6b5yu^v^{9%gn@@|sp)y0Er1_uhf5p|);ZgZ(u)r%$+OfIFI% z^<#eaS2Dx9nw$rfzLr*k`WRIDXgAV4`)yfk3UYo-iOlBgW3P17Tc<4G!J{lDqTe{X z4%1YN%u9|RRdtOA)z#+nCd%|*){ozstjoKn=cbK>noDB3MqT3o1Ig2G4@w2sblc(my0E%BkLC#a#+$wtcYt4#!zBW z40P+h)p)4BQMB29Xrb^t${;5`Z4_D*a}AYVz1_HT#FoY*&;wdO>L>KBkqI+1xyR*3 zZ1v33gV`VR6bym8A8dR`OMz)F8LPQ031^ ze*_-x5B$c=U@fU-UUba!;lVOfy2I|aq*lMiMZ=x14~^Q=_)KvFihEBj@qLE-MY>?T zeGeGFK5?6wj23}UUp0M#g%ZXo63Iko3uQM!h1No(mJfysBV{2w=N3G7afOZ`pMeBy z>bbK&RJa}1v;@os%zu7@7i~V+i%Mk=3M61?^UP+ucpI9K41c-FaQ#F)r_wX}LLrx) zKmra)cv7;na3`!o6L{j1n+`5L13tE~oxrMlW`t3lzSKNXv9&ihFQ+bL!3ddBos9{m z4$Mb4vUm_Qf;z>La^nY$N2YAR-oJcBBJ1(U6fB_QsO~%1r(xyj0dHl%&pW8TdSn6W zhJ6L&F?FtmA^(b0_^Muy6&6lrdY~W;fWt8H+-SBQhh*<{%YZGc1c=*cakpN+2TVv` z;EDuW7Wvj%#5!#JIXF@X&u!P*RM~X6wYIfdj%nTbXLhQI);$!MZRX$_!zHx%hF;-C zI`@2wiHMoINV-Al<7tNeEuD0B>fb61eY4QuZ_YCI=ZlT~`8kHZR3a4fCJPQ-XJGme z>re+RM@>k7K)n~$b0@hDJ1cBj$6#=y-+M9rQce0jhb22c)P9Sv472wcm;iPbv$$1c z+8JjbC(fQogkz&g;fu_5pq0(wJ@<-@MdB~F-w@q@lIcRAj8BsEElX-G@Y=M&I%`; zTw@OwGWVF*A~-6PjBjDB)FYj(;FgEwB37JK;B=#L8g{kLfjssck=IN_BQwxCi#fzV zm$3Bkh*@Gx5rT~=LTs!$HpA@Hr&t!`^&U1RUBLyjDq2$KmZRbkz3(2jtI2qaGf&_| z1U{;mKlH_68T7^0Ho0nXMv4T-2*4B~eYSz#q|nb4f84l}6J8VGvDQ zT!6;o0-TCP^-ys^2)y-n7bzi9$U_92r$`W!hcOt^CeS&^67p1xsao94yjE{|7%C28 zYEp+W({FKAN7k?{KyP!q3D%hcPKU2cwd^a#_l}}>nKKOXLiD`NMPLUGVYY=%ar`0o zCl$Wkco!nUJUSjOD28wGJIup&Br)5!xR&PGz9kKYKGj6p;(Kwup|5Ww-C4ZR?D^v) zVnneOaLU~sF=1ktbI&5_8L5*qkO8N&7s*bQcIl=vMv4}jF6(<-0wCan47d-wn$1NK z>1KzD77NAPEN-t9RX=L{NK=a$;g%A6p{S9=hI}*UtZD%f;7K|@!_%p0MG)D=72WrM zfC%|C9iK2EF*Hm_0TJ?9IzDVdz5_=|Q$U1VM#r^S=Ua;2a{~&7fXnGtj~YEx^uC)S zvHe_$rL@tP32ZJ_u`|P@2EDXg#2Da$CihjR8H-Fiv^z5$TiI7#==e;frH^Al&-7KN zJHcc~!ER4^W! z^KQrUQpwK$h?(pTN@jZR|BCs5ALSLHPpVan*3VC?xNCGetps|8aIP^@WJuVIeprY;W+-E^NX4?riLe)&a%p`J=P@L4R>$duau0A;#f2 z0&TNb=JBo^Z6=qo-qxgn8l3^{+_GWpw7v~OAI#`9dToDne1la8yF4?31-Nx zt9CmYZ87(8Ui`SR{>F7^f_tQX$R(zk^}#bEnbCqxnw7P7KbknTdbf0>)O);Vv#ARo z-$VPM!j}?ge^^e%*MlOPHy2??QcZvU72r3)m_J|wKEfSs{GiCsIktv(C7{{XgHx-_JnW)oEH`!2QiLxA z!gwGH@K~MENrK*k%a}MELrGKbk`xaWaz6h9Z)Bh-BM@ooUA&ZmjTF9C7B-?>Lz=OQ zZ>2A<@ikz#!)4u@on6Bpr1S_v^}#yf&)2Rw zyxV;CW-!tPGe7(3FZDytXaitmIf0Mqk z9lPiwJ%sCdg9%7Ca7A(mVg=8{qUyZ@T^OH)FlDAT{^-j~ zwF6hA*Z3hZlFE~L>BSWc*9hgwso0f*I=5@Gst&@vaaNXdyC%!IU6bY9uE}z4*JL@j zYam0;_&2v}B2V#7lq*9{)GJRyCRb+gdi1?88HLA9F#Uva;l)chD7X<5#RLo$6R%4d z6W=Eo(=BR(kP8R0vcJsV0b_a6;UOM&8h#>8^*V1^Y*@wGXCIlD|VRm2@Q5 z0#mG*APB~KL|hYLdP%SlOmUs)?+%zAmOQV6$%Ob0rYpr?D&jZT7?=#U1g1{n`V>qi zmJKkOSo$Qm{vJ`&2QZlsyJ0dRzJ_U~#4-}4F?CuAQ#ZkEm2ATcz+?pc72s?8BEjy5X%oVGt!H2|3ZCm=`dC~y!;~zkZHLL^;AfcrDCt(< zj)4jLfSO)b(+)NLq^6FkZitYYrl{#zn2dt#6)=4*Ie1H5KY?kXBf zV7gvRwJ^P5!opN6IeizVe@fU7VKRO4Gnh<>qBP4|Cv`9mCR0PxVDd@WKfq+tco?QL z1X~Hyb&|#oHQj|J{zP#-0MjfhmhrtvS(@299zZ261;J|x|=?a(z8rKeP?S7)B6EOptHp)@ccr`6nQ@xtLQd0-y z*Mz+VrfiG(`y))lrLNegOkF(!lj$2z!(@8SD=(R6-+Y)%-}om?nc{DH7tD^5Q=a#IjlXNqF2}1lr&{yba2pT$BmT^9Ud2?1 zoSaZ`TU7KUUvziEC1X5Ppd0Q(8$oe>5aK@)>YOe;+J{d+5qIVXV4^j@h}`TifIT9> zfGz`Lro>QJZ01nLHDSuQsiUUOh)RIG6W$&buUB?)qso$eT`t%7dF9spo)9~=q?d_1 z1>?EWF{4V}7{_1@Ggf4T87=C3E^dm@6A?Zyk#_GAoAmF~7=~|7%&$_?;VYI(0Wv+& z7b`|mCZ%$@Pen7lU*Y2Fuf6ynHW0CJ1u(xIUF6*fEKmR*RZK7ep7??RQlTVizHmMb z)4XMkMiGDQt+$Do*RafQN0;dH^HL+N4HJd+s6^`XCRweTLpGoJMWs6ODy8`y6HzZ| zOGac%L}xL`jb~Y# zc%lzxCQTm$aRcQQMgSgfU=RM4u>AaEemlBQ^xR3(hsRF6b;{%k(Jqh$FRzHVPF;Go zzg>DUA5q>V*jf6JrqD!%|It$NF0T2R>bikf@~JPJ{fPZFRy=IdYMBM+_JUQk=PR6$ zp8@a+C#rHf1HsI1d>58DS1i-YCPDMY%(9?F{ZC*|$)1c&9PP?4V2QM>KP0)>c-Y<( zf1~8N&=*7KKDL)%JN9SNyRL=`Z#N~QHNl+)#A63!>1WI*SZCU`jrwBDDp*Y+1@hRy zQ>IRsK4D7Pbn^`58TeUqTxJu1QJowf5}e@1$o}}Lq_QuWo!H5&$twrt4$12P2wglj zIlP{xQj*crFl%Xbq$9RRC50~&+!WZ<`y_?)PH@GHLX!n@TQ+Lkq^VQQlbXN67nFqK zXJlliA!)p=$FJJ!c4fZxKM8Hjx#3Nz^sO;>KNz9xazu=r?&GNCHDf+>z2a_S(5~Tu`S{VAj|}+P zgg?Cg>2ektFe)rm`~`cd&s_NFB2~7c^WRT>D2ZY@%tXo#GOA6B_wy}-Uz4NqBzB6g zr1r;^jjou{Rsb};op&1kS<92zNVzmxsA)6bvX}iJUCqe+eFOFkX=C&3@ePa%GoZG3 zxUlEK9cwnr7euR?79}sXM;yNC9FNvcKeY@3D_qaF;t0m*B<6D&$YO}O#Jbda3QwW- zg5Kb{RNOfryTsD{%9u+bwPY4vMDBGbJ+AmEvoNbXtb`lh}uO{%RE-6Jmm7 zD%l;m_D&ViPR#WO8Y=CQlt}vi(KV zP;W1=0VKIQ60)u0xXa=TJx%Qf$g|a4#>A+MNZlu3=_*0JQWjQen%Jj9Rg$-DS$dh$ z^LX}JiF^UL0YBuAqLL-ANuK-ho|V&DE@DA_^)jU=SA4w_g5%^rY!(S|nkU+?$AZO1 z!$^UctIg6b*=>9N%$r6b?&?a+CdaDHMYi3sCrESctqc6nETIpA; zBNOw%gihADxPQj)7DZIK67-lAn-#?3f5F+yd9q8M;d`-<#PdP7F!`nhIr`>dQw~l? zUSsFdXyqFwl`&OI$PN(Ck|Isa-h-=s_;o^$Fc?!M%K*pXwSFqD1QnC-9$^1Vcw$gJ22BupaGqAanaf75OrKk2KyleH)93jysn(Zm6t~HQ9+e};^}3G)JRdLC{l4KE zaH%iBI^Wl}ZcYEjv?2aaiFw${m9nu4cM4|gtZ$Qe`teog&d3|Z`;Vx+Q}JxQgS7xd z^m%M%SnOvIe4)5cL}%P>c|Di3nGjrI`0Q;|tBi-bSPv%Rj{_LzMS@L4C8k)v!{1Q6 zY-g-5!0j~QUIzh9!Bcq(Ofsn%1}v^kZ*+t{vt&6L_-A#4%1FPDox?ChXSDHL9-Rhx zZorko#0)KOVviF$yGXs*|00pGc}--U+g4Lqg;9LKVHa)_oI{Ss7aY*h`LSZO>2Gw+ z5ZBbUIWw}W8PzA^=$0982E{(SP0Ho0T4tQylRDvFo2la|vBzmOr-}Vm^hcl78-K&_ zXO<1iI!D}YKE}=MJ8w&}?|J%q=C{e`bdyiEU+)Yi{JdmD)?Tr5B5()!=&_^Ajqoe> zfnaC)r_RG)cYi|M&xT}+=$rf_IO9l;t6r3JLcBNjlB9Ezg80i!Iv4T*(vv2{$Hkr+ zpAdUKY^NqoiH}RZ_-uC+cp#O4HPm+XiMq`aH;(iVWo6=o_sg{{Is?rz^DBGi=Mvxw zPajC!je5AvtTCKR_KSz_+O+)GGP5b>OwwM~iF`>v86$YT*gO1+Z&vX{aW$Qkxux_< zN|9j6xXPH&MuNaEtL=|h#&$rpU8vP|o>tr0sJ4s6#%lZBFRG1`oMCdVm9wKcrHsETbCPOcZYZ zhPYmjj(h5FR9!D=22*v+abK|)IwgRtJFySPu45o}P$M8)&a$3G5BwQDj=~uDz}fxf zx&}uwyiv@^z9~}T5j&;Ci&!&+;&CAaugh`aDG;A93m7+s13h}|N2v;7z($~a+haRO zTL8|Zx`Ccqm}()^40f&~M$kM(zVpP(AkOg_WuGlo5Jz7GcnW2Fm9lgCd^}Dv0B3KX zk4HpK#CoJevG29Od0aHm;~p1L+hhhx$&CiG!4n%sFdn&L)eQ7RPiW3O20w1A#&{MY z0C)WZJ+kW;Y4w1(%OB`ytu(v*j_^$0BNu-IJ-@Q?I|Ck;!O`UE*zFJNoo?LnAX<0J z!)oAuEEj(RJ-0};MD69UU+Q}j1?7)bK>IVY$1`@7AXn~y^vJX1WeCKLBp=N4SBDbK z2Hgc30mUVeFgJLgf_?=08R#JgZ*}lg#6g_fyFH*;pnE|ncwrwXcf|Wa{h$XxDbVi= z(7%Cx3HlP~LD1JhzX7cW{SNdK(C{!qs${Yte1~eXYJZL-6=Rn(ok`=~?4s#QADrf-o zWKeD^h;yq%oFnoK(1$>2=az_ePI5Sf3v-Kro8n<^;czD{d=54Q=#^n^XgYzO4~n`A zbFY*MS_Ik^^sk`VpwEJK2Ymtbd{BOW=nYCiz&M2n<21v%3^Wmx67|M|*TfgxFb@{5 z1SPN850qzKK~OS$SA&*-;utpkBA7zrWDbdw>BIp*_&iX$_XEXIUN{eQDCkq5!$AKD zdOheGP%wGn_dwCM;TBMc)d;78-5&!w4WpqH^l4D&MG2ELpGbFX&ZmPyYNk~I+7WaH zXcp+Lpp!snfmVRx=sEl#XfEjUpuY!w4Kxf2VK~-&P%?yffs)y@LCHie041k)H|SE( zg`l%fHnvM+ka3D1?)Q2Y_w| z9S*t!^l^N_`v^4SY$lm(D=?g#8 z3+2UFH6nFrGWvWCR_3@G@i_*&O|dEsTcg-A#g;2pt5}0#8x?y;v1Y|EvrDcLvHNlJ zM^??`FH<^0Frx-??lg7Ul>R}gC^k^B8xqDn@;3CcZZn`$Vx%72};E}2p#CXLe^Q=-*HvGWwWM6n#jZcuEL zVz(-GyJFRf*^2#Dv1b%}L$P|rzESK4#ZD%lCw=lX#{>zwie)P{NU`e_D^=_!#ilEE zt75id_bB$fV*gfbn_?d-7Kgl<{Iz#XQ0$^uPsOfLY>;9%C^ky5iHc2CY@uR{6kD#? z3dP97n!He%1x<<8w~8HB>=f{}#^33VDbYGdv95|;qu3zDZcuELVsjOnr&vU>dlh?5 zv41JHUa^geeV|ygVh0pEsMu-X!A&{NbWG?Qie)R7r&xhvMT(77>~_U|ub8daJ&HZ2 z*uNBeTQT0!Gj;#5V!ISO8T$m2=hGY$#-L*7DK=wo5DmG8CXBAtf*lUW_ zDz;6r4;A}fu@=P=v6nG6p_uL_xezirh_Z8cv*yoBtGpZ973TmCOrzv)(V&^HAt=LtH4Nz>H zVmB+cK(U32EmiDE#a>gaR;lDlDRzZo{S+Ih z*bv1gD|U-wa}}GX*dvNPt{88-nl^e(u_ndVEB3i!`xW~^u^$y{hrPIo4`1w^cI%?p zd5T@BSbxPz6dS8pxnkV?n?AHqu|Oyfn;W0F^sYAn` zXQg@}rNtN1@aNl8^V{>4!+_L&cA$NFO~3RNHFw^5=MP`SzF*f8Z`arD=@`4wZ_i_1 z{GNOJN)~EJDvx;QoNdHCRPOb**1|sbdw-4bStDNjIkj_=MP{XgN3QwaZ`W3>f%Kxr z=HWa1DFfF+YCV7`yN(f`fyi>1ege{m zq=9{fg?xpB^!IvZ>|(?n5D(u?40yE>0~NoMf9-lSgIuFQ&c=DXxi*K2#}5Ly@hPzaCg`De zzOnH%ALoAf?UxIQ<2Cdt@}Y>nEvtO0xt@u+&bmPmbC-!(!6_boxyOHQ<(H=?;Bc`- zIN$PGbMO(w@B1sTO9eZCdlR=?RaUWlrFsT9PLJ`c65Rdj-CwYOSQ&`n0&9qM4}9yD z7IE7L{}-Uz6A|((YdI*tM=_>f`Q`c$-l*#3cPFUB(eF+S!tYLlqTikPJ&85MS{USE zokgW~Z*3Dh+Zacya(8XLgD*rQvu6JU%KCoXpK~Cv|~yXiTB3eEsCMsPS{0?EmiDE#gLBU zuU@eYifvYmWix3UR1BY89Lz$FP5#bwOiBFM;b1)!>#Z0*H8^28QcTzz6dR=&j?x`} zw<~s7v7?IR4)YK7yJDW1MT&XO2-PgH;3ZV^A`dr1HLs_FK<4v{weUgN&&x<>b*)-z zXoS@U`{J;nBg-Ce%KnSYmRB~rw`wa(qx1xS3!H@6LrPvQ1wl3A2`FS~ zQfgfBR*JiTY*L7VXz`8hxf{ZRcENcqC|;_%&YS6+I{u*e+4EohP^{J1o(GQeQ)`l; z(?Q6wTw@-fjzI(D<-9Ye-Tuo9s&?PeH_u*=)#!dKZg?u4n%0i%A@aEu%afa5L^KBZ zZSfTzMW!X58Jk&8dG?0JBVX0xtP|z&`9uwNx4}9PI^kuw@w^|%TaDXC?V^`77$}rvLaOUbNqVCp zBx%$EVOj1%(W^GkIuBW~A^!-8VA>%ERBXh$B8lAyQQ}3)2X6b2gVJyRTzNP-fL-^aSYgg_+qw#RoO1!g`86#j1 zODKqpY_)^QNWZf78`Mls$}m7BK`<2S1g%xL0T1CRbgt;*$Y2jxExbraT5aUP{@5LI zGJk(ZyA{7ji2daQDyS-|tV@L^RBuA;VPOgz19pM8?(+nD^+P|*P4z?6JS4Y8 zGBA+_?53KaH&EjX#m>k;9mrglAA8u}3hu6dLZD_?LLg^YTFQbqf28Qv8R`CcN64U4 zJexn|@m2nbb!SS6zkztRs2IUy6c!J#O<|2}21o9pEAZ}_QE0-EYtg}lX%eXz`$lYU z+*N!IOW(Moz7A3iimriRI*1(v7avS_r069a8?P@Ol0N}K3|*G{csXR7HN!S*hV85w zS=E3xpFFOD>L|7 zkZeW+7I!c2T{tfs_rql2%c+-lBCM0d^dn5>b#5#w-@LF*f~iXe{e6yA!n~bKj6>6a z*YV0le}gpx%MgEiVCpWW!!T_Ve+f8oUoL5MhslJv3Z_QMmCIJIg8x3p>6ZN$e9cC_ zt^ob8GYs;ZS21n$l<5=7rc~g<@#smnO`kAbZk>GzPK(b7g(HqK)g>OXnS2~rg5uz= zr#A!q(#N@T@x>_(m6DsV(DFCBf0lLpsn@zE`wyf=BrO0j<^DMz{MN@04_ zktvgMtM{7N7E2x)p+KVMscd@1gvp~T%HY#H3Sew^OKkVWk-g@p&%4CFA?{&oo|h?d zgJ6Dl$=z^jtC85K(^N}efePgvNXCq-7SLGa{-W>IGBl=t#k-nu`OIPZ#8H#WDyB^+ zl@d&VuX`o%)p1*_ALaVz1k~qNNnxAjolUt|{B@9*ExBTzTsHYa-4&2Y<;{^xtUIjF zfwDN<6}&9?WZbCb?!m3F!FUdMrDvFDjny@#hxJ^{B&%m^npGV8xHb&mT`>+e8owCg z(TZ$wnB}n&=kOR-BNa+f#~t3*A&tIm!kZ%UYjPu?QN>vXgkvq)vKZgg@37OjR|$7J5H^84}- z@@)dvA0*;jF{AE!O5HsH>m(`9$(~%?7e0vb$6)^iPKF=10>u6TOe>`x%EXQhf^}aE z-OrXC74I;Xi2rB3$<_(6m&PVpe~dlZn(mF0ba*w?Jh434(*?J;e!y))_hl+>&`i-M zWIja6&yKu8&y29&{zEGGr8c|7$z@K5WWK(Xe9V_Fg^h?65qo;NIn=mtDoYe{Cd{xI@E%DAr|+8B&SUB0SWUV_MpqORv#7Y5$sCMEo>9-LhmKkQrtw#!tJEjtX?ta zS}(@X{r3I-;Z&Cq!Pblq-|mqA-4QWs;ZvxLYwue{5>835Govof7vnq1Dfw zn0Wg!gFamsnPhOo)YoCCo0|z!W{#>DJqAx#qFZOvD~%7%<5YOn8`dWg7k{5x<~HCy z(7CX;fYyTYw%z-nKY@M>Is~_WShrY}!W;p(Q4;1X5)aBvTYFHp#Yv#Ntw$U;as(d? zng}~?)>tW^C7>vExD1s3D?m>JodtRxD0^fUC`U{-=%bE1N5uKCuL8v;GhB#1g)@)v z9ia4A2}<{eLFv8%6gOJJ9Emsw39}F8fLa(Jeo%_t41nGSN}LLZh(8Hh1j>5^Eca&6 zVW8U_`-$idv~vhx6B`bJjt0E}6gOkSlR+^Bg*o+O1`N*yWj#Ixinn%s;L_@)^b-Cw}AaA;rjh7z_sxj=x65 z)+qL_V%rq^RI$B^os4!i@uAh6__`>D7Id&n6hrMg80ystJ5sU9im^wTa?Dc<_wpR< zZ;Jgxu~!v)Q?a)d+oBkcT}+-2DHe}@WUxfXlxUr*81J5%yx<0z<8Pp1BNV$)v6~f} zqS#%E-L2STianv&3yS?mu}zA-s~B$%nLP96kjY;X`nADQ98)5mnz+~niuF_MD#eB< zcD-U_6dR}5G{t5rcAsK@QjDv=$;+FHtyAo6#r7%orD83L{jAuD7;`4RlN?i`b)jMx zE9O@$s91?&V-+h`tU@u4caz4`img!WHN~0~Td&w*#f~a=7RI%Suajd+wBCS;{CbjA z@0b#;57ZwycZNu`a<2~bIH~HDK@x`Ml1Z4+XcKKUZ26NUyUCI~1l>BYM-fQwo zx9}@M<5nE$@B_jK$O+5GH-xs)NC0la8P6$990I+}dDiAp5QY3(VhCLUav~JJz8-tK2?HP~ zj@v{Cc!Tn;%7%;^R&sx}Lv}G+VKVYuzJtl^XE4h;@>kFp@|l2R^5Wz6Gh9b8)$#_n z^;#DgCJ1s=w8NfJy;sR*YkJ3up<;GfD>W-Cdhfd6Lyq& z*hS7#Y6D9lIkjtGH@{Pq>F`)kYe`2ku;ypPERbnkB)|e;u*ffX_zv25$0FnWx(b_^ zD>i5A!1(?OV7-7H+IYZIt)P>;C*a6PSut(^Zu!_HX(#(NU+nS16_Js=OYG;v$LYef z3R5dsEp}HK(DRzuh8tvJ5*3pw6L0248}oLv*bOhuq^5|S-wzCL{d=+ZK?R;7N%2ir ziC}ZU4fe3|5VN~U#7L5KCZbZ#6+cUaY0D6^`G=wA{_vH8Tv$)o**GjtF<8A~s}$R;*n5h7tr$nE2@Bp&Ot^LFm=ejiIT*PIl7QVSgB$+DR!%3w=4FTVz}e)#P?6dUQp}}#c&tj@rPUYVoI_$E5=We%vBQa%sc+b zTNn(j?OvBLH=5S)rPtnSDaA=DOb% z{FO%s&yDA?*jZTaZ~E?-&-s(EIyfWR{2A7|z7M4wZf!wBHWc(DSyD$LQ{fUrW*3 z_UfADk20t~<@ttIoX{}`ka)dmwLca@j=R-{pv;}R@pvSk|7dyT&)zx9LZv90pDlw+ z0q;SWVP<9sr7c19!N^sfyqx-!yB|R9;=9lCOkOGrM8>z`gU*7?g|Ot~D@H}*Y*Uh8 z@7-`%lo^HtFqxb~txfr;vYw1H1WT+V*w|o{d7z36-w&+iydwJwk24$#jo{q0%1%HOuES z{+TD^bIK*F=Zhs4>0+fm$bj=R7l^IL!DGC%JI2eizvhLX?ioukQs4IXX+A;zrcltb#JMLxrpIQT(3%*3}`K zHGqGGo4}a(0`trLm96-m^8>Wx1OP)wYh5l5x}{6_Ti*(xqB8OE417^TZhqGabdeS4 zYgS6tyHF*;*hWAe&$kkxWiemW%43qzWrL}MxoDUZWa1u zW;19A_#UClGY<-VH1jZNX;Y|mO~|gp7rppU-OhM?kQnQ&2t|gb^);VJAc~b5I1cyt z1d@Imct$>88yLx2YEJT}T(v3)F`jVU-nb8PfdeU59rRb$#x(32J)j<+^L+R&$*RcA zz{iU!VQcS&-Z%Cr9_#-g)z<6Bf{cck8CxIpBscD;ox^4o7=QJ+wt@%lACGDRCtJ5%3s5c`;nqrS@HS!AbNHQU;ONr3toYg3 zh2r=@^IX$Z!UrJ7LyIn{*Lk0oh+$S5i&4M+5 zcJ#E+rqcS$rV%H?onUMl17B)`iDr~VEU&Z4VVio1Jw6XQ^0kg1HciNJxS7zESFGs_ zc1rsJ)bAt)#sQfp?h)|?d)%5Gwvw;5=P(XsuCZlu1Jd7Eavd(t12*kfWj$*)B*Lv{ zuDxpADxXdc9DmZPU23l>_q34OpCfr&bHn=e(joMhptHzc_Xp94FSIV?O9ttEE9=(8 zPwj2dV3X=bRbVyXw>S}A`LOE{-hfyjjqA>?!&FFLW-kdES7_>=jN^HT*CU>fxC`;=h;K!F z2I5VK8xVg1@p*{*5w{@zJK{x%>wv{YkjoL{JM-Q2KZa)QjHQbab7m6xZSXp_Q|@M! zbp>KxZ}7SwL5!i>?ynN1haGb=pr@_@=iZ{EpW>v^Sv^wu-rqd$sORP5dI=AM>z2Y|0neM@c_(=uJ6X!_nV!cA zOT0GEV`&r*i?=P6&w=WIcf03p^t?}a-WJdMrssXz^Pcv+AA4Q_%7^lSj&ERNoaa@0 z-pQVKiszwR2f7z}-sPT$(i`BRyaaL|^gO;+kliOduh;W-d0wCA?en}pd)}L#mxFRC zyx{?b1(2RM+4D~Jyi+`nuQa54ndh~8-Zh@L$@A{CM@Fi+cW(U5%=ME*TTQJyZtA(9sC=8a>uR=@0kmn}Kx5CFjo&@` zVRlDbp4$G$qU_$;FEwvzDthv=VziQOr;mr=o?Q@J9O8&nmhJ(j-K{R(Kmi}*9BG0 zJwH8U5ZGC%`p<8IYGN{fblfR+V>i5+b@N3%7t{nF`NcG@A7U!l(e1BcV)&l3(FNJu zK-Z*>K8>tl+Wn8#zt%YIM`usleiw8&JMx^W&{)rJH@uSg`O&|=H2b%&pRwW1#Le|R zx70ND{PO3o&->f@VLeYz+j-YHHBHlg+_Q7u-=N%Bbk_C^{ds>I^U~`%-(vz=(6e{| z>1*tHn&aQQU!005UzaW)TZ55=##CeWQ|Kh&9C~=Ww$EMFw3$<-N)Sa(^TQiDu{>Ra zKH)xm&Esjzw%bF|G&+8}lBAYxHn6pyZkmUF8sef&kD;&Ec=V~Jc~8_lW*HyjXE?iR zQ4Cu!p}n=G2W68}+dG)DP_4qGgbIa7YX$tm@fdg!yj16q?E+}EKRk+Wvqt)HWqmK1! zZ?rhIIIw-CabjP$nwwg#y~ZZE83}$j`RMtv55b=1W%jt!y5;lT** z*JolMYo^s(5b1l!DeQZ&xr4Xfw)e@thg_X)J2os3=)~R7hIJdZw@`}1do1(StW{_W zyG-6^c`s#!b5B-t13Y#**cW=gJ^f}@7V;8`thsLOl{RbayWC+#ew*d|3Z<*;n+84{ zI8Ol;0Pe(GIQ}%7|1u~ktq*0Li@k_Gi6ZgU#7uhu8z>H|^xNa0wp;zrnTht;={=lP zoyaru@pDD$_lYmWbb$CiBn$T?{Z9l=wvpxI5oTpw=8Fcd^i?(qywgX*)vOpwBOBPQ zz>S_xb@xYk7X>_)V2}vw;d{>9Bg*eBXFE26EXO8u=VJ?cn3lSS#QRDLeDdn?YLm46oY&^s%CPX46aWICrj zyBIscrSqF|)7c~QPspE$Qz!B$eR5X1WFD{74M-1$Bd)gzWQ8%yX7fc{qhV$xeECCM zkMJhP&3FZOB5y2tALOQ6*?!D7%d%fVyqYO+jTK35#8uHZZ5Rw_4@lP*pdcUjA3h0}uldnz264Q3HFp%3djo7~4HP%2_Z7^*W25KSF|<@|FGj{Xj?m@GLz%&xtWnG&0B-_cm>YRuxC$?XzCnG<*D|Z zwxQ*S8anX^*%4V?6b_s<*>j^UE+=%9MYWnZxC~+=w-xw68;C`=Mf)5TnE1}{cLx>hL}S#H7PeFLrRO`#JeIm ztHp5Q(L<8^q}OFLZuLCQXp`J0J?}G~_ivsD&jfOOuS|`6dMV&>m`=R6JZ~2KDjw?`*;wFt=Xl;y z&%4<3Fmx8^-r{+m@;vqp4_<$3?`ym7epN;3yZgg4jo z&hR`A2TG1J)g*V5=iTCYAN9PuJ@5OT*Xw!DdS0LB{oV5t=q|~|Spk)A&h@-ip0~#H z4tm}p&*NHWrMWDiFni7OPVu~@o_De5arUTmyF72B=W!1yrSD%o?^~X?+w*?pc_pX= zg*P&wFf8SHlRb}nUP^A2=W$0U@vif{U7p7`)=EpwFeg_VPol+h3yPDoOaR0m)J$CmtaV(xTWV4H5*aGG~wm$J%~9}(19Vb z$)LHGat7ljj2d(!ZeH`^!Zp2|)`wXRtv#=EPC}}s=f9fo8e7vmZ-3F|skrYs;?T8l z^ZffU^MHtproGLV`&g58sA$uhU~D)uRkZmxAR0H!KND}Np94v=OJ@H?`xl(uv!JZ8 z=h9-1F?57fc=f$+V)L zr!W+Q+-TOva|d=Gx@0e2x>( zuO|3wH2u}Hlg^s9eNcBbW%x^}Y^hlSKmYttW8gM<3vPqA=rs5Xem(jWhqtUtrxkIU zgB*u(DtK-uJoip6Yn=DjqD>9(8GT|iesm|dcYw>V0mt&@yTFBCHvJv0!x&XD7O`F4 zc-g9zm%nG{Dag6L$;YAFZ($@Vi9d}daSP(pj~Pwci@KddC_54FmR?GX59lKZpI_%iRjVaxU4uTdO-D&k& zvR0xwx*AQwPhv9t)WnDc$6S`<9Q(R#(qSY0d+hM_uwpblxe(fqdxMthm%-+d1nfGUX!2Afj`1jr& zkl|-_xC#UvUxIY3zv?>sg)KKq^O#M*Fpp7ZarsZfM{J8T@yhb*t2(b=b)vENa9Sdby`1Tla>%Wq8fF*rcp=WW*y93w zc{!HD*Hv64a;a&6R)y_x~ zCw?4xK_6_0&O~y#*m7&|LUh1JCaBCQtx|5u+KaNAgRjY45$W)K5;syhH8!0+JDn`e z9hSW~zc&9I^mAvRi=UgyEld~XV^AeohQs9W+{*0k-GRV#3JlN9%??gw^E`xxq1Twq z<&{+L&Gly4CmC)Nr{P_Wl{DZ^4n6D=nwyw~Ei9O!_u&TVwK}DVTC*KIl`p(FzVV8y zuCZ&9D91j0xs_|c_E{&`83*hkKS6l&nZ#=IQ|mFM=mS@+!#3~M02Ons;<-?qVlN{T zx{Z2v!ixrV(5XOJ2LFZQBb%b0OHaK#ed4WkZs35O(_*RwAuR0doED;U%A6B{{%0q2 z367(k(B(L0!H9N3TRqQpLV5Qe+X>|igAPjKW?r0#)Ck-?zAN*DzsuR9?dCcBFonS1 zz3jd6{>tpV@(z*YS*ZLL!;5c#!$+SBtgG2GtpbC+LWU$>j8{k@EDzA zd;XGue?`Dw8ytTOF?x&LUqoDp__5%80kF|~>@G!29F_tej|qf~vi|26yfaJd6c`tk3tDg5K&-=6IjYD3g zTOCk&T#pv;F7~{uJ&&X9O5c5+_j%9zy5~Lac`te%`sso0A3X03&nts}loog~kmG2X zc+)+v#q;QSrKQ#L+B~nz^KSM$PV*7o1D^Mo=RM(hy`Hzr^ZGn*pXVL&yx)0V5W5$__;Tj6=X@w@|`#}!So@rLL9!}GGxbP^s{G)b=9^X7Wq z8J@@ektMg(^RD;24|v{3Jg>*|KJ9s*^}JrR*@U+%pwLUx);gCouX$}z&&!L}9BJwK z&xL3SZ=QrAz=_z+Ez|zasj^Fs?XGbDHcU3}#H8uX^;`LNehxb<4I9odMR#vUVaDD$ zSKiZe26`2?pV2h$XV;&qZpH$1Gj?8Ij!p$$i8uEA`0TqDr191~>|y+roVcr;tYOB09SjXQ%LTc3Rwwp+0c88OfG zAKfzvbA6|xt-L&=dx3YqyU@8YJ{5+1 z?^BTA^?pWM*F>JJT4LDqYE)HBCmIvtbteB^J*FK>!;GkHUwxbg%dV| z_8@)qAQW<-h!;lI$b*q9^AU3vUPy$knNOmSq)!=#7U0=v;GK;YU~PUgntuhk_*xQL zhG^6c&mEr58j;S&-m&f-*($aaY$>ULmDMzbU;HqC6?Y#Z1vux?=6jQM{wVE!JX1aTl2-;4QQJHB%B`K|27jG3%#Cu;r<(um~ugCM)f|MNFQ_^L7O1#~k_ao1H-t&Ix zc_?RrE>kUCrdxP?&mrDi&pX5OT0O7L^Ey4R%k%E{yazn5*YkFHUZ3af^E~)1NDHo5 zkQUUz0WTR)*a6-1PV~G}Jnvne_i@krr00FX^B(p*wsYkJj@iox&w1W2JnyLIWuxUH zIj%03?g-DT_q;it*W`K4o>zxwpLFX33X=|dp20%rJNDi%X4`~2Ucd0KU%4HZ56s5x zZw_nh*^b>;o3i)x+`0wa(<|OSdh~|Mp1UNn9kb&Ww7qZp{LeK0_07iY-klqc9KB%# zCZXNR^O&BOjrA@(w-d(ftS7#rKK+=*A8k0tum->HO|m5Zb>DFP+V!k2Ikg*KEp{Y| z^%*5s&*MYIE_{d%RB6#H+ve!YA*}R^5Zr2s>#w>=%Ns^m0shOj^)YKmcnLu-h*?8U zw#R4UY2cpXSYf)V?TXGTR;~UZmpZWGZik}6a?Iz_CZQatVs4nocix$k?=o?N8fJ)H zS3BRm7!1`(n(uBC&CjM)_!Gw@#C9s*z*$yjF3_(Jpk+yXjkDk@UZ^MN8`dMt-ro_= zLd^Q)JjB_kKh8(YdWDrG?uBmVg#77J?IXrq%OkO}q}zVL0J7@R$V!IparySE{JQF;I zGw^$Qk|pu48}m-CLJ?WJ>Y6J)$nUuG(YgxVbZkH?1|O~A*y?0k`nV*C4OLF_itaqs zwTk=8tP3WCvCL*$srf?`E3Sm#Wv5~6;wr-$d9aVSc8j8a%*P%$EDy1!mf5uq-8?%3 z8DeokbJ{-c>JV4q7)7R=O>7=B-KQW%31%L;=Odntn110gi%pR)Hl(n*w&%45R32I{ zPL2gga`$@Pr#$ahp4abr&DdP?E^L5&S39;@ELmPAu`y&MpCZENm%6Z4iEw&EYA7;pX%SEw%8h<}&a3C(yr1Ns`Q-0i|d>$*j2egWd< znyN)TJ221mjos}}y}<>9|Am8R7Gm>nTp=?S6bkOCI)ju=^-tTgsA_Jfxm`CqBO7!ZN%>cm}+MWHsfbtuW}z zB#4b9iyO)0dCOZ!R#RTe3W5#Uv&59fVAQ7#YMM$0tAxuX?Xdc@jmVY!<*;*tZ2h6;I{Pq1WCp!(U%9# zp52R-Bh`A@w)@bEro;d?5#|5>6%8cu@6Zb5=m=`TmwQJ6h)LF50{UDQU*Gozr@`$9K`DJMHoFNLg~>v_9+1 z4X-7cI!@@G_Ty$O7v_H5kH83)kRpk1?|yIvce*UWzeiTk%O&{tAd>hNl1MrD8*)j? zk;Ff8aUsD?kxQ~6*dYA1#0?K3WgnWZYq^0od!9#HpoFZy#r!|Gf*MrN&LRhK@lYA? z7COk~tvBgi>FmAO{oU@ps+XWoH*LQB?=91IwroB>V|gn2^2IHww{d-o8}Ywu8FpUn zSoV|M>sR&iR61o3cQtmMv}@P)(K~t*yLMKdcZBoBixXCS_ZzDQ1cLeC)ZDS-DJ-dN zJns)ys1aO%LaJXdCZCwC7lPodZ+!LcQ)W!{dPU$8|!4_S;B`5&U-*qibEw--&@gIwQ= zngvDv7pxswNgmz4cyn@NxC3(YW?Q+jmU?S>8mm=G@bB>zsGqpu{#zx(anMu(mn}yP zievuAX)+e_82=!ES`z{kE5U!bku@u>+VX|iYo`SN9$%3xu^7C$TJqio1LYrE>Z9nZ z?z^7jOt@F(A+gx{l{Gq(kIWz=*2Z8dWEv#gab;bCzAzt>S4p&mP6 zP_?~ocD-_W#X*$iizED5`kUe|*IL}Atk0S^9KdcAL1lJ3Z%VU!|B9B> z04@ao_pN9qiGTZ9S?se_8His&rWhMVaI*+fkgE!+t!7(o@dAF!Uces%GkO8p8I<*R zth2)Hjb4jXUI%>T^_s6=4yb;?go3d0I>0jZRtf%*%ZtGO&?Y%_<#il*r1G+RTG(AR zRuou&y|J9VcC-7w%U-aflLuBDXvDr1JQ_5p8FPyofCe-ntBnt!iI@ z*Zo!qIK<`X`SBqNwQN57=t5h&zhaLTVd;ztH_D8C^rvsNMaQ=Q>;~1Lzy6=L2bS?h zu&s#}v=9FO(;hhf@sGznoUb+jYO~sxc&FIsKOg(MURhi567H01EB5kExsi9u`{VAE z%Z|HK@W>8tkbZxI9O4af(A^-vJLU#~++a7zGq}vr8{}?#Jmf>&t%Kv^Ib|R2_>af4 zf4C=E*6}ZR{#rTS6iq2U+}-^_ZF_&<|NqLv-948YkM6?mG&OT2h(W`* zWwTZwF6?ouKZu)O2)R(i6z52i0Y%OF-RYsdb>fiXT3& z;i)9t&sTTf0>-h!3y`Ppwb!k?Y7LfGt;HIK za6*YaUUmHk!%c*xI@fmD79k6BEu%C4SRHJ{Y-JWghP`VHvg1=?(apwY`4MRL3$I<> zCWS|=F#kPg2N$@=EC zQ*2Tm$5FoJEwIPm#qp~)X*!<-s`g}_YG3>C(mr6%ZyPoSUtvErQHS+K-^A7(&Mj-& zuUfC|kcqVhg&m0Y8#oOljm@Sjo=nn%HkY6t_-w@ALwpWm-ZwnY zA!G74A}0S~#3-}fKSaC`@gEVNhuFXd`PGPdT!$F8yRo+ehtIk{5uE>YaGt}pJkM#> zJkNFH)H??;`AZO!zZ&rp#4N^35q}8ryAj_R9J3HC!!g%`lm7$6JkCY)<5I*Wh?&1d zh_680fp|6Ij|Tj{;P`S}eahX4m~#AREag6jxD7E&$6CakCVVC0p9g#cAHNsJX~gY_ z&qvJj_XPa=1O6WZes)Uo1&Ap>2{FcQx|v8;J#MdK! zKSqLh{&vLVZ$V7{w-Dce_y>q@MEnL~Oz!CZTfnc*LluGJ8HhiK_!`7K|5(8Pe!wrx z7k?6BE037+XCmhHxCrrw5Kl*WIfOK6Sd)~t=M(RJ!Pz|82;~0B^FHf&|KfRH^*l~B z5#F<&*XMa0$C8bH&*MEL9;*xK)_NW%<%l=m^BO#_#q*YUUc2Y9rj+i@p4aVpn>_Cx z&-;nz{oM0@?RhVI9)^;GH1iIU4SaMy;7#(plRR&>=UwP|7kS?Gp7#OI`-tcDcpmRV zTFW<|^}H{8-d8>E+n)D5&wIu5{=@TfaUTjVFQBjuvFDBUJT6#}92YDozlrkUrW`8; z%G;8rd|9?Bug@~&ysQZKDYE~cLmAFCxWSDmB;U+JIm|YR5m{!$(xN(w6~dz~yzVtb zQDctPsLo58JnWvE(}oHF!D*#IOSafkWuT-*saJ-;KSTJ?VQ{!ib(jWGv?W|((jPA9 ze5Ov5ayl|;M$RhfC~j45$KndO@CTn;QOxam(#lGhEbAS&%awHg=ru%9W65zE?{NkY z4|okx)VNq0McB!yZI~&lM?5RPgG&4OF9?6~nxd$AnKbRS$TB(gaxJ?9F0lU6H5Wy# z)u9$_<;}{qwoY>@i2uuLiK14!v__`P$WHu_(vi@HFZ-$Z;fNpkVQ1MCMeTLc&doBp zv*gKzR13nNy@n`ibRMUH=a&zE@fxD2ag#L4Ql_j8zh%Qr8B$m_tJvm`%iCP|tJfAq z?QUuFN?Un-UCwFn6V=L-C~DkkHL7#yd1b#M5a(IRv5bl;_8OGJv(|?=>`lTBWE?I_ zbZ9@cpp+1k&j}aeaPJL$gtbaV==S8HdE-jXR;P;iO`l^?%+nUDUHP$z58rZRqPg+V zB(rXRjk$8qWV3SH6m#*`6U+r$YRx$tPc&zAO*N;sPct(+Tg?e=t4vk>N>lm8lEiY8 zH<0Sj?MwD%EupbuIIbD-PHT;v#nbp-;VqvAQB1?cNvyKJ}_kIvfo zS)&Ik`pbK%yDM_F`RvxU6GfDV-q8~vJs}}Fc#k*%s0t>X`3>qO-yMslcL6gk~XEb;O9b| zojtO{J9JlpO_kGNE~Sx~8);DLiO3aI>2+byLxER;&v6YG;%vO=(@rUOT?b3Mt}8JsC=!G?+a znV4a4KiCrYPfm?7vZeb`6g~CtO3^c;%`->x%oB&Okp?zG{mh;MbI-OybH~;qvu-11 zCU%vYw9Sod zas3Rg-#ez`zjghXjuVDR3%;g=@>Pw&lK)*l(C+#6;sl7j@1BT6lJ4+Nn%ax*nq$xOC9qIQ+30Id-_rahL{Cv?bgJKs}0|3vsv;EpFx598-`eGr0q3G1!{Km{zDUwc%5c zqmC|Qc^`7@uqdvJ2RC zDJU1B=##lh&r0yDe45Ko0ErlxJO8CPFp$|sdzWnE@_^8wgl zF$&90E^00plHO0E=%*IhT3Ru=X={!-b4#w7yK$H~r7LCX+K0p5SlAl_d!wzrvSaKu z0HGeg(B49{w_M2a_C(R%Qfn_!k&mYv+LY+URG=4AF;L!L)>qoA)@9f)CK7hE39hav zqAVB6AicHCR0{(3j0vj6t2K9Gj3o^e`VjO-jN+v5g&e2%>Q{FMHErEGcZO!R^*!%*kH5fwyJ^g{bTz^ z_f~X_YAs(fk_81J6}j8m8xy$F08prM;#oYTj%$tE=)%73_~j zce&_bp2^#lk8u^8LU0JY@1)1tNmLamAyDdFk-8(!)@`!IVKUfYaM(>8 z&D6u#Zs#DT!S2g4W%%-Hx-(^Ra7QuFj|_~ZTjeR%_Cn!Vjxo9rXYam@+&f(6K1`D+ z2nM*s#PnAm;&30ZxRouXYv*;9qjnpG+GY-Fo6}I%Pc`LhN)mO)+>IQ2tp#RyH;#zZ zHih0-qUftHSsMwCiX|qP!rrvK`_!UV;;?O4P(O&G)}zYt!{g1v*yrTa_>|_&7}#I8 zZJ24_nlhJc8E!7zm}k!F$~UL9r_G6nN1Mq9$C&DUW6ikEaTuo@Z<45=8JwjC(86!> zR5K`9q7=7paUm{Ek1I`qh{NSo2-7VJf&nfupB@5tn>=Jkd33?{xMUzM_TCXi@BBa- z6Y|W2E{w>w=a}NQ5>s4XY>FRG_fvTp{{^AMBZwjb9>~0(XtPs&Z>Pbtl4CAJ@m`e% zrP}awArAW)VNc36leXadlpE0|TvljPl=tFbxbg`xcMpO4D~ns%IAZebE!bBNJM5g;m1}CyR-8~@VJaqJ z++-lHKh>Apo9qbNTyv0y>G*|r8@KRrq10bjQOxrJ*;!mZxe@oteB39e;XXMD_sI#k zPbSn)q%C|S`FLv`(5}NTv{e~-&W`Z5MA6nE*_u&s$^^7?$Djm`LJ1r(yYSx37Lk3Q zX{s`?`IgXyGLJ2a*nhCtiO6Vfq!DFCdJR$3IBYelZ7*avo^Gmxofb|8TE(7X*^?Hf zrsL;A9R6FvFXEUc>v(R`8EOrNFD+v4aNvmJ@bUgXc)~?-S@Oa>ilQyy67yI1xe$ko zk26P}oX#JE;mRMxe9M6%j>Am{xbXc!JObboL!ZMh49*UHEN$N3qWJuh9ok4oo>6gj zO8*DxCnnpCF2v#Ty9{WVjm9>Gox{y&w1h|Fxjh;!;nB0o`>8o8f>7>DoG6yK@j|dY zX7rZpvwe?w57mP(2BI2^5=G4#<%zZLGF2Q-gJ&hjt1OBoRvMJDGhY!i#9>d(@R!5o z^$zWa7KBSo>|5(Y94RQY4Z*c#hOvt4WPJLqYH6%u8|#xL~&VaB+a~vVxELc%x?{WyWZnM z&0;ei3|D?3=D$R0kht_>00q|~aY`C(cJ|8)WBcW6BB>jLj0JV4rI@2zEK22dqwiR` ztrTwrN8pWM8Qutv#5=BXyyF^$cU*HYqHr2U6izjj8;{TuGGJ&4x&zFhPahnW}|cI&NbwZEq!vT5v^82PHJx{9VLDadz*KT}U#xRPy?TX%j`u!X@V6A#gt>FDy=* z#khXsaQ((DtsEHDKeBH`ubuC(g!V3t)EncyS47b(_XjA$&0_Rj>d|*8J5bzT*q3h2 z5B&N?!UO?boS+1VBEo~pAF?nGeTz|ON|f#@Fa>yzm|8Z{>Ny17S<>U3C8`RP5Gb`W zlG-?1sK#Kw8j=hSm%a?sBZ|HhE-|?kuM2UwUzZp7{&OIFS3TFMAjXhQkaJPY`4dV_ z1xD=-rpySGpuDzRjJT^);Ivt@NQe0s#r#W~QVo$S9cPDMnGAF7aGC2cEuxrf;S#fX z2;5%fdTh#!EyZ}FACJ>andt0`YM*;i%>7eJ6pK4prQ>V45e5$zhUEsEL) zrHx5wd3Y)&ZvzVfOdlqDEm72Z&1zM%KZxfjgVW$y$?@8Y;`?kkr&WO!07_NLlOwJp0Ar2QG zyTF~FI6KdrjjJ;azAkFZ$MwxKMeB8aCr1#bA^Cbfi(+mtubl{(;K}VJ7`Rf}1+ION zhA3(jT8(P<2I?i}Gq9& z`5|y;d0ghq`C>3!`GS~Vj68Yc(mTiER@N0vo{0XT?-NZrzE89ScB}9UYsN<-*fWta zm1I%O=NbPWu{C~YXX0=?6B(Qq z%e-V+=0&lEBP~jy;`Sj9|1#kZ$A@|Ftc_~Wx->GaNQ1bChQMAe?7+TDGfSy(Gc731 z#LSLd?YK1KMKelQHD7hYCx$*j+8LaUOm7H-?LFBb{u4vkSoc3jJ259RQ$dJJI~wAA z0&LAUTlW>3&$f*+V-MK3%Y6IlOY5Y_NcLRu8>12+lfjZ*Ula(@uH-?p#9Jl0uh z?rs}xHY}?)MTs$NJ@>nL8*fJt@gNTnMG>)Eh^%2tvj&)fNVm_N;x$B3<4$>qErVbd zy3^oU$+6^!;uVnwrAFiDLLBxcVPl8HDV@1!`6W%sL6qfP+)OUiW=WSeudOJy<)uv< zXGZGLI6L>s4kV+vETNLl%!zP`iSDWoakv=Vu_aVO&M$-E$}hzH^bok8x46;vgI&rT zq=lcLQ%MoU)IX$@lwl@zC)z@7;T$BV$txpy`coABDNRZ}jGqf}HXg~yt;1z*!*qyZ zc@Qo!A90{wGE?U<_&l29b1aHEep0EKUufpH;|=G*EHh;vK2?O( z5@l_9rU0{r*^*^&NL8SvU*oA-P(q^A(~+7k&gS|QS^XtiP<*9t=^-LV@ zzsoaIa?BLGx=0U)=+D+HvwTaoS-LT4TJZgo zbJ}xF-N8aryK5xo5tNw`oV$k+a|VZ82U>Xbo?;miGNq~_*EKE;Z)AAI;j+Ah=@dn; z2$z^Mhrm4|ukd};j$!>dec^j#UOyM+d#{M1SN@?CwU?RpZTQaG)`YnbZ|={>=-SyB zqdOC0bWv{6>Xu#*-sWlpCt~L9tqPZiXIUzF}b$G zg*e70Za88sM>oNR45i_P9*i>Fv{ zWsy=}Wu}7=m$vc@PdQvFh3OYXPYIWpPYi)Oc1Ta1;XNgao|^do)KjuUPl=+ZWbs%} z#igxwP)~*F7e!AA_gGKG;m(w&E-E$`q3&6T8l(X=$aK^mV^DjHOke}pj)K?IFxr5QeL|Lb3a_qr&irbQ{neg^rd z<&zkxVQ^aXw`A#WQS_3uD21*3eTc(f>ODd+hs*4SX%IzQ!X+lM=R+Lsa(U$80`o9N zl9yp5xdwB2?3~nI%nEHCxumR407pFzHp}uJ5JeBHR0=OCHkTaAHVgMB&0LI6Pv4S) zKQS8uJ+2b;xKjHxZ{4BQKvNjCo|^8_D0Nm2{ske;>K{qUeTy};74*@ILm8@;<+1@AI@&Xd%Ya= zJs6x8^B`H4BvC9$(xQ|bkpvl>r!PYMn}uJPG=*s0bGArSYcPCi5xXT)M+h|&|2E-6 zGK!liBR$#@E-@b;0vE6SBiGsaV=!F#gP6aF+yQavz1!j@N>ip3V^*d0C8qT8!hv*0 zek+n^7V%#YnqXAD22o7ICzPu3xn?}tHWg^wRdb`(iL$ z`GT0=86v%pTHM5pVP*#Ij1#bic^FFZuznap*rdq*Kigj|QOwEX(vDfR{)33-6#uqJ z6g9U=b9I4P-IXvGwBxhLtIG$<`b+zYd!tWhtdeFXgV5~LAc{yo5E7=HRMw9)mG>S$ zz8NhK3q67;BJ7GFl$gq;$0NKN@#1+NK@<_5u?Ur`E7xAQXNp<4?F7@fwHE6iPc$cQ zoQip*(@b?c)=sP`OT5Pv4CME-51rGIY|XB7y`m+!tL6YH9LYXO4@&T~;!Jl6*NI^y z0=z!iylLX(YtROMFWSJX(FVR8ZQ$i-1HT(>;Q#Krm}a2z7pCD~-JlV;i>zf{3{gzO z3rfR@c&E~i4{RsO4SF@q*AiDd-vcS$ogpSa=;Oi(zGR3Z=C3SfHP<8^9*_3WIJAe@ z+CiNhX!4GfJZk_^v>{DOy%4FR;%pp{4d^g9T;?rIhbYzq!X@V9$TKbu_mIU+jK=f% z!T8cVF*4%2*n3nIbN>e+lwq|)JKh#f1PkGBitPU-UP~0U4qL6tg{70{pynkM#!Z8Q3$hXV4~( zrZ&@a(xz?Mp^Z6&4MLoq@qrzA+oeA2CHU`%wdR+!f zzpe{yyc)TG^X0APyGVS|^n>Bmzp^a_%sQuHZ z{R^-v5+fg7MW_*qF@t3)X0V)y_ZYQyl_EY_GZ5W{qaCQt_=PpXUp1@-9(KI(X%NLU z%vTzk%ht}_n1|Jn*uM%Z7^Zbjgq>>Gsj};nMjvBm3pA(W7uw+`0$jM*+Yv=O3*$3T6!-7}k;73J6ofe?gexb1jOwzFjFAm1{;}8E5088M$`2NsmT*(qpcLOUz3nxsJoVN4aL7zXOU0OsfkseQrh3 z%BPeP3_!bGnVbgCN{(p|#dFdibv=GA#9`kr>_EifGMAzK(1LJ@`Bew%B{Ov%w78WM zxYt3svG2?~q;d};+6nKD@`%Sy^7$9V9B#E()w9tSM0=uk-$=|M8D~Z;8;f@(dh6{F zc!j0MC%vdDk3gxfM{346TVIzg=rA~3<}FN*D0*BeBj%5XzcJ6m?UdQm()Dl_VkBI&XOXN$;dJs_T zf~T)2;_esj%zUhJFTkw3u_k|Dc>l4z;Kv}DiF>pfGdi)zp=R09Lw3KCzsRU zS;_GVh=OpSL8<6!h&b$n!se``F0`j28iQd=gSgs*80HY-uwN54&PH+RL`i2_5H2yl z7-?z7;SN~b#EZkti)b6!y#$wGFTwtTUbQuh`7M(agj2jnMbYYClrq+xhjXl))8JXj z(W9au9B5E#QKW3fVZZHj4Pl=W<~p<=T2M-e`I8}Vu_rM~M#9$j61{>3f^e$Or6}eD zn>AB|y;(d5E9-}u=sF21z7O7Z;WUpRiU@^57{OWoxp)tqgZdS_s|}R&Q|m_l3&I?) zEsEM@R$Kc9%8=9GS;^7MqUdF5Pzn!1AL6h_3ph0Za?E~}(K)QwK}@Z8QPi3qt5p`U)#0^7QEQg8 z`0g&)aqV^O~Zld4|=jd{^Nq(>lka2Q&^n zps{wXK>0B}pa&pbgWW<_u`BTXL&7A)asO0AwF2xR$vO3 zVrPS1?E%~D)DSm$O;Oam$!b=Y)nw0tnelEn> z=$4H@#No0eh3OE*k|bPW7DW6XhkK`Toz5}o)plNLUsfyB5Ed%3|FN_psDDH;*PE20 z@{}pZ{ZoPow0Ri0$-&4CgVSbyrNjJ+;(aA;O4UYE7-#3+jGQ}M<~&S`C|VXSG3$rG z-J+Z)!!;ju(0Ab+pJP$X@#mG2NFT~+@T}yR22s4`(xB8o;q!zB&Z%V;+}+#AX-_SH2)7T<$|$dY`nol{3o2S$*9NjLeqt9g*?+bN%%b#XNrB;wD(=8n73UfR0!xPokdL8+# z)Sk(IK{(HAi=y^Vt#&nMSnfkVZkJl5PK)JFvc;a_Jt!?oofD}&(Wu|tawbhOl{&@0p&zYz;%ZjvFUyI^hCT-f7 z9m#c^oqu?5Msev)NoVFnxWwc)5L}4EO=9dl96@w`84Oo`A!c+GIu19_;wJF&@&wGp ziree%bCK5AB7fCHF*n6Rs7RQK2bF^cml4Dlcnwk1C|6$2EH-DN9Xc27&{NP3t;2J4 zS|_dt`Vr-JK0H(r8ti|yAB9m1jwqH^p;79^NJ``Ej?M5PH5ll_Fm0k(%7jbI-wuI0 z(c)IlFMN1r=Tz)ta3WS_)!MzfkA0_Na7C(s9k%9fruiT&_P!EDU)2hGLE-Z!?>fy) z?L5^?YC8orcfA?;TtTAFU=P&(EPHo#9Ebgc9B9#(cx+L`o+<1Z=~E_P6*KqwD2sX0 zY=LCvljbcd2jN1GD~hK${Ti)W%-JczF4aYkV}3(Ns+9`M@#B3P=HJz@JiF9mi6Yiq zi=~yOAQ7Af&q|J0OBAuCK`GbM1sRLoAZ(sSaJal6q5aT;aEbXe#e<;pnL6hv|5MPa z$NGqj`5nQiBURBa61-w{^zRa{DT#P-0nf|{j^88-zF+~ycYNaMJa&QN@F0AkxqNvd!jf%nF5PmUo z%`f!`qKI&#^6@{~t?h|Oo%J4%EsEGT3)}WQ%S_q5$M-xNAeHH(iz6+}%RHtiV%{dq zv3MJWIn}6{IiE1pY0!PO(2zQ&4*z1ILq)CV?-fzJLO&4hiTT*U zU@G3FRH;XmF^+_<3_&vU*>Eu8hgBX|6mfUC^r9y^!S+PUW1cw=9EV#MdFHfwTv5b* zM!4fJL;4LnKd=r=egVz!jt=Vx&FJDed_T_Ph$2p(#i{1_8%CbW_Z46)vk-gX7hyJ7 zxz%zAtjDBB4~VJ)B?L-+m4HErv-N^(1riRI7d%XlDCR-9#LOKYsCdatonOfpGYTe8 z=#1?8GU@+j*O%y8s@2{;z}vp+8%WkyGqN-hmVNQezm}yrw8>{z0DPuAhfFKVF5Mh6myLaQsUlEyhCf? ztcd+9J%T7AF3>#`?e>V|vJ#>=d8DhgaW@Oe{@D~h-kN=ZzsFFM}v2t@TpNE9{4D@AjQOfB{? zn6w3NIW`uU%C17poGrqen;PssP-RlKjOq&(HP8xu6y3l0YM(Mu#IF&4%`lAM;4L`D z=1MV(*1bi&2NHC0i1%k4x$r)ZCyIDeEnfA+q?y>2XZN|Fw9{hQlq~N9QN))PrS6J6 zA>;7tgbzsuhs*mQOoJ%e5-u^H7y|dyzz^IV94qHq3+jm9iXU;p{L{NGT;uaEius?f z^r4kLxgFm#I9zN>501j>F3hhD_Jnf?ti7ejvLvd?BTy>3LqVLa1sT3@xJi%3^hl3+ zP|Aq8C2|+U;Wk^`#AwVuY{&DzG-n{YL%s1!faAioKKG(%?EzmzZ0Jz`aztW=)86m*LG>8S4MC zQtg{mPh&w?=W{NKId4^}M&R8ze3pZ{l)-5+C6Z2&=fF}!`hEptwbX_PGeA&UNx7NuSVrVDZSUBbuIo7qQxmY8~|FHybixkSa5=M%#> zzL1C_uyhH5IS^F^N(i*GBvO0F*}6rxo==+R_v}p!-~aPORBN!jNQ>Ad%vuoQ@NXAB zB%;w4 zlg$bHXPfa`PBSAn&cXbuci}v~h8!TUWJ-@EQ&bfwAy8@sZ;v3v*}|r?NMLl28r3^e zx!$Kv6jS$grH*f!I#EwyB^-m(V)>FR4U6K1krt&M#LtB|{3nFZcRHAp7uBG3X=GZF z262lco{hu)uCO5)#U(B2Obfy#X7p`z9B!}21(f&2V7T%HF{5qkINYZ!ZX%s+((S;V zNc7B>ey6`eqL_ncW3`$hzPZ6`iK5nCX>k_c`ka0+jK-HpVa&~Ih@!@R<(h9S@qQxR zmc}j-_%dZZL=l`eufB9xT1Bz6N}EzA;^#t~o!`h#8aoZ6XOzM_ktE)UL^WB~q?u_= zn#6w~lKVIt2W5kUJg^bPW=^HSQYVV`giYLSP;wy-`?UaDK5@Ba>5z1$1>q92G%^w# zhdbbLY2EpIFkJbYn3Y4|{>9=(zgY1Rmp#NE@FhVMQ~$QrsGNqCCW+P*T6?W(?cu4j z;Mft)84)Zr@KO6P#iEFng-eLm*)4hImV=k2uG@EcYVod>sp8I6sZ{-YDPSA|%ain2 zoxs#ew@gh=-Z(8;*)=^mynRM8ijrwXcr~yh z6x#ZtiavNQJ(+ncls%k{;%3SSmt{@3#LUYlqC#9g$~-P*oPP$xm4AqN!w|TmEpFnN zIa7B=?xhdPEkHM27)ywZs#wjMW0BP z_n#;z1X`4e*3)tL(}fR728T;Og=r8)TS^Tve;3Jd9PTWOTRC|cR%>1y>F?7DMi`;Z zbcQW}_gKFE{gd~DDEeWJ()qE`=3_^y%q@qi&9(a{n#=Y~GUsorF$=a%#+vCVX7aXA25U-TsAG+j+hjzqQ4TY+r)$h^^cWu`k&HK!jEpt3n+5uZ8R&-0b}) zivBxKX}0_De%Z=74W5-8Q!9$4Ng9-TH-0X}VJ{Ij79*`ca;~}RP_t>>bDlYO%OW#n z;{~RyYq81S^^i%nJ#3FCJ zhk}t7rG6ZFOBIKIneYwViF_I4%OFn%c{0dTG%u`og}@q7R23-Yg?1jGn}ZN%Yjt1? zV((yw>6dnnv{N)Zu0< zz7#yFb2{EIOv4+7TBC2mp}fN5Om$dhKOcD(eaM$tQA`JhqLJ3hQ_~ptxe+_i{xS0n zdC-qu0`Jo6A@0+Wr#T*)z+nDF5%(tHVxNG5#H%K{MyMCPWS0F9Ya)(Z_^`(kMXYZ5 z^UjpH^YF{&mVF1zjk{jKw;v8#C8rG`BOQ7`6w@qiO8p1C<3gOBJ7uRj*Hmx37Q36Q z!#Ln|CaTGFOEc4&G>M;z)IV`HHpvEXqPX;(q?un)EE~cl=AI#N?+tLX(2{%^n!;zC zi70I5Lw+IdH8dZDxHRMQAd&LSbTbT=X5kX^yhs^|!~ML)t;8nNV>e!pwP}Ac_d@rzOBAP^}hr;;6nZeLDBF_#Z1o#&*?IbEG*X8R4MQK-E|d##HXf4=h(vMe zb4lC#!dhTC5iT+RYY5yYJua;~pA3d8pAfS-QvTx7`+bXBc?O=VTSk}@HkO&{u94W$ ztsEm1^~Szev{%)bUf8X|FTDSk;>d+t{dE<^eC|-1N8<})hfgv^`|5D-&qAAHwpDW4 z5Hix?brr?yDs4)A1wR+!?Cg;pu2$Q1vWaRi71E%$Me!O-gSgj3{2qt>Q(;3gic7ys zI@5x1iTOgr?{T>M0$hl~FAUBfnTTPUHs#w&%C5dp-^g0WK1_MAOG(25ltNv zDd|j43744H41xPQi<`higW*fj`wV82oeW$TZu6yC6fM1>)L?Bw{YH$@btUXqK+5r1 zkG#$_MxWFOa45{ZbgMkY+zW+LOCwLUID1EY?jdY<6k*KVhiMYUvMpRiPuSZMd2DC)3j-BgJhq6`$?C_3%f8=i2;C&>DK1z<{6DK+ruo7GsZuc6ZsF7zi zDyxQJpQ8oF);F#0ir^Utdq{311<}=|cX&Ke#4A<`u(`#8jp1JZ6ES;j;=SVs#`cfy ztLQE77};88Yc&)BAMW&MqKHh;)$vv^ z)mdt>ofgZBw3q`?^s=-lb>9&9wZex^G&OXl(3oFQv?W|(J~{;M%m5cRF#KcS9|Qj| zINxNZST^WA`G)uxMarnoXQm59!M2JZb_{lAs-;VN!Y1xRLtxMKeu<_z(|+g|;S%%S z$kQS&%?%beF*0RFzG2@Q^lEKeP95!B#(zQBnCIH`qL`<1lq!yq@56Re2u_1%CCBR| ziaC}BrJ5pb!8q)ej2t^$<~Xz;S`aQVFCGGSX@Cpo{I}9f+?7LMFPAs@?i6oaN0b(I zAh~7~{{`VL??qAc(@Ld?Ur%hun~XN*G1Q{}BuoE^;yooTVy7czCk`Lmv`1R&E;Y0g zra=^K3741!L*QPm+z!h&(LD&GUupQL&#frtwnM4m`&7JFaqn%M7E>Tu=2jGQD=kX> zD}FA-;oq2%TZhZshG`H*Tf!ygUmU2H%+$Hr;#N+>UU7;0Vs}I6g#v4gu;%7d#)Tg5 z3sLmNZAvTKm-`;Ff=+{HCC5~XqDQ1bspxn1;;`}g#>iE7xXe>%KeQlRV%`?1G2(FV zwz!Gm+2{-7xjYeo43YYGlh3Ir=H(OeUOD!w#HlR z*&>s7uhzdd;0%2f;zZX4-|cZk5$Ay*Ehx7KFdw82EQD74GI5?II|v{1IHHL2CE?7- z!zjtGV@FB)@VLn=5syT?dymHyMa)M7%%SHS&Vh6leqp|^kCe9O0j3ccQN(`SVrzvV zRvF?Q*;u?I8#^m=h2e`4lovdTD57i=3O=beY&8xMrYf@k_j?Ud)cAqbsBS7YO^370 zyD+Ww4Oe2xAr5|G)Ge5JeC4DJ6E#;jqqgTC^@%-r=HH=ShoF z(K;^<|Ama4I$Y*7OoJ%e5-u^niJuE`xW7_Pxg$YmK30C^nen(%)%UWLliX*DL6ibe@ zD3zbUzaYfna{?|$rcva9&roImt8SJ?rWIim_avSOLL7Fk#m2h3$V6+79^iX9z! zOXl7d_d=5QP?#D%$6WZW#}!4~3Z;f$k{e{7^j9Mz`TZV26cNS?fh7d%UW+krk0pgR z8~HB?FMCZ<)U2_Z+L=bf6HbF?CC3XTiseKal=>8YF2rF^6?P!vaCtw3_CpK8CFa*0 zsF%#tsk68V?wZw!ndvCq<(La)cg^aT>eR?{@_^5^DCX-_A+Qd%_fh8TjaR&eC~C}C zUf5UZR55WgAb3`C^phz1Ng9;GBqJZfe5e6;XJU|C zVq$7gUx;EpE_laWN{+b{#av2*X+AmP^EhlS+6dobMROV24=o6nm{}3;#o=E1j=6l* z=Ta1N+4_#TlpJ#@in){q)7%@WBjT{H95k1q{m_DNiP;(PUL5W<@0iPf_qi0sT&{n| zTuP3)6vbRhgSosglFK-3eAs=EYZ=-PEeMyGuML5F%RA=sKYT7lF_*W$V=g7fT#8~Y zrNLZASLMcGe{|4XhW0}X!X@UiNG{`W?@=z-O)%@Qzwz2b*=7~K_pt)s`*=6LBC-fy z5oy|zGH2quAE#lO%t`p}$Ao1Q3|Dbaz?uaA<;GTI0pYR8vjH0e3k#B8}6@&olTHlKJ&w;)eAUs;Xgf|DB|5OuVCzP;^7m`h=Wt{_GFq>aGLb8 zh6e#;%q!98<1phxXf3W4pF?e!X@U{hQQrwaVsaKu&?46wj$^aKd$=# zurht|6gV!t=6xZGzWBP*S(9sOaFr?!R$@$3V+Kx>zK}eTMbQ`1q|}ngogZi8i40#j zT>2tRhba0&xWs(_5V+s9xQWHZX7N_MTg74sJ2Ksll^@taW@LS_8F_EX0QV9Etht^4 zg7CWcgeZEVSE=Ma{#}^o*~wLUYJ@pWdP4H_geZDKnv{xugEh{^QyHFcxJi%3bV!e$ z5H2y_jCdjr_gRZuS(Ssa{wgzU0N*sI0|3Hf_%Yq#-La1BApFkzK@{!pRT@X9F`GJ# zwPa&V@xHMpy$jzpXd4foXg#t+VLMT}Ri3KxD3tm>vloOod;2qd;&7=Hrb!fiqSO%+ z6^;*axWBQuw(Za%LHfakkE2DadPWp;eo!eX!+Mc}*tTw-o>pk6XlXF$0fJ@{U4uSO8=^|=?t-2X)g{MO%sVSPEh z=nd3K#a$B~{j=8;Ma{RBr%@?03UhW#52i6|5WB2l&LM--rpKg1kBMUGkv65aMM`;` zoh)>o+5Un}*fFqUV8{Ho?9j#!hp>|h>>x=9F8%a(m}gPEMoK?1e>Mbep~bD7QLuIb zhGxcKqS2_f5f~{iHAQRk_J%v97}E;eD*VE`HoBYRC;T-K#cNPzu@mZ!Bl~{@?SOqNrIVe@#l7 zNuBr_9QNCaYSBlMWoZ}1vLG#DZ^)&*LLB}S;Rg~fHM|~S8br~SaEaN<#04P^ce--S z-bIJRm_ir6?{g}OV6&8xA!-Q8GmoNJ-la+W=$KQSjX4>)btz(Q!*qyZZiP$CZ{z1e z9PSy)tz8v|m2ucnv#cI9-7Kw&`!}bG_}_faMKR}1(&n4}SvmdgJ@S%>)(^avC~BRj zyx6@L^YKi@T;eue6sO7jNuK@^MSn??QeVfgI+lOp@S*K3HPMyE9R^}Jan9jL?VDEe~5 z&QH9SC~Dml+PRJL;XE+XKlK`-sL?HrV`t=3JP1GYTB4|Rr?mKf6mNmB+mB7%IZg#} zpVtyatxZ3j!B!O_;_lS!UkGYu|yH;`xeXYY*fG4 z$~q06l^jc(D3&&9Q0iasb0H3Uhp+JQ13vaW`@Zixg=F8d zFOifMWhdG9vP9ZYiB?;sLLo&YN~kDGB`JzzD-ltlh4Rka8YQHo9Ae%K9yFq{F_8^Xb}G?K)CgczWf3rV@j+4`|09yl+o%f<2_3Dzaz zg`8l@Br%cW{jM&>v ziJUz)WDkz}0edjvC4{9x2pD4|!J`y$L*BiA;pSQ31|X1dUI;>LOD!N?$jM4W01$r2 zm05^1vXgjZ@wJ{H>@_j6NP?Cm79%@EiHU&73V_J6{v)zD3ydtniV-C#A`8??CGnn| zJ-Nlm0(&sw+^{qV0V9hf7+F+8$ot|i+$u{Vi}OMdVq0nf@j^~llE{)Pvj%||tkiF2 z3?8s*gNu?C$$a2DsQlnNr~(-OYA%XZWaqbl`vPz@z$U(UO`A&c6yOc9K9B^NFwl-$cZG# zX-nXw*vy1&?x4jSz;g;-54iRNYXeINvm3f51}k5Yu=EmHkOWyA5euACa*XgC999FS z4}TWYJ0c265Vetj5?5lxl!n0FN+TT@fu#qlcf#+BEhFG?2Iv#Q!D9kRVn9L+P)i&& zZy@3OVM|=JwGG+AKrw(V4A{beEezPg{wG_|&M-+dkcFkTycTQ`3PX&-QXPbY#~$(l za?bpPcL#x&LV^yH03$boef$l)Zafa$gji#kCo)I)6$WmhC#pz-(GEeSlBLCD!4wd| z4jyp*15QOC;YcifTLOx9Mw|bsFo)5L3T@zzlApu!F4G(s!ajw zqWx}3Xc?tG;!%JkXdiTL@ElEM6*Fm)Hr-D|A_*eX7LnH%zKG?9-cB<@<_Nz7L?n_R z@&o}X4!`IJUeTck^O&f?lTVn82*2n)1?j`KfFuA~Kte4xk{*(rjcjBCXu@Pf_yuz` z!FI76NP=wvl?ZaK{0na$^4gLOv#iFj)!-YidR?0?P#6VdDhvYqNtk0eb|n(kf7e)k0uw@_=)H(_>p2+dHA%0Hqw5bC;yJ-|4 zaO0?d<3}i{#YYkWa{R9lKhPvC4U8<(hCU(*+CsdLv-K~$Jw#prBgW(3cu_ncX9~$x z9=Y-k5O^uXnK5y&2CFzY2a9X4VB(I#li-qW-pQQ!l)wc zr4|q`8*gGH(UT+A43c2!X$c5^5iojB zkw-z(2g?J__@FXiecUG?;D7M1Q$Sgs$b%%v!%W~2S7XD}k{^Nh5g%hRQ`r=v9XS-7 zjky%85oaivyv|ZkYn&sL2WOKavdIx8B_bQt+DKAQ=Dli32^FlZ%| z7DvL?gpjZ&KoST)hLBK;bhQt1Hu#VYfFUgrtSzJs{YMgv8RCVU4p3zwk>eF1@jFtFlH*>ExPc~2I4^W_ z(f*)kcNn!A_@AUhe`uS$G~VGOk#vzG`|_? zK~IqcJw*tp8}jqkY*tb6B&>M88#yZ z_{Fj$q=w$cNAgD^0!a|zh7g1~&n)0;Q_L7!7;_)gmxDhGX@rPG5=8nCkc1JTg}0+| z1l)`CV67qv)+$0ktt%koi5z#pA~%R1DdOL_5d!kg;>2J}jynu-gT17@u*D$lr4|q` zf&an;_aZ&mK9L05Cqjq;$sJ@ok>kFAxEEB! z7PhcH7VR%uK)jHXwAUfWdl`93=tDr?;RX5*@UD-523TXm5%nQs3%20q7tw1ZLBFmd z270hIqT1rP(J>O#ED?nyh^j>X2!f|kQ;Znv5O@*=pAvzDBVl}yK0NCq37+*45^9-{ zv^8=zZY_x!&I@C>n2mclEn}|RXM6@Er ze`&)U=oC&cJ5OXl5@cv6Fz_odt><6IMIrq!Pf_4=0CgXIulv4DabeIgP`5ZOyWio=!pI>5++7X^6w2-HBrk+9B@KCE*j z!8%7ssKrZCH{@)<0lUSw6>whY(qcJ~1nV5}LeAX3@Qxy{VVz3=AV~UXL-;iydW$6J z?IbD*yaw5hRB;5{i}YX_kOVzP2&feUGM>nB&n)p0=Y?J_+F!JQcp>KnoRp}!6f=js z{Kx!`a1zuSqNhlLzEFax)8L-vA1FT(lsyrJB#5FXp!hfPm|0ZIVTPCGu~nH0m};^j zCc9G!tc9YC@vi2ea3S-~bqHwru)!_1Ss(Ox6YCR z3iz@Ai63%DlAO)R@rxnvdEl3~n85p1V5>%WYSV^)c`K5n^*a(HfFu|J83F_Uawcz4 zPXUVKl;qY}2eX5K+e`ZrNl*iLT1VtX6694vC4;jsB|uNo#@>LRp^b1D*uqW%UHc*l zBGpjL^yxAEDKLf@K>_*`aHK7anBr(y4+sN$5hTG9A~e(zBJrG@9W7)BXu@Pf_(j)2 zi)BF)YzK%Jat8i|*8q7ApHexpPJ$62LR-{X;D?*_M6Zzqy*5Rq;bjD?Fj9gU>foLq zjB3(*fi;O2JjWTJzX%8YMUohi0cvd{DIqyq*2osngbC+`{l#K=kOVzPC4-zbf8li? z@S<<7uws1R`^XCVn5D+mR(PJ@gm za{Tah8F-!rUGYD-p>>2#f^Q9YfcH-N@b8O& zx1&kQKubg-2_g?8-$cN>^k6jvey|z>JDBM~1D?pjgri|yAPhW?kp$y_&`^tX9uqk` z$Cktp=Y=s`EDMrgEg@dW$xPxoIo?d4A(Va{T#-A6{>P$19`=XdNMzT0scNn}ZV* zHDRO>2BM3J(In+vsH`pBa2Idsq@3lW7Ri28s~>GW7Sn6;kl1ZJ#jfRV^{x<0Uz_}(Uzml4rO zg6J^=RkTe=177yjSx`l=Yl5OkmLS}xEHi=URbM(_7^Q6UdSm( z(r=OD{jtCc&sYCTnIUh^U%3DLAIc0l3;x1OEl51;tD&>L@K-oRp}!6eIB;@mWrS;2?U5Bs zycjTU5F>67Bk-0*9|V#fXPiVdk|0{;KVpO<;9jH$V}v9aBZPoj`5@zo95?vX9pMTL z>EOK3-$nb277#Dw?8ZrnnoBV{$Yah$j1ZCsd@0_G z2i#|ZFFbz**HwK8JxGG)CZdr9(dNh>uw)ti!dws>0rw(37%L>fSRn+|k^qM_p2%_A zB5ruK`af|)Ue~{HJ1%e|`*@jQOc#AyEIleSs;__a^PEy;F_5W+@*mpQWIK& zH%ZUMM?@nDqIV!P;i)os9}_SL00sfTAaIPQ4=7;rBnSx5pzG?E}X3Zd80V(Y-&5ASu(K6VH6jPer>16x5N5=jslhmd^m z`{3ZN6kOx-f#)TBj*EAvk4YGWhzv-A3`vOLUm|Br;ay!|h=O}eI$IMH(?LEo+*22pBE6r2TV z7tYi8b7yE-f`~#AL|sQHMoKuMO*lryq3S|{PtDLZC6XYb8X@5G=Y`&YbevU+h(HoV z)DaM9G>VSEj3eM)qzCH+Nw7{30&1-W8BgT68xc47Rco2Hq!tJ63!w1V_OrB3)QFNPiFB z&=#J0{ZHJGcN8ZETXNjA|3_}fOZqg395?dOIFS~Xzex?vI&3XiM53!Xq68!ko0RdivUc4h(HoVh%6#JkSe(SA|^#5 z0!a`d^&bd)rWS-L5fMm&2!;PZkY0N!6A?&)h~)?YTb%|veEcB!LQ)|jkOUE$1O!~u zhzrciiuhC=B*BOWAclWD&)R@P!1fFgg(QdyLnvWJOc>lpay!8_E*UU3 z4Y1DT!Wx$t$$921kpW4NVJBh`0;?5k@MA(>xhKJOd>cM`3(b?>_njj$APF+;MhyJ) zV5T}JoT=WnjAW*IAf#AGc|}|e=6b!nlRzKu*Mh5fFx)O@j_0plrk}q<4s3ilboOJiTdCT3! z9QTDKal%Uij=PlZGVBteEs#6WU3IgYD??Ij`tNf2=hA;67^xQ09? zP9cW<=Wz~37@+Dxx=dt265Q2*SYXQuqwIrin1R)mNCAQaRJB57yj_`484)C3vlh3ywW@QxCADRkH{ohe#u zBEVZIpxp?8c0+p%J?s8J!d6Udc}Rj0n zmwtg4sDijaMaU1+zm*xq1MUM>PJ={KWD?@q4} zYadC_4*^ny8!Qb_BBoLz0!a`dhRP0mqamb=Bj8@72kR0^ur3h-YI%T+Cvw~}i`-6h zgp%Nhf8$07s1F7aEM@uLTj#^q`gomvip`aG&_zF3GHN+1zNlOFk z6lpK@0P#Z3cOc`59IqCUmo$R^#*5+sIk`#t5OTZ*L|$keufu=iMRf={W&gr!O5mmN zXTtnDm@yx)-r;8O)-Th&rE^6{p9ow9#?doBB*92oqtX$23|J3~&k*2VqzCH^NwAe6 z1ms;u34Rt5Ic|p~p5rBfo-f*8w19XaXVhPKHz3ddaj)Qo7X@su5j{l`^u>jMLL(R1 zXyn2HLGnP6pl6GHxiQ*7_$?=LAqjGMAkW}h2UDjosiD&tUq>d!)|ds>Xv`y^a0Wi` z7s7$Ac|j5b5@LW_W_Xhz?uQXtw6%Rn6mj0AI!GJV6XJ!Oo`2yDLQ#azrNOr|2&?(F zF*PuR(7WMZkoX2&T}ao7Q9u&h6@eI7=)l@g3>X-LYh!4jbE92|D(O{S1rd!Th>k&i z!TxOu8Nw0pFQf-OLK3VWgn(LBAmfP~cj6*9xY{B`{2MnyK;HW}G1!vhK7hEvUQ%9I zA4q$t1;h(EpMs1ha=eF$yif~|#lP{QSU}E33Y--$!BWgI0xt#OnGG0S1EWn`V6=%V z42`ngS_EU2#9BfU^du9Z*RWx0!1a_BxSlcv*HebzdP*mP5nJiSge`|pm9C?aFE40% zA>AOdAqldbMQntTZYFTQ&Im@j!HBmb8tKN{HYBJbqLBpA`6xoL#YDirm)`#&J=kK9 z1X~P3K;A1Lhls{^?9K#@CA)#u=+JveV!JqK2OR5do*N4j3`L~39&$1W#C~J zo{%Pt4w9fh_lQv^T^KZN;K9G|SO)`O?g;FlXJSFf_ ztfRx$ftJr~LbxMnK=%?$=QUOnYY$1#+YVGJZd#1HgBoK2W6tAqk?!5b7W2`7=;`A=MI5NP?)Z2u1R= zUmjNn+dD)Ak|5#-LKv}PM&S8^?hp;8*+Gk~Xk^BeKrM@cUW(3R@oR3gpce2{M`S}1 zWc!2I$b4@{1&4ucJrRi{h@=KX24Lg|_HQ6cFyRQe7wN%TLlSH&2m!UiLBRw5D?*!o}S*};h0}glzV`m zmzaB)Z)Bi%Pz2@?>Eq)aCKeGKEEXQ<9uNRDBD}+b+ylhC!@`2YFwfwyu*i@IZ!fX% zh%j&WKrGBVG}1dfLM$jaLd-8PB)}WeczY3=m3I7rOL z-7f&BMF#l?1xE)hum|{g1cyY1i!J;YlTrYKLFbK4R-2lcTUc6I+t}Kzv3FSOxXx+) z2Iq~NHoJRxdU^Z!Zui^a9}pN691nO0@)c_88Y?wdX=y7et6)CB7WV&* zMp?ymx3svFjI5lzf})bHJ_bDr*d81n@&7Zij*%)B=7Bk`P}6dCax`9T<7#1SwFXmG zHo*J>-F>}PcZ7KRE{GvPxa8~Sv+zI6&dkZ!)Y!?`)x_2wpdGAMJFRy#!`w_Ru(U^< z<)DABClW85F4J0jSaJSCH)xBAs;(g^%fWUTvUTM0d3I4YVv>7el zn`^az47ShVR+}Y&TgTB#SVx&#K?m&90sqqp=GY6jx?rp8D*ss5n}0wTVD%U~CH2Nx z4D^oPi_`=A^-_|P!T&Dm@oX4AdyT3c{C`@n>f3Lqr~jnYRv+l-doz^jkFBi+as&8Z ztG>#>ERZn+ko%Za*bStuI1I2%euL~ReuKR~B@6)0Ky<%9*q>+tBV6z2TEqW<$Vb_~E0tp~8%;q3C`^ zL-BHDLy8@0hU)6-hTo`H8h!`)&N&@JFbU4Eo7D<#CNzO>tUH~{=6!<&Iy z41Iij3@H_T0WRDyKO`RLCmLE%B^ow~C4zkifL@lNWq&r13jyy9!>7eJ;r~FY0lE!_ znL!+T8y?*SHd>%b`eUN<0r16eU9}hiWrAsppszAN zv7k3;DDMKIEH`ENCrQ!Ug8MsRKjOfQ0xs@ius_adl)i%12>nkAY>kY7k49%F5`dft zavsPHAY*;YT^r#RU85yafh`-zMj$7GoDOmx$d^HG26+->%mfULft(0(9>~ogORfgP ziXbPNf@}tK%rPS&b8wRZa-umlFmDd(2gu;P(L830=ljFKe47}M6JfTL^AB26(6N2p z{Cq+J`1>Zvw?P}K1^(Xwn7UO0U>);L$vRL+bzomz?uETTZUr({ulbKPmskx?z^k5J`c7rjo|+e!TyIuuAW^K z;E#W1O7K4_lKk%#!9{4k|s;46xuBT#~`@lSq;=Lr^MWhQ|zP2K$Ui^E{|L z(hT;<}nRTPTy}2JkmAlg04*x9!OyYmfeRpA7__qvv`>zSs zX&T1OUDPH0J((xKxRT~9^SyI+`>YlwST#4ZlZ59x#D~2-3kxqwqAWAZxk~SH5B!o_lF$gr_-Wa z0%e(NR!O)~@8#QP9(v$XdzO=#kj)z>nY}`rEH4V=rA=?|s1$qh*k2)6^TaX7EgSFW z6(p}&yIIgWks&{+@#1%LRx_4cv3tL+)>b}s`H9RZ)r0NY=ObP9bU-^i2lOIjx1m@9hu)*MuPFH&)-}CUbJigO0`Kod$ z;f(wJ^q$>R;HVCqFr3X$GClkFM&v$ouWH6@lhL+-a`Dt%?<1AVp7bkfKG__Z>8Q2e#z4j5TUL4S0X_*>qf7tEKdkEExvTFM+gMc}8LOL+ zd-U`gpPWm{tJ{9XNUnWgNuP6MJJrGS>VYrC*ZDH(?$y#`)`|W7GVH3q)k)jHtL*jH zHYcbb8@GRd`vc{N7l-;jgz^t+Wt{ff!{fJ;>Di~i=@mC!55472Hmg*6pQG?3!8<7R z+bhKt_FL|V2{BzSNtWEWw?W~A*oB+MR~rngi5hJmaZWyXT=(YgARxpuKj{aasrww7~!_Tr#=obe~oq47_#2GuB^xVkPfIHM1cv z%3pH_s%7P!@7%U!3Jfpsr7S)X=awJ)!Fctq2ksksf>&2l+~>DYF_4Y+*BKX*JEC_j zi!EI$dfDe{uFz+xFZMK_a7^Y5-_15&De+adJ@#VVZapqJ(cU{-OQK4KHpaPUR7(3l zaQAt0JwpA`^~NWoaVG*2K1NbkC35u4TlO`5&sm+DZn>r~vLU4I@cE4FhG^TGPV+;j z`6VXy-;NG1h0EgBB+G4Yg^tF`V{TzQH65)E7SHpM2UJ72dd z|2#c>TC&V8Y<#62U&_d~s*3~hK_@PVEdTVXpe!@erTz*N7F}BEoU~8V^lgXm*RKf) z9f7I3FNzHxX-s5VziT?IY<`G^UYy}hdJAjx@??`~zGoUQR-4~G^1Wz7RcZdrrj?TI zQYT)kQp!Xtwmf?KD*BMcvNh|a#&e6Fd}faR_Hty)+|b9hj}6pyl?wBwHVocAzu{2m z%lvoZGS%!~wAJ{xHrZB2MebN(`~J;`R+h$N*&ps^uIV#jd=oz}UeQx@TAV?SezI?D zB3h7*CaO`A;bDiSyMA?6MCrckeXj+}J-O=VLoQ01TA%y6Yml*o{;8!4-L9iU9h8#? z6rG-$ZrH+~A#-c*eM=kF=a+ah2C5T<%m&w7H4{7iry?k(Vpgn*mL_)g#l@K3ob7bf zjFqpsCht)m6=P4k=J!2XfTeG>UD|`&HYPbmJo|EXMED+aK12~)Fmgh7B4kI+D*>6d z+yaJ_(BrNi1*=MgCD@negd`r$tq8aKl*;nQSDx($R77+pj66!+a=|0w%Tu;IjjE_h zqh-?m#Sh-??8I0fa`j*O^lEjZ37h!^)`#5FLn)QNC-oI01UySVtx|YcQ`LOv)PO&K z?1NYJ+bPRRElpYSX*dpD(cN+Uy)I4EE{)eS&C2sFF7Mx5{jNWqBHcZIH|OOYO>UDx z{_7W8)8=Odoib?)IG!nUusAWenFj>*zWfoJNtt~@q5q5kN2!O}<#|K5pN73&ZcKXx zkDJxVZNK+p{h)ejS0l5-m}K71!5il`^*@kU`ECDRts85)o~tCkV_sp%gXXave z(^O;zkM-wh<{s~$mU7Fiz4t7eU!LctqT`n97RmED48`W&YWmGQU#C{Ia4Oe_>(%qD3 z8Sri_Ek0sB+p_Pg7?^n6cEn9@pAR|yWB%P%PNS`kYBS~?*Oc`H(tGF#z*&(wnz91e?d`S*@cpW{pEXXC-xNl2$Q}# zW^Q^=QuRT!gZk_ju~NlBuo$xTfS}C1ZK0{1Tq&o`qu1Wr|Hxz6rX#V`Tn?d5%%49s z{t%^Qke@eto2ph=cbIYaVUcqi?GD|lH`+PtxIV!|a};(?g&Z1$HBxMzm51w~D~^2G=S|Cs_B4%*@-J|+7MnqNXyv&CjoJroWK*)+#0 zsN0@s9F1oDIrwB$;%k`oT`ph44^6M>uFB}WdUR&m$;PeJZCV_>W$%a(?q|WHgF0AfY#TihkSFqly{J zNuCh50f*?*^#OG2(zKKxe(^WBCo3;hCq5Wd7_{Qvwd0gnUrhg${IgtI=N0+diEgLY zotG0-b`?~XTg^K~(E z-ya`+@T)~3IGVQa@(#JyhO@i|d_xtH8E)F#Y=&=*FS_y{Wa&KYU$?VKM)|gssZLyS z%Fh>T6xaFRDq-t8b};RTVnp+#?d{L^WL5|?du&w?l-`o2`aPp~1r>|24V8A{vny9# zeI8h`UdH%bmq)_mwg*ZXLN_K1*51swN-)vrIX>8e;pXR@qJk_)yBf*4)q^L&F#Hv z3kB#iHkDY!e*GRbDR55o{TH=~YM(u!@wKP^oKv^RGCOypx%%*3nL{5h#J*}fmiT^c zrAgdY35TC0F@OB4mr+D=OiSdIUux;m&R5S+t?v@JA&$+j51E^I&Esw}6tpX(r}@0% zeV$p?>hP$6Jy}lgTy1#HoeT1?k&&I$AN}U;%VlDGOlqZCF4r9Gmfv&bEynMcH_+}% zXZjh{ZEchC$UnWm+<3p#fl4cH`Ou?Bd9Cd`?^E|%c9~`;-+g+2#d^P}@X3){CfPGw ze3t7nBJb^}ESS$eye);Bx9o-$|JS7VDU~|gH!FN<-e~2g!PJv+S}A=4iVFzkZ}(NuOryF1hMB`O>zNIiZTjf+BpQZ0MtJTJ7h)whw== zYv|OteNIHI#(luk!ud~ByzcnPq{#%^Jz6x}Id2w}w>#Nj>aWl5A zq^rLR>TYY$JDsC^_DbLY_4llD7thPLJ?iV3s5{g$=pFCJr`$Qna#XHnQYF{;R|?c;ny1>GQTCOrn+jZGK$|!y^9_e9%Hb5+iv)NqiTx4E~ffQk(@UxzYG}od#!4g zr`+l8A|Wfr%llTCF<7(f6<=Z0v$XZQDolKW4;B@6JXx!z6B)C-uIx(HuwXBP4V(C8 z%cP;$UJqODM3L%bHEzS4oKKrVi zBho@F(k0JNH&S(%$=v6PjETCRSU<{j-QuMzYh!SL0B`pT0jElbBIowa-(w5Pa>WIg zy-RNQ8&YjMd^49ie{y)&C(YBY%4xlIyvNfO@$%emok+XqfB(YzoD}AQw}xlZJp>gz zUPmxLXgI#(w?M|Rgkp)7C26%_<^H3(O#REa#MY9Xa@_78UiAO^L-nX?`FV@qD(Cw~ z9PbUwxZG{Ec-!fI(drB?#_xozcihz& z9Q%;jkafsn_<`c8w?Wo7?5e^D@!$)acgI#pLb+9w&4_Dcmzl}Bs zZ^Z5Qyx_|(*z>a-+jQ}!`0pQu-8*8#4mIl9ta(B=UUn`^@3Li?@*B-fF(NDF4#&j{ zA1rV_BVF)=lagQWmS^w!S=vLX`Fq>X{^8jZ>bi&L$Is_G*#G#PW9AM2JkF$gd8>q* z^=o~)`>!VY`-Og*-=zKhgp2(N-^%BM%NU}R`I`1hJR4V~I1~9!>De1EUiY((9~zE# z8_ud@b1QB$47~d}Qj`3+-t>O=N3X9R+`4t1SpS)q&2}k0Uw`LzdO?=#Fuzw_>1RLs z(E;1n;TkjtIj#jsRnM+_;2_r-`8^|vlkOlJ)mxJr5gDa?{+^#o?N@IpegEypJR8~&618+t=~^^W2|$oOw9Q)bDdY8^VJJaw*`07 z8YLZ$(4LnR9(q&OtH48lU;B|tQPIz9D=Vmmgse?}m5g=!>MRRAoy*Xj5d>&HHEMVt74UQfpyz0UAchxMM=!H$~!Zk39Ok#Y)t^TRH>hOy!*zjR%{ zYCM&`RbnU6#~qH>Pp6>uEwhe1m+yUIN4I6B4yrvaW(d%&o?I((%UU>lYsVHln*OI% z+%CtpTqqulY_q?%={<+1MSY{)TCJf8y6`U^uXnRb+HPfFr}^Iet~@AfrPJIpGo}8* znXDqdT_^m4UNvO0r%isb<#|vdxJjtE;%@7O@T#*rgrm3CWTvHVebck&A>V4{{P*-z z$?vMIFU;D=dOYY|`)jZ48}4YH4W7T+Ur0o9OKQm&B&>eqKXNhJ+3=RP^ZohZPtlKM zH?=sXC0I}^Y;o7yFnO?xOItF$*2$g!yXd3N2*p3g8UA$9Ut-S8`t^GBo!6TcUiM0* zxlK96rppp?Caah&N{*U;?2o^elE6UGUw=W@BHWJC=#tfm;{lY%1E04ip686HXxzs) z@ir!x<9_ib+K<8|4k_$s*|S-B;ux&oNz!)9#xeIirgOgcu3T<3(c2~?XK!-%^i}8Bqf6ugiyCXI;roHP zuFJ!Ut<4^u@tMw8R($^Yv};gRQ8}Y+^O5Z@inj5~P5g0ih?Wa#a8zkLtSEo)`8FN! zeJe&$0lkRF4z=35C#!QjTw*(~?+WSFFfJddXWo{*QJseSmz$TxUdFijZGoSzZH#+B zCl=Gy`noqGHj8)p$QwtjH)>vMEw${4*gv|iuyS_x zbM}`i?R~=EKbJM`JrZHMy|u_swS)S!WXkp3B?mjsG@kHq{fY%`H0?Sm5Hg%BcX2jx z-x>McO|6=5-JEKYL^wxj=|q&yv{XA{C+mk_?>A48yRX&~&0#IGO!LzlMs}xWk89Tt z2Wg&3i^(6oV6543hC6GT zMV!ul=9ITzvGv)PnWv^}R>kY6AA4dQoWdh`WA(P7>*IX=!R~yfV)x>(X7BlGW{ zypY+Nq9-SIn{)dQhruq&%A{X;beT;87c|%vdRkMb8Q!?KUUXG+D~Q~ps(0_s(Qf0r zR4;knUi~V6 z;;(!;xRYOf@}fV}$i<<=Q?IPdu6-(3vRvNy?$TVH87-soRZ8ni$3{(le%13H9@aWha`k^Rv$QI*_yx3v07wL$L6sRGYgk5ZM5ZwGi>$wgf=L?WKX$nwQ-}9 z-zjOS$EEuPgDa>^D&wTCjcgV$T2^W*u8kIkq=cFUCiD7(E7)F01bL>!+j_YF0RKI#t^{ohG+q7<)kGfNegTwB!*wZpxIdE*#2|-KL=TtLvoT{S!lJ9UC|fu9?W{N`I^INcs<9NL_@gLdcJZj-3ObA@`dySE?NnH$iN{HKMnvX3+3N};6lY133s$2FHV zGmcN!+XeGgcy%__Rqa;@(wNuio!#$H$S%R*4_m-HU0k>kN*Wv%9kqCYkk%F|x;=iXL&pr}0BX44tLFK5&u6@*vTPh1W) zwy_S~u3+r3)A!osuv6jp_2ujALe*#X96EA4?)8mF2F0TvJ$`L|pjb9LHTXb+akffM zU|aF<`ckhCbNmBRg;&|H`3h)v9jx2ilb$`&v!lW$JJQNrj`d6v-QK2cBSOwnhqjj+ zIb6CiyZ`jN1G2~SQeQ1o`6-un`juV(9$)^tUryaj%+ao*p>2|S0>7U>Uf1Rs(4iFk zV20|sRQh<;1H%W=*Bb}0_|b5|B+aiLbJ-PBhwspfR8*$#^R>3?-_NpxetG@Lhb?(} zzdbq(m@AxQgT`l^G1*T^cQT)9?J!u`dgz)f%aHSi%nepn3GCxR6Zd%M(=>gz%t$51 z$qj8hvo6zJ&1FlAiS*AH(OBO`o8~6b_@<(cjeaxh%OB`pTUDInYBYABJHnpRTWk74 z(Knulo2T5UPyOUL5teCjxZKk}qS{7AMO@{=n)>q{C48zj;TMJSCx-W*+GxDrt*PPd zw++{gvKlxnYez>ZYi;#cC$EcCZ;GXlrTFqC@{zf|@MHEF0ZY_;@RZxH2o-DWnL(BnZ4w9WRXOHZFlEmclEoK z?1HmQp{8H?bZ<}EK8xjw*>&uE>zXRr^R8b`U*1{fbmeBd`SarNO`(V8U)Fu5Xmc;S zH*wZOlAXrEp21DnOz{(Iid+~9kd z9JlS$t2IoN=L<^&&lYJ3d9-ldeG_I}%9{|Vr@6C>?~LJ9j)`6SCd9gIx>D-vtI`kD zrq3!lK4r18=#2iHClxDHB450H{^OwJTfvKGt*08o)>ut28-yE9kENYX2$d{*hqaw3 zPNfJL%@5U=rL%v&`d#P5U`6U7a0W6>k^WFz(zMCpq`OA8UH?b1% z_B?ij{s!ytT(6Sp-O|Ix`<}IER+Xqcvi!__+CTc^r}bWWZf`bxIn`}9__CWKLdtO4 zmYWYYhje@yy`(-|%rVrHm%pz3{QImwXEs|!l}LNmKccKw_ToJMf^X_JwZ-h%x~a`R zN?A>3*T&U)>2A+tv2)S1GTM8%a8#V@H{09Ga}j02h38M(mfY=qI^gAAocY8?vOL3k z&XeZh+GC=X*Zu4xlO8^v+h<0itP?ylx)bH_tV>-T!dh>b;tA$)6h%`z(8F<>fmsucMKD{$8DH zw0&w~><@Rsw|r)82miyVwnuAfv0MJ4UE#kvuk*aq`;=R}ecF&lG-0HAt@ei}r@TKp z>2Ulqea>i02kaU)b z=M*ldxs$zhuJnUwrL0{!+Dz2R%~*_Ko|sWdq5qxMFT z+E1VVNdK1Wa$aj!t}NYgh{4lO)$J|ohIO**FKHOdm}KZ2n$XFmn2sp0yY2Yt*`wX3 z&;QAMGR7!9n9)6AXUTNRJLc?t*328zRMC7kJii>CVAiHd))SWFVxOd!PC(YxT`16=-{cV??9j?;VYim|_Eq9dDIy3E> zGkyK+bGak0&$nz-(}=mWR!=O6x>&-JqKq;5AQ#v1mp8&z+&+<5z4DR8D=$U4?@b@3 z&!7GMvb1FUnf@njd5Rt^|C*A4hNi{T@AsKOFRk)Ucm(OGoZY7R^NSnz*p}A3gI*z5 zf;UmGKJFhkjy-MuX?}apSxOq+wol51!LIFL%H@M$bwLI;SDt*T`w=)UE%yaXFnYDI zOowY$Z0GloJAOHl@w>7zWlZnOIQ8ny40!apuNuAD<)0wyl`*t`Tli_upLLPCZTEKX zeDsi_K#o4j@@HA3)7;fF%jfpJUR@Jf>DeYn;d71pw(sfOX_LO&RaOJu-Zcy+H+ST1 z4Vmtqo2wfxIBC_L#G#VNlsxnN2KN<8&vdSvLo-8a%a@<34ceuA^sx`q2BE$8Hutec zRdiN{R7|{$59rPi4_e7Jc~ZV!>NADRW`RlPgZ&mON}TTBU9(oZGrISB^|=GTYPQQ- zKK6CLcZ_qbozJ>e+A6{A-)>yFZzZ%_M4{`Gk#GJoi`OZRZ=UGH!s-*eGIsEUy22ML^gFp|@XKfvfDHnZL zQGbY_D}0c~;}m*Uc-ebqBW2xk88h!1Z8H}s+ZP?ZJmvdn0`}OyTR9}!>c0nj>qzCi zmT~#zy`K(RD?4w{3jVrf?ET>LxM%p^-FwFR8=bwc-RAu8plEM{(vy&Cn^QmIu5xad zYK>40%s#*Q6!cfMIw@%Gh0$L2fAbX@_PEAtp=ywjIgs;XZX49E3DI#mml zSl;#~1vxtO-F(H@l60pu`RPaROVoN3Zq`1tFNN;zF3mpKbf#4Oa%lOfwsLMh=}%#f z9?ttpTKA<){&Br97aB*&x2k6K!BL)y%T!-Ad)$8SJTzf3a<)z1|C{yN72Bg^m<<^t z_O0qs zuxa(zz0{Gv4&LuzZg^4S$|0`2u5$T9a}i&$=1f{enO;%lN{MEtG5vCjcPv{O0yQEz zLoOY%RyjQJ)#~^*OmC)Zi}=77yGQS%0{hBdx(goUbmY#pyr+I`Peo5SzW>*OAs(?& z3t@G(-8GUA+9=Hos<<9-RPX!X6SRTxf%b1tt&@+xf7Rr)X0`HneJ&g&+bh6U@Cg9K^hY+h@NC3iaBo$&rXldTxD+sAUSY&+k8bOQf48)s;OU2dqr zPY;EIH=@Q@JwG5=Be_X5|HRtc<7YX-L)M>t<9ze+Mh@?T6W@fM9%IVCbDjFA@Q6n* zKUI8X#D;YvJ~ejUyPq2Tc;nyauW^*qzIkkWZ2L^ek9PItM;tE}d@D2Q0YW`0g!=-=@1CS#T*>z;Gz4zo`06M0q3??$~9uDezz z(N^xQ`gwP#&FA9gw+Ev5Qy=fhV{~6ur(!4J5+)E?(motA^S+Q@`T3|vP25vKYMY7- zr#r74*_wa%*-1R04EVfhD=iJrlhf0E_HXJeihsy-J>l6?=NWRftfxG!~&@dP+OGaX?=40;k{+wm)hy+)CCgo;mx9R!(Ggi?HaL*k@ew zI=A70kM?eNx{>;q_4ky|Gc1t0N{-6LX6{dyBJiM6-}!RM`OCnSv(oNAC_AG3>cgxa_1qZ_ zk2Y{&%6e1tDZb*x*l18<)ojdR8g+Kx;vr{+u%e#O+mk8hw@sTQ25sCULmSQC%uvf9 z$tYa$Iphmh)YrPAe@W%U(9G=CTl*`uPHK99+FpHH!Q9X<6B3E5Ze|=%!`>?nO8M`a zh<9(^`VjNEpcR$LbNE}fx9;s>3V=fESL7=gO}WnE9A#YK zQB{=$+p_Lbwx6c^4vvr7z6;!ZQ~&8oNs38|(6hI~_MgAu!4oNLz_HR|MCO+2#m@}9 zUwa(2oL}W+4O(wyW2C-QJ0zE_v+{TB_E$YQYiezFQl<5+2z;JWp>bzm6MlZ6eyf<= zbo7Amhd{L`mJyAV!^x}en%#QS;1^<0({Cqyc-mqMNSV*&oG?oWSCJ|&f~mOt~Fy#%J`AZV$$z^(67~MKkcZu zLBCAnnR(~&54p{1PHRSAK6O>K;y7NErT6fr_V#Y4$IpY*s@*q~4Nf2WwlCI3tyMwm zOCRO!Ilol(Ws)vxSpVhtr%b|o&(fxCIcUec%GN?p?zpS`wWR*(3ZqZcG7K&{c{k0u zei(r@;>2uE?>}N_BoZL<;>*B=m{qHGI8vOtBYJqRPQk@LRo^XrK1Yiu8LXyvi|ze0 z*dH@zdaLREW2t4423#z6@V}QI-b~jfy|p`G+#&9sY;MM(0KOhZuOls2E18~Aezs4= z`@gJ|ExJvvxw`%7TZXiEUMLG`IXiwP!tdIX7Q?B~Pu&791VzN`Pu^Tp%x9BFz30B@zs<(E>{Z&H$In#?x}Ci?9GKVs&Sup&og%pN zvaydaULRs+^vrq|pT7syUrY6p64l9XpU&{G6n^mP(jHv@*T%U}_510u&pPI}K06g6}4#wQ)DUM^5^HPELEPG$h zUsCt?eD#D@)b3z_jv)>6^{M+-8L=~|g9GBGvmW?lKZtT1+BRf{}y5aiydv5F1NA7qu9~F|YIh0aFcZ7+~pTXdi zpiW}a7vt*QEe^t^CEX4>exXMNi&|Ve4wmFrb{t6hO?Q^+cG8KgU&o5VRJVuAiLPU? z3?H~Q@*p|-;~n1+eUB)67xPD-ncoM@)+d_On_iLImTXo0Tr_FAm(9i4>&40YtIj3R z#8(}{uYXhI!iM8VMXc4{uU5`0yu5ou43&?=!9Dw@f9|Ss88Zm}Q($>w&i2WO>@4q= zxwpI}&Q_-~jaou3>{61x$>41d8v7&u9E$9Cu})8N+f=&_J!y*3yd{< z)b>{x3F@^?SDKS}n-TP_v7WV}QRc@nYoP&Ab+fFfOntWXkGHzrm8xkf%>U$>XIookJ}#|B8Lka8doMi}Ig>{hZe$f8Sdyc6=*rI)d4jy-+d89kYF^rPV1IC;QF0Ra)gvIiu96Yx{>P zQ+KIbU6J{AX7ycL(G3?i_&Rh~8%gFVwcLHmSgVc2CJuSMtKt$Ics%SDcrIdXPR>(F zuN&*S!sc^Zw)EVWO?sW;ebOO5{OL`OG~tGQFHTy{%;MMo>vn~n_Axz0b6~~Jvjbfp z2FIRc&GE;kQcv3SoBlW=v@)S??D1xY73vO6S9Wbr>U*}+vG3SE_49fuy`>M+2G(Y8 zjwp37-MDe!aOaCe(UjYYv{a$oUnf7)Wn z)*RKE^P{83R&d8&8|CKj&hZS%DIpJzW<9P+sTqkM(X@TL$2V*6&(r2xGopism;%8} z_XxA{QXiF>YM0gfYR!|_BTQ1%?$y4#v`%`9KO1Ez)!{7s{>yBp;ZLsHC3miheJ7hJ z+4fm7o6hTR`R@5O*`Fz7lz*FZYk}#zby*|)LaYz9G6#Gkqp5c@`dhI39=*JuU$%OR zKjlu$|3lfEfK%1I|NrN7R3uVl%9JT0grq`?2uW_$EoO9%@g{9R;?){w|oF(rx zca{R%;ceDSo(G2NyV&>px;A+Dxf^VqJXpo%Zz=iwUPGY4N3l%XJ6VD4irN<@n-1;x zX|;t{LH)bv52I;r9eqC+L_PO3vqjYuD^E#cSC=NT*#^`*uKN z?!xyz^~6dNpG|3(cdcH^ZLcNIF{8gq5 zU$zjf!fb`@XF4O46Qt6f9<;i2)nnS4Db;<8za=fr|M9_Vo#p9Fp}0*-ZYf_jxkOd9 z-B7=MYCd(nJ-eU%)VyO(f2hBWqD_VO#H5Q->+3AhUeQmlhxQ~kZc>}h#u;Dn@byBz zlTm%8KAN%*w=bUc`)@&eqYF#+m+O~=XwF63sQ%#Ss_-eb>$|(YcoLEYX||z0oaCBjd_)D=&$a%P+h1YT=Tn*88-d z7fxQ@l)t}{OY^B{1>d}Tb&Q>hp7a@9IHI_Ux_`jgxLCU>d5&&~)|}GYiJ425aK6yb zvF47M%F(9#>&(K_)cIcc_yH09!uRY&mgU^<3{6wd9+Iyzch(eLC|n}i^|W7Jq)DVc zML3{zyKD6GgYT=d8wxKKE>PC68I;ge`BNb9V&tQ4qj7_o4ZR|-^<2H_6ZZCN8NzR- zCzfhtThCJ0aQ@vLzvhafgK=45*TLzhG6F^nuZKrzWS-Hfyq4GYeW$>=Y4V~6`nK~Q zV2ccHuHwBSK zRLe8JzGi2Cu{@5FOI~3%j=B&?Q zdHigWxrw`Sb!OjYzqD^>a9Q_Z(=~O*lWS&9(q0t1?M{T{m!*|^ii%h#={`T( z*v8c*&VO)mREX`ouMbwHFTSqh$;MKWC9!?i$NM*z&6BXRk(0b7e&d?s2}DX;R`XRN!~2;2;e@Jj9~`>@J@;wXV{Gfh6~y#KP^ zk^iaV(;Ed5TUCxnv{)DR{8%mf>tnG{?7SGZnWsFLQuQMqv2e1DecFbbi|#Dfz8SHB zs-JsR9$(X?&y4JOZ@(%jbwl|;&|~ZPV;fDkcpE>KH+_=1%qUx2?}``LjafnD?_E9XN&&AYvial^JN zYZ9AJZrDeSp9ovWO?{ttY@p_AsheCqKe!APsO#D6?xTJI+N+{h#Fa06ELo;-xkN6k z>g%$_x0Qc!D`qW|{>mjRwLnAijL4Ha3Ob_S2a9fhSibKoO^Cx}?&K#|*t04%dUx&f z47+Q!Au#f}wO?Ce=3%MX1)ntAkFA=&U|#Z(kef~-CNBkekBqdgx%Bo}+&~ZaGu8!v z+2zhC^!fYfKigJX!A~!>;hFl`KlW*sf%dkX3tq~n4)wO?6lb`6uc{siSRX#0_s-WJ z_su`vKH92y#dU?=rN~u=7q{;IlzLj*)$cdg>P$BGo#jv0+Es6hvDmnER*>wTj@fMK zf6LvaT3M*|ZkLg~Yp|!x!Fht)SMstm>gY>dLW#9o#Ob%nTl{oL>>gTdx

    3nbK_auQN`piu`PYS9V7<81{X7ed+w!Xh4Q*z7J?GJ1AtdHfjv3jGKIs8-k zV*GhCU*)4JV)6FUIqCnqA6Nc2Zg78i5+_yvPP^>|Wv-a`oDpETWc1RSCxExR-Q2fn zGu2)VyAHWq2s~HjI&EEngCp<&`>+|;>UDSLTI2<{L>!e%H zgmG)q`EnkeFjhOs*>T{*%z5dR?Mw8wtv{CIeS2u`C(qlHR@7YTJJJ4CFt*Ajta^SY zx6Q>#A4d2Mops_zj5TO}vax>l+UIx^ryr4fo|riDh;Nnrp0prYf#6lP7o-4Q)AOq^Msuhy*im5CtkmN zy)Q~le9pJyT-p^C#m`@Tk?PwJO%L;tKNF+)c1PoqdFQ_^pZvbzaR4>{-pt5-P|R*Q z_>-gLk@n|ncUmg>!`(K1eafOJ^37*w8E?_RHt&QQuNi!WUDsyW87_XPd?#9N$}Xv( zgJP8mw^qdIgd{u?wy7zfF3mWzdP$gN+K)#9FEx2tslN{|7`{5~CU+NmUuA07bU))k z`$Oe&j&eE19qF#xUV+aZE)G62ulr(X*VPqi%Rqh*>Gq>XcLu6F2Jx-3$2TWGzetLI?Vn(uz)Gftf^Hr0JROGwQ# zGU<9|$DO<4D$$dqj1spm&RVm5Z|%*~R)rgPG)D>VRBO);cCnoreD-$hi*GF62EVzp zE(oz&zV5yk(slahMz4k`GF~UuAHMsdzCpd{Z*RkTRnBtpX%Bjic)QNLyoBxKJz2Bt zsNm&#H+S0zEWRgS_t$Q}oczxK<;vv?=lq?n^=P_#kk}1ZE~WFlLsjo1o*1ZHG0@jo zk<`EwczL1kX+`S(l>F@ToBg|v&)TisJbeD6jDnpX$I*&;{wu8{XVQ#p1tWsIOhQAW zxAkuQpp|U>GycuJL$^XDDhDodKNJ2Ov31r)>V8(@;)3FmB|EEwcP;kbvU-~AmR(9S zEy|0IwoeVxzP5k9r;axX^=Ha)Sgqwe38 zgea;SXIxYbW}UkB_~v3agDo!bu{@UNRDXUrGpNEwP1!<4;u$MO(!~x;x6^-TJ}#-bamCiM>fEl^jmyIpQSG() zcJZ%(WR>5mS$uDEww|0$)%WZ@e!+pyukYD$S$2>3Oqx0Md}93})>rZuwq`}?2)vPR zk4mMUPrQ-SY%2M+UrO?$Deughgds=R7r>DJ&jD37y&!V*{?HBmNszZ88BaP0j zh+h4bFZ0U!g5fO}UtVoW*sEbMOHp&_ACXHfrAhg&6*p{VSh|F2sHM)P=F5GBqB6UW z-3?vPx-?2m#!5AQ?W9SDY7X4Op&N5UyOwnS82M&)VD>Y9gMQj`9%&=m?o2IL9{D4> zyQI$Tzk02n&(Jrupw+FCbDh*{y)z}8meV}hXYYuvsiB^)K7FWX>ALF$J9R%umL6Q! zH+24lZhheX=l7i+%XPnfT^|2&ZK9XJMX}ui5s~|({LY--#P@&cn|lYZo?*=ROX&@F zh&r5`Fu*E~D2=>ny%p}$Jdx}@Fkf9ZQ;Iuo5LWuz&+&H_`V2SEq)|1bU0 z=M71s!Y95``VUSki%xCMQvPI9z4YYs+6T)GHv8Di+pU^YYuQ_7TK96YWW&%CEmU?Zu zpR#jm1YI@qRT?K>i{*N)wzkZ_a}Es}Syis#GvZL!%y)6C{dMU`f4pj-0NcWchx1%S z>qXlXei%52-BP*jSs%Ye`)Iz}GVvS@mCwEE?-fEVK59oKDlGA+3)yHV`)7gq{)Uj( z1$Mk*_f8qJr+vx@&nylb36}D&u8rL6pg8e<#?4NN)SahlN*7htPJVhIX(e?(qoDt- zO2jSsnbh^{tb40!)z5ydVAuulm$&R$O&xDx_LWl~MPobPmaFc#Vg1eU>k^%C2l;ll zXM*RZ#a|lGp^mS7QS8?N*`cD{lEyQ0FL$k{uE%$G*Y3ZR%9lyqUznxV5Ma5fv!zvd z`D25cMj!Ull<1B&bA?0Oe%C*A6`RZ=rKwb9oxqvB+iRwd z_%4d&`+RB6JL-OvOO60b>e6WU+p@pTJ$smuLz6SjPH{cB)LKjH;eopEp1)>Zus9-= z#9BPRa2L%oz<5{maMWjklQVwqKY8=;q~M2dHZD3+$lCaz`B7nh_59QqAs6TEE*48l zy87Vtnp*jj-wYB1)Bae+J-ZxEEBcYpwTk;yduN=xY%g`cihBRRa7y~# z<5#VWo84}u)UEzePo1Bs@tyHQf23l=aTbdQ#j0Lv8N)merZ3ncBvV$p`-iCiZJGVe zvyYs8I)$h52%W`d+0Pl>*3L^=G^!F=%y>gJWeO$C~{-Ex^QOBp|BkJ#ccjtE9VW?`}FRn1}yIaCaoo{cgD84zXQ0ReS zJzJ^=pOh4Jz74+})OhPw^f2qo4}#L0g|}9``@Pc9A%sh4{`8D5GlYz&>uJT9k9n-t z#*f_=oZe?!+`wZtMWDgUJMPuC5tsyw9KF7@5@ z=mUQH^>GVkCN9Gi1a;(+NF2F**^VQ0(+aru9ovVd(3~o4_Rt!q`Uivh^7`>h;*~m zUL!`N8tvzrw*9jf zpPMqIH0ArQ2mWbKz1pO|-?47+4t$Jhi*jn_eU>Tyk2kjp=jkZ6<=^akmb*Uw=!4%Z zYinHZ`^;cOuUYTBI-Z)t$uzvT{m7V)e81(F?u0N^gfgSx8 zC97Wvvr+BeSI(1sz{c?U(T;U54&>HoQ|)`|=g3bv&Lu_ApCywJqLHa9tPp6&$^dfo405V5zXw6C2eD3=Y7bF|4NPT!yLo;qOO`hqu% zy5F@kyVLjVD@)GeMh+7b_j6A#hh=>au;{g7E0lT`r~V;+Gxy4d?ClL#o3sDy?tJpr z(J|n3v6jOWtAvc>O<9-T?xyC4FP{@`UeW7K6)JD6E&91(5?_U0ABXzhQ0v2WDQC)vXXM55sr%Q|-y9BCQoFU3m8kiKdcQ+s8>ec+2mM0_T^HTi zYPU}{{BrTGsAaR}E-k!LbDlp`MMLUGVxnvB?6Mi#&mWj{_^C_P$NNbsSM;X)h*^kC zN$?1F*lqOAs_@t<%Nw!PeFe)het2)#WxQzBouTxh?FW0UspC=42PgimSe2k?^Z4=m zb=u;ubes8R{r@fh23G&tm~*kW>-jYKS@`_adLwd{Ty&_kG>^(KrY~RfT zwp-ikiXC6^3J1=2PCA(RW#P2pfXzn(-X7b^U9n^9GY-?zI~{pOduea3bi}x5yi`-k zJF3>TWXrpGBKG@=i-HdNRo|P;fzk1FaO=IZy zpJjQ-`|@hsBh`9i`~9&my$e3?yVqDXB0P6?_ZQZ6XMKz7J6X$$5xxuDM$WN?_cc)o0c@oMBtI-7}^v zvnhrf+iFvUoitW%>ZYzI(h?@84z3n5uaeofxGl^`a9?)`|JECPc?$;)8N?dho=II_ zn19qs<9>mWI&iZ?s)Bmv`5Al z4y7*Co1%MEQNikFW28^owc5dJ-MvxfgP-F9`a^CdzhC=M!gQ9RRY2{xd=HDomDN|x zZddJ<4|kn0{Ne568Jw9xf=@ys3Y{zlC6a`Vq_a<3t?s!O^D$uPs^aSw#W=lZ7{iSuCjjLe1CI-&Flke^cl82v&~MEA9rQQ0s5s>g)mO zu#*?~G@`PF68v6J>u+A(LFK)VuZ!Dwp857C;QQS}tTpD_*7JX(^0#_dZ#6ppP?4IS zsQXvc-#7e%+cqzV{4~9s&*?4Sr+3uzhy~N{*G*0KoE5-Fdw=ij-jCGt2-~ftd*)AZ zbD;L8p0~tYkVsj2#jc%-zotUukHhSuc%@^~O5GBNmQ(8!-HNlR-BG2JsOQ&V17X*^ z6ZdW8l;322Xl=wU>VAFORn2{$AN z0s8$#24`o-Ellq+Te3=XIcKxzdg^}CtB`!1b!&oFs&A{4D6YHIW!j}U?Ll?o+1Z;{ zcwTGYzr5h$eAY7_%_D>JtyCTd4>2xVyl@Jr)(H#lSYGZj$m)K=?v{eWUn2gNH8$gzkY(9WZHg)Xf_J1xzNoxMWc+4?Iy zt@8QQ*q$Dq9Q#|vb;!dte#4VFqVZ}^)gzuJemLcCXG@RmIOeul@IH0CJ4bFD>1a_| zO?x8Nc)Xaljhf%wt=@_>j4XXay{}2FZ>jT%VW1-Cv6= zb)FHMe#(@Zzx=p<-I4#^a^#Mh@B_6(^Pk=={d@yXKkwQfC@gQu+ZIgCXJscY7u(J| zdcq@JfBs;VP;{*9 zD$jYl*;B6lRpn>h<&r^PH>{k(<&z~DHD#V4$4uJ@{q@R2M>T>zrLC_n|N4jbL#$R? zX|ik`)qX|=_ms63#_s*%8L*}D@L>+>{>f>DZbK`H0jHXR&El6W)|629PafIi>X!uQ zNsbITJ+n>F(Vsi(!F_|Na@&-BCSM5HoNktT%iwK*(2H`aeh;{;ZY{o)mbR>FVRrqm z-q_vT)lwW1>3=lJuWB7i<+M_JcB?ZeZBQd~S8qV{O)KIdCGh3{(nX@_ZfxpP~&qWbw^EpbAC!KoG?khQi zjekL#?(&x&E0T6(d`OTo$Yi@C^Covqc?aEVkA#4TAnU-1ujcuerSJJPN2ruPJQl7| zxN}gG_m0P!A_e+<2mTFv9X5v@b)6CONVnqatfb+e!!vCPSl-9Zei)ONQfFCp{+u1l z;=d0P-;VUP-Bq!A?p>KB$f>?9QhiC1Ui0tNy#0EPQ^TnGrN+mJcGU%gN#B;OJG6R} zg|gl6U2mtPoe>^LNKkpJ^SAn2*DsTerFZ+~a`iOM%ctaK*l#)a{B$if z_D^eG9W}XA*PBwXfAQ4#rrr5nlMnyRb5+!rZ+Kf5`$=0^`KtET=er0FOyza@_0`UI$C)s@o;`1q4nGrBe$ps$qQIEy zZ&MTo&9>Jo!c7O2e^w8(hl|= z+rq7$)nsp!aU#+2j$C#Q$K%(fRQr8DlE+)|_%QMpZi-cigB^B?+vyOHB9arl3q?h;%2c7Gt;w=}9y()D5=Lh=Z zrqXk(4xH}4xw$0Q-f2g2x9>sqiiR+&H7Ojgw$&AscHcDUv%Q~35u%@sD+)YdARsgR0ZoIpZO;*T#&Y_Y^^!juYFQ(x0IL3(kmAwtAqGf z7?thtKYhAyn*7`apO)^?Z=A}#(xCc>HE#6 z?Wy^E?Z}FHWASWWUT2%6m3c{}N9LBc8?_CaxfdKsy^Ee3v%KW|O4;U)zt5uIEJ`gDo+Pfn4%=Bsf``+;?6zb(X%vz+` z)o|r;Z+NR;$=reKdK}7D5~?FVI1~*JWVw&*-MglDy}BQ7(WT$db=9}AHkYij7&#Te zvdaClcK(f9&xH4Ul+%U_{ndXi%HJQ!wg@TyUFl$wdq1N}oiU=aD&kPXTCF$lrn)R| z5mKriN#@_bbk4^2-0Ry6WE5&=Jp1)#mC2SFp*b#bMw{<6{?y;po)>Ie%o{XAaZ!x! z9*gUao}o)M7wOmzybZr(ogv|xv)Y^|^iFL1SEGzoOABC*_1r(U_T|lJJ;Gc zobLo3J7I8Twq4w-`NImS>p4?}mpZzBH2o90J@ko2<58I=jhnB_(vB_~7EDqRE>oOy zG*nOGTY+D+>a3Q_4y|?^H7+M#sMWH*7x@}=%;*67nLQ&jD(Wuf1kF_Kdmy?Y|HYFP zGF%a*mlQ8;GF}tX`fb&P4a&<`Z2hA)!&~Q)*Q?JNi%#Z#nIpR}e_zqwA&&(Lt#h6{ zj0+4|-jVK;pJFh{O4c+-EM`yS8mk-D<|)pPcnu$(d-|38>E`%LdpG1=5%KK4Slq$T z&)M~U-4C`seEW|sI@ulnQNQBpw{1qE)lXCO(_g4xvft%*sV;w$#)XR(QYjbM3O0UB zYyGp}@ag&I9(dj5GW#Mw;7j{CSZ-76{EquId%&JA3-%hPJW;&lek!r~tmTTeE1HLA z-e>*$?v(1s9`Sbn?SMZ|pLY5c2D+P}4xXbZs z`anQKxU+|ZdG+rPd=Hkmcsy?x>pbyBRjwE{y+|jhD;hR!-YOJ)PkG8qwWO3c0rH zF1ZY6JvI{lXx+zq?!l*v(lUG(ZafJIvAWVZ@SIn$a%AMO)e1>jdzEBfHrwZu49m3d zR7)MM?HbXq&)?GgEc#kmn_61`&TjFbCx3(zd^ae^UD0%fd|Po z2Nm8V`CXBJbjavOvs+p`Tq+#lm^Z9sqr91Kx%^Ju_hze;_8kq|s`dAx zDDSrPtU1H4s;A~Wdih8>O>?v9xs>yawsPGWYn;>kpV&!g%8J~u&DtbrmYLk&{P&2t z-;#BPJe+?PId1vMA=pru#JewRdg!E+yA3X!o;symFIDIMDbYalE!;=bo33fcGAbEs zx84o5zI*#n)RJ>gyPRvg7lz#mb@_OHSaq+_t&za1bEmM;#MS#bzK2iVJmcKni$|-H z|E?2k3@tTj5Q#rCAY*&9mO1}`7h*xC16 zye7ZfcWHNW`lglqEN;m$!`Z+36Uuls6dpUKoX=VzUUXh->J!P(M@9Azd>?ErTy?we z%toFq`O79XZ~wKYh0lEB?Mwce4A!OHeJ{C5jF`33*(&E~(u z^KxUXrtR<%_wwGZhJd_nGClXhl`gDhNjbOAu6*Biwv9GFe!srA@676Fwda>x=q;LO z>Y)+)?5^`37Wk^6ps%)yW$!nOh17bgiLO~VD5?0|;NIk=WoPMZ_nSKQWm&Mnqu)=J z8IRaq4vX&+U$2tSdgMI+!xh>IyiYFBUa$>ydbzdyt-L5X|77ihm@2c=a(wTy)^n;E zvZeH&ofEO|^|QO??*#@F_1PwKH{7$FBon;Q`D4*HM~Ni|w~w$ZF4ofRxNls0>S|Yu zRjW;Z>p_i(y3?X=Ta?ZzS|}gTes7`Jv2@|es@A#pw?0;pt0{4-o92Bl zJ*Vd=`{XP4T`U^5DD-9@vE%)&8TjS-TOK|i1NO}A`@-J~-w|hJZLn-uCM)Z)u_qz^ zT5rprF%ZA>R7&ug+4NZzN1*%*~!6IK}ji^P7fOM_<6c1xI5zSfgbfJIC?v6_4RXtF9OEj z5Y3?Tp)Y*~v)#25zHb_tf}_)xUE3trp)~#mX}VW1-f%Bh76=~pCG5+(c2ZtDw#}7Q(Or8Yr*fV(w z!Q;i`K|c-_#N_z^o=7H74|t-PJb%HHFy@&=bK2tI;kd}%r+`U=e|}^3_?U&DetQ1r zar4|}s;Z3}DQ$%B4Etml6o4<}#Pg+}}QzxLYg z{!Fbi z3FI<*dJX{9jJ;UI+&g6k#BBF5_j@PJw=ND7`tOifh|Jnl8k1KeBnD*L- zJVxU=vEV6V@?1uq)#EjH!6Rlo-t!VXE=-Wz}2 zF~JPL6Fx>B^=tx90h7lIJio^3XH*l0IAbLp^_&Gy6VqOW;Q7qtc>$geV|6&X*DvtU zOvcB<4PV7y#^hND9#$rf0eHMj$M0nio@ZliF-rCWPYRPJ3Ow3oJfytu+p6^Vam1r-fvRi>iohd>$ z@HjHXa{xSUOrBHVX=2(d8$97m<*G&;rkFdxqj|O;B zm^>T6lfmTi1kV*FPb7G*GkGq7r;f>U4?LYrp7-GCVe}dYkVexmm?->Mj}ntd z5j}CG=fK)$T}gWa8xD;R7}QKM!ity`a(F zI7(*F6nx>=8YJC4P!3FsGzNVi91^9ZxIE8|uJy*R>(HdbplgFb4N}NhXvjC7149}# zmC%Jy^aHG)3P=tN57797Kmk(7rVt#|9U1g|I2ISAVh?SD6f78+)|se_Fz9GxZ-Nvu z_<>p2j*kZ_7c}Q!SCo2m{;dnifl2|*b%;j>Qplzeoax|Y(9NKD+>rWt=I<7g!+|w* z5RWsYkik#7!FGH+obWe;z7^s@^^g8 zxHmSfBnJSX5rRr)fwCdvAvnC?Wza9d7D)~*dG?d!!15S0Vjw_AMaD~TAP~?TfOw(f z(1JDcVH}{~$MyA_*yEA_PYa zybStU=$?opT{5SUJTrv7PbD9Mq490t7(4y1=wG@3ZU zL6I`(0x-VN4073j7i=e%OA2eyct>r4Op@S8gO@=^qZL_rkQ5YRB4-}tKs>NT$3iAe zaG;ZdMh$jFd$)J}DIaaQ@%={@YfxLD(TGfj;J|PK&bhJrso!aKg^UL}7icy?{iq`d z*nEN`4_*eHA2iS$v}=aml_X~Y*8BpEHl&cr6C5<-j+P7Mi!9x=mE@oi%%CSgxv2V4 zAUH}`vkInQq%nKfVMKBkVoeiFQ1OsLrbKX*!ONgefhic8l_q<}zk=kbV9hHy)_zDK zQzkg7;APP5SV!l>{B`|~Bxe!UBmn0af`F+K95wJV=%`SDf*<9a_K$I~7;7Y<(K{i9 zOpV~6mW1&Rb%>h&k!c6)gnH8W{sT*T&^&{2O0~N>!GVik&|HRH(cWvfUH(gQ(9ha2 z=qb?ds8x_HB{&-3Wzb<~%o(bhy@}+&;v6(G5D)6L$TSEJ{Ja)u#6g3~m6F(*M{<^9 z4G(nGm5@TFMR2si%b?Ez4jQW)eK^jN938Ad*Hy4I#HLMfbg^a^G!{CO1@K?FLvmJN zO$D6BUSSIQ0XQ^@#-Eq^&8t}q;1C9kKm|%trNDf@!jA_uUhinbOK|PB>hu^!$oGqO< zq)E;?tm%XU=^+T%T7t74ybSsb=vJtnzj_>kZauM{H(*TyaL_D+Y(2rT058mAz(MsR zO#24XiJXmCGoE8Xa4fNA5`uu;64}0$Y%eRwVbCKXU^IIovm`jy;APN%LdW2Rl=s0+ zfn+>3SW^K5=RTy6SrZ&IViQ{`fi*{qb-w^ zb0Xuh!4p^fBb;u7XWcCDS3wRlH)bkPN;k;^SU6dL> zPNC{SlMHS+6=K^$a2&BFYb-xRE~Svbf5aKot(n+w6&jy32khAhTe>n_RJ z0XYmhy0(BpgKay(K{Ek^t~-_=R=(jc$#KUTL*Sq}9GM%z@c=J_E)QFf(W2*QP9Zrk z^@HXL2&i&-5F9V8IR;x~eF=A9YCy#C?Yt zHIdM>U~lg%28~42UUrpwFdl`zjwd$@z#~*7N#yH#i*GUy>Vmqxo-+zAynkpoi_ zXwV!^wO0Va*^4!>2*Z01nZ8pbIs33i9`IB@+)HrwW6d+Ph5y24t3YyMJO{9b6$B!X zLbjja1c8@9M`wA|UJ@yP`AE(|tf>M#Rjwd{6O1+J%z`-f%Ok=`&LONp0;=7E2@a}Z z23-Pb_H7+6v4w^9-^g__UB@eAsE#NrG0T*cEpq|k@h3pu?i3Tr& z{sL7pSPlD~Nos1IalL zIn42-5S$BGGX%$if3zfFO&CllHGbZ>h&A?5KVpzVc7fo)aDro1;anQ+=8`k87@WvS z!y0+uP~}P`IO$k(WsJiv_fwSQT*4Z3pN*QI(+N%n)<}T{^=I!DyVjAMOsw$&0o9)~ z2u>E(B!dRJ8O?a=_8BDSGS=(`&3s59%OW_aL=3t#Od4oz;rsc?dbDScuji{+gPu?G zqN)SCLU68umq9nhxo~~&x5$W$CmU-lq3qOp;~K%ajx`FPL5B()+6Rp@vAuGzCI!l+ z1Sw?K2~I9}8T9+WK~@^cB1Cd-Kn{bB>Y19yatTfz*5pAYqbM5vay>}SO{_upd&MDz zERW#igBR`%j>VIxdPs-l+`^iQaplS#CRTH z%_b;2HQw(N95fR$=yI&1Yf+PxA}|3=hC&G2)sHRW*@Q zgEi=Wlq!ONRTG>?;APOwVT<-&do_A5$$5-5z95(mDP)fb&J*x5=xByP*8R=7gXGjg z4ukG8j`M`z)L{)ZA8fnOHb8QoVvRp=I3b0sj^NaTmqDKg8q^Qd_q=*ZavHG4e_XrQ z6P#yQBMcm9R$2}Hq#?<9jy33huRNrXJtH`c;D!50IG08{+2=Gwa$aCf6Kto9=^6n;4erken8*5d%DQS8Oi{&MT}z z=K&PY{dJ04NzQAm2?7pvet$)9-eApEHX04p(MI=^&;=%z>n+wO@zH4SA%*M>!D$6A zgZ=^90*&RPM?2tDH<9xWYaT(NTp)$4mEfQwFzDs5MSBly6o4sjBBu>&B;i=pcz;iD zK46U(R1OS7n&h+BIV9&J*7QKxLm-9h1Ht(OUIrb#aW)N7wp-&ikeqg`DVU1xhmP7O zg7X<`_@RUGLrQnmJuQ;+1#A3ae%2ku&^{9!7~T*MZV^Zchw?liIbX3x2>CKWj1kV5vI;J`Er99h_+C=w^R{$qUo#2PLTpgx9dfZ)L4frB8>thA`a zjqzkWzp*A91Tgrp{USJnSYrlT6p!@LkD4S0twtDhJt!9pK5T;o=P%ZvXSK+h64V}& z9GGf>69;{MEmpyE4uUg`HR5nARL}K6wQwRr(DCc=5v+Ly9Aii!8zwloX6T8d*|fPA zWS|30zM;{wff$R-gS7OYt~ znoWBvG$WYgOvak=?ao4QreKZw7{{l1-Aa-(6>B76OZA^A1cw!CP#q(4RoLW3a@eru z5#&QvV`C*a)3D|fY|;3dqwHHja@euv74$>-G0rrCgWla{&}TwEBxoMDUc(_#YJ9tM zU`;1@;go@GI>AAAq8Rir$VGdzzr7Gma%NzSHnf+>D2B#Ka8N5S=ze4Q?|SC^Bc7R9 zV+b6cF&!7dnT0h0kPk8%=da)Ym=E#O1l$j)`EVA&;lUi#JCTX#$?qV`H5+TtN{MPO z9)g3eT%lYL3|h0@a`<3Fa`>Hx_R#Ts?ssG(rMLp zgTr!yb~R!nR3*5W#s#{o4C{F~mh>1$oZz6@0LBHhJ6hL$*)nT6$&tbu^c;kWN0Q*6 zPfIZ9x8Yc*FG`+W`ibPA)jos%2qKLei$|K^$Y4!BR5I#^)-6#`L~t>c3$+3~x0((8 zYm6g9aOPtTzB2=wMxpJ7Bu5TwuEQ1`3)y^vgPuw-=nG*B|7i2LRPK|U1z5uZ^`nd_ zFrN_|1*}0c1ITF6{U>4iM8xs)m?G9lLR+A|icEpvC}9n?P9M3i0JSiYgQA7^TVQ`Q zc91C%9A&K8KAKHyzv^>>tPFB5t}-}S&B7| z&{$}E9ZO$-hvY278h-Zwt_zkD91W~N=Mxmqt?Nqvn13{}X8e4pL2$INCKg9aqrDqi z@sIgu`6vet#6PCfA~>iu8FUNChXn1;Wpfy@C^fzx>R^o}Y^iafO>lIv2K8lR?q8L7 zNX`nZfsX#aeyB@u^sq(&Q{a82rN4Yhjy~3)Gac1ldIV=B)}T2Inf#>9Pe_gd){K9C zx{~0aR)BY9M=>-h(Jo_>vkGg_nT{G4h6Kk5YgPjX611hU9{-p(R%1;hY^ib?5gZgP zgYFG&iuzA>N5((mF~J&i9+Vu5+nC^(VvQ~2BhL8-*?+9(&9LS(Y^n9UDZyETHLhdF z$$Op)SNq^%>ObaK^BuNSKU_m_)?y752HRDsheaf39oC=`P1Vm@f`djegPsZ$RIakr z>2pZV2CPBP8O89?;Qb$hV}Uj9utjsPvD_7HlCu$O&^#|b#<3tcXw;0puZ6}&yZ}ou z$+5zk?+_2gu_QRwSc66)8iU<0mhUDxHdxaH?XEf&k2S&Bgf-|&1f2_#gqGeWIh(O2 z0XWn++(dBDCrTM~17JYdG-Ds8f4A{#|3LLAP=2)*mjTXAvvyCgU(I!5d_SI z;B3d5L?{%xc97*@>>@cku%-zPj7-a4*+ z+z5^b)^x$1s9dLBJN{!H^Te9x+GG7o}-RuK$(J>;SO<8Gw%56(`kc?AKBfd-iu z!9kzFWzdhnu~0nR9L}HaQv_a zy`O+kpJms<5J9Q&=jGj4gYHL(K@KuMg5!@h$!J$FvDG7+NzNXu(Sx!}j>>5M1SbG% zELu%*t+`w31E)|3DTLZaE_Xbg~?gII$E)H*zf-~?k$-B=xV zJZTjtIft;O7=rN_i#wR$gkX*ESpJWTrO>s(#Z=FsSTnv{Ap|E3YZ75kRIUp7bU%`F z7;9KS0E;zjVFU-wmJIq_*rIXqeTDUUk`sY7AE4~YW1Mh;a|CPjARiL6a&N!$B_=Bn4W3lD~ zj0;qc$W9QPIIKZ!h4xNYLbo<2a!z8+U&yD%MI6D2#~Rcx(B6{w|LT&QQ&@w}n9v;9 z;t5Uy*4%hpymaYOixxlK?SO>*uos zCk1Ps$>EQY)9fndz{84(oby-{WB`2?9Skgm;9S6(kB|q&rwQ;~e@${OVvP(iBoPGc z0>Mee8hfbZC6GU_X$YoZa50rD4Qo=Mb9_e-uvCJRjy3=9es~FM#`nW?f|G$Y1#k@1 ze@72L3)4J+Ef-|&yAT(wve0*&r9 zilIFrICWU_|L#9ev1WY#sUtY`SVQ%ntGSN^ z=jT}C2K|s)XFel1jaah_>W2e3=fv0UC+p`0*092)>OWRLjRXhv3b>CAThv~$UKhhj zPBYfT!Lh`~I86lSCDx!T8Z<6my2Qh=nUzgEi=W3mWh9CY^R5Id8Eh2n6V!1F|;+rxk0^Ssrm3+0Zwuz#mNI zLaSm1eLch@jUZsH1m`{0=#OU8^vhl&)>fwIo((@{=D2paC)$&3&sxOq~|{R$N97uYaC(j4FCKu9 ze_F|S`mttwJbeV`JJ#qxFGh2s+U}F*NX`$e5dy(l&>;Ixa0aku0pvl^XoUjwc9QcG zYm{J1wbuZ_`Gqy;eFm0?+9Q&M?+MHRIC6oqqn6W7Xs8c;6rv3O{cQ12iAxpnjjUj|(YylC&+ckce9 zTnwzy9v9Cff`hJN7<5#}i1Y93_sLj;1gQMTSP0G(tU-Ml*}Wh-bR|R_f4^=j){LLW zrVt#ox`ywCz!bQ@yl5{VCvw=ZCId9o@mLAYG^~Lki0#D>qX#61orq@|!9k-BK7Roe z6vfNnli4JP18WRHK(+gHg2Rb5Vq=`Xh1+~c&J3(UD|TvpaS|LZtQmm5fy(~<(W@eo zGZSmdps}d&&P8z0N}fSC0tTw}Ne(yG_(MF@ygG~EpijAu_CvtX_PEemNzQDn z`3(6~yYdhm-v4nRLE}rAcb4SvVa@n;9WTK_tF_V33q#nnRlNQGczz*(H6i2bnV;YY zV$C98AWn8+wHq1F9IQcC#MHV@kl>&@&v2~=8q{8a0_Imqjxg4s^A~lUD@1Tau%-$a zXnv09u7D(pZ2b5_-;oLLx4;(lS7agtM+|E=LmrCf$tRD$Bxf$x=m8!kZ){=&2fYc& zpraKIx;{;;>S-i75?J#crY?&yjyS=Q#2PN(pwiSG6Xz#6_|sT)!*TPWB*Br!oatl7 zF`5)yKyv0`O&w^ceke_F(A{7Ly>v`ds=23+1@DxOVraJJZvVK>Rm7UA zaU2DLql7h5(59##23WQQlJTH#W@XTeK_EGHJSBpoj5YT`gXTK3+GQ~$M+Iv(fktSI zqfBsAv8D$!Xzq3FvalsNi?GHJ8hz6kN0s29mV)n3fX<9KXNCL{NDjIi%%F2|Lp-Rn zf~gT4b*zzq`T-d&mM6-TZN`hmE zH8X&N`p?>sAgF?g^}Gse)8esaE!4= zZ!Di}TkjyrF~J&iT>xQYGbT8uShHxXo^xV;fOKNH%&-Q1?r-TB$CTi#!I~7%2!iI$ znK%Eqjx!(CKz|MxE*7WdpGM;r&BpRU zKFQgDHRw!-<~n5S362HUtVdM>#%mOlIocz~kFSkbgGMy99Kc79J)!)R;)qiT&QYnTL_LL6Gw%O3wqncc$^51Bf)XT8UYv=kf5dY zw#$*6ZCDcoCxYa$c$^823)b+AmAip=pq*?lSFAzn4eGq?LU6WYO(1X}0pI@<{Dh2W z2i9DNE!Cg56C5|JSuw_u7 z)sF|k@xmHwhzC_s@3lMdNC2hAkJFu4gVs@EV;nDnFSv|$Tf z5t}!`@x_`+s8C=vwrtfTXBWZoB{+UqgZdA$bxQ(wkeuCEgJxhV9zTMEu43TcDQuAy zRz{VPoIO~hG>+p>a00NVV~lfAShIxW1Y*tj`UxO7d$9%#5COhV7#OGvty;aOlZ+=6Yfzg~ z<1~cegkg;hsuHlHuOe5GoWoe71P4+YmC?coPB_;1Kt77+N^&=xq9)dJ1lFX0o4Vc$ zCpbs2<|4EbT1P46-%TeuN3q5W8p3oeo+AV&5^K=YVKg*EuI5RQoG7djf-P0gkp$-$ z*4!97j;pC1+^+){)4XvUYs%nQ6z3ShLA`YJePe{me6w^h8BYw>@Ie2O9y?w%!8w67 zTBvHlLQOg2NKP!)xIw|G_Bugu;;;st5m0;mIBoTh>x+|EQw(ikjE@GNzacpBSaS`I z1!2?Nj|#$LOBCGrdG!?5c)=OcYm5_5a1yX)5RQfV#*CMx4@u5xtl0#MmW(k@0>Med z8uY6g$Xr5((nwAc)~Jsg?}-E_8Ee``F|?GMyhbGF4A!8P0Chf1COBuY2Hg#X;?sV2 z-fbs2=dh*;7A28m$2&`KQm`g(+UT0?NNxQ$l7nU^20a`mmO(0Rf^z|DvY>uYJe?b7 zKx$%pUBsF-a4d^4&IN*#iZ#0-9}=`xI=d}NP8!yrJNeW)GnL?^V~zUQaiWvfijbU3 zSknU<=pNY82~GyqL_*AP8B4R4a&scbX(raBKnH`#8(Rj!$-)}+-WTdZt-%4EWIUI# zCIi}3d5n`qaIRntTH&DD70}!2Nyc*(YtVWF7PHu{5S(jRgOq5^`dd?P8yQbF)@VTG ztQq56BRJQwW+xO1s)#0+x8OL*$-x@=ah&S}Cl_nBj~z#C9%^Iw$28t=U=3Q~Q0t9c zf|G|e^HC*()lXIkA~`p)2EDH?iB<64Kf%eznnAc2oCBKhdqbQM+ChHnVHMhHa+7&?TOgixh~A|Qq$B29Ylgixi4^d?P2nn)M;sETwD zkR~EsYNU&RH0hoHocHdtcedmDXK7Y=^FHU9IaBW3n{wUx7rQR6naY2k7n{(ruX(!T zaHD6O&FEa9?Rwnx19NNg?{T)EV_(;bq4nA98D}dxB@Jpm@l{#=^C|B*+t9K18}2yV z>KSJ{I(8MzH2PMZNx9!U&QIvr83?8I+3p!<2Rh}-o4 zd(g4-6Gr3g_KdR^oyI}_$DQZvo|u=||2@t=bnM^Dok!#B^^9ZBV)J)|=^aKC4q1L*vZ#!1(6Fm+-#j zcXWcyIPUT3glC+S=%lfOn5E(P{s+9{oI=OG9`26Alb&%-qqEQ)7%9y-gGapX?H%U~ zIuFeQ+*#Pn>$RS7&Z4uM<<1uL;HN^t>AUVyyILzXTRAO?mBkfGtNbH{x)Nnp?sHr zSo)85oJ;7~pNDk&>!N3z%jnqOL9p|a@%Vs;-f^y=liZwK(@n=Nmp$WLMJLK^xB0}^ ze_!l>T%Z3$XR=vgw_R5~<6J{$p&7^Ck0o1Eb(nX3{z7Mr`50_h#w^!7<6K8)wE3Fd z6;m#s%IO{F20Hfp-R9vE%XQB<_L+NNKp(R*=0?mH`9rm--f{j$XN}pR>u8*to^fuW zW8PX7KimB1k3HsFvUbf9o?o}oS!Axg+i9Fzo^kG=GtwM~=0NsktmeMsm~foC=u9v> z^dyaQ$1~17bkdkrFrWBt1m6CS`{#eq2{rr6ou~Iaxt?$9`|rUVGp4c^>B-=Mg$f&3RfGHuG}>o^c+d)75nB`L(I~-#4bO&$=-pzju9J`Pawn3-@^X(lgF$blmIn%U{hH-w2}CE_#O^#zw)t$NsdrUBa%lGMB1aoQ_7G~_W6m`1IB%g-*Azni!}x+cyybdjy+1{eIn8y{LjDtgU%7N?e>~!mn@!f?EA6?21J>& zGunLpuX3%!z3XG&#U?PIxA~rwxyWJ3>KVs=ch$U)2AzPXHXh&XpQ(iBdvZv zryTW8H}CosL?^M?t{57pfM*>0ibP;Qyjfp6PKnz6{^R;n2%Qt=qkDW0^NeG!mgZ-= z%oujR=LkCclXrcJpfkwq2=_WkVb3^4(V1#K+WVi%F%lfZyyn5EwJsgBM;^U*w* zV5#OA$KFMlpAR=*wL`61yxUy${yop{qtn~O<`lzH!!u4zbb6Y3wvTbUXI=V_=anCz z^VH0Y&reh}`*A+cQpGbZXgEFiXgURQJ8(*jMuc1D=|WJKyVi#;J#nef8L^w(nlQV&-Mv ze{a`E=-4})T(Fs+m+_2KADw%&KA}tR{>SSQAEUF;xXi@~OMTBc4bZW#y4XYUi^BJ7 zc-N;PI(B{BdD_4;P9t=BnQ`oOtlb}f%!WX<{)$XtC43M`;&F%amS$c z`==X!SYsaT{yoko=xj}}T}?dWG)3p6q3tpDXk64G?>NoSnP(swY3muMJv!f+ zk9L`nzvuz)I33XGX!d(mf6dq4GfqczI+(AU-RhgYX8UySIGxaGX$o0roQ|GxI-^t3 zbj$<0FH57fb-m-*@2>if!;&;kXU{lY(fP!D-F)J!|4#4!I8VEwV_y$<`>U&GobKpU zGab9%-|o|8mUn%6pkt3`cm3(^8OJ`7n!nFxI_6~%U$gih#(2l+iOy*=&+he&SkE|d z=-8htF#q{#KiFZ0v!5lr@9l-oM)T1eq*&rSv{O=aKzr#6lgWt*Z53-;W!PaqJP|wriMYoDt~Q--fo^Rrq>9W$*foM8|%w#69ke z@QgDGo%UvSt!vYU98unJMx)c;JfIw;?Hc77XAC-hjLZDz3;cd^AMZG0(RpY-7N&8= zc*YrrPC@hJ!oHrlZbl`ud3MBv=ht|2;>`o@DjH{;XPgP>;5Tqhr&8~%|8e|$fzCy< zL+jHx6FlQgL1wL~UY|+mv^3+?pm8R8#+i)Hx!mSw)J$jfwVeNPzE45t zh`CbQ*Y)f&*)xuPCTM^3g<`q(_rI1A7*7k4a&H;gOl9migs%-`oX~ql+@&;0wpCm z`H+&*oOGaMFDLydsmIA!N(Ka4d&gF-;v)R3<6FR;In*i1^Rt4IAnt6YBp)aHDOtox zJS9nyv}xD1cZ>F&;;b%Il1~044^!8OO3cY4N=9*#%siX2%Lq>1ro^WHv)jJ+x?B87 zlqad`N$Pl#W}c*rC+X)&MyjM!uby$ei$`L0R`EJdrA`5pn2V%Y=26m!lQon?^1j$f zNfalCD5=58c}l|IYSk?^GNwld=+m+KDhWODuF6SfN-A?wgpye}e(X9|p=2&6 z4Jnz!Ne@brv;9*_QgSkqlA7$ALCH`aX9*=s4HanRz73R&Fdcugo04Ii9Hpc#Q-4vi zoRb%nROTdwy(KbBS+hR=kuy_Ljg$P8l;$Lol5$Ae^o#4&$v=$wZj2kJDs|d&@-Zd- zk#y?ds?4q zob;t67bin0iRNveNy!TCte|8vCz~mm$jLrRrgHKJB|`$-74kVHLpjNi-mIosYBQCC zl5(7cQ!;^%gtC;R=gtR|j0kY9j+9JeY9J-yW=j*nI*pPFJkA12wsW$Al5srFMoK1f zvWt?`Or4};5O=Oo(u6xtDXGgdpVT}nvrAR(q^G2u87C3GmXDH>oRpxXG$%DFDa%PK zN_O$K_oO72lW~;n=VTTo2RK_M4Qnd?BPY2iSI9Wo; zG)^{9l89ZuP;!kse^7Fkle?6}a}r1|H=pMuDC4Hdl#JnVrcm;fljW2==j3Nf9&++KC677z zi;_{C*!S1AOHHpX zY-b8Ts$$l;J|{u;hgZxpfs;^53iCLnC|SUr7)lzMP9XT!lr-QZmXi9MjG|wB{MiFNy%hRYEm+blcto6 z;iMxa<2V^W$y83pQ!8l8KzOpyVDWeJKe_-rU)Zk8{JgEAH z@cN{sWCnM#P%@7@;gn40B-&A&)T1Pt=dc4M#{%4Tjiux~C+jFV$jJ#x;yHOm$q7!f z<@I5?$Vp{N_HxpMlKq_6pK7(skpQlZQPQ82J(LXK_&y z3VV_Yo}`W^Y2``!dXiC|@$ZXMSXBrE8{l8ci}l;qA`C3!d*LrEwnGbqWz$x=$P zaHru$4KJgZ^UiRUDWlKY%g zbmOqAJ|&$w=}bv`B*xXdU9aB8WPZ06iT&&|>V$AIfs!1Y%%-F}Crc^G#mPEKvU0MQ zk|vxSr=%$-mnn(myH;&|c1i4#-mUDP?lnt2B=)l|M4jZ32U2o?lTnl$ zquWYI5>`k{U?NcE!2visDX+!agh|Imt{( zIZpCXQks)@DXGgzO-g)b@m~`fQ_|XW0&VQ;MM)k`MpDv|lW!@h&&dW#YIAack}z|| z`A5D$NmB0Iq~s+hNsIWfM01jnlBZ_x_{Ygd$!kt3P;!xzI+XZ$oaU4y;-otz&zTxY z$q7#8QgV%xO_W^a&b8NKf+OAcc z#g4heUdAG9k}1H>kLlPX(k5Au*w3PAoI|`mbtyT|NoPt5Fg1{pm)!Y+lGB`gO-Wg% zmQZq;J6kEa&dD)KVwk!@$xZI~ikTIsC6V1ObG7lG@ORL$Nw0S8y4cD?PI|ZN+SMkH zd7O+iPS*fFeke)HNhBpfoK&DBn3I~6q~@d{CH_027A@Lz?9!_@)<^De%O=MYNlx4R{>RIlD~|8nJtsU2C0N}~eoPgI(uL`jo0 zH7D^flLR8Mo$!PSpe81@9Z(Tv%)fdjOd{>!Jw_$P&A+CrB+C42kxJ}1hZ83Fp8XA# z*m0hz#Ez59tP8JCl$~e$*R?q*QNko65^e?dMQwA57M9J3n^uk7GZZ zV>^$4W9OwbuESI&my~ehWN}GUX*>012{!*@oRW4A+NH4h-#@ZjA3Fy~BHTDjTvF0)*9zfXG~=5t$8j!O_9rwwzP&Dqa#TH+ zlyrM}fH}_mcA5$mS z+pelE!8Oy4Q`sdY-FD4#v&zTeT$hw^N5UMJlyQ47xwE^8$4`Lz*U*hz)46aZvG$=n zj{TQihPtCJ0+%h5ggc6_3FRCW;p` zC8gbL*e3=4qt_*`-8g)-*hfBeO1pE=-gEemA2;-7M@6{n&s?-qw9e~Y!uxB4 zOK_KBXElsn?xHZmb$IVg=EPmZr*q=gd5%j;x|yHGiS^jUKI&t;_!zt9Iwjneo^?rN zI33UNE^!Z5zVj}La2L(foJ7!haoHs$-N=nx65%c!w_L)1-bv)Prb%^i1DPtJ*3pZkuAa5qWqIdSL3 zbxz!--gF5c8;N;jH;2bu$6e-q1zab>VOd=g$Qe(J_4y9D?Ab`Ng%Q1xBHSM>=l;VWce9><-h3tY#YUcROLDD2jGflErcd0y@kKI7)N zgl5_N6q8FL?6q!9GIOtG5mcCM+!y6kWK^Ef!&OC(J2827PC z?5uvH61(GfsKj1Lt|Uy#*egJ?BnezN!oyTz*RYdH>>5r;m_&q|197=d%%&dT!~njH z=6Pi~I_mt7%l42uW^V6!OC#I^Dkppv%rM7?pR#tlOm+#M1+!e@9?X4XTw*r@%Q%){0FMPtL+1a_QFy%Q$5JWooP;50p#Fu`NoW0lwy3MZFrSM`Jm z9xK~&VgTPBGlyL{G0zbFual_6%@40Lw!+ePOix@kx$ct4aJsZTbcwsz_!60O0~C*w z){~@miM!GB-E!l&r%k^5F5x@R)10`+xU(+dXJqxwTEfmr1D6!X&M^Oqa}+<3-WZ^_{jeifoHCvMw|x`gje^SFdZ4s{7%C9=4L*Ey?8io4_ax!Vf2p}xnS zB)y~9b<52Uj~wq3?%a0?chb9&-A%WzvrE|C-X(lRYTy!g_~513D10#Cn@JiO1p&b!|S@FlpWeWOUQ$yX#ck6 z+b$+D%Mx>bnZIh{|A((mtz7}5@b{c-aMPTpc0tEiG*+nZK&3WcGoSd%EREhSR7$#t zqvK2HS_;a(+GdxODL(&X7`qA*g^qG9Q?5~OzxqL__lZJBxt4>n+hx}<@R!`9gz88X zI?DAw<+`5t>)}F;B?=woS^+AET%8{*Pbt)LqR>&UmCDt)b?h%f{Yn%%%C(9qqw|fN z`0b%VJcqZ4LPxn)Gi5&U)haQ5t5B)wbV5hD)_`*RE5+SZIfmiycUW^FqR>&UwaT^N z)!ytvRU!%<<@(;^>dmeOM4_WxKPcDayD`ay>P!?m%C!!Z-CuV3?(;gghp=lfQRpbw zkIHqef5TxyO(6;$$TN{+DH^S%C(Ux>&p9E zCDp&q($;u1Wl_+$S>mVrmeO|k~ z|NWk2IoLItD0GzTH|6@Y^6W-J%_j;Sdu&XLY*cG z9pyR#itlY+Pc^?dXI^5#@`xyOlk zLPxodD_7^xs^>#Er>!#xqfHLeBv8i8fs8F+Zb`4w4IZ;Wd-9(|ITxXQ)`y+e5 z66!or=qT4&P{HIXnqyvip`H?jj&hw-u2lK6%oQpksAHd?;_QP}PV+N4d^}vgfk-#Mk4^ku^fKBnlnnx}aQ7zM1w?r~yQwqg)q3x$T;= zZ`2H-rV)jXa$Qocw)5vC5o#4t=qT4^cA3rcUHso4Eu;9D-%k`e%5_D#_I^?JAEDxj zLPxo-f~rb$*djLT0-^2_g^qIlsa)MBg;f_S2|Y(dN4c(na_3iA?HTul%0?7A%Jr9W z6n13BBAHKod$QfA zBUCS<&{3|xm8-#!-R4yvcf}q{6gtXv3zXYmz8}lQ3-v8g=qT51ydJ0i#=0NsK!L0qg;=9yUZuPJY&XB5UMLt=qT3{BH6)+z2iLc1Ko~ecUfhcs8>xFWiUHo<@ zq4p4kj&i*O<&MMK&-WY@>J(AvDAz0H8h&QdcA;(%g^qH)2Ic1P-OY=Jtm8R+K@>X5 z^+vhU|CS+%P-#k=2{H>h%H=cP+cSS1*L=<3zCzQFjTb5hQRpaF04Vo7WkB1lp+dQD zq@kl+i9oqIe4W4QR-vkr3mxSORIc;u)@2i_AyMckmwgYxzySMYdmQFX_gSMzK9@Ta zg^qG1QLe$wI_?%~I8o>*S5i>r$Q4t#%ffJW%_a&RbJ*I?9zClzX0X z`Q)jZcFK6eZLOqR>&U^vX5o z_4>s1*!43}=qOhP<(iXnKvkjsAPODjvhR%;7+}w3yL3-nCz1azIop3dCJG(p%BWmD z)`eXW>Mi>XShJv`T$w=SF<-OSs18j}7ZR!vQRpaFX64#AC#b1V)rmq!xw3$=$Gmj~ zZ2$Td66z9B=qOhXQ0{R#d!5-|3U!Albd>8I z?{OnJ9FWD-Tn4^aXEj&ko}K)tD%Blq)Y&c7M&S zUpbXfJ%~a_x$=REF@&XZAG*^(s1Zb=qg?rw>+|wSj|(-2D0Gyo04TS=;*;lCmqCy)`fkI?7cRYw8luoqF8dR8avxRY-jL2h{Y(@( z%2g7SeZFk38)M$2=o-qdlSHATT&0vNa36;FO8OSW?C|6lf?w+kkn+~-SvnvZx=qT5_$`wC%o4GZ1Ghd7-bd<}! zw^U$&JD2VEzeX|j9#QBhS9#@X5YoAsP%Vf;N4YA1vgfir=I>{{&{nAaM4_Wx6_qRV z@eeKt^(9g0C|9&{9cY*Cu~4gsLPxnODOd568}kbF3sLAOS7lJ{{CZI)q`gpAi9$!Y zswh`{-Xgb!dP5XC%2idlHa{+ZRj8~L?D1s&a;fbo*L%u!H#U1Ip-K>ij&fB46>3Jb z`|GC@$NmtiE>Y+xS9Rr@n5A_Kp}G)-j&jui<>pXt*C?XUQLguuE7Qf6HN-WaD0Gyo zCMbSP*>H5%2tMYw5`~U(eV|+c-6tLu>LgL$;bHXRM z9@@uBp^{a!BblGHupQ;94az-!g}h%sPN*D2p`%=Nl&eO^gO7wNMHD*9RTq@oU)|RS z2MJY|D0GzTL*<%y?PPnQIuV7Aa@7N6_m{o))_DC^`bfS%97Ys6%Jq?QJ&$b=D%5PE z&{3}XpxhibnOeJ~P(Kibj&gmhTt~0$j1uZMqR>&U2Flf~TcUkJ{Y4Zy%GFT0o>ba+ zN2q{kGeKrSN4Xk-a{H@%is@enl`R^O4;|%dtX$p46n;yn5=5b+TuqcK)2x7*Le(J( z9p(B&xu#zk93oUFqR>&Url8zoW$k(+o<;GoF`OuLl&hI?ok~0WkWe#-LPxopgR=MY z_Bgz=DeI~l>{>w-I?B~TxqfYW_@+?1i9$!YT7t6s%Pw^+d1N4Z*qa*xXyb}k+*R8S?q3mxTZqg)fhmj5hNVWQAcuC|~;&7k%%Wlr#+ zxkA+-3LWKYr(AP0oLeGPTcXfWuJ)kZG2e2>s{uj{B?=wo>Y!X@*Ud~W)EuJFQLc{4 zmFMx-1%%p26gtY)Nx7n{y^Im+1X1WHS7%Tm{vG2h)2-*4w0vybBMKem>Y`k?R%Cc8 zlzp!&yP%_7T|q^guLYR@r!C3-Wd%Ow-y#Yfsbs&{3}LOc|B0*WD?+ewMD0Gx77F4()EOj`=@5hB2NEABC)l<3tsWjr1P}7M* zN4erax#KY1rto`0ttAQ_ALAhh&z0K3lROUJSizsxItB-Ph z`6%rpp^{WF6J!>2l&dc&cONxsW5zFL@w*Y_A_^Vl>Ze>iF7C=BR5VfOC|7?_dCYp) z{nc?#!TCZpBMKem`c%0-|EBN|p#~9!j&cnE<@VR`lwW-#)NG>AQLcf?HK6monL=$Q z3LWJd#FU-mw}*v|_PhSsvFN6xJ zY9h0sqgl`DSp&UVW8|i zn_U`D8JNufu3`3HBZxvrxrQs3{kck^77>Mxa*bdY=J3zeBZc~zD0Gx-q;kEA3i@2A zt3;urT%$m_Ic%7t{wkr8yl1!0{N%muDA#D^n!CDIHlgwng^qHK0aewEXs`2~d!HGW zoF7xF6NQd)ja9DVFHT++sxeXMDAzbp?w;+fhFdD8WLIaR&{3}O%5`Jqsk%Z9AqpMk zngGfj8`+DFT3nN_hf|0`N4dUGu3eX7#|X88D0Gx-B2#wHoIla(rT^V3?Z5UCg^qGf zV#*#-M>8gwEmS;F=qT4@-Y!cuJa_cGQ2!8xj&e;=uK4P|#R!$Wnq5zy4;|&2s$6A% zJDyCacZfnqxxQ4c0-sLVCR9nH&{3{wpxiMZzH-(hp=uF@j&gmaTummXi4v+UQRpbw zbmc1lrd}?g1`>sia(%5_XJ>7BBh*x)&{3`#pxk5S_VqbeEahW<8Bypc*G%QgHaJB- zp>`34j&jWcvHP{{qkGy2>4e8bK5~%C%6r z(qxU#DAX*X&{3{M%Jm|6ePN;25QUC%Emp3cH~SY5YA;dfDAy8DZhu|6H-3ds@kF7c zT;C~I(h5Jt2z8$*bd+nUaxGbY;&Y*r*RXrd=R-%imMPbv4qJkR%0U!5%C#JnJvQuP zW%6sU-qhuDIf^KBlRogOiQDt^5AqpMkTCH4P9&K?-sI5eyqg-ovyX>CnlBo01vi!JwlqhtRYprtG zpWhJbFQU*KrJN-9p%~#%I+_FZ}ZNg?jhpZNfbKDwMDri`WE;? zsIx?&qg-46pY3`;6gtYaO}S1MTi;$>scYIJ!{f-d3IB2J`VE|g^qIl zq+IE1?#wGxX`;|kt{tEXSdm#W1U{}?j$Jj0LPxoFD%XOdFP{t5mMC3M@pWS`QRpbw&&oAAMUTBgjVB5n<=PF(9rMXEr(Y-345H9cu06^XIHp=6p}r#u z9p%~!D%5P3Jq~BKO!cKu>xn`~x%Mg7(>gzf2(^bObd+m9D0hC{ZT;33p-vEmj&l8? zTs_)&{3|V$`w=k^f{p>5rvL&9b?MQa!lUbxz_U>E+YyZ7^sKSP@)clx#N(gm;D0GzTcje0X!v}qYiYE#ky&bJxqIxk zQ0{Hx(NV6`OqtE{txg*l|2@xPdiyOMv!J6~XPC0HG4|l#Rzl?_3LWJ-3#zIiEYz=qT5D zrp#tx4ma~0enu2J%5{M$H-|z^CJG(px(KRjf;kjw9#QBh*Cpk$b12jgM4_Wxmq8_* zL!tH(g^qGvQ7$`&LY*NB9p$>pE<1Uo4iUN4ah**Z#Im4+%AaD0GzT4sVxronKL+i%@fkLPxpoD%bHle-{#JEm7zw*FC0; z%2%QIkaFvI4tEoUj&l9OlwHG0BR(!A)bB*0qg?kv)i;EtZnbWdMW{cCLPxnCDA(~8 zUu+WUDN*Ps*F#Y5I9%C1(L|wA)i!#wprc%ml7N4cJYN;ro?)guZW<$9)Eb`FJVM-)2B^&C{fITWftQRpbw3+1wN zDAahO&{3|Jpz_!WG|S_#=G&+79L^;Q9p!qZTrYB*{zs_wM4_WxuR*!z4u2l*|A$b& z5rvL&y-}`5f8E_H)HR~eQ7*d?fdQdro9te0R;=w+q23UMj&j*wN0Xm}%{!uXQ=zid zF$0+e9p$o5?EJqoVqI^i+4z}I5k#S*T=rYF;<_<#_-{hhBnlnnN(?F-Yhs>P9^HRD z7w@k&M4_WxNtEmQw)gT1)rTl_lq)GH_gcz>32C1THHs*7l*|4NP1&xv_E~ZWHIpcG zlq)$Xcg!bln0}5>D~Lizxl$-sXpwUFg!+jnbd)P4s8E{2xI*RfM)Py?V??2&T&a}n zTG9{l3H5*|bd)PKD7(Mxu@QVdYK2f4>iSm!9py@+TnA?t|5>OKM4_WxX+gO;OnEEh zTcH{fg^qHiQ?BVvHYJ#iPl-ZDxq?8s*Ys`%L_c1^$KhtPZT=J zl^&FP4r~8b)ns-ZAqpMk%Aj07X8ZHFP}hh;N4bJQxnus-N5{Vu>IG5gC|5@1T3hOa z=|ZLd(7%__QLaqNb$3baszMbc3LWLjtX!$fG|MYgG*Rd%R~Aq~bR0JOBczy64T(ZW zx!zW;3va6I6{|=^uhBRB2 zdLkbiKM;kEa%ESpa;Ii|FVudb&{3`&pxo;lkvYG=E>t{G=qT4a%9U+H@}xrDCkh?q z3gzvx*NqxyhFudXc|B~b4;|&osaz|weLPO697Lg`T)9BGW8+D)7C#9UMHD*9m0P(! z&zbcXp=uI^j&kKut|R3SrxL0qQRpaFUgi3B`kLQ`>Pr+l%9Rh4J2ob?e>-j}9~%>h zLPxpsE7w<(rzI9@IZ@~+R{`EGyKn5@of~Rz6tL_g3LWJts9n1U{VddVqR>&UFi@d1 zdhx&eU$4#EmHZ=rjE-^@Qm&Fmt`!q18&T*eS7A{0dT5trhem8F$F3qop`%sAw~`{T||Pd-}~y z&)YSeD0Gx7Lb<;Dc}+&4<`9LBaz%o&4<6R_=fY(}rtx;IBMKemDz03CS0;Qa)M28~ zQLZRZq2ww%Dc$*SzPGtS6gtXPLb(=xS>vEkDeaRUv!J6~B|*9C;e%aoJrOF5D0Gyo zlybHID!7?YF+`!GT%|#|YgC<2-{~V%ccRcyt}@EisB@L%LQN(L9px$u${q8+H?6j< z0v{XS6NQd)y{la7Kie`+sQpBtqg>^fvU9w;|Mpqi+4Toe=qOitrtG6bNb-OMLfs__ z9p$P3D%=qEIIQ;h!LP^hap?QlL}o!pxhg8xgX(j03l&ThI?5Fd%FSW6nHQ@}WLJKo z&{3{R%C+RyyDc7a_y{ZT`mnd|Us~RZ#+}!TvRsCbv3blnObd;;Qa;Jd@sDA)VS_2t8k)rHE?zzk#-bd;+ms8I7Y>qks)%s5(TUqg*kd+;yW;_DlPO>P8eg%2i9bR$l!oP^j@lp`%>2)pp&# zkoBTa%ZNfpx#}oa;Udd33bl_Ybd;;E+AjOIF@^e*D0GzTL*?38K6Ru}fep>hFbg`$ zRS%RsHtceCQ|ifs_*~9O6gtZFk#fbPyS-efGDM-HT=hZKH6DA7%C;-#ye51u*Ch%a z<@#8;)=j>fM5xY0p`%<4Kt+-3(wSug>hfddaH7yru7=80Xn&ulLd_%!9p!2S$~|Ac z{7L1-Re8Hs5rvL&HCC?qzr_w0Y8O%HC|46u!DhScV*mDRIo@Bt6NQd)eWF}x#&7&a zsDFq;N4c7Ua@YAf=I?NpWLN4&{xv{Hxtb|ghOwPC2$h>Cbd;+(D0iLj{d@5urP)=6 zD0Gyog>pr9oxWD621KEwTrGLK>^16Op1%WxGQZY|1s&yTrCb-jD$rc0$wZ-}T&;P# ztn2)!oymn-MHD*9)ke8SFU@^MsDnhIqg-u4*>l;RU(NFNs$Q1o@Fr2{C|5h>I@vPK zJ3^&sjLGn!qg?HIyKLj&xR~?1`25OG6gtY)LAf#?Jhf7&ibSEKTpdBV$K}@f^Un~f z0a55ES10AlmhbDFLiHdD9p&oG+hzCHi+n?ag&IQ?I?B~WxiV}DC?V8*qR>&UuI#dN zxTtCUTCqHbn~6e4xwZx4mrY_hcR4by;QLZ>p?)5|a_puM~91bT6 z9p&n!T!kXG3=(QCQRpaFZ&3EyYmbcvt)~7d)JCGvQLaA9HEH0!qC%Y@3LWL@3(C#m zzH_(s2z8Grbd;-~a-CoLV3AO%Ke2nuymy!FC|7?_S&UL7?0mK0NaIqvav%7(2xhp&i2N4Y*@${tZawtLo3sH{!xNamg1 zY)839J<=XjS#u%aM6NQd)4Fl!ou<@i-hlGkF3LWJd zu3Y0b#)S(tnJ9FWYXm5J9NMMinV+8a=Etv9M4_WxBb6(lZ2L??{X!Hv$~6jpV(0ckeMS^I%JsE!O$eV} zK&bDCLPxn~fO7W$_HU-81mQLZ_l+%;<3x)j@|va1hK=qT4W%9VLW#m+*_Bnlnnn#(Tx zm=aR(?e0QtB?=wo`c}FAD3G_9P?v~8N4e&Ka>vGtxQ@q#O4`yt^XMqoeC1k{YGgK{ z3K4~laxDNA;vdvEsluZnN%`2QOB6cFwNSa1Z0w&*sJ=v@qg;!avO4>oK}~so%_a&R z?o%wI89vLFk4@9A(TuYcT5L_MEb$}>zlIN;&{3{s$~AVzS4)ISPZT=JwH%Z^HtaGfMV3>`*_DeZbd>9V%2oc$%RZqh z5`~U(tpHWPcmmA-LwmlpzbzjdpAdzPa;;RZKT9`yCRBf-&{3{cOxf*vyeQ&odv;AD z3LWKI&6M3=_PL%=Yl%Wfxz_M@S<08LaTjaZQLgVnxpUb* z*Aps5YpeJ9&{3`*l&jI{1#^VTPZT=JwGNcK_CAe29}vrP_#RQ{DA$k5W#26-PyH|D0Gx-lX9Kk zG4g$({vrw;<=PA?)a;c2^Z(+}*}v<|uB2^DWEOOkYm0I{tsD2NQ2B^LN4d5#Wk&674&{3|Rl&jI1{?CP4 zLKHg6wF8trHtZT+o>V%&P(Klcj&ki(uD<&w#tU_pD0Gx-7jKt!tt(!vicpV;LPxoN zR<0ho4^0*-sI3{uEa)iLZg$zP56E}=*j1jxLPVjXTzizuzF(VA?-7NLa_t2bYCLwk z3TMk+U8v?np`%>;l&j>MqB({7lqhtRYd>$7b%hllIZ3E#M4_WxzbMzEJXQJ&wVEh& zlCDOaYE z`F<2CV>>fJWT9CVQLf|4wZ3Pn`$DZH3LWJ-0Vv!b}|8dZHp{@~yj&hv@wg~$b(ko0lEe19hsy6wU;P#lK7?KX3H4*L*= zj&eOyu7mT|q!VfsQRpbwbLBcQwO!|V?3zv#I?DAzxiXAC_*kgbM4_WxFG0EcjXoV) zlwZ%TeMF(7T(6Yt&uUeh33Z7mbd>8gD0|G?IsCCm^w|;YdQKEN%JoLM?BlXfSv#A7 z%z}<``I4F=Fu+|8x2Cz>S*S8Zp`%;@pi-L=?a}+s&U z49a!x?;nQ=RgNfhlq(pNJ2vclf1G7kL!!`8u8hjHV^{q)LiHpH9p%adD%5PY-CwI8 zJt!N`u5m=6qg+tS74TM@k6gtY41(dt?CJo=6^E|tD5`~U(y{%lMbI)EZ)J3Au zQLe0@+_g95gkf!jdQB8M%9TyIBDWPeB~*@X{$m3j`q5~?{-=qOhXwO!i=luRVl5Tejgu6LB{MypJ7g_=tgI?5HQT#x#8zbn*sqR>&U zoXVAcLahQqohJ$%<;ta8l`ikwFVt(I&{3}3%60qkr20bT=vDs-*GWTEB~g^qF+P}|jf z?bMq>Z6^vH8z0BX+eV3LWJtrd-wA zXTK&?AEMAvu5eKH8ii|bjrQwrv1=qz=qOi&a@oJ>B-DJO&{3{P-Y$DrdHUz`6@=PK z6gtXPT)9>^{;YveXNW>axuQV1^UMBSETJ9~g^qHWH(E>ZJNwDD)x9WGhFJfxfsS&O z1mzwpFMjc;X*AyhgcF61a+Ol9M4@^97OEjp=qOidWS zMySO^p`%=7K?V6Y+qXJv%CKteI!F{c%Jr^tttfqBvrzYmLPxpEfwGUw_SndMb@+Or zGWYba0y@f7Ub)JTE;>r63Pho!Torh`tSkE1@Iay35rvL&RaCB#v+g|-Y64N{C|5Kn zcRxS%ShuDXcn*Ic3LWLDq+H)Ey%{IeNutnEuF9Yi-XC`5bNMMz=qOhe<=T9xU4T$; z#rbC*9p$PD${q7fyVMSD$*zJ#p`%>yDc7dUGed+bPZT=JRSi_ad+g5as!J3)%2i#t z;zreKC{!n+&{3`$pxk51@vW;{G-uc6M4_Wx?<-gH55^u6>MNqqQLdVx-1%jn6E$Gh zQlijNt`C%J%;RkRgxX0II?5FTs<7Fe_BvlARpP5d*>#2}bd;->a=rVw|35zY!2WxINO%;zHt9p$Q{Tt%~v-yl?ZqR>&Ux}e;3<4)00r-b^5D0GzT zL*4h z@{{yDhd&U7j&gmhT=r*RgxXIOI?B}mls)F{cHNxz=3SxUi9$!Y8YGlVC79l5X= z@cc>(q3RQbj&d~x<$lf~?$_eyh3Z8VI?B~dx#HjXvZPSch(brXn)7zq{Z%|@-8G?p zBnlnnYN1?3dTlBp)JdYyQLdJtg6#yFC1B~T2Rrz>@q{RJl&h6;jcztNK&UKz{9~b` zT&+R5bNSa4;ok^VnkaOXtBrDH?-$rhs3t_Aqg-u4x#O_Qh9et=8blO2%GFM}R>qg^ zDb!q|&{3}Tpxk51=iR@0num|W9Ymp{Tpg6_htX@72=ymX=qOi5P;L&NojBQBs1$wu zGmnmPbyBVz0n@7qRg5Tfl&dpumpu+YDEac5P#+V8j&gNTt^wOSCKYNRQRpaFSG8SN zE5A;#UGs@TN4dHwSDU##PKawCQRpaFcTn!wxc~RgH$vSe3LWL@pL`S*$f{HR&Ue#-S|Qm!dNy-yT6%GDo~d#t?Fr|Nq`bs!2I<@!{)o)wC3Ak=80&{3`d zpxk}0{rRZcJcr*Ag^qF!RIcY~YmN}=08!{D*C0??%>3EoFhi4TDTTU46gtW^Sh*&i z>;AV;L7$p|%z}<`4FP2zQ><&l#G|c*iXsXf<@!vyvIGUx7OD|Z=qT4vQ0`oA9Z{y9 zP=kmi2uj zzImyHYDE+}$~6X*JLV4uJipSOUHyqdN4dr-moMyL8=+PpH#Gp`%80<@zwqg0Vtn9cWhCEa)iL zL{RShTHF2LNuk~)3LWK|q+C}vJS-$sQ=-sOuF0U>`Sr5ug+oFOCJG(pnxb4`lL}N5 zYA#XeDA!cwy0v5BS)qO+3LWM8Qn^N*-8fIEi$tNLT+=|gZlc0fYQAkB)ME zrCdKxc->g2P@>RLuIZrcwbwp=b$GkT_M7agKomO4^|f-1?$@ieP)&(KN4aKza*tmr zW9z3C>Qkc7QLdTFwLI_GwL;Ax3LWK|1*(AACVPJUzO7X&p*9eOj&jXbu701aIU&?3 zqR>&UIiTEeSncrnIzZlDA!`;Dz|Iu1fc?k*tIsl zr(rwFwFHzqHtLmV+fJx=h(brXzEiHI?{8TtRC%J%QLd$+Ld<&DbGiA=N|_7r{`!O{ zbd+nEa!tM)lU%62M4_Wx%RyB&9=n$#UO$>H)MTR2QLg_fSIW@AKMA#xD0Gx-1t>R% zgOX%hE7Sp^&{3|H%JsjUd3y-;7g6Xa*D6r(&XK}We(E7yWk zkwb(EBMKemS_8^GR#xhfx4uwyh(brX)+$&1v^(wy)t4xAllT+5Kf*-R3n;`IN8o1BgOLxqecvv8_JICDd%9 z&{3`(pxnL9q?&_kKWEn#qR>&Uoyt|H-A7x5iYE#k<=O=*)NGSIHr^f6c#u#pi9$!Y zepaskweEOMs2s!0KxRQlxpsrH*Lmwo^?90YLPZmWj&ki$u1Qf7-w~=cQRpbwUQq5h ztUjh1T_&xek3{i&U z-<0cllLb|T>P!?m%5?}-s9F0!^MBoTUyKrJI8o>**J0%fKVCkaP;-ewN4bvhc3D^3 zY^e_jwTUQnl8PD0jb6xopo?kNMd6geY{B>y&cY z_iY!d4^ikS*J)6pW}EH)ikT5wP^gJSp`%=9lq;%q<#s|XBMKemIt$93%MJf&-%P08 zM4_Wx=aj2{*oa3$T_6e_<%$R8j*ZjDGR6z_oG5gZ>ks9s{c6<+p)!s%6J!>2lll--|Oa=#ruiqEgqqikm0|I2oi>o2D4nR4Z$4(|&UK@>X5bsdzO!`=^m zZzj~oM4_WxH8B zD0ht-GW4@QYx4c!ZKBXouG`9$e`vcWLZuyziT9zSTz5bv_kS5b(>{pzS5czSQLekn z_3+Y)XrVqL3LWLT2g*Gz_j(=rP9$$vKcdi4u78xP_lAnCgqlGVI?8n)R36%{8>eo@ z#;|K6QRpbw1LZ1R(f7Ad7l=YfxgLUY_q|P9L^mwTt|VjptALJjJyNc@L)Lc`Di2ZU zDA!}&E_7N4cITSJGy=?h4hKD0GzTDQ}l`m3vvPfKbDTLPxotDOXsT zABqUIfGBj7>p3WQe%;*Ar-4wrh(brXUMSarm&U*Pz_v^2={pq!+3(QRpbw8|50-weWjFwI&K3?R5ws(m>hoKK zDnS%F%9TvH3O%YaT&Q|Pp`%>M)pmW7JG`w>J%~a_xl$R9sP#1|pN4e4{S4Q8OjY7R5 z3LWK23(D=U^T!Gv7Aos_|6WE%xzZ`u#(OV66si#n<`zM4_Wx zZ!u-(@Jf+^w}l!^6gtY49+aEIWMx0tCe&i0&{3`o%C+ctua`m{CJG(p3I^roFx|ew z^@Vyy6gtY4QMsxmuX9qU+!OpWkB)L>0u^e$9AN(6Ha&B<);x!`h(brXGAq}dlmn^? z)sZN4lq(A;ckTV?QuD?_4I>I2<$7DW8bswOCe&P_&{3|epxhkBUM%uTsLe#7qg>gP zt6;z8U4=SH6gtWk!jzrmnZLKrvYpT6`$VCmT-lkj$KkqE{gw!o@e4bW&xek3<>2kI z`|IPM?=G*;u2Mvyqg?MOSGi>)G6_|OD0Gx76qMax)>VA{fl?FL)t)GHlq;ul*}p9& z)DWW3QLbFd^-JMuA%*!k{E8@alq_b3U!w#bd)O}r~>3lx46>GM!a3-ZO5>nqg?rwtI6o-AB8GN6gtXP0F=Ft zvP-vfqf<3tS2d#0QLci@^=e>cpHNMSLPxp6KqdF9e3cLU9z2ZauqRRIC|4onviI0R z%_IsPzSa%g$*-$Lym3LWJtqFl>9TenoG8$_X_Ttz{->xR8&6Ds{A|K_5j zT*Z_tzIF0xLcL2AI?5Fe%FW@Xog3mN@*K7$3LWK&P_DLlf(r>Xj3{)JD-x7@{MzmRhcT(A4H*}TqTt2@b1VBLj50OX98#C z^#AdzEZMVX4}%bzsis1EQQ8-ksM{=en$c{{(t>^xB}-(_)g`+1+w*`D*9XSvVww@|DBuWY8=m_PHuip3}TF@N+_ z+h42!uNL67@}5t6DAh_R)__+_rd)sZI`_1($9S&+La_$CT7lQW+qM-bHC8CrfY&)p zHIXsD$B~Dgq11gsu?D=(1+V-2?6_R17lmRCc%8>oeewEt|An6_^@UKZ0k78JRkUZ- z?n>=-t8IDKfL9yuMT&;6KfR@)Z^JW$Vhwn;1+M|QqyA8;k5H@uuXaqiG5=VbBR^JZ zlu)bzulC?|)SAX$DD{9)tO2hMOu4nqHPgD^qtvTHu?D<4f>*noZw4y$tx&81uTD(4 zeac65{@edJ--ZX@W?P;$;MEztdOh9vBBfdj#TxKB-&2$?-2*ev&r!pLVhwm*;3=B1 zJI)@tNvW%ZVhwn8VT#TX(R$+4P^r-O0D%>q4;xyt;wce^<45L#f||Vhwn8XNtBj`s9q*c}n-#9`;MD(e3sR)__+J z@Ty$V;wzdBNFhld@zD4|pzp;!Z6y};}1^H1xb)Nr9#175v-y{MOGG#YlP zQsabT4S4kduUQ)&Tcp(OLa_$C`ZDGEt5=T|yDj!(<58hl177{Wt8V_#i(zsF+g<=hOT?}3y-nai0rJfLqHQ+Uvsjv;Jd>d{MiZ$SM z33yQ(D)qNetO2h}nL5-oF^xlNL#0l<)3!Woz-tJ29WnQaf0VjVDAs`2P^Q8*RH{NK z)__+WymoK9`%I1YQm5-gu)@C){mYo;Bcg8B<{!D%C|O)_~Ut z@H+9j)|V?)CKPMHtC*><4afL4yh|w7fL954Q5!1tf>5jhuTrMMHdN{}p;!Z6W#D!5 z^+PI@syEHHA#1>^oT;!4l{#A})_~VY@LJk!^=7382*n!ks$i;U0k0~i+;zRb&im=~`M$qi5Q;V6RSjPET~+atQlALL8t@wB zy=d)_~U-rd)rGzVqa#tO2hpz-wX8H(pR`u28H2uPeP5wc$zsWM8e+ zn?kV$yvBjo<97`FSg9X`Vhwoxk15xNm(HHPhf)XMYg?W*;B^&vO@HRbT}ovO#TxJ$ z&y>67+dOaC`cwRvA1oAW!0T%8YIx(w50t7DiZ$Rhfhl(lvCiGEKA_Z%La_$Ct^u#l zx<0%~sX0Qi2E49i%C+H|oKs4bdQm9WfY(Iu+JDxpLK$Iv*ux_5(a zrG6a#EEH?N>pJkdeo@X!rRv>hdzm%hHJPbKCQRe-!R$pxDs_xdtO2j|7Z+nAzpNFRFl$Ai8N&k%|=;B`BA?Quqv)k<9;6l=ii z4qq?ws$M=~`(xfKS18ti*PY-+V_vB%g<=hO-NjTx<3nTqyTmIUmAX?X)_~XD;B`;o zv|p53C=_eJYZ`dH+;aDylv*tmYryLs@S1XWn+-~B6^b?BbuUwHY|!?l)NT)$s+tdL z!0SHny6wkb_gCr|p;!Z6_cKNF2F+2gy?pYs_xt{8Arx!C>jChhcOfa&O(@oY*L0@b zIIOdL?852ZYp77H0k0Y0wa~nWPN^|Mu?DN#hZmlB+UZKI5Q;V6^$>V9Ib&wEQk#Tg4S3D=^&+pu)Ax=k^{Y^< z0k1jWb;~{5k5Q`rbZQ~<`!CXf*TYPObMG|YhNla~8t{4qylC!Ks*6yp0k64C9b?Kt z^`f~~sf19h0k22FYw3A8{gt{_DAs`2V@$d2i{@UX9ukT*;Pp6oJ=VYDr%J65iZ$Rh zk10APq7S`GeX4K6&xB$Pcs&7Lqh9&Bhf@Ct#TxLM?A{ByNER4 zwZK!<@~{1T%0)_L3B?-lTF8{^ug}gs_hhBI3B?-ldJ?=AEqLJ?r3!>%4R|eL${kn! zu=_{b<#|R zVypqLXThs}o6O&oY9kbD!0S1t+&<-%`nR{8?8o87La_$Co(HchiypsSsS=@B170sM z<>si7U!VH$4c=?KP^b)W1Tp2E0~y$`p{V6K(fiN6ex$ z^VBxdfY&RYqIwOvssEiyog)-$!0S~{QLYEyf6wQ;yw{~du?Db)lewbfY%!EnsmaP z0ZO$NiZ$T17Q8-M^w@q%4Hk+u;I)n^w=KWZYUP1-{PFT=p;!Z6Z-G}<@m)_UHBBhi zfY;mLMcdZ_-fO8)tO2igz>BVBE44`|)_~Xg6tDff*MCB>2E5({uXjcq*;c7zAF{p7 z8t{6LDR<7{)BB&P_|9)%=Lp3b@Y(=g^qUc-`U=Gw@Oqyqw|(^;P~1SNBB59VULSy0 z_NK;Tm6{+FYrtzGQ*O-DZ$^~5Pbk)a*N5Qs?2z1Vlv*qlYryLxrd%6l7Oww$r*Ffx zLa_$CJ_fH&3lagfO(@oY*Cy~fZAkpMjovFZ+x9YR!0Qw6qIc^kl_3;sz-u#8ZVfQL z@}3KoxCV`dBE|fY%q`HUFAt&sHin$F@9c!0XEz>UFYEtO2jD!0VKS8K~z4171Ia z*QJ?v{;AZVkC;N64{N|{7gKI*Y@YOTJ*CbNiZ$T%3wYi0^R&iFbr6a*;PtDgs4Rcn zaNg1ZzP~OOiZ$T%o2RJd=^6e?l?cTe@cNx8*I#G6`C1F5#tX$7@cIM14(U^Owo-Qr z#TxMXlPT9<4>lS6r&5mz#TxMX3%q`uwd;JPUKENo;Pp3CuD|Gg0ZP3m6l=iiAMolo zcx7j$z7~o#;Po$4w8q}e{I~gr*Tz=(`S4$%SOZ@Ff!8h99P+bLN6s}FnGb8gD`u9V z_V-^DFD$!x!a06yG!=?9;I$i5`x%19M(Izz`zX~@DAs^i9j4kDg6g%PaKJk=eZ2~W zVhwoJ1+Vdkecwx|YlLDAc_FfMN#TxM11H8(2UVVj9ONC+$cwDX^g+Ve5p{Z0k4C=YtSS4LzOBQiZ$SMFjH>bJ0oM+xk_Cl6l=ii z5b)~z#e_qZnkE!$!0S+^TpKR#(R7qzkG z*7d|WN@WPe8t^)bDQZLd(EA;3^IolmVhwm54PHl&+xrxy1`5R*@Hz&(E`I9it9$x+ zqg*J~fY-6$MaN%CO%#eX;B_2RZX6DM?%h|Fx<@G1fY(=}=4=eStP^w6qYrrdmsYWJD_3A!!%PgfbgklYNoeW<0FX;BBQf-A|4S1cxl-riC+2_s&lo~7) zYryMN@S2geu8&id14S1afUPo*_X`NCJ3dI`mI-M!E z|9ZM&=4VPhB@}DG>kRPfKe+NHrCt+?HQ?3Q*Ngh=ul=e~6KIy2` zcS5lSyv|~Zj+g0k^nM$c{LjxD{|Ut!@H!j3R&{AKK&eBXuz9ftyqb6~s@Ea?u6$gn zQ-op-cx8guO&_$GrqsDYu?D=d!0V%4w{=yjw@|DBucqL2+e=^Fq*OvE)__+trrekx z*1G5fr7jnWHQ?18ytXbm;ufWD5sEe7l?`4Q4_@`7QnQ6(4S2Nxuh%-n)+_a_P^zo~P6fp;!Z6=Ym(( zal`jlYWMke9I^(y&I7LjH@^72Qb!2I8t`fjUfpIlZK>4hLa_$C+A!tD#^zm37Aw_S zDAs^iTkzU#`%!sH^%jaX;MESi1~!|yR;fIpSOZ?|!RwWUNB^qSD4|#bULBY+|L}*N zS$&tEH?9|oHQ?0|ygo15Ew0oop;!Z6otUDrL2I`E#x**5n)g~N6l=h%Gk6_&Qf84- z>xE(sc%9Ew6XQd3)K7a9l_>SCP^pTif(F=GZ@! zIzcGbfLB-W%H90gRHa%A#TxLskSR9~-)QmXl}cSK6l=h%8+i3N^M*P~RSU%$@ahg; zzr0cKwohPYA^t@aoA_W81{BUClNh)y~gRZwSR2@ahF#-)}Fv zP^qm#u?D<)Gv(%}(RbZeU#U6^Z4p=lUVXr8^3FInQ~+PyR7QlmC6>1HQ<#1ua)snzfh_`DAs^i0eIbf(1NZ?-6a%jz-u^o zP2BO%r%Jsh6l=h%kSVu)owj81V5NQ)iZ$R>1YRd@Z1sRrr!2N@$Qtmv4C>V`_u&te z8Xy#Fz-t6}9X@aGqm`N@6l=h%80vN4?XL#?^|Vl|0k0D9TGwpJboJUQ6l=h%lqvHM ze`w6V=EvdTOKd7@z^e?rvd+(4uT-{BtO2j`6t7j@>ms38170Ijyp*~^DAs^i1ygR0 zs%l(TxXydc6pA(ARS90Rwq3hLsg**p2E3{~MeRlVuNB_wYoS;JUe%s*`!A&qdD^x- zYrtz1Q-_)`QMCV3>O7%X174%Si}qhi4Ht?v;5CLRw|&w6OR3w0VhwnW1uxovDYZ-} z)_~XLOu7D=HsPuZU+`_XT`1Oo*A?J(R+FpVQ>y+mwhdVWURQdG6iYh2Gw)UJ)j}xN zfY&%rQOn=-)SMEfh6u$P@cJK9ZjHTvo7qw557ys<}nr5ZeI3(gwwx`8RT-njOcZZpPs zuQo!l2E1+ruU)GLoupK*P^_oN(a1O1&i%YryLk@OpOSfZe9rOp$IHQ+T1yna6GqMwy2 z6pA(A^`Q5nvRqm4)`H2tzwQu@amQMZ?#f?3&k4ndYCCU&-a|&ZEltKI&m4*H5OwHcs&AMbZu0r&O)&Uyyi01 z(Bw#CB4>y=&6 z`4^?m6N)w9wE(q4P^ z9=zz;m`Xh@6l=ii1*Y6SWz3m_&sA!zP^%_`wN)tAfY)-S+&b#X&1ZE} z>OY}a170tJ*JI0$uA@|gmu!Eq2E1Nk%57it98RS&g<=hOy$oLC-+5q*QWpxv8t_`d zR6|>o*zWDNHayYySDsL;0k2oUEBmxYk1KV#P^9b?R$*(nkp1)z-uLV z{aHSsp;8YE#TxK>&DV=&(Myh*yG*I)g<=hOy$)Uv^%@gXYQ0db0k2iQUgUN7y}R9` z)Yn3>2E5(?ul`eheq5>8%O)f9VGVe_>Afg^|C{5FJn-p) z@!dD_lv*GZYryMmrrh?`=-s>OD78)~)_~VL;5F{MD+Vj|y-=(Hul3;d-5uS6{@QN^ z^p;!Z6AAr|@E)(um>TaP}16~__y=ePdw`8woN-Y+OHQ@Cj zcwK*1br+@H6^b?B^^va^c|G^whLe=qDHLnK>tpb0ef`Qylsf1YYN1$+HQ=?0DYv$H z=eTTlLa_$C zwt-j4j5+<38X^>Hz-v2GZa$>vvne%BDAs`2*WlHC=Y*k3Js=co!0Q{R*IN@-T(8tJ zp;!Z6--6c(&F?8x>Jy<@176?NP_KW4VhwnG4_-GPedILtI(DV)W!8Y#4@{YV_(Rvt zfAwRdwNR`9uOGpS-bb(0r9!a=ynagYI@pi-%Y|YMcMxity>NK zOsQ{#Vhwox>gz?@*Dnv;e1uYe3&k4n`VG9YryuZ-QU|=oO%!7dc>T_l`G-F=Ha7V- zY$z0K!0Qk28rN^_M5VHXVhwox$&{O;u3mI_H=0l|h2*n!k`rCU^ z8`k-w-*rkA3dI`m`Ukvn=T3Q0sVjwI4S4;_l$)dIccV&86^b?B^&fbh`PFp|m6|OS zYrreEw>ie=_kU4`J#uxg?+^Cd@=~E#175o^wVxrVH3m(Y+FGd%La_$C>M-T{tM0l( zmR;t(b_m59@Tv=56HbipuhfCBQ>jfUNCRHGdoL>C%-b#=rBq{~SOZ>rfY(uTUOz;s zZbGpJy!HgI%j$o-pHi0z#TxM13%tJC@4si1x?U*OfLA@H+}J2xRd2CUbA@6JcPm^YVMXSL$q`SOZ=MFy+SKzgvgp9pk;)2*n!kIuN`@%(=3S zQvHNt4S3b}^`e?TI)DBp$9b>eLa_$C4g#+?Dtfk4>VHD92D}c2dQCX&&mT*@*BwH! z2D}aduYN5C-=)-}La_$C4rR*iD}VZS;ldNW*D|44173%LSBqB9ZC2_Xp;!Z6hco4l z9bP=@l{1g>USA5u8t^&-ymBsCbE;DR3dI`mYQR)DHU@jIBi^7sG*?VX171gh*XwVz z>!?&?p;!Z6M=|B-?4Ush_HP^b*J%#TxKB z)l<~+bf1G#7YoH2@M^?VJu)(%5lde=_9wq)D-nt{;B^{!t;*fhT&ZzFu?DLj69172C+Rk8fAMM||2iZ$TX6ukPq+@`5gy@X;7cs27B)!>or!Q0>T z<1irN!g%m4mPsWC#a2E4MFa{aX~=YR!D-5?Zez^es#mHvD5B&DVc#TxKx z$&~A_$@e~fky49y#{| zDuiMUcy$1;R{0sZN?j)uYrv}`cr`wCT_>gP7m79D)u{%rCxv1Scy$J^hqhd`O1)ka ziZ$SMK2vVYe|~o7iOR(H`BE`bj9(fL9l$+X4wYiYd1 zVypqLuHaStcGYuA9VrxR!0SS$-1bHLuM53bW1(0BUfsZpe#@!U1wyd~yt;!|=2eqh zH1l3LLa_$CdVm+dr`S^?g<=hO^-S?P&r{=tVhwop0x$Y)pi*}W#TxMHo#NHfdp#i( zYrv}yc+oMeQf~^y8u021Ui;ViXLE1wwN)tAfLA~8qI>6*`bQ|%fLDK}==v8OFK=kw zvr~rmI%FMtgU4_4Qt7DfOsOtO2jV;I%G$cKe>*Yn4!}0k2EI zYu9J<+9~ygP^5yN-2CfwrLu)$4S2=DtK*pV^_A)`6l=h17vVV3bJ1M+mDTJgklYNCBW;U z2fm-8)B$f(Z^dG)0j~m2QJk(n6^b?BRRmu29&n{b3&k4nx(vJySp4Fd|9Y=mgklYNjR3DYRcjh6wLmD=fLAe7 zZjO3(b=?kIyw^IRSOZ=q;C0!OAG#^EO(@oYSE;WTwfu^2{`Z4Y{|Ut!@G1kZKX!Yt zhf+trLp>jhu?D=#nW}GM`tYc3dI`m8VO$4o^^epQayxX4R}>B<<=Xtp8wOg z;c%f?174Nj)&A{eKPfdyDAs^i6;p2e8rbCd2Jd;V*+Q`fysE*A-Z!e$N}*T-UZa@u zYwRwk%~$Fxp;!Z6qrt21n(Q4)?X{kID;8r7c#UDo^%uQwRH@U1VhwnW1+NdDT6Kj| z-GpKdcwNpE&GWPdc;Ti`;#++imI%cf@VWxL#y7fUqEb_ZVhwm*$&~A_AKxB!_Ltsk zkx;AwuW{h@?D)6NRq9=#SOZ@FW6F&~T1U0<^Wo1zu?D=Z0l4ip5w1 zUgMc^_YvjaSoz{AU$0|?Vhwm*4PL{W{Cu}kZG~bDcujzMJ@ebtI{Cg{IYO}pysiPS zRoTsUDm6wZ)_~WwOf@uhrg`JU++_zSb+b^c0k4VRHF3(esyb+BN3c zQA#ZriZ$SM9eADH`h#PXdS58kfY)TEXdF_#F28!pB&B{3iZ$SMJ$RkDd#@^`_I%G| zWIn6`uN#_aYC^Mylw=q>YwMVQ7T&~)_~Vd;8iqy;a*Dh6pA(AH3hsf zPWWw?QUyY>2E1+tuZ&H3-IV&DP^C}Xum-$t1+TuRuKGf$)k3ibyl!KP#sng4gQ#uWVDQxlpVDue+E!RJ@M+?x1R=dJDxG z@VXnk{)=zfpwtMVSOZ?um~vzO)J}H{Rcew@tO2ik!0WM3+AmUSmQbt#uX~|hdms7C zo=UwS6l=iiKJe<2cVC%O9|*-7@VX!BHKWcQZI#+76l=ii0r0x+j^`dwYXA4`*kBEK zO=rsOzi1uxk>95@5{fn8H3Pipyr@#`gklYN%>=K3e=M4@-g^xciZ$Rh3%t%ay4Uea z6$-@~@OqFbHx9G%+wHB?7@=4LUJrrSzz2pOsMHNYu?D@Ag*eexX)Y!~-%+nG zg<=hOJqli}pMAPWsb7U+4R}2UUeAwi^0ZR*KCq*gHQ@C)coj_F{RO3t5{fn8H4nUA z-_hVBiY?mDJVcFq+p6@LbYrty(cs<&x{=rJ+ z2*n!kTF8_e^H**CIZvsPLa_$Co&>Ln2i)<4Qr8H@8t_`glp7nJ-@V{*rS24pHQ@CW zc-38cTHy7FP^L@yul@X4{grxCDAs`2(@eSj@>4Uv z-L=`zQ6CA#8t{4syy#d@slSC{4R|eO%ANZfI;u~(QpawzW1cnO^(=U;tT-vIR6C(q z176QD<@$?`^_0pJiZ$T%Jb3+Z%*X~xO%jSV;PnDi4QvHsO|C7ww2|+xM}=Yycr633 zbwl>;pwtSXSOZ?mnW8aIpL!LS9r?HRmr$$$uNT3Kj#HG{B@}DG>m~0+BWin#0j-tV z|3fZ7j5Xl(GI+hYwSNz#8VSW3@LB<0k34kpy-IZyiZ$T%3V1D9`^Cjd4Hb$t;Pom~ zZfu;gU)^0wjTMSD;I$IGzKS2-MX5W4Vhwn`241wDS89P!tO2jr!E1Ea13pvgO`%u= zUaOdLW8=}B$A8-B$HrGeu?D=}0I#w)voBEUH=$SqUT-qxjvc1=Dc*ICAM^D-vSWia z;I$gO`rh!vOr?$&iZ$T12I|#*zuwP(?(5ZDDAs`2TJWMdN~wNAu?D=>c`qLGP1olu zRW1~3!0RpWx^(Z10ZQE>6l=iiZKm8fq&Z5d`9iS!=5nI$tQ(fYH4?9n@0fC+QVF4017071*V3`m_f~46P^kIIr_ev}Eg;1;kuP;4CJ^JUl`FTHhuf0B@v{;Na;PsWKsO9Mytx7cziZ$T1 z)l-x!twncvuSP<#2E4X;io6=mnz&f0Rzk4`ytXstj?L+wieJ4~SD{z~USEUPxUsFa zDm7Rr)_~VHOu6~6bZwKR#eU3RCKPMH>s#=eTX)p%N?juqYryL}rf3|}CuhXYQx5Q6 z_X))s@cJIS=zcb(76`=}@cMx%8i&;Kbry^*R%(S%tO2hd!RyZHpT4Wq2STw1yngca zA}_k1O{wpMVhwoh0I!Qb9sinAyKOcZnGb8gYbR6T*x1jv;o(BD2E2X-uO*oWEmZ0Z zp;*JNZB5G3fwtwSMzPp1ld=j@ZZIhuA>|p9vK><1H7WH6xqQy5$j_Z7u!%*}gO`TXs{le5iHXNJZU_-uA2Y+glNrTj{K)twN@57a9DHLgt`i-dr z#jEJnxpylS7m74U{SIC&OV*B1YJyOtLFx~tXq`ZxC0$Q4P2pN&u27^w>QAN)uu$yN zu}c$5y)P7Lkot?MBZXQpYPUm_`dui}AoVwRWxfCYxk{a~#b!ntr2b*bZST9id19eb zU4$Zyt!s%%>Fq}g<$0w^Sp_LmOv>Aka<56Lf3X{528zu#DGecIzDa2UDa%bt7fAWS zqzv;ZXX#Ll{mZr3GiE;-n>OXzzuLzOax>#uP3RkIVv>@%yHBCmKA**6`$3tHFe&}L z7ipT9ltGYkp-I^SDVLa(pCF~!q{Ie?b-&7_G=P+;CZ!3a%rYrmAms^@G7M7QFewWm zQjD z`j7@kRBRuUm!I!e+tn)mNy|EodF$yzUl?G)V2vl$~qM+ftS+H@u@(3q=~F_F&3wUteW?d$dxU zgdz=6doo31ls;!ZTkj;L{u7EcNbSYcz7~pg*!5|NQb&DZlSzYAJ*Lb*{P})Qb1S-0 z*iS2=NQ2bgKpog~R8X%0LXifkeVE!ya__ff+b;F05Q;QN?aR~=LiPFf(jS$&Nhs3T zQa@u-dgr_GOwb!9&Z|%;(javx zP$Q=exlE}sLXifk!+_d;$)9g4HCZUqAayuUFH9fsi&E2sA`MbU0JZly8KzRMUUP*a z4N?t&n$_cEGXXhjsZgXr>PVnEwQh5bQmcd_4N^w|HGOFvbJD_jZ4`<$NF5DS%YNe~ zDYacF(javVP#YRv9j1~kp`*bfa+L(Qod3Rgdz=6#{<=N z!*LyyY9thCkZK6js#niGRjHOjkp`&~fcm`ddb6K(E#E~b(javrP={t!2CKM1LXifk zlYsi8{Vo5fSD{d(K`H~NkrO&UrqmdrNQ2bLK$VT0e1lSxg(3}7rvSBWQHNkpJxwUm zAayEG=S=*qwR+7JiZnEGQsP-DND@C*VU`H zP^3XB3#g@Sx9+CYFri3;R8yd4{r+4)l?z20q?!S>?Xc_y>NQ>{(je6wsKM`jo2S%N zp-6*NHc&@wzV=0>W(q|bq*?&=@cM@)Dz#83(je6msQ7)i1#9(}gdz=6t$><0WywkE z^|nx?LFyc!X3u@Rvr=1xA`MdK0`>T@IWH^qlTf5V>O7|0IK1Vs<#DBA+w7J?8l+l- z*SXhb^--#UP^3Ys4N!j#$$3<%MnaJWskT7vmp$}yrCJI_8l>6*wc9?Y2QA-4DAFL+ z9;hLm+Fq?*gM=atQXPOwWPUeSsY0PhgH%VLwoLr|Po>5PMH-|!0d+>}1^+5FSt!yV z)fuQ8UTYs5pH35sG)SEf)CKcDX|G;$g(3}77XbC&fzwV@YN=49L8=Q-_k7%?T&Yz; zkp`)*Kpnp6h3AyoC=_Xsx)7+(JAXAysqI3M2B~gLxh>_Oy?*#uso#Yn4N~2~Ytf~2 z=E2R_^|#yYi!?~}0IKft08pRy{^nt&779fgqy_?YW2fbllzK@h z(jYYmsN?>fa-C9d3q=~FE(WS=5j~mCjovLnkp`*3K&`uX+6_wmBot|ox&)|}xyPTc zRP1ZJrH}@xOM!ZC=6fYd)fb91NDTpMbydq>m1-yyX^L~`eg6Y3;TWMv zgH#?+A3V9*3=B6mCJRLxr1F8fdEeKAV~1%%kp`&*P}iE3V<55q>6xAw*TC~Yr9aSLFzJ~-kJVU zwwCaBp-6+&2%xr4>=K+YtM`o^ouomk7^vet8chRso#Yn4N_x(`sJ^+!OFb; zx3(KegVb1{y1m=Coq9DAiZn=F4%9QF_IyLBc0!Q`sVjgQzviO{l^P@zX^^@SsP@O7 z-Bzh`p-6+&IG~z7p5Icb$wH9^ssAzM#^KcVn}WG_rck6o>MHO;YN1f1L25iukIXq^ zn3iyrP^3ZXYNlKXFKzlnky2ZPA`Ma#z$<%ZvtVuWlTf5V>KgF6^MEFM zkp`*BKyAM3lx0c{5{fiPUC)%8qfXo7q5`D~g(3}7H-OikBR}3vsqsRQ2B{mt>z~56 zS1L7CDAFKx6L<~GJF=TnbA=)eQd5Ac+vdR?N-Y(NG)UbHRFAI*oukw$p-6+&EkGUf z*S*1!??$0WgVa=@eq6h0fqHEhiZn>w3e>g>_86|z??RCVsoQ{R*ZB8frC0BJyQPo@ zsoQ~ie(LbU)T@C|q(SNqpk8RWewtE^gdz=6cLH_z&9?+&qoq)!LFz7`ep}inIN#ev zDAFKxH&7SdzadzC4HAkpNKFIk&v85MBZd7G3Pl>E?g6UX@GFD!Y-5BX4N~_4b?S!d zU_C!sDAFKxA5bff&AL!aI87+hAay@b{m*P3Uab&{G)O%F)SNG0oS|Mzg(3}7(}8N) ztnc1RtrChfNX-E1!|JjNmD(s2X^@%;)DKslH(ROgLXifkSwJ0m>^~1H^}A4{LFz%E z_P^lerHJLFyr(n!dL*Sba4RiZn>g1}gqq^#khFNGQ@EH3z6$|9Ig}rCJI_ z8l)Zus#oX2U~F^|iZn<)0@Rr9=f106gM=atQgea&y3e&8l`0g9G)O%P)cos@3-%6U zgdz=6j{$Ygot44dJ6R~wAoVyK2XzM7;5$iu7sU} zr3!^24N}hnwePfUW0V>r6lsup4yX%TKD$t<$wH9^spo+jkUeCWQqzPY4N@-vwd2^_ z;H>^!p-6+&GNAg6&6uiQONAm0Qp>+9|cdbv<2 z(jc`8s10|2*j2s82t^vC-T>;5f%GE|SHj6ckp`(Zfg1GIHEoodCKPFqS`F0rA(z~$ z)LfxRWBr#(3bhvIvxf7jFYUO;b04>NOf2@MP^3X>El`uohE*xGLnzW9wGOC*zWaJF zr5c!HI{J_Xskeao`^)C5m1-*#X^?swr~}s(uTZK$DAFMH4p7g{SRSlfrU*qEq}Br! zyZErd>a|!X(jfINQ0;r3`I=H63q=~F-UI4{aT7C@s0MxvvGRl=YO(@bJ z^*&H9KYHMkO7#|sG)R2_)bh#Y!ExMZp-6+&Mxgo+?7E+NO&5wZNPP&@eusV?oXcG) z6lsw92&f4^(JxutcKV%Aq(SOqpuV{A;%k*UZH^;LXifkPk`$7 zsMlnnNQ2a;K+Uqp{fd+fFz6yI$@l6lsw95~$aE zo_(fLw+TfWq`m^G^SHKkmHJR9(jc`Js2BD-ysuIX&E3EBAq`U7fExM7Cod^ATqx2Y zwH>I3|1H?6)O?{xQzsTLD6XomOysk@`N!mwpUABqp3$FDzUF-Ha6$k7v+@c@RAx8h z@87Vdw^{$<=NIGCv2*wS@!kXa#4n0>YTv(otfZ{8EIz8NC@&GG-AQB*oSGrL{e%(iVSi;73Ydv@=4 zepdT-?OL^K6;nZzXhBs)QAxZgFTWsGSzeLI$+v%3<&;+@s^ss2cx9qEkyjP3%E>KG z#Hh0IoZ{lLyqv0{veMY-qSE}b(V6DwMR_@Sg^9TNni$jEeakJXs`Ov-Ot$7rL4nE3 zv{!y{qOw`bCQX{eTV>l+qpnDdGHI-_-?Ey8-^hn}8xyRuDyJ&pbBbF#3->z-jyhL%8f%8mO@zF(Q5GC@Y^Asv9;=xc^R9PFu zL!f*A-tpl%MWykgj-Ado?Gcff8I_ool-Qwb|9B*V6^yGX-jZDeHBqh@( zDGKD8Bo&P4H0fDEI&BK^jvX@NJv+pEbcpw9X|wUk+&mnEKvuk8=kA?5_P1D4C@sU4 z7o+9@)VpuzPEiHuWG0mM@g7}!x?pBVQK<)}EAqe&LH->(`0}Qtb750bxuleNXvoD( zcGNOb#1*i6hrWHyWScX*GM>dl%$6odZW<)}foN4`gQ?2V(PmSp<0i*|vuRdN z^$3-DWu;YR)fFjfmu|Wt9g^83UQ$_06!Gff%0y+nJW&zPHM8D`kWCKB24IU?VP>Ux zabi@WIP?osL0*zGCSGncv@>Mz^Sq^Cnw9cl$4$WfsZ-U-EXMh%bm?PSJxGg~=A%?v|%#rw2?GYTlq}k&G+II?&Fk)637?h=f*=6U)M^@*QR+$`K zr`mM|hb}8KyO1DH!OBXD$J!xf8XyP<8!%5Crk=L)+#R$xswgij=G}h0ASbV?EZhKP zQZW7)*4HYLy_UBKnuuV-K1ls1n()C@(J+tT&21KG5S zY%l#Qa%lH!7A*1Zz2jys%aVNo2HI=D>^eG@Rrb%xji29jkjY3kB~v4w_{>UTcp@rI zx}m$7%Z%snM4Xk9TACZr%N=1BR5=xSg_RJ(jN?2_*_uJ5X&6a131fW|l{qEl#b%3X z8gCZw*sJsT{cLs`$TFeGfcdp}x3P+aRb?f-c#G$mRd1Ehl5W>x74f{PV$kO&Xd1TZ@pw^5c|2~+O3PyQOF=~< zA%D_(uq;o$7z6&6$ctCeTuzmXnJ>o1OlCz@^0&!a|1#^_Ql~LX-FR`?@N)N^SL?!8 zn~lXr<8k9PBAT(eWbF`w8IFe%P%WsS5q}#7F$hH*uPv^NK;*Io;To$ zuw>n(1E8^5MG-JksRJZsI(`dRkEyOBYnq=0cChL4|GOA4H%baC% zGxKAjq`WZ4EU9C8WhJ@sf}&zGzr`q@I31|it}ikN8?ijIK<8ruv&$QuQ<1L;xjA_w zI7Qa)cK;o-g_6BFWnW%x=Dgsb$tCf@6dyPgnY~A;*`wwZ7ggFL%1V<>a*91jqq-Q2 zA{y8+JN?rEh<(%n&4OlfFD|BII9u1^Jf4g4V})bgVTAH=ZrtK>GhF$voa(Bwyt0Z4 z>PVAEagI5_wY3XVYz<|En{BJIyi~r#M;DZpCxUP0C|AE1B+3dzSYQT0d0C~yO#7Sa zx)>dcy1&hmM0ExEoEsO_teA3gD>JiW`PF8W7nPa=Fgh&DkIB-pY;>ueQ6#}myRnKy zN!h4GJin|ux0vPx&dVZWsOIrJY1F*3oC?z!_P|ck3W`dTQslVL1i0^F)upyekanpd z@6wWU$SEFf_v$hFOH`)VIvPfq<8d>~$^P6NG$zagYxHo@rn_)ud9m4sL|bAGQWIum z@!q^Rkz*R7Feg8!gobrgnj5Ls!q$vOZE2>oNO?|074KQ)J4J&(&CE+DI^4VAV6P8eQNxX7oMZB`G$m|%{U3%A! zSx#x6MT=n@rN6S;+rNuSD-&j0q16bjVTwv=@li=r5Myb>wC9MA$|fr?G#Q%1Inye9oMNN>`t3R#|Y?Kz-x-+rATt#|j1@xBQ&L0g2r4mZW5HBN~;9Fk$y-7MJ4 z;yq*$Dv3S%QDXPL7MDbx2dLAE>?B8HK|*%^p%@T$kaI^zrPEOk9rHlUbz5>?l8%fR z&_Qse%|&E3g%_e`S}ConD5D*bnGUSVCFNA-7nSLGU<{gL8Jpm$!6yN1l08JX0U7N! z$@)tY4eme|VEP^V$4Ii-ULbs1J+jvDnsiYa(bh}LGD#@*`7*0o;MFmA>zV+GK6GV0ymzmSjUR@3`p=68(Zf$F(k zcjmY*ws*wv%*?7e+@!{E%NnEBS+?t{it0p`xf*URg!ASo z?GtZr*5T%yIHj6n?#imBDFNBYd`M=Nz*>ebAEn78r013(H9XJfl)RS-RQBM^M$Ppt zGlzyL6{dsDnU1otnCQ(z-CmoLwoFlVU->CMIkB2uiXJt7Q*%4F$3C zJabf4W-jaJ6&ICTxjE0v^`T8NsY@ZGZ3xL>b3*`{3?k-!h6wAjYB|{)5u=7pY5>U5 zu$J;&lMml%-6|<1)x}lj8oyaSl$airj!Yl3q&XxkqVuulC~quzQF)3J)Qq;fIH7_L z1R;g*OmPyLbV|&g#141&%}lYTq*X;FwDYhXZ2pSLrom@!?c#v`l>0;cc}|Vk+6q-_ zPRWdtktt(5O!Bp+Lv}v7!y_uWLFJ+f3o1*>%FO)|1v%!_Ig8zN2xib!X4migw4=)ZA@kE()8QR;Uxqfvo%) z)6+G%WpvUxy~-&S&58*G~4NN^Jsm6scxYZ)pktIg$(YIEMKcBxZ@n?{XU zr4zc0bknObn`oKM#CBVV+w^euON}PY#8Co2Rfa(~kEU-IYDf$rMaM4vY0bH z{%dY^L4jE>`R}96X;-r$I(50ZKw6ndm=mmF3eSm@;O4sF=2WzmxD=ZGl4Q2M6$=Vx zDK46sh|IZ$VsjONEXhBfYc4SOFT>60)#_q%0WnDPh`A|*#)Vm9&~+hmHnk)sNwN^8 z6u-IoNh4*847UzDk9mlv2|mTjXQxvKiVXg=ok{bKE=!; zn3!Q=PA2nC!=9Yreh*WfI4)PH%F4}-(_Z>Af11JLhPl^& z#v{e72TVTZy1LIs{-$(0{n+f?-)0J<^OtnDrK=O6l*~JJdk>UL%BO2<6=v^BHKb8( zHZ8NwxUJBBvpaDNnvUhmUX*oJMQL76Wg@SnTrO!ARgTFo8g5Q;nP_!s!W>|l6C*Sl zXxy4h^0sEY(Q$9N&LxQq7&|oFLW#z9r75MEYN%RfEky^+);r%EY4d%h=K88hvRjO7 z(w;Xrt6o-~kozOTZNL^n)??hDadSr+olZ2l)8<)fuB!1|>k`ZiI*Jpd|0%s7LH8rj zbVDaii8NEOnTO+cs_2}4)+412%ZNzlD0}Uqa zMGl#NQUYd|VFp0L-1=?GWA4^9%e=T;;Fprqj>L2j-}B%mAal)dgt>NX2M~<~Zf4#B z-G-1wlpA7p4{F9g9q9%m*|rGXOYP2^(Ef@@J{U6F6gDc<$!1Ps9*ur~L4(B%yOdPg zXPCz!(?ut%AXJu~n!tlvWEhmYU1;JkgJ^hFVUcaM>Z*d4wC*+kHy5Q$o;1x-k=);I zqoZ`Uk<#CJ=2|G-EOSA>E~W|0O-dcuFLYt&A(-7ohZ`V>O zCZnA1=0d4WLRnI+DaYhmi%VE*O|rwHNrvGx(GI4hL^lK@l$nT23HkOJH%R@Vl~gHB zFctOpYo&r3O2y;`u~f(fLd4V@&(MWfYA_1rg<=$D1F47>-nKS3i1pG?h{*v6-?ebl0`)&iQmSZ8OGo6Jlqy=&!V%h}RMDE2jnF2giq^Df zgf=Nvw5BB^v`MMbw6q=23e-W5 zIosW(D)OX6k;;T6x7dj^DbW?g9Ks~s?dnPr5lMph&O*NIL-)fbaY;cz^`=OQdnhH@ z*CZuk$6)Hswr;5qanr4oEGl9LL$i#in01Pdx$&BwYaW@W8^h_j>_|@9qcA6@!Yra~ z$>fVG3dEXcKs4KZwWR+l+1g9qbl)2EN=mZG@up=dO;VyQRc5n{q;y+=)O67|Poqys zcMTG8kF;x^sE}ZK8?}go1Y43O89|aQG$dJ7(^M5CSyi)C6(m_z^HdciNzr+!VD7VZ zqd>ohf}$h=e}~Gu8#r7(N%xbx&B-h*lkO{*7K;ejdhoh4nu!d#mW;^IwtLfzh>&a9 zh>)e4rKg%lg)9{rvR>KgsmPF}TBN5UL()e0rizML&K+q)xkbk;=Z-d_ zxagSW+!03<7afyEF+WGk>TYiTcAJWR7lGZM!4DIhHZla5IVtIXN+NA-AqcoCM1*Wh zx5$VHS*m4J$WoCZD4yJX!>3No*-@-lN>EVula|OPNfWeXZD#flk!@znn>K9e<~7r4 z!%4-4mbb>PR1mVJO}!}uEte*kT-gXxs|vxSqNel!7B?kqjhpx)rwA-xgTUsHSz8V@ z2&4-7`z9IoK|&yrmUja${4JCz1D~di_)V0b=X9Mfzm{^4oZFUPO^H4!(Y01mvTLKH zWY;oD$yS}2k(6xJS;@&(osw+TO{3K*$t;}#kb zaNRoE{F2>enP{eueQPbS669>np2V?Yt~y~zW%Fa&8jMl`ma(XbLe1>C4!%D z%AiP1x7lUUp-UtY6|oE-t3@(V5h>V+qIhmW@mRlb)9f?yU$5VVlfsR%+VU``3Ddf`=8|Ip`;-XRR+uPKeT0O_f&|x=!Lubq z6h3ak9boHYCsbswEBevPcR?pTk3z(eA=j*tK|2>^Wkd!o*&;e<$uvPrW;U$}O&1l` zT&&_JYT$!6q@r}mDk>_hxj+>am5Db^RM_kq*)&mM)3k>8risb`k<$qN?s%zbO0vjP zpEx2wL_iRHB#FqA5=H9f8G2rc2qDRpnSNKPzs3wFLjFZiawrmW21xkfj>-11C(($D zNoQo#M4B@hSa!NDVvcz%YtCInMr}u?i$>PYKc~g@XGF&4DK2jNXW!syE+G{rLpj3$ z6fq1~!klTL0)zoeL_`QaKT;7^BzP!-dEgB+uYWWS zJqkxgf;l_J?S(OG86C3)mhlzo799%4%!E>6z z>eZlv0@k2|GS{GkYSf^!`AN-c(EYzEoBGtL|5xoJu+WY=!Tj{VJ+vy!GC7ojr9Rgx z1&@%}#tX)kd8knG^RXnKT13#TT-vlb1>-QvF07h9*(K?*Tw&$Xi^8meM|Op9m>kNJ zp6C@K$)ON4kFtObn7=0p;4xrf#`GMF@DX9KW{`EFe^giqro=)=3Hry0MSvQ!-6(T@ z8ZuqfvgVFD+NY#p(?uf+%%|YYo!#=Nvxs6RD+Q`fZ5$h5av5d@t5lmFXGSWv8OjN`&(hU(z zR3vNw=~TR}nK$jENC@F0`NDQfiljoemnxvK@o|1I9opwU@dgYCq(fUn#P*N0HAJAT zAz~S6Ylwuku>tpZ!LSLEBGyQTNKy=jPf{$RQb}%5EguUDY0rDp^XmP*OWd`P4h4h= z6b~Ynk*y0NmWhg3M)oQZOjN`&vNwrfq9S1f*qL7+=@|A?N-PA;s>VI`F=WDITecQ< zKNtpV6GQ|o(J~zo5eSQ9o+1XD0Dn&snA5`c(Uf7K!$(%a#sv?n3<(T`9uZHo48f?d zt+i|bQ34odQ39KT4EHF3&7lTCSOxcEV_LmdLW?FvLWq~Tc18pQ(o+EQ=+3ZpWW9_h zi8#?cXDxN2iwdXs$kRVlyj*$;U}xdf!nyPi;NK-hP1_g<5mB3;GMmef*v84BRLnkX z3Cd<67l=UILqx+C5XgrjFmnfvdx~iU8Af3cOU_{&#&AR&hHyk2MsP&j^0HHkh+95= z-14#*NXw^>TOOBFsr64Ex4ca8Y5mj3Eico3T0VW;@-io<<7kMb+yE z?m>_4vA*GESA(kN%;=myKLohu+*DR`cJegfnlp1E+d#7GNv(mC!SH% zRu$4iAo5f@KWsC^Yfy!m=|h-9I7o%D6Qsjn3DRM71nDpwg7mO3?h(*oQGA-sSf&7< zYO_sFwOZNeleEdHVF4l@I~|rKDh&0F5kt{Y zMUV+1Qen$blL8u|hCF2Ah*X3Xu|MH57ftvD8|Ilp@nHg$!JL{ljg5Y77mJ} zizQ}hVjg2eujWXZ|7uZ&nWjGbJse{ZQCmNmbRy!mV(H_dxjZpF=~?n&0n#X>k!@F` z(ZB#tqp|tOR+&a)^Ql>5^O0Gq#(ZklK;zb!k2G)^P1wkKS;jq;KWyNLXb8(Mu;_v6 zAr&Tv@`z{nhgeh?nl4IU+h5u(N?>!4*(XY1bErXJbC83J^f}ZZusO)Al|F|W1U3hm ztJ3FCgCOh(S?mWdO$hrTA{qhPXC$X~JwKN)2-=d%fRwC*uxn zY5BBq;br?y%cqTp4Oc`Dma$pj33LpEh`S;XMWw`~tajQu}C{OT99vMjyY}llrlvNCqf`O=mz^@R}EN;?j!icpeg<3cOl0(*5mU+oR+iGcoQe<~T5#{I) zC@^SAf5d=6>zO8)T*=^_aLJVnLn%cKgVr!8Y8Xr@Y8Xr@Y8VWQTGOlQ!gANBgG$t> zgc{YTgzD9(gu2$K3@eVW;0vpo6tM-7k(Ly**3mI<@lGHYpYsGWw-}VPVrK!c63{ zQ}R?9CWmsm^+Vn+7#fAiq1;Uf6t^!Q45^4{2q(XyFho;gA!u&#sD{@VhGc3m6-~N7 z#3Ga!O3h6_!QEf(8UOss!_coLnH>c(yVoSNL+Sq^v^mOrUwe-K4`Enk>1KO$L2q#k zE1DXFL7p0h%{?`2X_-({!?0nehQnf~yk;^ic4`pN;1#L7l%W^jLAAp}^FRSzn??h@ znnnX1nnq*uk-ki$fl8%&i)M1WxLd&NDR+6*rh6cV-GQckBd6r$PMoB*gl?`aH+R}3 zZEjG_sJ@H58!@uYR2gPUKa`Lch=#2dCMV0ynMZ!VXtLg?hd}C`6Ydrfeg9~f(f>;? z2Ile^z4-y2`-N$?Gt47HBb3RhR%@OK8lg>24Qm+juGFwXQQ;7eI4Y4>s)o7LpmKHO zW5^nGcB_)zcMUq%4*$RWWP7L~zuGEmUl3bcWkpqMWg)j3Dhv75PzlJdc3o|iwXeIa zt+Jx3wX%>~4V8ubYN!O{SG%s3%G#Ir)>2my)mBx=D}7BNxAYZ&+-jB8Qce37;##UH zqS~qnd8Mx=A?N5K z6*iBW6lp3V*URZG(P^p@D$-RZ)TFCUs7Y6$P?N4op(d=9T#ZXPwFT)=0f<1cAp(Vk z2ow<_VZq!h;=}g!X*P3rf>PedEz0Cnt92(JQJb791>lDf$rW6E5wzr=Cg|EIP1rS5 zny_oFG-20dX~I#(miIVD721WOFuJns#x%IuKx8>XMqVu98ZV^eEhreWHH!?nj*BRU zrR0?ArP z8#9xs=$PfqRRUWg%+$7JnxK#}PefXpn>V7e6;j4^G#MQXn+9L$Z0=6gpS7}SWISyK z^jdK9_&f8)(QrW;j$A)@{DTU@aZzqw8|oieloGIgT*T)heR3uGOlwZdJ5uty-;iQCpS&_uTC*^WJ1EB>w*Y|I26c?mPE;&pr3td(U0p zeWnmf^Cl0On=(sG9_G|Yk?37PN1>#LIf(h|>ne^cHTT!h~$HHE~aZC=jE< zq|#^>uQxWNngJ2mMpQXvBMWRw2_rqHnKoh*qI1)3fU$!);W|tQEWNMF0ct_ zh-*TY>*!5L8__PP32BJQiMlu@W4)M`7q8+Dz@=o3_ow>EK{h9kU^4hygxc1lpuzO3_|C6+9R;i zlvb=%QAmmltyHBKD^*}iY*;A(pK6!qO!Cj8E14ZU1baE-;S|QvON5ehA5Nhhy`*^I z5DqRq1|P0hVwnhnacQB6r0R}|q=Yt+1PW%=V6L=*Z_7vG)*@;q31*njG!q3o8&M!p z8dH%rqDqDX5}T>a!BtW$M3oo|Q6`7>ZdnpzA_!*QLK8`_vXBJImx{8G1gba{Wg!Vv zNh-=hlA;^uN_WLghhV3WQ{d}kP+6D$jEE6Hdk8ry3LU(J1{}SlCcN&!FsyQ5DZ}}k z{A9^-^poL=(}Z*MlL}F7uPhcDV&P=Bszc6xB0_vxMV_7Q6w=LC3Y#`8K4IXrsL45BbV?Cq^;TDPF zt!BG~+^z{!FgJE75~u(!d|mNw5h!`hGhD9H3XmJCl(^IKbV0ioG#9*UX>-B57C9HZ zYq@j53;qrxaTmPcpE+LecNlc0<)1lT@OK!7rsbbG-mUP6a;WU7O9`}24W(KE>j2h; zi2|jUBz595H9CoLVrntZmB?#3v%WvJ=C=VxN()!UYT&s2s&EwN3mE+Oa&W_ zU0S1}mSz&_PsIc_Obgc&>F86vM{8bSbvZT}lD=57r>Fa?? zddgxzYUy&Clt_azOBJF6384PIJ{;CZgJ#RHiYLzvVkrV{AWH#o16i`)4P?oDH&EK7 z4Rps7dT8dHGzk#`NgI(8mxa$LAi+si_Vk=a0m-EG4)9fX>q&;_6^hUHLi~5eKZL%#9+0 zU2h4j2+`r|@lY@si}$Hq(&|g`Pp`$%>bQ_zqs+`K#g4|j>!pFQsK_NI z!AEwKTrh%9dQ7@RSt?~}<%YnPy6qB?g-d#jNR;fI*%M{qlOAJElx1QP5(Sn)+4u-AEmmJH9 zsj{1}(kj`}vLG7dRH-==Co%Bqd~a{WSjRC$M-am^H4`k}saaw17NO-xONnVP7olCf z9aUlvZBvcmEkfH=WOzHO%J5E6*|CF>ghM_{vNIg)2Awp_11Zl`9a+3nb!72Q)se+p zgf{EQ;+-NkO;cg|FSIT|Gpeb@+U}piAcT)y>-S-dG9}42I8CJmjRQ&*T$62Z9O~$Z zH|XX7{jpGT5NF1r*f|&)2VYA@IQUy~!olB?6%PKEym0Ur;bnn!@E76T{Y7}$sJMoA z_jglXYL=RrJLK#@B(Xk{;A=)YERsfDYDE#sFjEAES_Lb{ zOff|iw#Ot1CI}W$Y|*ZtG8pK)1_JY83B_KQ>^Fwty4p z;x~C1K`5d2gqdhIph|)+fgGx+26#QE+Y)Bb44^@?vgAQc1=5b=_1qwu3ZFqV6*+@w zi`t|Us{kesTM$ybDZe;tK{J3+47yDi@o0F{R>EXF88qj+iDpW-i7Mpd2{%zqDK}9~ zNjFgime(Q^RbcH@fu*)3kb<>Sjf8c@&{r_;Z^XAAB}FjgR!-AI)K;1)K{gyW9-5XC zDVi6&e`@YssmKiSuU}<`HHY|@0CkfH(zsN&D~L# zG`m4G8(vQW-I1Pt<8^+NKB_&MYJh1N)Q69^V_;$4n$2fmO>}DjOwF$60l+m8v$O`p zFV))!9*rbJ-H-#D&JyN^-bNP+6FKGP> zxyswm6hrEYurUEHEsIotg8|i%?UTV~K`d+r88NjX>EGD{v@dRE*g+1n_u}|;w zL&mux3?|~t1KTu#JPAQkg_1=#p0XrjL8sCMp0|4r+*9cSPu9g6ugLyXy1K=L@1uu&Y>K=3f2k!I&um!xd)1m?;9o)nmb!DTba% zxjvI&k?u>nMcEo*H-JeFH;5?ITrf9? z;KCK@1`%A+LX7074!ON6VWS%Xc%zDreM%c+_YjiuB53y#5;}T`P`pq&hjR21p}2W* z4&~@2Lh-WV9LmwlP=%Vv6a7*GC#>vMJ%$zL8;Ar8~ zU`&jtESpk>sVVC?9Rq&LbccL4aY$OHO`_u201PIhm6+ZN;O;9oMP;KK0Wg0krwfGo zkQRd^^u{fdK@>O}Q5FO0ZP}5$Xc|Oo)S;fZd1;#m7PQ5Yq5fhFoza!5tX}L}yqMOT z2GMOjwy(Ons=A6T#&i^Bmrz*HfUl>eB|xhemoHu{PPOeqt7JlkBdOTdY6mb)z6_`s zyJQ`fj3U@TouEkweB?%8_%a#IN|294Ee_OG2fP)HZ7t1pH7(TxgP~AlV4#{U79O>= z)l2G{m((t8ZLW^>t;Z`t;l*Xa#M(hx0XC!RYHF7)uWf6o?i!3nBZt@kglrn6WF`;!sGNJ0mDHKW?b>LsnU zE&k@E%c~O+EKCk07nk+L@sH*#A|zWRtkJF24NYy$ZEdZ7BMJNjI*q7ZR=uRYw$b0x zR*lTZlswX?_t`8iiv}^FZ{}CKWLe#knwsU+gMI7z@H%EnDr&0zO-q;hTbDOg_r$tL z?~BVMwwl#7G<5{p@J-#7ffcQ*8Ho}L1$yZ~wVoJO7cj<(qmvTqj)c}R4DQ8Y_N*(C z3}Wdw5@k)TOK~{XikiAWM@?;016$nQwxXe?KCq;wuA_AYFAgY>fdpobXN93l)!0_ku)Myev6}XG^>pK8GulD3wn`en!185F{SC{OwA3k2?NjTo zURqaEUtiO@yt=ueqo%&5qb5+>)C!^78tXb%u4t%ct!;t!j)oNtt%3U1)h*49hY@8- zV^c$*uBNG}771)8N^?WAi4X`hQVMD@`^y5R)B^ z5Bkc=LtaCkpf6lnRi^b-5-bLy*yL}EFKFjiS>h`$H}uhE^Y60zhq{WZO#17J6#J^m z%e1~iT-`=`L&YWG3UAQxFNt`=5ktOEMOmo0(uhA~i$7FJSCtVyXyX?y_Lc;rRgp+V zSvfj0vRsvfqBg$KaI~b$@DJPM3YVf3g$%jEHaWsw$ahmZ!(GTp*i;o?SR~x^Y~vS& zriyjBhZgvy@e!Y|IO6S+WJ7-uUvX(wv7z6H52epkp6R)&%Fr(&iB?sX7<_H%ijdXt>MZXUoTEDKFrLf0?(u zxHKFtj{3mZD3{SPYkoz`y2`^{COLR^8~GP4uPE;F8ulbwVM|v9Rp(M8UR(Jgds|X! z;$P`4_J)l7j@rss)K;FNRl$g_)UdD7ptU?kyKH*xst5){M!kx5afb4rDL-xXGaB-R zf*~)rZV{6`kA`e|5A*b^e@42)r4=NpD27ITjfP#~S2f#SZX@Nzk<#L5BpNKKLJw2f zlW3$$M8IP)=_A4`l>BGZOE8E=!6`)^Sy58yr7*kPM&h4gU!&0qUs-8Ic^S$-q*C(O z`Ko8hR;M5IU{y(J)LT_i6)Y*&uJlh@XtC`Fp-GVnI}e4;@%{6zz3 zJd6C(&&8ab!LPWOE5Pu#>7&>dU$KpUNpXoqzLHWaKk;b9CoQ#(uiPe2xi3T-G5jmI z0LHUTKJ?WhNR#1jwezJFHvSdf5HZyFii(oTvaq(pr4_dLZ2hrPTYsxGQjQj}Sl6$z zlJd%MX;9m%if9D{GWwHUHhx{U{!&-S+Rx|;^O~ybscPVr{PgS#mS}s4PJ*R>(-pDW z{VrR3jc0WEs&qZ;66V2(&(=C?GPk>3w*GUM&0cp! zt@R7fmipS|VwXfHBOleX$Za#-T3$l7dK$9T$B<7{5S5;gPtCi1o$nH+^4#q%VZtV&tH5nz>RrNA(NM+E{%nIOZ~I-s zl!{e*{Y zp2+w$FPy;cnDr6y#Mr;!IDVdblJ}fEHZL6M8eCi0u6zo9%-FHtWbA_H1Z4tl)hw@e zUIJTRf(pf$2hJZ$jG_WpJuiv5&BES3McW;Y>wvpoVkulfUfUXbypO=+QD823UWClS ztvV0!+W0*R+`oXi?*)OI;==Flsf=a4$k@Ga2;9*YenWzY|I_g6ew(o*espR1c)V8J ziNKsa3T^>-Tm;NhjyOXvgnJQ~8GoTz8KZ1-(#s5FKrt{&{>ou24>u>hctL*~m|fo$ zIGqk#{$37`0$}caPvCZR;ddJ7{`VPs5mc`iX!1zAmFg6=EC;9F}ybpZL z*h&8sIJbPe3>p6$V2;`Wn)(>@B0^5ZCAE_1{g`St*C z*8mgB67f#Lvy)yfLjo@bX6`hBD+kWdi;)h>x5gbkY$JYj>2hEz_xr%_Qef_qI6^zc zTM3U%zm6scUdCMpGk=~v7 zQF@Om_OKt|N0(cANxokK^HGVwx#_PFJXV%^*bnhb$L}0?-wTYtT;SZ~+W|~A0rRB9 z5!$KzRYMVf1ZKA?!Ou;9WVhRa2}ztAzuVx^3(VdN((?;|-{HXAEpcx7(F4Uk0Zip$ z!EY~wbIK2@uWi*Hwh}+O=)Y5XsXYn+GfIkPFfe1`yc8!&&9I5&O|fsLox z!+z5u___5rYQZnk>S5R8N0(durGoSuV1CmkaBk@(ex5@;tPa0){PN%(1m@Tkqw~8N zm=7h+O}@_&*$(X{0tcIy*3vR_8L20yYVC&dK@PJTI+ z0}|*I;7;imShspq01o#9^P0rDmD7iS`vRB;j!n;R9pQlKP6(VEzj}C_4$NbN0yh)k zoYI>Q`mfe|*yH%o<)*(o;rALa7j8%|AMtw%m@N|L#_t8-{t3(zL+SbT1DCzg!-nvq zi}J@QKb}TJR{_(1yuj@WoKt#_f_Kvium>j!9J;HH{AR%8GhlW&L*Qy%_|<`a^;sVF zCVq6erS~#;dp`)8S)zf?$lBEk$l%=$nQqr?#h7Qa~bk`1-N%c;Wq>FO}-(s{MZAy10*(G ze$;2kuL-!rM&U>Dt&1cJ zB4C!;aW;OG-fm!yx8of6eIJ^K`glJ6m4p0nc|_c^18aEAEjW)FseJ0}BvH)hE1cHr(Cg&*02S2E=H4sib*g&(DNr=Mn6 z-+((nVzr(f^jDuDzb4=g8-*XQZyEAC8@NkG;YaDcGeds&0{2J;{NB!x-v_|`XB2)^ zKW5(SVYBh0i~1XGP{eu;C-4@}FmC@^sgKdc+r@{NW)rvP)d#8K?%U!~xv-+z(B zz{xKs9O?OcDLChT#MQvvEU|9sp#JUS!2DU_(&^oM6r8hO&H?T+iFMNp@w+QSe)j?Q*eLv{-}(+P zS+|Z}{$>JGC~B+jio zQ+lrl=2nSw%MZ%mUjnmv6x?*+o{$(g`Q?^xFQ?#~^X<>TeJHV7FYDty$*vw11s@OX z@H3%1P236Vur_-@>D|$WbF;g<0=KWk>UeGZ$c|S7(-&h6AF?O6o|MW~?F0$hs%E9fxY_{VZ_-z5^ zeLK#^kL1g_!^6ITA6+^f4*V7ZuR1RkNBlZ~>luX~;m!u;no)4O0JlkE;N%yNm+QH3NYTiy{QyU3n!1zbOQG3}5OurpxOE2ZesS?8zi+@h(C4N8207vEd-VAWW@3{E*-9!|lf#!Ks@UuJ-t16=m6?eV7ay9~IJ6kKXLmI3#82Ds(G z?LwOXO;>eZDnHs^wk8FaDj(T{K3AM!D5)Nu2;4OitL*`=Zw8La=_X*FlQ@#pD5nOF z+RImgd3O{X#rscSX5KH-tnH*NUcwat(}$5+N`ZR}m@hNH?X=m$mf%O1kS~>AHT;eM z=KIdL4hl=xMflw!F`R&Ze7|?7d))vIVN{nN1De_gMVyMpU~~!!3ck6drm?AUNpoX+ zb4^E`fBwFK=JvY4s)iMZ(3^hyI`}u@oP-*j4iczus9m`<(A2Q1q3IAOx**Rwe)Q~b`WQp8cgerABZW%hV4*IQ1uqCI`!*yX!G>-ed_UNS&o{)PF`TThC&HB>mnIAk z-_zQ*vOUmV)7*xGIZy~2SVcOfzG8Q-d$VczN7A^1UqYfKbOa_pu7}lv@177kTMFCG z4?hav*rJ63+s@Ai3M4o7M+O#dz(G)nKyp#RB1Blba!H`Q@rVXiFL_M)>O64fNNZi7 zxu$(N3tAIj-NCaa^Lm=TJPaujXQ~;ZxA*-OVkcAf>sD$3q<~~V`OTWQ2Ta_s98s%PCo3GaTSbZT>P8ON2yc|Z{@kY{gTy(qmozw z*#BuyQ{{{gbS=cuS}4#1>tg*I2G}f#m>^4Yqk$O2vBNm5i|r>NSq_kX9BNI+q_ce` zNYyM89~>XJ0qKfpMtP}>2-6>jWLhAp`+$uRrRp0puIf}iJ&|aV?IZn%Q~eWkLX;Mk zc|@%@#i7m}gS8f_V-r#^bV!x<&Pwr)hmwYOc8Yg*WQY|i=6NaJ1ECmBCxeX)>2$Dy z6jU@e1RJW9&b%oA#KMp9(@JO6DHwb?z9-nz-yPJ9CJeLT6j-1=iBq)M{!->msY(lm zj~N_D!mRg%jrevtht(NIXgi z#l)e2)3I%4CJqI>E6AhS3zGcVIU0P+ipm1{Iz)l*n`&+#@vP*$BwLF2wz5q`}U|nQm zfFI_DquzRh{bcV%gV`U9CFrRD$L9?s3k1<(ajCIQZFY&e$lm61VgZ_5-aBZZ!{b8Y zV7WR7mU$uqo%D%m# zb5Ph@#;21RyS$80;_5pJKEVy8x?arnD1$>IgIhSgA3*}HV+W8=hDVf-y2`{ z?SZKfU*K9uJ=7wvuB5vHKbzj#W`T}w`o4%bjF{~X`mApd9rG0P=hruO_#0LPT3TBg zc$b5`uqtQr>R8cO)3OvN;~tBURPCkcz4!=D1RtgkBsXA^Cz4n=Naw)zMZyKti6|*9 z!r^sAB~=wgCBCBKvhs@3%93(lS&`3IR8dr1UQ%9FTv=Y~Edr_3TU=aG;;kqvF7j0( z0UP2ZZ|t}TOUNku#lT|hqU1*yTjM-e^xelW&hA(=DdJSB-A5R;v5T`eIIxbs&^Ev} zK(%jU6>Q@0Yqw>8kB>jbE?P_p274nYB!M97mwB2y)@j9f0_TPY26c?Ge>ir@lriE= zWUbucRYg~fv2tasT{@l9$4RqEQ#!HA_u=@YGo;hG(>SHGN2l}HUB)<#VL5ce_W;7I zPnIGkJAY$Wa09EGG0#d?NSFk)4#Q)d(tzI_W!CW4ty@nT>nNKj%5#xQ8glX|#Z01I zu{dj;Rzfmw(MpS}N~>_pYE@bK#trQo4*xAFDK0Ca(L!@@h@B_JacNb@Nfe{W{f?B! zrO6#9c}(rG63C@J9xs86##-f=OJhAw0vRp&1-jb0w&dd^(-4-jNG^81EJQAC{5Xk| zjPzp49qWYX11KfA+0tZp*k!)ur|1(ybYHiIOHgxpsTT zU8<1QlS{W~+$HK^*U0jeH5@r>N{?gfK2B1}&w|E|;~#Me^kRBE*54Du&H-f@T)KAS zB%h_9Of@dKgi?L$KF-r zx^$=|Z8D%J+R})c>Xb4=u0T<*RB3aCsd_{9igMZ&XfB#m$tV?SW!);JNXbFKn3^=6 z>3oqdwLx%-+YZ%+m6q-8g4)4`IrL_LwpuijI~{*h9;j+&)|pupK&9!*04c4<+|i>q z=LEG}rj|cN%jRmRIydHAGm9(o?OiE=s;nK@)PU7kz9W#9C3x>8Wf{(Sq0em_gFyGd z4)N__;?dY($fFpm?Gt=~C(umYS4P^Sax60t9Xt$nL)eSjOZy*bIS6x1(ni@b#)hS( zR$!6iwtSRobcM?%Nl79{vd(ZRiQ2d#^D!M37N^u&ploO%Z9$6oKB*aJd90zNSS2!u zvsg|+Af0VLuT46=9%jfV^`#<{9raPdNeRo+N@$Nv1cHpD3zJ2##YLj=O)5P1rFgW| zNCiu7qjC=-B_lIMc)6B78a^YTXrWaUNt;k|p41@{8N?>kRIx}f8XiK~tgS7C+Td(f z6xAwsMHwNaNZ(AWCp#PxeS!d#ciNgIA`!Xy`u~H5jc*PUrj1IVd!gmu*tXa!YJ({w zl9vQgUU7M;%WsW6KqYkjW-$#c|f3;%ymSsvyH@W1t{+CfQ*AcG*x2R z@F~16Y^#u3Hq+RW_w%SYu;G_84TG4JfE*Gs!{bfyl9e5GML+~=9!w}AzDsFuO3Flk=(tgU)i$cm!3wsm~6V`GmG6F|YWc+Z&DB&aUS{;ds$ zi6I@Atgtpj9|UKE_VVaF)Y~38DJHDaWua+?YkNfaf30Ym2Aax*$ehW*gcv)lX(#nu zn4g^CnRDwq{yS@GHCI-kEykBig;#9#jFFuCCrPh{p?)7(ClR@zNXKFUM9hye5HawpP5A zHi&({ibI`f4Ddcn5bXz_;wNuuQv*vQee{lcMEO&fi(*o>S;f@f87XT)o?2hVwUGBbKBnSyWOCc-TP})w(DhEx|kd5&otPz0U(NZ13(+SI#{7 zl7e@5T}P!?wsLsSPUJ&>Zy2qhV|s6bdSsv90(VHS%6!GWxh>EW>4V)7&7iVmqrVYj zd!?pEGLStrDl4=?>hh*PpUvb|$n*jVt<+FcJau^g{q{Ze&C5T2T$Jf0Evw{<;QQkaD+9T+s@gffTO|NG`in*-nO@Hf>L&= zuWjewobo1rKt@p@vShnP!QbXkg@nmBxocx<#aR<#Q%K@2hfWVTTIMR#yMSU8@M-7UxB^bh>VZCO#%v%&rmCpIb}nF(V`NN_-p3HQk; zA?+v|fdSgB%hVuiw~PYnNJU_hm^Q<2{c3^v_E%CGh2>k!GYXIQ%CT7sn`dS2b2dv& zY%)_^J>Qp=!f2Uh#Pkc}>5Edk*vb*;qk}~(Le)xM6Njl#WKt&DDKjt%qD3^ZJ$Q*p zo?)@;f0SyWctlhY=L%98EN3O0dFY7{TisHDr9`x2f??Wf zXJVLA@0Qyn`+K^&m&zz&seF*-Bm6!@|CP4$kbv@xm=LvW3wbLze?C9wLA1xau4_SfiXLRLLcJ7aICyEkmS!3angC9y*D`|pZ9}* zf|_|e?+X0$74)Vn7}Q4wLWx*EhCOI8<^+9Z)z+BWt0Q?#( zMafhrYUo`as@>+^nkv?2$7=6K!6J++v-6L@g0PSZLpPjMhVdESl*C5hdA|}_%k(u# zx){P-S*9e-RDWs>97){=3~p1Yk*_%NQ`YFbv}ABC4u{Lmze4K*(>LpIg3Z1l&d|}; z*?MY4$Zes-j}BC#t)e3huxc4ga;|%W!M-RMLc=x5I1cN>AQ9*ILCr~wzq9i=G5*fZ-(5%B5=B5N@Ljd{21{9_N07+wC1m*_|b zi!i~E&3D%ESa`Qr?yL@o?UskYf9Naghclw|l_U7Is@P~DR5tKPHPv($9Cp-a=f8@6 zu2ggwa{{meRGj{*wB@`ogWasz`8(=z7{F{^AdyVQRn~5 zJ@K_DYh0=9Z}7MfTk*L#fez=%K;)bldTe9CFirPS1+fojxC~=u)G$+wT>BT2yXXIJ zlFR3s!uY7lPDpkZ#tB@*J@HTw+l>oA+sjG=ehH48N(R;r1`}akg=g3iQ3CM7R%!R5 z>1G_&$Xm%L(axG;!)B&1kMUtuLT!bd?;_+a%e~5C8r8=roGA5Sxie{O3QE!Xcr09S zFqM`4prAf&AXeLLJm1ZR8Tah`l|`!lv?b#G!L>Atsf8cFXg@pujTsVRsX@}}iF#nR z;>sM_YlxylI?BFBv^C(zY2pN~p^dZ#6rck$v28Ou{}mT?>jf*ZS%tT8m1vH*rsD(2 zL?qaYt@YXY2kxebI3yItZ-cZOWKeGRsdSUwKrl*<0_cwZUkKr0>FL5Ga44<=&R zx{Y&F6Ke<1z8whIDjWeKvbHXk2nBGgp<%{*b)fwv)1I=Ch^=Wi55Vb?;LaQ5fhRSdnjUy;^UVi7I zDGDjf3e_TQR!|q5*QdD=cuX6CrbuvoBp|H7U>|?2h;@O{bbP}>sE&>?#@y!sEfv$b zdz@;N9?`iG#bT6-r20WczC~;RaonxS;wa&Gj9OzTSLxK{T0o)48Hlt@m!S?!=+l61 z4yeCV?NSJBMQD9e^}dRD#+VB2UI5>$wP!ga*;mX>Vz06cy-8nHRY?VJ+GxPYlOgIl zp8=-c;BBfvWU#Kmw-6&0WIRq+wLkN4wAe6&*XPzCc%=?LO78ONEi<=0la&|B+trBS z7rV#=r{o(IR>6^&n~e)E#!mUiJ&x$vXZ`f}f zBZp~8WqkQi>rmjfG*<;OD4;z+g$S z$+*)I-JCNzf$DH>Iy9W;!c!_ttPiF)7N&L_TYK=5SP3}psbfyx{3@%#&C=7VA3ipw znp;|}R2-;EmNB(=)(-I(=~hS93%&(K7b0OMN2#5v%<}eu=7Zi+8pG1*+GMxvH&K7_ zFD}JiXor`SDKIi3FIGgNVp>3qooQJ8oGJo3`>E5%ZON@AD%{FGnre`5Ng`}$9p*OB zEp@i}DAF{%{O}+d9JQpMmh_eF6z$g2E`n3#=N66Ei?zDT*cXc6h(}DJP$#F@UiiZi z*6zv9&z-A8cC=r*a!JeO2r`;5p)}qn7{8%{6z%Kon803>$)+kEN+}}TlIxnEV#z7{ zoGm%eSSL%a+Azx8_tbQbaWpvZoY1kvB1=ric?a4fk#(@veDFj^8>b>#`y+kW^({uJ zTO1)^n4}F|RHNuP^;9NHdXrT826$WZvLmE^u(uZn6Qj8EY8TZe(9#>AZK>J$0X-J1 zb7<^}bT?NHsd!D*9TfAfFD~*v%H}w>oV+%krlqk?z@l?Py`TN?i5Q;fSR5}Z)BZ@B z@+z}aX;6=2q7%W5e5!MvgFjR$05sxzUMWhkoj<=3mV`_6NU9&5*FA{+n>1tmL8>=; zWoRR4+VTk(^0Ow|%PZ}4_f5oyb#IzODXriyrBU4IJJ&*%bVV@(sy z;?+@GXd&k~TQf*Yb?P~#2-|Q@7Vph~v{oxscErLP#jKHNU*t%d%b#Lvob61?bRaJe zE?fGxk*6HSoq;rL(wWluwVhSY^?j47JYq&%R|~1{;~?u(^R&Kc!ezV~IQDJC{pi;d zx1PeJ5!RNkFv3#f3>sm5M-P!kANR;`YJ}B>;CZUDt1jUG&^?reSq>e3q?%`Z%0PYv zhwSH~-DLjKfgtADwjaUsU&?N2-3va6SVn6o|19+@cW%|(&M&vm&U zC5>tjBBe}U+7(#DLt6f^>Y@*r*4@}b_;|FH%(Ur}1)ewDpQ${;VJiGMCd=@gI!gH} zfARGU+7d5EOVsM$ZK*5NkHLXW8)!o+Mpb-a>v-MEIy{)@lTAH!WzI1T`o(ZYlql*U z>q(74UpYDeG{Z@=4b#-p9FBjXy+nG5#b>!bN~wdQxf`1iER013MAGx}qVUS;3eyAz zB}&->rS`=LIL9k1%~uGBZxErwhDFu}FxdNlVu0>FaS&b7*TRsme8gm%)r&`?cuyaT?P>;4_GtJR-98%9(;75w`=lx( zDSc2?;n*Audv{4c?A1nIPCkrtA5a>Q{{tghUJ!rwmCcVXTdG1(^U|TM3^hyA#?bKf z->TMAdradEtX7iQ`-#d+ogJ#4aTBkp)+HlaA)w~`d2N^K5;zwRMk|aL*)U|KV)CZ4 zwKQT*(t4Yahu#t3+Z>Ad0^W5>0!!Z`F~}FW&<~+6gwQ6HFjz)ZS+yTCY=}q8YXAF* z`RuodrApOiu|$JeqV7m&9ZaQTujp$pK|G^uA3zkV2iL2SFr9%Nz`KDw)4r+tibm%0 zBE*fvM31zneSjcDo zfgT}dIv=^c`c8blA`f4G7X_f<*g-4{=sX?Z3($|bXx)4Y56`%}ca?mQyVwXPEeB1v z{6lrkG;3qZbPN1n(3b1}g9oYbIhO`is4>NkcAtNbC=llJYI^485f?>^nnf0PXG_mt z^c`qX`81~<0gcg8R`Y0AVzHk7=5{9*{#shkgT+MCkCf@ARH}AEq?qdQKB@t*?QWx9 zXtr8UF-nzO9O#Dc?^Kx^ZOB8B@$qa%;{lBp1A=oA({*ZzOW69aanYS!3~|2qe?}ZV zEkT19dW}(7nL4rJOy|Bt_|}q(b@l%$<0dtCQ3~c)s8Xbhf+|WpN=+3X2&1kCbz6&c zymh9+C)L>*ip56s-t0Kw#)Z-c@OEbuN+LxtWbw+x^BzFzB6>>=?!hnVr%(V zJ0xHcj{eBb|5B-4t@G=~l24hX7>JV*##qp|eN<>%j$h^zA%9f$UcB7o&SmIXvF&Hi!+uEMgqzEt*#)WOcZEUQKgqNucPeTum%w}g4TZjHA|L$ zF$%+~!6-vh>InsHc_$2h5WFhLZOW0{{^$- zeCFY}O!LCjbnt%H-|@31LZfg+xF=??ID0IJ%{GPEkZ^g_E;2y^vU3!}`? z4hV`8%r+o$bmynx@p@RL9*kzz<6DK<`RLv-dbLK9~&h)$Lgr zdvS7o4Er4u9kgae{hA*YNP2UBi9C>l8@L&Yz7j{I^!LXTm~6uLN+bBRS-h`dh|g}bZx<8w-Ff)oWHBQoAHiqzlkk{JqI?Br>|urPL3H!E{XL-gv5OPlMe0X z-gwOk+gK84KJe|ho@V-52nDBOoX!4C!Ht-!=H8TF%_?dnNJ&hI*-@pxp^uuIL>ql* zY=A5EWEG^fe^95A-YiNo{$>%)U-2E4G{qEOyH=cB2bwB+AYiu+&J+|SkzN&|9sqw| z=@QIL=xHxL7P$xWp%_^9;{91VEde9W9vr7Y@%;$pHc+=d3G>34J?>|WWTL{sbE_0- zx4xfL!`FrL5SWC+h&CMKB|R6EqY2&CT+ewUjr<*^N-5V(kc+zakR4k$Rcg_dDT z+)R?=T?;Xx!f}BxRToOB0Vv%Y{q9|HElO}q_hEq_ep8gG* zfPhO{xTe%wR$^FAJ6H$7Add70NTWFMg0i2h!2Xt&&;nJSUrUwAtZ$^Zaj>6^XB9;t z-vd+P@u_OD8~zv)h9_4~8H?l+mL$RC&w2<>g^99oun%v!VZR!t9#kHZVhAb31(y92 zPft(crx&n1&-#-u?vI2$lky+=b#VO?8+#c$2L5@TH}j?jDy}-|=Qq6<%zOR8_1MP! zET@N`KJwuc>SC`PAN%~tdw=f1-kt@RzsU2PyF<}UD~~(4w0OerPrLfy6P{q~Hcnr5 z{l+W$j=FMWYpkp2#G{|YWZBFKgb$r?>F~nO&#bv|_JpC*hj#Wd7UcAEuDK%;zpi{} zb^mqmM-JYy17pA8^iN)T^w1-=oLVsW$}>+){_>407@Iqh_)MI2#qRt3^q?JA{5AjT z#&^mVGq#b_&#TP#TsGsv_rr5$UDN#Pv*$AQ2B*LG*r~sI`H_A9@pj?o_m^M!Krv(f zEaLO?r@nLgk1u|C)sY)7iOddP^crKga{B6r{0*PiJX`z3=KFd-di#OtjO_v4<#|5X z`if%*L9sbH4jE!*mja|R|{+SjTERIsJjF|NGFQ6B_>h?y|S4{`Ay; zQ5Am1>G!u)ET}sw=Zgtte_Ax@p=&nac>QeRbKl&?l?}VJzcQ!$iO)*D|MXFKACc2v zdg}adz0|hszq#Rm%`cqu(%XzZ#_5IM{nd`UzV*S4XJ7bi{`J1zb&TyfmH6EJgBQ=+ zRP?L;gXjL`%FWNMMV_C+=@o?QRO zV=j3#y7_{(-|TfVboqBq|K_^t_P>AdM7-eTGuYKT&pey4!%;@_JeNj?Zhimh)m1l~ z^yFnrPq`fWd6?6$9NO{R;`yy5cRxI{{lQ0rZCvOiusF+%uo|cm8Xi`|m#Im7}iz)`5(D#_7-BxZ;Zw ztIq#T?kz8W{^Ns=uV;+5b>(?#B709ADSqalmmWH@;gDl)U&Yw%oc{Y&-+A=pk3UWP z_`MsBDf@0O%I5B{!Fir9ufDkYom>9#^UmGx*|YYJn_fn~bNUHCeDT+LHOZaNd$enZ zqyDpQfU$pY`sVBtUWp7{`OEx@C(ixGi>DvX7`+Ob=h^R;{8!d}cHg6GZXNpOrXBxT zg8I(s^Aj)Mzu~Y8dfxou+gUH%a69bQyqyWZ<-S*nCj9-)_a3`*OK#r<_ngnzC7kYi zq5pvWfAQG2p84Rd3D+(D2ITpY(;JGGK5*Sz-+Ji0@68wqUVh?Dj4hc#e181fz#q#G zd*IlkU!7iiaqo(&8M~R&V+UNmCA9FJBR_fbxpn94aoKvtKH>Bqo_yevKg?b5+O-S+ za0YwsfRE6y?LvHVtEQa!R&c}1f0}V@$wBY`^nS+v!s&(kzP0d-i$AM);ET(M%R+)JeU61ZESPcLlfe&Bnk zbl1YYO1i1;ua@o}xL<<1faF1$`IB_t1HRSJ=O*y^9_nSCbl(BnFa$T@p9lVTlKu|l zdP=&t!2Pmx{}6TY73n???zg4e51#Ky_v_Hr`_lbKxc?>H7eTgvOLsNIn~MCRcuzsR zIdD_j_lA7AaNh>{9ANe|(Ocmr`9A>9Hc6j_=R-}H4vE=_urEmZ4dDAW+{CjM^iL$c z679pM(p>`g0Voe7!+(KUDBYBghe-FEaIb@V4etH;^+@-TaGwn~rR7Ydh4y8V`vkbp zhg+rVQn*oVc>dl5H>G6&y1iMtOJOH&k?zNlMk=3cfN#O?Ug=%}_mglF{{is-opk5G z{d>5He*=EBUzzwv!T)XPo{GHgLm4J{ZpSYn-6sP-BHg!wPd04yW#Ioh@V@z74CE4CJgESJV|GGzFN9Z zM>)Ahy6*u0>!kY{xNm`*!cxBf3~rM1U*L1Q#KeHPS7J88y;-_j;eJrM8{vLPx;x;0 zRJut{8jO94_&bq=TaLeFGXEAM7ocI&i?_w7ok%Yp5KZ0 z2=UGB-U1ri3>3^Bsw_XKvpE(@#0TQhWWlP~02VU}+LJT_?JV~CsyZ><(>q9CRO(z+ z*V%zDG7NM!x5McxomX5nuf*#sDd~*$g?a|Vklgd=uys^u)UQ#AIpbKqAy>nx~u>>hIrnO{jvy z<)?i>(b(GUS|DkjZ5&F*5E2lMM8~}Hi+aQ%*xbGS%A?!` zH4YjQ-$EPnf+PC5cvE@IW5Ox*V;)Cxupj5pjCrYoz32N1#yTR)rupqqxoJ=O_Ozm+ zc5P>lq5h45@#veu)`>pC*q4`avUc{J24kNvyv&b7=C)@6*f2ibM1CyKnCmClgVW`( zdfz+dF&X_{YziNT)=6aim?vw94%QBa$HN>94JKnf^a1g)HtORQ4^3#$schTaZj4t~ zS)2p6&En!PYNQ->U<}7RYU0y043g{nR8+?|Vw$Lp_l-lHmwoB6t{+1vwLJm6hcX`H zGkm*=Mm*bINz{N9d!xF?AumD{4`%lHImTF~VUt-?{xZz{?}+sSEU~a$wv%*WA>Dt< zaWnJ$BbyTw{UZ~aMrz@H`mYok3r~DSFN0)9ul;zuu;H+3m;{DS*WNR*&8JxlN()%icEDyBgG6hAxh%IVcfZLKrcIoX2WFjl#2VjA8Nhd_d31j8 zBL&ij+syoEp>NtGED5#bt6vT~BA;U44QncUv7I<89@6@+Iv-o3y7RFh#GZi!Bn2_s z7Xp%yJF)zHijdOX>JjNi)cM4Y(h3@-bpmUpw0(@4X0KXZ z(^0dkX0`v6_q|Oc|M8D}RPr)B`x}4zFdb|@eV<{lWQ|)NuC3gwc<>Yd$W(u*Cd)r^ zymz+$w5=!RG%on^#7T{FzI<;&$=0TkxBX`&3k#Y?>b-vd$nTp^+mxK%IKmo79@*NK z?H}0@Gzxvn@!mX^%qrgW-aJ2`ZGPbP^)GlhxwjukUOWk`kkc>Pgn;i&xXp8Bec|j= zHx1_8LuLK1H{c(EMw+}cPkwz95_igH)ycWj_o-$i+ARObWPiw?HT|v*-(midCZAuh zKIPM`Nxy&VQ}4axAKBF(s?BO1dAM=pk3e`OqH)2)g9i|cgVV5>#944jNM91^|82dG zXZCwYY_f382)vp`!i5FOf8y^NN;Zu=D?~Z}9a1i(sBz>8NopL)DkQO&jWo^j`%il` zImJKX+1i$OzJKIlKiGBqPkG2&6R0`5rZaH#gI6H@WTZTceG1o?_+_y@@Vu3~Xls|C zodOr?AbiO@yvBVmfolS%DbukQCBDUGIvxcAWuE;4_gmae2R9{T6x5ptnHdOFLKuuD z@D^3!ryjp&5=>!z{u;zd#)IlRjK?Z$xFg$Q7?0ig^J)YY)@`|m{8yvkCqTp6K4;Sn z*L1K+5{YaO9S^hzfT+{h8%kG)CyQOfZepk5GmLw3rZW(uV6qJI)#mpDg}RRGdQUB) zA-Pb`aRu72jgsPRMw|_tv=5h~S z%kSVxz~&^5n1mdtyXG4bRd$nACWxjM~x;mOX`}f94rrw<`OiTsIIIDDIt|nN=ZGGvX7vT zkMSeD90MUKRaCMr!H;4h!Kq+S7EEW8RIi}0sRb|aQH#3r9{_`k{|7+rHkU@9RunXY$A%h$j+{Tn@sGTlJ@chHcWQ$HQdSm zY{9(>_t$Y>h5H-0--G*`xZjWaTev@j``frbiu*gbZ^8YqxW9$_ySO8>`7^Z|AK{s{ zgZ&%#*|>j#d%b*a#QjS=cj5lQhhGkpC7Cdh4WEhoMBJ%8$in?2@ck`*N3kU;&+vqj z%>VNpJkmwC;WhR?r(45u;QaY(eE1he*R;@wJhApOcVZ3sEf8UiW_ijq!*Y3r1nc(dC0JYVJ8Cgt{eneytr_2`O3wGrmjeJeKiVMb+!0^cuh@1 z&8o$P;`J@Lk*2!dC5X40&^~WiBJx=BNYy+IU11#;zZ+b3v4(l>{ls&Qv(+O3*) zho+GY5n&(Hw5K%fSxuw9roer!X)_SJppmI0R}L%GG_o#&wp7!oD<^2wi4$Ru)U+W@ zJ6_YiuW3Kjv|BXoc1?R&(;m~bmo)8FP5VI8KGw7e6O=5Ir7MT6*0duv?NUwqfu>!r zX*X%wFEoud&x-VZJW<8*Z|TZm6VM44I+!e7IqV|1)(IqV-A_ld?$M892x zog!U1Y-df|P1E+%v;#GbwycV<6`EG3X-hS&UDH-;T1eB@YTEIdHmqr3Y>)KubaYEs z4!d8|9@MngHSH};E5#Pjxjby8bmg$`XxfFEMz2c<+|M;F3+7@D51TDrIjmFD)@WM4 zrX@A)yP9^1rritI2F`Djbmg!Urz+aFr7MSB2A7EUa_P!p{&UYRKxO$We!Lex3w*Lt zs0D(0R!3ppN({*{Y<$;0vT_Y3eP~SRpZHkKZJu8t-`!jN z2l`Lhvc-Rv|5JpV{h;9Y1P47qHv47# zviKCltK3zN|74epiKa^t%{tp?kt`L7M|av7EG{w86sVzTU3x(cAN9j#)t-$3@zN`f z;K0}UBI;lU^?E3u1tz%Iezk~?qv%Ut7!KBMOyc9$G|(_6o93gdw?FLTBJnvefDqj} z@%1k?Btf>}D#i$|0PpE(WE+lc!4?(qK`S(6g6&KW-ir_S>JTpt_v9RwA8F^R##Eho zTtS=fr{(UTdgmXYcTQbr_52((OMQ^poO8-Qe?BUBHy`K`BcmIfhiSWwWFW<%;@4T?nai^r8f&1RL zpNTuA^(@>E!u>nAQ-tJShWjbFQ%iIJbRt?Ja^O9cywO(LDKAK)q#fGsE-qQx>*81j$BcV# ze0@Y5#87Z>5kIj5pOWEaxf(_eWqC;~fv-KOLMM3a#rsnd&_rK@QvE66zpL3FADt8a z&5#i#0M|YoPlIN0<>|_ULTpSzP$!?V98Ex)t`;+u%c)2v4YMfeBp!;Pke`NVl?IW^ zOtfl)#^t2qNp^(j>LO;e1%DFmsz3VDbT&+B!RrIV7(TK$aG!7_^Lz?!wroE+Uorp>BTO(bt?+YGF4)J+a zQOqzA>h+KOr{v%Mkr(-ta{XI3`%nH4=R5*) z4dlBCPNRy1k0zPcp<|7dB znm*0`EI{=3GYh7TutVM*)a4}ImEQZ2^{0$m0_7+;!s(3;|&E>4$&g@ z;Q&nvL$iqR(gMqID6K*hBgABq-OI=b;ytCVDZSH+kBmnUkkXn><%F zS5wh^(Ol<5VW_C_Q%&w%&gdX$bO)Y=`{CKrE>r9^98`yLJ~u^z0+R&vn%cyw$$L!9 z77IN&lP6A_>~(FQNe0TBLpb}T$O*xo@<%1m+zr5C0rI2FO8R;pvKq3_Wol~6ey4W2 zfaAnJY9hr|;J<(^LOZ=99!d12_)!kG;`bzel&_R)ltnA>+Y<^VCHJ6gQ2Dq3KWp1w zTA__9)rAzJN@W{FUbblvS&f*ftb)eNYE}M;LNum(0KBu-CaH9zI(`+p0O%bvk$x;a zU;+n^>`dGtG=DC@{VY63B)t#!bMQYZrlA1Iu+-=aT%M*CXc`SGMI4JXtya@$R!D?hp=n=eng<#XVRw+OT!z_ANn539 zM`+r&H0>l!`;MkvsA(^0+N+xOfu?<|X)|Dlg?uxmD~Ej_t`i_*F8iT$<*>Ikjx4v3 z8HQbk&5|xOJdSI5%_E;Sjl7|j^M)MO?LJ+Pb-Pc+y4}CWbKUL^WO(YjT@M!Al417+ zx4}BK);2`Q{n8+7PkB5GNR~aEjo^Zo9hbR@AL{D2Vw!wH~In|I@NLkZwp*s;+Ms8P!fcz0j{l_wh=C>A6e`q z{C|zp&Vg$Jr=c+LHvYOvjIFh`@%I5iO*?gqY28~~vXk1_HxR+w9cbuB`|OrJ>Pa8Y zZJ&}Ajk1bhAKp|nA<}&~>4%;L9%E&X!mdE~2TcY)E=ROaDy(SWX$?$t0v7QlwGNo~ zZqTqy&YRwDxQLHz_}cL~X5Pve&9;4su!i%YB|^ccmGkKbpOhuSebL5{MVy5nEIgJ7 zNAOwZD)xJPLg+KxOTmhSrlmr`tPu&W%^w1Ke;($0o-$yl`P`2`Tb2raoOBSEhn5Nj ziw->_YODm(Iw4&R{J(W2aDdZNR|2o(bg>e+3f$=uF&qjZX(dst`u&LeSXTlSO|1l) zyCPz#tB6|4lm)`t|6zepEa15;5Y~>qKuFzPDg%@el_WhRRS!a*XNm&)Y&;6;j)*-tL_{n8#rF89qMdg^lDiRR_L z-9}mNyCAnH{c_(GybKu2eK+uD$K}4uR2t}>ez~s}eIOb=q+9O$ic5W^D4(fIeMF<$ zP8I`Q9&Ry+Mm1N?h49)>15>JiN&J9Iopc9LPP!ij2wiIZ50e@EQtN-O%4fB{mn~`$ zQ_pqsS*-`sv>;t-{qJn~tk(a2ET8rIAMc<2T?FF)$xhS0pgr;Qrlh~;VZ&rTF;UG2 zy&vIDQ#t>{y&88+TMyUb{t52ay zz@6}9aPXe~@QJwZhC8)CI6H_h7;Zsa>un2C(?Fw(`lrSv7o-B)&`^C%D~TT=5nJ&4 zdeS+5D~y!RcagUnZ23v$)OCSzd*tWWx$=0bZThq?d zwC`%#&ou4ln)ZOE{YKONtZ9GIG}v$%2dp-C<*?}(HHvtlO-b8N(+(aESrX@6Oy{3Iz(@xj4?`qm5ns$w*(FjWD zI=JTAFe~V>lbiMD%wzoEKt3-(yJ*x*uL!aU%gtg}?-~$xkuhLF3o(R(I1`p${@N8|L0Ud2;9;)D zdeRhD&5lIuwfTpEwuaM>)B@6Gv7Rs&kYc0Z_FN7*olQhe%tS0X-ylMurXL?54dZOi zsAa)!14r+IJkdzVLuZ)Muyi%}(F`grZjlJxaEW2NA3c3z5}r=}npm2<4yytASO=Jr zWlA38)5%ja*p-~;JTBwTh9;Iq;=K_}=7`8i4;>sh#WL=tUsc<0@yYh^YuvLCM;Sa)$9S>55oOX+)HtP4EG~( ze*$-^IZxug0r%hIeh%)>;7$`>FXB#P-^%!#oowlG*Xse0j$hD|P$ z!ND&%=G?x6 z3*M!IeGVASLG?5?hQQsgX$4TQpcP724%?t<-_o=iI+! zESvV4+ulKzGHkqS8ficub7ePwE_tTpQSLxv2pPdGi|q^76z;;y0j!d{s@rL^Qq#z0 z>{n`<^MLGrQZE)=%p)J9z@j6Gbn~Sj>TfQ#brosq5Hj-@q^N}um*^@6j))}Ua&L!a zR}xusy%~eLFv}p2xWuj_3DB)R^)kqi(~FUWH~M(f(%2)nO+~UXv2H4oL>{HsBF(2y zD}`A6Kc$tHw@DvVP3ih#G8?A!qYKEJ797DnOs(()+zB%ql8dTLt{iL&QM6;ED~EQ& zN!;0*c8R7@H(rE=&Ll2Nx^kGvM7+O;JwUhTh#j1di&etucRlSNk#3ViW-nTKM(Z|N z_&N-Fj@(58Pv$O_W zZT_OyLvvANTC-5XY3d!zjNnj}|Nl_;9`I3B>HGK{W)hN_fq;NC#Q{Pu(tAm$1JawQ zNC+g5U`Rp|npgr@U?YgGb#2&t?`;J^#ok@J*ir1guK(wGPr3KbBq4s?-T&uzk~{ak z&wbz1+dbty#$TVbRhwmS6Vn}heBV_+b1>eM+*umtjp1B?3kBOQ8G8n+6BzbqaYqNn zc@B3v|2*!Dj~8%fEFOedRLM>%Ed6nXv0tIE4VLdzi|w%3BNlt!VlP|lU5hb=lzm*~ zpxj_aQJ9{&FUo8oOUC+c$9l2&CT5oSrfh7_&BlT;+4jA(5%+x$;UqoQC;r~3JmZm{ z8r6T~r^bPQa{gssN&H^*E&Ruc@v86R8=lFC5B)lxG5+iL<|%>rx}RmCSx>VVI5%N2 za6|86;C+qtQZjBmO_7>v(&n*&_$GJ&dt}Y3v|}2vD%w=u!m|*qswgu{tws~Er;dZy z-oO=d&cpB9LS1gLJ3$RYRD_(@L9v7Ae)jf9s$QRvvEKm)1Is&AfGeXi_Fr6wHe|?O zv_Lv@YW-KjKMbhEH>UQ=s*c@C?N&Td=3-)=x<<#zebWqgh zMDHgXwSz|^l{fL7cgY;JeMbi@j)n(DQ-+yuOZySXfdf`;Yy|kV(hTi#HsW73fhPVN zphk8-Y^l>bxELYmk&amJ$s|ZgZ4gZv*u}%db@0IwEbmJTreFtc2XKYbQd6R-sj2DF zl+k9f9oL3?(x#fl>-_rRlKTeO7F^@vIMZUY0%Oac=zT6osAe(yR$*5wExpO>jdHcP z9bR1Bo(Sh!xN+RWrwNPF-gR|eP2yW{s<*`?W%Lq_bpDgNUp z@!<3E9lvBiJxzSa-jVU(bC3LV`1W1z{@V57T|3q`9+#F~HKmu>lyURu(1cCn8YS5F z)r3WD;u$x;I-#mKHlb<``V>#cyFDRe_d{PRPsP@Zf9%U%IeJ3XxXv8I-|rW6m!N@Jvt`i=7-1jeSAXID>lT7Ud67dSjI+L9j}_2R@J!biHw_{ zj4yh8^5%Y9;=z6KZr`rh6+ij&jFYYrmdCKLFf$(St9DeOTQrTc0!JUUb4j~qVCuMfl!4SL_;3+MdV4+bsl4!T#uGxjB z##A9k{TDsVMbvkoq=cj!&&4O$6$gxiA0a4oz~T|1P5{+FsMA4laZ1S94JsLfQ2c_It3re}M1(XWM`Jj{=7lTsaxCWH68NDHG^Sz){IJSctCvH3eO1beo zDCNc*pp+YIJHEy>A759A`eF8fi~U^Q(+>e5rqZKN+8mfRWJooj8V5y!S3Ad~_Fb?W z7!zx^*SjHr^|9!}ditUNq-$4i^5M^#%pjVinVLw5lT-Z zoKmr{QDBHu4=NEBN;iKu^RrWspNlgBMUZWQ>SnH!z_7VTZ$P^Gh(^7Mp(@Y-T4=m| zA|A;T4QH~`;_dJ9bd~7*%6;tGRWn`39dP_mu3<`!p4mqZXRLT&0zyH|aRvrPIxk}| z#qHYh?3Q5VJ}mV-K)xjyp6T>)X3{w5nPM}YZ00|7aU4#u^}_Is zn$|K7#{vVLw?v!+KM=>~N0HeC7l+?C4#FM}Q-Qrz<=-@~2qw*}2tRDTqy!YB)iSR} zo4Hw2-9*{s?*C3>ruSeWLsOy-mttQ+L*g&NxH zD36PYHmZEdMCt@QCni3Rk%{)KJf#}BQxfGUJJ1sV9!(QmHz6_!Gmh!?QbWO(sj0yh zkvx1wrsC-U?8a#ytrtvf3I|R$Qw`%GL`6^xaTY2BoO~u{gGw5*=*^Z8cMGgU@#OTW zDm{zKa+l?o&&Xevi}~f^CAI)vC*1XFEI_UeQvSwiYjTyEA*L*+SfOSpu*%7mPgYfi zjeB5ZF5#!?$-)>EkD|BkY?SAho$<~Bjk)Ew85RpOx<=q*hfUO2gnAsV(YS6wF}#^Y z5%kT7i7Z%l3_c5ZC1U)zm=EHe)?N7xzCm=(}el#_&yjlL)_jT=|uUN@%pqEFvRCnffvWZ=MqF zUY$4pb-(uh&-j(!r!A2d>id+G8o*W9D*ZOhUFn*S1GtKhVN`q^OjFqH7Q5SGZ(Hm= zi?KhYWDn6)Sadun>`;r%vV3zb#!i9atFYKVE%va*-nH0=7W>*_-&<@3@|d!Z8`el+ z$(hB9Ep~>*&bAo8e3k5#7Taa9-4@$tu`ew)ENEoeLsahe3>mDCrl4cPVhb!*WU*3< zU2L(-EcTeip0wD%EcS-Q_F3#pi#?6+;{}L~i1WOr!cJE-Q7XJWHH8Y%Vk0az(PC39 zcBIAF^Ht%ku-Iyg&8zP?%mEQ+fu_O^wU8+6UW=ur;j>%#qM8ajxfaW}7<7enM#hsR zWB_$G;u_o zOFTo+C5S#eu8`9czg*tpj>or!pA+X6QOBW=j4uRSudsC$W5(n2pwk1|H#oAcN$KdH z(a6`)XC0d^a?~H?ooP&$?!`I6jw7H8a+QJu_RyjtpcEXqJ^!e0aGB?1M(al-5%kR( z)HmIrSWDG?s%5|rJ9~`=4%)%yu@~HkWWiH4%1KF_vL(=NRRc3FK6X^GZoIwBia{}|h7r0bD zAQhIiWePh%zYRN_QC8R%i(PNAn=N*~#U8SlDa?;$!+DhLP1z{yx_n~_amP-isI1uz zp=*ud6kh`KdoMA8+XADB;d<;pn!xUaaa+Wr`!&f^YokrjXLlhUc8iaZCert2|C?o% zzDhPRPbyK2wlS5`!0JgQDVpq5vZ6AEVLcC-94!YskzzJGP9=%ca7Q#PKP=#SgLa2xg>?rKd6xiCTW%~7NTtDJUtc?2sV`bbE7wau$^sN8t zMfs%_g(by9hS(F;q!>;_#Ck?u++x_Z+RAu}u;)yzDA1!AwN=L6D!2CP))XxICZS-_ zMJ^i<7i~KBGQq>0;buBAuV-pJj`V5+dIIj*2e{Ya^bSz)Z06;`3Ch^$sr z7%OJQ$BJ2Dte6$XidkVCh*Vf3O@-|OkpFDsJiu3$yTG;awN%zC@l~pf$`9taQhc(N zlnoi;dz5_f2kMJz^F{TIbf`Jm|HsvHb&WLrosfg*H-FWv%KI;f5S155g=Gz@!b8~b}^oVGCCvq_n;8vAFxj@sE2R;vD4 zA5eR6g=FcAKMQcwB{2&i`%9HD8g~v%DDzjdz{sSkf#alEu$+T^T37ev{PObLC2GMx zD+yI0br4av$JQ8Qv~I=E6VIb5=}`PqKP}P?-L{5NZyj;~Y+s7%0Aqm@usuP>Z|QOj zh-oIg6$2XqWjKdxatj?{eUpV(p4`F_4%8Y(ld$o=J020kOJf+X*Ps9*Tz0G5F}jNR z37E=Oq*S(27_*han5`66X|by<#@1i)@oQA^vGrG25gb(*zbF+(%^oK|o^djmoSh6d zKTqAR+;4dLM_{~40`kDfM*{9qT-y#JLZh+D<=t`I(3OxK5&=~|E(m^~kF!C=~N ztLJYq+amD+a~*0W^F#;SyW^gTyrZ%+DX8qkufld}D(p0ZT?*qQyyAmKvqtf%>DVZh z{t4}+o$Vmu=E^cWHA={pjmQcU!Nv2|mC?C!HpYw#D+-|~@>p!ZSqP0zB`YfMjrreF zOU4ZKzjjmd!uqTl@!eY!#HPdz(1^12E!kfq;S@~X8DUYNYYocfKb)cGth@s z`s&=Op#cVL+}4vC$D*OsNPVm^OBH2uovkvtbngl%Sv7}Mf}#3sHNA_fls>s8qEBvQ z(&9Ld&ammm2nvj=Pi}}jSEEm^rAMD!8&iwbqEC+Bs5~p8R(*16U2s1vXKkZ969FuR zq)Bm-^vShL&?ncn#wBx{e4K{Bbrh=xp;=efQ=go%-n%j{S)W`Fk?f6RY=g4o9+zOc zCNX)hemq?hRNFl<&Je~6qepIkI^_H_IDH06z0V5Xvs{c5F>|$x0Tglj>BLTsF)Rn$ zQBGJUhH3D;h+05>KJN4spP2>uJOlS_xYJ@jvw`>lm#P{_g`phDU@vPb?0jf3wgrlB zAtGDJF4k07&RbE~N{iiZ`PlR***zBfz+&H7j59@wZzSq8W#4E`g=L+E!Z;75_|{my z<1O|vDCYKv!%=WjVd;e{S=KH}mYY}<*4bjx;z1&zANC5Mii8#~1zg75#~}wXs!IBQ zpxcFN@BaZ`O4Yg;g9DyVTDKZaLCV&thlRl=)5D@=wYI8E*I3Bks@_*mwW{~y&Z5&s zvKI?3sjzcCeie3+rozr=7W>L#rd7p=0{i_HL*i94vD5weTGh$6HjOH_7+~;!)95r@ zjeN~1>$x{^VKEYZ{mm)0Modd+PFW4G>frraH}4iN$B@Dlb*}t4EVLOVO9PNok}ye^ zwWxA+y08+SfMBM>Lc}k=XA_&ebX3f4llK-JjgCr>rpDWO(A8)NBk7SiRxk8WE3HFV zWStuJO18#Sa_$Mo-Pu}smWwDY z-dq^NiUxjz8HEw8#u(9RVVgPQgQRAzZ9+5GdcVyay7w@B5Sz++Hgm@M+M79ch;t9vSDsM*Q3s-~P|6*7bdxgP?zBEyrS=VHP)0E` zzqq1o4Zi8h^ZC`~d6X)m3F^pdtL}zUh>{KtW8JRmBeUlwpfyl(1)N)dsMD<)nk?%5 zDl(zLm$PR+kOFK1SZC8yo?O>jOSsD2WJ6PyYmtmjFTgX~hJG5K>^PN-!zsAa%Up)S znr9mBhv1Gbm$VfzNl&^<3dc)mD&kydv3o7{pv4}y*wYr{SDLbqsjBQ7V=<1_DaTYov0}) z#*q#kcktCE$}WRoRxMFRZz-dq%ue1Qo-8eqlQ5CvjU3Y?4Qy4{F$2#$j5`48Egei& z&bgo}v10~DAgA(!;Ygih-v_Oti&WUj$FIT)HKlY$E9?P_{mCeN1cLEeqHtO5Xxl6jq=9$UVzKnN)(|? zr2{L)omDA%FO|&KD{(&v_tm&F^Kg-l$~>gPoX6JKR!xPay-gsKDK^lUyM49 zrRp($rsV8wfH!I)jB~s1;!=kbsc#n3Q~4J7jD!kd6fov{wz`ib)TwrL5)KLTnnnQH7Q{1=ny0DQ#+5uqlT*xNC6LSk=1D*7+MtkQ~9*jbNXg`J`) zb$pV-&av44Dy`^lZRKc3LR#7WNFB;ijlGrsVge;L!7M|G9UYdT4{@n-TX+(de*DktICj`f!Aa~QF@1i;rP7C#>V_+f z-Ef65RTOr*#dP|t`>Ya>e;aM7DBZw*%)Z;PsTK<}#$-;zi4mCv8Ds^qfQ<|8(@IKL zl;Z^YS@BKv;+sZc2yIj&vqhGhZ8t$P)B>&Rvw#pzK8& zy!htBz&kY!HuHR>3e*pR-HTr~@*(GO{Bo72+x@!(!Avaj>?*R0u^m@e^oo?J zltDhveuW`J#^+beTv1wDQdW_l$6>#*t1I%0%dzIHT$;|Zn6IbjW~-ynBO4>TOT4}7 zd2lm08OITgj(AlhZUKyOy}8(Z)*Q22o#b@usaf;40De-)f)oWWHsXJm;Aj8SUR83SLVMNb4<>T@aVv=xU3f$}=M zlMZLBVk7U}G`5SDSDu2-K&XLt&(`B)Z%}FXY*ELF>6x0lcctWI;Kz=;=5xKBjjL$+ zTpXOx9`>h&sFITNLWm&jpri6Lc8B?qzknc$lGnpG(FbXBy^c^}L25&QUOv(9kT%!! zWV~u1j7QDgE4G=|N6;~H`$m^4$Z+%S?dgw36a>3Q@)4G1>0Y@v@FLo5keByO@(#ji zER}0`d1s*)9!<;ky5W8OEUik%W*+}J4?j^VrK^`yluP&_>Tv*<*KX1#X4>ixiAsrV z_2c&M8e#uen?OP1ad>eF+EYfW83r|qCbHl=#)5ZNkUnMvFvOqX;(_W^K9L45M{s$S zP?!^_7zy9uVz77`l~GE;r34&aHOeWj2hDKajO#;O3}B1q?#WeDSaAlfqmXbcrAOn+ z#kCL@)0ahb8!jd+Gbr=p)wr0oZozdcE*40Zum^GNz{Ry5EGsM+ECf&C$~*+$Lb$kh ztrYRYy=!b2SnaVg@l3yb1Bhkb7}i;w1!R9LQ-gOpIK}|MQJ&I*rc?5P6HCM^a=naoNgGQaE}iOU@6tLQV|7s$XQKtH#DQ>!A@x|UO&GvSz^>F82h&umgjZr-@El4WWlHZkj|(J|N~CSCe5S)iFiwT6Y< zid^Y6aB@-^HSwa9Dd2qDlCm|zz!fxxfgO(r<9y1?UsOW12WGLZcOo{78a|rR5X*kO zttOR7aQKZeSdGbYm-AAdtwI*qJgovDx~(@bGXUJQH4Tv3!>m0`^~EuO^e8quYmd4E zb4*xc7~hGl$}Nsl$uzhXcMijnD9t7hSI1PcbL zc9=B-2l4n>Xw1i{$UE=}BS+A#tgqMEi9GV@G^KPj1KtS931=$19tzu=304S7ts7u4 z-^Ar+;VQJoV-m9P8gQU=L%%%~XVxVPPs^<+s67KWmTa~F7FLsi-SOp;gbbZ7>`ED5 zDIH<4aI^D)qT0Rs>`WDTr*(vb4mZZ@LdLw#%;U}LvRq+szi7%3uM#{?a|iq3OXJXR zG^Ll9Ulu8J8W&CJT;n2zadZ}bqi?Aouvnf`ppC`tVY71=oPbVo>vSIPdXVXw*04l@ zp9T}e8Z{WhFSWt)tel~)4daZeI|8CTlPQ_Bq=730SZj&GHmYCaItDsSj~*@dh9vy-=#laqO!{g{?AuGV6YgT7B92;wEJnY@HBFQv8`eS7 z#7gy(X6Z(#gA&*6aScpOix=pie*r_^0a9@-fRzaqR{^W4X|aPXMr9Y;e->M2vE>$Pi28mW zY{yXwnhHCof>N?<4V0g^S?mgnImm>)L^hIS>S~I&! z7me#*&>7>5RD4rWCI;&&v;tnNQ=d@vH5S%QsM^a>K{S`W&GNbp@BL<)%l(|#zBzPr zeACc4wBcgt4=e39hwi45TnqtX$sJB?hX!9xXzAv4HhiVp$_=3W>+U)tPUa`Hnj67| zMng`L;n5Sys2N$k8gqZAzl<)(EnbqZ)w!~v^yrK-tMFLh9cMXquO}Y9-dqZw)&cGr zRdV}>?PYBk=fm2IE%~Ua`T1^7YK4?NZ)FPDV!~Dc{Zs1T*J;3%iD6vMD`r*u)1Q;T zhFLV2Vk|?a5fet9-RwCkbK)EP-9pZE1F;j8WBbJO0<5+`d}!lx?GqtM=k zFc;Vv!E@VVwsFB>2}}0&f6{rDxamLX-1wvRC3^>p!* z*jF>-Q`Aw!t_AfIF>3v-Tc1ACy0O%GjvQgT#WqLla@Sdhd+)M?@0XXR#1mQud{3N~xJq7!`_;3Oge$ z-)M_nY_ZEM#)b1rmV368EKc>*7|!R^7|(Z5d>GEu*d&Whv)BTQj~SC)9U*M*{)Tj3p0xuVNkRJ4{aC9GirS zPL%~^8`}fsfAi$ObE%k_KWu~XQ+CPHz~af;dI=AERm}9p(C^HH^n0cTqxGFik_~Vt z-Vk@@wTQ$YrAdXI<1AKbvF9xIlEpBnfO#c5sGt;wy1-K$SojQA2>wQO2`58x!t5Zp z;(niXwKH{7E3;8HZRX4>C@WcoHJjBe*E9X<#~{O4^_EIw3v5NL($F5F z*(h_;l)mVNPlXI)k)_j^7znlq$Xc*Z8BASOGIodI&e)@jDygK@eEL|4QHG3^TKl5- zwgFRoiL2=+qq&EI*qwX9fqBA++xqXRwe_#V0{fP*v7JQvWKgQfUku9MBokAnIZms`WH!qdQniiHu4bdZ)|{sADw=o)@5)Hvl}1srvCnks!MDlz6E zZ}n`%YN^th0lXq~cRT!vkk}f%Jyg%rFPT~eJ$po|Mkl3I{Ee50Vn|4-6^@E;D=@`Z zZKSNPAyUqV*b%iv3eWXZMny^;I~|l03_T+Ss));*4fGucUQ!&I_Us|eqDXC3Bds*d-kj!e%2ubG|A$Hid z<}*SVh&U2gm9qvC2#(g8K-4;#%F$ERKpiBJQ_cAxVA@8N(u9{u=CaB6>TihoA$Hz`3E#fmuPSUYq3Wwi7)`5s zZPL(3R<-5P%{an}2U-n|Z(5EaF?9^WqoIM$Cto61@rQIJbYgtyj~S=_OsMLaNf@Qe zif?!vCtE$c3Y%VEj$>swj&;U)5JUH_>Vi?WuC#gRZXE0UQ+)IIKzuj`s+_X^(16(q zaKWP_`S#!G?h{f$q^Z+<8jjF(oPdLe6$CrMEta`87s90rjnaf_0_)M*uFpD zlxLiH)rcoOZ(55`JtH<`KN=cN`n>1u;-K zjruq-G#Ka5V0KQhppFWU6AF z0gCNoNE!ft#d>aiL{mb=%5i9vGKY7rGg8L8??d$rYTMkG_&u?xAh%3Z_2ib97cME5 zil!Qs7nm!784+j~NY^#7avVJ&5t)Hhg}Sk6a+I8!U{Va|n4k_k96nZGiP?c}fgn1q zcKlEkdNXo}t_;kWKrd91tUTR8$Cl9F>{fDIh7=r&Dk|6{l7^YOmYsvGQ=0~dMrKCF zMEXWDBRx>T_ehPV9+uhxm3nG4nv!bzOYBq~s6C+8;N{q1Ec%0Eq*KKo4Fey7lm3_t z|MUaSVP1}z@&GO^TdKp%v6k0}q9Z_S=0Jq$%w3vuV2$?!i7Tn1!OFLz!TQh+g7c|x zdaxTfIb=z_ji!l85LUz9NjW()t6Ak~(V@+wDV295MQ1CxABTTV6ZfCPPMwa>R+56H zq-(@)Y=bak1T!9JceGEg>(V|}o(5kvNQ-3P0IiPLvJKty4cI&$m()B~o(0bI5LBE* zB8Tdgemrce@+=eIH8+pu+=27NE4xs;g)w$~CA_P$2VxjGDrZqiaRv0#W4(fDPj3@} z<~A%Up34x+bE<19nKU~^gePDpCyjT-r!=1#m6sded)v<>zDVUW)$uX8ywk>9z!we9 zjdo7+o{Pn$d_W^K%j>Ur$W_+MM4xZpD4zeI}Cg+wP zlb?quQ%ZXC2tuW4KSbmN)8 zXzCcRS~!`%UYF|mz;AD&p_(ad#yI;j+-iaq%lKe!AQeD+JRzKFr#=12$qIFbL`U&A zr_U+K@#3}~f6H+Fx{QRc{f@Qf8dfAt#IB|itK44SNuIl)1hhf1wz0}3#X02#g^Me6 z>|umXI930Rv1xqejXKia*i}nhe%^HWLOsEsg$Rg;U!iRkJXa>2CUX%+t)l z?CY6@q5iRmfoj4b3tsT3!7=NA*kV8lBwGx#4#?LHJjqFGdoLn zCGRpCeVx$)BHFM$=9hCA&+|0)x2W0=cpC1Rz&7LF3->L!_rv{k+=t=5756OM&%m9% z`Lp;Q_FaHGa~Yr6IsFlr>YS2NGaL%z42Qz7CP4GuY_TUS_Kd||w-{>$CHsfPxFAts zEHBE9<`!e;RAKC#D!vOWc8SIQX|abb_Kd||u-FuIQU8bEOvy&j<#5##g=uj3z(m!<6E`wScJFEj3)pZl%jlVE({N+~@--Z+vRSjz_^NCQ8^gTB@dK1qbbpm;jd1`5 z>tNjb;@$@Lf%=&|^`)pVdPpffvI;A;*m0Jx(qfle>}recve<5mvEo(s@mIN#X)%64 zDy+m}n0$q2<(x6j=gW) z*t73B>Hp@P!n)aSd_Qpi>>Dw%^du6z5$BT-;B+JM=;(9|)a-&9jQyo>S0hq8d-gr& z{@(&Up>Fn@Ku_F1yA5;$73c;=n}W zArQBtKNXS_%NL>o2|}fr<17;DFi-l_gm~$P)7;& zsl`|Y%@?dSC?(4k6uE-2_pGobpz;LcRGz}l0kuT1>n!#dsHK9vX0abYv4KP|;ot~4^FWmgX8NolrwZ6g!7c%%WFG*vMzCirMs=3Q3HH0ixF&?h7ek*0 zew7cUsq5_}{yhLBe;hm@P zDO3G{q;dvAcKJ*-%_&QS;_N2bvuT*L$_%jGmN2|QO}M7_#u2^>AOVLv#K-bjh0)ma zBK!=XGX8_(Wozq(Fpke$jS-n(WFUsNnquo}bMLT-Y;&!@p?S1vI^KBI9CAz+5_kt? zhkZFLmWH2D)GIBc0+bG>N7Eywx5T@5kU;jorfrB~WV0UDg-vPfot}|hu=O@z>=SDM z+%Bd%W<3f12tCiJ;`X{mI@2R9L0|ud8+44JN)YOKeXqj4es44w@n}t9xM`nvgj0oJ z{adLAM?(js#-jCP9MkJx6^!+7R2z&WSOr7i{RiWQx&`CjItSyX{RZQP>VuI8>tGPx ze=yeif-x9*DW$s9*ocf2O^KKhxLQ)_2R#wiK_{FT^rUKG-A8WFYpE92eOuQQT(@_BDY)*VYJ-skt6&Jc|6tr*w_xn5 zb1?4RZ!qqzJ{XCx4hG@<2jdi9Flwq6*8RP%)xx@sHW)Qj3+qm)J{XCx4hG@<2jg&G zFlwq6*5%bXHIA^ssG(X|cX;)|NQ8AT2=6}_o$D5i{&fyU*Zl^gbM?VUgmo|o?>88g zKl*}EW2VB1)OBlXDu1@Ys3B8T{#b1=l3*1Kf%hMb-M(Pdl&LCTu4`&kK4F7VL#C?S zU41YTVI2&@`wzzXbqmH-bq>Y_`whnV)dwRH*1;g07>uMQb7?i9@b+?5Z*o=jf$-`W zQk}^ne;B+Itg0`$6rS>;sz;oNst^#}ZvckYDFE@h24ML90x-1N03@O+07Mf5kT?UF zWCaSLS&KNduqOy|0 zevbJb-T6cZTM;lUoB#|=1O_Am{S$$Hi9p{(pid&uI}zxGkH{3`ZFp>O!tbx_cL%`iu*d;x9VpuOlQkiqGA?x&vz>gS>QnS=hE`B(F?{Vw z5ub>&R8vqa1Bzom5ofKYaOM*zjsiuT(=>%sEI@HQDB@hCsjzb$D2@z8oSQTicJ2qo zF`|g`kfyNg9TZ24BF=M~3OjFs;rpBFXSTxJIELP66pcbuJ^v`(+Fg$Lzs?CRo@W>OhD(TM!xHF@EfJp7`?>h%I(Rp686YE?C)rzm=tQ~p6G5Dq!veyL8lPiiSSNAX9S zEGwlbN}ZvkJnnG5*O+W8p(sk6yI*%kSt&(P>Y`fR8EqvLMTyJz>&_S}r6@{qUJbDj z3OJ$lc!Y_`ulgBhB@{)8n_USVSvGUwEvsx5(~6?Rol2sAn$tfIN<3zzIT=u}l+h<5 zG5(HnN`5&Os-zV~>HC$mC&rl@jG1I56h(<0O5%Vt=YUyZ=YW3c&H;TIeibc^ETGg; z{LzM$yK+xal;*&B&}j>O1t}l!*_Ggv;)_}ed0tDWMH%jd3%c9Cz~N*HghfP7C!y+vDbGoNIh+PIv~xPvlWK1v z-2H&XWg8XH;=;0wE#R_47@Pd$&5O}A_v9>CT zw)PUv&hj2V^!i|d==EVjrJ>`Yj$OxcQqKxcT2ut#W6YT@{2-h?42L$k)@DV~X0F&sNZVNgF@ku+9+WXj+D@ZIKj6ZN zw!b)Mr_{@Wukho|mi&e=rouX=C^~ke*yoiPY}j#MVI>qr3FfGv)AGPH=fHjqoC9YZ z@KvKd4Y!-7hQbW4%G51D6$wA_$6=c>tF6t7qRoqi)4R+^az}~43_L#+g0jPv`(%*# z5)D~HXlYijLHH)pxdw0L#GRlNu(skBljAL1L1;fQRJ~A$lbQ}AX@yu>uW==TGg8=R z>n4H?-*aZwyDRn8(4=t3XdiT+>apu2nS@_p#wcdmq$q}nUo^1D8@k)SAw zaG?#N*Hc?kfN$J-Vym(iSSDX;v)0a|v)3$#yjkH;3V_H#+%Lj!ssSrLYFjMt$p|}j_S)u-; zh43k{QWwHPDTLj{la1~}A-pN|yilLif>6isfM`v{P_Z-h6vZ%c00G6YWusK5QJ?5n z;XP@k^%tb}!W%KnE~;>`=6Y8#gW4f))z3*bsuV?QIUW)8X?&AH_JP2Rs*ivg_GB9w8mA?2&Y*F7cqwoylt(H!)9#<4a zxC9%mT|z(3>(HrIN>P;hLrHmRjzj2}HXE&kqA0=iW4LNIC*yTMYM+n56p%La1EFRY zA5&bisyJr9+iSK2Z_cpxe41cSZDJQ$sjm{Gpo1kQC#l7X^H;_6&hy%=Vw!x8OZ7;w z1Qis1YBc0;FIWcvd}Jf+HFP>A z&hX6_xbTo*tb;{GC5w_=VSzEGHdna7KPc|+1$*_b*z`?u#kjzGZLV~;uDmC%s7;iy zijtC8Q3>=c)Ml=Qtjd4Cfz6x$5~Ua;zLU-V&;A{3{rd|XNsbk-%S@}Eg^QVEv`C^D zCK>Wk5tQois7%BoBVvW+vEq`7SZ-`(Zc$-gtYpcO*vgW!g@CDA)xqw~qCDX!Da|id z*dmLS<+B(RuZiVR-7n9k!1+zoJRFlHUPEF|cC0La`3jur6w8C{bg6vBqDA@G)Hb#l zt}Tv` z=lq^adUgk^yr$HmlCrWDr4_M~ve>dh>vR%hQQ^X}+_E() zLd7Y>LCFf*L$4slV#v?=xyxcJ=z-kW;{4o-74Sp_1~E#AXUv(3P%t7(U|DHyS?;oYxLJ;3Lq}E=FOmpb#RMxX zmdpd0>{#iFGIbzHY$~#nWC`s*lK~dyFF~@dDy)DniiL~mC+TQq3y?~P*;4G(%lBlR zirlgaCCMm8?qTL&1}j8lFdmS?waV0@0s52CjtfFK|J{&Gnu|Hu@L2e4B_fV#ta5Ho zX9_%#y&|u$gqbs!gbAw7fQV#Wkc?k@I)~?*?1{IF3sHPn>SC+%V+AOM$kD~Ih4}~( zqLLXKF|)9+LdQLBI8%+;f@1FPs z#eGRxZt)6mz_mijZ%FgpSW#i|F(xi>fNkL-Re2RwtU)f$Uvx})Psj8QWL>DEG|0F$ zzP}wzsw@RyeX3dxwq_fHtUKBLV~+&?+IVfE1eL71Zw=R$B-FH5S%$@PciSuFs@Dw< zn~$X1sx_r=&l30OTlRZg|J3uyP~u$QThB`&{~>SLa=89CeyPp>ZmX{RVPq2R_de4% zF>#On-zF6O&mI{5wQ(smymYzmt>H?%UnN`&hYArpRBnh&oYWQ~Zt3UHfW>A2%LYlzm6a#i93??c`jqGj_TD0fQ-z497mx0`WdlfBWq za=L&1;PBM8@wYxW?5e#FubQ*)nx&T?IwXGJ=#TCgylPuT;1;Lf1h}FWKa8# z&VTv%V8;UcS&JP{?tS;8$(PhO&-awPwd9l;gHIk1itf&v`t3paYhF5h z;Y0D=LykJ^sxQvJvC)T-y8~M;d$q*yzcFK0=Z3)>mmmD#xhLNk`QWny9ys&XGu!?9 ztRWf4uK)Ggr>9RC*fw-_YW>JJ*B0zLtl5q|OHaS#jDOB3>R)!{rh88OYQ*fd!%w^7 z$DBvr*}L!6PS1b4?6@nJY-{mwu;F8GUE1n}-i5bcy8Y?4Ll3&_%669xy5r}cu3a>> z>BNguPFiunWt-pqBKzDeyEg1iYt?wk_K(+@=lL&gy!!L*f81`Kizak0oOsy!v$s_K zFssY7ZL@D0GW^ZYr}Url@VoD9er-*BLjoeer-sD;NHKP2imAgTHC?Yg1-^@!`Qs=Txn{ z?$WOVBd-7a{n@`QIOyhw&VPOIQ42zcKe@Y8kK!pm&u%@j-h0bWI=9#A)rU6Sck09* zhtC;QGNE3-6`@m_3?DppUgo41UwZqR)S*W`u%YBh^M2No&lmT(CwI=Deg9g~-P@i! z?E4q`&)D|yWi3v5qQ}N1Uv>WW;_uTgh_~$Y@_XmJ@x-+o7N@4Y@b6v0Q7@jFR&Lzu z-K681-P1?q&p+?SYj1z$!W)-uZ!)>Vh-C{~Z0pl)_0=h3BFAlQarvD;el`5#r@CJH z@_Bzha?2%`>>IQ3v2&k4@ZEp3xbgHI_pM0zI%m`S=KbgiS=;6`T^%#;9}U$zJ#Fp< z_y7J?UgV)o-!1&+sLwup|M}ydHSX6GUgQ4_7cBkS`J(hx^W5gaiO=5J{LNMOH~Hw% zYd37~{`dn|%`X3C*0JWj39qsL;m5aZ9Cq*WU%qwD`=rT-yFTqS{pWM~EbBKQn3s2T z%iJr6RNQ#Q^3Da{ZEC;oxvA?HG#_%!?)=lH_k3l<8M7XIWk#djzki%EWMt-nuiR?l z&B(p`$c|$#dH

    dcNND_{66h$FK9B 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�j?_;^@$7jNMy}db%}u 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 z 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%0D=hP%<(P*&w>TDj) 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ƣN(1I) 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%0Amkl8 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

    |PgwHUC7gC8tUDVm!r4M1HJU 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 z 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

+6n383P#nDhqyDs_{O4BO`l1zQ-EGCTzE+et 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 literal 0 HcmV?d00001 diff --git a/android/armeabi-v7a/liblibnyquist.a b/android/armeabi-v7a/liblibnyquist.a new file mode 100644 index 0000000000000000000000000000000000000000..9b5a1f207982f8b07d99b6bb3cc8852bc87dbca6 GIT binary patch literal 1691076 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�Q1@T-AA(IJN7$xH@iT5 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

+6n383P#nDhqyDs_{O4BO`l1zQ-EGCTzE+et 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 literal 0 HcmV?d00001 diff --git a/android/arm64-v8a/libsamplerate.a b/android/arm64-v8a/libsamplerate.a new file mode 100644 index 0000000000000000000000000000000000000000..1a289d23cd3e448b636783f7a221b40ceece3d22 GIT binary patch literal 1502152 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�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%0AoQ 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%0DEOL%f@DA_>?jO{ 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�cH!|Q3POTFL%)ze17pnNl` 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

Q&T6ZgwxD&Xi)bUi`qF7CueM`t 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%0Aj_k^(N?SPf9;nR`Sj~1ck;+2FLO7Xdc~+!TMweE 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